/* 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-hester-in-cell-nervous { background: linear-gradient(180deg, #1a1423 0%, #2c1f33 40%, #3a2a3f 100%), radial-gradient(ellipse at 50% 0%, #4a3a5a 0%, transparent 80%); }
.scn-hester-in-cell-nervous .wall-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 50%, #2a1a2a 0%, transparent 80%); opacity:0.6; }
.scn-hester-in-cell-nervous .window { position:absolute; top:12%; left:20%; width:30px; height:50px; background: #2a1a2a; border:2px solid #3a2a3a; box-shadow:inset 0 0 10px #5a4a5a; border-radius:10%; }
.scn-hester-in-cell-nervous .moonlight { position:absolute; top:12%; left:20%; width:30px; height:50px; background: linear-gradient(135deg, rgba(180,180,220,0.3) 0%, transparent 100%); filter:blur(4px); animation: hin-moon 12s ease-in-out infinite alternate; }
.scn-hester-in-cell-nervous .straw-bed { position:absolute; bottom:10%; left:10%; right:30%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 10% 0 0; transform:rotate(-8deg); }
.scn-hester-in-cell-nervous .figure-mother { position:absolute; bottom:10%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hin-mother 6s ease-in-out infinite; }
.scn-hester-in-cell-nervous .figure-child { position:absolute; bottom:20%; left:38%; width:16px; height:24px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 30% 30%; animation: hin-child 4s ease-in-out infinite alternate; }
.scn-hester-in-cell-nervous .chain { position:absolute; bottom:30%; left:10%; width:60px; height:4px; background: #4a3a3a; border-radius:2px; box-shadow:0 0 4px #3a2a2a; transform:rotate(20deg); animation: hin-chain 7s ease-in-out infinite; }
@keyframes hin-moon { 0% { opacity:0.3; transform:scale(1); } 50% { opacity:0.6; transform:scale(1.05); } 100% { opacity:0.4; transform:scale(0.95); } }
@keyframes hin-mother { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes hin-child { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes hin-chain { 0%,100% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(22deg) translateX(2px); } }

.scn-need-of-physician { background: linear-gradient(180deg, #1a1423 0%, #2c1f33 40%, #3a2a3f 100%), radial-gradient(ellipse at 50% 0%, #4a3a5a 0%, transparent 80%); }
.scn-need-of-physician .wall-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #2a1a2a 0%, transparent 70%); }
.scn-need-of-physician .cell-bar { position:absolute; top:30%; left:10%; width:4px; height:60%; background: #3a2a2a; box-shadow:10px 0 0 #3a2a2a, 20px 0 0 #3a2a2a, 30px 0 0 #3a2a2a; opacity:0.5; }
.scn-need-of-physician .mother-torso { position:absolute; bottom:20%; left:40%; width:50px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: nop-mother 8s ease-in-out infinite; }
.scn-need-of-physician .baby-body { position:absolute; bottom:35%; left:45%; width:20px; height:18px; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius:50%; animation: nop-baby 3s ease-in-out infinite; }
.scn-need-of-physician .hand-holding { position:absolute; bottom:38%; left:44%; width:20px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:30% 30% 0 0; transform:rotate(20deg); animation: nop-hand 5s ease-in-out infinite alternate; }
.scn-need-of-physician .breath-mist { position:absolute; bottom:50%; left:48%; width:12px; height:12px; background: rgba(200,200,220,0.1); border-radius:50%; filter:blur(3px); animation: nop-breath 4s ease-in-out infinite; }
.scn-need-of-physician .shadow-veil { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.4) 0%, transparent 70%); animation: nop-veil 10s ease-in-out infinite alternate; }
@keyframes nop-mother { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes nop-baby { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes nop-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-1px); } 100% { transform: rotate(18deg) translateY(0); } }
@keyframes nop-breath { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:0.4; transform: scale(1.5); } 100% { opacity:0; transform: scale(2); } }
@keyframes nop-veil { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }

.scn-physician-enters { background: linear-gradient(180deg, #1a1423 0%, #2c1f33 40%, #3a2a3f 100%), radial-gradient(ellipse at 50% 0%, #4a3a5a 0%, transparent 80%); }
.scn-physician-enters .cell-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #1a1a2a 0%, transparent 80%); }
.scn-physician-enters .door-frame { position:absolute; top:10%; left:80%; width:40px; height:80%; background: #2a1a2a; border-left:4px solid #4a3a3a; box-shadow:0 0 20px rgba(0,0,0,0.6); }
.scn-physician-enters .door-open { position:absolute; top:10%; left:80%; width:40px; height:80%; background: linear-gradient(90deg, #3a2a3a 0%, transparent 100%); transform-origin: left; animation: phy-open 3s ease-in-out infinite; }
.scn-physician-enters .figure-doctor { position:absolute; bottom:15%; right:75%; width:35px; height:70px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: phy-doctor 7s ease-in-out infinite; }
.scn-physician-enters .figure-hester { position:absolute; bottom:15%; left:20%; width:40px; height:75px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: phy-hester 9s ease-in-out infinite; }
.scn-physician-enters .bar-shadow { position:absolute; top:30%; left:75%; width:4px; height:50%; background: #1a1a1a; box-shadow:8px 0 0 #1a1a1a; transform:rotate(10deg); animation: phy-bar 5s ease-in-out infinite alternate; }
.scn-physician-enters .candle-glow { position:absolute; bottom:30%; left:50%; width:12px; height:12px; background: radial-gradient(circle, #ffd060 0%, #b08040 50%, transparent 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(255,208,96,0.3); animation: phy-candle 4s ease-in-out infinite alternate; }
@keyframes phy-open { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(80deg); } 100% { transform: rotateY(0deg); } }
@keyframes phy-doctor { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-2px); } 50% { transform: translateX(10px) translateY(0); } 75% { transform: translateX(5px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes phy-hester { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes phy-bar { 0% { opacity:0.5; transform: rotate(10deg); } 100% { opacity:0.8; transform: rotate(15deg); } }
@keyframes phy-candle { 0% { transform: scale(0.8); opacity:0.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:0.8; } }

.scn-chillingworth-alone-with-hester { background: linear-gradient(180deg, #1a1423 0%, #2c1f33 40%, #3a2a3f 100%), radial-gradient(ellipse at 50% 0%, #4a3a5a 0%, transparent 80%); }
.scn-chillingworth-alone-with-hester .room-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #2a1a2a 0%, transparent 70%); }
.scn-chillingworth-alone-with-hester .table { position:absolute; bottom:10%; left:40%; width:60px; height:8px; background: #3a2a2a; border-radius:4px; box-shadow:0 4px 6px rgba(0,0,0,0.5); }
.scn-chillingworth-alone-with-hester .candle-flame { position:absolute; bottom:22%; left:52%; width:6px; height:14px; background: linear-gradient(180deg, #ffd060 0%, #ff8040 50%, transparent 100%); border-radius:50% 50% 20% 20%; box-shadow:0 0 20px 6px #ffa040; animation: chi-flame 3s ease-in-out infinite alternate; }
.scn-chillingworth-alone-with-hester .figure-doctor { position:absolute; bottom:10%; left:65%; width:35px; height:75px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: chi-doctor 8s ease-in-out infinite; }
.scn-chillingworth-alone-with-hester .figure-hester { position:absolute; bottom:10%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: chi-hester 9s ease-in-out infinite; }
.scn-chillingworth-alone-with-hester .shadow-doctor { position:absolute; bottom:0; left:60%; width:40px; height:60px; background: rgba(0,0,0,0.4); border-radius:50% 50% 0 0; filter:blur(6px); animation: chi-shad-doc 10s ease-in-out infinite alternate; }
.scn-chillingworth-alone-with-hester .shadow-hester { position:absolute; bottom:0; left:15%; width:45px; height:70px; background: rgba(0,0,0,0.3); border-radius:50% 50% 0 0; filter:blur(8px); animation: chi-shad-hest 10s ease-in-out infinite alternate; }
@keyframes chi-flame { 0% { transform: scaleY(0.8) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) translateY(0); opacity:0.9; } }
@keyframes chi-doctor { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-4px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes chi-hester { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(0deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes chi-shad-doc { 0% { transform: scale(1) translateX(0); opacity:0.3; } 50% { transform: scale(1.1) translateX(3px); opacity:0.5; } 100% { transform: scale(0.95) translateX(-2px); opacity:0.4; } }
@keyframes chi-shad-hest { 0% { transform: scale(1) translateX(0); opacity:0.2; } 50% { transform: scale(1.05) translateX(-2px); opacity:0.4; } 100% { transform: scale(0.95) translateX(1px); opacity:0.3; } }

/* nature-sympathy */
.scn-nature-sympathy {
  background: linear-gradient(180deg, #c8b89a 0%, #a89677 40%, #7d6b4f 100%),
              radial-gradient(ellipse at 30% 40%, #e6d5ba 0%, transparent 60%);
}
.scn-nature-sympathy .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a686 100%);
  animation: ns-sky 20s ease-in-out infinite alternate;
}
.scn-nature-sympathy .forest-bg {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, #5a4a34 0%, #3a2f20 100%);
  animation: ns-forest 12s ease-in-out infinite alternate;
}
.scn-nature-sympathy .brook {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(90deg, #8a7a5a 0%, #aea080 30%, #8a7a5a 100%);
  border-radius: 30% 40% 40% 30% / 100% 100% 100% 100%;
  animation: ns-brook 4s ease-in-out infinite alternate;
}
.scn-nature-sympathy .tree-left {
  position: absolute; bottom: 30%; left: 5%; width: 30px; height: 180px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  transform-origin: bottom left;
  animation: ns-tree-l 6s ease-in-out infinite;
}
.scn-nature-sympathy .tree-right {
  position: absolute; bottom: 30%; right: 5%; width: 35px; height: 200px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  transform-origin: bottom right;
  animation: ns-tree-r 6s ease-in-out infinite 2s;
}
.scn-nature-sympathy .sunlight-streak {
  position: absolute; top: 15%; left: 40%; width: 15%; height: 40%;
  background: linear-gradient(180deg, rgba(230,210,180,0.4) 0%, rgba(230,210,180,0.1) 100%);
  filter: blur(8px);
  animation: ns-sunray 10s ease-in-out infinite alternate;
}
.scn-nature-sympathy .moss-bank {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 50% 50% 20% 20% / 100% 100% 40% 40%;
  animation: ns-moss 15s ease-in-out infinite alternate;
}
@keyframes ns-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ns-forest {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes ns-brook {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes ns-tree-l {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(-1deg) scaleY(1.01); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes ns-tree-r {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(1deg) scaleY(1.01); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes ns-sunray {
  0% { opacity: 0.3; transform: translateX(-10px) scaleX(0.9); }
  50% { opacity: 0.7; transform: translateX(0px) scaleX(1.1); }
  100% { opacity: 0.4; transform: translateX(10px) scaleX(0.95); }
}
@keyframes ns-moss {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.9; transform: translateY(1px); }
}

/* pearl-to-be-known */
.scn-pearl-to-be-known {
  background: linear-gradient(180deg, #b8a58c 0%, #8a7a64 40%, #5a4a38 100%),
              radial-gradient(ellipse at 50% 30%, #d4c0a8 0%, transparent 60%);
}
.scn-pearl-to-be-known .clearing-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a5a44 0%, #4a3a2a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: pk-floor 20s ease-in-out infinite alternate;
}
.scn-pearl-to-be-known .figure-hester {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pk-hester 6s ease-in-out infinite;
}
.scn-pearl-to-be-known .figure-minister {
  position: absolute; bottom: 25%; left: 55%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pk-minister 6s ease-in-out infinite 2s;
}
.scn-pearl-to-be-known .bush-left {
  position: absolute; bottom: 20%; left: 5%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a1a 100%);
  border-radius: 60% 40% 40% 60% / 40% 40% 60% 60%;
  animation: pk-bush-l 8s ease-in-out infinite alternate;
}
.scn-pearl-to-be-known .bush-right {
  position: absolute; bottom: 20%; right: 5%; width: 80px; height: 45px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a1a 100%);
  border-radius: 40% 60% 60% 40% / 40% 40% 60% 60%;
  animation: pk-bush-r 8s ease-in-out infinite alternate 3s;
}
.scn-pearl-to-be-known .dapple-light {
  position: absolute; top: 20%; left: 30%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at center, rgba(230,210,170,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: pk-dapple 12s ease-in-out infinite alternate;
}
@keyframes pk-floor {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pk-hester {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pk-minister {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pk-bush-l {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(1.05) rotate(2deg); }
  100% { transform: scaleX(0.95) rotate(-1deg); }
}
@keyframes pk-bush-r {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(1.05) rotate(-2deg); }
  100% { transform: scaleX(0.95) rotate(1deg); }
}
@keyframes pk-dapple {
  0% { opacity: 0.2; transform: translateY(-10px); }
  50% { opacity: 0.6; transform: translateY(5px); }
  100% { opacity: 0.3; transform: translateY(-5px); }
}

/* pearl-not-far */
.scn-pearl-not-far {
  background: linear-gradient(180deg, #c0ad96 0%, #9a8770 40%, #6a5a46 100%),
              radial-gradient(ellipse at 40% 60%, #d4bea6 0%, transparent 60%);
}
.scn-pearl-not-far .sky-muted {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8a894 0%, #a08c78 100%);
  animation: nf-sky 18s ease-in-out infinite alternate;
}
.scn-pearl-not-far .brook-bank {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a4a34 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 100% 100%;
  animation: nf-bank 14s ease-in-out infinite alternate;
}
.scn-pearl-not-far .pearl-figure-distant {
  position: absolute; bottom: 35%; left: 60%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nf-pearl 8s ease-in-out infinite;
}
.scn-pearl-not-far .tree-arch {
  position: absolute; bottom: 40%; left: 10%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  transform: rotate(-5deg);
  animation: nf-tree 12s ease-in-out infinite;
}
.scn-pearl-not-far .sunray-shaft {
  position: absolute; top: 10%; left: 50%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(230,210,180,0.5) 0%, rgba(230,210,180,0) 100%);
  filter: blur(6px);
  animation: nf-sunray 15s ease-in-out infinite alternate;
}
.scn-pearl-not-far .shadow-veil {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(70,50,30,0.3) 0%, transparent 30%, transparent 70%, rgba(70,50,30,0.3) 100%);
  animation: nf-veil 25s ease-in-out infinite alternate;
}
@keyframes nf-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes nf-bank {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes nf-pearl {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.5; }
  50% { transform: translateY(-3px) rotate(2deg); opacity: 0.8; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.6; }
}
@keyframes nf-tree {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(-4deg) scaleY(1.02); }
  100% { transform: rotate(-5deg) scaleY(1); }
}
@keyframes nf-sunray {
  0% { opacity: 0.2; transform: translateY(-10px) scaleX(0.9); }
  50% { opacity: 0.6; transform: translateY(5px) scaleX(1.1); }
  100% { opacity: 0.3; transform: translateY(-5px) scaleX(0.95); }
}
@keyframes nf-veil {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.4; }
}

/* pearl-approaches */
.scn-pearl-approaches {
  background: linear-gradient(180deg, #b0a08a 0%, #8a7a66 40%, #5a4a3a 100%),
              radial-gradient(ellipse at 60% 50%, #c8b8a2 0%, transparent 60%);
}
.scn-pearl-approaches .forest-path {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 45%;
  background: linear-gradient(180deg, #5a4a36 0%, #3a2a1e 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  animation: pa-path 22s ease-in-out infinite alternate;
}
.scn-pearl-approaches .pearl-approaching {
  position: absolute; bottom: 30%; left: 45%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-pearl-move 6s ease-in-out infinite;
}
.scn-pearl-approaches .mother-figure {
  position: absolute; bottom: 30%; left: 25%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-mother 6s ease-in-out infinite 3s;
}
.scn-pearl-approaches .light-patch {
  position: absolute; top: 15%; left: 40%; width: 12%; height: 35%;
  background: radial-gradient(ellipse at center, rgba(220,200,170,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: pa-light 12s ease-in-out infinite alternate;
}
.scn-pearl-approaches .moving-shadow {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 10%;
  background: linear-gradient(90deg, transparent 0%, rgba(40,30,20,0.3) 50%, transparent 100%);
  filter: blur(4px);
  animation: pa-shadow 10s ease-in-out infinite alternate;
}
.scn-pearl-approaches .fern-left {
  position: absolute; bottom: 20%; left: 10%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a1a 100%);
  border-radius: 60% 40% 40% 60% / 40% 40% 60% 60%;
  animation: pa-fern-l 9s ease-in-out infinite alternate;
}
.scn-pearl-approaches .fern-right {
  position: absolute; bottom: 20%; right: 10%; width: 55px; height: 28px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a1a 100%);
  border-radius: 40% 60% 60% 40% / 40% 40% 60% 60%;
  animation: pa-fern-r 9s ease-in-out infinite alternate 4s;
}
@keyframes pa-path {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pa-pearl-move {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(10px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(20px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(10px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes pa-mother {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pa-light {
  0% { opacity: 0.2; transform: translateX(-10px) scale(0.9); }
  50% { opacity: 0.5; transform: translateX(0px) scale(1.1); }
  100% { opacity: 0.3; transform: translateX(10px) scale(0.95); }
}
@keyframes pa-shadow {
  0% { transform: translateX(-20px); opacity: 0.2; }
  50% { transform: translateX(20px); opacity: 0.4; }
  100% { transform: translateX(-10px); opacity: 0.3; }
}
@keyframes pa-fern-l {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(3deg) scaleX(1.05); }
  100% { transform: rotate(-2deg) scaleX(0.95); }
}
@keyframes pa-fern-r {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-3deg) scaleX(1.05); }
  100% { transform: rotate(2deg) scaleX(0.95); }
}

/* ========== hester-rejected-joy (dim interior, dark mood) ========== */
.scn-hester-rejected-joy {
  background: 
    linear-gradient(180deg, #1a1520 0%, #2c2430 40%, #1a1520 100%),
    radial-gradient(ellipse at 50% 100%, #2c2430 0%, transparent 70%);
}
.scn-hester-rejected-joy .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2c2430 0%, #1a1520 100%); }
.scn-hester-rejected-joy .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1520 0%, #0f0c12 100%); }
.scn-hester-rejected-joy .window-rect { position:absolute; top:15%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #2c3a4a 0%, #1a2a3a 100%); border: 4px solid #3a2a3a; border-radius: 4px; }
.scn-hester-rejected-joy .window-glow { position:absolute; top:15%; left:35%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,140,0.15) 0%, transparent 70%); box-shadow: 0 0 60px 20px rgba(200,180,140,0.1); animation: rjo-glow 6s ease-in-out infinite alternate; }
.scn-hester-rejected-joy .figure-kneel { position:absolute; bottom:30%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rjo-kneel 4s ease-in-out infinite; }
.scn-hester-rejected-joy .shadow { position:absolute; bottom:26%; left:42%; width:30px; height:6px; background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(4px); animation: rjo-shadow 4s ease-in-out infinite; }
.scn-hester-rejected-joy .candle { position:absolute; bottom:35%; left:38%; width:6px; height:18px; background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: 0 0 12px 4px rgba(192,160,96,0.4); animation: rjo-candle 3s ease-in-out infinite alternate; }
.scn-hester-rejected-joy .candle-flicker { position:absolute; bottom:50%; left:38.8%; width:4px; height:10px; background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #ff8040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,208,128,0.3); animation: rjo-flicker 0.15s steps(2) infinite; }
@keyframes rjo-glow { 0%, 100% { opacity:0.5; } 50% { opacity:0.9; } }
@keyframes rjo-kneel { 0%, 100% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(2px,-2px) rotate(1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-2px,-1px) rotate(2deg); } }
@keyframes rjo-shadow { 0%,100% { transform: scale(1); opacity:0.6; } 50% { transform: scale(0.8) translateX(4px); opacity:0.4; } }
@keyframes rjo-candle { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-1px); } }
@keyframes rjo-flicker { 0% { opacity:0.8; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.2) translateY(-2px); } 100% { opacity:0.9; transform: scaleY(1); } }

/* ========== hester-part-in-world (bright interior, calm) ========== */
.scn-hester-part-in-world {
  background:
    linear-gradient(180deg, #f0e8d8 0%, #e8dcc8 40%, #d8c8b0 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,240,200,0.4) 0%, transparent 50%);
}
.scn-hester-part-in-world .bg-light { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0e8d8 0%, #e8dcc8 100%); }
.scn-hester-part-in-world .wall-light { position:absolute; inset:0 0 30% 20%; background: linear-gradient(90deg, #e8dcc8 0%, #d8c8b0 100%); border-radius: 0 0 10% 10%; }
.scn-hester-part-in-world .window-light { position:absolute; top:15%; left:30%; width:20%; height:30%; background: linear-gradient(180deg, #b0d0e0 0%, #80b0c0 100%); border: 6px solid #c8b898; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3); animation: pwo-window 8s ease-in-out infinite alternate; }
.scn-hester-part-in-world .figure-stand { position:absolute; bottom:35%; left:50%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: pwo-stand 6s ease-in-out infinite; }
.scn-hester-part-in-world .table { position:absolute; bottom:30%; left:40%; width:40px; height:8px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-hester-part-in-world .bowl { position:absolute; bottom:35%; left:45%; width:12px; height:8px; background: linear-gradient(180deg, #d0b080 0%, #b09060 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.15); animation: pwo-bowl 10s ease-in-out infinite alternate; }
.scn-hester-part-in-world .shadow-soft { position:absolute; bottom:28%; left:48%; width:30px; height:4px; background: rgba(0,0,0,0.15); border-radius: 50%; filter: blur(3px); transform: rotate(-5deg); }
@keyframes pwo-window { 0%, 100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes pwo-stand { 0%, 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } }
@keyframes pwo-bowl { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } }

/* ========== hester-banished-ghost (bright interior, dark mood) ========== */
.scn-hester-banished-ghost {
  background:
    linear-gradient(180deg, #d0d8e0 0%, #b0c0d0 60%, #8090a0 100%),
    radial-gradient(ellipse at 80% 30%, rgba(200,220,240,0.3) 0%, transparent 60%);
}
.scn-hester-banished-ghost .bg-bright { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #e0e8f0 0%, #c0d0e0 100%); }
.scn-hester-banished-ghost .floor-bright { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #b0c0d0 0%, #8090a0 100%); }
.scn-hester-banished-ghost .window-left { position:absolute; top:10%; left:15%; width:15%; height:40%; background: linear-gradient(180deg, #b8d4e0 0%, #8aaec0 100%); border: 5px solid #a8b8c0; border-radius: 3px; box-shadow: inset 0 0 30px rgba(255,255,255,0.2); animation: bgh-win 7s ease-in-out infinite alternate; }
.scn-hester-banished-ghost .window-right { position:absolute; top:10%; right:15%; width:15%; height:40%; background: linear-gradient(180deg, #b8d4e0 0%, #8aaec0 100%); border: 5px solid #a8b8c0; border-radius: 3px; box-shadow: inset 0 0 30px rgba(255,255,255,0.2); animation: bgh-win 9s ease-in-out infinite alternate-reverse; }
.scn-hester-banished-ghost .figure-isolated { position:absolute; bottom:25%; left:45%; width:18px; height:42px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: bgh-isolate 8s ease-in-out infinite; }
.scn-hester-banished-ghost .ghost-haze { position:absolute; bottom:28%; left:40%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(200,220,240,0.3) 0%, transparent 70%); filter: blur(10px); animation: bgh-haze 12s ease-in-out infinite alternate; }
.scn-hester-banished-ghost .shadow-hard { position:absolute; bottom:22%; left:44%; width:40px; height:10px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(5px); animation: bgh-shadow 8s ease-in-out infinite; }
.scn-hester-banished-ghost .light-beam { position:absolute; top:0; left:20%; width:10%; height:100%; background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%); filter: blur(8px); animation: bgh-beam 15s linear infinite; }
@keyframes bgh-win { 0%,100% { opacity:0.7; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.02); } }
@keyframes bgh-isolate { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } }
@keyframes bgh-haze { 0% { opacity:0.2; } 100% { opacity:0.6; } }
@keyframes bgh-shadow { 0%,100% { transform: scale(1); opacity:0.3; } 50% { transform: scale(1.1); opacity:0.5; } }
@keyframes bgh-beam { 0% { transform: translateY(-10%); opacity:0; } 20% { opacity:0.15; } 80% { opacity:0.15; } 100% { transform: translateY(10%); opacity:0; } }

/* ========== hester-moral-isolation (bright interior, dark mood) ========== */
.scn-hester-moral-isolation {
  background:
    linear-gradient(180deg, #c8c8d0 0%, #a8a8b8 50%, #888898 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.2) 0%, transparent 80%);
}
.scn-hester-moral-isolation .bg-hard { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #d8d8e0 0%, #b0b0c0 100%); }
.scn-hester-moral-isolation .floor-hard { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #a0a0b0 0%, #787888 100%); }
.scn-hester-moral-isolation .wall-hard { position:absolute; bottom:20%; left:0; right:0; height:10%; background: linear-gradient(0deg, #888898 0%, #a8a8b8 100%); box-shadow: 0 -4px 10px rgba(0,0,0,0.2); }
.scn-hester-moral-isolation .figure-alone { position:absolute; bottom:20%; left:50%; width:20px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: iso-alone 6s ease-in-out infinite; }
.scn-hester-moral-isolation .dark-overlay { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.3) 100%); pointer-events: none; }
.scn-hester-moral-isolation .eye-glow { position:absolute; bottom:44%; left:49.5%; width:4px; height:4px; background: radial-gradient(circle, #ffd080 0%, transparent 100%); box-shadow: 0 0 12px 6px rgba(255,208,128,0.5); animation: iso-eye 4s ease-in-out infinite alternate; }
.scn-hester-moral-isolation .shadow-sharp { position:absolute; bottom:16%; left:46%; width:40px; height:6px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(2px); animation: iso-shadow 6s ease-in-out infinite; }
.scn-hester-moral-isolation .edge-dark { position:absolute; inset:0; border: 20px solid rgba(0,0,0,0.15); box-sizing: border-box; pointer-events: none; }
@keyframes iso-alone { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-4px) rotate(-2deg); } }
@keyframes iso-eye { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes iso-shadow { 0%,100% { transform: scale(1); opacity:0.5; } 50% { transform: scale(0.9) translateX(-5px); opacity:0.8; } }

.scn-love-departed {
  background: linear-gradient(135deg, #1a1a2e 0%, #2a2035 40%, #1a1525 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, transparent 70%);
}
.scn-love-departed .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2035 0%, #15101e 100%); }
.scn-love-departed .window-frame { position:absolute; top:12%; left:55%; width:120px; height:200px; border:12px solid #1e1a2a; border-radius:4px; background: #1a1520; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-love-departed .window-light { position:absolute; top:15%; left:58%; width:96px; height:170px; background: linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); opacity:.6; animation: ld-window 9s ease-in-out infinite alternate; }
.scn-love-departed .figure-silhouette { position:absolute; bottom:10%; left:38%; width:80px; height:220px; background: linear-gradient(135deg, #0a0a12 0%, #12101a 60%, #1a1520 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: center bottom; animation: ld-figure 8s ease-in-out infinite; }
.scn-love-departed .curtain-edge { position:absolute; top:6%; left:50%; width:40px; height:260px; background: linear-gradient(180deg, #1e1828 0%, #16101a 100%); border-radius:0 40% 40% 0 / 0 60% 60% 0; transform: skewX(-5deg); animation: ld-curtain 14s ease-in-out infinite alternate; }
.scn-love-departed .dust-mote { position:absolute; top:30%; left:45%; width:6px; height:6px; background: #5a4a6a; border-radius:50%; filter: blur(2px); animation: ld-dust 12s linear infinite; }
.scn-love-departed .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #0e0a12 0%, #050308 100%); opacity:.8; }
@keyframes ld-window { 0% { opacity:.4; filter: brightness(0.8); } 50% { opacity:.7; filter: brightness(1.2); } 100% { opacity:.5; filter: brightness(0.9); } }
@keyframes ld-figure { 0% { transform: translateY(0) rotate(-2deg); opacity:.9; } 50% { transform: translateY(-8px) rotate(3deg); opacity:1; } 100% { transform: translateY(0) rotate(-1deg); opacity:.8; } }
@keyframes ld-curtain { 0% { transform: skewX(-4deg) scaleX(1); } 50% { transform: skewX(-8deg) scaleX(1.05); } 100% { transform: skewX(-5deg) scaleX(0.95); } }
@keyframes ld-dust { 0% { transform: translate(0,0); opacity:.3; } 50% { transform: translate(20px, -30px); opacity:.8; } 100% { transform: translate(35px, -60px); opacity:0; } }

.scn-fate-of-feminine {
  background: linear-gradient(0deg, #1a1520 0%, #251e30 50%, #1e1828 100%),
              radial-gradient(ellipse at 50% 70%, #2a2035 0%, transparent 80%);
}
.scn-fate-of-feminine .bg-depth { position:absolute; inset:0; background: linear-gradient(180deg, #1e1828 0%, #0e0a14 100%); }
.scn-fate-of-feminine .column-left { position:absolute; top:5%; left:12%; width:30px; height:95%; background: linear-gradient(90deg, #2a1e30 0%, #3a2a48 20%, #2a1e30 100%); border-radius:4px; box-shadow: 8px 0 12px rgba(0,0,0,.5); }
.scn-fate-of-feminine .column-right { position:absolute; top:5%; right:12%; width:30px; height:95%; background: linear-gradient(90deg, #2a1e30 0%, #3a2a48 20%, #2a1e30 100%); border-radius:4px; box-shadow: -8px 0 12px rgba(0,0,0,.5); }
.scn-fate-of-feminine .figure-cloaked { position:absolute; bottom:5%; left:50%; width:110px; height:240px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 20%, #1a1220 0%, #0e0a14 80%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: ff-figure 10s ease-in-out infinite; }
.scn-fate-of-feminine .floor-line { position:absolute; bottom:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #0e0a12 0%, #060408 100%); border-top:2px solid #2a2035; }
.scn-fate-of-feminine .shadow-pool { position:absolute; bottom:6%; left:25%; width:50%; height:25%; background: radial-gradient(ellipse at 50% 0%, #0a0810 0%, transparent 80%); animation: ff-shadow 12s ease-in-out infinite alternate; }
.scn-fate-of-feminine .chain-link { position:absolute; top:8%; left:50%; width:4px; height:40px; background: #3a2a48; border-radius:2px; box-shadow: 0 20px 0 #2a1e30, 0 40px 0 #1e1828; animation: ff-chain 6s ease-in-out infinite; }
@keyframes ff-figure { 0% { transform: translateX(-50%) scale(1) rotate(0); opacity:.9; } 50% { transform: translateX(-50%) scale(1.02) rotate(1deg); opacity:1; } 100% { transform: translateX(-50%) scale(0.98) rotate(-1deg); opacity:.8; } }
@keyframes ff-shadow { 0% { transform: scaleY(1); opacity:.4; } 50% { transform: scaleY(1.3); opacity:.6; } 100% { transform: scaleY(0.9); opacity:.3; } }
@keyframes ff-chain { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }

.scn-woman-again-possible {
  background: linear-gradient(180deg, #0e0a14 0%, #1a1220 40%, #251e30 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a4a 0%, transparent 70%);
}
.scn-woman-again-possible .bg-void { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, #1a1520, #0e0a14); }
.scn-woman-again-possible .figure-standing { position:absolute; bottom:5%; left:35%; width:100px; height:240px; background: linear-gradient(180deg, #1a1220 0%, #0e0a14 100%); border-radius: 50% 50% 35% 35% / 70% 70% 30% 30%; transform-origin: bottom; animation: wa-figure 14s ease-in-out infinite; }
.scn-woman-again-possible .hand-reaching { position:absolute; bottom:40%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #1a1220 0%, #0e0a14 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: 80% 100%; animation: wa-hand 9s ease-in-out infinite; }
.scn-woman-again-possible .glow-touch { position:absolute; bottom:38%; left:52%; width:20px; height:20px; background: radial-gradient(circle, #6a4a7a 0%, #3a2a4a 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #4a3a5a, 0 0 60px 20px rgba(74,58,90,.3); animation: wa-glow 5s ease-in-out infinite alternate; }
.scn-woman-again-possible .stair-step { position:absolute; bottom:0; left:10%; width:80%; height:6%; background: linear-gradient(180deg, #1e1828 0%, #16101e 100%); border-radius:2px; box-shadow: 0 8px 0 #0e0a14, 0 16px 0 #120e1a; }
.scn-woman-again-possible .particle-spark { position:absolute; top:20%; left:40%; width:4px; height:4px; background: #7a5a8a; border-radius:50%; filter: blur(1px); animation: wa-spark 8s linear infinite; }
@keyframes wa-figure { 0% { transform: scaleY(1); opacity:.9; } 50% { transform: scaleY(1.02); opacity:1; } 100% { transform: scaleY(0.98); opacity:.8; } }
@keyframes wa-hand { 0% { transform: rotate(0) translateY(0); } 50% { transform: rotate(15deg) translateY(-6px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes wa-glow { 0% { opacity:.5; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:.6; transform: scale(0.9); } }
@keyframes wa-spark { 0% { transform: translate(0,0); opacity:0; } 20% { opacity:.8; } 100% { transform: translate(30px, -80px); opacity:0; } }

.scn-marble-coldness-thought {
  background: linear-gradient(135deg, #1a1a28 0%, #2a2238 50%, #1a1a28 100%),
              radial-gradient(ellipse at 50% 100%, #2a2238 0%, transparent 80%);
}
.scn-marble-coldness-thought .bg-stone { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e2e 0%, #12121a 100%); }
.scn-marble-coldness-thought .table-desk { position:absolute; bottom:10%; left:30%; width:45%; height:20%; background: linear-gradient(180deg, #2a2238 0%, #1a1a2a 100%); border-radius:6px 6px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-marble-coldness-thought .lamp-base { position:absolute; bottom:22%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a4a 0%, #2a1e3a 100%); border-radius:4px; transform: skewX(-3deg); }
.scn-marble-coldness-thought .lamp-glow { position:absolute; bottom:32%; left:38%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #5a4a6a 0%, transparent 60%); border-radius:50%; filter: blur(6px); animation: mc-lamp 7s ease-in-out infinite alternate; }
.scn-marble-coldness-thought .figure-bent { position:absolute; bottom:8%; left:35%; width:100px; height:180px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; transform-origin: bottom; animation: mc-figure 12s ease-in-out infinite; }
.scn-marble-coldness-thought .book-stack { position:absolute; bottom:14%; left:52%; width:40px; height:16px; background: linear-gradient(180deg, #2a2040 0%, #1a1328 100%); border-radius:2px; box-shadow: 0 8px 0 #1e1830, 0 16px 0 #14101e; }
.scn-marble-coldness-thought .dust-curtain { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(30,30,46,.3) 0%, transparent 100%); animation: mc-dust 18s linear infinite; }
@keyframes mc-lamp { 0% { opacity:.3; filter: blur(4px); } 50% { opacity:.7; filter: blur(8px); } 100% { opacity:.4; filter: blur(5px); } }
@keyframes mc-figure { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.01) rotate(2deg); } 100% { transform: scaleY(0.99) rotate(-1deg); } }
@keyframes mc-dust { 0% { background-position: 0% 0%; } 100% { background-position: 0% 100%; } }

/* ravenous-appetite */
.scn-ravenous-appetite {
  background: 
    linear-gradient(180deg, #1a1010 0%, #2a1a10 40%, #3a2015 100%),
    radial-gradient(ellipse at 40% 20%, #4a2015 0%, transparent 70%);
}
.scn-ravenous-appetite .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1e1410 0%, #2a1a14 70%); }
.scn-ravenous-appetite .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e0a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; }
.scn-ravenous-appetite .table { position:absolute; bottom:20%; left:10%; width:70%; height:8%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-ravenous-appetite .plate { position:absolute; bottom:27%; left:25%; width:12%; height:6%; background: radial-gradient(ellipse, #6a4030 0%, #4a2a1a 100%); border-radius: 50%; box-shadow: inset 0 -2px 4px rgba(0,0,0,.4); }
.scn-ravenous-appetite .fire { position:absolute; bottom:35%; right:20%; width:15%; height:20%; background: radial-gradient(circle at 50% 100%, #c8553d 0%, #a0461a 40%, #4a2015 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px #a0461a, 0 0 60px 20px rgba(160,70,26,.4); animation: ra-fire 4s ease-in-out infinite alternate; }
.scn-ravenous-appetite .figure { position:absolute; bottom:18%; left:15%; width:12%; height:30%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ra-write 6s ease-in-out infinite; }
.scn-ravenous-appetite .shadow { position:absolute; bottom:10%; left:10%; width:60%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: ra-shadow 8s ease-in-out infinite alternate; }
@keyframes ra-fire { 0% { transform: scaleY(1) scaleX(1) translateY(0); opacity:.8 } 50% { transform: scaleY(1.15) scaleX(1.05) translateY(-2px); opacity:1 } 100% { transform: scaleY(.95) scaleX(.98) translateY(1px); opacity:.7 } }
@keyframes ra-write { 0% { transform: rotate(0) translateX(0); } 25% { transform: rotate(3deg) translateX(3px); } 50% { transform: rotate(-2deg) translateX(-2px); } 75% { transform: rotate(2deg) translateX(4px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes ra-shadow { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.1); opacity:.7; } 100% { transform: scaleX(.9); opacity:.4; } }

/* election-day-market */
.scn-election-day-market {
  background: 
    linear-gradient(180deg, #9a9a9a 0%, #b0b0b0 30%, #c8c8c8 60%, #d0d0d0 100%),
    radial-gradient(ellipse at 50% 0%, #e0e0e0 0%, transparent 80%);
}
.scn-election-day-market .sky-overcast { position:absolute; inset:0; background: linear-gradient(180deg, #b0b0b0 0%, #d0d0d0 100%); }
.scn-election-day-market .buildings-back { position:absolute; bottom:30%; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #7a7060 0%, #5a5040 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-election-day-market .crowd-left { position:absolute; bottom:15%; left:5%; width:25%; height:25%; background: radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30%; animation: ed-crowd 12s ease-in-out infinite alternate; }
.scn-election-day-market .crowd-right { position:absolute; bottom:18%; right:5%; width:20%; height:22%; background: radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 30% 30%; animation: ed-crowd 14s ease-in-out infinite alternate-reverse; }
.scn-election-day-market .stall { position:absolute; bottom:20%; left:35%; width:30%; height:15%; background: linear-gradient(180deg, #8a7a60 0%, #6a5a40 100%); border-radius: 6px 6px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-election-day-market .hester-pearl { position:absolute; bottom:25%; left:45%; width:10%; height:22%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20%; animation: ed-walk 8s ease-in-out infinite; }
.scn-election-day-market .bunting { position:absolute; top:10%; left:0; right:0; height:6%; background: repeating-linear-gradient(90deg, #b87878 0%, #b87878 8%, #c8a040 8%, #c8a040 16%, #6a8a40 16%, #6a8a40 24%, #6a6a8a 24%, #6a6a8a 32%, #b87878 32%); border-radius: 0 0 50% 50%; animation: ed-wave 20s ease-in-out infinite; }
@keyframes ed-crowd { 0% { transform: scaleY(1) translateX(0); opacity:.8 } 50% { transform: scaleY(1.05) translateX(8px); opacity:1 } 100% { transform: scaleY(.95) translateX(-5px); opacity:.7 } }
@keyframes ed-walk { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(6px) rotate(2deg); } 50% { transform: translateX(12px) rotate(0); } 75% { transform: translateX(6px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ed-wave { 0% { transform: translateY(0) skewX(0); } 50% { transform: translateY(-4px) skewX(5deg); } 100% { transform: translateY(0) skewX(0); } }

/* hester-gray-robe */
.scn-hester-gray-robe {
  background: 
    linear-gradient(180deg, #8a8a8a 0%, #a0a0a0 40%, #b8b8b8 100%),
    radial-gradient(ellipse at 50% 70%, #c8c8c8 0%, transparent 80%);
}
.scn-hester-gray-robe .bg-fade { position:absolute; inset:0; background: linear-gradient(180deg, #9a9a9a 0%, #b0b0b0 60%, #c8c8c8 100%); }
.scn-hester-gray-robe .figure-silhouette { position:absolute; bottom:15%; left:40%; width:20%; height:50%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 80%); border-radius: 60% 40% 30% 30% / 80% 70% 20% 20%; box-shadow: 0 0 30px 10px rgba(0,0,0,.3); animation: hr-fade 10s ease-in-out infinite alternate; }
.scn-hester-gray-robe .haze { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(200,200,200,.2) 0%, transparent 70%); animation: hr-haze 15s ease-in-out infinite alternate; }
.scn-hester-gray-robe .ground { position:absolute; bottom:0; left:-10%; right:-10%; height:20%; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-hester-gray-robe .light-bleed { position:absolute; top:30%; left:38%; width:24%; height:30%; background: radial-gradient(ellipse, rgba(220,220,220,.15) 0%, transparent 100%); animation: hr-glow 8s ease-in-out infinite alternate; }
@keyframes hr-fade { 0% { opacity:.6; filter: blur(0); } 50% { opacity:.8; filter: blur(2px); } 100% { opacity:.5; filter: blur(3px); } }
@keyframes hr-haze { 0% { opacity:0; } 50% { opacity:.5; } 100% { opacity:.2; } }
@keyframes hr-glow { 0% { transform: scale(1) translateY(0); opacity:.5; } 50% { transform: scale(1.2) translateY(-10px); opacity:1; } 100% { transform: scale(.9) translateY(5px); opacity:.4; } }

/* hidden-expression */
.scn-hidden-expression {
  background: 
    linear-gradient(180deg, #7a7a8a 0%, #8a8a9a 50%, #9a9aaa 100%),
    radial-gradient(ellipse at 60% 40%, #b0b0c0 0%, transparent 70%);
}
.scn-hidden-expression .bg-soft { position:absolute; inset:0; background: linear-gradient(180deg, #8a8a9a 0%, #a0a0b0 100%); }
.scn-hidden-expression .profile-head { position:absolute; bottom:20%; left:30%; width:18%; height:35%; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 70% 30% 40% 60% / 60% 40% 60% 40%; transform: rotate(-5deg); animation: he-breathe 8s ease-in-out infinite; }
.scn-hidden-expression .eye-slit { position:absolute; bottom:42%; left:33%; width:4%; height:2%; background: #c8c8d0; border-radius: 50%; box-shadow: 0 0 10px 2px rgba(200,200,210,.6); animation: he-eye 6s ease-in-out infinite alternate; }
.scn-hidden-expression .hair-shadow { position:absolute; bottom:50%; left:28%; width:22%; height:20%; background: #1a1a2a; border-radius: 80% 20% 50% 50% / 80% 40% 60% 20%; transform: rotate(-10deg); }
.scn-hidden-expression .neck { position:absolute; bottom:18%; left:35%; width:8%; height:12%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20%; }
.scn-hidden-expression .chest-glow { position:absolute; bottom:5%; left:25%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 80%, rgba(200,200,210,.15) 0%, transparent 100%); animation: he-chest 10s ease-in-out infinite alternate; }
@keyframes he-breathe { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-5deg) scaleY(1.03) translateY(-2px); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes he-eye { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(.3); opacity:.4; } 100% { transform: scaleY(1); opacity:.9; } }
@keyframes he-chest { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.4; transform: scale(.95); } }

/* one block per scene id. Append to style.css. */
.scn-officers-diligence { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%), radial-gradient(ellipse at 50% 20%, #5a3a2a 0%, transparent 70%); }
.scn-officers-diligence .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:0 0 40% 40% / 20% 20%; }
.scn-officers-diligence .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-officers-diligence .desk { position:absolute; bottom:28%; left:10%; width:60%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-officers-diligence .lamp-glow { position:absolute; bottom:38%; left:20%; width:24px; height:30px; background: radial-gradient(circle, #ffd080 0%, #b08030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 12px #c08040; animation: od-glow 3s ease-in-out infinite alternate; }
.scn-officers-diligence .figure { position:absolute; bottom:30%; width:22px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-officers-diligence .figure-od-a { left:25%; animation: od-seat 2s ease-in-out infinite; }
.scn-officers-diligence .figure-od-b { left:45%; animation: od-seat 2s ease-in-out 0.5s infinite; }
.scn-officers-diligence .figure-od-c { left:65%; animation: od-seat 2s ease-in-out 1s infinite; }
.scn-officers-diligence .paper { position:absolute; bottom:32%; width:16px; height:10px; background: linear-gradient(135deg, #e0c8a0 0%, #b89870 100%); border-radius: 2px; transform-origin: left center; }
.scn-officers-diligence .paper-od-1 { left:30%; animation: od-paper 5s ease-in-out infinite; }
.scn-officers-diligence .paper-od-2 { left:55%; animation: od-paper 5s ease-in-out 2.5s infinite reverse; }
@keyframes od-glow { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes od-seat { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes od-paper { 0% { transform: rotate(-5deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-1px); } 70% { transform: rotate(-3deg) translateY(1px); } 100% { transform: rotate(-5deg) translateY(0); } }

.scn-fondness-for-old-officers { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%), radial-gradient(ellipse at 50% 60%, #5a3a2a 0%, transparent 80%); }
.scn-fondness-for-old-officers .bg-fo { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-fondness-for-old-officers .wall-fo { position:absolute; left:5%; right:5%; top:10%; bottom:30%; background: linear-gradient(90deg, #5a4a3a, #3a2a1a); border-radius: 20% 20% 10% 10%; opacity:0.5; }
.scn-fondness-for-old-officers .figure-fo { position:absolute; bottom:25%; width:24px; height:45px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-fondness-for-old-officers .left-fo { left:30%; animation: fo-bob 3s ease-in-out infinite; }
.scn-fondness-for-old-officers .right-fo { right:30%; animation: fo-bob 3s ease-in-out 1.5s infinite; }
.scn-fondness-for-old-officers .arm-fo { position:absolute; bottom:32%; left:42%; width:30px; height:6px; background: #1a1a1a; border-radius: 4px; transform-origin: left center; animation: fo-arm 2s ease-in-out infinite alternate; }
.scn-fondness-for-old-officers .warm-glow-fo { position:absolute; bottom:35%; left:45%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0.3) 60%, transparent 80%); border-radius:50%; animation: fo-glow 4s ease-in-out infinite alternate; }
.scn-fondness-for-old-officers .chair-fo { position:absolute; bottom:22%; left:30%; width:30px; height:20px; background: linear-gradient(180deg, #4a2a0a 0%, #2a1a00 100%); border-radius: 10% 10% 0 0; transform: translateX(-50%); }
@keyframes fo-bob { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fo-arm { 0% { transform: translateX(0) rotate(-10deg); } 50% { transform: translateX(4px) rotate(5deg); } 100% { transform: translateX(2px) rotate(-5deg); } }
@keyframes fo-glow { 0% { opacity:0.6; box-shadow: 0 0 30px 8px #c08040; } 50% { opacity:1; box-shadow: 0 0 50px 16px #ffd080; } 100% { opacity:0.7; box-shadow: 0 0 40px 12px #c08040; } }

.scn-jollity-of-aged-men { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, transparent 60%); }
.scn-jollity-of-aged-men .back-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0; }
.scn-jollity-of-aged-men .bench { position:absolute; bottom:32%; left:5%; right:5%; height:8%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius: 4px; }
.scn-jollity-of-aged-men .aged { position:absolute; bottom:33%; width:20px; height:38px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-jollity-of-aged-men .aged-ja-a { left:15%; animation: ja-sway 2.5s ease-in-out infinite; }
.scn-jollity-of-aged-men .aged-ja-b { left:45%; animation: ja-sway 2.5s ease-in-out 0.8s infinite; }
.scn-jollity-of-aged-men .aged-ja-c { right:15%; animation: ja-sway 2.5s ease-in-out 1.6s infinite; }
.scn-jollity-of-aged-men .window-light { position:absolute; bottom:40%; left:70%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(200,170,120,0.6) 0%, transparent 70%); border-radius: 10% 10% 30% 30%; animation: ja-window 6s ease-in-out infinite alternate; }
.scn-jollity-of-aged-men .dust-mote { position:absolute; top:20%; left:10%; width:6px; height:6px; background: rgba(220,200,180,0.3); border-radius:50%; filter: blur(2px); animation: ja-dust 15s linear infinite; }
@keyframes ja-sway { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ja-window { 0% { opacity:0.4; transform: scaleX(0.8); } 50% { opacity:0.8; transform: scaleX(1.2); } 100% { opacity:0.5; transform: scaleX(0.9); } }
@keyframes ja-dust { 0% { transform: translate(0,0); } 25% { transform: translate(20px, -10px); } 50% { transform: translate(-10px, 5px); } 75% { transform: translate(15px, -8px); } 100% { transform: translate(0,0); } }

.scn-dotage-vs-vitality { background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 50%, #4a3a3a 0%, transparent 60%); }
.scn-dotage-vs-vitality .bg-dv { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a3a 0%, #2a1a1a 100%); }
.scn-dotage-vs-vitality .column-dv { position:absolute; left:50%; top:10%; width:14px; height:60%; background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%); border-radius: 4px; transform: translateX(-50%); box-shadow: 2px 0 4px rgba(0,0,0,0.5); }
.scn-dotage-vs-vitality .old-figure { position:absolute; bottom:20%; left:30%; width:24px; height:36px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(0.8) rotate(5deg); animation: dv-breathe 4s ease-in-out infinite; }
.scn-dotage-vs-vitality .young-figure { position:absolute; bottom:22%; right:30%; width:22px; height:42px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dv-stand 3s ease-in-out infinite alternate; }
.scn-dotage-vs-vitality .ground-dv { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-dotage-vs-vitality .soft-glow { position:absolute; bottom:30%; left:40%; width:60px; height:80px; background: radial-gradient(circle, rgba(180,160,120,0.15) 0%, transparent 70%); border-radius:50%; animation: dv-glow 5s ease-in-out infinite alternate; }
.scn-dotage-vs-vitality .shadow-dv { position:absolute; bottom:18%; left:25%; width:40px; height:8px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(4px); animation: dv-shadow 4s ease-in-out infinite; }
@keyframes dv-breathe { 0% { transform: scaleX(0.8) rotate(5deg) translateY(0); } 50% { transform: scaleX(0.8) rotate(5deg) translateY(-2px); } 100% { transform: scaleX(0.8) rotate(5deg) translateY(0); } }
@keyframes dv-stand { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dv-glow { 0% { opacity:0.3; transform: scale(0.95); } 50% { opacity:0.7; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes dv-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.2) translateX(2px); } 100% { transform: scaleX(1) translateX(0); } }

.scn-dimmesdale-wondrous-strength { background: linear-gradient(180deg, #f5e6c8 0%, #d4a86a 30%, #9a7b4e 60%, #4a3a2a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-dimmesdale-wondrous-strength .sky-glow { position:absolute; top:0; left:0; right:0; height:45%; background: linear-gradient(180deg, rgba(255,248,224,.6) 0%, rgba(212,168,106,.2) 100%); animation: dmw-sky 8s ease-in-out infinite alternate; }
.scn-dimmesdale-wondrous-strength .arch-back { position:absolute; top:8%; left:50%; width:70%; height:55%; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-dimmesdale-wondrous-strength .column-l { position:absolute; top:5%; left:25%; width:6%; height:85%; background: linear-gradient(90deg, #8a7a6a 0%, #b8a898 30%, #8a7a6a 70%, #6a5a4a 100%); border-radius:4px; box-shadow: 4px 0 8px rgba(0,0,0,.3); }
.scn-dimmesdale-wondrous-strength .column-r { position:absolute; top:5%; right:25%; width:6%; height:85%; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 30%, #b8a898 70%, #8a7a6a 100%); border-radius:4px; box-shadow: -4px 0 8px rgba(0,0,0,.3); }
.scn-dimmesdale-wondrous-strength .balcony { position:absolute; bottom:25%; left:32%; right:32%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:2px; box-shadow: 0 -4px 12px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,255,255,.1); }
.scn-dimmesdale-wondrous-strength .figure-body { position:absolute; bottom:30%; left:50%; width:7%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: dmw-breathe 4s ease-in-out infinite; }
.scn-dimmesdale-wondrous-strength .figure-arm { position:absolute; bottom:42%; left:49%; width:10%; height:5%; transform-origin: right center; background: linear-gradient(90deg, #1a0a1a 0%, #2a1a2a 100%); border-radius:50% 10% 10% 50%; animation: dmw-arm 6s ease-in-out infinite; }
.scn-dimmesdale-wondrous-strength .shadow-sharp { position:absolute; bottom:0; left:15%; right:15%; height:35%; background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.3) 50%, transparent 100%); animation: dmw-shadow 8s ease-in-out infinite alternate; }
@keyframes dmw-sky { 0% { opacity:.6; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.05) } 100% { opacity:.7; transform:scaleY(.95) } }
@keyframes dmw-breathe { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.03) } 100% { transform:translateX(-50%) scaleY(.98) } }
@keyframes dmw-arm { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-5deg) } }
@keyframes dmw-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-wilson-sermon-on-sin { background: linear-gradient(180deg, #e8dcc8 0%, #b8a898 20%, #7a6a5a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-wilson-sermon-on-sin .pulpit { position:absolute; bottom:20%; left:50%; width:18%; height:30%; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1a0a 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,255,255,.05); }
.scn-wilson-sermon-on-sin .figure-clergy { position:absolute; bottom:45%; left:50%; width:10%; height:22%; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #0a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: wss-figure 5s ease-in-out infinite; }
.scn-wilson-sermon-on-sin .figure-arm-raised { position:absolute; bottom:55%; left:48%; width:12%; height:6%; transform-origin: right center; background: linear-gradient(90deg, #0a0a1a 0%, #1a1a2a 100%); border-radius:50% 10% 10% 50%; animation: wss-arm 3s ease-in-out infinite; }
.scn-wilson-sermon-on-sin .letter-glow { position:absolute; bottom:38%; left:50%; width:4%; height:5%; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #8a3a2a 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(200,85,61,.4), 0 0 60px 20px rgba(200,85,61,.2); animation: wss-glow 4s ease-in-out infinite alternate; }
.scn-wilson-sermon-on-sin .pew-back { position:absolute; bottom:10%; left:8%; right:8%; height:15%; background: linear-gradient(0deg, #3a2a1a 0%, #4a3a2a 100%); border-radius:4px; transform:scaleX(.95); opacity:.7; }
.scn-wilson-sermon-on-sin .pew-mid { position:absolute; bottom:10%; left:5%; right:5%; height:18%; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%); border-radius:4px; transform:scaleX(.85); opacity:.6; }
.scn-wilson-sermon-on-sin .pew-front { position:absolute; bottom:10%; left:2%; right:2%; height:20%; background: linear-gradient(0deg, #3a2a1a 0%, #6a5a4a 100%); border-radius:4px; transform:scaleX(.75); opacity:.5; }
.scn-wilson-sermon-on-sin .shadow-congregation { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.2) 50%, transparent 100%); animation: wss-shadow 8s ease-in-out infinite alternate; }
@keyframes wss-figure { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-2px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes wss-arm { 0% { transform:rotate(-10deg) } 50% { transform:rotate(15deg) } 100% { transform:rotate(-10deg) } }
@keyframes wss-glow { 0% { opacity:.5; transform:translateX(-50%) scale(.8) } 50% { opacity:1; transform:translateX(-50%) scale(1.2) } 100% { opacity:.7; transform:translateX(-50%) scale(.9) } }
@keyframes wss-shadow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-hester-stony-insensibility { background: linear-gradient(180deg, #f5e6c8 0%, #d4a86a 20%, #8a7a5a 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); position:relative; overflow:hidden; }
.scn-hester-stony-insensibility .pedestal { position:absolute; bottom:15%; left:50%; width:20%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:4px; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-hester-stony-insensibility .figure-hester { position:absolute; bottom:22%; left:50%; width:8%; height:28%; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #0a0a0a 100%); border-radius:45% 45% 35% 35% / 50% 50% 30% 30%; animation: hsi-still 6s ease-in-out infinite; }
.scn-hester-stony-insensibility .letter-scarlet { position:absolute; bottom:38%; left:50%; width:7%; height:8%; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #a0461a 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(200,85,61,.5), 0 0 80px 30px rgba(200,85,61,.2); animation: hsi-letter 4s ease-in-out infinite alternate; }
.scn-hester-stony-insensibility .crowd-1 { position:absolute; bottom:10%; left:2%; right:2%; height:25%; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 80%, transparent 100%); border-radius:50% 50% 0 0; opacity:.6; animation: hsi-crowd 10s ease-in-out infinite; }
.scn-hester-stony-insensibility .crowd-2 { position:absolute; bottom:8%; left:0; right:0; height:28%; background: linear-gradient(0deg, #2a1a0a 0%, #4a3a2a 80%, transparent 100%); border-radius:40% 60% 0 0; opacity:.4; animation: hsi-crowd 12s ease-in-out infinite reverse; }
.scn-hester-stony-insensibility .sun-ray-1 { position:absolute; top:0; left:30%; width:4%; height:60%; background: linear-gradient(180deg, rgba(255,248,224,.3) 0%, transparent 100%); transform:rotate(8deg); transform-origin:top center; animation: hsi-ray1 6s ease-in-out infinite alternate; }
.scn-hester-stony-insensibility .sun-ray-2 { position:absolute; top:0; right:30%; width:4%; height:55%; background: linear-gradient(180deg, rgba(255,248,224,.2) 0%, transparent 100%); transform:rotate(-6deg); transform-origin:top center; animation: hsi-ray2 7s ease-in-out infinite alternate; }
.scn-hester-stony-insensibility .shadow-hard { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,.3) 40%, transparent 100%); animation: hsi-shadow 8s ease-in-out infinite alternate; }
@keyframes hsi-still { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-1px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes hsi-letter { 0% { opacity:.6; transform:translateX(-50%) scale(.9) } 50% { opacity:1; transform:translateX(-50%) scale(1.1) } 100% { opacity:.7; transform:translateX(-50%) scale(.95) } }
@keyframes hsi-crowd { 0% { transform:scaleY(1) } 50% { transform:scaleY(.97) } 100% { transform:scaleY(1) } }
@keyframes hsi-ray1 { 0% { opacity:.3; transform:rotate(6deg) } 50% { opacity:.6; transform:rotate(10deg) } 100% { opacity:.4; transform:rotate(7deg) } }
@keyframes hsi-ray2 { 0% { opacity:.2; transform:rotate(-4deg) } 50% { opacity:.5; transform:rotate(-8deg) } 100% { opacity:.3; transform:rotate(-5deg) } }
@keyframes hsi-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }

.scn-return-to-prison { background: linear-gradient(180deg, #d4a86a 0%, #8a7a5a 30%, #4a3a2a 60%, #1a0a0a 100%), radial-gradient(ellipse at 50% 0%, #f5e6c8 0%, transparent 50%); position:relative; overflow:hidden; }
.scn-return-to-prison .prison-wall { position:absolute; top:0; left:20%; right:20%; height:100%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-return-to-prison .arch-portal { position:absolute; bottom:10%; left:50%; width:25%; height:45%; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius:50% 50% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-return-to-prison .door-iron { position:absolute; bottom:10%; left:50%; width:20%; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius:2px; box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 4px 10px rgba(0,0,0,.4); }
.scn-return-to-prison .figure-dark { position:absolute; bottom:12%; left:50%; width:8%; height:32%; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 50%, #0a0a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: rtp-enter 8s ease-in-out infinite; }
.scn-return-to-prison .letter-gleam { position:absolute; bottom:32%; left:50%; width:5%; height:6%; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #8a2a1a 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(200,85,61,.6), 0 0 100px 40px rgba(200,85,61,.3), 0 0 150px 60px rgba(200,85,61,.1); animation: rtp-gleam 3s ease-in-out infinite alternate; }
.scn-return-to-prison .passage-dark { position:absolute; bottom:0; left:40%; right:40%; height:55%; background: linear-gradient(0deg, #0a0a0a 0%, #1a0a0a 50%, transparent 100%); border-radius:0 0 20% 20%; animation: rtp-tunnel 10s ease-in-out infinite; }
.scn-return-to-prison .shadow-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,.4) 50%, transparent 100%); }
.scn-return-to-prison .light-outside { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, rgba(245,230,200,.3) 0%, rgba(212,168,106,.1) 40%, transparent 100%); animation: rtp-light 8s ease-in-out infinite alternate; }
@keyframes rtp-enter { 0% { transform:translateX(-50%) translateY(0); opacity:.8 } 50% { transform:translateX(-50%) translateY(-3px); opacity:1 } 100% { transform:translateX(-50%) translateY(0); opacity:.8 } }
@keyframes rtp-gleam { 0% { opacity:.5; transform:translateX(-50%) scale(.8); filter:blur(0) } 50% { opacity:1; transform:translateX(-50%) scale(1.2); filter:blur(2px) } 100% { opacity:.7; transform:translateX(-50%) scale(.9); filter:blur(0) } }
@keyframes rtp-tunnel { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rtp-light { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* dimmesdale-voice-tremulous */
.scn-dimmesdale-voice-tremulous {
  background:
    linear-gradient(180deg, #6d9bd0 0%, #9fc5e8 30%, #f5deb3 70%, #e8c27a 100%),
    radial-gradient(ellipse at 60% 20%, rgba(255, 230, 120, 0.4) 0%, transparent 60%);
}
.scn-dimmesdale-voice-tremulous .sky-bands { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #4a7fa5 0%, transparent 100%); animation: dtv-sky 14s ease-in-out infinite alternate; }
.scn-dimmesdale-voice-tremulous .sun { position:absolute; top:15%; right:20%; width:80px; height:80px; background: radial-gradient(circle, #fff8dc 0%, #f5cc74 60%, transparent 100%); border-radius:50%; filter: blur(2px); animation: dtv-sun 8s ease-in-out infinite; }
.scn-dimmesdale-voice-tremulous .pulpit { position:absolute; bottom:30%; left:50%; width:90px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5c3a 0%, #4a3520 100%); border-radius: 5% 5% 15% 15%; box-shadow: inset 0 8px 15px rgba(0,0,0,0.4), 8px 0 10px rgba(0,0,0,0.2); }
.scn-dimmesdale-voice-tremulous .dimmesdale-silhouette { position:absolute; bottom:42%; left:50%; width:60px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 55% 55% 45% 45%; box-shadow: -8px 0 15px rgba(0,0,0,0.5); }
.scn-dimmesdale-voice-tremulous .raised-arm { position:absolute; bottom:55%; left:44%; width:8px; height:40px; background: #1a1a1a; border-radius:20% 20% 40% 40%; transform: rotate(-20deg); transform-origin: bottom center; animation: dtv-arm 3s ease-in-out infinite alternate; }
.scn-dimmesdale-voice-tremulous .crowd-shadows { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, rgba(30,20,10,0.7) 0%, transparent 100%); border-radius:60% 40% 0 0 / 100% 80% 0 0; }
.scn-dimmesdale-voice-tremulous .light-pillar { position:absolute; top:5%; left:40%; width:20%; height:80%; background: linear-gradient(180deg, rgba(255,240,150,0.15) 0%, transparent 80%); transform: skewX(-10deg); animation: dtv-light 6s ease-in-out infinite alternate; }
.scn-dimmesdale-voice-tremulous .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 60% 20%, rgba(255,255,230,0.1) 0%, transparent 40%); animation: dtv-dust 12s linear infinite; }
@keyframes dtv-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes dtv-sun { 0%,100% { box-shadow: 0 0 30px 10px #f5cc74, 0 0 60px 20px rgba(245,204,116,0.3); } 50% { box-shadow: 0 0 40px 15px #ffeaa0, 0 0 80px 30px rgba(255,234,160,0.5); } }
@keyframes dtv-arm { 0% { transform: rotate(-20deg) translateY(0); } 100% { transform: rotate(10deg) translateY(-5px); } }
@keyframes dtv-light { 0% { opacity:0.3; transform: skewX(-10deg) translateX(0); } 100% { opacity:0.7; transform: skewX(-5deg) translateX(5px); } }
@keyframes dtv-dust { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

/* hester-shakes-head */
.scn-hester-shakes-head {
  background:
    linear-gradient(180deg, #7da1c4 0%, #b8d4e8 40%, #e9e0c0 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,220,130,0.3) 0%, transparent 70%);
}
.scn-hester-shakes-head .sunburst { position:absolute; top:5%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle, #fff4cc 0%, #ffe180 50%, transparent 80%); border-radius:50%; animation: hsh-sunburst 5s ease-in-out infinite alternate; }
.scn-hester-shakes-head .scaffold { position:absolute; bottom:25%; left:30%; right:30%; height:60px; background: linear-gradient(180deg, #6b4a2a 0%, #3d2a14 100%); border-radius:10% 10% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
.scn-hester-shakes-head .hester-profile { position:absolute; bottom:35%; left:40%; width:50px; height:90px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius:50% 50% 40% 40% / 55% 55% 45% 45%; transform: translateX(-10px); animation: hsh-headshake 0.8s ease-in-out infinite; }
.scn-hester-shakes-head .baby-bundle { position:absolute; bottom:32%; left:45%; width:20px; height:25px; background: #3a2a20; border-radius:40% 40% 50% 50%; }
.scn-hester-shakes-head .wilsons-hand { position:absolute; bottom:50%; right:25%; width:8px; height:30px; background: #3a2a1a; border-radius:30% 30% 20% 20%; transform: rotate(20deg); transform-origin: bottom center; animation: hsh-point 2s ease-in-out infinite alternate; }
.scn-hester-shakes-head .shadow-stripe { position:absolute; top:0; left:15%; width:3px; height:100%; background: rgba(0,0,0,0.15); transform: skewX(-70deg); }
.scn-hester-shakes-head .wind-swept-hair { position:absolute; bottom:38%; left:36%; width:40px; height:15px; background: linear-gradient(180deg, #2a1a10 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: hsh-hair 3s ease-in-out infinite; }
.scn-hester-shakes-head .audience-silhouettes { position:absolute; bottom:10%; left:0; right:0; height:35%; background: linear-gradient(180deg, rgba(40,30,20,0.6) 0%, transparent 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; }
@keyframes hsh-sunburst { 0% { transform:translateX(-50%) scale(1); opacity:0.9; } 100% { transform:translateX(-50%) scale(1.05); opacity:1; } }
@keyframes hsh-headshake { 0% { transform:translateX(-10px) rotate(0deg); } 25% { transform:translateX(-8px) rotate(-5deg); } 50% { transform:translateX(-10px) rotate(5deg); } 75% { transform:translateX(-12px) rotate(-3deg); } 100% { transform:translateX(-10px) rotate(0deg); } }
@keyframes hsh-point { 0% { transform: rotate(20deg) translateY(0); } 100% { transform: rotate(30deg) translateY(-4px); } }
@keyframes hsh-hair { 0% { opacity:0.5; transform: translateY(0); } 50% { opacity:1; transform: translateY(-5px) rotate(-5deg); } 100% { opacity:0.5; transform: translateY(0); } }

/* hester-never */
.scn-hester-never {
  background:
    linear-gradient(180deg, #6f9bc0 0%, #aecae6 40%, #ebdbbc 100%),
    radial-gradient(ellipse at 40% 50%, rgba(255,200,80,0.2) 0%, transparent 60%);
}
.scn-hester-never .sky-glow { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b3d0e8 0%, transparent 100%); animation: hne-glow 12s ease-in-out infinite alternate; }
.scn-hester-never .hester-turned { position:absolute; bottom:30%; left:30%; width:50px; height:95px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius:50% 50% 40% 40% / 55% 55% 45% 45%; transform: rotate(15deg); }
.scn-hester-never .dimmesdale-face { position:absolute; bottom:35%; right:25%; width:45px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 55% 55% 45% 45%; transform: rotate(-10deg); }
.scn-hester-never .eye-contact-line { position:absolute; bottom:55%; left:38%; right:38%; height:2px; background: linear-gradient(90deg, transparent, rgba(255,210,80,0.6), transparent); animation: hne-eye 2s ease-in-out infinite alternate; }
.scn-hester-never .brand-letter-shadow { position:absolute; bottom:45%; left:28%; width:20px; height:25px; background: radial-gradient(circle, rgba(100,40,10,0.8) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: hne-brand 4s ease-in-out infinite; }
.scn-hester-never .shoulder-tense { position:absolute; bottom:32%; left:28%; width:25px; height:15px; background: #2a1a10; border-radius:0 0 50% 50%; transform: rotate(20deg); }
.scn-hester-never .ground-flare { position:absolute; bottom:0; left:30%; right:30%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.15) 0%, transparent 100%); }
@keyframes hne-glow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes hne-eye { 0% { opacity:0.2; transform: scaleX(0.8); } 100% { opacity:0.8; transform: scaleX(1.2); } }
@keyframes hne-brand { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.3); } 100% { opacity:0.3; transform: scale(1); } }

/* hester-will-not-speak */
.scn-hester-will-not-speak {
  background:
    linear-gradient(180deg, #6d8eb0 0%, #b3cfe8 50%, #f0e4c8 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255,230,150,0.35) 0%, transparent 70%);
}
.scn-hester-will-not-speak .sun-bleached { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d4e4f0 0%, transparent 100%); animation: hwn-bleach 10s ease-in-out infinite alternate; }
.scn-hester-will-not-speak .hester-standing { position:absolute; bottom:30%; left:45%; width:55px; height:100px; background: linear-gradient(180deg, #1a0a05 0%, #2a1a10 50%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 55% 55% 45% 45%; transform: translateX(-50%); }
.scn-hester-will-not-speak .child-hidden { position:absolute; bottom:28%; left:48%; width:22px; height:28px; background: #2a1a10; border-radius:40% 40% 50% 50%; opacity:0.8; }
.scn-hester-will-not-speak .staff-pointing { position:absolute; bottom:45%; left:20%; width:6px; height:70px; background: #4a3a2a; transform: rotate(25deg); transform-origin: bottom center; animation: hwn-staff 3s ease-in-out infinite alternate; }
.scn-hester-will-not-speak .pale-hand { position:absolute; bottom:42%; left:43%; width:12px; height:20px; background: #d4c4b4; border-radius:30% 30% 40% 40%; transform: rotate(-10deg); }
.scn-hester-will-not-speak .retreating-shadow { position:absolute; bottom:10%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, rgba(30,20,10,0.5) 0%, transparent 100%); border-radius:40% 40% 0 0; }
.scn-hester-will-not-speak .single-tear { position:absolute; bottom:40%; left:44%; width:4px; height:8px; background: radial-gradient(ellipse at top, #aad4f0 0%, transparent 100%); border-radius:50%; animation: hwn-tear 4s ease-in-out infinite; }
@keyframes hwn-bleach { 0% { opacity:0.5; } 100% { opacity:1; } }
@keyframes hwn-staff { 0% { transform: rotate(25deg) translateY(0); } 100% { transform: rotate(30deg) translateY(-3px); } }
@keyframes hwn-tear { 0% { opacity:0; transform: translateY(0) scaleY(1); } 50% { opacity:1; transform: translateY(5px) scaleY(1.5); } 100% { opacity:0; transform: translateY(10px) scaleY(0.5); } }

/* Scene: pearl-hostile-fancies (phf) */
.scn-pearl-hostile-fancies {
  background: 
    linear-gradient(180deg, #2c2c3a 0%, #3a3a4e 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a5e 0%, transparent 70%);
}
.scn-pearl-hostile-fancies .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3e3e52 0%, #2a2a3c 100%);
  animation: phf-wall 20s ease-in-out infinite alternate;
}
.scn-pearl-hostile-fancies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-pearl-hostile-fancies .window {
  position: absolute; top: 8%; left: 15%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #a8c8e8 0%, #6a8ab0 40%, transparent 70%);
  border: 4px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(168,200,232,0.3);
  animation: phf-window 8s ease-in-out infinite alternate;
}
.scn-pearl-hostile-fancies .child {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: phf-child 4s ease-in-out infinite;
}
.scn-pearl-hostile-fancies .toy {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-10deg);
  animation: phf-toy 3s ease-in-out infinite alternate;
}
.scn-pearl-hostile-fancies .shadow {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: phf-shadow 4s ease-in-out infinite;
}
.scn-pearl-hostile-fancies .ghost {
  position: absolute; top: 30%; right: 20%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, rgba(200,200,220,0.2) 0%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(6px);
  animation: phf-ghost 12s ease-in-out infinite alternate;
}
@keyframes phf-wall { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes phf-window { 0% { opacity:0.6; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.05) } 100% { opacity:0.7; transform: scaleX(1) } }
@keyframes phf-child { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes phf-toy { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes phf-shadow { 0%,100% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.6; transform: translateX(8px) } }
@keyframes phf-ghost { 0% { opacity:0; transform: translateY(0) scale(0.8) } 50% { opacity:0.4; transform: translateY(-10px) scale(1.1) } 100% { opacity:0; transform: translateY(0) scale(0.8) } }

/* Scene: pearl-sad-training (pst) */
.scn-pearl-sad-training {
  background: 
    linear-gradient(180deg, #2a2a38 0%, #3a3a4a 40%, #1e1e2a 100%),
    radial-gradient(ellipse at 50% 90%, #4a4a5a 0%, transparent 70%);
}
.scn-pearl-sad-training .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4c 0%, #2a2a3a 100%);
  animation: pst-wall 18s ease-in-out infinite alternate;
}
.scn-pearl-sad-training .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3e2e1e 0%, #1e1e0e 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-pearl-sad-training .figure {
  position: absolute; bottom: 22%; left: 30%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a2a38 0%, #1a1a28 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: pst-figure 5s ease-in-out infinite;
}
.scn-pearl-sad-training .table {
  position: absolute; bottom: 15%; left: 45%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-pearl-sad-training .book {
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: pst-book 6s ease-in-out infinite alternate;
}
.scn-pearl-sad-training .rod {
  position: absolute; bottom: 25%; left: 52%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: pst-rod 3s ease-in-out infinite alternate;
}
.scn-pearl-sad-training .light {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(220,200,180,0.15) 0%, transparent 80%);
  animation: pst-light 10s ease-in-out infinite alternate;
}
@keyframes pst-wall { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes pst-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(-5px) translateY(0) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes pst-book { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes pst-rod { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(2px) } 100% { transform: rotate(-15deg) translateX(0) } }
@keyframes pst-light { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

/* Scene: hester-agony-over-pearl (hap) */
.scn-hester-agony-over-pearl {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a3a 0%, transparent 70%);
}
.scn-hester-agony-over-pearl .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: hap-wall 15s ease-in-out infinite alternate;
}
.scn-hester-agony-over-pearl .hearth {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.5);
}
.scn-hester-agony-over-pearl .mother {
  position: absolute; bottom: 25%; left: 35%; width: 25px; height: 48px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hap-mother 6s ease-in-out infinite;
}
.scn-hester-agony-over-pearl .child {
  position: absolute; bottom: 22%; left: 50%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hap-child 5s ease-in-out infinite alternate;
}
.scn-hester-agony-over-pearl .chair {
  position: absolute; bottom: 15%; left: 25%; width: 35px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  transform: rotate(-5deg);
}
.scn-hester-agony-over-pearl .glow {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c06020 0%, #802808 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: hap-glow 4s ease-in-out infinite alternate;
}
.scn-hester-agony-over-pearl .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 60px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: hap-shadow 6s ease-in-out infinite;
}
@keyframes hap-wall { 0%,100% { opacity:0.9 } 50% { opacity:0.7 } }
@keyframes hap-mother { 0% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(-3px) translateY(-2px) rotate(-2deg) } 60% { transform: translateX(3px) translateY(0) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes hap-child { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hap-glow { 0% { opacity:0.4; transform: scale(0.8) } 50% { opacity:0.9; transform: scale(1.2) } 100% { opacity:0.5; transform: scale(0.9) } }
@keyframes hap-shadow { 0%,100% { opacity:0.2; transform: translateX(0) } 50% { opacity:0.5; transform: translateX(10px) } }

/* Scene: pearl-notices-scarlet-letter (pns) */
.scn-pearl-notices-scarlet-letter {
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 40%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 80%, #5a5a6a 0%, transparent 70%);
}
.scn-pearl-notices-scarlet-letter .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a4a5c 0%, #3a3a4a 100%);
  animation: pns-wall 20s ease-in-out infinite alternate;
}
.scn-pearl-notices-scarlet-letter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-pearl-notices-scarlet-letter .mother {
  position: absolute; bottom: 25%; left: 40%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pns-mother 6s ease-in-out infinite;
}
.scn-pearl-notices-scarlet-letter .child {
  position: absolute; bottom: 22%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pns-child 3s ease-in-out infinite alternate;
}
.scn-pearl-notices-scarlet-letter .letter {
  position: absolute; bottom: 40%; left: 43%; width: 12px; height: 14px;
  background: radial-gradient(circle, #c84030 0%, #a02018 60%, #701010 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 12px 4px rgba(200,64,48,0.3);
  animation: pns-letter 4s ease-in-out infinite alternate;
}
.scn-pearl-notices-scarlet-letter .light {
  position: absolute; top: 10%; left: 20%; width: 50%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,220,0.2) 0%, transparent 80%);
  animation: pns-light 12s ease-in-out infinite alternate;
}
.scn-pearl-notices-scarlet-letter .shadow {
  position: absolute; bottom: 18%; left: 35%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: pns-shadow 3s ease-in-out infinite;
}
@keyframes pns-wall { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes pns-mother { 0% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 60% { transform: translateX(3px) translateY(0) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes pns-child { 0% { transform: translateX(0) rotate(0) scale(1) } 50% { transform: translateX(-8px) rotate(-5deg) scale(1.05) } 100% { transform: translateX(0) rotate(0) scale(1) } }
@keyframes pns-letter { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:0.9; transform: scale(1) } }
@keyframes pns-light { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes pns-shadow { 0%,100% { opacity:0.2; transform: translateX(0) } 50% { opacity:0.4; transform: translateX(-5px) } }

/* scene: hester-fears-reading (tense, dim interior) */
.scn-hester-fears-reading {
  background:
    radial-gradient(ellipse at 60% 40%, #3a2a2a 0%, transparent 60%),
    linear-gradient(180deg, #1c1410 0%, #2a1e1a 40%, #1a1210 100%);
}
.scn-hester-fears-reading .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-bottom: 2px solid #3a2a2a;
}
.scn-hester-fears-reading .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #0e0a08 0%, #1a1210 100%);
}
.scn-hester-fears-reading .window-frame {
  position: absolute; top: 18%; right: 12%; width: 70px; height: 100px;
  background: transparent;
  border: 4px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5);
}
.scn-hester-fears-reading .shadow-column {
  position: absolute; top: 15%; left: 20%; width: 20px; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 60%);
  filter: blur(6px);
  animation: ht1-shadow 9s ease-in-out infinite alternate;
}
.scn-hester-fears-reading .table {
  position: absolute; bottom: 28%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  transform: perspective(200px) rotateX(10deg);
}
.scn-hester-fears-reading .candle-glow {
  position: absolute; bottom: 45%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c08040 0%, #8a5a2a 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  mix-blend-mode: screen;
  animation: ht1-glow 4s ease-in-out infinite alternate;
}
.scn-hester-fears-reading .candle {
  position: absolute; bottom: 45%; left: 38%; width: 8px; height: 18px;
  margin-left: -4px;
  background: linear-gradient(180deg, #e8c080 0%, #b08040 100%);
  border-radius: 1px 1px 2px 2px;
  box-shadow: 0 -4px 6px rgba(255,200,100,0.5);
}
.scn-hester-fears-reading .scholar-silhouette {
  position: absolute; bottom: 35%; left: 55%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #0a0806 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: blur(1px);
  animation: ht1-scholar 6s ease-in-out infinite;
}
.scn-hester-fears-reading .hester-arm {
  position: absolute; bottom: 38%; left: 45%; width: 10px; height: 30px;
  background: #1a1210;
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-20deg);
  transform-origin: top center;
  animation: ht1-arm 4s ease-in-out infinite alternate;
}
@keyframes ht1-shadow {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.7; transform: translateX(5px); }
  100% { opacity: 0.4; transform: translateX(-3px); }
}
@keyframes ht1-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 ht1-scholar {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-3px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(3px) translateY(1px) rotate(-1deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ht1-arm {
  0% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(-10deg) translateY(-2px); }
}

/* scene: not-reveal-still-mine */
.scn-not-reveal-still-mine {
  background:
    radial-gradient(ellipse at 50% 35%, #3a2a22 0%, transparent 65%),
    linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
}
.scn-not-reveal-still-mine .wall-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
}
.scn-not-reveal-still-mine .doorway {
  position: absolute; top: 25%; left: 20%; width: 60px; height: 120px;
  background: transparent;
  border: 3px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.9);
}
.scn-not-reveal-still-mine .door-shadow {
  position: absolute; top: 28%; left: 22%; width: 50px; height: 90px;
  background: rgba(0,0,0,0.4);
  filter: blur(8px);
  animation: ht2-door-shadow 12s ease-in-out infinite alternate;
}
.scn-not-reveal-still-mine .threshold {
  position: absolute; bottom: 40%; left: 18%; width: 80px; height: 6px;
  background: #2a1e14;
  border-radius: 2px;
}
.scn-not-reveal-still-mine .scholar-figure {
  position: absolute; bottom: 30%; left: 35%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #0a0806 0%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ht2-scholar 7s ease-in-out infinite;
}
.scn-not-reveal-still-mine .scholar-hand {
  position: absolute; bottom: 36%; left: 40%; width: 8px; height: 20px;
  background: #0a0806;
  border-radius: 40% 40% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(35deg);
  transform-origin: bottom center;
  animation: ht2-hand 3s ease-in-out infinite alternate;
}
.scn-not-reveal-still-mine .glow-spot {
  position: absolute; bottom: 48%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, #a07030 0%, #603a1a 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(5px);
  mix-blend-mode: screen;
  animation: ht2-spot 5s ease-in-out infinite alternate;
}
.scn-not-reveal-still-mine .dust-motes {
  position: absolute; top: 30%; left: 40%; width: 100px; height: 100px;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,140,0.08) 0%, transparent 60%);
  filter: blur(8px);
  animation: ht2-dust 20s linear infinite;
}
@keyframes ht2-door-shadow {
  0% { transform: translateX(0) scaleY(1); opacity:0.6; }
  50% { transform: translateX(10px) scaleY(0.9); opacity:0.8; }
  100% { transform: translateX(-5px) scaleY(1.1); opacity:0.5; }
}
@keyframes ht2-scholar {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  33% { transform: translateX(4px) translateY(-3px) rotate(2deg); }
  66% { transform: translateX(-4px) translateY(2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ht2-hand {
  0% { transform: rotate(35deg) scale(1); }
  100% { transform: rotate(50deg) scale(1.05); }
}
@keyframes ht2-spot {
  0% { opacity: 0.5; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes ht2-dust {
  0% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-20px) translateX(10px); }
  100% { transform: translateY(0) translateX(0); }
}

/* scene: keep-my-secret */
.scn-keep-my-secret {
  background:
    radial-gradient(ellipse at 70% 50%, #2a1e18 0%, transparent 70%),
    linear-gradient(180deg, #14100c 0%, #0e0a08 50%, #1a1210 100%);
}
.scn-keep-my-secret .corner-wall {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(90deg, #1a1410 0%, #0e0a08 100%);
  border-right: 2px solid #2a1e14;
}
.scn-keep-my-secret .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #0a0806 0%, #14100c 100%);
}
.scn-keep-my-secret .hester-silhouette {
  position: absolute; bottom: 28%; left: 25%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #0a0806 0%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ht3-hester 8s ease-in-out infinite;
}
.scn-keep-my-secret .scholar-head {
  position: absolute; bottom: 42%; left: 55%; width: 18px; height: 22px;
  background: #0a0806;
  border-radius: 50%;
  filter: blur(1px);
  animation: ht3-head 5s ease-in-out infinite alternate;
}
.scn-keep-my-secret .candle-stand {
  position: absolute; bottom: 30%; left: 45%; width: 6px; height: 50px;
  background: #2a1e14;
  border-radius: 2px;
}
.scn-keep-my-secret .flame-glow {
  position: absolute; bottom: 52%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #b08040 0%, #603a1a 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(6px);
  mix-blend-mode: screen;
  animation: ht3-flame 3s ease-in-out infinite alternate;
}
.scn-keep-my-secret .shadow-sweep {
  position: absolute; top: 10%; left: 10%; width: 200px; height: 200px;
  background: radial-gradient(ellipse at 30% 40%, rgba(0,0,0,0.3) 0%, transparent 60%);
  filter: blur(10px);
  animation: ht3-sweep 15s linear infinite;
}
.scn-keep-my-secret .hanging-cloth {
  position: absolute; top: 8%; right: 5%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 20% 20% 60% 60%;
  filter: blur(2px);
  animation: ht3-cloth 6s ease-in-out infinite alternate;
}
@keyframes ht3-hester {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-5px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(3px) translateY(0) rotate(-1deg); }
}
@keyframes ht3-head {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(5deg); }
  100% { transform: translateX(-2px) translateY(1px) rotate(-3deg); }
}
@keyframes ht3-flame {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.15); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes ht3-sweep {
  0% { transform: translateX(0); opacity: 0.4; }
  50% { transform: translateX(-30px); opacity: 0.7; }
  100% { transform: translateX(0); opacity: 0.4; }
}
@keyframes ht3-cloth {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-5px); }
  100% { transform: rotate(-2deg) translateY(0); }
}

/* scene: reasons-unspoken */
.scn-reasons-unspoken {
  background:
    radial-gradient(ellipse at 50% 50%, #2a1e14 0%, transparent 70%),
    linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
}
.scn-reasons-unspoken .deep-shadow {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,0.1) 0px, rgba(0,0,0,0.15) 10px, transparent 30px);
  filter: blur(4px);
}
.scn-reasons-unspoken .archway {
  position: absolute; top: 12%; left: 20%; width: 60%; height: 55%;
  background: transparent;
  border: 4px solid #3a2a1a;
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-reasons-unspoken .pillar {
  position: absolute; top: 10%; width: 12px; height: 80%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1210 100%);
  border-radius: 4px;
}
.scn-reasons-unspoken .pillar.left { left: 18%; }
.scn-reasons-unspoken .pillar.right { right: 18%; }
.scn-reasons-unspoken .hester-form {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #0a0806 0%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ht4-hester 7s ease-in-out infinite alternate;
}
.scn-reasons-unspoken .scholar-form {
  position: absolute; bottom: 25%; right: 30%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #0a0806 0%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ht4-scholar 9s ease-in-out infinite alternate;
}
.scn-reasons-unspoken .lantern-glow {
  position: absolute; top: 30%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle, #a07030 0%, #603a1a 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  mix-blend-mode: screen;
  animation: ht4-lantern 5s ease-in-out infinite alternate;
}
.scn-reasons-unspoken .footstep-dust {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 10px;
  background: radial-gradient(ellipse at center, rgba(100,80,60,0.1) 0%, transparent 70%);
  filter: blur(4px);
  animation: ht4-dust 12s linear infinite reverse;
}
@keyframes ht4-hester {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  33% { transform: translateX(-2px) translateY(-2px) rotate(1deg); }
  66% { transform: translateX(3px) translateY(1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ht4-scholar {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(5px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(-3px) translateY(1px) rotate(-2deg); }
}
@keyframes ht4-lantern {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes ht4-dust {
  0% { transform: translateX(0) translateY(0); opacity: 0.2; }
  50% { transform: translateX(20px) translateY(-10px); opacity: 0.5; }
  100% { transform: translateX(0) translateY(0); opacity: 0.2; }
}

.scn-pool-mirror-invitation { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #d4a373 100%), radial-gradient(ellipse at 50% 80%, #f0e68c 0%, transparent 60%); }
.scn-pool-mirror-invitation .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0e6 0%, #fdf5e6 100%); animation: pl-sky 12s ease-in-out infinite alternate; }
.scn-pool-mirror-invitation .water { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a9bd5 0%, #2c6fbb 100%); animation: pl-water 8s ease-in-out infinite; }
.scn-pool-mirror-invitation .edge { position:absolute; bottom:48%; left:30%; width:40%; height:4%; background: #8b5e3c; border-radius: 50% / 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-pool-mirror-invitation .figure { position:absolute; bottom:45%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pl-figure 6s ease-in-out infinite; }
.scn-pool-mirror-invitation .reflection { position:absolute; bottom:35%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, rgba(210,180,140,0.5) 0%, transparent 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform: scaleY(-1) translateY(-10px); animation: pl-reflection 6s ease-in-out infinite; }
.scn-pool-mirror-invitation .gleam { position:absolute; bottom:40%; left:50%; width:12px; height:12px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #ffd700; animation: pl-gleam 4s ease-in-out infinite alternate; }
@keyframes pl-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pl-water { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes pl-figure { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) translateY(-2px) rotate(2deg) } }
@keyframes pl-reflection { 0%,100% { opacity:0.6 } 50% { opacity:0.9 } }
@keyframes pl-gleam { 0% { opacity:0.7; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.8; transform: scale(0.9) } }

.scn-accosting-physician { background: linear-gradient(180deg, #f4a460 0%, #deb887 50%, #8b5e3c 100%), radial-gradient(circle at 70% 30%, #f4a460 0%, transparent 50%); }
.scn-accosting-physician .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffdab9 0%, #ffe4b5 100%); animation: ac-sky 10s ease-in-out infinite alternate; }
.scn-accosting-physician .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #556b2f 0%, #2e4a1e 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; }
.scn-accosting-physician .tree { position:absolute; bottom:30%; left:15%; width:10px; height:60px; background: linear-gradient(180deg, #5c3a1e 0%, #3a2210 100%); border-radius: 10% 10% 40% 40%; animation: ac-tree 6s ease-in-out infinite; }
.scn-accosting-physician .hester { position:absolute; bottom:28%; left:40%; width:22px; height:44px; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-hester 3s ease-in-out infinite; }
.scn-accosting-physician .chill { position:absolute; bottom:26%; left:60%; width:20px; height:48px; background: linear-gradient(180deg, #5c4033 0%, #3a2515 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-chill 3.5s ease-in-out infinite; }
.scn-accosting-physician .shadow { position:absolute; bottom:25%; left:45%; width:18%; height:2px; background: rgba(0,0,0,0.3); border-radius: 50%; animation: ac-shadow 4s ease-in-out infinite; }
@keyframes ac-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ac-tree { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes ac-hester { 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 ac-chill { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes ac-shadow { 0%,100% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } }

.scn-magistrate-debate-letter { background: linear-gradient(180deg, #c0a060 0%, #a08850 50%, #705030 100%), radial-gradient(circle at 80% 40%, #e0c080 0%, transparent 60%); }
.scn-magistrate-debate-letter .room { position:absolute; inset:0; background: linear-gradient(180deg, #c0a060 0%, #a08050 100%); }
.scn-magistrate-debate-letter .table { position:absolute; bottom:20%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #5c3a1e 0%, #3a2210 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-magistrate-debate-letter .magistrate { position:absolute; bottom:30%; left:25%; width:24px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mg-magistrate 4s ease-in-out infinite; }
.scn-magistrate-debate-letter .hester { position:absolute; bottom:28%; left:55%; width:22px; height:44px; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mg-hester 3.5s ease-in-out infinite; }
.scn-magistrate-debate-letter .letter { position:absolute; bottom:35%; left:50%; width:16px; height:16px; background: radial-gradient(circle, #a0461a 0%, #5e1a1d 100%); border-radius: 20% 20% 20% 20%; transform: rotate(45deg); box-shadow: 0 0 10px 3px #a0461a; animation: mg-letter 2s ease-in-out infinite alternate; }
.scn-magistrate-debate-letter .window { position:absolute; top:20%; right:10%; width:30%; height:35%; background: linear-gradient(180deg, #ffdab9 0%, transparent 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px #ffe4b5; animation: mg-window 8s ease-in-out infinite alternate; }
@keyframes mg-magistrate { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-4px) rotate(2deg) } }
@keyframes mg-hester { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) rotate(-2deg) } }
@keyframes mg-letter { 0% { opacity:0.7; transform: scale(0.9) rotate(45deg) } 50% { opacity:1; transform: scale(1.1) rotate(45deg) } 100% { opacity:0.8; transform: scale(0.95) rotate(45deg) } }
@keyframes mg-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }

.scn-hester-response { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #90ee90 100%), radial-gradient(ellipse at 70% 20%, #ffe4b5 0%, transparent 50%); }
.scn-hester-response .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #fdf5e6 100%); animation: hr-sky 14s ease-in-out infinite alternate; }
.scn-hester-response .meadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7ccd7c 0%, #2e8b57 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; }
.scn-hester-response .hester { position:absolute; bottom:30%; left:50%; width:24px; height:48px; background: linear-gradient(180deg, #c8553d 0%, #8b3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); transform-origin: bottom center; animation: hr-hester 8s ease-in-out infinite; }
.scn-hester-response .letter { position:absolute; bottom:38%; left:50%; width:18px; height:18px; background: radial-gradient(circle, #a0461a 0%, #5e1a1d 100%); border-radius: 20% 20% 20% 20%; transform: translateX(-50%) rotate(45deg); box-shadow: 0 0 12px 4px #a0461a; animation: hr-letter 6s ease-in-out infinite alternate; }
.scn-hester-response .ray { position:absolute; top:10%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,255,224,0.3) 0%, transparent 100%); transform: skewX(10deg); animation: hr-ray 10s ease-in-out infinite alternate; }
@keyframes hr-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hr-hester { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } }
@keyframes hr-letter { 0% { opacity:0.6; transform: translateX(-50%) rotate(45deg) scale(0.9) } 50% { opacity:1; transform: translateX(-50%) rotate(45deg) scale(1.1) } 100% { opacity:0.7; transform: translateX(-50%) rotate(45deg) scale(0.95) } }
@keyframes hr-ray { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

/* Scene 1: permanent-inspector */
.scn-permanent-inspector {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 40%, #7a5a3a 0%, transparent 70%);
}
.scn-permanent-inspector .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%); }
.scn-permanent-inspector .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-permanent-inspector .desk { position:absolute; bottom:18%; left:25%; width:40%; height:16%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: pi1-desk 8s ease-in-out infinite; }
.scn-permanent-inspector .chair { position:absolute; bottom:10%; left:35%; width:20%; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform: translateX(-50%); animation: pi1-chair 12s ease-in-out infinite; }
.scn-permanent-inspector .lantern { position:absolute; bottom:30%; left:55%; width:8%; height:12%; background: radial-gradient(circle, #f0c060 0%, #d09030 60%, #a06020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px #e0a040, 0 0 60px 20px rgba(200,120,40,0.4); animation: pi1-lantern 3s ease-in-out infinite alternate; }
.scn-permanent-inspector .figure { position:absolute; bottom:16%; left:35%; width:12%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: pi1-figure 6s ease-in-out infinite; }
.scn-permanent-inspector .shadow-figure { position:absolute; bottom:12%; left:38%; width:10%; height:30%; background: rgba(0,0,0,0.4); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; filter: blur(4px); transform: translateX(-50%); animation: pi1-shadow 6s ease-in-out infinite; }
.scn-permanent-inspector .dust-mote { position:absolute; top:30%; left:20%; width:2%; height:2%; background: rgba(255,220,180,0.6); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,220,180,0.3); animation: pi1-dust 20s linear infinite; }
@keyframes pi1-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pi1-chair { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } }
@keyframes pi1-lantern { 0% { box-shadow: 0 0 20px 6px #e0a040, 0 0 40px 12px rgba(200,120,40,0.3); opacity:0.9; } 50% { box-shadow: 0 0 40px 12px #f0c060, 0 0 80px 20px rgba(240,192,96,0.5); opacity:1; } 100% { box-shadow: 0 0 24px 8px #e0a040, 0 0 48px 14px rgba(200,120,40,0.35); opacity:0.85; } }
@keyframes pi1-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 75% { transform: translateX(-52%) rotate(-2deg); } }
@keyframes pi1-shadow { 0%,100% { transform: translateX(-50%) scale(1); opacity:0.4; } 50% { transform: translateX(-50%) scale(1.1); opacity:0.5; } }
@keyframes pi1-dust { 0% { transform: translate(0, 0) scale(1); opacity:0.5; } 50% { transform: translate(10px, -15px) scale(1.3); opacity:1; } 100% { transform: translate(-5px, -30px) scale(0.8); opacity:0; } }

/* Scene 2: inspector-florid-laugh */
.scn-inspector-florid-laugh {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 50%, #8a5030 0%, transparent 70%);
}
.scn-inspector-florid-laugh .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a2010 0%, #2a1008 100%); }
.scn-inspector-florid-laugh .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); }
.scn-inspector-florid-laugh .hearth { position:absolute; bottom:13%; left:10%; width:20%; height:20%; background: radial-gradient(ellipse at 50% 80%, #c06030 0%, #6a3010 50%, #2a0a00 100%); border-radius: 40% 40% 20% 20%; }
.scn-inspector-florid-laugh .fire-glow { position:absolute; bottom:15%; left:15%; width:10%; height:15%; background: radial-gradient(circle, #f0a040 0%, #c06020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px #e08030, 0 0 80px 40px rgba(200,80,30,0.3); animation: pi2-fire 2s ease-in-out infinite alternate; }
.scn-inspector-florid-laugh .chair { position:absolute; bottom:17%; left:40%; width:18%; height:25%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1008 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: translateX(-50%); }
.scn-inspector-florid-laugh .figure { position:absolute; bottom:22%; left:40%; width:14%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: pi2-laugh 1.5s ease-in-out infinite; }
.scn-inspector-florid-laugh .arm-motion { position:absolute; bottom:30%; left:48%; width:8%; height:10%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: pi2-arm 1.2s ease-in-out infinite; }
.scn-inspector-florid-laugh .shadow-figure { position:absolute; bottom:15%; left:42%; width:12%; height:30%; background: rgba(0,0,0,0.3); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; filter: blur(5px); transform: translateX(-50%); animation: pi2-shadow 1.5s ease-in-out infinite; }
@keyframes pi2-fire { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.15); opacity:1; } 100% { transform: scale(0.95); opacity:0.85; } }
@keyframes pi2-laugh { 0%,100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 25% { transform: translateX(-50%) rotate(3deg) scaleY(1.05); } 50% { transform: translateX(-50%) rotate(-2deg) scaleY(0.95); } 75% { transform: translateX(-50%) rotate(2deg) scaleY(1.02); } }
@keyframes pi2-arm { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-15deg); } }
@keyframes pi2-shadow { 0%,100% { transform: translateX(-50%) scale(1); opacity:0.3; } 50% { transform: translateX(-50%) scale(1.1); opacity:0.5; } }

/* Scene 3: inspector-animal-nature */
.scn-inspector-animal-nature {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 60%, #7a5030 0%, transparent 70%);
}
.scn-inspector-animal-nature .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%); }
.scn-inspector-animal-nature .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); }
.scn-inspector-animal-nature .table { position:absolute; bottom:15%; left:20%; width:50%; height:12%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: pi3-table 10s ease-in-out infinite; }
.scn-inspector-animal-nature .mug { position:absolute; bottom:22%; left:30%; width:8%; height:10%; background: linear-gradient(180deg, #a07050 0%, #704030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-inspector-animal-nature .figure { position:absolute; bottom:5%; left:40%; width:16%; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: pi3-figure 8s ease-in-out infinite; }
.scn-inspector-animal-nature .hand { position:absolute; bottom:18%; left:50%; width:6%; height:8%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20%; transform: translateX(-50%) rotate(10deg); animation: pi3-hand 4s ease-in-out infinite; }
.scn-inspector-animal-nature .bread { position:absolute; bottom:23%; left:45%; width:7%; height:5%; background: radial-gradient(ellipse, #c09060 0%, #a07040 100%); border-radius: 40% 20% 30% 30% / 50% 30% 40% 40%; animation: pi3-bread 6s ease-in-out infinite alternate; }
.scn-inspector-animal-nature .shadow-figure { position:absolute; bottom:3%; left:42%; width:14%; height:40%; background: rgba(0,0,0,0.3); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; filter: blur(5px); transform: translateX(-50%); animation: pi3-shadow 8s ease-in-out infinite; }
@keyframes pi3-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes pi3-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(1deg) scaleY(1.01); } 75% { transform: translateX(-50%) rotate(-1deg) scaleY(0.99); } }
@keyframes pi3-hand { 0%,100% { transform: translateX(-50%) rotate(10deg); } 50% { transform: translateX(-50%) rotate(15deg) translateY(-2px); } }
@keyframes pi3-bread { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes pi3-shadow { 0%,100% { transform: translateX(-50%) scale(1); opacity:0.3; } 50% { transform: translateX(-50%) scale(1.05); opacity:0.4; } }

/* Scene 4: inspector-lack-of-intellect */
.scn-inspector-lack-of-intellect {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #4a3020 50%, #3a2010 100%),
    radial-gradient(ellipse at 50% 40%, #6a4030 0%, transparent 70%);
}
.scn-inspector-lack-of-intellect .wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #3a2010 0%, #2a1008 100%); }
.scn-inspector-lack-of-intellect .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); }
.scn-inspector-lack-of-intellect .stool { position:absolute; bottom:8%; left:35%; width:20%; height:15%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; transform: translateX(-50%); animation: pi4-stool 15s ease-in-out infinite; }
.scn-inspector-lack-of-intellect .figure { position:absolute; bottom:6%; left:35%; width:14%; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: pi4-figure 12s ease-in-out infinite; }
.scn-inspector-lack-of-intellect .head { position:absolute; bottom:44%; left:35%; width:10%; height:12%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: pi4-head 8s ease-in-out infinite alternate; }
.scn-inspector-lack-of-intellect .still-glow { position:absolute; bottom:30%; left:60%; width:4%; height:4%; background: radial-gradient(circle, #d0a060 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(200,140,60,0.2); animation: pi4-glow 5s ease-in-out infinite alternate; }
.scn-inspector-lack-of-intellect .dust-mote-slow { position:absolute; top:20%; left:30%; width:1%; height:1%; background: rgba(255,220,180,0.4); border-radius: 50%; box-shadow: 0 0 4px 2px rgba(255,220,180,0.15); animation: pi4-dust 30s linear infinite; }
.scn-inspector-lack-of-intellect .shadow-bench { position:absolute; bottom:5%; left:30%; width:25%; height:10%; background: rgba(0,0,0,0.2); border-radius: 30% 30% 10% 10%; filter: blur(4px); transform: translateX(-50%); animation: pi4-shadow 12s ease-in-out infinite; }
@keyframes pi4-stool { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes pi4-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg) translateY(-1px); } }
@keyframes pi4-head { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes pi4-glow { 0% { opacity:0.6; box-shadow: 0 0 15px 5px rgba(200,140,60,0.15); } 100% { opacity:0.9; box-shadow: 0 0 25px 10px rgba(200,140,60,0.25); } }
@keyframes pi4-dust { 0% { transform: translate(0,0) scale(1); opacity:0.4; } 50% { transform: translate(5px, -10px) scale(1.2); opacity:0.8; } 100% { transform: translate(-3px, -20px) scale(0.7); opacity:0; } }

/* autobiographical-preamble */
.scn-autobiographical-preamble {
  background: linear-gradient(180deg, #1c1814 0%, #2a2218 50%, #3a3022 100%),
              radial-gradient(ellipse at 50% 40%, #4a3c2a 0%, transparent 70%);
}
.scn-autobiographical-preamble .wall { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #1c1814 0%, #2a2218 100%); opacity:0.6; }
.scn-autobiographical-preamble .fireplace { position:absolute; bottom:10%; left:10%; width:30%; height:55%; background: linear-gradient(180deg, #3a3022 0%, #1c1814 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6); }
.scn-autobiographical-preamble .flames { position:absolute; bottom:15%; left:14%; width:22%; height:30%; background: radial-gradient(ellipse at 50% 0%, #c8553d 0%, #a0461a 50%, transparent 100%); border-radius: 50% 50% 0 0; animation: ap-flame 3s ease-in-out infinite alternate; }
.scn-autobiographical-preamble .armchair { position:absolute; bottom:5%; right:15%; width:25%; height:45%; background: linear-gradient(180deg, #4a3c2a 0%, #2a2218 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 5px 15px rgba(0,0,0,0.5); animation: ap-chair 12s ease-in-out infinite; }
.scn-autobiographical-preamble .figure { position:absolute; bottom:8%; right:25%; width:12%; height:30%; background: linear-gradient(180deg, #1c1814 0%, #0a0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ap-figure 6s ease-in-out infinite; }
.scn-autobiographical-preamble .window { position:absolute; top:15%; left:60%; width:20%; height:35%; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(255,255,255,0.1); animation: ap-window 20s ease-in-out infinite alternate; }
@keyframes ap-flame   { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.2) translateY(-5px); opacity:1; } 100% { transform: scaleY(1) translateY(0); opacity:0.8; } }
@keyframes ap-chair   { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes ap-figure  { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ap-window  { 0% { opacity:0.7; box-shadow: inset 0 0 10px rgba(255,255,255,0.05); } 50% { opacity:0.9; box-shadow: inset 0 0 30px rgba(255,255,255,0.3); } 100% { opacity:0.7; box-shadow: inset 0 0 10px rgba(255,255,255,0.05); } }

/* justification-of-sketch */
.scn-justification-of-sketch {
  background: linear-gradient(180deg, #1c1814 0%, #2a2218 50%, #3a3022 100%),
              radial-gradient(ellipse at 30% 50%, #4a3c2a 0%, transparent 80%);
}
.scn-justification-of-sketch .desk { position:absolute; bottom:10%; left:15%; width:70%; height:45%; background: linear-gradient(180deg, #3a3022 0%, #2a2218 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.6); }
.scn-justification-of-sketch .lamp { position:absolute; bottom:40%; left:25%; width:12%; height:20%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 30px 10px rgba(200,176,144,0.4); animation: js-lamp 5s ease-in-out infinite alternate; }
.scn-justification-of-sketch .inkwell { position:absolute; bottom:42%; left:50%; width:8%; height:12%; background: radial-gradient(circle, #1c1814 0%, #0a0a08 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-justification-of-sketch .paper { position:absolute; bottom:40%; left:40%; width:30%; height:20%; background: linear-gradient(180deg, #e8dcc8 0%, #d0c0a8 100%); border-radius: 2% 2% 1% 1%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform-origin: bottom left; animation: js-paper 8s ease-in-out infinite alternate; }
.scn-justification-of-sketch .stool { position:absolute; bottom:5%; left:45%; width:20%; height:30%; background: linear-gradient(180deg, #3a3022 0%, #1c1814 100%); border-radius: 10% 10% 8% 8%; box-shadow: 0 5px 10px rgba(0,0,0,0.4); animation: js-stool 15s ease-in-out infinite; }
.scn-justification-of-sketch .clock { position:absolute; top:10%; right:15%; width:12%; height:18%; background: radial-gradient(circle, #a08060 0%, #604830 100%); border-radius: 50%; box-shadow: inset 0 4px 8px rgba(255,255,255,0.2); animation: js-clock 60s linear infinite; }
@keyframes js-lamp   { 0% { box-shadow: 0 0 20px 5px rgba(200,176,144,0.3); transform: rotate(-2deg); } 50% { box-shadow: 0 0 40px 15px rgba(200,176,144,0.7); transform: rotate(2deg); } 100% { box-shadow: 0 0 20px 5px rgba(200,176,144,0.3); transform: rotate(-2deg); } }
@keyframes js-paper  { 0% { transform: rotate(-3deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(3deg); } }
@keyframes js-stool  { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes js-clock  { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }

/* reason-for-personal-relation */
.scn-reason-for-personal-relation {
  background: linear-gradient(180deg, #1c1814 0%, #2a2218 50%, #3a3022 100%),
              radial-gradient(ellipse at 50% 60%, #4a3c2a 0%, transparent 70%);
}
.scn-reason-for-personal-relation .desk { position:absolute; bottom:5%; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #3a3022 0%, #2a2218 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 -6px 10px rgba(0,0,0,0.6); }
.scn-reason-for-personal-relation .candle { position:absolute; bottom:35%; left:20%; width:6%; height:20%; background: linear-gradient(180deg, #e8dcc8 0%, #c0a080 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px rgba(200,180,140,0.5); animation: rp-candle 4s ease-in-out infinite alternate; }
.scn-reason-for-personal-relation .hand { position:absolute; bottom:30%; left:45%; width:10%; height:15%; background: linear-gradient(180deg, #b08060 0%, #8a6040 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rp-hand 6s ease-in-out infinite; }
.scn-reason-for-personal-relation .quill { position:absolute; bottom:35%; left:48%; width:4%; height:25%; background: linear-gradient(180deg, #a08060 0%, #604830 100%); border-radius: 10% 10% 0 0; transform-origin: bottom left; animation: rp-quill 3s ease-in-out infinite alternate; }
.scn-reason-for-personal-relation .book { position:absolute; bottom:10%; left:55%; width:15%; height:20%; background: linear-gradient(180deg, #3a3022 0%, #1c1814 100%); border-radius: 5% 5% 2% 2%; box-shadow: 5px 5px 10px rgba(0,0,0,0.5); animation: rp-book 30s ease-in-out infinite; }
.scn-reason-for-personal-relation .ink { position:absolute; bottom:30%; left:60%; width:5%; height:8%; background: radial-gradient(circle, #1c1814 0%, #0a0a08 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.8); }
@keyframes rp-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 15px 5px rgba(200,180,140,0.4); } 50% { transform: scaleY(1.1) translateY(-3px); box-shadow: 0 0 25px 10px rgba(200,180,140,0.7); } 100% { transform: scaleY(1) translateY(0); box-shadow: 0 0 15px 5px rgba(200,180,140,0.4); } }
@keyframes rp-hand  { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes rp-quill { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes rp-book  { 0% { transform: rotate(0deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(0deg); } }

/* customhouse-exterior */
.scn-customhouse-exterior {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #FFD700 70%, #FFA500 100%),
              radial-gradient(ellipse at 50% 100%, #FFD700 0%, transparent 60%);
}
.scn-customhouse-exterior .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%); animation: ce-sky 30s ease-in-out infinite alternate; }
.scn-customhouse-exterior .water { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4682B4 0%, #191970 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: ce-water 8s ease-in-out infinite alternate; }
.scn-customhouse-exterior .wharf { position:absolute; bottom:30%; left:5%; width:40%; height:15%; background: linear-gradient(180deg, #8B4513 0%, #5C4033 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6); }
.scn-customhouse-exterior .warehouse { position:absolute; bottom:20%; left:15%; width:25%; height:40%; background: linear-gradient(180deg, #A0522D 0%, #6B3A2A 100%); border-radius: 10% 10% 0 0; box-shadow: 5px 5px 10px rgba(0,0,0,0.4); animation: ce-warehouse 20s ease-in-out infinite; }
.scn-customhouse-exterior .ship { position:absolute; bottom:15%; right:20%; width:35%; height:30%; background: linear-gradient(180deg, #5C4033 0%, #3A2211 100%); border-radius: 10% 10% 5% 5%; transform-origin: bottom center; animation: ce-ship 6s ease-in-out infinite alternate; }
.scn-customhouse-exterior .brig { position:absolute; bottom:12%; right:5%; width:20%; height:25%; background: linear-gradient(180deg, #8B4513 0%, #5C4033 100%); border-radius: 10% 10% 0 0; transform-origin: bottom center; animation: ce-brig 5s ease-in-out infinite alternate-reverse; }
.scn-customhouse-exterior .seagull { position:absolute; top:20%; left:10%; width:8%; height:4%; background: radial-gradient(ellipse at 50% 50%, #FFFFFF 0%, #D3D3D3 100%); border-radius: 50%; filter: blur(1px); animation: ce-gull 12s linear infinite; }
@keyframes ce-sky   { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ce-water { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ce-warehouse { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ce-ship  { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes ce-brig  { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ce-gull  { 0% { transform: translateX(-100px); } 50% { transform: translateX(50vw) translateY(-10px); } 100% { transform: translateX(120vw); } }

/* Scene: awe-at-sin */
.scn-awe-at-sin {
  background: linear-gradient(180deg, #2a2a3e 0%, #4a4a5e 30%, #6a6a7e 60%, #8a8a9e 100%),
              radial-gradient(ellipse at 50% 80%, #b0a090 0%, transparent 60%);
}
.scn-awe-at-sin .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89a8a 40%, transparent 100%);
  animation: as1-sky 20s ease-in-out infinite alternate;
}
.scn-awe-at-sin .platform {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-awe-at-sin .figure {
  position: absolute; bottom: 38%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,.4);
  animation: as1-figure 8s ease-in-out infinite;
}
.scn-awe-at-sin .crowd-left {
  position: absolute; bottom: 18%; left: 5%; width: 25%; height: 40%;
  background: linear-gradient(90deg, transparent 0%, #3a3a4a 20%, #2a2a3a 100%);
  border-radius: 0 40% 0 0;
  filter: blur(4px);
  animation: as1-crowd 15s ease-in-out infinite alternate;
}
.scn-awe-at-sin .crowd-right {
  position: absolute; bottom: 18%; right: 5%; width: 25%; height: 40%;
  background: linear-gradient(270deg, transparent 0%, #3a3a4a 20%, #2a2a3a 100%);
  border-radius: 40% 0 0 0;
  filter: blur(4px);
  animation: as1-crowd 15s ease-in-out infinite alternate-reverse;
}
.scn-awe-at-sin .shadow-line {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 4px;
  background: linear-gradient(90deg, transparent, #000 50%, transparent);
  filter: blur(2px);
  animation: as1-shadow 6s ease-in-out infinite alternate;
}
.scn-awe-at-sin .dust {
  position: absolute; top: 30%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: as1-dust 12s ease-in-out infinite alternate;
}
@keyframes as1-sky { 0% { opacity:.7; filter: brightness(1) } 50% { opacity:.9; filter: brightness(1.1) } 100% { opacity:.6; filter: brightness(.9) } }
@keyframes as1-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-4px) rotate(0deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes as1-crowd { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.05) translateY(-2px) } 100% { transform: scaleY(.95) translateY(1px) } }
@keyframes as1-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.1) } 100% { opacity:.4; transform: scaleX(.9) } }
@keyframes as1-dust { 0% { transform: translate(0,0) scale(1); opacity:.4 } 50% { transform: translate(5px,-10px) scale(1.2); opacity:.6 } 100% { transform: translate(-5px,5px) scale(.9); opacity:.3 } }

/* Scene: dignitaries-in-balcony */
.scn-dignitaries-in-balcony {
  background: linear-gradient(180deg, #2a2a3e 0%, #4a4a5e 30%, #7a7a8e 60%, #a0a0b0 100%),
              radial-gradient(ellipse at 50% 30%, #c0b0a0 0%, transparent 70%);
}
.scn-dignitaries-in-balcony .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 50%, #8a7a6a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
}
.scn-dignitaries-in-balcony .balcony-rail {
  position: absolute; bottom: 38%; left: 5%; right: 5%; height: 8px;
  background: linear-gradient(90deg, #3a2a1a, #5a4a3a, #3a2a1a);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  border-radius: 4px;
}
.scn-dignitaries-in-balcony .dignitary-1 {
  position: absolute; bottom: 35%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: db2-dignitary 10s ease-in-out infinite alternate;
}
.scn-dignitaries-in-balcony .dignitary-2 {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: db2-dignitary 10s ease-in-out infinite alternate-reverse;
}
.scn-dignitaries-in-balcony .dignitary-3 {
  position: absolute; bottom: 35%; right: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: db2-dignitary 10s ease-in-out infinite alternate;
}
.scn-dignitaries-in-balcony .sun-beam {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,200,.4) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(6px);
  animation: db2-beam 8s ease-in-out infinite alternate;
}
.scn-dignitaries-in-balcony .banner {
  position: absolute; bottom: 45%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a0461a 0%, #702243 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 8px rgba(160,70,26,.3);
  animation: db2-banner 5s ease-in-out infinite alternate;
}
@keyframes db2-dignitary { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes db2-beam { 0% { opacity:.3; transform: skewX(-10deg) scaleY(1) } 50% { opacity:.6; transform: skewX(-8deg) scaleY(1.1) } 100% { opacity:.4; transform: skewX(-12deg) scaleY(.9) } }
@keyframes db2-banner { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.1) } 100% { transform: translateX(-50%) scaleX(.9) } }

/* Scene: weight-of-eye */
.scn-weight-of-eye {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 60%, #4a4a5e 100%),
              radial-gradient(circle at 50% 30%, #6a5a4a 0%, transparent 60%);
}
.scn-weight-of-eye .bg-depth {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.5) 100%);
  animation: we3-bg 12s ease-in-out infinite alternate;
}
.scn-weight-of-eye .figure-woman {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 10px 30px rgba(0,0,0,.6);
  animation: we3-figure 10s ease-in-out infinite;
}
.scn-weight-of-eye .eye-left {
  position: absolute; top: 15%; left: 20%; width: 30px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #fff 10%, #9a8a7a 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,255,255,.1);
  animation: we3-eye 4s ease-in-out infinite;
}
.scn-weight-of-eye .eye-right {
  position: absolute; top: 18%; right: 25%; width: 30px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #fff 10%, #9a8a7a 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,255,255,.1);
  animation: we3-eye 4s ease-in-out infinite reverse;
}
.scn-weight-of-eye .eye-top {
  position: absolute; top: 8%; left: 35%; width: 40px; height: 25px;
  background: radial-gradient(circle at 50% 50%, #fff 10%, #8a7a6a 30%, transparent 70%);
  border-radius: 50%;
  transform: rotate(-15deg);
  filter: blur(2px);
  animation: we3-eye 6s ease-in-out infinite alternate;
}
.scn-weight-of-eye .eye-bottom {
  position: absolute; bottom: 8%; left: 30%; width: 35px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #fff 10%, #8a7a6a 30%, transparent 70%);
  border-radius: 50%;
  transform: rotate(10deg);
  filter: blur(2px);
  animation: we3-eye 6s ease-in-out infinite alternate-reverse;
}
.scn-weight-of-eye .aurora {
  position: absolute; top: 30%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, rgba(100,200,255,.1) 0%, transparent 100%);
  filter: blur(15px);
  animation: we3-aurora 15s ease-in-out infinite alternate;
}
.scn-weight-of-eye .flash {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.05) 0%, transparent 70%);
  animation: we3-flash 3s ease-in-out infinite;
}
@keyframes we3-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes we3-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-5px) rotate(0deg) } 50% { transform: translateX(-50%) translateY(0) rotate(1deg) } 75% { transform: translateX(-50%) translateY(-3px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes we3-eye { 0% { opacity:.3; transform: scale(.8) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.4; transform: scale(.9) } }
@keyframes we3-aurora { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.1) } 100% { transform: translateY(10px) scale(.9) } }
@keyframes we3-flash { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:0 } }

/* Scene: memory-intervals */
.scn-memory-intervals {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 60%, #4a4a5e 100%),
              radial-gradient(ellipse at 50% 50%, #5a5a6a 0%, transparent 70%);
}
.scn-memory-intervals .bg-shimmer {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,180,160,.05) 0%, transparent 50%, rgba(200,180,160,.03) 100%);
  animation: mi4-shimmer 10s ease-in-out infinite alternate;
}
.scn-memory-intervals .spectral-1 {
  position: absolute; top: 20%; left: 20%; width: 80px; height: 120px;
  background: linear-gradient(180deg, rgba(200,180,160,.2) 0%, transparent 100%);
  filter: blur(8px);
  border-radius: 30% 50% 50% 30% / 40% 30% 60% 50%;
  animation: mi4-spectral 12s ease-in-out infinite alternate;
}
.scn-memory-intervals .spectral-2 {
  position: absolute; top: 30%; right: 15%; width: 100px; height: 150px;
  background: linear-gradient(180deg, rgba(200,180,160,.15) 0%, transparent 100%);
  filter: blur(10px);
  border-radius: 50% 30% 30% 50% / 60% 40% 50% 30%;
  animation: mi4-spectral 15s ease-in-out infinite alternate-reverse;
}
.scn-memory-intervals .spectral-3 {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 90px;
  background: linear-gradient(180deg, rgba(200,180,160,.1) 0%, transparent 100%);
  filter: blur(6px);
  border-radius: 40% 60% 30% 50% / 50% 40% 60% 30%;
  animation: mi4-spectral 18s ease-in-out infinite alternate;
}
.scn-memory-intervals .spectral-4 {
  position: absolute; bottom: 25%; right: 25%; width: 70px; height: 100px;
  background: linear-gradient(180deg, rgba(200,180,160,.12) 0%, transparent 100%);
  filter: blur(7px);
  border-radius: 60% 40% 50% 30% / 30% 50% 40% 60%;
  animation: mi4-spectral 14s ease-in-out infinite alternate-reverse;
}
.scn-memory-intervals .ripple {
  position: absolute; top: 40%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,.08) 0%, transparent 60%);
  filter: blur(12px);
  animation: mi4-ripple 8s ease-in-out infinite alternate;
}
.scn-memory-intervals .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.6) 100%);
  animation: mi4-vignette 10s ease-in-out infinite alternate;
}
@keyframes mi4-shimmer { 0% { opacity:.5; filter: brightness(1) } 50% { opacity:.8; filter: brightness(1.1) } 100% { opacity:.6; filter: brightness(.9) } }
@keyframes mi4-spectral { 0% { transform: translate(0,0) scale(1) rotate(0deg); opacity:.3 } 50% { transform: translate(5px,-10px) scale(1.05) rotate(3deg); opacity:.6 } 100% { transform: translate(-5px,5px) scale(.95) rotate(-3deg); opacity:.4 } }
@keyframes mi4-ripple { 0% { transform: scale(1) translateY(0); opacity:.3 } 50% { transform: scale(1.1) translateY(-5px); opacity:.6 } 100% { transform: scale(.9) translateY(5px); opacity:.4 } }
@keyframes mi4-vignette { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-inspector-nonentity {
  background: 
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 30%, #2a1a10 70%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-inspector-nonentity .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 100%);
  animation: in1-wall 20s ease-in-out infinite alternate;
}
.scn-inspector-nonentity .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0e06 0%, #0d0703 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-inspector-nonentity .lamp {
  position: absolute; bottom: 45%; left: 22%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 10px 2px #b08040, 0 0 20px 8px rgba(176,128,64,0.3);
  animation: in1-lamp 4s ease-in-out infinite alternate;
}
.scn-inspector-nonentity .chair {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: skewX(-5deg);
  animation: in1-chair 6s ease-in-out infinite;
}
.scn-inspector-nonentity .figure {
  position: absolute; bottom: 22%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: in1-figure 8s ease-in-out infinite;
}
.scn-inspector-nonentity .shadow {
  position: absolute; bottom: 18%; left: 35%; width: 100px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: in1-shadow 8s ease-in-out infinite;
}
@keyframes in1-wall { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.75 } }
@keyframes in1-lamp { 0% { box-shadow: 0 0 8px 1px #b08040, 0 0 16px 4px rgba(176,128,64,0.3); } 50% { box-shadow: 0 0 14px 3px #d0a060, 0 0 28px 8px rgba(208,160,96,0.4); } 100% { box-shadow: 0 0 10px 2px #b08040, 0 0 20px 6px rgba(176,128,64,0.3); } }
@keyframes in1-chair { 0%,100% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-5deg) translateY(-2px); } }
@keyframes in1-figure { 0% { transform: rotate(2deg) translateX(0); } 25% { transform: rotate(1deg) translateX(2px); } 50% { transform: rotate(0deg) translateX(0); } 75% { transform: rotate(1deg) translateX(-2px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes in1-shadow { 0%,100% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.05); } }

.scn-inspector-gourmandism {
  background:
    linear-gradient(180deg, #2a1a10 0%, #3a2a1a 40%, #4a3a2a 80%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, transparent 50%);
}
.scn-inspector-gourmandism .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a10 0%, #3a2a1a 70%, transparent);
}
.scn-inspector-gourmandism .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #4a2a16 0%, #2a1a0e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: ig2-table 10s ease-in-out infinite;
}
.scn-inspector-gourmandism .platter {
  position: absolute; bottom: 30%; left: 38%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-inspector-gourmandism .fork {
  position: absolute; bottom: 40%; left: 45%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 2px;
  transform: rotate(25deg);
  animation: ig2-fork 6s ease-in-out infinite alternate;
}
.scn-inspector-gourmandism .figure {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(-3deg);
  animation: ig2-figure 7s ease-in-out infinite;
}
.scn-inspector-gourmandism .steam {
  position: absolute; bottom: 45%; left: 42%; width: 8px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 100%);
  filter: blur(3px);
  animation: ig2-steam 4s ease-in-out infinite;
}
.scn-inspector-gourmandism .candle {
  position: absolute; bottom: 32%; left: 30%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #d0a060, 0 0 24px 10px rgba(208,160,96,0.3);
  animation: ig2-candle 5s ease-in-out infinite alternate;
}
@keyframes ig2-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ig2-fork { 0% { transform: rotate(20deg); } 100% { transform: rotate(30deg); } }
@keyframes ig2-figure { 0%,100% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-48%) rotate(0deg); } }
@keyframes ig2-steam { 0% { opacity: 0.2; transform: translateY(0) scaleY(1); } 50% { opacity: 0.5; transform: translateY(-10px) scaleY(1.2); } 100% { opacity: 0; transform: translateY(-20px) scaleY(0.8); } }
@keyframes ig2-candle { 0% { box-shadow: 0 0 8px 2px #d0a060, 0 0 16px 6px rgba(208,160,96,0.3); } 50% { box-shadow: 0 0 14px 4px #f0c080, 0 0 28px 12px rgba(240,192,128,0.5); } 100% { box-shadow: 0 0 10px 3px #d0a060, 0 0 20px 8px rgba(208,160,96,0.3); } }

.scn-ghosts-of-bygone-meals {
  background:
    linear-gradient(180deg, #1a1220 0%, #2a1a30 30%, #3a2a40 70%, #1a1220 100%),
    radial-gradient(ellipse at 30% 50%, #4a3a50 0%, transparent 60%);
}
.scn-ghosts-of-bygone-meals .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1220 0%, #2a1a30 100%);
}
.scn-ghosts-of-bygone-meals .table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #2a1a30 0%, #1a1220 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-ghosts-of-bygone-meals .ghost-platter {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 25px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,220,0.3) 0%, rgba(200,180,220,0.1) 70%, transparent);
  border-radius: 50%;
  filter: blur(4px);
  animation: gb3-platter 8s ease-in-out infinite alternate;
}
.scn-ghosts-of-bygone-meals .ghost-turkey {
  position: absolute; bottom: 32%; left: 40%; width: 20px; height: 14px;
  background: radial-gradient(ellipse at 50% 50%, rgba(220,200,180,0.4) 0%, transparent 100%);
  filter: blur(3px);
  border-radius: 50% 50% 40% 40%;
  animation: gb3-turkey 10s ease-in-out infinite;
}
.scn-ghosts-of-bygone-meals .ghost-pig {
  position: absolute; bottom: 27%; left: 50%; width: 22px; height: 16px;
  background: radial-gradient(ellipse at 50% 50%, rgba(230,180,190,0.3) 0%, transparent 100%);
  filter: blur(3px);
  border-radius: 40% 40% 50% 50%;
  animation: gb3-pig 12s ease-in-out infinite alternate;
}
.scn-ghosts-of-bygone-meals .ghost-fish {
  position: absolute; bottom: 30%; left: 28%; width: 18px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,200,220,0.3) 0%, transparent 100%);
  filter: blur(2px);
  border-radius: 50% 30% 30% 50%;
  animation: gb3-fish 9s ease-in-out infinite;
}
.scn-ghosts-of-bygone-meals .wisp {
  position: absolute; bottom: 40%; left: 55%; width: 6px; height: 30px;
  background: linear-gradient(180deg, rgba(220,200,240,0.2) 0%, transparent 100%);
  filter: blur(4px);
  animation: gb3-wisp 15s linear infinite;
}
@keyframes gb3-platter { 0% { opacity: 0.2; transform: scale(0.9) rotate(-2deg); } 50% { opacity: 0.4; transform: scale(1) rotate(0deg); } 100% { opacity: 0.2; transform: scale(0.9) rotate(2deg); } }
@keyframes gb3-turkey { 0%,100% { transform: translate(0,0) scale(1) rotate(0); } 25% { transform: translate(3px,-2px) scale(1.05) rotate(3deg); } 50% { transform: translate(0,-4px) scale(0.95) rotate(0); } 75% { transform: translate(-3px,-2px) scale(1.02) rotate(-3deg); } }
@keyframes gb3-pig { 0% { transform: translateX(0) scale(1); opacity: 0.15; } 50% { transform: translateX(10px) scale(1.1); opacity: 0.35; } 100% { transform: translateX(0) scale(1); opacity: 0.15; } }
@keyframes gb3-fish { 0%,100% { opacity: 0.1; transform: rotate(-5deg); } 50% { opacity: 0.3; transform: rotate(5deg); } }
@keyframes gb3-wisp { 0% { transform: translateY(0) rotate(0deg); opacity: 0; } 20% { opacity: 0.3; } 80% { opacity: 0.3; } 100% { transform: translateY(-60px) rotate(30deg); opacity: 0; } }

.scn-tragic-goose-incident {
  background:
    linear-gradient(180deg, #1a0e06 0%, #2a1a0e 40%, #3a2a1a 80%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 50%);
}
.scn-tragic-goose-incident .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a0e06 0%, #2a1a0e 100%);
}
.scn-tragic-goose-incident .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
.scn-tragic-goose-incident .goose {
  position: absolute; bottom: 26%; left: 40%; width: 40px; height: 28px;
  background: radial-gradient(ellipse at 50% 50%, #c8966a 0%, #8a6040 100%);
  border-radius: 45% 45% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: tg4-goose 6s ease-in-out infinite;
}
.scn-tragic-goose-incident .knife {
  position: absolute; bottom: 38%; left: 48%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 2px;
  transform: rotate(45deg);
  transform-origin: bottom;
  animation: tg4-knife 4s ease-in-out infinite alternate;
}
.scn-tragic-goose-incident .figure {
  position: absolute; bottom: 16%; left: 50%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(-5deg);
  animation: tg4-figure 8s ease-in-out infinite;
}
.scn-tragic-goose-incident .juice {
  position: absolute; bottom: 22%; left: 42%; width: 6px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #c8966a 0%, transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: tg4-juice 3s ease-in-out infinite;
}
@keyframes tg4-goose { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(0deg); } }
@keyframes tg4-knife { 0% { transform: rotate(40deg); } 50% { transform: rotate(50deg); } 100% { transform: rotate(40deg); } }
@keyframes tg4-figure { 0%,100% { transform: translateX(-50%) rotate(-5deg); } 25% { transform: translateX(-48%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-52%) rotate(-3deg); } }
@keyframes tg4-juice { 0% { opacity: 0.2; transform: translateY(0) scale(1); } 50% { opacity: 0.6; transform: translateY(-4px) scale(1.2); } 100% { opacity: 0; transform: translateY(-8px) scale(0.8); } }

.scn-imagination-tarnished {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 60%, rgba(180,140,80,0.08) 0%, transparent 70%);
}
.scn-imagination-tarnished .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a42 0%, #1a1a2e 100%); }
.scn-imagination-tarnished .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e1a14 0%, #12100c 100%); }
.scn-imagination-tarnished .desk { position:absolute; bottom:24%; left:35%; width:35%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 2px 2px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-imagination-tarnished .figure-hunched { position:absolute; bottom:22%; left:42%; width:16%; height:28%; background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: it-figure 6s ease-in-out infinite; }
.scn-imagination-tarnished .lamp { position:absolute; bottom:52%; left:48%; width:4%; height:10%; background: linear-gradient(180deg, #8a704a 0%, #4a3a2a 100%); border-radius: 4px; }
.scn-imagination-tarnished .lamp::after { content:''; position:absolute; bottom:-2px; left:50%; transform:translateX(-50%); width:14px; height:14px; background: radial-gradient(circle, #e8c070 0%, #c09850 70%); border-radius:50%; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,0.4); animation: it-glow 2s ease-in-out infinite alternate; }
.scn-imagination-tarnished .window { position:absolute; bottom:40%; right:12%; width:18%; height:30%; background: linear-gradient(180deg, #2a3a5a 0%, #0a1a2a 100%); border: 3px solid #3a2a1a; border-radius: 2px; animation: it-window 12s ease-in-out infinite alternate; }
.scn-imagination-tarnished .book { position:absolute; bottom:23%; left:44%; width:12%; height:4%; background: linear-gradient(90deg, #4a2a1a, #3a1a0a, #4a2a1a); border-radius: 1px; transform: rotate(-5deg); }
.scn-imagination-tarnished .shadow { position:absolute; bottom:10%; left:30%; width:50%; height:12%; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: it-shadow 6s ease-in-out infinite; }
@keyframes it-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes it-glow {
  0% { box-shadow: 0 0 15px 4px #b08040, 0 0 30px 8px rgba(176,128,64,0.3); opacity:0.9; }
  50% { box-shadow: 0 0 25px 8px #d4a050, 0 0 50px 16px rgba(212,160,80,0.5); opacity:1; }
  100% { box-shadow: 0 0 18px 5px #c09050, 0 0 36px 10px rgba(192,144,80,0.35); opacity:0.95; }
}
@keyframes it-window {
  0% { opacity:0.6; filter: brightness(0.8); }
  50% { opacity:1; filter: brightness(1); }
  100% { opacity:0.7; filter: brightness(0.9); }
}
@keyframes it-shadow {
  0% { transform: scaleX(1); opacity:0.6; }
  50% { transform: scaleX(1.1); opacity:0.8; }
  100% { transform: scaleX(1); opacity:0.6; }
}

.scn-torpid-fancy {
  background:
    linear-gradient(180deg, #1e202e 0%, #2a2230 50%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 80%, rgba(100,90,70,0.05) 0%, transparent 60%);
}
.scn-torpid-fancy .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #242432 0%, #181828 100%); }
.scn-torpid-fancy .chair { position:absolute; bottom:20%; left:20%; width:20%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 20% 20% 10% 10%; }
.scn-torpid-fancy .figure-seated { position:absolute; bottom:22%; left:25%; width:15%; height:25%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: tf-sit 8s ease-in-out infinite; }
.scn-torpid-fancy .desk2 { position:absolute; bottom:18%; left:35%; width:30%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,0.7); }
.scn-torpid-fancy .moneybag { position:absolute; bottom:15%; left:48%; width:8%; height:8%; background: linear-gradient(135deg, #6a5040, #4a3020); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-torpid-fancy .ledger { position:absolute; bottom:17%; left:42%; width:12%; height:5%; background: linear-gradient(90deg, #3a2a1a, #2a1a0a, #3a2a1a); transform: rotate(-2deg); }
.scn-torpid-fancy .door { position:absolute; bottom:10%; right:10%; width:16%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 2px; border-left: 3px solid #2a1a0a; }
.scn-torpid-fancy .coin-spill { position:absolute; bottom:12%; left:44%; width:14%; height:2%; background: radial-gradient(circle, #c8a060 0%, #a08040 70%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,160,96,0.3); animation: tf-coin 4s ease-in-out infinite; }
@keyframes tf-sit {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes tf-coin {
  0% { opacity:0.7; transform: scale(1); }
  50% { opacity:1; transform: scale(1.05); }
  100% { opacity:0.7; transform: scale(1); }
}

.scn-numbness-everywhere {
  background:
    linear-gradient(180deg, #1a222e 0%, #222838 50%, #0a121e 100%),
    radial-gradient(ellipse at 50% 100%, rgba(40,70,100,0.1) 0%, transparent 70%);
}
.scn-numbness-everywhere .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2e3a 0%, #1a1e2a 100%); }
.scn-numbness-everywhere .window-frame { position:absolute; bottom:30%; left:30%; width:40%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 4px; box-shadow: inset 0 0 0 8px #2a1a0a; }
.scn-numbness-everywhere .window-glass { position:absolute; bottom:32%; left:33%; width:34%; height:40%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 2px; opacity:0.6; animation: ne-glass 20s ease-in-out infinite alternate; }
.scn-numbness-everywhere .figure-standing { position:absolute; bottom:20%; left:42%; width:15%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ne-stand 6s ease-in-out infinite; }
.scn-numbness-everywhere .curtain-left { position:absolute; bottom:30%; left:28%; width:6%; height:45%; background: linear-gradient(90deg, #3a2a1a, #2a1a0a); border-radius: 0 4px 4px 0; animation: ne-curtain 10s ease-in-out infinite alternate; }
.scn-numbness-everywhere .curtain-right { position:absolute; bottom:30%; right:28%; width:6%; height:45%; background: linear-gradient(270deg, #3a2a1a, #2a1a0a); border-radius: 4px 0 0 4px; animation: ne-curtain 10s ease-in-out infinite alternate-reverse; }
.scn-numbness-everywhere .chair { position:absolute; bottom:12%; left:20%; width:18%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 10% 10% 5% 5%; }
.scn-numbness-everywhere .rug { position:absolute; bottom:0; left:10%; width:80%; height:12%; background: linear-gradient(90deg, #2a1a0e, #1a1008, #2a1a0e); border-radius: 50%; opacity:0.6; }
@keyframes ne-glass {
  0% { opacity:0.4; filter: brightness(0.8); }
  50% { opacity:0.7; filter: brightness(1); }
  100% { opacity:0.5; filter: brightness(0.9); }
}
@keyframes ne-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ne-curtain {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}

.scn-moonlight-midnight-study {
  background:
    linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%),
    radial-gradient(ellipse at 70% 30%, rgba(180,200,230,0.1) 0%, transparent 60%);
}
.scn-moonlight-midnight-study .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); }
.scn-moonlight-midnight-study .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a222a 0%, #0e141a 100%); }
.scn-moonlight-midnight-study .window-moon { position:absolute; top:8%; right:15%; width:25%; height:40%; background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%); border: 4px solid #3a4a5a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(200,210,240,0.2); }
.scn-moonlight-midnight-study .moonlight-beam { position:absolute; top:10%; right:20%; width:20%; height:60%; background: linear-gradient(180deg, rgba(200,210,240,0.08) 0%, rgba(180,200,230,0.03) 100%); transform: skewX(-10deg); animation: mmm-beam 15s ease-in-out infinite alternate; }
.scn-moonlight-midnight-study .rug-pattern { position:absolute; bottom:8%; left:15%; width:70%; height:15%; background: radial-gradient(ellipse, #3a4a5a 0%, #2a3a4a 60%, #1a2a3a 100%); border-radius: 50%; animation: mmm-rug 20s ease-in-out infinite; }
.scn-moonlight-midnight-study .armchair { position:absolute; bottom:22%; left:20%; width:25%; height:30%; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-moonlight-midnight-study .table-small { position:absolute; bottom:20%; right:25%; width:15%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 4px; }
.scn-moonlight-midnight-study .book-stack { position:absolute; bottom:22%; right:28%; width:8%; height:6%; background: linear-gradient(90deg, #4a3a2a, #3a2a1a, #4a3a2a); border-radius: 1px; transform: rotate(3deg); }
.scn-moonlight-midnight-study .lamp-unlit { position:absolute; bottom:28%; right:30%; width:3%; height:14%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 4px; }
@keyframes mmm-beam {
  0% { opacity:0.6; transform: skewX(-12deg) scaleX(1); }
  50% { opacity:0.9; transform: skewX(-8deg) scaleX(1.05); }
  100% { opacity:0.7; transform: skewX(-10deg) scaleX(1); }
}
@keyframes mmm-rug {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.9); }
}

.scn-dimmesdale-apprehensive-air {
  background:
    linear-gradient(180deg, #fce8c8 0%, #e4c88a 30%, #b89860 60%, #7a5a30 100%),
    radial-gradient(ellipse at 50% 0, #fffbe6 0%, transparent 60%);
}
.scn-dimmesdale-apprehensive-air .light-rays {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(135deg, rgba(255,240,190,0.4) 0%, transparent 50%);
  animation: s1-rays 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-apprehensive-air .shadow-floor {
  position: absolute; top: 60%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  transform: scaleY(0.6);
  animation: s1-floor 8s ease-in-out infinite;
}
.scn-dimmesdale-apprehensive-air .figure-silhouette {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 60px;
  background: #1a1308;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-apprehensive-air .figure-shadow {
  position: absolute; bottom: 18%; left: 38%; width: 50px; height: 12px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  transform: skewX(-20deg);
  animation: s1-shadow 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-apprehensive-air .dust-motes {
  position: absolute; top: 20%; left: 20%; right: 20%; bottom: 50%;
  background: radial-gradient(circle at 30% 40%, rgba(255,230,150,0.2) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(255,230,150,0.15) 0%, transparent 50%);
  animation: s1-dust 10s linear infinite;
}
.scn-dimmesdale-apprehensive-air .wall-crack {
  position: absolute; top: 25%; left: 60%; width: 3px; height: 40px;
  background: #5a4020;
  border-radius: 2px;
  transform: rotate(15deg);
  animation: s1-crack 12s ease-in-out infinite alternate;
}
@keyframes s1-rays { 0% { opacity: 0.6; transform: rotate(0deg); } 50% { opacity: 1; transform: rotate(5deg); } 100% { opacity: 0.7; transform: rotate(-3deg); } }
@keyframes s1-floor { 0%, 100% { transform: scaleY(0.6) translateY(0); } 50% { transform: scaleY(0.65) translateY(2px); } }
@keyframes s1-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes s1-shadow { 0%, 100% { opacity: 0.3; transform: skewX(-20deg) scaleX(1); } 50% { opacity: 0.5; transform: skewX(-15deg) scaleX(1.2); } }
@keyframes s1-dust { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }
@keyframes s1-crack { 0% { opacity: 0.6; } 100% { opacity: 0.9; } }

.scn-dimmesdale-bidden-to-speak {
  background:
    linear-gradient(180deg, #f5dbb0 0%, #d4a86a 40%, #a07040 70%, #604020 100%),
    radial-gradient(ellipse at 30% 0, #fff8e0 0%, transparent 70%);
}
.scn-dimmesdale-bidden-to-speak .balcony-rail {
  position: absolute; bottom: 45%; left: 20%; right: 20%; height: 12px;
  background: #5a3a1a;
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: s2-rail 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-bidden-to-speak .balcony-rail::before {
  content: ''; position: absolute; top: -8px; left: 10%; width: 4px; height: 8px;
  background: #4a2a0a;
}
.scn-dimmesdale-bidden-to-speak .balcony-rail::after {
  content: ''; position: absolute; top: -8px; right: 10%; width: 4px; height: 8px;
  background: #4a2a0a;
}
.scn-dimmesdale-bidden-to-speak .figure-leaning {
  position: absolute; bottom: 35%; left: 45%; width: 22px; height: 56px;
  background: #2a1a0a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: s2-lean 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-bidden-to-speak .shadow-cast {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(6px);
  transform: skewX(-30deg);
  animation: s2-shadow 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-bidden-to-speak .light-shaft {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 40%;
  background: linear-gradient(180deg, rgba(255,240,190,0.5) 0%, transparent 80%);
  animation: s2-shaft 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-bidden-to-speak .crowd-shapes {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
  animation: s2-crowd 8s ease-in-out infinite;
}
.scn-dimmesdale-bidden-to-speak .pillar {
  position: absolute; bottom: 0; left: 15%; width: 12px; height: 80%;
  background: linear-gradient(90deg, #7a5a30, #b89860, #7a5a30);
  border-radius: 2px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
}
.scn-dimmesdale-bidden-to-speak .pulpit-edge {
  position: absolute; bottom: 40%; left: 40%; right: 40%; height: 6px;
  background: #4a2a0a;
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: s2-edge 4s ease-in-out infinite alternate;
}
@keyframes s2-rail { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes s2-lean { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(2deg); } }
@keyframes s2-shadow { 0% { opacity: 0.25; transform: skewX(-30deg) scaleX(1); } 50% { opacity: 0.4; transform: skewX(-25deg) scaleX(1.1); } 100% { opacity: 0.3; transform: skewX(-30deg) scaleX(0.9); } }
@keyframes s2-shaft { 0% { opacity: 0.4; } 100% { opacity: 0.7; } }
@keyframes s2-crowd { 0%, 100% { opacity: 0.6; } 50% { opacity: 0.8; } }

.scn-dimmesdale-exhort-her {
  background:
    linear-gradient(180deg, #f0d8a0 0%, #d4b070 40%, #a88550 70%, #705030 100%),
    radial-gradient(ellipse at 20% 0, #fff8d0 0%, transparent 60%);
}
.scn-dimmesdale-exhort-her .hand-pointing {
  position: absolute; top: 20%; left: 45%; width: 10px; height: 30px;
  background: #3a2a1a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: s3-hand 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-exhort-her .arm-sleeve {
  position: absolute; top: 28%; left: 44%; width: 16px; height: 24px;
  background: #2a1a0a;
  border-radius: 30%;
  transform: rotate(20deg);
  transform-origin: 50% 100%;
  animation: s3-arm 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-exhort-her .figure-torso {
  position: absolute; bottom: 35%; left: 42%; width: 28px; height: 50px;
  background: #1a1008;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: s3-torso 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-exhort-her .light-beam {
  position: absolute; top: 0; left: 35%; right: 35%; bottom: 50%;
  background: linear-gradient(180deg, rgba(255,240,190,0.3) 0%, transparent 70%);
  animation: s3-beam 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-exhort-her .shadow-ground {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent, #3a2a1a);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  animation: s3-ground 6s ease-in-out infinite;
}
.scn-dimmesdale-exhort-her .woman-figure {
  position: absolute; bottom: 15%; left: 30%; width: 18px; height: 48px;
  background: #2a1a0a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: s3-woman 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-exhort-her .veil-shape {
  position: absolute; bottom: 50%; left: 28%; width: 24px; height: 20px;
  background: #4a2a1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: s3-veil 4s ease-in-out infinite alternate;
}
@keyframes s3-hand { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(15deg) translateX(4px); } 100% { transform: rotate(5deg) translateX(2px); } }
@keyframes s3-arm { 0% { transform: rotate(20deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(25deg); } }
@keyframes s3-torso { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes s3-beam { 0% { opacity: 0.5; } 100% { opacity: 0.8; } }
@keyframes s3-ground { 0%, 100% { opacity: 0.6; } 50% { opacity: 0.8; } }
@keyframes s3-woman { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(0.95) translateY(-2px); } 100% { transform: scale(0.9) translateY(0); } }
@keyframes s3-veil { 0% { opacity: 0.5; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-3px); } 100% { opacity: 0.6; transform: translateY(-1px); } }

.scn-dimmesdale-speaks-to-hester {
  background:
    linear-gradient(180deg, #f4dbb0 0%, #d4a86a 30%, #a07040 60%, #604020 100%),
    radial-gradient(ellipse at 60% 0, #fff8d0 0%, transparent 70%);
}
.scn-dimmesdale-speaks-to-hester .balcony-arch {
  position: absolute; top: 0; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 70%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: s4-arch 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-speaks-to-hester .figure-bent {
  position: absolute; bottom: 35%; left: 45%; width: 22px; height: 48px;
  background: #2a1a0a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: s4-bent 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-speaks-to-hester .hands-clasped {
  position: absolute; bottom: 50%; left: 44%; width: 10px; height: 10px;
  background: #1a1008;
  border-radius: 50%;
  transform: scale(0.6);
  animation: s4-hands 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-speaks-to-hester .light-from-above {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 50%;
  background: linear-gradient(180deg, rgba(255,240,190,0.4) 0%, transparent 80%);
  animation: s4-light 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-speaks-to-hester .hester-below {
  position: absolute; bottom: 12%; left: 35%; width: 16px; height: 42px;
  background: #2a1a0a;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: scale(0.8);
  animation: s4-hester 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-speaks-to-hester .shadow-stairs {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent, #3a2a1a);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  animation: s4-stairs 6s ease-in-out infinite;
}
.scn-dimmesdale-speaks-to-hester .railing-post {
  position: absolute; bottom: 40%; left: 20%; width: 6px; height: 20px;
  background: #4a2a0a;
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: s4-post 4s ease-in-out infinite alternate;
}
@keyframes s4-arch { 0% { opacity: 0.7; transform: rotate(0deg); } 100% { opacity: 0.9; transform: rotate(2deg); } }
@keyframes s4-bent { 0% { transform: rotate(0deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(4deg); } }
@keyframes s4-hands { 0% { transform: scale(0.6) translateY(0); } 50% { transform: scale(0.7) translateY(-2px); } 100% { transform: scale(0.6) translateY(0); } }
@keyframes s4-light { 0% { opacity: 0.4; } 100% { opacity: 0.7; } }
@keyframes s4-hester { 0% { transform: scale(0.8) translateX(0); } 50% { transform: scale(0.85) translateX(2px); } 100% { transform: scale(0.8) translateX(0); } }
@keyframes s4-stairs { 0%, 100% { opacity: 0.6; } 50% { opacity: 0.8; } }
@keyframes s4-post { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.1); } }

/* ----- hester-fixed-gaze ----- */
.scn-hester-fixed-gaze {
  background: linear-gradient(180deg, #f5e6ca 0%, #c9a96e 40%, #5c3a1a 100%),
              radial-gradient(ellipse at 50% 0%, #f0d080 0%, transparent 70%);
}
.scn-hester-fixed-gaze .sunlight {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 20%, rgba(255,230,150,.8) 0%, transparent 60%);
  animation: hfg-sunpulse 6s ease-in-out infinite alternate;
}
.scn-hester-fixed-gaze .scaffold {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%; background: #6b4a2a;
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-hester-fixed-gaze .figure-woman {
  position: absolute; bottom: 27%; left: 50%; width: 30px; height: 72px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hfg-sway 4s ease-in-out infinite;
}
.scn-hester-fixed-gaze .babe-in-arms {
  position: absolute; bottom: 32%; left: 47%; width: 14px; height: 20px;
  background: #4a3a2a; border-radius: 50% 50% 30% 30%;
  animation: hfg-cradle 5s ease-in-out infinite;
}
.scn-hester-fixed-gaze .scarlet-letter {
  position: absolute; bottom: 50%; left: 50%; width: 14px; height: 16px;
  transform: translateX(-50%); background: #c8553d; border-radius: 4px 4px 6px 6px;
  box-shadow: 0 0 12px 4px #a0461a, 0 0 24px 8px rgba(160,70,26,.3);
  animation: hfg-glimmer 3s ease-in-out infinite alternate;
}
.scn-hester-fixed-gaze .rays {
  position: absolute; top: 0; width: 60%; height: 60%;
  background: linear-gradient(180deg, rgba(255,200,100,.15) 0%, transparent 80%);
  transform-origin: top center; filter: blur(8px);
  animation: hfg-rays 12s linear infinite;
}
.scn-hester-fixed-gaze .ray-a { left: -10%; animation-delay: 0s; }
.scn-hester-fixed-gaze .ray-b { right: -10%; animation-delay: -4s; }
.scn-hester-fixed-gaze .crowd-murmur {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(80,50,30,.6) 100%);
  opacity: 0.6; animation: hfg-crowd 8s ease-in-out infinite;
}
@keyframes hfg-sunpulse {
  0%,100% { opacity: .85; }
  50% { opacity: 1; }
}
@keyframes hfg-sway {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  75% { transform: translateX(-50%) translateY(1px) rotate(-1deg); }
}
@keyframes hfg-cradle {
  0%,100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(4deg); }
}
@keyframes hfg-glimmer {
  0% { box-shadow: 0 0 8px 2px #a0461a, 0 0 16px 4px rgba(160,70,26,.2); opacity: .8; }
  100% { box-shadow: 0 0 20px 6px #d06a3a, 0 0 32px 10px rgba(208,106,58,.5); opacity: 1; }
}
@keyframes hfg-rays {
  0% { transform: scaleX(0.5) rotate(-5deg); opacity: .3; }
  50% { transform: scaleX(1.2) rotate(5deg); opacity: .6; }
  100% { transform: scaleX(0.5) rotate(-5deg); opacity: .3; }
}
@keyframes hfg-crowd {
  0%,100% { opacity: .5; }
  50% { opacity: .8; filter: blur(1px); }
}

/* ----- shelter-in-crowd ----- */
.scn-shelter-in-crowd {
  background: linear-gradient(180deg, #efe8d0 0%, #b89a6a 40%, #5c3a1a 100%),
              radial-gradient(ellipse at 30% 60%, #e0c080 0%, transparent 60%);
}
.scn-shelter-in-crowd .crowd-bg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4030 40%, transparent 80%);
  border-radius: 0 0 20% 20%;
  animation: sic-pulse 12s ease-in-out infinite alternate;
}
.scn-shelter-in-crowd .crowd-fg-left {
  position: absolute; bottom: 15%; left: 2%; width: 35%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 100%);
  border-radius: 50% 20% 0 0;
  filter: blur(2px);
  animation: sic-shift-left 15s ease-in-out infinite;
}
.scn-shelter-in-crowd .crowd-fg-right {
  position: absolute; bottom: 15%; right: 2%; width: 35%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 100%);
  border-radius: 20% 50% 0 0;
  filter: blur(2px);
  animation: sic-shift-right 15s ease-in-out infinite;
}
.scn-shelter-in-crowd .sole-figure {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 10px 2px rgba(0,0,0,.4);
  animation: sic-stand 6s ease-in-out infinite;
}
.scn-shelter-in-crowd .heads-packed {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 15%;
  background: radial-gradient(ellipse at 20% 50%, #3a2a1a 0%, transparent 70%),
              radial-gradient(ellipse at 80% 50%, #3a2a1a 0%, transparent 70%);
  opacity: 0.7; filter: blur(3px);
  animation: sic-heads 8s ease-in-out infinite alternate;
}
.scn-shelter-in-crowd .sun-dapple {
  position: absolute; top: 5%; left: 20%; right: 20%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,.3) 0%, transparent 60%);
  animation: sic-dapple 10s linear infinite;
}
.scn-shelter-in-crowd .shadow-niche {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.3) 100%);
  border-radius: 50%;
}
@keyframes sic-pulse {
  0%,100% { opacity: .6; }
  50% { opacity: .9; }
}
@keyframes sic-shift-left {
  0%,100% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(10px) scaleX(1.05); }
}
@keyframes sic-shift-right {
  0%,100% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-10px) scaleX(1.05); }
}
@keyframes sic-stand {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes sic-heads {
  0% { transform: scaleY(1); opacity: .6; }
  100% { transform: scaleY(1.1); opacity: .8; }
}
@keyframes sic-dapple {
  0% { transform: translateX(-5%); }
  50% { transform: translateX(5%); }
  100% { transform: translateX(-5%); }
}

/* ----- balcony-with-governor ----- */
.scn-balcony-with-governor {
  background: linear-gradient(180deg, #b8a080 0%, #7a5a3a 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 100%, #c0a070 0%, transparent 60%);
}
.scn-balcony-with-governor .colonnade {
  position: absolute; top: 0; bottom: 40%; left: 10%; right: 10%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.5);
}
.scn-balcony-with-governor .balcony-floor {
  position: absolute; bottom: 35%; left: 5%; right: 5%; height: 6%;
  background: #6a4a2a; border-radius: 6px;
  box-shadow: 0 -4px 8px rgba(0,0,0,.4);
}
.scn-balcony-with-governor .gov-figure {
  position: absolute; bottom: 38%; left: 38%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(2deg);
  animation: bwg-gov 5s ease-in-out infinite;
}
.scn-balcony-with-governor .magistrate-fig {
  position: absolute; bottom: 38%; right: 35%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-2deg);
  animation: bwg-mag 6s ease-in-out infinite;
}
.scn-balcony-with-governor .banner-drape {
  position: absolute; top: 5%; left: 30%; right: 30%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: bwg-drape 10s ease-in-out infinite;
}
.scn-balcony-with-governor .sun-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,220,120,.2) 0%, transparent 80%);
  filter: blur(10px);
  animation: bwg-beam 8s linear infinite alternate;
}
.scn-balcony-with-governor .cobblestone {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 12px, #3a2a1a 12px, #3a2a1a 14px);
  filter: blur(1px);
}
@keyframes bwg-gov {
  0%,100% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes bwg-mag {
  0%,100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-1px); }
}
@keyframes bwg-drape {
  0%,100% { transform: scaleY(1); opacity: .8; }
  50% { transform: scaleY(1.05); opacity: 1; }
}
@keyframes bwg-beam {
  0% { opacity: .3; transform: translateX(0); }
  100% { opacity: .6; transform: translateX(10px); }
}

/* ----- dignified-magistrates ----- */
.scn-dignified-magistrates {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4030 30%, #7a5a3a 100%),
              radial-gradient(ellipse at 50% 0%, #8a6a4a 0%, transparent 60%);
}
.scn-dignified-magistrates .bench-wood {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10px 10px 4px 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
}
.scn-dignified-magistrates .row-magistrate {
  position: absolute; bottom: 40%; left: 10%; width: 18%; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%);
  border-radius: 50% 50% 30% 30%;
  animation: dm-rows 7s ease-in-out infinite alternate;
}
.scn-dignified-magistrates .row-magistrate.two {
  left: 35%; width: 22%; height: 28px;
  animation-delay: -2s;
}
.scn-dignified-magistrates .clerks-desk {
  position: absolute; bottom: 28%; left: 55%; width: 30%; height: 8%;
  background: #5a3a1a; border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-dignified-magistrates .gavel-strike {
  position: absolute; bottom: 35%; left: 60%; width: 6px; height: 12px;
  background: #4a2a1a; border-radius: 2px;
  transform-origin: bottom center;
  animation: dm-gavel 1.5s ease-in-out infinite;
}
.scn-dignified-magistrates .window-light {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,170,120,.3) 0%, transparent 100%);
  animation: dm-light 8s ease-in-out infinite alternate;
}
.scn-dignified-magistrates .dust-motes {
  position: absolute; top: 10%; left: 0; right: 0; height: 40%;
  background: radial-gradient(circle at 30% 20%, rgba(255,230,180,.2) 0%, transparent 30%),
              radial-gradient(circle at 70% 40%, rgba(255,230,180,.15) 0%, transparent 30%);
  filter: blur(4px);
  animation: dm-dust 20s linear infinite;
}
.scn-dignified-magistrates .shadow-cross {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(90deg, transparent 40%, rgba(0,0,0,.1) 40%, rgba(0,0,0,.1) 60%, transparent 60%),
              linear-gradient(0deg, transparent 40%, rgba(0,0,0,.05) 40%, rgba(0,0,0,.05) 60%, transparent 60%);
  pointer-events: none;
}
@keyframes dm-rows {
  0% { transform: scaleY(1) translateY(0); }
  100% { transform: scaleY(1.03) translateY(-2px); }
}
@keyframes dm-gavel {
  0%,100% { transform: rotate(0deg); }
  20% { transform: rotate(20deg); }
  40% { transform: rotate(-10deg); }
  60% { transform: rotate(10deg); }
  80% { transform: rotate(-5deg); }
}
@keyframes dm-light {
  0% { opacity: .5; }
  100% { opacity: 1; }
}
@keyframes dm-dust {
  0% { transform: translateY(0) scale(1); opacity: .4; }
  50% { transform: translateY(-20px) scale(1.2); opacity: .4; }
  100% { transform: translateY(0) scale(1); opacity: .4; }
}

.scn-hester-constant-resolve {
  background: 
    radial-gradient(ellipse at 60% 30%, #2a1a0a 0%, #0d0804 60%),
    linear-gradient(180deg, #1a1208 0%, #0a0603 100%);
}
.scn-hester-constant-resolve .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
}
.scn-hester-constant-resolve .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #2a1a0a 0%, #1a1208 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.6);
}
.scn-hester-constant-resolve .lamp-stand {
  position: absolute; bottom: 28%; left: 30%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-hester-constant-resolve .lamp-glow {
  position: absolute; bottom: 42%; left: 28%; width: 50px; height: 50px;
  background: radial-gradient(circle, #c09050 0%, #804020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(192,144,80,.4);
  animation: hr-glow 4s ease-in-out infinite alternate;
}
.scn-hester-constant-resolve .figure-hester {
  position: absolute; bottom: 20%; left: 55%; width: 28px; height: 100px;
  background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hr-walk 6s ease-in-out infinite;
}
.scn-hester-constant-resolve .figure-shade {
  position: absolute; bottom: 18%; left: 52%; width: 40px; height: 80px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: hr-shade 6s ease-in-out infinite;
}
.scn-hester-constant-resolve .window-outline {
  position: absolute; top: 15%; right: 18%; width: 60px; height: 80px;
  border: 3px solid #2a1a0a;
  border-radius: 4px;
  background: transparent;
}
.scn-hester-constant-resolve .window-pane {
  position: absolute; top: 16%; right: 19%; width: 56px; height: 76px;
  background: radial-gradient(circle at 50% 50%, #2a3a3a 0%, #0a1212 100%);
  opacity: 0.6;
  animation: hr-pane 12s ease-in-out infinite alternate;
}

@keyframes hr-glow {
  0% { transform: scale(0.95); box-shadow: 0 0 40px 20px rgba(192,144,80,.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 80px 40px rgba(192,144,80,.5); }
  100% { transform: scale(0.98); box-shadow: 0 0 50px 25px rgba(192,144,80,.35); }
}
@keyframes hr-walk {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(8px) rotate(1deg); }
  60% { transform: translateX(14px) rotate(-2deg); }
  100% { transform: translateX(20px) rotate(0); }
}
@keyframes hr-shade {
  0% { transform: translateX(2px) scale(1); opacity: 0.3; }
  50% { transform: translateX(-3px) scale(0.9); opacity: 0.5; }
  100% { transform: translateX(0) scale(1.05); opacity: 0.35; }
}
@keyframes hr-pane {
  0% { opacity: 0.5; background: radial-gradient(circle at 50% 50%, #2a3a3a 0%, #0a1212 100%); }
  100% { opacity: 0.8; background: radial-gradient(circle at 50% 50%, #3a4a4a 0%, #0a1212 100%); }
}

.scn-no-scandal {
  background: 
    radial-gradient(ellipse at 40% 50%, #1a1810 0%, #0d0c08 70%),
    linear-gradient(180deg, #2a2218 0%, #12100a 100%);
}
.scn-no-scandal .walls {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3228 0%, #1a1812 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-no-scandal .desk {
  position: absolute; bottom: 25%; left: 25%; right: 25%; 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,.5);
}
.scn-no-scandal .desk-chair {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
}
.scn-no-scandal .figure-minister {
  position: absolute; bottom: 22%; left: 42%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0d0d0d 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ns-bow 10s ease-in-out infinite;
}
.scn-no-scandal .lamp-desk {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d0b060 0%, #a08030 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(208,176,96,.4);
  animation: ns-lamp 4s ease-in-out infinite alternate;
}
.scn-no-scandal .book-shelf {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-no-scandal .curtain {
  position: absolute; top: 5%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30%;
  opacity: 0.6;
  animation: ns-curtain 15s ease-in-out infinite alternate;
}

@keyframes ns-bow {
  0% { transform: rotate(0) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(1deg) translateY(-3px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes ns-lamp {
  0% { transform: scale(0.95); box-shadow: 0 0 30px 15px rgba(208,176,96,.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 60px 30px rgba(208,176,96,.5); }
  100% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(208,176,96,.4); }
}
@keyframes ns-curtain {
  0% { opacity: 0.5; transform: translateY(0); }
  50% { opacity: 0.7; transform: translateY(4px); }
  100% { opacity: 0.5; transform: translateY(0); }
}

.scn-attending-sick-chamber {
  background: 
    radial-gradient(ellipse at 40% 60%, #1a1410 0%, #080604 70%),
    linear-gradient(180deg, #1a1208 0%, #0a0604 100%);
}
.scn-attending-sick-chamber .chamber-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1a12 0%, #0d0806 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.7);
}
.scn-attending-sick-chamber .bed {
  position: absolute; bottom: 25%; left: 20%; right: 40%; height: 20%;
  background: linear-gradient(0deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 4% 50% 4% 4% / 20% 40% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-attending-sick-chamber .sick-figure {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc-sick 6s ease-in-out infinite;
}
.scn-attending-sick-chamber .minister-figure {
  position: absolute; bottom: 22%; left: 35%; width: 24px; height: 80px;
  background: linear-gradient(180deg, #1a1818 0%, #0d0c0c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sc-minister 8s ease-in-out infinite;
}
.scn-attending-sick-chamber .candle {
  position: absolute; bottom: 32%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
}
.scn-attending-sick-chamber .candle-glow {
  position: absolute; bottom: 42%; left: 47%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0b070 0%, #b08040 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 30px rgba(224,176,112,.4);
  animation: sc-candle 3s ease-in-out infinite alternate;
}
.scn-attending-sick-chamber .window-crack {
  position: absolute; top: 15%; right: 20%; width: 50px; height: 70px;
  background: radial-gradient(circle at 50% 50%, #1a2a2a 0%, #0a0a0a 100%);
  opacity: 0.4;
  border: 2px solid #2a1a0a;
  border-radius: 2px;
  animation: sc-window 20s ease-in-out infinite alternate;
}

@keyframes sc-sick {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sc-minister {
  0% { transform: translateY(0) rotate(-1deg); }
  33% { transform: translateY(-3px) rotate(1deg); }
  66% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sc-candle {
  0% { transform: scale(0.95) rotate(-2deg); box-shadow: 0 0 30px 15px rgba(224,176,112,.3); }
  50% { transform: scale(1.05) rotate(2deg); box-shadow: 0 0 60px 30px rgba(224,176,112,.5); }
  100% { transform: scale(1) rotate(0); box-shadow: 0 0 40px 20px rgba(224,176,112,.4); }
}
@keyframes sc-window {
  0% { opacity: 0.3; background: radial-gradient(circle at 50% 50%, #1a2a2a 0%, #0a0a0a 100%); }
  100% { opacity: 0.6; background: radial-gradient(circle at 50% 50%, #2a3a3a 0%, #0a0a0a 100%); }
}

.scn-path-into-forest {
  background: 
    radial-gradient(ellipse at 50% 40%, #1a2a1a 0%, #0a0f0a 80%),
    linear-gradient(180deg, #2a3a2a 0%, #0a100a 100%);
}
.scn-path-into-forest .forest-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a0f0a 100%);
  opacity: 0.8;
}
.scn-path-into-forest .path-ground {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(0deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
}
.scn-path-into-forest .tree-left {
  position: absolute; bottom: 15%; left: 5%; width: 40px; height: 200px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 20px 10px rgba(0,0,0,.5);
  transform: rotate(2deg);
  animation: pf-tree-l 15s ease-in-out infinite alternate;
}
.scn-path-into-forest .tree-right {
  position: absolute; bottom: 20%; right: 8%; width: 50px; height: 220px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 20px 10px rgba(0,0,0,.5);
  transform: rotate(-3deg);
  animation: pf-tree-r 18s ease-in-out infinite alternate;
}
.scn-path-into-forest .canopy {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, transparent 60%);
  opacity: 0.7;
  animation: pf-canopy 20s ease-in-out infinite alternate;
}
.scn-path-into-forest .figure-walker {
  position: absolute; bottom: 12%; left: 40%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pf-walk 5s ease-in-out infinite;
}
.scn-path-into-forest .mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(40,50,40,.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: pf-mist 30s ease-in-out infinite alternate;
}

@keyframes pf-tree-l {
  0% { transform: rotate(1deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(0) scale(1); }
}
@keyframes pf-tree-r {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(-4deg) scale(0.98); }
  100% { transform: rotate(-1deg) scale(1); }
}
@keyframes pf-canopy {
  0% { opacity: 0.6; }
  100% { opacity: 0.8; }
}
@keyframes pf-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(6px) rotate(1deg); }
  50% { transform: translateX(12px) rotate(-1deg); }
  75% { transform: translateX(18px) rotate(2deg); }
  100% { transform: translateX(24px) rotate(0); }
}
@keyframes pf-mist {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

.scn-chillingworth-smile {
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 30% 70%, #2a2a3a 0%, transparent 70%);
}
.scn-chillingworth-smile .overcast-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  animation: cw-sky 12s ease-in-out infinite alternate;
}
.scn-chillingworth-smile .square-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: cw-ground 8s ease-in-out infinite;
}
.scn-chillingworth-smile .building-left {
  position: absolute; bottom: 50%; left: 5%; width: 22%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.4);
}
.scn-chillingworth-smile .building-right {
  position: absolute; bottom: 50%; right: 5%; width: 22%; height: 45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.4);
}
.scn-chillingworth-smile .figure {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cw-figure 6s ease-in-out infinite;
}
.scn-chillingworth-smile .smile-glow {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%) translateY(-10px);
  width: 14px; height: 6px;
  background: radial-gradient(circle, #c8553d 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200,85,61,0.5);
  animation: cw-smile 4s ease-in-out infinite alternate;
}
.scn-chillingworth-smile .shadow-puddle {
  position: absolute; bottom: 40%; left: 40%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: cw-shadow 6s ease-in-out infinite;
}
@keyframes cw-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cw-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes cw-figure { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } }
@keyframes cw-smile { 0% { opacity:0.4; transform: translateX(-50%) translateY(-10px) scaleX(1) } 100% { opacity:0.9; transform: translateX(-50%) translateY(-12px) scaleX(1.3) } }
@keyframes cw-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }

.scn-procession-march-begins {
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 30%, #a09070 100%), radial-gradient(ellipse at 50% 0%, #f5f0e0 0%, transparent 60%);
}
.scn-procession-march-begins .sun-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d8c0 100%);
  animation: pm-sky 10s ease-in-out infinite alternate;
}
.scn-procession-march-begins .road {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
  animation: pm-road 8s ease-in-out infinite;
}
.scn-procession-march-begins .banner {
  position: absolute; bottom: 45%; left: 20%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px;
  animation: pm-banner 6s ease-in-out infinite alternate;
}
.scn-procession-march-begins .marcher-1 {
  position: absolute; bottom: 35%; left: 30%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pm-march 4s ease-in-out infinite;
}
.scn-procession-march-begins .marcher-2 {
  position: absolute; bottom: 35%; left: 42%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pm-march 4s ease-in-out infinite 0.3s;
}
.scn-procession-march-begins .marcher-3 {
  position: absolute; bottom: 35%; left: 54%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pm-march 4s ease-in-out infinite 0.6s;
}
.scn-procession-march-begins .sun-ray {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 120px;
  background: radial-gradient(circle at 50% 50%, rgba(255,240,200,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(20px);
  animation: pm-ray 15s ease-in-out infinite alternate;
}
@keyframes pm-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes pm-road { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes pm-banner { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes pm-march { 0% { transform: translateX(0) } 25% { transform: translateX(4px) } 50% { transform: translateX(8px) } 75% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes pm-ray { 0% { opacity:0.3; transform: scale(0.8) } 100% { opacity:0.7; transform: scale(1.2) } }

.scn-soldiers-burnished-steel {
  background: linear-gradient(180deg, #f5e0c0 0%, #d0b090 30%, #a08060 100%), radial-gradient(ellipse at 70% 80%, #e0c8a0 0%, transparent 60%);
}
.scn-soldiers-burnished-steel .warm-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f5e0c0 0%, #e0c8a0 100%);
  animation: sb-sky 10s ease-in-out infinite alternate;
}
.scn-soldiers-burnished-steel .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: sb-field 12s ease-in-out infinite;
}
.scn-soldiers-burnished-steel .soldier-1 {
  position: absolute; bottom: 30%; left: 25%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(200,180,140,0.6);
  animation: sb-soldier 5s ease-in-out infinite;
}
.scn-soldiers-burnished-steel .soldier-2 {
  position: absolute; bottom: 30%; left: 40%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(200,180,140,0.6);
  animation: sb-soldier 5s ease-in-out infinite 0.2s;
}
.scn-soldiers-burnished-steel .soldier-3 {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(200,180,140,0.6);
  animation: sb-soldier 5s ease-in-out infinite 0.4s;
}
.scn-soldiers-burnished-steel .armor-gleam {
  position: absolute; bottom: 38%; left: 32%; width: 40px; height: 30px;
  background: radial-gradient(circle at 50% 50%, rgba(255,240,200,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sb-gleam 3s ease-in-out infinite alternate;
}
.scn-soldiers-burnished-steel .spear {
  position: absolute; bottom: 30%; left: 50%; width: 3px; height: 60px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 1px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: sb-spear 4s ease-in-out infinite alternate;
}
@keyframes sb-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes sb-field { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } 100% { transform: scaleY(1) } }
@keyframes sb-soldier { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes sb-gleam { 0% { opacity:0.3; transform: scale(0.8) } 100% { opacity:0.8; transform: scale(1.2) } }
@keyframes sb-spear { 0% { transform: rotate(10deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(10deg) } }

.scn-civil-magistrates-approach {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 30%, #b0a080 100%), radial-gradient(ellipse at 30% 80%, #e0d0c0 0%, transparent 60%);
}
.scn-civil-magistrates-approach .calm-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  animation: cm-sky 12s ease-in-out infinite alternate;
}
.scn-civil-magistrates-approach .road {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: linear-gradient(180deg, #c0b098 0%, #a09078 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.1);
  animation: cm-road 10s ease-in-out infinite;
}
.scn-civil-magistrates-approach .magistrate-1 {
  position: absolute; bottom: 35%; left: 25%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 4px 1px rgba(100,80,60,0.4);
  animation: cm-magistrate 7s ease-in-out infinite;
}
.scn-civil-magistrates-approach .magistrate-2 {
  position: absolute; bottom: 35%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 4px 1px rgba(100,80,60,0.4);
  animation: cm-magistrate 7s ease-in-out infinite 0.3s;
}
.scn-civil-magistrates-approach .magistrate-3 {
  position: absolute; bottom: 35%; left: 55%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 4px 1px rgba(100,80,60,0.4);
  animation: cm-magistrate 7s ease-in-out infinite 0.6s;
}
.scn-civil-magistrates-approach .staff {
  position: absolute; bottom: 35%; left: 40%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: cm-staff 8s ease-in-out infinite alternate;
}
.scn-civil-magistrates-approach .escort-shadow {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 100%);
  border-radius: 50%;
  animation: cm-shadow 6s ease-in-out infinite alternate;
}
@keyframes cm-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes cm-road { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes cm-magistrate { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-6px) } }
@keyframes cm-staff { 0% { transform: rotate(2deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(2deg) } }
@keyframes cm-shadow { 0% { opacity:0.2; transform: scaleX(1) } 100% { opacity:0.5; transform: scaleX(1.1) } }

.scn-general-i-try-sir { background: linear-gradient(180deg, #2a1a0e 0%, #3d2b1a 50%, #1f1308 100%), radial-gradient(ellipse at 60% 80%, #5c3a22 0%, transparent 60%); }
.scn-general-i-try-sir .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3d2b1a 0%, #2a1a0e 100%); }
.scn-general-i-try-sir .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0d05 100%); }
.scn-general-i-try-sir .desk { position:absolute; bottom:25%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.6); }
.scn-general-i-try-sir .candle { position:absolute; bottom:40%; left:45%; width:6%; height:20%; background: linear-gradient(180deg, #e8d4b8 0%, #c4a882 50%, #8a6e50 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 0 4px rgba(0,0,0,.5); }
.scn-general-i-try-sir .flame { position:absolute; bottom:58%; left:46.5%; width:3%; height:8%; background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 12px 6px rgba(255,160,64,.6), 0 0 24px 12px rgba(255,160,64,.3); animation: gi-flame 2s ease-in-out infinite alternate; }
.scn-general-i-try-sir .paper { position:absolute; bottom:26%; left:35%; width:20%; height:14%; background: linear-gradient(135deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 2%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: gi-paper 6s ease-in-out infinite; }
.scn-general-i-try-sir .shadow { position:absolute; bottom:0; left:10%; width:35%; height:60%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(4px); animation: gi-shadow 8s ease-in-out infinite alternate; }
@keyframes gi-flame { 0% { transform: scale(1) rotate(0deg); opacity:.8; } 50% { transform: scale(1.2) rotate(-5deg); opacity:1; } 100% { transform: scale(0.9) rotate(5deg); opacity:.8; } }
@keyframes gi-paper { 0% { opacity:.7; transform: rotate(-5deg) translateY(0); } 50% { opacity:1; transform: rotate(-3deg) translateY(-2px); } 100% { opacity:.7; transform: rotate(-5deg) translateY(0); } }
@keyframes gi-shadow { 0% { opacity:.3; transform: translateX(0); } 50% { opacity:.5; transform: translateX(10px); } 100% { opacity:.3; transform: translateX(0); } }

.scn-man-of-business { background: linear-gradient(180deg, #2a2a2a 0%, #3a3a3a 40%, #1a1a1a 100%), radial-gradient(ellipse at 50% 100%, #4a4a4a 0%, transparent 70%); }
.scn-man-of-business .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); }
.scn-man-of-business .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); }
.scn-man-of-business .lamp { position:absolute; bottom:55%; left:50%; width:8%; height:15%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 30% 30% 10% 10%; transform: translateX(-50%); }
.scn-man-of-business .lamp-glow { position:absolute; bottom:60%; left:50%; width:12%; height:12%; background: radial-gradient(circle, #f0d080 0%, transparent 60%); transform: translate(-50%, 50%); box-shadow: 0 0 30px 15px rgba(240,208,128,.4); animation: mb-glow 4s ease-in-out infinite alternate; }
.scn-man-of-business .table { position:absolute; bottom:25%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 20% 20%; box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-man-of-business .figure-left { position:absolute; bottom:20%; left:20%; width:12%; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-figure 6s ease-in-out infinite; }
.scn-man-of-business .figure-right { position:absolute; bottom:20%; right:20%; width:12%; height:40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mb-figure 6s ease-in-out infinite reverse; }
@keyframes mb-glow { 0% { opacity:.5; transform: translate(-50%, 50%) scale(0.9); } 50% { opacity:.8; transform: translate(-50%, 50%) scale(1.1); } 100% { opacity:.5; transform: translate(-50%, 50%) scale(0.9); } }
@keyframes mb-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }

.scn-man-of-business-customhouse-itself { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 70%); }
.scn-man-of-business-customhouse-itself .wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-man-of-business-customhouse-itself .floor { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); }
.scn-man-of-business-customhouse-itself .desk { position:absolute; bottom:20%; left:15%; width:70%; height:25%; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.6); }
.scn-man-of-business-customhouse-itself .cog { position:absolute; bottom:30%; left:30%; width:16%; height:16%; background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 60%, #1a1a2e 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: mc-cog 12s linear infinite; }
.scn-man-of-business-customhouse-itself .cog::after { content:''; position:absolute; top:25%; left:25%; width:50%; height:50%; background: radial-gradient(circle, #8a7a5a 0%, #5a4a2a 100%); border-radius: 50%; }
.scn-man-of-business-customhouse-itself .inkwell { position:absolute; bottom:22%; left:55%; width:8%; height:12%; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-10deg); }
.scn-man-of-business-customhouse-itself .paper-stack { position:absolute; bottom:22%; left:20%; width:30%; height:8%; background: linear-gradient(135deg, #e0d0b8 0%, #c0b098 100%); border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: mc-paper 5s ease-in-out infinite alternate; }
.scn-man-of-business-customhouse-itself .stamp { position:absolute; bottom:22%; right:30%; width:8%; height:10%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(15deg); animation: mc-stamp 4s ease-in-out infinite; }
@keyframes mc-cog { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes mc-paper { 0% { opacity:.7; transform: translateY(0); } 50% { opacity:1; transform: translateY(-3px); } 100% { opacity:.7; transform: translateY(0); } }
@keyframes mc-stamp { 0% { transform: translateY(0) rotate(15deg); } 25% { transform: translateY(-4px) rotate(15deg); } 50% { transform: translateY(0) rotate(15deg); } 75% { transform: translateY(-4px) rotate(15deg); } 100% { transform: translateY(0) rotate(15deg); } }

.scn-man-of-business-integrity { background: linear-gradient(180deg, #1a0e05 0%, #2a1a0e 50%, #1a0e05 100%), radial-gradient(ellipse at 50% 100%, #3d2b1a 0%, transparent 70%); }
.scn-man-of-business-integrity .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e05 100%); }
.scn-man-of-business-integrity .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%); }
.scn-man-of-business-integrity .table { position:absolute; bottom:20%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.6); }
.scn-man-of-business-integrity .ledger { position:absolute; bottom:22%; left:30%; width:25%; height:12%; background: linear-gradient(135deg, #c8b8a0 0%, #a89880 100%); border-radius: 2%; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: mi-ledger 8s ease-in-out infinite; }
.scn-man-of-business-integrity .coin { position:absolute; bottom:22%; left:55%; width:6%; height:6%; background: radial-gradient(circle, #f0d080 0%, #c8a850 60%, #8a6e30 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: mi-coin 3s ease-in-out infinite alternate; }
.scn-man-of-business-integrity .hand { position:absolute; bottom:20%; right:40%; width:12%; height:20%; background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mi-hand 4s ease-in-out infinite; }
.scn-man-of-business-integrity .candle { position:absolute; bottom:45%; left:20%; width:5%; height:18%; background: linear-gradient(180deg, #e8d4b8 0%, #c4a882 50%, #8a6e50 100%); border-radius: 10% 10% 40% 40%; box-shadow: 0 0 4px rgba(0,0,0,.5); }
.scn-man-of-business-integrity .flame { position:absolute; bottom:60%; left:20.5%; width:2.5%; height:7%; background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 12px 6px rgba(255,160,64,.6), 0 0 24px 12px rgba(255,160,64,.3); animation: mi-flame 2.5s ease-in-out infinite alternate; }
@keyframes mi-ledger { 0% { opacity:.7; transform: rotate(-3deg) translateY(0); } 50% { opacity:1; transform: rotate(-1deg) translateY(-2px); } 100% { opacity:.7; transform: rotate(-3deg) translateY(0); } }
@keyframes mi-coin { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mi-hand { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mi-flame { 0% { transform: scale(1) rotate(0deg); opacity:.8; } 50% { transform: scale(1.15) rotate(-5deg); opacity:1; } 100% { transform: scale(0.95) rotate(5deg); opacity:.85; } }

.scn-pearl-wants-sunshine { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #FFF8DC 100%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%); }
.scn-pearl-wants-sunshine .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #87CEEB 0%, #FFF0B0 100%); opacity:0.6; animation: pws-sky 20s ease-in-out infinite alternate; }
.scn-pearl-wants-sunshine .sun { position:absolute; top:5%; left:45%; width:60px; height:60px; background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 100%); border-radius:50%; animation: pws-sun 30s ease infinite alternate; }
.scn-pearl-wants-sunshine .house { position:absolute; bottom:30%; left:20%; width:45%; height:45%; background: linear-gradient(180deg, #FAEBD7 0%, #DEB887 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -10px 30px rgba(255,215,0,0.3); }
.scn-pearl-wants-sunshine .window { position:absolute; bottom:45%; width:30px; height:40px; background: #FFE4B5; border: 3px solid #8B4513; border-radius:4px; box-shadow: inset 0 0 20px #FFD700, 0 0 15px #FFD700; animation: pws-window 2s ease-in-out infinite alternate; }
.scn-pearl-wants-sunshine .window.left { left:30%; }
.scn-pearl-wants-sunshine .window.right { right:30%; animation-delay:0.5s; }
.scn-pearl-wants-sunshine .ray { position:absolute; top:0; width:20px; height:100%; background: linear-gradient(180deg, rgba(255,255,224,0.6) 0%, transparent 100%); transform-origin: top center; }
.scn-pearl-wants-sunshine .ray-1 { left:25%; transform: rotate(-10deg); animation: pws-ray 6s ease-in-out infinite; }
.scn-pearl-wants-sunshine .ray-2 { right:25%; transform: rotate(10deg); animation: pws-ray 6s ease-in-out infinite reverse; }
.scn-pearl-wants-sunshine .pearl { position:absolute; bottom:20%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #FFB6C1 0%, #FF69B4 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pws-dance 1.5s ease-in-out infinite; }
.scn-pearl-wants-sunshine .shadow { position:absolute; bottom:17%; left:53%; width:30px; height:8px; background: rgba(0,0,0,0.15); border-radius:50%; filter:blur(3px); animation: pws-shadow 1.5s ease-in-out infinite; }
@keyframes pws-sky { 0% { opavàcity:0.5; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.02); } 100% { opacity:0.5; transform: scaleY(1); } }
@keyframes pws-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 50px #FFD700; } 50% { transform: translateY(-3px) scale(1.05); box-shadow: 0 0 80px #FFA500; } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 50px #FFD700; } }
@keyframes pws-window { 0% { box-shadow: inset 0 0 10px #FFD700, 0 0 10px #FFD700; opacity:0.8; } 100% { box-shadow: inset 0 0 30px #FFE4B5, 0 0 30px #FFE4B5; opacity:1; } }
@keyframes pws-ray { 0% { transform: rotate(-10deg) scaleY(0.8); opacity:0.4; } 50% { transform: rotate(-5deg) scaleY(1.2); opacity:0.8; } 100% { transform: rotate(-10deg) scaleY(0.8); opacity:0.4; } }
@keyframes pws-dance { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-6px) rotate(5deg); } 50% { transform: translateY(0) rotate(-5deg); } 75% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes pws-shadow { 0% { transform: scaleX(1) translateX(0); opacity:0.5; } 50% { transform: scaleX(0.8) translateX(3px); opacity:0.2; } 100% { transform: scaleX(1) translateX(0); opacity:0.5; } }

.scn-hester-knocks-at-governor { background: linear-gradient(180deg, #D2B48C 0%, #E6D5B3 50%, #FFF8DC 100%), radial-gradient(ellipse at 50% 100%, #FFF8DC 0%, transparent 70%); }
.scn-hester-knocks-at-governor .bg-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%; opacity:0.4; animation: hkg-sky 25s ease-in-out infinite alternate; }
.scn-hester-knocks-at-governor .tower { position:absolute; bottom:0; width:18%; height:90%; background: linear-gradient(180deg, #A0522D 0%, #8B4513 100%); border-radius: 10% 10% 0 0; box-shadow: inset -5px 0 15px rgba(0,0,0,0.3); }
.scn-hester-knocks-at-governor .tower.left { left:8%; }
.scn-hester-knocks-at-governor .tower.right { right:8%; }
.scn-hester-knocks-at-governor .door { position:absolute; bottom:10%; left:35%; width:30%; height:70%; background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.5), 0 10px 20px rgba(0,0,0,0.4); }
.scn-hester-knocks-at-governor .lattice-a, .scn-hester-knocks-at-governor .lattice-b { position:absolute; width:12px; height:30px; background: #D2B48C; border:2px solid #8B4513; border-radius:4px; top:30%; }
.scn-hester-knocks-at-governor .lattice-a { left:14%; transform: rotate(-15deg); animation: hkg-shutter 4s ease-in-out infinite alternate; }
.scn-hester-knocks-at-governor .lattice-b { right:14%; transform: rotate(15deg); animation: hkg-shutter 4s ease-in-out infinite alternate-reverse; }
.scn-hester-knocks-at-governor .hammer { position:absolute; bottom:28%; left:47%; width:8px; height:24px; background: #696969; border-radius: 0 0 50% 50%; transform-origin: top center; animation: hkg-hammer 5s ease-in-out infinite; }
.scn-hester-knocks-at-governor .hand { position:absolute; bottom:26%; left:45%; width:16px; height:24px; background: linear-gradient(180deg, #FFE4B5 0%, #DEB887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: hkg-hand 5s ease-in-out infinite; }
@keyframes hkg-sky { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes hkg-shutter { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(0.9); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes hkg-hammer { 0% { transform: rotate(0deg); } 30% { transform: rotate(15deg); } 60% { transform: rotate(0deg); } 100% { transform: rotate(0deg); } }
@keyframes hkg-hand { 0% { transform: translateY(0) rotate(5deg); } 30% { transform: translateY(-2px) rotate(15deg); } 60% { transform: translateY(0) rotate(5deg); } 100% { transform: translateY(0) rotate(5deg); } }

.scn-bond-servant-answers { background: linear-gradient(180deg, #F5DEB3 0%, #E8D5B0 50%, #D2B48C 100%), radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 60%); }
.scn-bond-servant-answers .door-bg { position:absolute; inset:0; background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); opacity:0.5; }
.scn-bond-servant-answers .frame { position:absolute; top:10%; left:20%; width:60%; height:80%; border: 6px solid #6B3A2A; border-radius: 0% 0% 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
.scn-bond-servant-answers .servant-body { position:absolute; bottom:10%; left:40%; width:15%; height:55%; background: linear-gradient(180deg, #1E90FF 0%, #4169E1 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 10px 20px rgba(0,0,0,0.3); transform-origin: bottom center; animation: bsa-body 3s ease-in-out infinite; }
.scn-bond-servant-answers .coat { position:absolute; bottom:15%; left:41%; width:13%; height:40%; background: linear-gradient(180deg, #1C86EE 0%, #104E8B 100%); border-radius: 20% 20% 10% 10%; }
.scn-bond-servant-answers .collar { position:absolute; bottom:50%; left:45%; width:5%; height:7%; background: #FFFFFF; border-radius: 0 0 50% 50%; }
.scn-bond-servant-answers .sleeve { position:absolute; bottom:28%; left:36%; width:8%; height:16%; background: linear-gradient(180deg, #1C86EE 0%, #104E8B 100%); border-radius: 20% 20% 50% 50%; transform: rotate(-20deg); animation: bsa-sleeve 4s ease-in-out infinite alternate; }
.scn-bond-servant-answers .arm { position:absolute; bottom:25%; left:30%; width:4%; height:20%; background: linear-gradient(180deg, #F5DEB3 0%, #DEB887 100%); border-radius: 40%; transform: rotate(-10deg); animation: bsa-arm 4s ease-in-out infinite alternate; }
.scn-bond-servant-answers .shadow-floor { position:absolute; bottom:5%; left:10%; width:80%; height:4%; background: rgba(0,0,0,0.2); border-radius:50%; filter:blur(5px); animation: bsa-shadow 6s ease-in-out infinite; }
@keyframes bsa-body { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes bsa-sleeve { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(2px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes bsa-arm { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes bsa-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.1); opacity:0.2; } 100% { transform: scaleX(1); opacity:0.3; } }

.scn-hester-enters-hall { background: linear-gradient(180deg, #2F1E0E 0%, #4A2E15 50%, #6B3A2A 100%), radial-gradient(ellipse at 50% 50%, #8B5A2B 0%, transparent 70%); }
.scn-hester-enters-hall .hall-bg { position:absolute; inset:0; background: linear-gradient(90deg, #3E2A1A 0%, #5C4033 100%); opacity:0.6; }
.scn-hester-enters-hall .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4B3621 0%, #2F1E0E 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); }
.scn-hester-enters-hall .column { position:absolute; bottom:20%; width:8%; height:70%; background: linear-gradient(180deg, #A0522D 0%, #8B4513 100%); border-radius: 10% 10% 0 0; box-shadow: inset -5px 0 15px rgba(0,0,0,0.4), 0 5px 10px rgba(0,0,0,0.3); }
.scn-hester-enters-hall .column.left { left:15%; }
.scn-hester-enters-hall .column.right { right:15%; }
.scn-hester-enters-hall .arch { position:absolute; top:8%; left:20%; width:50%; height:25%; border: 6px solid #8B4513; border-bottom: none; border-radius: 50% 50% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,0.4); }
.scn-hester-enters-hall .hester { position:absolute; bottom:15%; left:35%; width:10%; height:45%; background: linear-gradient(180deg, #800020 0%, #5E1A1D 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: heh-walk 5s ease-in-out infinite; }
.scn-hester-enters-hall .pearl { position:absolute; bottom:15%; left:40%; width:6%; height:25%; background: linear-gradient(180deg, #FFB6C1 0%, #FF69B4 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: heh-walk 5s ease-in-out infinite reverse; }
.scn-hester-enters-hall .lamp { position:absolute; top:30%; left:10%; width:5%; height:8%; background: radial-gradient(circle, #FFD700 0%, #FF8C00 100%); border-radius: 50%; box-shadow: 0 0 30px #FFD700, 0 0 60px #FF8C00; animation: heh-glow 3s ease-in-out infinite alternate; }
.scn-hester-enters-hall .glow { position:absolute; top:25%; left:5%; width:20%; height:40%; background: radial-gradient(ellipse, rgba(255,215,0,0.3) 0%, transparent 100%); animation: heh-glow 3s ease-in-out infinite alternate-reverse; }
@keyframes heh-walk { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes heh-glow { 0% { box-shadow: 0 0 20px #FFD700, 0 0 40px #FF8C00; opacity:0.8; } 100% { box-shadow: 0 0 40px #FFD700, 0 0 80px #FF8C00; opacity:1; } }

.scn-chillingworth-drink {
  background: 
    radial-gradient(ellipse at 50% 60%, #2a1f1a 0%, #1a1210 60%, #0e0a08 100%),
    linear-gradient(180deg, #1f1512 0%, #100b09 100%);
}

.scn-chillingworth-drink .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 90% 30%, rgba(80, 50, 30, 0.25) 0%, transparent 70%); }
.scn-chillingworth-drink .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2e221c 0%, #1b1310 100%); }
.scn-chillingworth-drink .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1d1511 0%, #0f0b09 100%); }
.scn-chillingworth-drink .table { position:absolute; bottom:25%; left:40%; width:18%; height:8%; background: linear-gradient(180deg, #4a342a 0%, #2d1e17 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: cd-table 6s ease-in-out infinite; }
.scn-chillingworth-drink .lamp { position:absolute; bottom:35%; left:38%; width:4%; height:6%; background: radial-gradient(circle, #d9a05b 0%, #8e5e2e 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(200, 120, 40, 0.5), 0 0 40px 15px rgba(200, 120, 40, 0.2); animation: cd-lamp 2s ease-in-out infinite alternate; }
.scn-chillingworth-drink .cup { position:absolute; bottom:30%; left:46%; width:4%; height:5%; background: linear-gradient(180deg, #7a5a3a 0%, #4e3324 100%); border-radius: 0 0 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: cd-cup 8s ease-in-out infinite; }
.scn-chillingworth-drink .figure-left { position:absolute; bottom:20%; left:30%; width:10%; height:40%; background: linear-gradient(180deg, #2a1d18 0%, #140e0b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-figure-left 4s ease-in-out infinite; }
.scn-chillingworth-drink .figure-right { position:absolute; bottom:20%; right:30%; width:9%; height:38%; background: linear-gradient(180deg, #2a1d18 0%, #140e0b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-figure-right 5s ease-in-out infinite reverse; }

@keyframes cd-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(1px); } }
@keyframes cd-lamp { 0% { opacity: 0.7; box-shadow: 0 0 15px 5px rgba(200,120,40,0.4); } 50% { opacity: 1; box-shadow: 0 0 25px 10px rgba(200,120,40,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 18px 6px rgba(200,120,40,0.45); } }
@keyframes cd-cup { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-2deg); } 70% { transform: translateY(1px) rotate(2deg); } }
@keyframes cd-figure-left { 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 cd-figure-right { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2px) rotate(-1deg); } 66% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-hester-drains-cup {
  background: 
    radial-gradient(ellipse at 50% 60%, #2a1f1a 0%, #1a1210 60%, #0e0a08 100%),
    linear-gradient(180deg, #1f1512 0%, #100b09 100%);
}

.scn-hester-drains-cup .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 80% 40%, rgba(80,50,30,0.2) 0%, transparent 70%); }
.scn-hester-drains-cup .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2e221c 0%, #1b1310 100%); }
.scn-hester-drains-cup .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1d1511 0%, #0f0b09 100%); }
.scn-hester-drains-cup .lamp { position:absolute; bottom:45%; left:45%; width:4%; height:5%; background: radial-gradient(circle, #d9a05b 0%, #8e5e2e 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(200,120,40,0.5), 0 0 40px 15px rgba(200,120,40,0.2); animation: hdc-lamp 2s ease-in-out infinite alternate; }
.scn-hester-drains-cup .arm { position:absolute; bottom:30%; left:50%; width:12%; height:25%; background: linear-gradient(180deg, #2a1d18 0%, #140e0b 100%); border-radius: 40% 40% 60% 60% / 30% 30% 70% 70%; transform-origin: 0% 100%; animation: hdc-arm 4s ease-in-out infinite; }
.scn-hester-drains-cup .cup { position:absolute; bottom:35%; left:54%; width:4%; height:6%; background: linear-gradient(180deg, #7a5a3a 0%, #4e3324 100%); border-radius: 0 0 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: hdc-cup 3s ease-in-out infinite; }
.scn-hester-drains-cup .shadow { position:absolute; bottom:20%; left:46%; width:20%; height:5%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: hdc-shadow 6s ease-in-out infinite; }

@keyframes hdc-lamp { 0% { opacity: 0.7; box-shadow: 0 0 15px 5px rgba(200,120,40,0.4); } 50% { opacity: 1; box-shadow: 0 0 25px 10px rgba(200,120,40,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 18px 6px rgba(200,120,40,0.45); } }
@keyframes hdc-arm { 0% { transform: rotate(0deg); } 30% { transform: rotate(-10deg) translateY(-2px); } 70% { transform: rotate(5deg) translateY(1px); } 100% { transform: rotate(0deg); } }
@keyframes hdc-cup { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-5deg); } 70% { transform: translateY(1px) rotate(3deg); } }
@keyframes hdc-shadow { 0%,100% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.1); } }

.scn-chillingworth-reproaches {
  background: 
    radial-gradient(ellipse at 50% 70%, #2a1f1a 0%, #1a1210 60%, #0e0a08 100%),
    linear-gradient(180deg, #1f1512 0%, #100b09 100%);
}

.scn-chillingworth-reproaches .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 20% 50%, rgba(60,40,30,0.2) 0%, transparent 70%); }
.scn-chillingworth-reproaches .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2e221c 0%, #1b1310 100%); }
.scn-chillingworth-reproaches .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1d1511 0%, #0f0b09 100%); }
.scn-chillingworth-reproaches .lamp { position:absolute; bottom:40%; left:15%; width:3%; height:4%; background: radial-gradient(circle, #d9a05b 0%, #8e5e2e 70%); border-radius: 50%; box-shadow: 0 0 15px 6px rgba(200,120,40,0.5), 0 0 30px 12px rgba(200,120,40,0.2); animation: cr-lamp 2s ease-in-out infinite alternate; }
.scn-chillingworth-reproaches .chair { position:absolute; bottom:20%; left:40%; width:12%; height:15%; background: linear-gradient(180deg, #3a2a22 0%, #1d1410 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: cr-chair 7s ease-in-out infinite; }
.scn-chillingworth-reproaches .figure-seated { position:absolute; bottom:20%; left:43%; width:10%; height:30%; background: linear-gradient(180deg, #2a1d18 0%, #140e0b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-figure-seated 5s ease-in-out infinite; }
.scn-chillingworth-reproaches .figure-standing { position:absolute; bottom:15%; right:30%; width:8%; height:45%; background: linear-gradient(180deg, #2a1d18 0%, #140e0b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-figure-standing 4s ease-in-out infinite reverse; }
.scn-chillingworth-reproaches .shadow { position:absolute; bottom:10%; left:30%; width:30%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: cr-shadow 8s ease-in-out infinite; }

@keyframes cr-lamp { 0% { opacity: 0.75; box-shadow: 0 0 12px 4px rgba(200,120,40,0.4); } 50% { opacity: 1; box-shadow: 0 0 22px 9px rgba(200,120,40,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 15px 5px rgba(200,120,40,0.45); } }
@keyframes cr-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes cr-figure-seated { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cr-figure-standing { 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 cr-shadow { 0%,100% { opacity: 0.3; } 50% { opacity: 0.6; } }

.scn-hester-frankness {
  background: 
    radial-gradient(ellipse at 50% 60%, #2a1f1a 0%, #1a1210 60%, #0e0a08 100%),
    linear-gradient(180deg, #1f1512 0%, #100b09 100%);
}

.scn-hester-frankness .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 80% 30%, rgba(60,40,30,0.15) 0%, transparent 70%); }
.scn-hester-frankness .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2e221c 0%, #1b1310 100%); }
.scn-hester-frankness .lamp { position:absolute; bottom:45%; left:50%; width:3%; height:4%; background: radial-gradient(circle, #d9a05b 0%, #8e5e2e 70%); border-radius: 50%; box-shadow: 0 0 18px 7px rgba(200,120,40,0.5), 0 0 35px 14px rgba(200,120,40,0.2); animation: hf-lamp 2s ease-in-out infinite alternate; }
.scn-hester-frankness .hester-silhouette { position:absolute; bottom:25%; left:30%; width:10%; height:35%; background: linear-gradient(180deg, #2a1d18 0%, #140e0b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hf-hester 4s ease-in-out infinite; }
.scn-hester-frankness .chillingworth-silhouette { position:absolute; bottom:20%; right:25%; width:9%; height:40%; background: linear-gradient(180deg, #2a1d18 0%, #140e0b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hf-chillingworth 5s ease-in-out infinite reverse; }
.scn-hester-frankness .shadow { position:absolute; bottom:15%; left:25%; width:25%; height:5%; background: radial-gradient(ellipse, rgba(0,0,0,0.45) 0%, transparent 70%); animation: hf-shadow 7s ease-in-out infinite; }

@keyframes hf-lamp { 0% { opacity: 0.7; box-shadow: 0 0 14px 5px rgba(200,120,40,0.4); } 50% { opacity: 1; box-shadow: 0 0 24px 10px rgba(200,120,40,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 17px 6px rgba(200,120,40,0.45); } }
@keyframes hf-hester { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-3deg); } 50% { transform: translateX(-2px) rotate(2deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hf-chillingworth { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-3px) rotate(2deg); } 66% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hf-shadow { 0%,100% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.2); } }

.scn-item-pearl-grasps-letter {
  background:
    linear-gradient(135deg, #c89f6b 0%, #a0784a 40%, #7a5a3a 100%),
    radial-gradient(ellipse at 70% 30%, #e8c88a 0%, transparent 60%);
}
.scn-item-pearl-grasps-letter .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d4b88a 0%, #b8986a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.3);
  animation: pgl-wall 20s ease-in-out infinite alternate;
}
.scn-item-pearl-grasps-letter .cradle {
  position: absolute; bottom: 10%; left: 10%; width: 55%; height: 30%;
  background: linear-gradient(150deg, #6a4e32 0%, #3f2e1c 100%);
  border-radius: 30% 20% 10% 10% / 40% 30% 20% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: pgl-cradle 8s ease-in-out infinite;
}
.scn-item-pearl-grasps-letter .mother {
  position: absolute; bottom: 8%; left: 20%; width: 24%; height: 55%;
  background: linear-gradient(180deg, #8b6f46 0%, #4a3520 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgl-mother 12s ease-in-out infinite alternate;
}
.scn-item-pearl-grasps-letter .letter-glow {
  position: absolute; bottom: 35%; left: 48%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffd78a 0%, #e8a84a 50%, transparent 100%);
  box-shadow: 0 0 30px 10px rgba(255,215,138,0.6);
  animation: pgl-glow 2s ease-in-out infinite alternate;
}
.scn-item-pearl-grasps-letter .letter-embroidery {
  position: absolute; bottom: 35%; left: 47%; width: 8%; height: 10%;
  border: 2px solid #c6a554;
  border-radius: 10% 20% 10% 20%;
  background: radial-gradient(ellipse, #e8c44a 0%, transparent 60%);
  animation: pgl-embroider 4s ease-in-out infinite;
}
.scn-item-pearl-grasps-letter .baby-hand {
  position: absolute; bottom: 38%; left: 52%; width: 3%; height: 4%;
  background: radial-gradient(circle, #f0d4b0 0%, #d4a87a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform-origin: bottom left;
  animation: pgl-hand 3s ease-in-out infinite;
}
.scn-item-pearl-grasps-letter .window-light {
  position: absolute; top: 5%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(135deg, rgba(255,245,210,0.5) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pgl-light 10s ease-in-out infinite alternate;
}
@keyframes pgl-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pgl-cradle { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes pgl-mother { 0% { transform: rotate(-2deg) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-1deg) } }
@keyframes pgl-glow { 0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(255,215,138,0.4) } 100% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,215,138,0.8) } }
@keyframes pgl-embroider { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }
@keyframes pgl-hand { 0% { transform: translate(0,0) rotate(-10deg) } 30% { transform: translate(5px, -3px) rotate(5deg) } 60% { transform: translate(10px, -6px) rotate(15deg) } 100% { transform: translate(0,0) rotate(-10deg) } }
@keyframes pgl-light { 0% { opacity: 0.3; transform: translateX(0) } 50% { opacity: 0.6; transform: translateX(-10px) } 100% { opacity: 0.4; transform: translateX(5px) } }

.scn-pearl-smile-torture {
  background:
    linear-gradient(180deg, #d8d0c0 0%, #b8a898 40%, #8a7a6a 100%),
    radial-gradient(circle at 70% 30%, #f0e0d0 0%, transparent 70%);
}
.scn-pearl-smile-torture .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 40%, rgba(0,0,0,0.4) 100%);
  animation: pst-bg 15s ease-in-out infinite alternate;
}
.scn-pearl-smile-torture .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: pst-shadow 20s ease-in-out infinite;
}
.scn-pearl-smile-torture .letter-large {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 14%;
  background: radial-gradient(ellipse, #c45a3a 0%, #8a2a1a 100%);
  border-radius: 10% 20% 10% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 30px rgba(196,90,58,0.4);
  transform: rotate(-5deg);
  animation: pst-letter 6s ease-in-out infinite;
}
.scn-pearl-smile-torture .pearl-profile {
  position: absolute; bottom: 25%; left: 55%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #d8c0a8 0%, #a08060 100%);
  border-radius: 60% 30% 20% 40% / 70% 40% 30% 50%;
  box-shadow: -10px 0 15px rgba(0,0,0,0.3);
  animation: pst-profile 8s ease-in-out infinite alternate;
}
.scn-pearl-smile-torture .pearl-eye {
  position: absolute; bottom: 42%; left: 58%; width: 2%; height: 3%;
  background: radial-gradient(circle, #1a1a2a 0%, #000 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.8);
  animation: pst-eye 3s ease-in-out infinite;
}
.scn-pearl-smile-torture .smile-line {
  position: absolute; bottom: 33%; left: 56%; width: 4%; height: 1%;
  background: #6a5a4a;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: pst-smile 4s ease-in-out infinite alternate;
}
@keyframes pst-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes pst-shadow { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes pst-letter { 0% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(2deg) scale(1.05) } 100% { transform: rotate(-7deg) scale(1) } }
@keyframes pst-profile { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes pst-eye { 0%,100% { transform: scale(1) } 50% { transform: scale(1.3) } }
@keyframes pst-smile { 0% { width: 4%; opacity: 0.7 } 50% { width: 5%; opacity: 1 } 100% { width: 3%; opacity: 0.8 } }

.scn-hester-sees-fiend-face {
  background:
    linear-gradient(135deg, #c0b8a8 0%, #a09080 40%, #706050 100%),
    radial-gradient(ellipse at 40% 40%, #e0d8c8 0%, transparent 60%);
}
.scn-hester-sees-fiend-face .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%);
  animation: hsf-bg 12s ease-in-out infinite alternate;
}
.scn-hester-sees-fiend-face .hester-silhouette {
  position: absolute; bottom: 10%; left: 20%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hsf-hester 18s ease-in-out infinite;
}
.scn-hester-sees-fiend-face .pearl-eyes {
  position: absolute; bottom: 40%; left: 48%; width: 6%; height: 10%;
  background: radial-gradient(ellipse, #f0e8d0 0%, #c8b8a0 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(200,184,160,0.5);
  animation: hsf-eyes 4s ease-in-out infinite alternate;
}
.scn-hester-sees-fiend-face .reflection-face {
  position: absolute; bottom: 38%; left: 48%; width: 5%; height: 8%;
  background: radial-gradient(circle, #6a3a2a 0%, #3a1a0a 100%);
  clip-path: polygon(50% 0%, 60% 30%, 100% 50%, 60% 70%, 50% 100%, 40% 70%, 0% 50%, 40% 30%);
  opacity: 0.7;
  animation: hsf-fiend 7s ease-in-out infinite;
}
.scn-hester-sees-fiend-face .glint {
  position: absolute; bottom: 44%; left: 49%; width: 1%; height: 1%;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.8);
  animation: hsf-glint 2s ease-in-out infinite;
}
.scn-hester-sees-fiend-face .shadow-marks {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(0,0,0,0.05) 3px, rgba(0,0,0,0.05) 6px);
  animation: hsf-marks 30s linear infinite;
}
@keyframes hsf-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes hsf-hester { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes hsf-eyes { 0% { transform: scale(1) } 100% { transform: scale(1.2) } }
@keyframes hsf-fiend { 0% { opacity: 0.5; transform: rotate(0deg) } 50% { opacity: 0.8; transform: rotate(180deg) scale(1.1) } 100% { opacity: 0.6; transform: rotate(360deg) } }
@keyframes hsf-glint { 0%,100% { opacity: 0 } 50% { opacity: 1 } }
@keyframes hsf-marks { 0% { background-position: 0 0 } 100% { background-position: 0 500px } }

.scn-pearl-throws-flowers {
  background:
    linear-gradient(180deg, #c4d8e8 0%, #98b8c8 30%, #6a8a9a 70%, #4a6a7a 100%),
    radial-gradient(ellipse at 20% 80%, #e8f0c8 0%, transparent 70%);
}
.scn-pearl-throws-flowers .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4e4f0 0%, #a8c4d8 100%);
  animation: ptf-sky 25s ease-in-out infinite alternate;
}
.scn-pearl-throws-flowers .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: ptf-ground 20s ease-in-out infinite;
}
.scn-pearl-throws-flowers .hester-figure {
  position: absolute; bottom: 20%; left: 30%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 5px 15px rgba(0,0,0,0.4);
  animation: ptf-hester 12s ease-in-out infinite;
}
.scn-pearl-throws-flowers .letter-target {
  position: absolute; bottom: 30%; left: 34%; width: 6%; height: 9%;
  background: radial-gradient(ellipse, #c65a3a 0%, #8a2a1a 100%);
  border-radius: 10% 20% 10% 20%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  transform: rotate(5deg);
  animation: ptf-letter 4s ease-in-out infinite;
}
.scn-pearl-throws-flowers .pearl-dancer {
  position: absolute; bottom: 20%; left: 55%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #e8d8c0 0%, #b8a080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ptf-dancer 3s ease-in-out infinite;
}
.scn-pearl-throws-flowers .flower-1 {
  position: absolute; bottom: 38%; left: 45%; width: 3%; height: 3%;
  background: radial-gradient(circle, #f0c8a0 0%, #e8a070 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(232,160,112,0.5);
  animation: ptf-flower1 2s ease-in-out infinite;
}
.scn-pearl-throws-flowers .flower-2 {
  position: absolute; bottom: 35%; left: 50%; width: 2.5%; height: 3%;
  background: radial-gradient(circle, #e0f0a0 0%, #b8d070 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(184,208,112,0.5);
  animation: ptf-flower2 2.5s ease-in-out infinite 0.5s;
}
.scn-pearl-throws-flowers .flower-3 {
  position: absolute; bottom: 40%; left: 40%; width: 2%; height: 2.5%;
  background: radial-gradient(circle, #a0d0f0 0%, #70a0c8 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(112,160,200,0.5);
  animation: ptf-flower3 3s ease-in-out infinite 1s;
}
@keyframes ptf-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ptf-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ptf-hester { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(0deg) } }
@keyframes ptf-letter { 0%,100% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(-2deg) scale(1.1) } }
@keyframes ptf-dancer { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-8px) rotate(5deg) } 50% { transform: translateY(0) rotate(-3deg) } 75% { transform: translateY(-5px) rotate(8deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes ptf-flower1 { 0% { transform: translate(0,0) rotate(0deg) opacity:1 } 50% { transform: translate(15px,-20px) rotate(180deg) opacity:0.8 } 100% { transform: translate(30px,-40px) rotate(360deg) opacity:0 } }
@keyframes ptf-flower2 { 0% { transform: translate(0,0) rotate(0deg) opacity:1 } 50% { transform: translate(-10px,-15px) rotate(-180deg) opacity:0.7 } 100% { transform: translate(-20px,-30px) rotate(-360deg) opacity:0 } }
@keyframes ptf-flower3 { 0% { transform: translate(0,0) rotate(0deg) opacity:1 } 50% { transform: translate(5px,-25px) rotate(120deg) opacity:0.9 } 100% { transform: translate(10px,-50px) rotate(240deg) opacity:0 } }

/* pearl-vivacity */
.scn-pearl-vivacity {
  background: linear-gradient(180deg, #b0b8b0 0%, #8a928a 40%, #6a726a 100%),
              radial-gradient(ellipse at 50% 100%, #6a726a 0%, transparent 70%);
}
.scn-pearl-vivacity .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8d0c8 0%, transparent 100%);
  animation: pv-sky 20s ease-in-out infinite alternate;
}
.scn-pearl-vivacity .trees.back {
  position: absolute; bottom: 30%; left:0; right:0; height: 40%;
  background: linear-gradient(180deg, #4a524a 0%, #2a322a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: pv-trees 25s ease-in-out infinite alternate;
}
.scn-pearl-vivacity .ground {
  position: absolute; bottom:0; left:0; right:0; height: 35%;
  background: linear-gradient(180deg, #5a625a 0%, #3a423a 100%);
  border-radius: 0 0 20% 20%;
}
.scn-pearl-vivacity .child {
  position: absolute; bottom: 35%; left: 45%; 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: pv-jump 2s ease-in-out infinite;
}
.scn-pearl-vivacity .hair {
  position: absolute; bottom: 60%; left: 44%; width: 24px; height: 20px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: pv-hair 2s ease-in-out infinite;
}
.scn-pearl-vivacity .butterfly {
  position: absolute; bottom: 60%; left: 30%; width: 8px; height: 6px;
  background: radial-gradient(circle, #c0a060 0%, #806040 100%);
  border-radius: 50%;
  animation: pv-butterfly 6s ease-in-out infinite;
}
.scn-pearl-vivacity .sparkle {
  position: absolute; bottom: 45%; left: 50%; width: 4px; height: 4px;
  background: #e0d8c0;
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(224,216,192,0.6);
  animation: pv-sparkle 3s ease-in-out infinite alternate;
}
@keyframes pv-sky {
  0% { opacity:0.7 }
  50% { opacity:1 }
  100% { opacity:0.8 }
}
@keyframes pv-trees {
  0% { transform: translateY(0) }
  50% { transform: translateY(-2px) }
  100% { transform: translateY(0) }
}
@keyframes pv-jump {
  0%,100% { transform: translate(0,0) rotate(-2deg) scaleY(1) }
  25% { transform: translate(4px,-6px) rotate(1deg) scaleY(0.95) }
  50% { transform: translate(8px,0) rotate(2deg) scaleY(1) }
  75% { transform: translate(12px,-4px) rotate(-1deg) scaleY(0.95) }
}
@keyframes pv-hair {
  0%,100% { transform: rotate(0deg) }
  50% { transform: rotate(8deg) }
}
@keyframes pv-butterfly {
  0% { transform: translate(0,0) rotate(0deg) }
  25% { transform: translate(10px,-8px) rotate(15deg) }
  50% { transform: translate(20px,-4px) rotate(0deg) }
  75% { transform: translate(30px,-12px) rotate(-10deg) }
  100% { transform: translate(40px,0) rotate(5deg) }
}
@keyframes pv-sparkle {
  0% { opacity:0.2; transform: scale(0.5) }
  50% { opacity:1; transform: scale(1.2) }
  100% { opacity:0.4; transform: scale(0.8) }
}

/* doubtful-charm */
.scn-doubtful-charm {
  background: linear-gradient(180deg, #909590 0%, #7a7f7a 40%, #5a5f5a 100%),
              radial-gradient(ellipse at 50% 120%, #5a5f5a 0%, transparent 70%);
}
.scn-doubtful-charm .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0a8a0 0%, transparent 100%);
  animation: dc-sky 18s ease-in-out infinite alternate;
}
.scn-doubtful-charm .ground {
  position: absolute; bottom:0; left:0; right:0; height: 45%;
  background: linear-gradient(180deg, #5a605a 0%, #3a403a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-doubtful-charm .pool {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #6a726a 0%, #4a524a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
}
.scn-doubtful-charm .reflection {
  position: absolute; bottom: 32%; left: 38%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity:0.4;
  transform: scaleY(0.6);
  animation: dc-reflect 8s ease-in-out infinite;
}
.scn-doubtful-charm .child {
  position: absolute; bottom: 40%; left: 40%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-child 4s ease-in-out infinite;
}
.scn-doubtful-charm .shimmer {
  position: absolute; bottom: 38%; left: 42%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8c8c0 0%, #909090 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(200,200,192,0.5);
  animation: dc-shimmer 3s ease-in-out infinite alternate;
}
.scn-doubtful-charm .reed {
  position: absolute; bottom: 35%; left: 55%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #5a6a5a 0%, #2a3a2a 100%);
  border-radius: 0 0 30% 30%;
  transform-origin: bottom;
  animation: dc-reed 6s ease-in-out infinite;
}
@keyframes dc-sky {
  0% { opacity:0.8 }
  50% { opacity:0.95 }
  100% { opacity:0.75 }
}
@keyframes dc-reflect {
  0%,100% { opacity:0.3; transform: scaleY(0.6) }
  50% { opacity:0.5; transform: scaleY(0.7) }
}
@keyframes dc-child {
  0%,100% { transform: translate(0,0) rotate(0deg) }
  25% { transform: translate(2px,-1px) rotate(1deg) }
  50% { transform: translate(4px,0) rotate(-1deg) }
  75% { transform: translate(6px,1px) rotate(0deg) }
}
@keyframes dc-shimmer {
  0% { opacity:0.2; box-shadow: 0 0 6px 2px #c8c8c0 }
  50% { opacity:1; box-shadow: 0 0 14px 6px #e0e0d0 }
  100% { opacity:0.5; box-shadow: 0 0 8px 3px #a0a0a0 }
}
@keyframes dc-reed {
  0%,100% { transform: rotate(-3deg) }
  50% { transform: rotate(3deg) }
}

/* not-aweary */
.scn-not-aweary {
  background: linear-gradient(180deg, #a0a8a0 0%, #808880 40%, #606860 100%),
              radial-gradient(ellipse at 50% 100%, #606860 0%, transparent 70%);
}
.scn-not-aweary .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #b0b8b0 0%, transparent 100%);
  animation: na-sky 22s ease-in-out infinite alternate;
}
.scn-not-aweary .tree.canopy {
  position: absolute; top: 0; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: na-canopy 30s ease-in-out infinite alternate;
}
.scn-not-aweary .trunk {
  position: absolute; bottom: 35%; left: 48%; width: 16px; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-not-aweary .ground {
  position: absolute; bottom:0; left:0; right:0; height: 40%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 0 0 30% 30%;
}
.scn-not-aweary .mother {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: na-sit 8s ease-in-out infinite;
}
.scn-not-aweary .child {
  position: absolute; bottom: 26%; left: 38%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: na-sit 8s ease-in-out infinite reverse;
}
.scn-not-aweary .lap {
  position: absolute; bottom: 30%; left: 33%; width: 20px; height: 10px;
  background: #2a2a2a;
  border-radius: 30% 30% 20% 20%;
  opacity:0.5;
  animation: na-lap 8s ease-in-out infinite;
}
@keyframes na-sky {
  0% { opacity:0.8 }
  50% { opacity:0.95 }
  100% { opacity:0.75 }
}
@keyframes na-canopy {
  0% { transform: translateY(0) scale(1) }
  50% { transform: translateY(-3px) scale(1.02) }
  100% { transform: translateY(0) scale(1) }
}
@keyframes na-sit {
  0%,100% { transform: rotate(-10deg) translate(0,0) }
  50% { transform: rotate(-8deg) translate(2px,-2px) }
}
@keyframes na-lap {
  0%,100% { opacity:0.4 }
  50% { opacity:0.6 }
}

/* black-man-lore */
.scn-black-man-lore {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #000010 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a2a 0%, transparent 70%);
}
.scn-black-man-lore .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, transparent 100%);
  animation: bm-sky 15s ease-in-out infinite alternate;
}
.scn-black-man-lore .forest.back {
  position: absolute; bottom: 30%; left:0; right:0; height: 50%;
  background: linear-gradient(180deg, #0a1a0a 0%, #000a00 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: bm-trees 25s ease-in-out infinite alternate;
}
.scn-black-man-lore .forest.mid {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #0a1a0a 0%, #000a00 100%);
  border-radius: 40% 40% 0 0;
  opacity:0.6;
}
.scn-black-man-lore .ground {
  position: absolute; bottom:0; left:0; right:0; height: 35%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a0a0a 100%);
}
.scn-black-man-lore .figure {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: bm-figure 6s ease-in-out infinite;
}
.scn-black-man-lore .book {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border: 2px solid #4a3a2a;
  border-radius: 2px;
  transform: rotate(10deg);
  animation: bm-book 6s ease-in-out infinite reverse;
}
.scn-black-man-lore .blood-drip {
  position: absolute; bottom: 18%; left: 44%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #a0461a 0%, #602010 100%);
  border-radius: 0 0 50% 50%;
  animation: bm-drip 4s ease-in-out infinite;
}
.scn-black-man-lore .iron-ring {
  position: absolute; bottom: 22%; left: 55%; width: 8px; height: 8px;
  border: 2px solid #5a5a5a;
  border-radius: 50%;
  background: transparent;
  animation: bm-ring 8s linear infinite;
}
@keyframes bm-sky {
  0% { opacity:0.6 }
  50% { opacity:0.8 }
  100% { opacity:0.5 }
}
@keyframes bm-trees {
  0% { transform: translateY(0) }
  50% { transform: translateY(-3px) }
  100% { transform: translateY(0) }
}
@keyframes bm-figure {
  0%,100% { transform: rotate(5deg) translate(0,0) }
  25% { transform: rotate(3deg) translate(2px,-2px) }
  50% { transform: rotate(5deg) translate(0,0) }
  75% { transform: rotate(7deg) translate(-2px,-1px) }
}
@keyframes bm-book {
  0%,100% { transform: rotate(10deg) }
  50% { transform: rotate(15deg) }
}
@keyframes bm-drip {
  0% { transform: translateY(0); opacity:1 }
  50% { transform: translateY(6px); opacity:0.7 }
  100% { transform: translateY(0); opacity:1 }
}
@keyframes bm-ring {
  0% { transform: rotate(0deg) }
  100% { transform: rotate(360deg) }
}

.scn-inevitable-doom {
  background: linear-gradient(180deg, #2b2b3d 0%, #1e1e2e 40%, #2a2a38 70%, #1f1f2b 100%),
              radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 60%);
}
.scn-inevitable-doom .skies {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #252535 100%);
  animation: doom-skies 12s ease-in-out infinite alternate;
}
.scn-inevitable-doom .moor {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2e2e2e 0%, #1a1a1a 100%);
  border-radius: 60% 40% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.6);
  animation: doom-moor 20s ease-in-out infinite alternate;
}
.scn-inevitable-doom .figure-shadow {
  position: absolute; bottom: 28%; left: 50%; width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1c1c1c 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: doom-figure 6s ease-in-out infinite;
}
.scn-inevitable-doom .hand {
  position: absolute; bottom: 40%; left: 48%; width: 18px; height: 14px;
  background: radial-gradient(circle, #3a3028 0%, #1e1a14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: doom-hand 8s ease-in-out infinite;
}
.scn-inevitable-doom .symbol-glow {
  position: absolute; bottom: 42%; left: 46%; width: 16px; height: 22px;
  background: radial-gradient(circle, #c8553d 0%, #7a2a1a 60%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 6px rgba(200,85,61,0.6), 0 0 48px 12px rgba(200,85,61,0.3);
  animation: doom-glow 3s ease-in-out infinite alternate;
}
.scn-inevitable-doom .shroud {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(10,10,18,0.7) 100%);
  animation: doom-shroud 10s ease-in-out infinite alternate;
}
.scn-inevitable-doom .mist {
  position: absolute; bottom: 35%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(90deg, transparent, rgba(100,100,120,0.15), transparent);
  filter: blur(12px);
  animation: doom-mist 18s linear infinite;
}
@keyframes doom-skies { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes doom-moor { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes doom-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(0deg); } }
@keyframes doom-hand { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes doom-glow { 0% { box-shadow: 0 0 18px 4px rgba(200,85,61,0.5); opacity:0.8; } 50% { box-shadow: 0 0 36px 12px rgba(200,85,61,0.8); opacity:1; } 100% { box-shadow: 0 0 22px 6px rgba(200,85,61,0.6); opacity:0.9; } }
@keyframes doom-shroud { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes doom-mist { 0% { transform: translateX(-30px); } 100% { transform: translateX(100vw); } }

.scn-hair-confined-again {
  background: linear-gradient(180deg, #2c2c38 0%, #1e1e28 50%, #25252e 80%, #181820 100%),
              radial-gradient(ellipse at 50% 90%, #3a3a42 0%, transparent 60%);
}
.scn-hair-confined-again .wall {
  position: absolute; left: 10%; right: 10%; top: 20%; bottom: 15%;
  background: linear-gradient(180deg, #3a3a40 0%, #2a2a30 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-hair-confined-again .vanishing-light {
  position: absolute; top: 10%; left: 30%; right: 30%; height: 30%;
  background: linear-gradient(180deg, rgba(180,160,140,0.2) 0%, transparent 100%);
  animation: hair-vanish 10s ease-in-out infinite alternate;
}
.scn-hair-confined-again .tress-left {
  position: absolute; top: 25%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%;
  transform: rotate(15deg);
  animation: hair-tress 5s ease-in-out infinite;
}
.scn-hair-confined-again .tress-right {
  position: absolute; top: 25%; right: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform: rotate(-15deg);
  animation: hair-tress 5s ease-in-out infinite reverse;
}
.scn-hair-confined-again .cap {
  position: absolute; top: 22%; left: 40%; right: 40%; height: 20px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 50%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: hair-cap 8s ease-in-out infinite;
}
.scn-hair-confined-again .profile {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #2a2420 0%, #1a1614 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
}
.scn-hair-confined-again .shadow-fade {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(10,10,15,0.8) 100%);
  animation: hair-shadow 12s ease-in-out infinite alternate;
}
@keyframes hair-vanish { 0% { opacity:0.3; } 50% { opacity:0.8; } 100% { opacity:0.2; } }
@keyframes hair-tress { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(0.9); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes hair-cap { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hair-shadow { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }

.scn-pearl-accepts-mother {
  background: linear-gradient(180deg, #3b4048 0%, #2d3238 40%, #353a40 70%, #282c30 100%),
              radial-gradient(ellipse at 50% 0%, #4a505a 0%, transparent 70%);
}
.scn-pearl-accepts-mother .brook {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(90deg, #3a4045 0%, #4a5058 50%, #3a4045 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  animation: pearl-brook 15s ease-in-out infinite alternate;
}
.scn-pearl-accepts-mother .bank-l {
  position: absolute; bottom: 30%; left: 5%; width: 35%; height: 20%;
  background: linear-gradient(180deg, #3a403a 0%, #2a302a 100%);
  border-radius: 0 40% 60% 0 / 0 50% 80% 0;
}
.scn-pearl-accepts-mother .bank-r {
  position: absolute; bottom: 30%; right: 5%; width: 35%; height: 20%;
  background: linear-gradient(180deg, #3a403a 0%, #2a302a 100%);
  border-radius: 40% 0 0 60% / 50% 0 0 80%;
}
.scn-pearl-accepts-mother .mother-arms {
  position: absolute; bottom: 35%; left: 35%; width: 45px; height: 60px;
  background: linear-gradient(180deg, #2e2e2e 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: pearl-embrace 6s ease-in-out infinite;
}
.scn-pearl-accepts-mother .pearl-arms {
  position: absolute; bottom: 35%; right: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a3430 0%, #24201e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: pearl-embrace 6s ease-in-out infinite reverse;
}
.scn-pearl-accepts-mother .cloak-folds {
  position: absolute; bottom: 30%; left: 40%; right: 40%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, #151515 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.95);
}
.scn-pearl-accepts-mother .wildflower {
  position: absolute; bottom: 38%; left: 48%; width: 8px; height: 10px;
  background: radial-gradient(circle, #b87878 0%, #6a4040 70%);
  border-radius: 50%;
  animation: pearl-flower 4s ease-in-out infinite;
}
@keyframes pearl-brook { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes pearl-embrace { 0%,100% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(8deg) scale(1.03); } }
@keyframes pearl-flower { 0% { opacity:0.7; transform: translateY(0); } 50% { opacity:1; transform: translateY(-2px); } 100% { opacity:0.7; transform: translateY(0); } }

.scn-why-minister-sits {
  background: linear-gradient(180deg, #2a2a35 0%, #1e1e28 40%, #2c2c38 70%, #20202a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a48 0%, transparent 60%);
}
.scn-why-minister-sits .sky-gloom {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #252535 100%);
  animation: minis-sky 15s ease-in-out infinite alternate;
}
.scn-why-minister-sits .bench {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 12px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-why-minister-sits .minister-figure {
  position: absolute; bottom: 22%; left: 35%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #1e1e1e 0%, #0e0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: minis-minister 8s ease-in-out infinite;
}
.scn-why-minister-sits .pearl-point {
  position: absolute; bottom: 28%; right: 30%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #3a3430 0%, #24201e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: minis-point 4s ease-in-out infinite;
}
.scn-why-minister-sits .gesture-line {
  position: absolute; bottom: 30%; right: 33%; width: 30px; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(200,200,200,0.3), transparent);
  transform: rotate(-20deg);
  animation: minis-gesture 3s ease-in-out infinite;
}
.scn-why-minister-sits .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a2a 0%, #151515 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
@keyframes minis-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes minis-minister { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes minis-point { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(15deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes minis-gesture { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

/* Overcast dark theme shared base - each scene can overlay more */
.scn-young-maiden-encounter {
  background: linear-gradient(180deg, #4a4d5a 0%, #2f323b 40%, #1f2127 100%),
              radial-gradient(ellipse at 50% 20%, #5a5d6a 0%, transparent 60%);
}
.scn-young-maiden-encounter .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a6d7a 0%, #3a3d4a 100%);
  animation: ym-sky 12s ease-in-out infinite alternate;
}
.scn-young-maiden-encounter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a2d32 0%, #1a1d22 100%);
  border-radius: 30% 60% 0 0 / 50% 80% 0 0;
}
.scn-young-maiden-encounter .path {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #4a4d52 0%, #3a3d42 100%);
  border-radius: 40%;
  animation: ym-path 8s ease-in-out infinite alternate;
}
.scn-young-maiden-encounter .church-tower {
  position: absolute; bottom: 45%; left: 65%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #5a5d62 0%, #2a2d32 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  animation: ym-tower 20s ease-in-out infinite;
}
.scn-young-maiden-encounter .maiden {
  position: absolute; bottom: 18%; left: 35%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #4a4d52 0%, #2a2d32 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ym-maiden 4s ease-in-out infinite;
}
.scn-young-maiden-encounter .minister {
  position: absolute; bottom: 18%; left: 55%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a3d42 0%, #1a1d22 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: ym-minister 6s ease-in-out infinite alternate;
}
.scn-young-maiden-encounter .cloud {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 10%;
  background: rgba(100,105,120,0.3);
  filter: blur(8px);
  border-radius: 50%;
  animation: ym-cloud 30s linear infinite;
}
@keyframes ym-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.7; }
}
@keyframes ym-path {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.9) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ym-tower {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ym-maiden {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes ym-minister {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ym-cloud {
  0% { transform: translateX(-30vw); }
  100% { transform: translateX(120vw); }
}

/* --- scene 2: temptation-to-blight --- */
.scn-temptation-to-blight {
  background: linear-gradient(180deg, #383b40 0%, #24272b 50%, #15171a 100%),
              radial-gradient(ellipse at 30% 70%, #4a4d52 0%, transparent 70%);
}
.scn-temptation-to-blight .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a5d62 0%, #2a2d32 100%);
  animation: tb-sky 18s ease-in-out infinite alternate;
}
.scn-temptation-to-blight .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1f2125 0%, #0f1115 100%);
  border-radius: 20% 80% 0 0 / 40% 100% 0 0;
}
.scn-temptation-to-blight .tree {
  position: absolute; bottom: 30%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a2d32 0%, #0f1115 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  animation: tb-tree 10s ease-in-out infinite alternate;
}
.scn-temptation-to-blight .child {
  position: absolute; bottom: 18%; left: 45%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #4a4d52 0%, #2a2d32 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tb-child 4s ease-in-out infinite;
}
.scn-temptation-to-blight .man {
  position: absolute; bottom: 16%; left: 60%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2d32 0%, #0f1115 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  animation: tb-man 7s ease-in-out infinite alternate;
}
.scn-temptation-to-blight .shadow {
  position: absolute; bottom: 10%; left: 50%; width: 20%; height: 8%;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: tb-shadow 12s ease-in-out infinite alternate;
}
.scn-temptation-to-blight .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: rgba(80,85,95,0.15);
  filter: blur(12px);
  border-radius: 40% 60% 0 0;
  animation: tb-mist 20s ease-in-out infinite alternate;
}
@keyframes tb-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes tb-tree {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tb-child {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(3px) translateY(-1px); }
  50% { transform: translateX(5px) translateY(0); }
  75% { transform: translateX(3px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes tb-man {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tb-shadow {
  0% { opacity: 0.4; transform: scaleX(1) scaleY(1); }
  50% { opacity: 0.7; transform: scaleX(1.2) scaleY(0.8); }
  100% { opacity: 0.4; transform: scaleX(1) scaleY(1); }
}
@keyframes tb-mist {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.2; }
}

/* --- scene 3: cloak-over-face --- */
.scn-cloak-over-face {
  background: linear-gradient(180deg, #3a3d42 0%, #24272b 30%, #15171a 100%),
              radial-gradient(ellipse at 70% 50%, #4a4d52 0%, transparent 80%);
}
.scn-cloak-over-face .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #5a5d62 0%, #2a2d32 100%);
  animation: cf-sky 15s ease-in-out infinite alternate;
}
.scn-cloak-over-face .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1f2125 0%, #0f1115 100%);
  border-radius: 10% 80% 0 0 / 20% 100% 0 0;
}
.scn-cloak-over-face .cloak {
  position: absolute; bottom: 20%; left: 40%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #2a2d32 0%, #0f1115 100%);
  border-radius: 50% 50% 30% 30% / 90% 90% 30% 30%;
  animation: cf-cloak 6s ease-in-out infinite alternate;
}
.scn-cloak-over-face .arm {
  position: absolute; bottom: 35%; left: 30%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #3a3d42 0%, #1a1d22 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cf-arm 5s ease-in-out infinite alternate;
}
.scn-cloak-over-face .sister {
  position: absolute; bottom: 15%; left: 65%; width: 7%; height: 18%;
  background: linear-gradient(180deg, #4a4d52 0%, #2a2d32 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cf-sister 8s ease-in-out infinite;
}
.scn-cloak-over-face .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 30%; height: 10%;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(8px);
  animation: cf-shadow 10s ease-in-out infinite alternate;
}
.scn-cloak-over-face .fog {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: rgba(90,95,105,0.1);
  filter: blur(15px);
  border-radius: 0% 100% 0% 100%;
  animation: cf-fog 25s ease-in-out infinite alternate;
}
@keyframes cf-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.75; }
  100% { opacity: 0.5; }
}
@keyframes cf-cloak {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(3deg) scaleX(1.1); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes cf-arm {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cf-sister {
  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 cf-shadow {
  0% { opacity: 0.3; transform: scaleX(1) scaleY(1); }
  50% { opacity: 0.6; transform: scaleX(1.3) scaleY(0.7); }
  100% { opacity: 0.3; transform: scaleX(1) scaleY(1); }
}
@keyframes cf-fog {
  0% { opacity: 0.1; }
  50% { opacity: 0.25; }
  100% { opacity: 0.1; }
}

/* --- scene 4: ludicrous-temptation --- */
.scn-ludicrous-temptation {
  background: linear-gradient(180deg, #3a3d42 0%, #24272b 40%, #15171a 100%),
              radial-gradient(ellipse at 50% 30%, #4a4d52 0%, transparent 70%);
}
.scn-ludicrous-temptation .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a5d62 0%, #2a2d32 100%);
  animation: lt-sky 14s ease-in-out infinite alternate;
}
.scn-ludicrous-temptation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1f2125 0%, #0f1115 100%);
  border-radius: 20% 80% 0 0 / 30% 100% 0 0;
}
.scn-ludicrous-temptation .children-group {
  position: absolute; bottom: 15%; left: 30%; width: 25%; height: 20%;
  background: transparent;
}
.scn-ludicrous-temptation .children-group::before,
.scn-ludicrous-temptation .children-group::after {
  content: '';
  position: absolute;
  width: 7%;
  height: 14%;
  background: linear-gradient(180deg, #4a4d52 0%, #2a2d32 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  bottom: 0;
}
.scn-ludicrous-temptation .children-group::before { left: 10%; animation: lt-child1 3s ease-in-out infinite; }
.scn-ludicrous-temptation .children-group::after { right: 10%; animation: lt-child2 3.5s ease-in-out infinite 0.5s; }

.scn-ludicrous-temptation .minister {
  position: absolute; bottom: 18%; left: 55%; width: 12%; height: 32%;
  background: linear-gradient(180deg, #2a2d32 0%, #0f1115 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  animation: lt-minister 6s ease-in-out infinite alternate;
}
.scn-ludicrous-temptation .path {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 5%;
  background: linear-gradient(180deg, #4a4d52 0%, #3a3d42 100%);
  border-radius: 40%;
  animation: lt-path 10s ease-in-out infinite alternate;
}
.scn-ludicrous-temptation .stone {
  position: absolute; bottom: 10%; left: 15%; width: 5%; height: 4%;
  background: #3a3d42;
  border-radius: 50%;
  animation: lt-stone 20s linear infinite;
}
.scn-ludicrous-temptation .drizzle {
  position: absolute; top: 10%; left: 0; right: 0; height: 100%;
  background: repeating-linear-gradient(0deg, rgba(255,255,255,0.03) 0px, rgba(255,255,255,0.03) 2px, transparent 2px, transparent 8px);
  pointer-events: none;
  animation: lt-drizzle 4s linear infinite;
}
@keyframes lt-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes lt-child1 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lt-child2 {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(-4deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lt-minister {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lt-path {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.85); }
  100% { transform: scaleY(1); }
}
@keyframes lt-stone {
  0% { transform: translateX(0); }
  100% { transform: translateX(70vw); }
}
@keyframes lt-drizzle {
  0% { background-position: 0 0; }
  100% { background-position: 0 100%; }
}

/* forest-obscure */
.scn-forest-obscure {
  background: linear-gradient(180deg, #3d4a4d 0%, #2b3638 50%, #1d2628 100%), radial-gradient(ellipse at 50% 100%, #1d2628 0%, transparent 70%);
}
.scn-forest-obscure .sky-layer { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a5a5e 0%, transparent 100%); animation: fo-sky 16s ease-in-out infinite alternate; }
.scn-forest-obscure .trees-back { position:absolute; bottom:30%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 30% 40% 0 0 / 60% 50% 0 0; filter: blur(4px); animation: fo-trees 20s ease-in-out infinite alternate; }
.scn-forest-obscure .trees-mid { position:absolute; bottom:20%; left:5%; right:5%; height:60%; background: linear-gradient(180deg, #1f2f2f 0%, #0f1f1f 100%); border-radius: 20% 30% 0 0 / 40% 35% 0 0; filter: blur(2px); animation: fo-trees2 25s ease-in-out infinite alternate; }
.scn-forest-obscure .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2d3a2d 0%, #1a251a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-forest-obscure .trunk-old { position:absolute; bottom:15%; left:35%; width:28px; height:55%; background: linear-gradient(180deg, #3e3530 0%, #2a221e 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: bottom center; animation: fo-trunk 14s ease-in-out infinite; }
.scn-forest-obscure .figure-father { position:absolute; bottom:18%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #2c2c34 0%, #12121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fo-seated 11s ease-in-out infinite; }
.scn-forest-obscure .figure-child { position:absolute; bottom:22%; left:42%; width:16px; height:30px; background: linear-gradient(180deg, #2a2a32 0%, #0e0e16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fo-seated 13s ease-in-out infinite 0.5s; }
.scn-forest-obscure .moss { position:absolute; bottom:28%; left:30%; width:40px; height:12px; background: radial-gradient(ellipse at 50% 100%, #3d5a3d 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: fo-moss 22s ease-in-out infinite; }
@keyframes fo-sky { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.5 } }
@keyframes fo-trees { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes fo-trees2 { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.005) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes fo-trunk { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes fo-seated { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(0) } 75% { transform: translateX(4px) translateY(-1px) rotate(-2deg) } }
@keyframes fo-moss { 0%,100% { opacity:.4 } 50% { opacity:1 } }

/* precious-gloom */
.scn-precious-gloom {
  background: linear-gradient(180deg, #1f262a 0%, #12171a 100%), radial-gradient(ellipse at 30% 20%, #2a353a 0%, transparent 70%);
}
.scn-precious-gloom .wall-left { position:absolute; left:0; top:0; bottom:0; width:30%; background: linear-gradient(180deg, #1c2126 0%, #101418 100%); border-right:2px solid #3a454a; animation: pg-wall 14s ease-in-out infinite alternate; }
.scn-precious-gloom .wall-right { position:absolute; right:0; top:0; bottom:0; width:35%; background: linear-gradient(180deg, #161c20 0%, #0c1014 100%); animation: pg-wall 16s ease-in-out infinite alternate 1s; }
.scn-precious-gloom .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1e2428 0%, #0f1317 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-precious-gloom .window-gloom { position:absolute; top:20%; left:38%; width:24%; height:35%; background: radial-gradient(ellipse at 50% 30%, #4a5a65 0%, #1a242a 70%); border:2px solid #2a353a; border-radius: 8% 8% 2% 2%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: pg-window 20s ease-in-out infinite; }
.scn-precious-gloom .figure-hester { position:absolute; bottom:15%; left:28%; width:22px; height:48px; background: linear-gradient(180deg, #2c2c34 0%, #12121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pg-figure 10s ease-in-out infinite; }
.scn-precious-gloom .figure-dimmesdale { position:absolute; bottom:12%; right:25%; width:20px; height:46px; background: linear-gradient(180deg, #2a2a32 0%, #0e0e16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pg-figure 12s ease-in-out infinite 0.8s; }
.scn-precious-gloom .shadow-ctrl { position:absolute; bottom:5%; left:20%; width:60%; height:30%; background: radial-gradient(ellipse at 50% 100%, #0a1014 0%, transparent 70%); filter: blur(8px); animation: pg-shadow 25s ease-in-out infinite; }
.scn-precious-gloom .desk-lamp { position:absolute; top:30%; left:32%; width:10px; height:8px; background: radial-gradient(circle, #8a7a5a 0%, #5a4a2a 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(100,80,40,0.5); animation: pg-lamp 5s ease-in-out infinite alternate; }
@keyframes pg-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pg-window { 0%,100% { opacity:.6; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.02) } }
@keyframes pg-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(0) } 75% { transform: translateX(5px) translateY(-1px) rotate(-1deg) } }
@keyframes pg-shadow { 0%,100% { opacity:.4 } 50% { opacity:.8 } }
@keyframes pg-lamp { 0% { box-shadow: 0 0 20px 6px rgba(100,80,40,0.3); opacity:.8 } 50% { box-shadow: 0 0 40px 15px rgba(100,80,40,0.7); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(100,80,40,0.4); opacity:.85 } }

/* secrecy-of-nature */
.scn-secrecy-of-nature {
  background: linear-gradient(180deg, #2a3235 0%, #1c2225 100%), radial-gradient(ellipse at 50% 80%, #1a2022 0%, transparent 70%);
}
.scn-secrecy-of-nature .bg-veil { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, #3a454a 0%, transparent 50%); animation: sn-veil 18s ease-in-out infinite; }
.scn-secrecy-of-nature .shrubs-dark { position:absolute; bottom:20%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #1f2f1f 0%, #0a150a 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; filter: blur(2px); animation: sn-shrubs 22s ease-in-out infinite alternate; }
.scn-secrecy-of-nature .path-weeds { position:absolute; bottom:10%; left:25%; right:25%; height:18%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); }
.scn-secrecy-of-nature .hester-half { position:absolute; bottom:15%; left:30%; width:18px; height:42px; background: linear-gradient(180deg, #2c2c34 0%, #12121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sn-hester 14s ease-in-out infinite; }
.scn-secrecy-of-nature .chillingworth-shadow { position:absolute; bottom:12%; right:28%; width:28px; height:50px; background: linear-gradient(180deg, #0e0e14 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: sn-shadow 20s ease-in-out infinite alternate; }
.scn-secrecy-of-nature .bramble { position:absolute; bottom:18%; left:45%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 100%, #2f4025 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: sn-bramble 26s ease-in-out infinite; }
.scn-secrecy-of-nature .raven { position:absolute; top:12%; right:20%; width:14px; height:10px; background: radial-gradient(ellipse at 50% 50%, #0c0c0c 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sn-raven 8s ease-in-out infinite; }
@keyframes sn-veil { 0%,100% { opacity:.6 } 50% { opacity:.9 } }
@keyframes sn-shrubs { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sn-hester { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(0) } 75% { transform: translateX(3px) translateY(-1px) rotate(-1deg) } }
@keyframes sn-shadow { 0% { transform: translateX(0) scaleX(1); opacity:.5 } 50% { transform: translateX(4px) scaleX(1.05); opacity:.8 } 100% { transform: translateX(0) scaleX(1); opacity:.5 } }
@keyframes sn-bramble { 0%,100% { opacity:.3 } 50% { opacity:.7 } }
@keyframes sn-raven { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(10px) rotate(5deg) } 50% { transform: translateX(20px) rotate(0) } 75% { transform: translateX(10px) rotate(-5deg) } }

/* hester-resolution-leave */
.scn-hester-resolution-leave {
  background: linear-gradient(180deg, #33403f 0%, #1c2625 100%), radial-gradient(ellipse at 50% 100%, #141a1a 0%, transparent 70%);
}
.scn-hester-resolution-leave .sky-leaden { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a5a5a 0%, transparent 100%); animation: hrl-sky 18s ease-in-out infinite alternate; }
.scn-hester-resolution-leave .horizon-trees { position:absolute; bottom:25%; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 40% 60% 0 0 / 60% 50% 0 0; filter: blur(3px); animation: hrl-trees 24s ease-in-out infinite alternate; }
.scn-hester-resolution-leave .ground-fall { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2d3a32 0%, #141e16 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: hrl-ground 20s ease-in-out infinite; }
.scn-hester-resolution-leave .dimmesdale-kneel { position:absolute; bottom:20%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #2a2a32 0%, #0e0e16 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hrl-kneel 15s ease-in-out infinite; }
.scn-hester-resolution-leave .hester-support { position:absolute; bottom:22%; right:30%; width:22px; height:48px; background: linear-gradient(180deg, #2c2c34 0%, #12121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hrl-support 18s ease-in-out infinite 1s; }
.scn-hester-resolution-leave .tears-drip { position:absolute; bottom:38%; left:40%; width:4px; height:10px; background: radial-gradient(ellipse at 50% 100%, #8ab0b0 0%, transparent 70%); border-radius: 50%; filter: blur(1px); animation: hrl-tears 6s ease-in-out infinite; }
.scn-hester-resolution-leave .leaf-swirl { position:absolute; bottom:40%; right:20%; width:30px; height:30px; background: radial-gradient(circle at 50% 50%, #3a4a3a 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: hrl-leaf 12s ease-in-out infinite; }
@keyframes hrl-sky { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.5 } }
@keyframes hrl-trees { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes hrl-ground { 0%,100% { opacity:1 } 50% { opacity:.9 } }
@keyframes hrl-kneel { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(6px) translateY(0) rotate(0) } 75% { transform: translateX(3px) translateY(-1px) rotate(-2deg) } }
@keyframes hrl-support { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(0) rotate(0) } 75% { transform: translateX(-3px) translateY(-1px) rotate(1deg) } }
@keyframes hrl-tears { 0%,100% { opacity:.3; transform: translateY(0) } 50% { opacity:1; transform: translateY(-4px) } }
@keyframes hrl-leaf { 0%,100% { transform: translateX(0) rotate(0); opacity:.4 } 25% { transform: translateX(15px) rotate(45deg); opacity:.8 } 50% { transform: translateX(30px) rotate(90deg); opacity:.6 } 75% { transform: translateX(15px) rotate(135deg); opacity:.8 } }

/* ========== hester-scaffold-magic-circle ========== */
.scn-hester-scaffold-magic-circle {
  background: linear-gradient(180deg, #f9d88c 0%, #e8b86c 30%, #c89448 60%, #8a5e34 100%),
              radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 60%);
}
.scn-hester-scaffold-magic-circle .sun-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe9b0 0%, #f0c87a 50%, transparent 100%);
  animation: hsmc-sky 12s ease-in-out infinite alternate;
}
.scn-hester-scaffold-magic-circle .scaffold {
  position: absolute; bottom: 20%; left: 50%; width: 200px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a3a1a, #7a4a2a, #5a3a1a);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-hester-scaffold-magic-circle .pillar-left,
.scn-hester-scaffold-magic-circle .pillar-right {
  position: absolute; bottom: 20%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a, #5a3a1a);
  border-radius: 2px;
}
.scn-hester-scaffold-magic-circle .pillar-left { left: calc(50% - 90px); }
.scn-hester-scaffold-magic-circle .pillar-right { right: calc(50% - 90px); }
.scn-hester-scaffold-magic-circle .hester-figure {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset -2px 0 6px rgba(0,0,0,0.5);
  animation: hsmc-hester 6s ease-in-out infinite alternate;
}
.scn-hester-scaffold-magic-circle .red-letter {
  position: absolute; bottom: 40%; left: 50%; width: 16px; height: 18px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #b8553d 0%, #7a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(184,85,61,0.5);
  animation: hsmc-letter 3s ease-in-out infinite alternate;
}
.scn-hester-scaffold-magic-circle .magic-circle {
  position: absolute; bottom: 18%; left: 50%; width: 180px; height: 30px;
  transform: translateX(-50%) scaleX(1.4);
  background: radial-gradient(ellipse, rgba(200,150,80,0.3) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,150,80,0.15);
  animation: hsmc-circle 10s ease-in-out infinite;
}
.scn-hester-scaffold-magic-circle .audience-row {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30px;
  background: repeating-linear-gradient(90deg, #2a2a2a 0px, #2a2a2a 4px, transparent 4px, transparent 8px);
  mask-image: linear-gradient(90deg, transparent, black 20%, black 80%, transparent);
  opacity: 0.4;
  animation: hsmc-audience 8s ease-in-out infinite alternate;
}
.scn-hester-scaffold-magic-circle .audience-row.far {
  bottom: 14%; height: 20px; opacity: 0.2;
  animation-duration: 12s;
}
@keyframes hsmc-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.95; }
  100% { opacity: 0.8; background-position: 0% 0%; }
}
@keyframes hsmc-hester {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes hsmc-letter {
  0% { box-shadow: 0 0 15px 4px rgba(184,85,61,0.4); }
  50% { box-shadow: 0 0 35px 15px rgba(184,85,61,0.7); }
  100% { box-shadow: 0 0 20px 6px rgba(184,85,61,0.5); }
}
@keyframes hsmc-circle {
  0% { transform: translateX(-50%) scaleX(1.3); opacity: 0.6; }
  50% { transform: translateX(-50%) scaleX(1.5) scaleY(1.1); opacity: 0.9; }
  100% { transform: translateX(-50%) scaleX(1.35); opacity: 0.7; }
}
@keyframes hsmc-audience {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

/* ========== sermon-ends-silence ========== */
.scn-sermon-ends-silence {
  background: linear-gradient(180deg, #d9c49a 0%, #b89870 40%, #8a7050 100%),
              radial-gradient(ellipse at 50% 60%, #fff4e0 0%, transparent 60%);
}
.scn-sermon-ends-silence .church-walls {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b89870 0%, #7a6040 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.3);
  animation: ses-walls 20s ease-in-out infinite alternate;
}
.scn-sermon-ends-silence .pulpit {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a, #3a2a1a);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-sermon-ends-silence .minister {
  position: absolute; bottom: 30%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ses-minister 8s ease-in-out infinite;
}
.scn-sermon-ends-silence .ray-light {
  position: absolute; top: 0; left: 30%; right: 30%; bottom: 0;
  background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, transparent 70%);
  clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%);
  animation: ses-ray 10s ease-in-out infinite alternate;
}
.scn-sermon-ends-silence .pew-left,
.scn-sermon-ends-silence .pew-right,
.scn-sermon-ends-silence .pew-far {
  position: absolute; bottom: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 5px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-sermon-ends-silence .pew-left { left: 10%; }
.scn-sermon-ends-silence .pew-right { right: 10%; }
.scn-sermon-ends-silence .pew-far {
  left: 50%; transform: translateX(-50%); bottom: 8%; width: 150px; height: 15px; opacity: 0.5;
}
.scn-sermon-ends-silence .dust-motes {
  position: absolute; inset: 0;
  background-image: radial-gradient(2px 2px at 20% 30%, rgba(255,240,200,0.6) 0%, transparent 100%),
                    radial-gradient(2px 2px at 60% 20%, rgba(255,240,200,0.4) 0%, transparent 100%),
                    radial-gradient(1px 1px at 80% 50%, rgba(255,240,200,0.3) 0%, transparent 100%);
  background-size: 100% 100%;
  animation: ses-motes 15s linear infinite;
}
@keyframes ses-walls {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; background-position: 0% 0%; }
}
@keyframes ses-minister {
  0% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(0.5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes ses-ray {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}
@keyframes ses-motes {
  0% { background-position: 0% 0%; }
  100% { background-position: 10% 10%; }
}

/* ========== crowd-gushes-forth ========== */
.scn-crowd-gushes-forth {
  background: linear-gradient(180deg, #f7dba6 0%, #e8c47a 40%, #c4a060 100%),
              radial-gradient(ellipse at 50% 100%, #ffe8b0 0%, transparent 60%);
}
.scn-crowd-gushes-forth .church-doors {
  position: absolute; bottom: 10%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a, #3a2a0a);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -10px 40px rgba(0,0,0,0.4);
}
.scn-crowd-gushes-forth .door-arch {
  position: absolute; bottom: 10%; left: 50%; width: 64px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #4a3010 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-crowd-gushes-forth .crowd-wave {
  position: absolute; bottom: 2%; height: 30px;
  background: linear-gradient(180deg, #3a2a1a, #1a1a0a);
  border-radius: 40% 60% 0 0;
  animation: cgf-wave 4s ease-in-out infinite alternate;
}
.scn-crowd-gushes-forth .crowd-wave.front {
  left: 20%; right: 20%;
  animation-duration: 3s;
}
.scn-crowd-gushes-forth .crowd-wave.mid {
  left: 10%; right: 10%; bottom: 5%; height: 24px; opacity: 0.6;
  animation-duration: 5s;
}
.scn-crowd-gushes-forth .crowd-wave.back {
  left: 0; right: 0; bottom: 8%; height: 18px; opacity: 0.3;
  animation-duration: 7s;
}
.scn-crowd-gushes-forth .sunbeam {
  position: absolute; top: 0; left: 40%; right: 40%; bottom: 30%;
  background: linear-gradient(180deg, rgba(255,200,100,0.3) 0%, transparent 80%);
  clip-path: polygon(40% 0%, 60% 0%, 50% 100%, 45% 100%);
  animation: cgf-beam 6s ease-in-out infinite alternate;
}
.scn-crowd-gushes-forth .shadow-steps {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 12px;
  background: linear-gradient(90deg, transparent, #3a2a1a 20%, #3a2a1a 80%, transparent);
  border-radius: 10px 10px 0 0;
}
@keyframes cgf-wave {
  0% { transform: translateX(-5px) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.05); }
  100% { transform: translateX(-3px) scaleY(0.95); }
}
@keyframes cgf-beam {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

/* ========== street-babbling-praise ========== */
.scn-street-babbling-praise {
  background: linear-gradient(180deg, #f7e4c0 0%, #e8c890 40%, #c4a060 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%);
}
.scn-street-babbling-praise .street-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d4b880 0%, #c4a870 30%, #d4b880 70%, #c4a870 100%);
  opacity: 0.5;
}
.scn-street-babbling-praise .building-left,
.scn-street-babbling-praise .building-right {
  position: absolute; bottom: 0; width: 30%; height: 60%;
  background: linear-gradient(180deg, #b09060, #7a5a30);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -4px 0 12px rgba(0,0,0,0.2);
}
.scn-street-babbling-praise .building-left { left: 0; }
.scn-street-babbling-praise .building-right { right: 0; }
.scn-street-babbling-praise .figure-a,
.scn-street-babbling-praise .figure-b,
.scn-street-babbling-praise .figure-c,
.scn-street-babbling-praise .figure-d {
  position: absolute; bottom: 5%;
  background: linear-gradient(180deg, #3a2a1a, #1a1a0a);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: sbp-figures 3s ease-in-out infinite alternate;
}
.scn-street-babbling-praise .figure-a { left: 20%; width: 20px; height: 40px; animation-delay: 0s; }
.scn-street-babbling-praise .figure-b { left: 35%; width: 22px; height: 42px; animation-delay: 0.5s; }
.scn-street-babbling-praise .figure-c { right: 35%; width: 18px; height: 36px; animation-delay: 1s; }
.scn-street-babbling-praise .figure-d { right: 20%; width: 24px; height: 44px; animation-delay: 1.5s; }
.scn-street-babbling-praise .ripple-light {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 4px;
  background: radial-gradient(ellipse, rgba(255,220,150,0.4) 0%, transparent 80%);
  animation: sbp-ripple 4s ease-in-out infinite;
}
.scn-street-babbling-praise .floating-praise {
  position: absolute; top: 20%; left: 10%; right: 10%; height: 60%;
  background-image: radial-gradient(4px 4px at 15% 30%, rgba(255,200,100,0.3) 0%, transparent 100%),
                    radial-gradient(3px 3px at 50% 20%, rgba(255,200,100,0.2) 0%, transparent 100%),
                    radial-gradient(3px 3px at 80% 40%, rgba(255,200,100,0.2) 0%, transparent 100%);
  background-size: 100% 100%;
  animation: sbp-praise 8s ease-in-out infinite alternate;
}
@keyframes sbp-figures {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes sbp-ripple {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.6; }
  100% { transform: scaleX(0.9); opacity: 0.2; }
}
@keyframes sbp-praise {
  0% { opacity: 0.2; background-position: 0% 0%; }
  50% { opacity: 0.5; background-position: 10% 5%; }
  100% { opacity: 0.3; background-position: 5% 2%; }
}

.scn-softer-pillow-shame { background: linear-gradient(180deg, #3a221a 0%, #2a1812 30%, #1e100c 70%, #0e0806 100%), radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, transparent 60%); }
.scn-softer-pillow-shame .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a2e22 0%, #2a1a12 100%); animation: shm-wall 12s ease-in-out infinite alternate; }
.scn-softer-pillow-shame .bedframe { position:absolute; bottom:20%; left:15%; width:70%; height:40%; background: linear-gradient(180deg, #3a2218 0%, #1e1008 100%); border-radius:6px; box-shadow:0 8px 20px rgba(0,0,0,.6); }
.scn-softer-pillow-shame .mattress { position:absolute; bottom:22%; left:18%; width:64%; height:30%; background: linear-gradient(180deg, #5a3a2e 0%, #3a2218 100%); border-radius:20% 20% 8% 8%; box-shadow:inset 0 -4px 12px rgba(0,0,0,.4); }
.scn-softer-pillow-shame .pillow { position:absolute; bottom:38%; left:38%; width:24%; height:16%; background: linear-gradient(160deg, #7a5a4a 0%, #4a3022 100%); border-radius:40% 40% 50% 50% / 60% 60% 40% 40%; box-shadow:0 4px 12px rgba(0,0,0,.3); animation: shm-pillow 8s ease-in-out infinite alternate; }
.scn-softer-pillow-shame .figure { position:absolute; bottom:22%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: shm-figure 6s ease-in-out infinite alternate; }
.scn-softer-pillow-shame .badge { position:absolute; bottom:36%; left:48%; width:8%; height:10%; background: radial-gradient(ellipse, #b86a3a 0%, #8a4422 50%, #5a2a12 100%); border-radius:6% 6% 4% 4%; box-shadow:0 0 20px 6px rgba(184,106,58,.5), 0 0 40px 12px rgba(184,106,58,.2); animation: shm-badge 4s ease-in-out infinite alternate; }
.scn-softer-pillow-shame .candle { position:absolute; bottom:10%; right:20%; width:3%; height:12%; background: linear-gradient(180deg, #d4b88a 0%, #a0805a 100%); border-radius:20% 20% 10% 10%; transform:rotate(2deg); }
.scn-softer-pillow-shame .glow { position:absolute; bottom:8%; right:18%; width:16%; height:20%; background: radial-gradient(ellipse, rgba(212,184,138,.6) 0%, rgba(212,184,138,.1) 60%, transparent 100%); border-radius:50%; filter:blur(8px); animation: shm-glow 3s ease-in-out infinite alternate; }
@keyframes shm-wall { 0% { opacity:.85 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes shm-pillow { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(0deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes shm-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes shm-badge { 0% { opacity:.7; box-shadow:0 0 12px 4px rgba(184,106,58,.4) } 50% { opacity:1; box-shadow:0 0 28px 8px rgba(184,106,58,.6) } 100% { opacity:.8; box-shadow:0 0 16px 5px rgba(184,106,58,.45) } }
@keyframes shm-glow { 0% { opacity:.6; transform: scale(.95) } 50% { opacity:.9; transform: scale(1.05) } 100% { opacity:.7; transform: scale(.98) } }

.scn-darkened-house-only { background: linear-gradient(180deg, #1a1418 0%, #120e12 40%, #0a080a 100%), radial-gradient(ellipse at 50% 60%, #1a1418 0%, transparent 70%); }
.scn-darkened-house-only .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2024 0%, #161012 100%); animation: dho-wall 15s ease-in-out infinite alternate; }
.scn-darkened-house-only .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1416 0%, #0e0a0c 100%); box-shadow:inset 0 12px 24px rgba(0,0,0,.5); }
.scn-darkened-house-only .doorway { position:absolute; bottom:20%; left:40%; width:20%; height:50%; background: linear-gradient(180deg, #0a080a 0%, #000 100%); border-radius:4% 4% 0 0 / 8% 8% 0 0; box-shadow:inset 0 0 30px rgba(0,0,0,.8); }
.scn-darkened-house-only .shadow { position:absolute; bottom:20%; left:36%; width:28%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); animation: dho-shadow 10s ease-in-out infinite alternate; }
.scn-darkened-house-only .threshold { position:absolute; bottom:18%; left:38%; width:24%; height:3%; background: linear-gradient(180deg, #3a2a2e 0%, #1a1012 100%); border-radius:6%; box-shadow:0 2px 6px rgba(0,0,0,.4); }
.scn-darkened-house-only .inmate { position:absolute; bottom:22%; left:30%; width:12%; height:28%; background: linear-gradient(180deg, #2a1e22 0%, #120a0c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:scaleX(-1); animation: dho-inmate 8s ease-in-out infinite alternate; }
.scn-darkened-house-only .dust { position:absolute; top:30%; left:20%; width:60%; height:40%; background: radial-gradient(ellipse at 30% 40%, rgba(200,190,180,.06) 0%, transparent 70%); filter:blur(10px); animation: dho-dust 20s linear infinite; }
@keyframes dho-wall { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes dho-shadow { 0% { transform: scaleX(.8) translateX(-10px); opacity:.4 } 50% { transform: scaleX(1.1) translateX(5px); opacity:.6 } 100% { transform: scaleX(.9) translateX(0); opacity:.45 } }
@keyframes dho-inmate { 0% { transform: scaleX(-1) translateX(0) translateY(0) } 50% { transform: scaleX(-1) translateX(-8px) translateY(-2px) } 100% { transform: scaleX(-1) translateX(0) translateY(0) } }
@keyframes dho-dust { 0% { transform: translateX(0) translateY(0) scale(1); opacity:.3 } 33% { transform: translateX(15px) translateY(-8px) scale(1.1); opacity:.5 } 66% { transform: translateX(-10px) translateY(4px) scale(.95); opacity:.35 } 100% { transform: translateX(0) translateY(0) scale(1); opacity:.3 } }

.scn-humility-or-pride { background: linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 40%, #4a4a4a 100%), radial-gradient(ellipse at 50% 100%, #6a6a6a 0%, transparent 70%); }
.scn-humility-or-pride .sky-overcast { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #9a9a9a 0%, #7a7a7a 60%, #6a6a6a 100%); animation: hum-sky 20s ease-in-out infinite alternate; }
.scn-humility-or-pride .ground-plaza { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); border-radius:30% 70% 0 0 / 20% 40% 0 0; box-shadow:inset 0 12px 30px rgba(0,0,0,.3); }
.scn-humility-or-pride .pillory-base { position:absolute; bottom:25%; left:50%; width:16%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2e22 100%); border-radius:8% 8% 4% 4%; box-shadow:0 8px 20px rgba(0,0,0,.4); }
.scn-humility-or-pride .figure-humble { position:absolute; bottom:22%; left:50%; width:14%; height:28%; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hum-figure 7s ease-in-out infinite alternate; }
.scn-humility-or-pride .mantle { position:absolute; bottom:22%; left:46%; width:22%; height:32%; background: linear-gradient(160deg, #5a4a3e 0%, #2a1e18 100%); border-radius:30% 30% 50% 50% / 40% 40% 60% 60%; opacity:.7; animation: hum-mantle 9s ease-in-out infinite alternate; }
.scn-humility-or-pride .crowd-left { position:absolute; bottom:18%; left:8%; width:28%; height:30%; background: linear-gradient(180deg, #4a423e 0%, #2a2420 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; opacity:.5; animation: hum-crowd 14s ease-in-out infinite alternate; }
.scn-humility-or-pride .crowd-right { position:absolute; bottom:18%; right:8%; width:28%; height:30%; background: linear-gradient(180deg, #4a423e 0%, #2a2420 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; opacity:.5; animation: hum-crowd 14s ease-in-out infinite alternate-reverse; }
.scn-humility-or-pride .light-soft { position:absolute; top:10%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse, rgba(220,210,200,.3) 0%, rgba(220,210,200,.05) 50%, transparent 100%); filter:blur(12px); animation: hum-light 6s ease-in-out infinite alternate; }
@keyframes hum-sky { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes hum-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes hum-mantle { 0% { transform: scale(1) rotate(-2deg); opacity:.65 } 50% { transform: scale(1.02) rotate(1deg); opacity:.75 } 100% { transform: scale(.98) rotate(-1deg); opacity:.7 } }
@keyframes hum-crowd { 0% { transform: translateY(0); opacity:.45 } 50% { transform: translateY(-2px); opacity:.55 } 100% { transform: translateY(0); opacity:.48 } }
@keyframes hum-light { 0% { opacity:.4; transform: scale(.95) } 50% { opacity:.65; transform: scale(1.05) } 100% { opacity:.45; transform: scale(.98) } }

.scn-rulers-slow-forgive { background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 40%, #2a2a2a 100%), radial-gradient(ellipse at 50% 80%, #4a4a4a 0%, transparent 70%); }
.scn-rulers-slow-forgive .hall-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); box-shadow:inset 0 20px 40px rgba(0,0,0,.4); animation: rul-wall 20s ease-in-out infinite alternate; }
.scn-rulers-slow-forgive .bench { position:absolute; bottom:15%; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6px; box-shadow:0 6px 16px rgba(0,0,0,.5); }
.scn-rulers-slow-forgive .ruler-left { position:absolute; bottom:22%; left:18%; width:16%; height:30%; background: linear-gradient(180deg, #3a3232 0%, #1a1414 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(3deg); animation: rul-ruler 10s ease-in-out infinite alternate; }
.scn-rulers-slow-forgive .ruler-right { position:absolute; bottom:22%; right:18%; width:16%; height:30%; background: linear-gradient(180deg, #3a3232 0%, #1a1414 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(-3deg); animation: rul-ruler 10s ease-in-out infinite alternate-reverse; }
.scn-rulers-slow-forgive .figure-kneeling { position:absolute; bottom:8%; left:50%; width:12%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: rul-kneel 8s ease-in-out infinite alternate; }
.scn-rulers-slow-forgive .window-tall { position:absolute; top:8%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #8a8a8a 0%, #5a5a5a 100%); border-radius:4% 4% 2% 2% / 8% 8% 4% 4%; box-shadow:inset 0 0 30px rgba(0,0,0,.3); opacity:.5; }
.scn-rulers-slow-forgive .light-shaft { position:absolute; top:5%; left:42%; width:16%; height:60%; background: linear-gradient(180deg, rgba(200,200,200,.15) 0%, rgba(200,200,200,.05) 100%); filter:blur(6px); animation: rul-light 12s ease-in-out infinite alternate; }
.scn-rulers-slow-forgive .shadow-judge { position:absolute; bottom:5%; left:30%; width:40%; height:15%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); animation: rul-shadow 15s ease-in-out infinite alternate; }
@keyframes rul-wall { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes rul-ruler { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-3px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes rul-kneel { 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 rul-light { 0% { opacity:.3; transform: scaleX(.9) } 50% { opacity:.55; transform: scaleX(1.1) } 100% { opacity:.35; transform: scaleX(.95) } }
@keyframes rul-shadow { 0% { transform: scaleX(.8); opacity:.3 } 50% { transform: scaleX(1.1); opacity:.45 } 100% { transform: scaleX(.9); opacity:.35 } }

/* wild-rose-bush-history */
.scn-wild-rose-bush-history {
  background:
    linear-gradient(180deg, #8eb6d4 0%, #4a7a9e 40%, #2c5a6e 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255, 200, 100, 0.3) 0%, transparent 60%);
}
.scn-wild-rose-bush-history .bg-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #8eb6d4 0%, transparent 100%); animation: rh-sky 12s ease-in-out infinite alternate; }
.scn-wild-rose-bush-history .sun-glow { position: absolute; top: 10%; left: 30%; width: 120px; height: 120px; background: radial-gradient(circle, rgba(255,230,150,0.4) 0%, transparent 70%); border-radius: 50%; animation: rh-sun 15s ease-in-out infinite; }
.scn-wild-rose-bush-history .wall { position: absolute; bottom: 30%; left: 5%; right: 5%; height: 35%; background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.3); transform: scale(1.02); }
.scn-wild-rose-bush-history .stem-1 { position: absolute; bottom: 25%; left: 40%; width: 4px; height: 60px; background: linear-gradient(180deg, #3a5a2a 0%, #1a3a1a 100%); transform-origin: bottom center; border-radius: 2px; animation: rh-stem 6s ease-in-out infinite alternate; }
.scn-wild-rose-bush-history .stem-2 { position: absolute; bottom: 25%; left: 60%; width: 3px; height: 50px; background: linear-gradient(180deg, #3a5a2a 0%, #1a3a1a 100%); transform-origin: bottom center; border-radius: 2px; animation: rh-stem 6s ease-in-out infinite alternate-reverse; animation-delay: -3s; }
.scn-wild-rose-bush-history .leaf-1 { position: absolute; bottom: 48%; left: 38%; width: 18px; height: 10px; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 100%); border-radius: 50% 0 50% 0; transform: rotate(-20deg); animation: rh-leaf 8s ease-in-out infinite; }
.scn-wild-rose-bush-history .leaf-2 { position: absolute; bottom: 52%; left: 55%; width: 16px; height: 8px; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 100%); border-radius: 0 50% 0 50%; transform: rotate(15deg); animation: rh-leaf 8s ease-in-out infinite -4s; }
.scn-wild-rose-bush-history .rose-a { position: absolute; bottom: 50%; left: 45%; width: 20px; height: 20px; background: radial-gradient(circle, #d8a080 0%, #b87858 60%, #a06040 100%); border-radius: 50%; box-shadow: 0 0 8px 4px rgba(184,120,88,0.4); animation: rh-rose 9s ease-in-out infinite; }
.scn-wild-rose-bush-history .rose-b { position: absolute; bottom: 55%; left: 35%; width: 16px; height: 16px; background: radial-gradient(circle, #c89878 0%, #a86848 60%, #804030 100%); border-radius: 50%; box-shadow: 0 0 6px 3px rgba(168,104,72,0.3); animation: rh-rose 9s ease-in-out infinite -4.5s; }
@keyframes rh-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes rh-sun { 0% { transform: scale(0.95); opacity: 0.6 } 50% { transform: scale(1.05); opacity: 0.9 } 100% { transform: scale(0.95); opacity: 0.6 } }
@keyframes rh-stem { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-3deg) } }
@keyframes rh-leaf { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-15deg) scaleY(1.1) } 100% { transform: rotate(-20deg) scaleY(1) } }
@keyframes rh-rose { 0% { transform: scale(0.95); box-shadow: 0 0 4px 2px rgba(184,120,88,0.3) } 50% { transform: scale(1.05); box-shadow: 0 0 12px 6px rgba(184,120,88,0.5) } 100% { transform: scale(0.95); box-shadow: 0 0 4px 2px rgba(184,120,88,0.3) } }

/* crowd-at-prison-door */
.scn-crowd-at-prison-door {
  background:
    linear-gradient(180deg, #b0c8d8 0%, #8a9aae 40%, #5a6a7a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(200,180,120,0.3) 0%, transparent 70%);
}
.scn-crowd-at-prison-door .bg-wall { position: absolute; bottom: 30%; left: -5%; right: -5%; height: 70%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; }
.scn-crowd-at-prison-door .door { position: absolute; bottom: 30%; left: 40%; width: 80px; height: 120px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 4% 4%; border: 4px solid #2a1a0a; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5), 0 8px 16px rgba(0,0,0,0.4); transform: translateX(-50%); }
.scn-crowd-at-prison-door .iron-bar { position: absolute; bottom: 50%; left: 35%; width: 6px; height: 30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform: translateX(-50%); box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-crowd-at-prison-door .iron-bar.bar-1 { left: 38%; }
.scn-crowd-at-prison-door .iron-bar.bar-2 { left: 42%; top: auto; bottom: 55%; }
.scn-crowd-at-prison-door .crowd-fig { position: absolute; bottom: 30%; width: 14px; height: 40px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-crowd-at-prison-door .crowd-fig.fig-1 { left: 20%; animation: cpd-fig 7s ease-in-out infinite; }
.scn-crowd-at-prison-door .crowd-fig.fig-2 { left: 60%; animation: cpd-fig 7s ease-in-out infinite -2.3s; }
.scn-crowd-at-prison-door .crowd-fig.fig-3 { left: 75%; animation: cpd-fig 7s ease-in-out infinite -4.6s; }
.scn-crowd-at-prison-door .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-crowd-at-prison-door .sky-light { position: absolute; top: 0; left: 30%; width: 40%; height: 40%; background: radial-gradient(circle, rgba(240,220,180,0.3) 0%, transparent 70%); animation: cpd-light 10s ease-in-out infinite alternate; }
@keyframes cpd-fig { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cpd-light { 0% { opacity: 0.7; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: 0.7; transform: scale(0.95) } }

/* puritan-severity */
.scn-puritan-severity {
  background:
    linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 40% 10%, rgba(200,160,80,0.15) 0%, transparent 60%);
}
.scn-puritan-severity .bg-dark { position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); opacity: 0.6; animation: ps-bg 30s ease-in-out infinite alternate; }
.scn-puritan-severity .post { position: absolute; bottom: 30%; left: 50%; width: 10px; height: 80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); transform: translateX(-50%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-puritan-severity .chain { position: absolute; bottom: 45%; left: 50%; width: 30px; height: 6px; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 6px, transparent 6px, transparent 12px); transform: translateX(-50%); border-radius: 2px; animation: ps-chain 4s ease-in-out infinite; }
.scn-puritan-severity .figure-bent { position: absolute; bottom: 25%; left: 40%; width: 18px; height: 30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ps-bend 6s ease-in-out infinite; }
.scn-puritan-severity .spectator { position: absolute; bottom: 30%; width: 16px; height: 38px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-puritan-severity .spectator.spec-1 { left: 15%; animation: ps-spec 8s ease-in-out infinite; }
.scn-puritan-severity .spectator.spec-2 { left: 70%; animation: ps-spec 8s ease-in-out infinite -3.5s; }
.scn-puritan-severity .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 60% 0 0 / 40% 40% 0 0; }
.scn-puritan-severity .sun-beam { position: absolute; top: 5%; left: 35%; width: 30%; height: 60%; background: linear-gradient(180deg, rgba(240,200,120,0.1) 0%, transparent 100%); transform: skewX(-10deg); animation: ps-beam 12s ease-in-out infinite alternate; }
@keyframes ps-bg { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }
@keyframes ps-chain { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes ps-bend { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes ps-spec { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ps-beam { 0% { opacity: 0.3; transform: skewX(-10deg) scaleX(0.95) } 50% { opacity: 0.6; transform: skewX(-5deg) scaleX(1.05) } 100% { opacity: 0.3; transform: skewX(-10deg) scaleX(0.95) } }

/* solemnity-of-spectators */
.scn-solemnity-of-spectators {
  background:
    linear-gradient(180deg, #7a9aae 0%, #4a6a7a 40%, #2a4a5a 100%),
    radial-gradient(ellipse at 50% 10%, rgba(220,210,180,0.2) 0%, transparent 70%);
}
.scn-solemnity-of-spectators .bg-meadow { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-solemnity-of-spectators .church { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-solemnity-of-spectators .tree { position: absolute; bottom: 40%; width: 30px; height: 50px; background: radial-gradient(ellipse at 50% 30%, #3a5a3a 0%, #1a3a1a 100%); border-radius: 50%; }
.scn-solemnity-of-spectators .tree.tree-l { left: 10%; animation: ss-tree 15s ease-in-out infinite; }
.scn-solemnity-of-spectators .tree.tree-r { right: 10%; animation: ss-tree 15s ease-in-out infinite -7.5s; }
.scn-solemnity-of-spectators .figure-row { position: absolute; bottom: 25%; width: 40%; height: 35px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; }
.scn-solemnity-of-spectators .figure-row.row-1 { left: 5%; animation: ss-row 12s ease-in-out infinite; }
.scn-solemnity-of-spectators .figure-row.row-2 { left: 30%; width: 35%; bottom: 20%; animation: ss-row 12s ease-in-out infinite -4s; }
.scn-solemnity-of-spectators .figure-row.row-3 { left: 55%; width: 35%; bottom: 15%; animation: ss-row 12s ease-in-out infinite -8s; }
.scn-solemnity-of-spectators .sky-cloud { position: absolute; top: 10%; left: 20%; width: 80px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(6px); animation: ss-cloud 40s linear infinite; }
@keyframes ss-tree { 0% { transform: scaleY(0.95) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(0.95) } }
@keyframes ss-row { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ss-cloud { 0% { transform: translateX(-30px) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.05) } 100% { transform: translateX(120vw) scaleX(1) } }

/* listless-gait */
.scn-listless-gait {
  background: linear-gradient(180deg, #2e2e3a 0%, #1f1f2b 30%, #1a1a24 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-listless-gait .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #424256 0%, #2e2e3a 100%);
  animation: lg-sky 15s ease-in-out infinite alternate;
}
.scn-listless-gait .bg-trees {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 40% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: lg-trees 20s ease-in-out infinite alternate;
}
.scn-listless-gait .path {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 5%;
  background: linear-gradient(90deg, transparent, #3a3a2a 20%, #3a3a2a 80%, transparent);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-listless-gait .tree-1 {
  position: absolute; bottom: 35%; left: 15%; width: 12px; height: 60%;
  background: linear-gradient(90deg, #1a1a1a, #2a2a1a);
  border-radius: 20%;
  transform-origin: bottom;
  animation: lg-sway 8s ease-in-out infinite;
}
.scn-listless-gait .tree-2 {
  position: absolute; bottom: 38%; right: 20%; width: 16px; height: 70%;
  background: linear-gradient(90deg, #1a1a1a, #2a2a1a);
  border-radius: 20%;
  transform-origin: bottom;
  animation: lg-sway 10s ease-in-out infinite reverse;
}
.scn-listless-gait .figure-lg {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1e1e28 0%, #0e0e14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lg-walk 6s ease-in-out infinite;
}
.scn-listless-gait .shadow-lg {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 4px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: lg-shadow 6s ease-in-out infinite;
}
.scn-listless-gait .leaf-drift {
  position: absolute; top: 10%; left: -10%; width: 8px; height: 8px;
  background: #2a3a2a;
  border-radius: 50% 0 50% 0;
  filter: blur(2px);
  animation: lg-leaf 20s linear infinite;
}
@keyframes lg-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes lg-trees { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lg-sway { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } }
@keyframes lg-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg) }
  25% { transform: translateX(8px) translateY(-1px) rotate(0deg) }
  50% { transform: translateX(16px) translateY(0) rotate(2deg) }
  75% { transform: translateX(24px) translateY(-1px) rotate(0deg) }
  100% { transform: translateX(32px) translateY(0) rotate(-2deg) }
}
@keyframes lg-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: .3 }
  50% { transform: translateX(8px) scaleX(1.2); opacity: .4 }
  100% { transform: translateX(16px) scaleX(1); opacity: .3 }
}
@keyframes lg-leaf {
  0% { transform: translate(0, 0) rotate(0deg); opacity: .3 }
  50% { transform: translate(60vw, 30vh) rotate(180deg); opacity: .5 }
  100% { transform: translate(120vw, 60vh) rotate(360deg); opacity: 0 }
}

/* dimmesdale-approaching */
.scn-dimmesdale-approaching {
  background: linear-gradient(90deg, #1f2028 0%, #2e3038 30%, #2a2c34 70%, #1e1f26 100%),
              radial-gradient(ellipse at 30% 80%, #3a3c44 0%, transparent 60%);
}
.scn-dimmesdale-approaching .bg-woods {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 60px, #1a1c22 60px, #1a1c22 62px);
  opacity: .4;
  animation: da-woods 25s linear infinite;
}
.scn-dimmesdale-approaching .trunk-left {
  position: absolute; bottom: 0; left: 10%; width: 18px; height: 80%;
  background: linear-gradient(90deg, #1a1a1a, #2e2e28);
  border-radius: 30%;
  transform-origin: bottom;
  animation: da-sway 12s ease-in-out infinite;
}
.scn-dimmesdale-approaching .trunk-right {
  position: absolute; bottom: 0; right: 15%; width: 22px; height: 90%;
  background: linear-gradient(90deg, #1a1a1a, #2e2e28);
  border-radius: 30%;
  transform-origin: bottom;
  animation: da-sway 14s ease-in-out infinite reverse;
}
.scn-dimmesdale-approaching .figure-hester {
  position: absolute; bottom: 30%; left: 25%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #2a2a34 0%, #16161c 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom;
  animation: da-turn 8s ease-in-out infinite;
}
.scn-dimmesdale-approaching .figure-dimmesdale {
  position: absolute; bottom: 32%; right: 20%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #2a2a34 0%, #14141a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom;
  animation: da-step 10s ease-in-out infinite;
}
.scn-dimmesdale-approaching .ground-moss {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #1e2a1e 0%, #0e1a0e 100%);
  border-radius: 40% 60% 0 0;
}
.scn-dimmesdale-approaching .branch-over {
  position: absolute; top: 0; left: 20%; width: 120%; height: 20px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: da-branch 18s ease-in-out infinite alternate;
}
.scn-dimmesdale-approaching .fog {
  position: absolute; top: 20%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(60,60,70,.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: da-fog 30s ease-in-out infinite alternate;
}
@keyframes da-woods { 0% { background-position: 0 0 } 100% { background-position: 0 100px } }
@keyframes da-sway { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } }
@keyframes da-turn { 0% { transform: translateX(0) rotate(-5deg); opacity: .9 } 25% { transform: translateX(5px) rotate(0); opacity: 1 } 50% { transform: translateX(10px) rotate(5deg); opacity: .9 } 75% { transform: translateX(5px) rotate(0); opacity: 1 } 100% { transform: translateX(0) rotate(-5deg); opacity: .9 } }
@keyframes da-step { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-6px) rotate(2deg) } 50% { transform: translateX(-12px) rotate(-2deg) } 75% { transform: translateX(-6px) rotate(2deg) } }
@keyframes da-branch { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.1) } 100% { transform: translateY(2px) scaleY(.9) } }
@keyframes da-fog { 0% { opacity: .3; transform: scale(1) } 50% { opacity: .6; transform: scale(1.1) } 100% { opacity: .4; transform: scale(1) } }

/* dim-figure-recognition */
.scn-dim-figure-recognition {
  background: linear-gradient(180deg, #1a1a24 0%, #2a2e38 40%, #1e1e28 100%),
              radial-gradient(circle at 60% 40%, #3a3e48 0%, transparent 60%);
}
.scn-dim-figure-recognition .bg-twilight {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent, transparent 30px, rgba(40,44,50,.1) 30px, rgba(40,44,50,.1) 32px);
  animation: df-twilight 40s linear infinite;
}
.scn-dim-figure-recognition .tree-silhouette {
  position: absolute; bottom: 0; right: 25%; width: 30px; height: 85%;
  background: linear-gradient(90deg, #0e0e12, #1a1a20);
  border-radius: 30%;
  transform-origin: bottom;
  animation: df-sway 15s ease-in-out infinite;
}
.scn-dim-figure-recognition .figure-under-tree {
  position: absolute; bottom: 25%; right: 20%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #1a1a24 0%, #0e0e14 100%);
  border-radius: 35% 35% 40% 40% / 45% 45% 40% 40%;
  transform-origin: bottom;
  animation: df-emerge 12s ease-in-out infinite alternate;
}
.scn-dim-figure-recognition .cloak-all {
  position: absolute; bottom: 25%; right: 16%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, #1e1e28 0%, #0a0a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: .7;
  filter: blur(3px);
  animation: df-cloak 8s ease-in-out infinite;
}
.scn-dim-figure-recognition .ground-cover {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #1e261e 0%, #101410 100%);
  border-radius: 30% 50% 0 0;
}
.scn-dim-figure-recognition .leaf-shadows {
  position: absolute; top: 10%; left: 10%; width: 20px; height: 15px;
  background: rgba(30,40,30,.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: df-leaf 18s ease-in-out infinite alternate;
}
.scn-dim-figure-recognition .light-shaft {
  position: absolute; top: 0; left: 45%; width: 8%; height: 100%;
  background: linear-gradient(180deg, rgba(80,85,95,.15) 0%, transparent 80%);
  filter: blur(5px);
  animation: df-shaft 20s ease-in-out infinite alternate;
}
@keyframes df-twilight { 0% { background-position: 0 0 } 100% { background-position: 100px 100px } }
@keyframes df-sway { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } }
@keyframes df-emerge { 0% { transform: scaleY(.7) translateY(10px); opacity: .4 } 50% { transform: scaleY(1) translateY(0); opacity: .9 } 100% { transform: scaleY(.8) translateY(5px); opacity: .6 } }
@keyframes df-cloak { 0% { transform: rotate(-3deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.1) } 100% { transform: rotate(-2deg) scaleY(1) } }
@keyframes df-leaf { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(20px, -10px) rotate(20deg) } 100% { transform: translate(40px, -20px) rotate(-10deg) } }
@keyframes df-shaft { 0% { opacity: .1; transform: scaleX(1) } 50% { opacity: .4; transform: scaleX(1.3) } 100% { opacity: .2; transform: scaleX(1) } }

/* recognition-exclamation */
.scn-recognition-exclamation {
  background: linear-gradient(180deg, #1a1c24 0%, #2a2e3a 50%, #1e2028 100%),
              radial-gradient(ellipse at 40% 70%, #242838 0%, transparent 70%);
}
.scn-recognition-exclamation .bg-gloom {
  position: absolute; inset: 0;
  background: repeating-radial-gradient(circle at 50% 50%, transparent, transparent 40px, rgba(30,34,42,.1) 40px, rgba(30,34,42,.1) 42px);
  animation: re-gloom 35s linear infinite;
}
.scn-recognition-exclamation .figure-a {
  position: absolute; bottom: 30%; left: 25%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1e2028 0%, #0e1016 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom;
  animation: re-shudder 4s ease-in-out infinite;
}
.scn-recognition-exclamation .figure-b {
  position: absolute; bottom: 30%; right: 25%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1e2028 0%, #0e1016 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom;
  animation: re-shudder 4.5s ease-in-out infinite;
}
.scn-recognition-exclamation .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #12141a 0%, #080a0e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-recognition-exclamation .shock-ripple-a {
  position: absolute; bottom: 40%; left: 20%; width: 60px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,110,130,.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: re-ripple 6s ease-out infinite;
}
.scn-recognition-exclamation .shock-ripple-b {
  position: absolute; bottom: 40%; right: 20%; width: 60px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,110,130,.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: re-ripple 6s ease-out 3s infinite;
}
.scn-recognition-exclamation .dread-mist {
  position: absolute; top: 10%; left: 5%; width: 90%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(50,55,70,.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: re-mist 20s ease-in-out infinite alternate;
}
.scn-recognition-exclamation .trunk-flank {
  position: absolute; bottom: 0; left: 0; width: 25px; height: 90%;
  background: linear-gradient(90deg, #0a0a0e, #1a1a20);
  border-radius: 30%;
  transform-origin: bottom;
  animation: re-sway 18s ease-in-out infinite;
}
@keyframes re-gloom { 0% { background-position: 0 0 } 100% { background-position: 100px 100px } }
@keyframes re-shudder {
  0% { transform: translateX(0) rotate(-3deg) scaleY(1) }
  20% { transform: translateX(-3px) rotate(1deg) scaleY(1.03) }
  40% { transform: translateX(3px) rotate(-1deg) scaleY(.98) }
  60% { transform: translateX(-2px) rotate(2deg) scaleY(1.02) }
  80% { transform: translateX(2px) rotate(-2deg) scaleY(1) }
  100% { transform: translateX(0) rotate(0) scaleY(1) }
}
@keyframes re-ripple { 0% { transform: scale(1); opacity: .4 } 50% { transform: scale(1.3); opacity: .1 } 100% { transform: scale(1.5); opacity: 0 } }
@keyframes re-mist { 0% { opacity: .2; transform: scaleX(1) } 50% { opacity: .5; transform: scaleX(1.2) } 100% { opacity: .3; transform: scaleX(1) } }
@keyframes re-sway { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } }

.scn-sold-to-fiend { background: linear-gradient(180deg, #1f1f2e 0%, #2c2a3e 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%); }
.scn-sold-to-fiend .overcast-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2e2e44 0%, #1a1a2e 100%); animation: stf-sky 15s ease-in-out infinite alternate; }
.scn-sold-to-fiend .distant-hills { position:absolute; bottom:40%; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a2e3a 0%, #1c1e2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); animation: stf-hills 20s ease-in-out infinite; }
.scn-sold-to-fiend .minister-shadow { position:absolute; bottom:25%; left:35%; width:26px; height:50px; background: linear-gradient(180deg, #0e0e18 0%, #000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: stf-minister 4s ease-in-out infinite; }
.scn-sold-to-fiend .fiend-figure { position:absolute; bottom:30%; right:30%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a3e 0%, #140828 100%); border-radius: 30% 30% 50% 50% / 40% 40% 50% 50%; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); animation: stf-fiend 6s ease-in-out infinite alternate; }
.scn-sold-to-fiend .yellow-hag { position:absolute; bottom:28%; right:22%; width:20px; height:36px; background: linear-gradient(180deg, #c89a4a 0%, #7a5a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; opacity:0.7; animation: stf-hag 8s ease-in-out infinite; }
.scn-sold-to-fiend .ground-mist { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #2a2a3e 0%, transparent 100%); filter: blur(10px); animation: stf-mist 12s ease-in-out infinite alternate; }
.scn-sold-to-fiend .dark-tree { position:absolute; bottom:20%; left:10%; width:12px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 20% 20% 0 0; transform: rotate(5deg); box-shadow: -2px 0 6px rgba(0,0,0,.4); animation: stf-tree 25s linear infinite; }
.scn-sold-to-fiend .ravens { position:absolute; top:15%; left:60%; width:12px; height:8px; background: #0e0e1a; border-radius: 50% 50% 30% 30%; filter: blur(1px); animation: stf-raven 30s linear infinite; }
@keyframes stf-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes stf-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes stf-minister { 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 stf-fiend { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.02) translateX(-4px) } 100% { transform: scale(1) translateX(0) } }
@keyframes stf-hag { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes stf-mist { 0% { opacity:0.3 } 100% { opacity:0.8 } }
@keyframes stf-tree { 0% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes stf-raven { 0% { transform: translateX(0) } 100% { transform: translateX(-80vw) } }

.scn-fellowship-with-wicked { background: linear-gradient(180deg, #1c1c2a 0%, #2a2a3e 30%, #1e1e30 100%), radial-gradient(ellipse at 50% 100%, #2c2c44 0%, transparent 70%); }
.scn-fellowship-with-wicked .burial-ground { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2e2e44 0%, #1c1c2a 100%); animation: fww-ground 20s ease-in-out infinite alternate; }
.scn-fellowship-with-wicked .tombstone { position:absolute; bottom:28%; left:20%; width:16px; height:30px; background: linear-gradient(180deg, #4a4a5e 0%, #2c2c3e 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 2px 4px rgba(0,0,0,.4); animation: fww-tomb 10s ease-in-out infinite; }
.scn-fellowship-with-wicked .minister-figure { position:absolute; bottom:25%; left:40%; width:24px; height:48px; background: linear-gradient(180deg, #12121a 0%, #05050a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fww-minister 4.5s ease-in-out infinite; }
.scn-fellowship-with-wicked .mistress-hibbins { position:absolute; bottom:28%; right:30%; width:20px; height:52px; background: linear-gradient(180deg, #2a1a1a 0%, #0e0808 100%); border-radius: 30% 30% 50% 50% / 40% 40% 50% 50%; box-shadow: inset 0 6px 10px rgba(0,0,0,.5); animation: fww-hibbins 6s ease-in-out infinite alternate; }
.scn-fellowship-with-wicked .willow-tree { position:absolute; bottom:20%; right:10%; width:8px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 10% 10% 0 0; transform: rotate(-10deg); box-shadow: 0 0 8px rgba(0,0,0,.3); animation: fww-willow 30s ease-in-out infinite; }
.scn-fellowship-with-wicked .ground-light { position:absolute; bottom:25%; left:45%; width:30px; height:20px; background: radial-gradient(ellipse, rgba(180,150,100,0.15) 0%, transparent 70%); animation: fww-light 8s ease-in-out infinite alternate; }
.scn-fellowship-with-wicked .grave-mound { position:absolute; bottom:30%; left:55%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%); border-radius: 50%; transform: scale(0.9); animation: fww-mound 15s ease-in-out infinite; }
@keyframes fww-ground { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fww-tomb { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fww-minister { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(3px) rotate(2deg) } 60% { transform: translateX(6px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fww-hibbins { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.03) translateX(3px) } 100% { transform: scale(1) translateX(0) } }
@keyframes fww-willow { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-10deg) } }
@keyframes fww-light { 0% { opacity:0.1 } 100% { opacity:0.4 } }
@keyframes fww-mound { 0% { transform: scale(0.9) } 50% { transform: scale(1) } 100% { transform: scale(0.9) } }

.scn-study-strangeness { background: linear-gradient(135deg, #1a1a24 0%, #2a2a3a 50%, #1a1a24 100%), radial-gradient(ellipse at 30% 50%, #3a3a4e 0%, transparent 60%); }
.scn-study-strangeness .dim-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e2e 0%, #141420 100%); animation: sts-wall 25s ease-in-out infinite alternate; }
.scn-study-strangeness .bookshelves { position:absolute; top:10%; left:5%; width:30%; height:60%; background: linear-gradient(90deg, #2a2a3e 0%, #1c1c2a 100%); border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: sts-books 20s ease-in-out infinite; }
.scn-study-strangeness .fireplace { position:absolute; bottom:10%; left:15%; width:80px; height:60px; background: linear-gradient(180deg, #2c2c3e 0%, #1a1a28 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 4px 12px rgba(0,0,0,.6); animation: sts-hearth 12s ease-in-out infinite; }
.scn-study-strangeness .fire-glow { position:absolute; bottom:14%; left:20%; width:50px; height:40px; background: radial-gradient(ellipse, #c07030 0%, #8a4a20 30%, transparent 70%); filter: blur(8px); animation: sts-fire 3s ease-in-out infinite alternate; }
.scn-study-strangeness .window-night { position:absolute; top:15%; right:10%; width:50px; height:60px; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 100%); border: 2px solid #2a2a3e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.7); animation: sts-window 30s ease-in-out infinite; }
.scn-study-strangeness .minister-silhouette { position:absolute; bottom:20%; left:50%; width:20px; height:44px; background: linear-gradient(180deg, #0a0a12 0%, #000 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); animation: sts-minister 4s ease-in-out infinite; }
.scn-study-strangeness .desk-candle { position:absolute; bottom:20%; left:35%; width:10px; height:24px; background: linear-gradient(180deg, #4a3e2a 0%, #2a1e0e 100%); border-radius: 2px 2px 0 0; animation: sts-candle 8s ease-in-out infinite; }
.scn-study-strangeness .candle-flame { position:absolute; bottom:38%; left:35%; width:6px; height:12px; background: radial-gradient(ellipse, #ffd080 0%, #c08040 50%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: sts-flame 2s ease-in-out infinite alternate; }
@keyframes sts-wall { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.8 } }
@keyframes sts-books { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sts-hearth { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes sts-fire { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.6; transform: scale(1) } }
@keyframes sts-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.7) } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,.9) } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,.7) } }
@keyframes sts-minister { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(1deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-52%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes sts-candle { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes sts-flame { 0% { transform: scaleY(0.8) translateY(0) } 25% { transform: scaleY(1.1) translateY(-2px) } 50% { transform: scaleY(0.9) translateY(0) } 75% { transform: scaleY(1.2) translateY(-1px) } 100% { transform: scaleY(0.8) translateY(0) } }

.scn-former-self-scorned { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%); }
.scn-former-self-scorned .dark-room { position:absolute; inset:0; background: linear-gradient(135deg, #1e1e30 0%, #141428 100%); animation: fss-room 30s ease-in-out infinite alternate; }
.scn-former-self-scorned .mirror-frame { position:absolute; top:15%; left:50%; width:80px; height:100px; transform: translateX(-50%); background: linear-gradient(180deg, #4a4a5e 0%, #2c2c3e 100%); border-radius: 4px; border: 2px solid #3a3a4e; box-shadow: 0 0 30px rgba(0,0,0,.6); animation: fss-mirror 20s ease-in-out infinite; }
.scn-former-self-scorned .reflection-former { position:absolute; top:20%; left:50%; width:60px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #2e2e44 0%, #1a1a2e 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; opacity:0.6; filter: blur(2px); animation: fss-reflection 8s ease-in-out infinite alternate; }
.scn-former-self-scorned .minister-now { position:absolute; bottom:20%; left:45%; width:22px; height:46px; background: linear-gradient(180deg, #0e0e18 0%, #05050a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); animation: fss-minister 4s ease-in-out infinite; }
.scn-former-self-scorned .desk-edge { position:absolute; bottom:15%; left:25%; right:25%; height:8px; background: linear-gradient(180deg, #2a2a3a 0%, #1c1c2a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: fss-desk 15s ease-in-out infinite; }
.scn-former-self-scorned .candle-stand { position:absolute; bottom:25%; left:30%; width:8px; height:30px; background: linear-gradient(180deg, #3a2e1a 0%, #1e140a 100%); border-radius: 2px; animation: fss-stand 10s ease-in-out infinite; }
.scn-former-self-scorned .shadow-letter { position:absolute; bottom:20%; left:35%; width:20px; height:14px; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1a 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: fss-letter 12s ease-in-out infinite; }
.scn-former-self-scorned .glimmer { position:absolute; bottom:35%; left:45%; width:4px; height:4px; background: radial-gradient(circle, #ffe0a0 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,224,160,.3); animation: fss-glimmer 3s ease-in-out infinite alternate; }
@keyframes fss-room { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes fss-mirror { 0% { box-shadow: 0 0 30px rgba(0,0,0,.6) } 50% { box-shadow: 0 0 40px rgba(0,0,0,.8) } 100% { box-shadow: 0 0 30px rgba(0,0,0,.6) } }
@keyframes fss-reflection { 0% { opacity:0.4; transform: translateX(-50%) scale(1) } 50% { opacity:0.8; transform: translateX(-50%) scale(1.02) } 100% { opacity:0.4; transform: translateX(-50%) scale(1) } }
@keyframes fss-minister { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-48%) translateY(-1px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-52%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes fss-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes fss-stand { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fss-letter { 0% { transform: rotate(5deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(5deg) } }
@keyframes fss-glimmer { 0% { opacity:0.3; transform: scale(0.8) } 100% { opacity:1; transform: scale(1.5) } }

/* clutching-the-child */
.scn-clutching-the-child {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f5d6a0 60%),
    radial-gradient(ellipse at 50% 100%, rgba(255,200,150,0.6) 0%, transparent 70%);
}

.scn-clutching-the-child .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #d4e8f0 100%);
  animation: ct1-sky 12s ease-in-out infinite alternate;
}

.scn-clutching-the-child .sunlight {
  position: absolute; inset: 10% 0 0 0;
  background: radial-gradient(ellipse at 30% 20%, rgba(255,230,180,0.4) 0%, transparent 60%);
  animation: ct1-sun 8s ease-in-out infinite alternate;
}

.scn-clutching-the-child .mother {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3420 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ct1-mother 6s ease-in-out infinite;
  box-shadow: 10px 0 20px rgba(0,0,0,0.3);
}

.scn-clutching-the-child .infant {
  position: absolute; bottom: 28%; left: 42%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #d4b48c 0%, #a67c52 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ct1-infant 4s ease-in-out infinite;
}

.scn-clutching-the-child .scarlet-letter {
  position: absolute; bottom: 40%; left: 37%; width: 18px; height: 20px;
  background: radial-gradient(circle at 30% 30%, #c8553d 0%, #a0461a 70%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 12px 4px rgba(200,85,61,0.4);
  animation: ct1-letter 3s ease-in-out infinite alternate;
}

.scn-clutching-the-child .shadow-crowd {
  position: absolute; bottom: 15%; left: 0; width: 100%; height: 60px;
  background: linear-gradient(180deg, rgba(40,30,20,0.3) 0%, transparent);
  filter: blur(4px);
  animation: ct1-shadow 10s ease-in-out infinite;
}

.scn-clutching-the-child .dust-motes {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 50%;
  background: radial-gradient(circle at 50% 50%, rgba(255,255,200,0.15) 0%, transparent 80%);
  filter: blur(6px);
  animation: ct1-dust 7s ease-in-out infinite alternate;
}

@keyframes ct1-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ct1-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes ct1-mother { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-5px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ct1-infant { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes ct1-letter { 0% { box-shadow: 0 0 8px 2px rgba(200,85,61,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 20px 6px rgba(200,85,61,0.6); opacity: 1 } 100% { box-shadow: 0 0 10px 3px rgba(200,85,61,0.4); opacity: 0.85 } }
@keyframes ct1-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.7 } 100% { opacity: 0.3 } }
@keyframes ct1-dust { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.1) } 100% { transform: translateY(5px) scale(0.9) } }

/* figure-in-crowd */
.scn-figure-in-crowd {
  background:
    linear-gradient(180deg, #7ec8e3 0%, #f5d6a0 50%, #b8965a 100%),
    radial-gradient(ellipse at 80% 20%, rgba(255,230,180,0.5) 0%, transparent 70%);
}

.scn-figure-in-crowd .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #d4e8f0 100%);
  animation: fc2-sky 15s ease-in-out infinite alternate;
}

.scn-figure-in-crowd .platform {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 20px;
  background: linear-gradient(180deg, #8b7355 0%, #5c4a32 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: fc2-platform 6s ease-in-out infinite;
}

.scn-figure-in-crowd .woman {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3420 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: fc2-woman 5s ease-in-out infinite;
  box-shadow: 5px 0 10px rgba(0,0,0,0.2);
}

.scn-figure-in-crowd .crowd-figures {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 50px;
  background: repeating-linear-gradient(90deg,
    rgba(60,40,30,0.3) 0px, rgba(60,40,30,0.3) 8px,
    transparent 8px, transparent 12px);
  animation: fc2-crowd 10s ease-in-out infinite;
  filter: blur(2px);
}

.scn-figure-in-crowd .outskirts-figure {
  position: absolute; bottom: 22%; left: 80%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: scale(0.9);
  animation: fc2-outskirts 8s ease-in-out infinite alternate;
}

.scn-figure-in-crowd .sunbeams {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(255,230,180,0.3) 0%, transparent 60%);
  filter: blur(8px);
  animation: fc2-beams 12s ease-in-out infinite alternate;
}

.scn-figure-in-crowd .dust {
  position: absolute; top: 30%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,200,0.2) 0%, transparent 70%);
  filter: blur(6px);
  animation: fc2-dust 9s ease-in-out infinite;
}

@keyframes fc2-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes fc2-platform { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fc2-woman { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(0) } 75% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fc2-crowd { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }
@keyframes fc2-outskirts { 0% { transform: scale(0.9) translateX(0) } 50% { transform: scale(1) translateX(5px) } 100% { transform: scale(0.9) translateX(-2px) } }
@keyframes fc2-beams { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }
@keyframes fc2-dust { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-8px) scale(1.1) } 100% { transform: translateY(4px) scale(0.9) } }

/* small-statured-intelligent */
.scn-small-statured-intelligent {
  background:
    linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%),
    radial-gradient(ellipse at 30% 30%, rgba(180,150,100,0.3) 0%, transparent 70%);
}

.scn-small-statured-intelligent .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  animation: si4-wall 10s ease-in-out infinite alternate;
}

.scn-small-statured-intelligent .window-light {
  position: absolute; top: 10%; left: 60%; width: 40%; height: 60%;
  background: linear-gradient(135deg, #ffe0a0 0%, #d4b070 50%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  filter: blur(4px);
  animation: si4-light 8s ease-in-out infinite alternate;
}

.scn-small-statured-intelligent .face-profile {
  position: absolute; bottom: 20%; left: 30%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #d4b48c 0%, #a67c52 100%);
  border-radius: 40% 30% 20% 30% / 50% 40% 30% 50%;
  transform-origin: bottom center;
  animation: si4-face 6s ease-in-out infinite;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
}

.scn-small-statured-intelligent .forehead {
  position: absolute; bottom: 55%; left: 32%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 50% 50% 20% 20%;
  animation: si4-forehead 5s ease-in-out infinite;
}

.scn-small-statured-intelligent .eye {
  position: absolute; bottom: 40%; left: 38%; width: 12px; height: 8px;
  background: radial-gradient(circle, #1a1a1a 0%, #3a3a3a 60%, transparent 100%);
  border-radius: 50%;
  animation: si4-eye 4s ease-in-out infinite;
}

.scn-small-statured-intelligent .shoulder {
  position: absolute; bottom: 10%; left: 25%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  animation: si4-shoulder 7s ease-in-out infinite alternate;
}

.scn-small-statured-intelligent .shadow {
  position: absolute; bottom: 0; left: 20%; width: 70%; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(3px);
  animation: si4-shadow 9s ease-in-out infinite;
}

@keyframes si4-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes si4-light { 0% { opacity: 0.4 } 50% { opacity: 0.8 } 100% { opacity: 0.3 } }
@keyframes si4-face { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(0) } 75% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes si4-forehead { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes si4-eye { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(0.9) } }
@keyframes si4-shoulder { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(1px) scaleX(0.98) } }
@keyframes si4-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }

/* deformity-recognized */
.scn-deformity-recognized {
  background:
    linear-gradient(180deg, #d4e8f0 0%, #f5d6a0 40%, #e0a060 70%, #c08040 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255,200,150,0.5) 0%, transparent 60%);
}

.scn-deformity-recognized .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #d4e8f0 100%);
  animation: dr3-sky 14s ease-in-out infinite alternate;
}

.scn-deformity-recognized .sunlight {
  position: absolute; inset: 5% 0 0 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(255,230,180,0.3) 0%, transparent 70%);
  animation: dr3-sun 9s ease-in-out infinite alternate;
}

.scn-deformity-recognized .mother {
  position: absolute; bottom: 20%; left: 30%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3420 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: dr3-mother 5s ease-in-out infinite;
  box-shadow: 8px 0 15px rgba(0,0,0,0.3);
}

.scn-deformity-recognized .infant {
  position: absolute; bottom: 28%; left: 38%; width: 22px; height: 32px;
  background: linear-gradient(180deg, #d4b48c 0%, #a67c52 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: dr3-infant 3s ease-in-out infinite alternate;
}

.scn-deformity-recognized .deformed-figure {
  position: absolute; bottom: 18%; left: 65%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 30% 20% 20% 30% / 40% 30% 30% 40%;
  transform: skewX(3deg);
  animation: dr3-deform 6s ease-in-out infinite alternate;
  filter: blur(1px);
}

.scn-deformity-recognized .scarlet-letter-glow {
  position: absolute; bottom: 42%; left: 33%; width: 20px; height: 22px;
  background: radial-gradient(circle at 40% 40%, #c8553d 0%, #a0461a 60%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 15px 5px rgba(200,85,61,0.5), 0 0 30px 10px rgba(200,85,61,0.2);
  animation: dr3-letter 4s ease-in-out infinite alternate;
}

.scn-deformity-recognized .trees {
  position: absolute; bottom: 15%; left: 0; width: 100%; height: 50px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  clip-path: polygon(0% 100%, 5% 20%, 10% 100%, 15% 10%, 20% 100%, 25% 30%, 30% 100%, 35% 15%, 40% 100%, 45% 25%, 50% 100%, 55% 20%, 60% 100%, 65% 10%, 70% 100%, 75% 30%, 80% 100%, 85% 15%, 90% 100%, 95% 20%, 100% 100%);
  filter: blur(2px);
  animation: dr3-trees 12s ease-in-out infinite;
}

@keyframes dr3-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes dr3-sun { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(0.97) } }
@keyframes dr3-mother { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-4px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dr3-infant { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes dr3-deform { 0% { transform: skewX(3deg) translateY(0) } 50% { transform: skewX(3deg) translateY(-3px) } 100% { transform: skewX(3deg) translateY(2px) } }
@keyframes dr3-letter { 0% { box-shadow: 0 0 10px 3px rgba(200,85,61,0.4); opacity: 0.85 } 50% { box-shadow: 0 0 25px 8px rgba(200,85,61,0.7); opacity: 1 } 100% { box-shadow: 0 0 12px 4px rgba(200,85,61,0.45); opacity: 0.9 } }
@keyframes dr3-trees { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }

.scn-chillingworth-folly { background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%, #0d0b09 100%), radial-gradient(ellipse at 50% 60%, #4a2e20 0%, transparent 70%); }
.scn-chillingworth-folly .wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%); }
.scn-chillingworth-folly .floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 30% 30% 0 0 / 10% 10% 0 0; }
.scn-chillingworth-folly .hearth  { position:absolute; bottom:25%; left:50%; width:120px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #2a1a10 0%, #0d0805 100%); border-radius: 40% 40% 10% 10%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); animation: cf-hearth 6s ease-in-out infinite alternate; }
.scn-chillingworth-folly .figure  { position:absolute; bottom:20%; left:35%; width:30px; height:80px; background: linear-gradient(180deg, #1a1210 0%, #0d0907 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cf-figure 4s ease-in-out infinite; }
.scn-chillingworth-folly .window  { position:absolute; top:15%; right:10%; width:80px; height:120px; border: 4px solid #2a1f1a; background: radial-gradient(ellipse at 50% 30%, rgba(180,140,100,.15) 0%, rgba(0,0,0,.6) 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: cf-window 8s ease-in-out infinite alternate; }
.scn-chillingworth-folly .shadow-bars { position:absolute; top:15%; right:10%; width:80px; height:120px; background: repeating-linear-gradient(0deg, rgba(0,0,0,.5) 0px 4px, transparent 4px 16px), repeating-linear-gradient(90deg, rgba(0,0,0,.5) 0px 4px, transparent 4px 16px); mix-blend-mode: multiply; opacity:.3; animation: cf-bars 6s ease-in-out infinite;}
.scn-chillingworth-folly .dust   { position:absolute; top:0; left:0; right:0; height:70%; background: radial-gradient(circle at 30% 50%, rgba(200,150,100,.05) 0%, transparent 50%), radial-gradient(circle at 70% 30%, rgba(200,150,100,.03) 0%, transparent 40%); filter: blur(3px); animation: cf-dust 15s linear infinite; }
@keyframes cf-hearth  { 0% { box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); background: radial-gradient(ellipse at 50% 30%, #2a1a10 0%, #0d0805 100%); } 50% { box-shadow: inset 0 -12px 30px rgba(180,80,30,.3); background: radial-gradient(ellipse at 50% 30%, #3a2515 0%, #0d0805 100%); } 100% { box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); background: radial-gradient(ellipse at 50% 30%, #2a1a10 0%, #0d0805 100%); } }
@keyframes cf-figure  { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(-2deg); } 50% { transform: translateX(4px) rotate(0); } 75% { transform: translateX(2px) rotate(2deg); } }
@keyframes cf-window  { 0%,100% { opacity: .7; } 50% { opacity: .5; } }
@keyframes cf-bars    { 0%,100% { opacity: .3; } 50% { opacity: .15; } }
@keyframes cf-dust    { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }

.scn-first-wrong-his { background: linear-gradient(180deg, #1a1812 0%, #2a221c 50%, #0d0a08 100%), radial-gradient(ellipse at 50% 100%, #3a2a1e 0%, transparent 70%); }
.scn-first-wrong-his .bg   { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%); }
.scn-first-wrong-his .table { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #3a2a1c 0%, #1a100a 100%); border-radius: 20% 20% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: fw-table 8s ease-in-out infinite alternate; }
.scn-first-wrong-his .figure-left  { position:absolute; bottom:22%; left:22%; width:28px; height:70px; background: linear-gradient(180deg, #1a1210 0%, #0d0907 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fw-left 5s ease-in-out infinite; }
.scn-first-wrong-his .figure-right { position:absolute; bottom:22%; right:22%; width:30px; height:75px; background: linear-gradient(180deg, #1e1410 0%, #0a0806 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fw-right 5s ease-in-out infinite reverse; }
.scn-first-wrong-his .shadow-cast  { position:absolute; bottom:14%; left:20%; right:20%; height:10%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 60%); animation: fw-shadow 6s ease-in-out infinite; }
.scn-first-wrong-his .candle { position:absolute; bottom:30%; left:50%; width:6px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #f0d080 0%, #c08040 100%); border-radius: 2px 2px 10% 10%; box-shadow: 0 0 10px 2px rgba(200,150,80,.3); animation: fw-candle 3s ease-in-out infinite alternate; }
.scn-first-wrong-his .candle-flame { position:absolute; bottom:48%; left:50%; width:10px; height:14px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #ffe080 0%, #e09040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #e09040, 0 0 40px 12px rgba(200,100,40,.4); animation: fw-flame 1.5s ease-in-out infinite alternate; }
@keyframes fw-table   { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes fw-left    { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(3px) rotate(-1deg); } 75% { transform: translateX(1px) rotate(1deg); } }
@keyframes fw-right   { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(-3px) rotate(1deg); } 75% { transform: translateX(-1px) rotate(-1deg); } }
@keyframes fw-shadow  { 0%,100% { opacity: .6; transform: scaleX(1); } 50% { opacity: .4; transform: scaleX(1.1); } }
@keyframes fw-candle  { 0%,100% { box-shadow: 0 0 10px 2px rgba(200,150,80,.3); } 50% { box-shadow: 0 0 14px 4px rgba(200,150,80,.5); } }
@keyframes fw-flame    { 0%,100% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity:.9; } 50% { transform: translateX(-50%) scaleY(1.2) rotate(2deg); opacity:1; } }

.scn-hester-refuses-name { background: linear-gradient(180deg, #1a1620 0%, #221a28 50%, #0d0a10 100%), radial-gradient(ellipse at 50% 70%, #3a2a3a 0%, transparent 70%); }
.scn-hester-refuses-name .bg   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1620 0%, #120e18 100%); }
.scn-hester-refuses-name .window-frame { position:absolute; top:10%; right:15%; width:100px; height:150px; border: 6px solid #2a222a; background: radial-gradient(ellipse at 50% 40%, rgba(200,180,200,.1) 0%, rgba(0,0,0,.7) 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-hester-refuses-name .hester-figure { position:absolute; bottom:20%; left:30%; width:35px; height:90px; background: linear-gradient(180deg, #1a1420 0%, #0d0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hn-hester 6s ease-in-out infinite; }
.scn-hester-refuses-name .shadow { position:absolute; bottom:15%; left:20%; right:40%; height:20%; background: radial-gradient(ellipse at 30% 0%, rgba(0,0,0,.6) 0%, transparent 60%); animation: hn-shadow 5s ease-in-out infinite; }
.scn-hester-refuses-name .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #221a22 0%, #120e12 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; }
.scn-hester-refuses-name .light-beam { position:absolute; top:10%; left:35%; width:60%; height:80%; background: linear-gradient(135deg, rgba(200,180,200,.08) 0%, transparent 60%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%); animation: hn-beam 10s ease-in-out infinite alternate; }
@keyframes hn-hester { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(3px) rotate(1deg); } }
@keyframes hn-shadow { 0%,100% { opacity: .6; transform: scaleX(1); } 50% { opacity: .4; transform: scaleX(.8); } }
@keyframes hn-beam   { 0%,100% { opacity: .5; } 50% { opacity: .7; } }

.scn-chillingworth-determines { background: linear-gradient(180deg, #1a1412 0%, #221a16 50%, #0d0a08 100%), radial-gradient(ellipse at 50% 100%, #3a2a20 0%, transparent 70%); }
.scn-chillingworth-determines .bg   { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1412 0%, #120e0c 100%); }
.scn-chillingworth-determines .desk { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #3a2a1c 0%, #1a100a 100%); border-radius: 20% 20% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: cd-desk 7s ease-in-out infinite alternate; }
.scn-chillingworth-determines .book { position:absolute; bottom:25%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: cd-book 9s ease-in-out infinite; }
.scn-chillingworth-determines .figure { position:absolute; bottom:22%; left:50%; width:34px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1210 0%, #0d0907 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cd-figure 5s ease-in-out infinite; }
.scn-chillingworth-determines .hand  { position:absolute; bottom:28%; left:58%; width:10px; height:16px; background: linear-gradient(180deg, #1e1410 0%, #0a0806 100%); border-radius: 50% 50% 30% 30%; transform: rotate(-20deg); animation: cd-hand 4s ease-in-out infinite; }
.scn-chillingworth-determines .lamp  { position:absolute; bottom:35%; right:20%; width:8px; height:18px; background: linear-gradient(180deg, #e0b080 0%, #a07040 100%); border-radius: 2px 2px 20% 20%; box-shadow: 0 0 14px 4px rgba(200,150,80,.3); animation: cd-lamp 3s ease-in-out infinite alternate; }
.scn-chillingworth-determines .shadow { position:absolute; bottom:15%; left:30%; right:10%; height:15%; background: radial-gradient(ellipse at 40% 0%, rgba(0,0,0,.6) 0%, transparent 60%); animation: cd-shadow 6s ease-in-out infinite; }
@keyframes cd-desk   { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes cd-book   { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes cd-figure { 0%,100% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(0); } 75% { transform: translateX(-50%) rotate(2deg); } }
@keyframes cd-hand   { 0%,100% { transform: rotate(-20deg) translateY(0); } 25% { transform: rotate(-15deg) translateY(-1px); } 50% { transform: rotate(-20deg) translateY(0); } 75% { transform: rotate(-25deg) translateY(-1px); } }
@keyframes cd-lamp   { 0%,100% { box-shadow: 0 0 14px 4px rgba(200,150,80,.3); } 50% { box-shadow: 0 0 20px 6px rgba(200,150,80,.5); } }
@keyframes cd-shadow { 0%,100% { opacity: .6; transform: scaleX(1); } 50% { opacity: .4; transform: scaleX(.9); } }

.scn-pre-revolution-records-lost { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 0%, #3a3a2a 0%, transparent 70%); }
.scn-pre-revolution-records-lost .room { position:absolute; inset:0; background: repeating-linear-gradient(90deg, rgba(255,255,240,0.03) 0px, rgba(255,255,240,0.03) 2px, transparent 2px, transparent 50px); }
.scn-pre-revolution-records-lost .shelves { position:absolute; top:10%; left:5%; right:5%; bottom:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-pre-revolution-records-lost .shelves::before { content:''; position:absolute; top:0; left:0; right:0; height:8px; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%); }
.scn-pre-revolution-records-lost .window { position:absolute; top:12%; right:10%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 50%, #8a8a7a 0%, #4a4a3a 70%); border-radius: 4px; box-shadow: 0 0 20px rgba(138,138,122,0.3); animation: prv-glow 8s ease-in-out infinite alternate; }
.scn-pre-revolution-records-lost .desk { position:absolute; bottom:20%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.6); }
.scn-pre-revolution-records-lost .figure { position:absolute; bottom:20%; left:30%; width:20px; height:60px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prv-bend 12s ease-in-out infinite; }
.scn-pre-revolution-records-lost .dust-a { position:absolute; top:30%; left:20%; width:4px; height:4px; background: rgba(200,200,180,0.4); border-radius: 50%; animation: prv-drift-a 25s linear infinite; }
.scn-pre-revolution-records-lost .dust-b { position:absolute; top:50%; right:30%; width:3px; height:3px; background: rgba(200,200,180,0.3); border-radius: 50%; animation: prv-drift-b 30s linear infinite reverse; }
@keyframes prv-glow { 0% { opacity:0.6; box-shadow: 0 0 10px rgba(138,138,122,0.2); } 50% { opacity:0.9; box-shadow: 0 0 30px rgba(138,138,122,0.5); } 100% { opacity:0.7; box-shadow: 0 0 15px rgba(138,138,122,0.3); } }
@keyframes prv-bend { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes prv-drift-a { 0% { transform: translate(0, 0); opacity:0; } 10% { opacity:0.4; } 90% { opacity:0.4; } 100% { transform: translate(80px, -40px); opacity:0; } }
@keyframes prv-drift-b { 0% { transform: translate(0,0); opacity:0; } 10% { opacity:0.3; } 90% { opacity:0.3; } 100% { transform: translate(-60px, -30px); opacity:0; } }

.scn-discovery-of-package { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #3a3a4a 0%, transparent 70%); }
.scn-discovery-of-package .room { position:absolute; inset:0; background: repeating-linear-gradient(0deg, rgba(255,255,255,0.02) 0px, rgba(255,255,255,0.02) 1px, transparent 1px, transparent 30px); }
.scn-discovery-of-package .desk { position:absolute; bottom:15%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -6px 14px rgba(0,0,0,0.7); }
.scn-discovery-of-package .package { position:absolute; bottom:30%; left:40%; width:50px; height:40px; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: dsp-shift 6s ease-in-out infinite; }
.scn-discovery-of-package .candle { position:absolute; bottom:38%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 20px #c8a060; animation: dsp-flicker 2s ease-in-out infinite alternate; }
.scn-discovery-of-package .candle::before { content:''; position:absolute; top:-6px; left:2px; width:4px; height:8px; background: radial-gradient(circle, #ffd080 0%, #c8a060 50%, transparent 70%); border-radius: 50%; }
.scn-discovery-of-package .window { position:absolute; top:8%; left:5%; width:50px; height:60px; background: radial-gradient(ellipse at 50% 50%, #6a6a7a 0%, #2a2a3a 70%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: dsp-rain 0.8s linear infinite; }
.scn-discovery-of-package .rain-a { position:absolute; top:0; left:10%; width:2px; height:100%; background: linear-gradient(180deg, transparent, rgba(180,180,200,0.3) 50%, transparent); animation: dsp-rain 0.6s linear infinite; }
.scn-discovery-of-package .rain-b { position:absolute; top:0; right:20%; width:2px; height:100%; background: linear-gradient(180deg, transparent, rgba(180,180,200,0.2) 50%, transparent); animation: dsp-rain 0.8s linear infinite 0.3s; }
@keyframes dsp-shift { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(1deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dsp-flicker { 0% { opacity:0.8; box-shadow: 0 0 15px #c8a060; } 50% { opacity:1; box-shadow: 0 0 30px #ffd080; } 100% { opacity:0.9; box-shadow: 0 0 20px #c8a060; } }
@keyframes dsp-rain { 0% { background-position: 0 0; } 100% { background-position: 0 30px; } }

.scn-parchment-envelope { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 50%, #3a3a2a 0%, transparent 70%); }
.scn-parchment-envelope .table { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8px; box-shadow: 0 -8px 20px rgba(0,0,0,0.6); }
.scn-parchment-envelope .envelope { position:absolute; bottom:30%; left:30%; width:120px; height:80px; background: linear-gradient(135deg, #c8b080 0%, #a89070 50%, #c8b080 100%); border-radius: 4px; box-shadow: 0 6px 16px rgba(0,0,0,0.5); animation: env-tilt 10s ease-in-out infinite alternate; }
.scn-parchment-envelope .envelope::after { content:''; position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(135deg, transparent 40%, #b8a080 42%, transparent 44%); }
.scn-parchment-envelope .wax-seal { position:absolute; bottom:40%; left:42%; width:20px; height:20px; background: radial-gradient(circle at 40% 40%, #a03020 0%, #701010 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: env-pulse 4s ease-in-out infinite alternate; }
.scn-parchment-envelope .parchment { position:absolute; bottom:40%; left:34%; width:80px; height:10px; background: linear-gradient(90deg, #d8c8a0 0%, #e8d8b0 50%, #d8c8a0 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: env-slide 12s ease-in-out infinite; }
.scn-parchment-envelope .glow { position:absolute; top:35%; left:30%; width:140px; height:100px; background: radial-gradient(ellipse, rgba(255,200,100,0.15) 0%, transparent 70%); border-radius: 50%; animation: env-glow 5s ease-in-out infinite alternate; }
.scn-parchment-envelope .shadow { position:absolute; bottom:25%; left:25%; right:25%; height:20px; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); border-radius: 50%; animation: env-shadow 10s ease-in-out infinite alternate; }
@keyframes env-tilt { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes env-pulse { 0% { box-shadow: 0 2px 6px rgba(0,0,0,0.4); } 100% { box-shadow: 0 0 20px rgba(160,48,32,0.6); } }
@keyframes env-slide { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-5px); } }
@keyframes env-glow { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes env-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.1); opacity:0.7; } 100% { transform: scaleX(0.95); opacity:0.4; } }

.scn-surveyor-pues-remains { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 0%, #2a2a3a 0%, transparent 70%); }
.scn-surveyor-pues-remains .sky { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 60%, #0a0a1a 100%); }
.scn-surveyor-pues-remains .graveyard { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); }
.scn-surveyor-pues-remains .tombstone { position:absolute; bottom:25%; left:20%; width:40px; height:60px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 4px 4px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,0.5); animation: sur-stone 20s ease-in-out infinite alternate; }
.scn-surveyor-pues-remains .tombstone::after { content:''; position:absolute; top:10%; left:10%; width:80%; height:50%; background: linear-gradient(180deg, transparent 40%, #5a5a6a 42%, transparent 44%); border-radius: 2px; }
.scn-surveyor-pues-remains .hole { position:absolute; bottom:0; left:40%; right:30%; height:25%; background: radial-gradient(ellipse at 50% 0%, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.8); animation: sur-dig 8s ease-in-out infinite; }
.scn-surveyor-pues-remains .remains { position:absolute; bottom:8%; left:48%; width:30px; height:20px; background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: rotate(10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: sur-bones 12s ease-in-out infinite alternate; }
.scn-surveyor-pues-remains .moon { position:absolute; top:10%; right:15%; width:30px; height:30px; background: radial-gradient(circle at 40% 40%, #c0c0d0 0%, #808090 100%); border-radius: 50%; box-shadow: 0 0 30px rgba(192,192,208,0.3), 0 0 60px rgba(192,192,208,0.1); animation: sur-moon 18s ease-in-out infinite alternate; }
.scn-surveyor-pues-remains .shadow { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); pointer-events: none; }
@keyframes sur-stone { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sur-dig { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.98); } }
@keyframes sur-bones { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes sur-moon { 0% { opacity:0.6; box-shadow: 0 0 20px rgba(192,192,208,0.2); } 50% { opacity:0.9; box-shadow: 0 0 40px rgba(192,192,208,0.4); } 100% { opacity:0.7; box-shadow: 0 0 25px rgba(192,192,208,0.3); } }

.scn-gallant-shipmaster {
  background: linear-gradient(180deg, #6b7a8a 0%, #4e5b6a 40%, #3a4552 100%), radial-gradient(ellipse at 50% 100%, #4a5a6a 0%, transparent 70%);
}
.scn-gallant-shipmaster .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, transparent 100%);
  animation: s1-sky 18s ease-in-out infinite alternate;
}
.scn-gallant-shipmaster .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: s1-sea 12s ease-in-out infinite alternate;
}
.scn-gallant-shipmaster .ship {
  position: absolute; bottom: 38%; left: 10%; width: 140px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
  transform: scale(0.8);
  filter: blur(2px);
  animation: s1-ship 20s linear infinite;
}
.scn-gallant-shipmaster .figure {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: s1-figure 4s ease-in-out infinite;
}
.scn-gallant-shipmaster .hat {
  position: absolute; bottom: 72%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: s1-hat 3s ease-in-out infinite;
}
.scn-gallant-shipmaster .ribbons {
  position: absolute; bottom: 62%; left: 48%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: top left;
  animation: s1-ribbons 2.5s ease-in-out infinite;
}
.scn-gallant-shipmaster .feather {
  position: absolute; bottom: 74%; left: 52%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(15deg);
  animation: s1-feather 3.2s ease-in-out infinite;
}
.scn-gallant-shipmaster .mist {
  position: absolute; inset: 10% 0 0 0;
  background: radial-gradient(ellipse at 40% 30%, rgba(200,210,220,0.3) 0%, transparent 50%);
  filter: blur(8px);
  animation: s1-mist 30s linear infinite;
}
@keyframes s1-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.5 } }
@keyframes s1-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes s1-ship { 0% { transform: scale(0.8) translateX(-20px) } 50% { transform: scale(0.85) translateX(10px) } 100% { transform: scale(0.8) translateX(-20px) } }
@keyframes s1-figure { 0% { transform: translateX(-50%) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes s1-hat { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes s1-ribbons { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-5deg) } }
@keyframes s1-feather { 0% { transform: rotate(10deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(10deg) } }
@keyframes s1-mist { 0% { transform: translateX(-30px) } 50% { transform: translateX(30px) } 100% { transform: translateX(-30px) } }

.scn-shipmaster-addresses-hester {
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-shipmaster-addresses-hester .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #6a7a8a 0%, transparent 100%); animation: s2-sky 15s ease-in-out infinite alternate; }
.scn-shipmaster-addresses-hester .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 10% 10% 0 0; }
.scn-shipmaster-addresses-hester .scaffold { position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 120px; height: 20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-shipmaster-addresses-hester .figure-shipmaster { position: absolute; bottom: 40%; left: 42%; width: 28px; height: 70px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: s2-shipmaster 4s ease-in-out infinite; }
.scn-shipmaster-addresses-hester .figure-hester { position: absolute; bottom: 40%; left: 58%; width: 28px; height: 70px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: s2-hester 4s ease-in-out infinite; }
.scn-shipmaster-addresses-hester .crowd { position: absolute; bottom: 30%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, rgba(50,60,70,0.4) 0%, transparent 100%); mask-image: radial-gradient(circle at 50% 100%, black 0%, transparent 70%); -webkit-mask-image: radial-gradient(circle at 50% 100%, black 0%, transparent 70%); animation: s2-crowd 10s ease-in-out infinite alternate; }
@keyframes s2-sky { 0% { opacity: 0.5 } 50% { opacity: 1 } 100% { opacity: 0.4 } }
@keyframes s2-shipmaster { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes s2-hester { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes s2-crowd { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

.scn-mariner-speaks {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 70%);
}
.scn-mariner-speaks .sky { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #5a6a7a 0%, transparent 100%); animation: s3-sky 20s ease-in-out infinite alternate; }
.scn-mariner-speaks .wall { position: absolute; bottom: 20%; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 10% 10% 0 0; }
.scn-mariner-speaks .figure-mariner { position: absolute; bottom: 40%; left: 30%; width: 30px; height: 70px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: s3-mariner 3s ease-in-out infinite; }
.scn-mariner-speaks .figure-hester { position: absolute; bottom: 40%; left: 60%; width: 28px; height: 68px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: s3-hester 3.5s ease-in-out infinite; }
.scn-mariner-speaks .lantern { position: absolute; bottom: 48%; left: 45%; width: 8px; height: 12px; background: radial-gradient(circle, #d8c8a0 0%, #a09070 70%); border-radius: 30%; box-shadow: 0 0 16px 4px rgba(200,180,140,0.6); animation: s3-lantern 2s ease-in-out infinite alternate; }
.scn-mariner-speaks .ship-mast { position: absolute; bottom: 30%; left: 15%; width: 6px; height: 120px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 2px; animation: s3-mast 8s ease-in-out infinite; }
@keyframes s3-sky { 0% { opacity: 0.4 } 50% { opacity: 0.8 } 100% { opacity: 0.3 } }
@keyframes s3-mariner { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes s3-hester { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-3px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes s3-lantern { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(0.95) } }
@keyframes s3-mast { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-5px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }

.scn-hester-alarmed {
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 70%);
}
.scn-hester-alarmed .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a5a6a 0%, transparent 100%); animation: s4-sky 12s ease-in-out infinite alternate; }
.scn-hester-alarmed .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); }
.scn-hester-alarmed .figure-hester { position: absolute; bottom: 40%; left: 40%; width: 28px; height: 68px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: s4-hester 4s ease-in-out infinite; }
.scn-hester-alarmed .figure-shipmaster { position: absolute; bottom: 40%; left: 55%; width: 30px; height: 70px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: s4-shipmaster 4.5s ease-in-out infinite; }
.scn-hester-alarmed .figure-chillingworth { position: absolute; bottom: 38%; left: 70%; width: 26px; height: 72px; background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: s4-chillingworth 5s ease-in-out infinite; }
.scn-hester-alarmed .shadow { position: absolute; bottom: 28%; left: 68%; width: 50px; height: 40px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%); filter: blur(6px); animation: s4-shadow 5s ease-in-out infinite alternate; }
.scn-hester-alarmed .dock-post { position: absolute; bottom: 30%; left: 20%; width: 10px; height: 60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20%; animation: s4-post 7s ease-in-out infinite; }
@keyframes s4-sky { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.2 } }
@keyframes s4-hester { 0% { transform: translateY(0) rotate(3deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-3px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes s4-shipmaster { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes s4-chillingworth { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-4px) rotate(2deg) } 50% { transform: translateX(-8px) rotate(0) } 75% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes s4-shadow { 0% { transform: translateX(0) scale(1) opacity(0.6) } 50% { transform: translateX(-10px) scale(1.2) opacity(0.8) } 100% { transform: translateX(0) scale(1) opacity(0.4) } }
@keyframes s4-post { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }

.scn-portico-and-eagle {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-portico-and-eagle .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0a060 0%, #304060 100%); animation: pe-sky 20s ease-in-out infinite alternate; }
.scn-portico-and-eagle .building { position:absolute; bottom:10%; left:20%; right:20%; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); }
.scn-portico-and-eagle .pillar-left { position:absolute; bottom:13%; left:31%; width:6%; height:55%; background: linear-gradient(180deg, #7a6040 0%, #4a3020 100%); border-radius: 8% / 4%; box-shadow: 4px 0 8px rgba(0,0,0,.5); }
.scn-portico-and-eagle .pillar-right { position:absolute; bottom:13%; right:31%; width:6%; height:55%; background: linear-gradient(180deg, #7a6040 0%, #4a3020 100%); border-radius: 8% / 4%; box-shadow: -4px 0 8px rgba(0,0,0,.5); }
.scn-portico-and-eagle .balcony { position:absolute; bottom:61%; left:26%; right:26%; height:4%; background: #3a2a1a; border-radius: 2px; box-shadow: 0 -2px 6px rgba(0,0,0,.4); }
.scn-portico-and-eagle .steps { position:absolute; bottom:0; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 0 0 8px 8px; }
.scn-portico-and-eagle .eagle { position:absolute; top:5%; left:50%; width:20%; height:25%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 4px rgba(192,160,96,.3); animation: pe-eagle 12s ease-in-out infinite alternate; }
.scn-portico-and-eagle .shadow-vignette { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 80%); pointer-events: none; }
@keyframes pe-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes pe-eagle { 0% { transform: translateX(-50%) rotate(-2deg) scale(1); } 50% { transform: translateX(-50%) rotate(1deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(0deg) scale(.98); } }

.scn-pavement-grass-in-chinks {
  background: linear-gradient(180deg, #c4b89a 0%, #a09078 30%, #7a6a5a 100%), radial-gradient(ellipse at 70% 100%, #5a4a3a 0%, transparent 70%);
}
.scn-pavement-grass-in-chinks .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #d0c0a0 0%, #b0a888 100%); animation: pg-sky 18s ease-in-out infinite alternate; }
.scn-pavement-grass-in-chinks .building-wall { position:absolute; bottom:40%; left:60%; right:0; top:0; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 0 0 0 4px; box-shadow: -8px 0 12px rgba(0,0,0,.3); }
.scn-pavement-grass-in-chinks .pavement { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%); border-radius: 2px; box-shadow: inset 0 4px 8px rgba(0,0,0,.2); }
.scn-pavement-grass-in-chinks .grass-1 { position:absolute; bottom:20%; left:10%; width:8%; height:12%; background: linear-gradient(180deg, #7a9a4a 0%, #4a6a2a 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; transform: scaleX(.6) rotate(-10deg); animation: pg-grass 4s ease-in-out infinite alternate; }
.scn-pavement-grass-in-chinks .grass-2 { position:absolute; bottom:25%; left:35%; width:6%; height:15%; background: linear-gradient(180deg, #6a8a3a 0%, #3a5a1a 100%); border-radius: 0 0 40% 40% / 0 0 90% 90%; transform: scaleX(.7) rotate(8deg); animation: pg-grass 5s ease-in-out infinite alternate-reverse; }
.scn-pavement-grass-in-chinks .grass-3 { position:absolute; bottom:18%; left:55%; width:10%; height:10%; background: linear-gradient(180deg, #8aaa5a 0%, #5a7a3a 100%); border-radius: 0 0 60% 60% / 0 0 100% 100%; transform: scaleX(.5) rotate(-5deg); animation: pg-grass 3.5s ease-in-out infinite alternate; }
.scn-pavement-grass-in-chinks .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.15) 100%); }
@keyframes pg-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes pg-grass { 0% { transform: scaleX(.6) rotate(-10deg) translateY(0); } 50% { transform: scaleX(.6) rotate(-5deg) translateY(-2px); } 100% { transform: scaleX(.6) rotate(-10deg) translateY(0); } }

.scn-merchants-and-shipmasters {
  background: linear-gradient(180deg, #f0d8b0 0%, #d0a870 30%, #7a5a3a 100%), radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 70%);
}
.scn-merchants-and-shipmasters .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e8d0a0 0%, #b8a070 100%); animation: ms-sky 22s ease-in-out infinite alternate; }
.scn-merchants-and-shipmasters .harbor-bg { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; }
.scn-merchants-and-shipmasters .wharf { position:absolute; bottom:10%; left:0; right:40%; height:20%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 0 8px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.4); }
.scn-merchants-and-shipmasters .ship-hull { position:absolute; bottom:15%; left:50%; width:30%; height:18%; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0 / 80% 80% 0 0; transform: translateX(-50%); }
.scn-merchants-and-shipmasters .ship-sail { position:absolute; bottom:33%; left:50%; width:15%; height:25%; background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; transform: translateX(-50%); animation: ms-sail 15s ease-in-out infinite alternate; }
.scn-merchants-and-shipmasters .merchant-figure { position:absolute; bottom:5%; left:15%; width:8%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-figure 8s ease-in-out infinite alternate; }
.scn-merchants-and-shipmasters .water { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%); }
.scn-merchants-and-shipmasters .wave-1 { position:absolute; bottom:5%; left:0; width:100%; height:6%; background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,.2) 0%, transparent 60%); animation: ms-wave1 8s ease-in-out infinite; }
.scn-merchants-and-shipmasters .wave-2 { position:absolute; bottom:2%; left:0; width:100%; height:4%; background: radial-gradient(ellipse at 70% 50%, rgba(255,255,255,.15) 0%, transparent 60%); animation: ms-wave2 10s ease-in-out infinite reverse; }
@keyframes ms-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes ms-sail { 0% { transform: translateX(-50%) rotate(-2deg) scaleX(1); } 50% { transform: translateX(-50%) rotate(1deg) scaleX(1.02); } 100% { transform: translateX(-50%) rotate(0deg) scaleX(.98); } }
@keyframes ms-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ms-wave1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5%) scaleY(1.2); } 100% { transform: translateX(10%) scaleY(1); } }
@keyframes ms-wave2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-5%) scaleY(1.15); } 100% { transform: translateX(-10%) scaleY(1); } }

.scn-clerk-and-sailor-and-schooner-captains {
  background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 40%, #7a6a5a 100%), radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 70%);
}
.scn-clerk-and-sailor-and-schooner-captains .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d8c8a8 0%, #a89878 100%); animation: cs-sky 25s ease-in-out infinite alternate; }
.scn-clerk-and-sailor-and-schooner-captains .schooner { position:absolute; bottom:20%; left:55%; width:30%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 40% 40% 0 0 / 70% 70% 0 0; transform: translateX(-50%); }
.scn-clerk-and-sailor-and-schooner-captains .sail-fore { position:absolute; bottom:40%; left:57%; width:10%; height:20%; background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; transform: rotate(5deg); animation: cs-sail 16s ease-in-out infinite alternate; }
.scn-clerk-and-sailor-and-schooner-captains .sail-aft { position:absolute; bottom:38%; left:68%; width:8%; height:18%; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; transform: rotate(-3deg); animation: cs-sail 18s ease-in-out infinite alternate-reverse; }
.scn-clerk-and-sailor-and-schooner-captains .dock { position:absolute; bottom:5%; left:0; right:40%; height:15%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 0 4px 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,.3); }
.scn-clerk-and-sailor-and-schooner-captains .clerk { position:absolute; bottom:0; left:20%; width:7%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(.7); animation: cs-walk 6s ease-in-out infinite; }
.scn-clerk-and-sailor-and-schooner-captains .sailor { position:absolute; bottom:0; left:35%; width:8%; height:25%; background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(.8); animation: cs-stand 10s ease-in-out infinite alternate; }
.scn-clerk-and-sailor-and-schooner-captains .water { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%); }
.scn-clerk-and-sailor-and-schooner-captains .cloud { position:absolute; top:15%; left:70%; width:15%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); filter: blur(6px); animation: cs-cloud 40s linear infinite; }
@keyframes cs-sky { 0% { opacity:.75; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes cs-sail { 0% { transform: rotate(5deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.03); } 100% { transform: rotate(5deg) scaleX(.98); } }
@keyframes cs-walk { 0% { transform: scaleX(.7) translateX(0) translateY(0) rotate(-1deg); } 25% { transform: scaleX(.7) translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: scaleX(.7) translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: scaleX(.7) translateX(9px) translateY(-1px) rotate(1deg); } 100% { transform: scaleX(.7) translateX(12px) translateY(0) rotate(0); } }
@keyframes cs-stand { 0% { transform: scaleX(.8) translateY(0); } 50% { transform: scaleX(.8) translateY(-2px); } 100% { transform: scaleX(.8) translateY(0); } }
@keyframes cs-cloud { 0% { transform: translateX(-20px); } 100% { transform: translateX(50vw); } }

/* crown-of-martyrdom */
.scn-crown-of-martyrdom { background: linear-gradient(180deg, #1a1018 0%, #2a1a1c 40%, #3a2222 100%), radial-gradient(ellipse at 50% 70%, #4a2a26 0%, transparent 70%); }
.scn-crown-of-martyrdom .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0d080a 0%, transparent 60%); animation: cm-pulse 8s ease-in-out infinite alternate; }
.scn-crown-of-martyrdom .bg-warm { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 80%, rgba(180,120,60,.15) 0%, transparent 60%); }
.scn-crown-of-martyrdom .pedestal { position:absolute; bottom:0; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #4a3430 0%, #2a1c1a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-crown-of-martyrdom .figure { position:absolute; bottom:28%; left:50%; width:30px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; }
.scn-crown-of-martyrdom .crown { position:absolute; bottom:86%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: linear-gradient(135deg, #c8a060 0%, #a08040 50%, #806030 100%); clip-path: polygon(0 100%, 20% 0%, 35% 50%, 50% 0%, 65% 50%, 80% 0%, 100% 100%); box-shadow: 0 0 20px 6px rgba(200,160,96,.6); animation: cm-glow 3s ease-in-out infinite alternate; }
.scn-crown-of-martyrdom .halo { position:absolute; bottom:82%; left:50%; width:70px; height:70px; transform:translateX(-50%); background: radial-gradient(circle, rgba(220,180,120,.3) 0%, transparent 60%); border-radius:50%; filter: blur(4px); animation: cm-halo 5s ease-in-out infinite alternate; }
.scn-crown-of-martyrdom .ember-a { position:absolute; bottom:35%; left:30%; width:4px; height:4px; background:#d09050; border-radius:50%; box-shadow: 0 0 10px 2px #d09050; animation: cm-ember 2.5s ease-in-out infinite; }
.scn-crown-of-martyrdom .ember-b { position:absolute; bottom:40%; left:60%; width:3px; height:3px; background:#d09050; border-radius:50%; box-shadow: 0 0 8px 1px #d09050; animation: cm-ember 3.2s ease-in-out infinite 1s; }
@keyframes cm-pulse { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cm-glow { 0% { opacity:.7; transform:translateX(-50%) scale(.95) } 50% { opacity:1; transform:translateX(-50%) scale(1.05) } 100% { opacity:.8; transform:translateX(-50%) scale(1) } }
@keyframes cm-halo { 0% { opacity:.4; transform:translateX(-50%) scale(.9) } 50% { opacity:.8; transform:translateX(-50%) scale(1.1) } 100% { opacity:.5; transform:translateX(-50%) scale(1) } }
@keyframes cm-ember { 0% { transform:translateY(0) scale(1); opacity:1 } 50% { transform:translateY(-20px) scale(1.5); opacity:.6 } 100% { transform:translateY(-40px) scale(0); opacity:0 } }

/* headless-horseman */
.scn-headless-horseman { background: linear-gradient(180deg, #1a1a1a 0%, #2a2420 40%, #3a2e28 100%), radial-gradient(ellipse at 50% 80%, #4a3828 0%, transparent 60%); }
.scn-headless-horseman .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0d0d0d 0%, transparent 50%); animation: hh-dark 10s ease-in-out infinite alternate; }
.scn-headless-horseman .newspaper { position:absolute; top:10%; left:15%; width:70%; height:30%; background: linear-gradient(135deg, #d8d0c0 0%, #b8b0a0 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform:rotate(-2deg); animation: hh-news 12s ease-in-out infinite; }
.scn-headless-horseman .frame { position:absolute; top:8%; left:13%; width:74%; height:34%; border:6px solid #6a5a4a; border-radius:4px; box-shadow: inset 0 0 12px rgba(0,0,0,.3); pointer-events:none; }
.scn-headless-horseman .figure { position:absolute; bottom:30%; left:20%; width:24px; height:60px; background: linear-gradient(180deg, #3a2e28 0%, #1a1410 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hh-run 0.8s steps(2) infinite; }
.scn-headless-horseman .hat { position:absolute; bottom:78%; left:20%; width:30px; height:12px; background:#2a1a10; border-radius:40% 40% 0 0; transform:translateX(-3px); animation: hh-run 0.8s steps(2) infinite; }
.scn-headless-horseman .lantern { position:absolute; bottom:50%; left:45%; width:10px; height:14px; background: radial-gradient(circle, #f0c060 0%, #c08840 70%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 20px 6px #e0b050; animation: hh-swing 2s ease-in-out infinite alternate; }
.scn-headless-horseman .print-blur { position:absolute; top:10%; left:15%; width:70%; height:30%; background: linear-gradient(180deg, rgba(180,170,150,.3) 0%, transparent 100%); filter: blur(6px); animation: hh-blur 4s ease-in-out infinite; }
@keyframes hh-dark { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hh-news { 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(-1deg) translateY(-2px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes hh-run { 0% { transform:translateY(0) rotate(-3deg) } 50% { transform:translateY(-4px) rotate(3deg) } 100% { transform:translateY(0) rotate(-3deg) } }
@keyframes hh-swing { 0% { transform:rotate(-8deg) } 50% { transform:rotate(8deg) } 100% { transform:rotate(-6deg) } }
@keyframes hh-blur { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

/* pue-lucubrations-revived */
.scn-pue-lucubrations-revived { background: linear-gradient(180deg, #1e1814 0%, #2a201c 40%, #3a2a22 100%), radial-gradient(ellipse at 50% 60%, #3a2820 0%, transparent 70%); }
.scn-pue-lucubrations-revived .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #0d0a08 0%, transparent 50%); animation: pl-wall 12s ease-in-out infinite alternate; }
.scn-pue-lucubrations-revived .shelf { position:absolute; bottom:50%; left:10%; right:10%; height:8px; background: linear-gradient(180deg, #6a5040 0%, #4a3428 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-pue-lucubrations-revived .desk { position:absolute; bottom:20%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border-radius:6px 6px 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.4); }
.scn-pue-lucubrations-revived .book { position:absolute; bottom:50%; left:35%; width:40px; height:30px; background: linear-gradient(135deg, #7a6050 0%, #5a4838 100%); border-radius:2px; transform:skewX(-10deg); box-shadow: 4px 4px 8px rgba(0,0,0,.5); animation: pl-book 6s ease-in-out infinite; }
.scn-pue-lucubrations-revived .candle { position:absolute; bottom:55%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 100%); border-radius:4px 4px 2px 2px; box-shadow: 0 0 6px rgba(0,0,0,.3); }
.scn-pue-lucubrations-revived .flame { position:absolute; bottom:82%; left:55%; width:6px; height:12px; background: radial-gradient(circle, #f0e0b0 0%, #e0a060 60%); border-radius:50%; filter: blur(2px); box-shadow: 0 0 20px 8px #d09050; animation: pl-flame 2.5s ease-in-out infinite alternate; }
.scn-pue-lucubrations-revived .quill { position:absolute; bottom:55%; left:60%; width:3px; height:24px; background: linear-gradient(180deg, #a08060 0%, #605040 100%); border-radius:1px; transform:rotate(15deg); transform-origin: bottom; animation: pl-quill 4s ease-in-out infinite; }
@keyframes pl-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pl-book { 0% { transform:skewX(-10deg) translateY(0) } 50% { transform:skewX(-8deg) translateY(-2px) } 100% { transform:skewX(-10deg) translateY(0) } }
@keyframes pl-flame { 0% { opacity:.8; transform:scaleY(.9) } 50% { opacity:1; transform:scaleY(1.2) } 100% { opacity:.9; transform:scaleY(1) } }
@keyframes pl-quill { 0% { transform:rotate(15deg) } 50% { transform:rotate(10deg) } 100% { transform:rotate(15deg) } }

/* revolution-in-mind */
.scn-revolution-in-mind { background: linear-gradient(180deg, #14181a 0%, #1e2428 40%, #2a3034 100%), radial-gradient(ellipse at 50% 80%, #2a3438 0%, transparent 70%); }
.scn-revolution-in-mind .bg-storm { position:absolute; inset:0; background: linear-gradient(180deg, #0d0e10 0%, transparent 60%); animation: rm-storm 15s ease-in-out infinite alternate; }
.scn-revolution-in-mind .window { position:absolute; top:10%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #1a2024 0%, #2a3036 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); border:4px solid #3a4044; }
.scn-revolution-in-mind .desk { position:absolute; bottom:20%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #3a3230 0%, #2a2420 100%); border-radius:8px 8px 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-revolution-in-mind .figure { position:absolute; bottom:35%; left:38%; width:24px; height:50px; background: linear-gradient(180deg, #1a1c1e 0%, #0e1012 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rm-sway 4s ease-in-out infinite; }
.scn-revolution-in-mind .lamp { position:absolute; bottom:55%; left:60%; width:12px; height:20px; background: linear-gradient(180deg, #b09870 0%, #8a7a60 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 6px rgba(0,0,0,.4); }
.scn-revolution-in-mind .glow { position:absolute; bottom:55%; left:60%; width:50px; height:50px; background: radial-gradient(circle, rgba(200,180,140,.25) 0%, transparent 60%); transform:translate(-50%, -50%); border-radius:50%; filter: blur(8px); animation: rm-glow 3s ease-in-out infinite alternate; }
.scn-revolution-in-mind .paper { position:absolute; bottom:28%; left:30%; width:30px; height:8px; background: linear-gradient(135deg, #d8d0c0 0%, #b8b0a0 100%); border-radius:1px; transform:rotate(-5deg); box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: rm-paper 5s ease-in-out infinite; }
@keyframes rm-storm { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes rm-sway { 0% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-2deg) } }
@keyframes rm-glow { 0% { opacity:.6; transform:translate(-50%, -50%) scale(.9) } 50% { opacity:1; transform:translate(-50%, -50%) scale(1.1) } 100% { opacity:.7; transform:translate(-50%, -50%) scale(1) } }
@keyframes rm-paper { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-1px) } 100% { transform:rotate(-5deg) translateY(0) } }

.scn-chillingworth-horror-self {
  background: linear-gradient(135deg, #b58d6f 0%, #7a5c3f 40%, #3a2a1a 100%), radial-gradient(ellipse at 70% 20%, #e6cba8 0%, transparent 60%);
}
.scn-chillingworth-horror-self .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c8a882 0%, #4a3520 100%); opacity: 0.6;
  animation: chs-wall 12s ease-in-out infinite alternate;
}
.scn-chillingworth-horror-self .mirror-frame {
  position: absolute; top: 20%; left: 50%; width: 120px; height: 160px; transform: translateX(-50%) rotate(2deg);
  background: linear-gradient(180deg, #5a3f2a 0%, #2a1a0e 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 8px 24px rgba(0,0,0,0.6);
  animation: chs-frame 5s ease-in-out infinite;
}
.scn-chillingworth-horror-self .mirror-glass {
  position: absolute; top: 23%; left: 52%; width: 106px; height: 146px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #bfd0c0 0%, #7a8a7a 60%, #4a5a4a 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  animation: chs-glass 3s ease-in-out infinite alternate;
}
.scn-chillingworth-horror-self .figure {
  position: absolute; bottom: 20%; left: 45%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: chs-figure 4s ease-in-out infinite;
}
.scn-chillingworth-horror-self .reflection {
  position: absolute; top: 28%; left: 50%; width: 100px; height: 130px; transform: translateX(-50%) scaleX(-1);
  background: linear-gradient(180deg, rgba(20,15,10,0.9) 0%, rgba(10,8,5,0.7) 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; filter: blur(1px);
  animation: chs-reflect 4s ease-in-out infinite;
}
.scn-chillingworth-horror-self .shadow {
  position: absolute; bottom: 15%; left: 35%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: chs-shadow 5s ease-in-out infinite;
}
.scn-chillingworth-horror-self .candle {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8d0a0 0%, #a08050 100%); border-radius: 2px;
  animation: chs-candle 3s ease-in-out infinite alternate;
}
@keyframes chs-wall { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes chs-frame { 0% { transform: translateX(-50%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes chs-glass { 0% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 40px rgba(0,0,0,0.5); } 100% { opacity: 0.85; box-shadow: inset 0 0 25px rgba(0,0,0,0.35); } }
@keyframes chs-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes chs-reflect { 0% { opacity: 0.5; transform: translateX(-50%) scaleX(-1) scale(0.95); } 50% { opacity: 0.8; transform: translateX(-50%) scaleX(-1) scale(1.05); } 100% { opacity: 0.6; transform: translateX(-50%) scaleX(-1) scale(0.98); } }
@keyframes chs-shadow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes chs-candle { 0% { opacity: 0.7; filter: blur(0); } 50% { opacity: 1; filter: blur(1px); } 100% { opacity: 0.8; filter: blur(0); } }

.scn-hester-plea-for-mercy {
  background: linear-gradient(180deg, #dabf8e 0%, #b89870 30%, #8a6a4a 60%, #4a2a1a 100%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 70%);
}
.scn-hester-plea-for-mercy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a5035 0%, #3a2515 100%); border-radius: 30% 20% 0 0 / 100% 50% 0 0;
  animation: hpm-ground 8s ease-in-out infinite alternate;
}
.scn-hester-plea-for-mercy .fig-hester {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5e3a20 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpm-hester 3s ease-in-out infinite;
}
.scn-hester-plea-for-mercy .fig-chillingworth {
  position: absolute; bottom: 30%; right: 30%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hpm-chill 3.5s ease-in-out infinite;
}
.scn-hester-plea-for-mercy .cloak-hester {
  position: absolute; bottom: 32%; left: 26%; width: 50px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: hpm-cloak-h 4s ease-in-out infinite;
}
.scn-hester-plea-for-mercy .cloak-chillingworth {
  position: absolute; bottom: 32%; right: 26%; width: 55px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: hpm-cloak-c 4.5s ease-in-out infinite;
}
.scn-hester-plea-for-mercy .dust-motes {
  position: absolute; inset: 0; background: radial-gradient(circle at 70% 20%, rgba(255,230,180,0.3) 0%, transparent 50%);
  animation: hpm-dust 20s linear infinite;
}
.scn-hester-plea-for-mercy .sun-ray {
  position: absolute; top: 10%; left: 20%; width: 200px; height: 8px;
  background: linear-gradient(90deg, rgba(255,220,160,0.4) 0%, transparent 100%);
  transform: rotate(20deg); filter: blur(4px);
  animation: hpm-ray 6s ease-in-out infinite alternate;
}
@keyframes hpm-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hpm-hester { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hpm-chill { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hpm-cloak-h { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes hpm-cloak-c { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes hpm-dust { 0% { transform: translateY(0); opacity: 0; } 20% { opacity: 0.3; } 80% { opacity: 0.2; } 100% { transform: translateY(-10px); opacity: 0; } }
@keyframes hpm-ray { 0% { opacity: 0.3; transform: rotate(18deg) scaleX(1); } 50% { opacity: 0.6; transform: rotate(22deg) scaleX(1.2); } 100% { opacity: 0.4; transform: rotate(20deg) scaleX(1); } }

.scn-former-life-recall {
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 40%, #3a2515 100%), radial-gradient(ellipse at 50% 80%, #d0b090 0%, transparent 60%);
}
.scn-former-life-recall .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c8a882 0%, #4a3520 100%); opacity: 0.4;
  animation: flr-bg 15s ease-in-out infinite alternate;
}
.scn-former-life-recall .desk {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 10px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3f2a 0%, #2a1a0e 100%); border-radius: 2px;
  animation: flr-desk 6s ease-in-out infinite;
}
.scn-former-life-recall .book-stack {
  position: absolute; bottom: 24%; left: 42%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: flr-books 4s ease-in-out infinite alternate;
}
.scn-former-life-recall .lantern {
  position: absolute; bottom: 32%; left: 48%; width: 10px; height: 20px;
  background: radial-gradient(circle, #ecc670 0%, #b08840 70%); border-radius: 4px;
  box-shadow: 0 0 20px 6px #ecc670, 0 0 40px 12px rgba(236,198,112,0.4);
  animation: flr-lantern 3s ease-in-out infinite alternate;
}
.scn-former-life-recall .chair {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2515 0%, #1a0e06 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  animation: flr-chair 8s ease-in-out infinite;
}
.scn-former-life-recall .window-light {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,180,0.4) 0%, transparent 70%);
  border-radius: 4px; filter: blur(10px);
  animation: flr-window 10s ease-in-out infinite alternate;
}
.scn-former-life-recall .shadow-pool {
  position: absolute; bottom: 10%; left: 30%; width: 200px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: flr-shadow 12s ease-in-out infinite;
}
@keyframes flr-bg { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }
@keyframes flr-desk { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes flr-books { 0% { height: 18px; } 50% { height: 22px; } 100% { height: 19px; } }
@keyframes flr-lantern { 0% { box-shadow: 0 0 15px 4px #b08840, 0 0 30px 8px rgba(176,136,64,0.3); } 50% { box-shadow: 0 0 25px 8px #ecc670, 0 0 50px 15px rgba(236,198,112,0.5); } 100% { box-shadow: 0 0 18px 5px #b08840, 0 0 35px 10px rgba(176,136,64,0.35); } }
@keyframes flr-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes flr-window { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes flr-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(1); } }

.scn-confirmation {
  background: linear-gradient(180deg, #dabf8e 0%, #b89870 40%, #7a5a3a 80%, #2a1a0e 100%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 60%);
}
.scn-confirmation .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #e6d8b8 0%, #c8a882 100%);
  animation: conf-sky 20s ease-in-out infinite alternate;
}
.scn-confirmation .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: conf-hills 18s ease-in-out infinite alternate;
}
.scn-confirmation .fig-hester {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #5e3a20 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: conf-hester 3s ease-in-out infinite;
}
.scn-confirmation .fig-chillingworth {
  position: absolute; bottom: 20%; right: 35%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: conf-chill 3.5s ease-in-out infinite;
}
.scn-confirmation .arm-outstretched {
  position: absolute; bottom: 50%; left: 30%; width: 40px; height: 4px;
  background: linear-gradient(90deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 2px;
  transform-origin: bottom left;
  animation: conf-arm 4s ease-in-out infinite;
}
.scn-confirmation .shadow-long {
  position: absolute; bottom: 10%; left: 20%; width: 200px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: conf-shadow 15s linear infinite;
}
.scn-confirmation .dust-swirl {
  position: absolute; inset: 0; background: radial-gradient(circle at 60% 30%, rgba(255,230,180,0.2) 0%, transparent 50%);
  animation: conf-dust 25s linear infinite;
}
.scn-confirmation .sunburst {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 120px; transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 70%);
  filter: blur(20px);
  animation: conf-sunburst 8s ease-in-out infinite alternate;
}
@keyframes conf-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes conf-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes conf-hester { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes conf-chill { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes conf-arm { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes conf-shadow { 0% { transform: translateX(0); opacity: 0.4; } 50% { transform: translateX(10px); opacity: 0.6; } 100% { transform: translateX(0); opacity: 0.4; } }
@keyframes conf-dust { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes conf-sunburst { 0% { opacity: 0.3; transform: translateX(-50%) scale(1); } 50% { opacity: 0.5; transform: translateX(-50%) scale(1.2); } 100% { opacity: 0.4; transform: translateX(-50%) scale(1); } }

.scn-world-law-no-law {
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 40%, #0f3460 70%, #533483 100%), radial-gradient(ellipse at 30% 50%, #0f3460 0%, transparent 60%);
  background-blend-mode: normal;
}
.scn-world-law-no-law .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #1a1a2e 0%, #16213e 80%, transparent 100%); }
.scn-world-law-no-law .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2e 100%); border-radius: 5% 5% 0 0; }
.scn-world-law-no-law .desk { position:absolute; bottom:30%; left:50%; width:180px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-world-law-no-law .book-stack { position:absolute; bottom:38%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:2px; box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: wln-float 8s ease-in-out infinite; }
.scn-world-law-no-law .figure { position:absolute; bottom:30%; left:48%; width:28px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: wln-walk 10s ease-in-out infinite; }
.scn-world-law-no-law .candle { position:absolute; bottom:45%; left:52%; width:10px; height:24px; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 3px 3px 2px 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-world-law-no-law .flame { position:absolute; bottom:62%; left:51.5%; width:6px; height:16px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #ff8c00 70%, transparent 100%); border-radius:50%; filter: blur(1px); animation: wln-flicker 2s ease-in-out infinite alternate; }
.scn-world-law-no-law .window { position:absolute; top:20%; right:15%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 30%, #2a4a6a 0%, #0f3460 80%); border: 4px solid #2a2a3a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-world-law-no-law .moon-beam { position:absolute; top:20%; right:15%; width:80px; height:100px; background: linear-gradient(180deg, rgba(200,220,255,.15) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: wln-beam 12s ease-in-out infinite alternate; }

@keyframes wln-float { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes wln-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-2deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes wln-flicker { 0% { transform: scaleY(1) translateY(0); opacity:.8 } 25% { transform: scaleY(1.1) translateY(-1px); opacity:.9 } 50% { transform: scaleY(.95) translateY(1px); opacity:1 } 75% { transform: scaleY(1.05) translateY(-1px); opacity:.85 } 100% { transform: scaleY(1) translateY(0); opacity:.9 } }
@keyframes wln-beam { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-hester-imbibed-spirit {
  background: linear-gradient(180deg, #1c1c2e 0%, #2a1a2e 30%, #3a1a2e 60%, #2a0a1a 100%), radial-gradient(ellipse at 70% 40%, #3a1a2e 0%, transparent 70%);
}
.scn-hester-imbibed-spirit .bg-room { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1c1c2e 0%, #2a1a2e 100%); }
.scn-hester-imbibed-spirit .window { position:absolute; top:15%; left:10%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 30%, #4a3a5e 0%, #2a1a2e 80%); border: 4px solid #3a2a3a; border-radius:3px; box-shadow: inset 0 0 30px #2a1a2e; }
.scn-hester-imbibed-spirit .figure { position:absolute; bottom:30%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: his-turn 20s ease-in-out infinite; }
.scn-hester-imbibed-spirit .letter { position:absolute; bottom:48%; left:43%; width:12px; height:16px; background: #5e1a1d; border-radius:2px; transform:rotate(10deg); animation: his-glow 3s ease-in-out infinite alternate; }
.scn-hester-imbibed-spirit .lamp { position:absolute; top:30%; right:20%; width:14px; height:30px; background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 2px 8px rgba(0,0,0,.6); }
.scn-hester-imbibed-spirit .lamp-glow { position:absolute; top:28%; right:18%; width:40px; height:40px; background: radial-gradient(circle, #e0c080 0%, transparent 70%); border-radius:50%; filter: blur(6px); animation: his-pulse 4s ease-in-out infinite alternate; }
.scn-hester-imbibed-spirit .shadow { position:absolute; bottom:0; left:20%; width:100px; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0a1a 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); opacity:.6; animation: his-shadow 8s ease-in-out infinite; }

@keyframes his-turn { 0% { transform: scaleX(1) } 25% { transform: scaleX(.9) } 50% { transform: scaleX(1) } 75% { transform: scaleX(.95) } 100% { transform: scaleX(1) } }
@keyframes his-glow { 0% { box-shadow: 0 0 4px 2px #702243; opacity:.7 } 50% { box-shadow: 0 0 12px 6px #702243; opacity:1 } 100% { box-shadow: 0 0 6px 3px #702243; opacity:.8 } }
@keyframes his-pulse { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.5; transform: scale(1) } }
@keyframes his-shadow { 0% { opacity:.4; transform: translateX(0) } 50% { opacity:.7; transform: translateX(10px) } 100% { opacity:.5; transform: translateX(0) } }

.scn-bold-speculation-quiet-conformity {
  background: linear-gradient(180deg, #2a2a1a 0%, #4a3a2a 30%, #5a4a3a 60%, #3a2a1a 100%), radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 80%);
}
.scn-bold-speculation-quiet-conformity .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 100%); }
.scn-bold-speculation-quiet-conformity .desk { position:absolute; bottom:30%; left:50%; width:160px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:3px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-bold-speculation-quiet-conformity .book-open { position:absolute; bottom:34%; left:44%; width:60px; height:40px; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius:4px; transform: perspective(200px) rotateX(10deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: bsq-turn 30s ease-in-out infinite; }
.scn-bold-speculation-quiet-conformity .pen { position:absolute; bottom:38%; left:48%; width:4px; height:20px; background: linear-gradient(180deg, #d0c0b0 0%, #a09080 100%); transform:rotate(30deg); border-radius:2px; }
.scn-bold-speculation-quiet-conformity .figure { position:absolute; bottom:30%; left:45%; width:30px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bsq-sway 15s ease-in-out infinite; }
.scn-bold-speculation-quiet-conformity .lamp { position:absolute; top:25%; left:50%; width:12px; height:28px; background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-bold-speculation-quiet-conformity .lamp-glow { position:absolute; top:22%; left:48%; width:60px; height:60px; background: radial-gradient(circle, #e0c080 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: bsq-soft 6s ease-in-out infinite alternate; }
.scn-bold-speculation-quiet-conformity .curtain { position:absolute; top:0; left:80%; width:50px; height:100%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); opacity:.6; animation: bsq-drape 20s ease-in-out infinite; }

@keyframes bsq-turn { 0%,100% { transform: perspective(200px) rotateX(10deg) translateY(0) } 50% { transform: perspective(200px) rotateX(12deg) translateY(-2px) } }
@keyframes bsq-sway { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes bsq-soft { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(1) } }
@keyframes bsq-drape { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

.scn-possible-prophetess {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 30%, #3a2a4e 60%, #1a1a2e 100%), radial-gradient(ellipse at 50% 70%, #4a3a5e 0%, transparent 80%);
}
.scn-possible-prophetess .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 100%); }
.scn-possible-prophetess .halo { position:absolute; top:25%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #e0c080 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: ppr-halo 6s ease-in-out infinite alternate; }
.scn-possible-prophetess .figure-profile { position:absolute; bottom:25%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%; transform-origin: bottom center; animation: ppr-pray 12s ease-in-out infinite; }
.scn-possible-prophetess .scroll { position:absolute; bottom:35%; left:52%; width:8px; height:30px; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius:3px; transform:rotate(-15deg); animation: ppr-unroll 20s ease-in-out infinite; }
.scn-possible-prophetess .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a2e 0%, #1a1a2e 100%); border-radius: 10% 10% 0 0; }
.scn-possible-prophetess .light-ray { position:absolute; top:10%; left:40%; width:3px; height:90%; background: linear-gradient(180deg, rgba(255,220,180,.15) 0%, transparent 100%); transform:skewX(-15deg); animation: ppr-ray 8s ease-in-out infinite alternate; }
.scn-possible-prophetess .light-ray-2 { position:absolute; top:15%; left:60%; width:3px; height:85%; background: linear-gradient(180deg, rgba(255,220,180,.1) 0%, transparent 100%); transform:skewX(10deg); animation: ppr-ray2 12s ease-in-out infinite alternate; }

@keyframes ppr-halo { 0% { opacity:.5; transform: translateX(-50%) scale(1) } 50% { opacity:.9; transform: translateX(-50%) scale(1.1) } 100% { opacity:.6; transform: translateX(-50%) scale(1) } }
@keyframes ppr-pray { 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 ppr-unroll { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(-12deg) scaleY(1.1) } 100% { transform: rotate(-15deg) scaleY(1) } }
@keyframes ppr-ray { 0% { opacity:.2; transform: skewX(-15deg) translateY(0) } 50% { opacity:.5; transform: skewX(-15deg) translateY(-5px) } 100% { opacity:.3; transform: skewX(-15deg) translateY(0) } }
@keyframes ppr-ray2 { 0% { opacity:.2; transform: skewX(10deg) translateY(0) } 50% { opacity:.4; transform: skewX(10deg) translateY(-3px) } 100% { opacity:.3; transform: skewX(10deg) translateY(0) } }

/* Scene 1: chillingworth-bequeaths-to-pearl */
.scn-chillingworth-bequeaths-to-pearl {
  background: linear-gradient(180deg, #f2e6c4 0%, #d9c28a 50%, #b59a6a 100%),
              radial-gradient(ellipse at 70% 60%, rgba(255,230,180,0.5) 0%, transparent 60%);
}
.scn-chillingworth-bequeaths-to-pearl .bg-sunlit {
  position: absolute; inset: 0; background: linear-gradient(135deg, #fce8c0 0%, #ead4a0 50%, #cab585 100%);
  animation: ch1-glow 12s ease-in-out infinite alternate;
}
.scn-chillingworth-bequeaths-to-pearl .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #b58a5a 0%, #8c6a3c 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: ch1-table 8s ease-in-out infinite;
}
.scn-chillingworth-bequeaths-to-pearl .chest {
  position: absolute; bottom: 28%; left: 38%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #7a4a1a 0%, #4a2a0a 100%);
  border-radius: 6px 6px 4px 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: ch1-chest 6s ease-in-out infinite alternate;
}
.scn-chillingworth-bequeaths-to-pearl .scroll {
  position: absolute; bottom: 34%; left: 45%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #f5e0b0 0%, #d4b87a 100%);
  border-radius: 20% 20% 10% 10%; transform: rotate(-15deg);
  animation: ch1-scroll 10s ease-in-out infinite;
}
.scn-chillingworth-bequeaths-to-pearl .figure-chillingworth {
  position: absolute; bottom: 18%; left: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ch1-figure1 5s ease-in-out infinite;
}
.scn-chillingworth-bequeaths-to-pearl .figure-pearl {
  position: absolute; bottom: 18%; left: 60%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #b08050 0%, #6a4020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ch1-figure2 7s ease-in-out infinite alternate;
}
.scn-chillingworth-bequeaths-to-pearl .glow-ambient {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,230,180,0.3) 0%, transparent 70%);
  filter: blur(10px); animation: ch1-ambient 15s ease-in-out infinite;
}
@keyframes ch1-glow { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ch1-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ch1-chest { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes ch1-scroll { 0%,100% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-13deg) translateX(4px); } }
@keyframes ch1-figure1 { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ch1-figure2 { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes ch1-ambient { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(0.9); } }

/* Scene 2: pearl-heiress-disappears */
.scn-pearl-heiress-disappears {
  background: linear-gradient(180deg, #e2d4b0 0%, #c4b08a 40%, #a69070 100%),
              radial-gradient(ellipse at 50% 80%, #f4e8c8 0%, transparent 80%);
}
.scn-pearl-heiress-disappears .bg-interior {
  position: absolute; inset: 0; background: linear-gradient(135deg, #d9c8a0 0%, #b8a078 50%, #9a805a 100%);
  animation: pe2-fade 20s ease-in-out infinite alternate;
}
.scn-pearl-heiress-disappears .doorway {
  position: absolute; bottom: 10%; left: 40%; width: 50px; height: 90px;
  background: #5a402a; border-radius: 8px 8px 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.4);
  animation: pe2-door 12s ease-in-out infinite;
}
.scn-pearl-heiress-disappears .roof-beam {
  position: absolute; top: 15%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, #4a3020, #6a4a32, #4a3020);
  animation: pe2-beam 18s ease-in-out infinite alternate;
}
.scn-pearl-heiress-disappears .figure-mother-silhouette {
  position: absolute; bottom: 12%; left: 38%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center; animation: pe2-mother 8s ease-in-out infinite;
}
.scn-pearl-heiress-disappears .figure-child-silhouette {
  position: absolute; bottom: 14%; left: 44%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: pe2-child 7s ease-in-out infinite alternate;
}
.scn-pearl-heiress-disappears .dust-motes {
  position: absolute; top: 20%; left: 10%; right: 10%; height: 60%;
  background: radial-gradient(circle at 20% 30%, rgba(255,240,200,0.15) 0%, transparent 40%),
              radial-gradient(circle at 70% 60%, rgba(255,240,200,0.1) 0%, transparent 50%);
  filter: blur(4px); animation: pe2-dust 30s linear infinite;
}
@keyframes pe2-fade { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pe2-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes pe2-beam { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(2px); } }
@keyframes pe2-mother { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pe2-child { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(4px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes pe2-dust { 0% { background-position: 0% 0%; } 50% { background-position: 50% 10%; } 100% { background-position: 100% 0%; } }

/* Scene 3: legend-grows */
.scn-legend-grows {
  background: linear-gradient(180deg, #8cb3d9 0%, #b0c4de 30%, #d9c4a0 70%, #c2a878 100%),
              radial-gradient(ellipse at 40% 60%, rgba(255,230,180,0.3) 0%, transparent 70%);
}
.scn-legend-grows .bg-beach {
  position: absolute; inset: 0; background: linear-gradient(180deg, #a3c4db 0%, #d4c4a0 50%, #b8a070 100%);
  animation: le3-sky 15s ease-in-out infinite alternate;
}
.scn-legend-grows .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a9ab5 0%, #5a7a96 100%);
  animation: le3-sea 20s ease-in-out infinite;
}
.scn-legend-grows .driftwood {
  position: absolute; bottom: 32%; left: 20%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #6a4a2a, #4a2a0a, #6a4a2a);
  border-radius: 40% 60% 30% 50%; transform: rotate(-10deg);
  animation: le3-wood 9s ease-in-out infinite alternate;
}
.scn-legend-grows .initials {
  position: absolute; bottom: 33%; left: 22%; width: 12px; height: 6px;
  background: #4a3a2a; border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: le3-init 6s ease-in-out infinite;
}
.scn-legend-grows .wave-foam {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 6px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.5) 30%, transparent 100%);
  filter: blur(2px); animation: le3-foam 5s ease-in-out infinite;
}
.scn-legend-grows .rock {
  position: absolute; bottom: 28%; right: 15%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20%; animation: le3-rock 14s ease-in-out infinite;
}
.scn-legend-grows .gull {
  position: absolute; top: 20%; left: 50%; width: 20px; height: 8px;
  background: radial-gradient(circle at 20% 50%, #aaa, transparent 80%);
  border-radius: 50%; filter: blur(1px); animation: le3-gull 25s linear infinite;
}
@keyframes le3-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes le3-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes le3-wood { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-7deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes le3-init { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes le3-foam { 0% { opacity: 0.3; } 50% { opacity: 0.7; transform: translateX(10px); } 100% { opacity: 0.3; transform: translateX(0); } }
@keyframes le3-rock { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(1); } }
@keyframes le3-gull { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

/* Scene 4: hester-returns-cottage */
.scn-hester-returns-cottage {
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 40%, #9a8a6a 100%),
              radial-gradient(ellipse at 30% 70%, rgba(255,200,150,0.2) 0%, transparent 60%);
}
.scn-hester-returns-cottage .bg-forest {
  position: absolute; inset: 0; background: linear-gradient(135deg, #a6b88a 0%, #7a8a5a 50%, #5a6a3a 100%);
  animation: he4-forest 18s ease-in-out infinite alternate;
}
.scn-hester-returns-cottage .cottage-wall {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 60%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 8px 8px 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: he4-wall 12s ease-in-out infinite;
}
.scn-hester-returns-cottage .door {
  position: absolute; bottom: 15%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 4px; box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: he4-door 8s ease-in-out infinite alternate;
}
.scn-hester-returns-cottage .figure-hester {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: he4-hester 10s ease-in-out infinite;
}
.scn-hester-returns-cottage .children-playing {
  position: absolute; bottom: 18%; left: 52%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: he4-child 6s ease-in-out infinite alternate;
}
.scn-hester-returns-cottage .weathered-wood {
  position: absolute; bottom: 30%; left: 28%; width: 6px; height: 30px;
  background: #5a4a2a; border-radius: 2px; box-shadow: 0 0 2px rgba(0,0,0,0.4);
  animation: he4-wood 14s ease-in-out infinite;
}
.scn-hester-returns-cottage .sun-shaft {
  position: absolute; top: 0%; left: 30%; width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, transparent 100%);
  filter: blur(8px); animation: he4-shaft 20s ease-in-out infinite;
}
@keyframes he4-forest { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes he4-wall { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes he4-door { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(0.98) rotate(1deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes he4-hester { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes he4-child { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes he4-wood { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes he4-shaft { 0% { opacity: 0.4; transform: translateX(-10px); } 50% { opacity: 0.7; transform: translateX(10px); } 100% { opacity: 0.4; transform: translateX(-10px); } }

/* Scene: posthumous-papers (dim interior) */
.scn-posthumous-papers {
  background: linear-gradient(180deg, #2a1f1a 0%, #1f1410 40%, #0f0a08 100%), radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 70%);
}
.scn-posthumous-papers .bg-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 60%, #1a1410 100%);
  animation: pp-wall 20s ease-in-out infinite alternate;
}
.scn-posthumous-papers .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.6);
  transform: perspective(400px) rotateX(5deg);
}
.scn-posthumous-papers .candle {
  position: absolute; bottom: 25%; left: 50%; width: 14px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d090 0%, #d0a060 40%, #8a6020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 24px 6px #d09040, 0 0 48px 12px rgba(208,144,64,.4);
  animation: pp-candle 4s ease-in-out infinite alternate;
}
.scn-posthumous-papers .papers {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 4%; box-shadow: 0 4px 8px rgba(0,0,0,.3);
  transform: rotate(-3deg);
  animation: pp-papers 6s ease-in-out infinite;
}
.scn-posthumous-papers .inkwell {
  position: absolute; bottom: 22%; left: 42%; width: 16px; height: 14px;
  background: radial-gradient(circle, #2a1a10 0%, #0f0804 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-posthumous-papers .figure {
  position: absolute; bottom: 15%; left: 15%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pp-figure 8s ease-in-out infinite;
}
@keyframes pp-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes pp-candle { 0% { box-shadow: 0 0 20px 4px #d09040, 0 0 40px 8px rgba(208,144,64,.3); opacity: .9 } 50% { box-shadow: 0 0 30px 8px #e0a050, 0 0 60px 16px rgba(224,160,80,.5); opacity: 1 } 100% { box-shadow: 0 0 22px 5px #d09040, 0 0 44px 10px rgba(208,144,64,.35); opacity: .85 } }
@keyframes pp-papers { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } }
@keyframes pp-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 33% { transform: translateX(5px) translateY(-3px) rotate(1deg) } 66% { transform: translateX(2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }

/* Scene: customhouse-dream-behind (overcast dream) */
.scn-customhouse-dream-behind {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 70%);
}
.scn-customhouse-dream-behind .sky-overcast {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  animation: chd-sky 30s ease-in-out infinite alternate;
}
.scn-customhouse-dream-behind .building {
  position: absolute; bottom: 40%; left: 25%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.3);
  transform: scale(.95);
}
.scn-customhouse-dream-behind .building::before {
  content: ''; position: absolute; top: -20%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #6a7a8a 0%, transparent 100%);
  border-radius: 40% 40% 0 0;
}
.scn-customhouse-dream-behind .inspector {
  position: absolute; bottom: 42%; left: 35%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chd-inspector 5s ease-in-out infinite;
}
.scn-customhouse-dream-behind .horse {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 50% 30% 20% 10% / 60% 50% 40% 30%;
  transform-origin: bottom center;
  animation: chd-horse 3s ease-in-out infinite;
}
.scn-customhouse-dream-behind .mist-back {
  position: absolute; top: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(90,110,130,.5) 0%, transparent 100%);
  filter: blur(12px);
  animation: chd-mist-back 40s linear infinite alternate;
}
.scn-customhouse-dream-behind .mist-front {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(70,90,110,.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: chd-mist-front 50s linear infinite reverse;
}
@keyframes chd-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes chd-inspector { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-5px) rotate(1deg) } }
@keyframes chd-horse { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(8px) rotate(2deg) } 66% { transform: translateX(4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes chd-mist-back { 0% { transform: translateX(0) scale(1) } 100% { transform: translateX(80px) scale(1.1) } }
@keyframes chd-mist-front { 0% { transform: translateX(0) scale(1) } 100% { transform: translateX(-60px) scale(1.05) } }

/* Scene: salem-in-cloud-land (overcast mist) */
.scn-salem-in-cloud-land {
  background: linear-gradient(180deg, #8a9ab0 0%, #6a7a90 30%, #4a5a6a 100%), radial-gradient(ellipse at 50% 0%, #9aaa c0 0%, transparent 60%);
}
.scn-salem-in-cloud-land .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9aaa c0 0%, #8a9ab0 60%, transparent 100%);
  animation: sic-sky 25s ease-in-out infinite alternate;
}
.scn-salem-in-cloud-land .hills {
  position: absolute; bottom: 30%; left: -10%; right: -10%; height: 30%;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: sic-hills 15s ease-in-out infinite alternate;
}
.scn-salem-in-cloud-land .village {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-salem-in-cloud-land .village::before {
  content: ''; position: absolute; bottom: 100%; left: 20%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-salem-in-cloud-land .church-steeple {
  position: absolute; bottom: 50%; left: 50%; width: 10px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a9ab0 0%, #5a6a7a 100%);
  border-radius: 0 0 30% 30%;
}
.scn-salem-in-cloud-land .clouds-a {
  position: absolute; top: 10%; left: 10%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(180,200,220,.5) 0%, rgba(180,200,220,.1) 100%);
  border-radius: 50%; filter: blur(10px);
  animation: sic-cloud-a 50s linear infinite;
}
.scn-salem-in-cloud-land .clouds-b {
  position: absolute; top: 22%; right: 5%; width: 80px; height: 14px;
  background: linear-gradient(180deg, rgba(170,190,210,.4) 0%, rgba(170,190,210,.05) 100%);
  border-radius: 50%; filter: blur(7px);
  animation: sic-cloud-b 40s linear infinite reverse;
}
.scn-salem-in-cloud-land .mist-ground {
  position: absolute; bottom: 0; left: -20%; right: -20%; height: 20%;
  background: linear-gradient(0deg, rgba(150,170,190,.3) 0%, transparent 100%);
  filter: blur(15px);
  animation: sic-mist 30s ease-in-out infinite alternate;
}
@keyframes sic-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes sic-hills { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes sic-cloud-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(140vw) } }
@keyframes sic-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }
@keyframes sic-mist { 0% { opacity: .6; transform: scale(1) translateY(0) } 50% { opacity: .8; transform: scale(1.05) translateY(-2px) } 100% { opacity: .5; transform: scale(1) translateY(0) } }

/* Scene: no-regret-from-townspeople (overcast graveyard) */
.scn-no-regret-from-townspeople {
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 40%, #2a3a2a 100%), radial-gradient(ellipse at 50% 100%, #4a5a4a 0%, transparent 70%);
}
.scn-no-regret-from-townspeople .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%);
  animation: nrt-sky 20s ease-in-out infinite alternate;
}
.scn-no-regret-from-townspeople .ground {
  position: absolute; bottom: 0; left: -10%; right: -10%; height: 40%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-no-regret-from-townspeople .tombstone-a,
.scn-no-regret-from-townspeople .tombstone-b {
  position: absolute; bottom: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 4px 8px rgba(0,0,0,.3);
}
.scn-no-regret-from-townspeople .tombstone-a {
  left: 30%;
  animation: nrt-tomb-a 7s ease-in-out infinite;
}
.scn-no-regret-from-townspeople .tombstone-b {
  left: 55%;
  width: 18px; height: 28px;
  animation: nrt-tomb-b 9s ease-in-out infinite 2s;
}
.scn-no-regret-from-townspeople .tree {
  position: absolute; bottom: 28%; left: 20%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 40% 60% 20% 40% / 60% 80% 30% 40%;
  transform-origin: bottom center;
  animation: nrt-tree 12s ease-in-out infinite;
}
.scn-no-regret-from-townspeople .figure {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: nrt-figure 8s ease-in-out infinite;
}
.scn-no-regret-from-townspeople .fog {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, rgba(100,120,100,.3) 0%, transparent 100%);
  filter: blur(12px);
  animation: nrt-fog 35s ease-in-out infinite alternate;
}
@keyframes nrt-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes nrt-tomb-a { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes nrt-tomb-b { 0%,100% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes nrt-tree { 0%,100% { transform: scale(1) rotate(-1deg) } 50% { transform: scale(1.02) rotate(2deg) } }
@keyframes nrt-figure { 0% { transform: translateX(0) translateY(0) } 33% { transform: translateX(6px) translateY(-2px) } 66% { transform: translateX(3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes nrt-fog { 0% { opacity: .5; transform: translateX(0) } 50% { opacity: .7; transform: translateX(30px) } 100% { opacity: .4; transform: translateX(-20px) } }

/* crowd-sees-miracle */
.scn-crowd-sees-miracle {
  background: linear-gradient(180deg, #fde8c8 0%, #f5d0a0 30%, #d4a86a 60%, #8a5a38 100%),
              radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%);
}
.scn-crowd-sees-miracle .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffe8c0 0%, #f0c890 100%); animation: csm-sky 12s ease-in-out infinite alternate; }
.scn-crowd-sees-miracle .sun-glow { position:absolute; top:5%; left:50%; width:180px; height:180px; transform:translateX(-50%); background: radial-gradient(circle, #fff4d0 0%, #ffd080 40%, transparent 70%); animation: csm-glow 6s ease-in-out infinite alternate; }
.scn-crowd-sees-miracle .minister-figure { position:absolute; bottom:50%; left:50%; width:40px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; animation: csm-ascend 8s ease-in-out infinite; }
.scn-crowd-sees-miracle .minister-halo { position:absolute; bottom:55%; left:50%; width:70px; height:70px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,220,140,0.6) 0%, transparent 70%); animation: csm-halo 4s ease-in-out infinite alternate; }
.scn-crowd-sees-miracle .crowd-silhouettes { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 60% 60% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); animation: csm-sway 3s ease-in-out infinite alternate; }
.scn-crowd-sees-miracle .crowd-foreground { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 80% 20% 0 0 / 60% 10% 0 0; animation: csm-sway-fast 2.5s ease-in-out infinite alternate; }
.scn-crowd-sees-miracle .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; }
.scn-crowd-sees-miracle .dust-motes { position:absolute; top:20%; left:0; right:0; height:60%; background: transparent; animation: csm-dust 20s linear infinite; }
@keyframes csm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes csm-glow { 0% { transform: translateX(-50%) scale(1); opacity:0.9 } 50% { transform: translateX(-50%) scale(1.2); opacity:1 } 100% { transform: translateX(-50%) scale(0.95); opacity:0.8 } }
@keyframes csm-ascend { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity:1 } 50% { transform: translateX(-50%) translateY(-8px) rotate(1deg); opacity:0.7 } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity:1 } }
@keyframes csm-halo { 0% { transform: translateX(-50%) scale(0.9); opacity:0.5 } 50% { transform: translateX(-50%) scale(1.4); opacity:0.9 } 100% { transform: translateX(-50%) scale(1); opacity:0.7 } }
@keyframes csm-sway { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes csm-sway-fast { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes csm-dust { 0% { background: radial-gradient(circle at 30% 40%, rgba(255,240,200,0.2) 0%, transparent 60%); transform: translateX(0) } 50% { background: radial-gradient(circle at 70% 60%, rgba(255,240,200,0.15) 0%, transparent 50%); transform: translateX(20px) } 100% { background: radial-gradient(circle at 30% 40%, rgba(255,240,200,0.2) 0%, transparent 60%); transform: translateX(0) } }

/* dimmesdale-calls-hester-pearl */
.scn-dimmesdale-calls-hester-pearl {
  background: linear-gradient(180deg, #f8e8c0 0%, #e0c080 40%, #a07848 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-dimmesdale-calls-hester-pearl .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #ffe8b0 0%, #f0c890 100%); animation: dcp-sky 15s ease-in-out infinite alternate; }
.scn-dimmesdale-calls-hester-pearl .sunlight-shaft { position:absolute; top:10%; left:40%; width:60px; height:70%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%); transform: skewX(-10deg); animation: dcp-shaft 6s ease-in-out infinite alternate; }
.scn-dimmesdale-calls-hester-pearl .tree-trunk { position:absolute; bottom:25%; left:20%; width:30px; height:50%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 4px 0 8px rgba(0,0,0,0.3); }
.scn-dimmesdale-calls-hester-pearl .dimmesdale-silhouette { position:absolute; bottom:35%; left:45%; width:25px; height:65px; background: #1a1008; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: dcp-dimmesdale 8s ease-in-out infinite; }
.scn-dimmesdale-calls-hester-pearl .hester-figure { position:absolute; bottom:30%; left:58%; width:22px; height:55px; background: #2a1a0a; border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; transform-origin: bottom; animation: dcp-hester 6s ease-in-out infinite alternate; }
.scn-dimmesdale-calls-hester-pearl .pearl-figure { position:absolute; bottom:28%; left:65%; width:15px; height:35px; background: #1a0a00; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: dcp-pearl 4s ease-in-out infinite; }
.scn-dimmesdale-calls-hester-pearl .grass-blades { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a5a2a 0%, #4a3010 100%); border-radius: 80% 80% 0 0 / 30% 30% 0 0; animation: dcp-grass 3s ease-in-out infinite alternate; }
@keyframes dcp-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dcp-shaft { 0% { transform: skewX(-10deg) translateX(-5px); opacity:0.4 } 50% { transform: skewX(-8deg) translateX(0); opacity:0.8 } 100% { transform: skewX(-10deg) translateX(5px); opacity:0.5 } }
@keyframes dcp-dimmesdale { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(1deg) } 70% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dcp-hester { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dcp-pearl { 0% { transform: translateX(0) translateY(0) scale(1) } 30% { transform: translateX(-8px) translateY(-2px) scale(1.05) } 60% { transform: translateX(5px) translateY(-1px) scale(0.95) } 100% { transform: translateX(0) translateY(0) scale(1) } }
@keyframes dcp-grass { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* chillingworth-rushes-forward */
.scn-chillingworth-rushes-forward {
  background: linear-gradient(180deg, #c8a868 0%, #a07848 40%, #604028 100%),
              radial-gradient(ellipse at 50% 0%, #f0d8b0 0%, transparent 50%);
}
.scn-chillingworth-rushes-forward .bg-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #f0d8a0 0%, #d4b878 100%); animation: crf-sky 10s ease-in-out infinite alternate; }
.scn-chillingworth-rushes-forward .crowd-left { position:absolute; bottom:30%; left:0; width:40%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 0 60% 0 0 / 0 30% 0 0; animation: crf-sway-left 3s ease-in-out infinite alternate; }
.scn-chillingworth-rushes-forward .crowd-right { position:absolute; bottom:30%; right:0; width:40%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 60% 0 0 0 / 30% 0 0 0; animation: crf-sway-right 3s ease-in-out infinite alternate; }
.scn-chillingworth-rushes-forward .chillingworth-body { position:absolute; bottom:25%; left:45%; width:35px; height:80px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom; animation: crf-leap 4s ease-in-out infinite; }
.scn-chillingworth-rushes-forward .chillingworth-arm { position:absolute; bottom:55%; left:52%; width:15px; height:40px; background: #1a0a00; border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; transform: rotate(20deg); transform-origin: 0 100%; animation: crf-arm 2s ease-in-out infinite alternate; }
.scn-chillingworth-rushes-forward .chillingworth-robes { position:absolute; bottom:18%; left:42%; width:50px; height:40px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 30% 50% 20% 40% / 20% 20% 10% 10%; animation: crf-robes 3s ease-in-out infinite alternate; }
.scn-chillingworth-rushes-forward .ground-stones { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #4a3010 0%, #2a1808 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-chillingworth-rushes-forward .shadow-sweep { position:absolute; bottom:20%; left:30%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%); animation: crf-shadow 2.5s ease-in-out infinite alternate; }
@keyframes crf-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes crf-sway-left { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes crf-sway-right { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes crf-leap { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-10px) rotate(5deg) } 60% { transform: translateY(-5px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes crf-arm { 0% { transform: rotate(20deg) } 100% { transform: rotate(40deg) } }
@keyframes crf-robes { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(5deg) scale(1.1) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes crf-shadow { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(1.3); opacity:0.8 } 100% { transform: scaleX(1); opacity:0.5 } }

/* chillingworth-pleads */
.scn-chillingworth-pleads {
  background: linear-gradient(180deg, #e8d0b0 0%, #c8a878 40%, #907050 100%),
              radial-gradient(ellipse at 50% 0%, #fce8c8 0%, transparent 60%);
}
.scn-chillingworth-pleads .bg-light { position:absolute; inset:0 0 65% 0; background: linear-gradient(180deg, #f0d8b0 0%, #d4b890 100%); animation: cp-sky 12s ease-in-out infinite alternate; }
.scn-chillingworth-pleads .min-steps { position:absolute; bottom:50%; left:30%; width:15px; height:20px; background: #3a2a1a; border-radius: 0 0 50% 50%; animation: cp-steps 5s ease-in-out infinite; }
.scn-chillingworth-pleads .dimmesdale-figure { position:absolute; bottom:30%; left:35%; width:28px; height:70px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%; transform-origin: bottom; animation: cp-dimmesdale 7s ease-in-out infinite; }
.scn-chillingworth-pleads .chillingworth-figure { position:absolute; bottom:32%; left:55%; width:30px; height:75px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform: scaleX(-1); animation: cp-chillingworth 6s ease-in-out infinite alternate; }
.scn-chillingworth-pleads .hester-figure { position:absolute; bottom:28%; left:20%; width:20px; height:50px; background: #2a1a0a; border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%; animation: cp-hester 5s ease-in-out infinite; }
.scn-chillingworth-pleads .pearl-figure { position:absolute; bottom:25%; left:25%; width:14px; height:32px; background: #1a0a00; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: cp-pearl 4s ease-in-out infinite; }
.scn-chillingworth-pleads .shadow-stripe { position:absolute; bottom:20%; left:10%; width:80%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); animation: cp-stripe 3s ease-in-out infinite alternate; }
.scn-chillingworth-pleads .ground-tiles { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.4); }
@keyframes cp-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cp-steps { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes cp-dimmesdale { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cp-chillingworth { 0% { transform: scaleX(-1) translateX(0) } 50% { transform: scaleX(-1) translateX(8px) } 100% { transform: scaleX(-1) translateX(0) } }
@keyframes cp-hester { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cp-pearl { 0% { transform: translateX(0) translateY(0) } 40% { transform: translateX(5px) translateY(-2px) } 80% { transform: translateX(-2px) translateY(0) } 100% { transform: translateX(0) translateY(0) } }
@keyframes cp-stripe { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-moonlight-transforms-room {
  background: linear-gradient(180deg, #0e1a2b 0%, #1b2a45 40%, #2a3f5e 70%, #1b2a45 100%),
              radial-gradient(ellipse at 80% 20%, #c0d8f0 0%, transparent 60%);
}
.scn-moonlight-transforms-room .moon-window { position:absolute; top:5%; left:15%; width:120px; height:160px; background: radial-gradient(circle at 70% 30%, #e0ecfa 0%, #b0c8e0 100%); border-radius: 10% 10% 50% 50% / 20% 20% 40% 40%; box-shadow: inset 0 0 30px #a0b8d0, 0 0 60px rgba(160,184,208,.5); animation: mt-win 8s ease-in-out infinite alternate; }
.scn-moonlight-transforms-room .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a253a 0%, #0e1620 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; }
.scn-moonlight-transforms-room .doll-carriage { position:absolute; bottom:28%; left:30%; width:40px; height:30px; background: linear-gradient(135deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; animation: mt-carriage 6s ease-in-out infinite alternate; }
.scn-moonlight-transforms-room .hobby-horse { position:absolute; bottom:32%; left:55%; width:50px; height:60px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mt-horse 4s ease-in-out infinite; }
.scn-moonlight-transforms-room .child-shoe { position:absolute; bottom:26%; left:50%; width:20px; height:10px; background: #3a4a5a; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(-10deg); animation: mt-shoe 5s ease-in-out infinite; }
.scn-moonlight-transforms-room .moon-beam { position:absolute; top:10%; left:20%; width:80px; height:250px; background: linear-gradient(180deg, rgba(192,216,240,.3) 0%, transparent 100%); filter: blur(8px); animation: mt-beam 7s ease-in-out infinite alternate; }
.scn-moonlight-transforms-room .shadow { position:absolute; bottom:10%; left:40%; width:100px; height:20px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(6px); animation: mt-shadow 12s ease-in-out infinite; }
@keyframes mt-win { 0% { transform: scale(1) translateY(0); opacity:.9 } 50% { transform: scale(1.02) translateY(-2px); opacity:1 } 100% { transform: scale(1) translateY(0); opacity:.85 } }
@keyframes mt-carriage { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(0deg) } 100% { transform: translateX(-2px) rotate(2deg) } }
@keyframes mt-horse { 0% { transform: rotate(-5deg) scale(1) } 25% { transform: rotate(0deg) scale(1.05) } 50% { transform: rotate(3deg) scale(1) } 75% { transform: rotate(-3deg) scale(1.02) } 100% { transform: rotate(-5deg) scale(1) } }
@keyframes mt-shoe { 0%,100% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-3px) rotate(-5deg) } }
@keyframes mt-beam { 0% { opacity:.2; transform: translateX(0) } 50% { opacity:.5; transform: translateX(10px) } 100% { opacity:.3; transform: translateX(-5px) } }
@keyframes mt-shadow { 0%,100% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.1) } }

.scn-coal-fire-warmth {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #5a3a1a 80%, #2a1a0e 100%),
              radial-gradient(ellipse at 50% 80%, #c06030 0%, transparent 70%);
}
.scn-coal-fire-warmth .fireplace { position:absolute; bottom:20%; left:50%; width:160px; height:180px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-coal-fire-warmth .fire-glow { position:absolute; bottom:25%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #d07040 0%, #a04020 60%, transparent 100%); border-radius: 50%; animation: cf-glow 3s ease-in-out infinite alternate; }
.scn-coal-fire-warmth .mantel { position:absolute; bottom:55%; left:50%; width:180px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-coal-fire-warmth .armchair { position:absolute; bottom:15%; left:20%; width:80px; height:100px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 6px 6px 20px rgba(0,0,0,.5); animation: cf-chair 10s ease-in-out infinite; }
.scn-coal-fire-warmth .side-table { position:absolute; bottom:18%; right:25%; width:50px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 10% 10%; transform: scale(.95); box-shadow: 4px 4px 12px rgba(0,0,0,.4); }
.scn-coal-fire-warmth .reflection { position:absolute; top:30%; left:10%; width:30%; height:20%; background: linear-gradient(135deg, rgba(200,100,50,.15) 0%, transparent 100%); border-radius: 50%; filter: blur(12px); animation: cf-reflect 5s ease-in-out infinite alternate; }
.scn-coal-fire-warmth .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
@keyframes cf-glow { 0% { opacity:.6; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.15) } 100% { opacity:.8; transform: translateX(-50%) scale(.95) } }
@keyframes cf-chair { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-2deg) } }
@keyframes cf-reflect { 0% { opacity:.1; transform: translateX(0) } 50% { opacity:.3; transform: translateX(20px) } 100% { opacity:.15; transform: translateX(-10px) } }

.scn-need-to-write-romances {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a0e 40%, #3a2a1a 80%, #1a0e08 100%),
              radial-gradient(ellipse at 50% 50%, #b06030 0%, transparent 70%);
}
.scn-need-to-write-romances .desk { position:absolute; bottom:10%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: 0 -6px 20px rgba(0,0,0,.6); }
.scn-need-to-write-romances .candle { position:absolute; bottom:40%; left:50%; width:12px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 20% 20% 5% 5%; animation: wr-candle 4s ease-in-out infinite; }
.scn-need-to-write-romances .flame { position:absolute; bottom:52%; left:50%; width:10px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, #ffe0a0 0%, #c06020 70%, transparent 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(1px); animation: wr-flame 2s ease-in-out infinite alternate; }
.scn-need-to-write-romances .chair { position:absolute; bottom:12%; left:30%; width:60px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 15% 15% 10% 10% / 25% 25% 15% 15%; }
.scn-need-to-write-romances .silhouette { position:absolute; bottom:20%; left:35%; width:40px; height:80px; background: #0a0604; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wr-silhouette 6s ease-in-out infinite; }
.scn-need-to-write-romances .book { position:absolute; bottom:35%; left:45%; width:50px; height:12px; background: #5a3a2a; border-radius: 3px; transform: rotate(-10deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); }
.scn-need-to-write-romances .inkwell { position:absolute; bottom:38%; left:55%; width:16px; height:18px; background: #1a1a1a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 2px 4px #333; }
@keyframes wr-candle { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(.98) } }
@keyframes wr-flame { 0% { transform: translateX(-50%) scale(1) rotate(-3deg); opacity:.8 } 50% { transform: translateX(-50%) scale(1.15) rotate(0deg); opacity:1 } 100% { transform: translateX(-50%) scale(.9) rotate(2deg); opacity:.7 } }
@keyframes wr-silhouette { 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) } }

.scn-customhouse-deadens-fancy {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #3a3a3a 60%, #2a2a2a 100%),
              radial-gradient(ellipse at 50% 30%, #5a5a4a 0%, transparent 70%);
}
.scn-customhouse-deadens-fancy .desk-ch { position:absolute; bottom:15%; left:25%; right:25%; height:30%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-customhouse-deadens-fancy .stool { position:absolute; bottom:10%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; }
.scn-customhouse-deadens-fancy .tallow-candle { position:absolute; bottom:38%; left:50%; width:10px; height:35px; transform:translateX(-50%); background: linear-gradient(180deg, #b89870 0%, #8a7a5a 100%); border-radius: 20% 20% 5% 5%; animation: ch-candle 5s ease-in-out infinite; }
.scn-customhouse-deadens-fancy .paper-stack { position:absolute; bottom:28%; left:45%; width:60px; height:8px; background: #5a5a4a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ch-paper 8s ease-in-out infinite; }
.scn-customhouse-deadens-fancy .inkwell-ch { position:absolute; bottom:26%; left:55%; width:14px; height:16px; background: #2a2a2a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 2px 4px #444; }
.scn-customhouse-deadens-fancy .shadow-ch { position:absolute; bottom:8%; left:30%; width:120px; height:15px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(8px); animation: ch-shadow 10s ease-in-out infinite; }
.scn-customhouse-deadens-fancy .dim-window { position:absolute; top:10%; left:15%; width:80px; height:100px; background: radial-gradient(circle at 70% 30%, #5a5a5a 0%, #3a3a3a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; opacity:.2; animation: ch-win 12s ease-in-out infinite alternate; }
@keyframes ch-candle { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(.97) } }
@keyframes ch-paper { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ch-shadow { 0%,100% { opacity:.2; transform: scale(1) } 50% { opacity:.4; transform: scale(1.05) } }
@keyframes ch-win { 0% { opacity:.15; transform: scale(1) } 50% { opacity:.25; transform: scale(1.02) } 100% { opacity:.2; transform: scale(.98) } }

.scn-ghostly-dread {
  background: linear-gradient(180deg, #0f111a 0%, #1a1e2e 40%, #2a2f44 100%), radial-gradient(ellipse at 50% 50%, #2a2f44 0%, transparent 70%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-ghostly-dread .gd-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1e2e 0%, #0f111a 100%); opacity: 0.6;
}
.scn-ghostly-dread .gd-mist {
  position: absolute; inset: 10% 5% 20% 5%; background: radial-gradient(ellipse at 30% 50%, rgba(180,200,220,0.12) 0%, transparent 70%), radial-gradient(ellipse at 70% 30%, rgba(160,180,210,0.08) 0%, transparent 60%);
  filter: blur(8px); animation: gd-mist 20s ease-in-out infinite alternate;
}
.scn-ghostly-dread .gd-figure-left {
  position: absolute; bottom: 20%; left: 25%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a3f55 0%, #1e2230 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gd-figures 6s ease-in-out infinite;
}
.scn-ghostly-dread .gd-figure-right {
  position: absolute; bottom: 20%; right: 25%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a3f55 0%, #1e2230 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gd-figures 6s ease-in-out infinite reverse;
}
.scn-ghostly-dread .gd-aura {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 80px; transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(200,220,240,0.15) 0%, transparent 70%);
  filter: blur(12px); animation: gd-aura 4s ease-in-out infinite alternate;
}
.scn-ghostly-dread .gd-drift {
  position: absolute; top: 15%; left: 0; width: 120px; height: 30px;
  background: linear-gradient(90deg, transparent 0%, rgba(180,200,220,0.06) 50%, transparent 100%);
  filter: blur(4px); animation: gd-drift 35s linear infinite;
}
.scn-ghostly-dread .gd-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: gd-shadow 10s ease-in-out infinite alternate;
}
@keyframes gd-mist {
  0% { opacity: 0.3; transform: scale(1) translate(0,0); }
  50% { opacity: 0.6; transform: scale(1.05) translate(5px,-3px); }
  100% { opacity: 0.4; transform: scale(0.98) translate(-5px,2px); }
}
@keyframes gd-figures {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(1px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gd-aura {
  0% { opacity: 0.2; transform: translate(-50%,0) scale(1); }
  50% { opacity: 0.5; transform: translate(-50%,-5px) scale(1.1); }
  100% { opacity: 0.3; transform: translate(-50%,2px) scale(0.95); }
}
@keyframes gd-drift {
  0% { transform: translateX(-120px); }
  100% { transform: translateX(100vw); }
}
@keyframes gd-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* --- cold-grasp-comfort --- */
.scn-cold-grasp-comfort {
  background: linear-gradient(180deg, #11131c 0%, #1a1f2b 50%, #2a3040 100%), radial-gradient(ellipse at 50% 80%, #2a3040 0%, transparent 70%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-cold-grasp-comfort .cgc-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e1018 0%, #1a1f2b 100%); opacity: 0.7;
}
.scn-cold-grasp-comfort .cgc-path {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(90deg, transparent 0%, #2a3040 30%, #1a1f2b 70%, transparent 100%);
  border-radius: 50%; filter: blur(3px); animation: cgc-path 15s ease-in-out infinite alternate;
}
.scn-cold-grasp-comfort .cgc-hand-left {
  position: absolute; bottom: 30%; left: 30%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #4a5068 0%, #2a3040 100%);
  border-radius: 50% 30% 40% 40% / 60% 40% 40% 50%;
  transform-origin: bottom right; animation: cgc-hand-left 6s ease-in-out infinite;
}
.scn-cold-grasp-comfort .cgc-hand-right {
  position: absolute; bottom: 30%; right: 30%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #4a5068 0%, #2a3040 100%);
  border-radius: 30% 50% 40% 40% / 40% 60% 50% 40%;
  transform-origin: bottom left; animation: cgc-hand-right 6s ease-in-out infinite reverse;
}
.scn-cold-grasp-comfort .cgc-glow {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 20px; transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(200,220,255,0.2) 0%, transparent 80%);
  border-radius: 50%; animation: cgc-glow 3s ease-in-out infinite alternate;
}
.scn-cold-grasp-comfort .cgc-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
}
@keyframes cgc-path {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes cgc-hand-left {
  0% { transform: translate(0,0) rotate(5deg); }
  25% { transform: translate(8px,-3px) rotate(2deg); }
  50% { transform: translate(12px,-5px) rotate(0deg); }
  75% { transform: translate(8px,-2px) rotate(-2deg); }
  100% { transform: translate(0,0) rotate(5deg); }
}
@keyframes cgc-hand-right {
  0% { transform: translate(0,0) rotate(-5deg); }
  25% { transform: translate(-8px,-3px) rotate(-2deg); }
  50% { transform: translate(-12px,-5px) rotate(0deg); }
  75% { transform: translate(-8px,-2px) rotate(2deg); }
  100% { transform: translate(0,0) rotate(-5deg); }
}
@keyframes cgc-glow {
  0% { opacity: 0.1; transform: translate(-50%,0) scale(1); box-shadow: 0 0 8px 4px rgba(200,220,255,0.1); }
  50% { opacity: 0.5; transform: translate(-50%,-5px) scale(1.3); box-shadow: 0 0 20px 10px rgba(200,220,255,0.2); }
  100% { opacity: 0.2; transform: translate(-50%,2px) scale(0.9); box-shadow: 0 0 5px 2px rgba(200,220,255,0.05); }
}

/* --- tentative-conversation --- */
.scn-tentative-conversation {
  background: linear-gradient(180deg, #1a1e2e 0%, #2a3040 40%, #3a4055 100%), radial-gradient(ellipse at 50% 30%, #3a4055 0%, transparent 70%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-tentative-conversation .tc-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1a1e2e 0%, #2a3040 100%); animation: tc-sky 12s ease-in-out infinite alternate;
}
.scn-tentative-conversation .tc-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3040 0%, #11131c 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; animation: tc-ground 18s ease-in-out infinite alternate;
}
.scn-tentative-conversation .tc-figure-left {
  position: absolute; bottom: 22%; left: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a4055 0%, #1a1e2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-walk 4s ease-in-out infinite;
}
.scn-tentative-conversation .tc-figure-right {
  position: absolute; bottom: 22%; right: 20%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a4055 0%, #1a1e2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-walk 4.5s ease-in-out infinite reverse;
}
.scn-tentative-conversation .tc-clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 20% 50%, rgba(200,210,230,0.08) 0%, transparent 50%), radial-gradient(ellipse at 80% 30%, rgba(180,200,220,0.06) 0%, transparent 50%);
  filter: blur(10px); animation: tc-clouds 30s linear infinite alternate;
}
.scn-tentative-conversation .tc-path {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(90deg, transparent 0%, #3a4055 30%, #2a3040 70%, transparent 100%);
  border-radius: 50%; filter: blur(2px); animation: tc-path 8s ease-in-out infinite alternate;
}
.scn-tentative-conversation .tc-glimmer {
  position: absolute; bottom: 40%; left: 48%; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(220,230,255,0.3) 0%, transparent 70%);
  border-radius: 50%; animation: tc-glimmer 3s ease-in-out infinite alternate;
}
@keyframes tc-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes tc-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tc-walk {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes tc-clouds {
  0% { transform: translateX(0); opacity: 0.2; }
  50% { transform: translateX(15px); opacity: 0.4; }
  100% { transform: translateX(-10px); opacity: 0.3; }
}
@keyframes tc-path {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}
@keyframes tc-glimmer {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.5); box-shadow: 0 0 8px 4px rgba(220,230,255,0.2); }
  100% { opacity: 0.2; transform: scale(0.8); }
}

/* --- question-of-peace --- */
.scn-question-of-peace {
  background: linear-gradient(180deg, #0e0f18 0%, #1a1d2b 40%, #2a2f44 100%), radial-gradient(ellipse at 50% 60%, #2a2f44 0%, transparent 70%);
  position: relative; overflow: hidden; width: 100%; height: 100%;
}
.scn-question-of-peace .qp-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0f18 0%, #1a1d2b 100%); opacity: 0.8;
}
.scn-question-of-peace .qp-arch {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 180px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2f44 0%, #1a1d2b 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: qp-arch 12s ease-in-out infinite alternate;
}
.scn-question-of-peace .qp-figure-hester {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a3f55 0%, #1a1d2b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qp-hester 5s ease-in-out infinite;
}
.scn-question-of-peace .qp-figure-dimsdale {
  position: absolute; bottom: 25%; right: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a3f55 0%, #1a1d2b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qp-dimsdale 5s ease-in-out infinite alternate;
}
.scn-question-of-peace .qp-letter {
  position: absolute; bottom: 30%; left: 42%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 50%, #7a3a3a 0%, #4a1a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 3px rgba(122,58,58,0.4), 0 0 20px 6px rgba(74,26,26,0.2);
  animation: qp-letter 3s ease-in-out infinite alternate;
}
.scn-question-of-peace .qp-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
}
.scn-question-of-peace .qp-dread {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, transparent 40%, rgba(0,0,0,0.4) 80%);
  animation: qp-dread 7s ease-in-out infinite alternate;
}
@keyframes qp-arch {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-5px); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes qp-hester {
  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 qp-dimsdale {
  0% { transform: translateY(0) rotate(2deg); }
  33% { transform: translateY(-3px) rotate(-1deg); }
  66% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes qp-letter {
  0% { opacity: 0.4; box-shadow: 0 0 6px 2px rgba(122,58,58,0.3); }
  50% { opacity: 0.9; box-shadow: 0 0 18px 6px rgba(122,58,58,0.6); }
  100% { opacity: 0.5; box-shadow: 0 0 8px 3px rgba(122,58,58,0.4); }
}
@keyframes qp-dread {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

/* Scene 1 - pearls-questions-market */
.scn-pearls-questions-market { background: linear-gradient(180deg, #9aadbf 0%, #7a8f9f 40%, #6b7f8f 100%), radial-gradient(ellipse at 50% 0%, #b8c8d8 0%, transparent 70%); }
.scn-pearls-questions-market .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8c8d8 0%, #9aadbf 60%, transparent 100%); animation: pqm-sky 14s ease-in-out infinite alternate; }
.scn-pearls-questions-market .clouds { position:absolute; top:8%; left:0; right:0; height:20%; background: radial-gradient(ellipse at 20% 50%, rgba(200,210,220,.5) 0%, transparent 50%), radial-gradient(ellipse at 70% 40%, rgba(200,210,220,.4) 0%, transparent 40%), radial-gradient(ellipse at 50% 60%, rgba(200,210,220,.3) 0%, transparent 45%); filter: blur(8px); animation: pqm-drift 45s linear infinite; }
.scn-pearls-questions-market .stall { position:absolute; bottom:30%; left:15%; width:30%; height:35%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -8px 16px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.2); transform: perspective(800px) rotateY(5deg); }
.scn-pearls-questions-market .stall-back { position:absolute; bottom:30%; left:50%; width:28%; height:38%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -8px 16px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.2); transform: perspective(800px) rotateY(-4deg); }
.scn-pearls-questions-market .figure-blacksmith { position:absolute; bottom:24%; left:22%; width:20px; height:42px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: pqm-smith 4s ease-in-out infinite; }
.scn-pearls-questions-market .figure-child { position:absolute; bottom:26%; left:36%; width:16px; height:30px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pqm-child 5s ease-in-out infinite; }
.scn-pearls-questions-market .lanterns { position:absolute; bottom:38%; left:20%; width:8px; height:12px; background: radial-gradient(circle, #d4c8a0 0%, #b8a880 60%, transparent 100%); border-radius: 30%; box-shadow: 0 0 16px 6px rgba(180,168,128,.5), 0 0 32px 12px rgba(180,168,128,.2); animation: pqm-lantern 3s ease-in-out infinite alternate; }
.scn-pearls-questions-market .goods { position:absolute; bottom:30%; left:28%; width:8%; height:8%; background: radial-gradient(circle at 30% 30%, #c8a868 0%, #a08040 60%, #705020 100%); border-radius: 40%; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-pearls-questions-market .street { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 50%, #4a4a3a 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.3); }
@keyframes pqm-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pqm-drift { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes pqm-smith { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(2deg) scaleX(-1) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(1deg) } }
@keyframes pqm-child { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(4px) translateY(-1px) rotate(3deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes pqm-lantern { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(.95) } }

/* Scene 2 - procession-expected */
.scn-procession-expected { background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 40%, #8a7a6a 100%), radial-gradient(ellipse at 50% 0%, #a8b8c8 0%, transparent 60%); }
.scn-procession-expected .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a8b8c8 0%, #8a9aaa 60%, transparent 100%); animation: pe-sky 12s ease-in-out infinite alternate; }
.scn-procession-expected .clouds { position:absolute; top:6%; left:0; right:0; height:18%; background: radial-gradient(ellipse at 30% 40%, rgba(180,190,200,.5) 0%, transparent 50%), radial-gradient(ellipse at 70% 60%, rgba(180,190,200,.4) 0%, transparent 40%); filter: blur(6px); animation: pe-drift 50s linear infinite reverse; }
.scn-procession-expected .facade-left { position:absolute; bottom:20%; left:0; width:35%; height:55%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius: 0 4% 0 0; box-shadow: inset -4px 0 12px rgba(0,0,0,.2); }
.scn-procession-expected .facade-right { position:absolute; bottom:20%; right:0; width:35%; height:55%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 4% 0 0 0; box-shadow: inset 4px 0 12px rgba(0,0,0,.2); }
.scn-procession-expected .street { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.3); }
.scn-procession-expected .crowd { position:absolute; bottom:14%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, rgba(80,70,60,.8) 0%, rgba(50,40,30,.9) 100%); border-radius: 20% 20% 0 0; animation: pe-crowd 8s ease-in-out infinite alternate; }
.scn-procession-expected .banner { position:absolute; bottom:30%; left:48%; width:12px; height:36px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 2px; transform-origin: bottom center; animation: pe-banner 6s ease-in-out infinite; }
.scn-procession-expected .soldier { position:absolute; bottom:14%; left:44%; width:14px; height:30px; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: pe-soldier 4s ease-in-out infinite; }
@keyframes pe-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pe-drift { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes pe-crowd { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(.98) } }
@keyframes pe-banner { 0% { transform: rotate(-4deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-3deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(-2deg) } }
@keyframes pe-soldier { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }

/* Scene 3 - pearls-puzzlement */
.scn-pearls-puzzlement { background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 30%, #0a1a2a 100%), radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, transparent 70%); }
.scn-pearls-puzzlement .forest-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a2a3a 0%, #0a1520 60%, #1a2a1a 100%); animation: pp-bg 20s ease-in-out infinite alternate; }
.scn-pearls-puzzlement .tree-left { position:absolute; bottom:0; left:5%; width:20%; height:85%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%); border-radius: 30% 30% 0 0; box-shadow: inset -4px 0 12px rgba(0,0,0,.4); }
.scn-pearls-puzzlement .tree-right { position:absolute; bottom:0; right:5%; width:24%; height:90%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 50%, #050f05 100%); border-radius: 30% 30% 0 0; box-shadow: inset 4px 0 12px rgba(0,0,0,.4); }
.scn-pearls-puzzlement .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); }
.scn-pearls-puzzlement .figure-child { position:absolute; bottom:20%; left:40%; width:16px; height:32px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pp-child 6s ease-in-out infinite; }
.scn-pearls-puzzlement .figure-shadow { position:absolute; bottom:18%; left:48%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; opacity:.6; animation: pp-shadow 8s ease-in-out infinite alternate; }
.scn-pearls-puzzlement .moonlight { position:absolute; top:8%; left:30%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,210,220,.3) 0%, rgba(180,190,200,.1) 40%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: pp-moon 10s ease-in-out infinite alternate; }
.scn-pearls-puzzlement .leaves { position:absolute; top:20%; left:10%; right:10%; height:15%; background: radial-gradient(ellipse at 30% 40%, rgba(60,80,40,.3) 0%, transparent 50%), radial-gradient(ellipse at 70% 60%, rgba(60,80,40,.2) 0%, transparent 50%); filter: blur(3px); animation: pp-leaves 15s ease-in-out infinite alternate; }
@keyframes pp-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pp-child { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(3deg) } 60% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes pp-shadow { 0% { transform: translateX(0) scaleX(1); opacity:.4 } 50% { transform: translateX(4px) scaleX(1.05); opacity:.6 } 100% { transform: translateX(0) scaleX(.95); opacity:.4 } }
@keyframes pp-moon { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.6; transform: scale(.95) } }
@keyframes pp-leaves { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(3px) rotate(2deg) } 100% { transform: translateY(-2px) rotate(-1deg) } }

/* Scene 4 - holiday-joy */
.scn-holiday-joy { background: linear-gradient(180deg, #a8b8c8 0%, #8898a8 30%, #6a7a8a 100%), radial-gradient(ellipse at 50% 0%, #c8d8d8 0%, transparent 60%); }
.scn-holiday-joy .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c8d8d8 0%, #a8b8c8 60%, transparent 100%); animation: hj-sky 12s ease-in-out infinite alternate; }
.scn-holiday-joy .clouds { position:absolute; top:5%; left:0; right:0; height:15%; background: radial-gradient(ellipse at 25% 50%, rgba(220,230,230,.5) 0%, transparent 45%), radial-gradient(ellipse at 65% 40%, rgba(220,230,230,.4) 0%, transparent 40%); filter: blur(6px); animation: hj-drift 40s linear infinite; }
.scn-holiday-joy .buildings { position:absolute; bottom:25%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -4px 12px rgba(0,0,0,.2), 0 -2px 8px rgba(0,0,0,.1); }
.scn-holiday-joy .street { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.3); }
.scn-holiday-joy .maypole { position:absolute; bottom:25%; left:50%; width:12px; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; transform: translateX(-50%); transform-origin: bottom center; }
.scn-holiday-joy .children { position:absolute; bottom:22%; left:30%; width:30%; height:20%; background: radial-gradient(ellipse at 40% 60%, rgba(120,100,80,.8) 0%, transparent 60%), radial-gradient(ellipse at 60% 40%, rgba(100,80,60,.7) 0%, transparent 50%); animation: hj-children 7s ease-in-out infinite alternate; }
.scn-holiday-joy .streamers { position:absolute; bottom:30%; left:35%; right:35%; height:40%; background: linear-gradient(90deg, #a0a080 0%, #c0b090 30%, #a0a080 60%, #c0b090 100%); clip-path: polygon(0% 0%, 20% 30%, 40% 10%, 60% 40%, 80% 15%, 100% 35%, 100% 100%, 0% 100%); animation: hj-streamers 9s ease-in-out infinite; }
.scn-holiday-joy .confetti { position:absolute; top:10%; left:10%; right:10%; height:10%; background: radial-gradient(circle at 20% 50%, rgba(160,140,120,.4) 0%, transparent 30%), radial-gradient(circle at 50% 30%, rgba(140,160,140,.3) 0%, transparent 40%), radial-gradient(circle at 80% 70%, rgba(180,160,130,.3) 0%, transparent 35%); filter: blur(2px); animation: hj-confetti 5s ease-in-out infinite alternate; }
@keyframes hj-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes hj-drift { 0% { transform: translateX(-30px) } 100% { transform: translateX(110vw) } }
@keyframes hj-children { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.03) } 100% { transform: translateY(1px) scaleY(.97) } }
@keyframes hj-streamers { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes hj-confetti { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(4px) rotate(10deg) } 60% { transform: translateY(-2px) rotate(-5deg) } 100% { transform: translateY(2px) rotate(3deg) } }

.scn-spiritual-torment {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a35 50%, #1e1e28 100%),
              radial-gradient(ellipse at 50% 70%, #4a4a5a 0%, transparent 80%);
}
.scn-spiritual-torment .bg-overcast {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a4a58 0%, #2a2a38 100%);
  animation: tor-sky 18s ease-in-out infinite alternate;
}
.scn-spiritual-torment .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #252530 0%, #181820 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-spiritual-torment .window {
  position:absolute; top:15%; left:50%; width:60px; height:80px; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #5a5a6a 0%, #3a3a4a 70%);
  border-radius:4px; box-shadow: inset 0 0 20px rgba(80,80,100,0.3);
  animation: tor-window 12s ease-in-out infinite alternate;
}
.scn-spiritual-torment .figure-bowed {
  position:absolute; bottom:20%; left:50%; width:50px; height:70px; transform:translateX(-50%);
  background: linear-gradient(180deg, #1a1a22 0%, #0d0d12 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: tor-bow 6s ease-in-out infinite;
}
.scn-spiritual-torment .hands-clasped {
  position:absolute; bottom:32%; left:50%; width:16px; height:18px; transform:translateX(-50%);
  background: #14141a; border-radius: 40% 40% 30% 30%;
  animation: tor-hands 4s ease-in-out infinite alternate;
}
.scn-spiritual-torment .shadow-pool {
  position:absolute; bottom:15%; left:40%; width:30%; height:8px; background: rgba(0,0,0,0.4);
  border-radius:50%; filter: blur(6px);
  animation: tor-shadow 6s ease-in-out infinite;
}
.scn-spiritual-torment .faint-light {
  position:absolute; top:10%; left:50%; width:40px; height:20px; transform:translateX(-50%);
  background: radial-gradient(ellipse, rgba(200,200,220,0.15) 0%, transparent 70%);
  animation: tor-light 15s ease-in-out infinite alternate;
}
@keyframes tor-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes tor-window { 0% { box-shadow: inset 0 0 15px rgba(80,80,100,0.2) } 50% { box-shadow: inset 0 0 30px rgba(80,80,100,0.5) } 100% { box-shadow: inset 0 0 20px rgba(80,80,100,0.3) } }
@keyframes tor-bow { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-4px) rotate(3deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes tor-hands { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.9) translateY(2px) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes tor-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }
@keyframes tor-light { 0% { opacity:0.1 } 50% { opacity:0.4 } 100% { opacity:0.2 } }

.scn-delusion-of-good {
  background: linear-gradient(180deg, #2e2e40 0%, #1e1e30 50%, #141424 100%),
              radial-gradient(ellipse at 50% 40%, #3a3a50 0%, transparent 80%);
}
.scn-delusion-of-good .bg-murk {
  position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a3a50 0%, #20203a 100%);
  animation: del-sky 20s ease-in-out infinite alternate;
}
.scn-delusion-of-good .arch {
  position:absolute; top:10%; left:50%; width:120px; height:90px; transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
  border-radius: 50% 50% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.4);
}
.scn-delusion-of-good .figure-turning {
  position:absolute; bottom:20%; left:55%; width:55px; height:80px;
  background: linear-gradient(90deg, #10101a 0%, #1a1a24 70%);
  border-radius: 40% 50% 40% 40% / 60% 70% 40% 40%;
  transform-origin: bottom center;
  animation: del-turn 8s ease-in-out infinite alternate;
}
.scn-delusion-of-good .mirror-void {
  position:absolute; bottom:30%; left:30%; width:40px; height:50px;
  background: radial-gradient(circle, #2a2a3a 0%, #10101a 100%);
  border-radius:4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: del-mirror 10s ease-in-out infinite alternate;
}
.scn-delusion-of-good .candle-flicker {
  position:absolute; bottom:35%; left:40%; width:4px; height:12px;
  background: linear-gradient(180deg, #b09060 0%, #705030 100%);
  border-radius: 2px; box-shadow: 0 0 12px 2px rgba(180,140,80,0.3);
  animation: del-candle 3s ease-in-out infinite;
}
.scn-delusion-of-good .smear-light {
  position:absolute; top:30%; left:50%; width:60px; height:30px; transform:translateX(-50%);
  background: radial-gradient(ellipse, rgba(180,140,80,0.08) 0%, transparent 70%);
  animation: del-smear 12s ease-in-out infinite alternate;
}
@keyframes del-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes del-turn { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(8px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes del-mirror { 0% { opacity:0.8 } 50% { opacity:0.4 } 100% { opacity:0.7 } }
@keyframes del-candle { 0% { transform: scaleY(1) } 25% { transform: scaleY(1.2) } 50% { transform: scaleY(0.9) } 75% { transform: scaleY(1.1) } 100% { transform: scaleY(1) } }
@keyframes del-smear { 0% { opacity:0.05 } 50% { opacity:0.2 } 100% { opacity:0.1 } }

.scn-laughter-of-agony {
  background: linear-gradient(180deg, #2a2a35 0%, #1a1a25 40%, #101018 100%),
              radial-gradient(ellipse at 50% 50%, #3a3a45 0%, transparent 90%);
}
.scn-laughter-of-agony .wall {
  position:absolute; inset:0; background: linear-gradient(90deg, #202028 0%, #181820 100%);
  animation: lau-wall 20s ease-in-out infinite alternate;
}
.scn-laughter-of-agony .window-bar {
  position:absolute; top:30%; left:20%; width:50px; height:70px;
  background: radial-gradient(circle, #4a4a5a 0%, #2a2a35 70%);
  border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: lau-window 12s ease-in-out infinite alternate;
}
.scn-laughter-of-agony .figure-laugh {
  position:absolute; bottom:15%; right:25%; width:60px; height:90px;
  background: linear-gradient(180deg, #151520 0%, #0a0a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lau-figure 6s ease-in-out infinite;
}
.scn-laughter-of-agony .hand-over-face {
  position:absolute; bottom:45%; right:27%; width:20px; height:22px;
  background: #101018; border-radius: 40% 40% 30% 30%;
  transform-origin: top right;
  animation: lau-hand 4s ease-in-out infinite alternate;
}
.scn-laughter-of-agony .shadow-distort {
  position:absolute; bottom:10%; right:20%; width:40%; height:10px;
  background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(8px);
  animation: lau-shadow 8s ease-in-out infinite;
}
.scn-laughter-of-agony .curtain-heavy {
  position:absolute; top:0; left:80%; width:20%; height:100%;
  background: linear-gradient(180deg, #2a2a35 0%, #1a1a25 100%);
  border-radius: 10px 0 0 10px;
  animation: lau-curtain 30s ease-in-out infinite alternate;
}
.scn-laughter-of-agony .dust-motes {
  position:absolute; top:20%; left:40%; width:100%; height:60%;
  background: radial-gradient(circle, rgba(200,200,220,0.03) 0%, transparent 50%);
  filter: blur(2px); animation: lau-dust 15s linear infinite;
}
@keyframes lau-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lau-window { 0% { box-shadow: inset 0 0 10px rgba(80,80,100,0.2) } 50% { box-shadow: inset 0 0 30px rgba(80,80,100,0.4) } 100% { box-shadow: inset 0 0 15px rgba(80,80,100,0.25) } }
@keyframes lau-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lau-hand { 0% { transform: rotate(0deg) translate(0,0) } 50% { transform: rotate(-8deg) translate(2px,-1px) } 100% { transform: rotate(0deg) translate(0,0) } }
@keyframes lau-shadow { 0% { transform: scaleX(1) opacity:0.5 } 50% { transform: scaleX(1.3) opacity:0.7 } 100% { transform: scaleX(1) opacity:0.5 } }
@keyframes lau-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes lau-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-30px) } }

.scn-no-substance-in-penitence {
  background: linear-gradient(180deg, #2a2a30 0%, #1e1e25 50%, #15151c 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a45 0%, transparent 80%);
}
.scn-no-substance-in-penitence .wall-stone {
  position:absolute; inset:0; background: linear-gradient(90deg, #1e1e25 0%, #14141a 100%);
  animation: nos-wall 20s ease-in-out infinite alternate;
}
.scn-no-substance-in-penitence .hook {
  position:absolute; top:20%; left:50%; width:6px; height:15px; transform:translateX(-50%);
  background: #252530; border-radius: 2px;
  animation: nos-hook 8s ease-in-out infinite alternate;
}
.scn-no-substance-in-penitence .robe-empty {
  position:absolute; top:22%; left:50%; width:80px; height:100px; transform:translateX(-50%);
  background: linear-gradient(180deg, #2a2a35 0%, #1a1a24 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,0.4));
  animation: nos-robe 12s ease-in-out infinite;
}
.scn-no-substance-in-penitence .rope-coil {
  position:absolute; top:45%; left:50%; width:40px; height:6px; transform:translateX(-50%);
  background: #1a1a22; border-radius: 3px;
  animation: nos-rope 6s ease-in-out infinite alternate;
}
.scn-no-substance-in-penitence .halo-false {
  position:absolute; top:12%; left:50%; width:40px; height:20px; transform:translateX(-50%);
  background: radial-gradient(ellipse, rgba(200,200,220,0.08) 0%, transparent 70%);
  animation: nos-halo 14s ease-in-out infinite alternate;
}
.scn-no-substance-in-penitence .dust-grains {
  position:absolute; top:10%; left:30%; width:70%; height:80%;
  background: radial-gradient(circle at 20% 30%, rgba(200,200,220,0.02) 0%, transparent 50%),
              radial-gradient(circle at 80% 70%, rgba(200,200,220,0.02) 0%, transparent 50%);
  filter: blur(3px); animation: nos-dust 25s linear infinite;
}
@keyframes nos-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes nos-hook { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes nos-robe { 0% { transform: translateX(-50%) rotate(0deg) scale(1) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(-1deg) scale(1) } }
@keyframes nos-rope { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.1) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes nos-halo { 0% { opacity:0.1 } 50% { opacity:0.3 } 100% { opacity:0.15 } }
@keyframes nos-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-40px) } }

/* stain-of-ancestry */
.scn-stain-of-ancestry {
  background: linear-gradient(180deg, #1f2a38 0%, #2c3a4a 40%, #3a4a5a 70%, #4a5a6a 100%),
              radial-gradient(ellipse at 50% 0%, #3a4a5a 0%, transparent 60%);
}
.scn-stain-of-ancestry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: stain-ground 15s ease-in-out infinite alternate;
}
.scn-stain-of-ancestry .grave-stone {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.6);
  transform: rotate(-2deg);
  animation: stain-stone 20s ease-in-out infinite;
}
.scn-stain-of-ancestry .bones-a {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 8px;
  background: linear-gradient(90deg, #7a8a7a 0%, #6a7a6a 100%);
  border-radius: 50%;
  box-shadow: 2px 2px 4px rgba(0,0,0,.3);
  animation: stain-bones 12s ease-in-out infinite alternate;
}
.scn-stain-of-ancestry .bones-b {
  position: absolute; bottom: 20%; left: 60%; width: 24px; height: 6px;
  background: linear-gradient(90deg, #8a9a8a 0%, #6a7a6a 100%);
  border-radius: 50%;
  box-shadow: -2px 2px 4px rgba(0,0,0,.3);
  animation: stain-bones 14s ease-in-out infinite alternate-reverse;
}
.scn-stain-of-ancestry .fog {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 30% 20%, rgba(200,210,220,.15) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 40%, rgba(200,210,220,.1) 0%, transparent 50%);
  filter: blur(20px);
  animation: stain-fog 30s ease-in-out infinite alternate;
}
.scn-stain-of-ancestry .drifting-leaf {
  position: absolute; top: 25%; left: 10%; width: 12px; height: 8px;
  background: #5a4a3a;
  border-radius: 0 50% 50% 0;
  transform: rotate(30deg);
  animation: stain-leaf 18s linear infinite;
}
.scn-stain-of-ancestry .moss {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 10px;
  background: radial-gradient(circle, #4a6a4a 0%, #2a4a2a 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: stain-moss 25s ease-in-out infinite alternate;
}
@keyframes stain-ground { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes stain-stone { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes stain-bones { 0% { opacity: 0.4; transform: translateY(0) rotate(0deg); } 50% { opacity: 0.7; transform: translateY(-2px) rotate(5deg); } 100% { opacity: 0.5; transform: translateY(1px) rotate(-3deg); } }
@keyframes stain-fog { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes stain-leaf { 0% { transform: translateX(0) rotate(30deg); } 25% { transform: translateX(20vw) rotate(45deg) translateY(-10px); } 50% { transform: translateX(40vw) rotate(60deg) translateY(-20px); } 75% { transform: translateX(60vw) rotate(75deg) translateY(-10px); } 100% { transform: translateX(80vw) rotate(90deg) translateY(0); opacity:0; } }
@keyframes stain-moss { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(0.9); opacity: 0.4; } }

/* writer-as-idler */
.scn-writer-as-idler {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #5a4a3a 70%, #6a5a4a 100%),
              radial-gradient(ellipse at 50% 40%, #7a6a5a 0%, transparent 70%);
}
.scn-writer-as-idler .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.4);
  animation: writer-wall 20s ease-in-out infinite alternate;
}
.scn-writer-as-idler .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: writer-table 10s ease-in-out infinite;
}
.scn-writer-as-idler .writer-figure {
  position: absolute; bottom: 25%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: writer-lounge 4s ease-in-out infinite;
}
.scn-writer-as-idler .quill {
  position: absolute; bottom: 38%; left: 35%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a09080 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  animation: writer-quill 3s ease-in-out infinite alternate;
}
.scn-writer-as-idler .ancestor-portrait {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border: 3px solid #5a4a3a;
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 12px rgba(0,0,0,.3);
  animation: writer-portrait 6s ease-in-out infinite alternate;
}
.scn-writer-as-idler .tree-trunk {
  position: absolute; bottom: 0; left: 60%; width: 30px; height: 80%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  animation: writer-trunk 15s ease-in-out infinite alternate;
}
.scn-writer-as-idler .moss-patch {
  position: absolute; bottom: 40%; left: 55%; width: 40px; height: 8px;
  background: radial-gradient(circle, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: writer-moss 12s ease-in-out infinite alternate;
}
@keyframes writer-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes writer-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes writer-lounge { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(-3deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes writer-quill { 0% { transform: rotate(25deg) scaleY(1); } 100% { transform: rotate(35deg) scaleY(0.9); } }
@keyframes writer-portrait { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes writer-trunk { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes writer-moss { 0% { opacity: 0.5; transform: scale(0.8); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.9); } }

/* maritime-tradition */
.scn-maritime-tradition {
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 40%, #9aaaba 70%, #8a9aaa 100%),
              radial-gradient(ellipse at 50% 60%, #9aaaba 0%, transparent 60%);
}
.scn-maritime-tradition .sea-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  animation: mari-sea 10s ease-in-out infinite alternate;
}
.scn-maritime-tradition .ship-hull {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: mari-hull 8s ease-in-out infinite;
}
.scn-maritime-tradition .sail-main {
  position: absolute; bottom: 50%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #e8e0d0 0%, #c8c0b0 100%);
  border-radius: 10% 10% 5% 5%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.2);
  animation: mari-sail 12s ease-in-out infinite alternate;
}
.scn-maritime-tradition .sail-fore {
  position: absolute; bottom: 45%; left: 55%; width: 15%; height: 30%;
  background: linear-gradient(135deg, #d8d0c0 0%, #b8b0a0 100%);
  border-radius: 10% 10% 5% 5%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  box-shadow: inset 0 0 10px rgba(0,0,0,.2);
  animation: mari-sail 14s ease-in-out infinite alternate-reverse;
}
.scn-maritime-tradition .mast {
  position: absolute; bottom: 30%; left: 42%; width: 3%; height: 50%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 0 8px rgba(0,0,0,.3);
  animation: mari-mast 20s ease-in-out infinite;
}
.scn-maritime-tradition .wave-front {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 20% 100%, rgba(200,220,240,.3) 0%, transparent 70%),
              radial-gradient(ellipse at 80% 100%, rgba(200,220,240,.2) 0%, transparent 60%);
  filter: blur(8px);
  animation: mari-wave 5s ease-in-out infinite alternate;
}
.scn-maritime-tradition .wave-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,200,220,.15) 0%, transparent 60%);
  filter: blur(6px);
  animation: mari-wave 7s ease-in-out infinite alternate-reverse;
}
@keyframes mari-sea { 0% { transform: translateY(0); } 100% { transform: translateY(3px); } }
@keyframes mari-hull { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes mari-sail { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(2px) scaleX(1.03); } }
@keyframes mari-mast { 0% { transform: rotate(0deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes mari-wave { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.2); } 100% { transform: translateX(-5px) scaleY(0.9); } }

/* oyster-like-tenacity */
.scn-oyster-like-tenacity {
  background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 40%, #8a9aaa 70%, #7a8a9a 100%),
              radial-gradient(ellipse at 50% 80%, #9aaaba 0%, transparent 60%);
}
.scn-oyster-like-tenacity .rock-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 100%);
  border-radius: 60% 40% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: oyster-rock 25s ease-in-out infinite alternate;
}
.scn-oyster-like-tenacity .oyster-shell {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 50%, #8a7a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,.3), inset 0 0 20px rgba(0,0,0,.2);
  animation: oyster-shape 15s ease-in-out infinite alternate;
}
.scn-oyster-like-tenacity .figure-clinging {
  position: absolute; bottom: 25%; left: 42%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oyster-cling 6s ease-in-out infinite;
}
.scn-oyster-like-tenacity .water-wash {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 30% 100%, rgba(200,220,240,.2) 0%, transparent 70%),
              radial-gradient(ellipse at 70% 100%, rgba(200,220,240,.15) 0%, transparent 60%);
  filter: blur(10px);
  animation: oyster-wash 8s ease-in-out infinite alternate;
}
.scn-oyster-like-tenacity .seaweed {
  position: absolute; bottom: 15%; left: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #4a7a4a 0%, #2a5a2a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 4px rgba(0,0,0,.2);
  animation: oyster-seaweed 4s ease-in-out infinite alternate;
}
.scn-oyster-like-tenacity .foam-line {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, rgba(200,220,240,.3) 0%, transparent 50%, rgba(200,220,240,.2) 100%);
  filter: blur(2px);
  animation: oyster-foam 3s ease-in-out infinite alternate;
}
@keyframes oyster-rock { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes oyster-shape { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(2deg) scale(1.03); } 100% { transform: rotate(0deg) scale(0.97); } }
@keyframes oyster-cling { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes oyster-wash { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.6; transform: translateX(10px); } 100% { opacity: 0.4; transform: translateX(-10px); } }
@keyframes oyster-seaweed { 0% { transform: rotate(-5deg) translateY(0); } 100% { transform: rotate(5deg) translateY(-2px); } }
@keyframes oyster-foam { 0% { opacity: 0.2; transform: scaleX(1); } 100% { opacity: 0.5; transform: scaleX(1.2); } }

.scn-pearl-dancing-back {
  background: 
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #1e2e1e 70%, #2a3a2a 100%),
    radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, #0a0a12 80%);
}
.scn-pearl-dancing-back .forest { position:absolute; inset:0 0 30% 0; background: repeating-linear-gradient(90deg, #1a2a1a 0px, #1a2a1a 12px, transparent 12px, transparent 30px); opacity:0.3; animation: pdb-forest 25s linear infinite; }
.scn-pearl-dancing-back .brook { position:absolute; bottom:20%; left:0; right:0; height:8%; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); border-radius: 50% 40% 50% 40%; animation: pdb-brook 6s ease-in-out infinite alternate; }
.scn-pearl-dancing-back .pearl { position:absolute; bottom:28%; left:38%; width:20px; height:36px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pdb-dance 3s ease-in-out infinite; }
.scn-pearl-dancing-back .hester { position:absolute; bottom:26%; right:30%; width:24px; height:40px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pdb-stand 8s ease-in-out infinite; }
.scn-pearl-dancing-back .rock { position:absolute; bottom:22%; left:20%; width:50px; height:30px; background: radial-gradient(ellipse at 40% 30%, #4a4a3a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); }
.scn-pearl-dancing-back .leaf-wisp { position:absolute; top:15%; left:10%; width:30px; height:10px; background: radial-gradient(ellipse, #4a6a4a 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: pdb-leaf 12s linear infinite; }
@keyframes pdb-forest { 0% { transform: translateX(0); } 100% { transform: translateX(-30px); } }
@keyframes pdb-brook { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pdb-dance { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(3deg); } 50% { transform: translateX(10px) translateY(0) rotate(-2deg); } 75% { transform: translateX(5px) translateY(-2px) rotate(4deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes pdb-stand { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes pdb-leaf { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:0.4; } 50% { transform: translateX(40vw) translateY(-30px) rotate(180deg); opacity:0.6; } 100% { transform: translateX(80vw) translateY(10px) rotate(360deg); opacity:0; } }

.scn-ship-in-harbor {
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, #0a0a12 80%);
}
.scn-ship-in-harbor .sky-grey { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a4a5a 0%, transparent 100%); animation: sih-sky 15s ease-in-out infinite alternate; }
.scn-ship-in-harbor .water { position:absolute; bottom:0; left:0; right:0; height:45%; background: repeating-linear-gradient(90deg, #2a3a3a 0px, #2a3a3a 8px, transparent 8px, transparent 20px); animation: sih-water 8s linear infinite; }
.scn-ship-in-harbor .hull { position:absolute; bottom:38%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,0.6); animation: sih-rock 6s ease-in-out infinite; }
.scn-ship-in-harbor .mast-fore { position:absolute; bottom:42%; left:44%; width:6px; height:80px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: sih-sway 8s ease-in-out infinite; }
.scn-ship-in-harbor .mast-aft { position:absolute; bottom:42%; left:54%; width:5px; height:60px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: sih-sway 8s ease-in-out infinite reverse; }
.scn-ship-in-harbor .sail-1 { position:absolute; bottom:48%; left:41%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 60%, #4a4a4a 0%, #2a2a2a 100%); border-radius: 50% 50% 20% 20%; transform:rotate(-5deg); animation: sih-sail 10s ease-in-out infinite; }
.scn-ship-in-harbor .sail-2 { position:absolute; bottom:45%; left:52%; width:30px; height:25px; background: radial-gradient(ellipse at 50% 60%, #4a4a4a 0%, #2a2a2a 100%); border-radius: 50% 50% 20% 20%; transform:rotate(3deg); animation: sih-sail 10s ease-in-out infinite reverse; }
.scn-ship-in-harbor .cloud-harbor { position:absolute; top:12%; right:10%; width:70px; height:16px; background: rgba(90,90,100,0.4); border-radius:50%; filter: blur(8px); animation: sih-cloud 45s linear infinite; }
@keyframes sih-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes sih-water { 0% { background-position: 0 0; } 100% { background-position: -40px 0; } }
@keyframes sih-rock { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } }
@keyframes sih-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes sih-sail { 0%,100% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(0deg) scale(1.05); } }
@keyframes sih-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-hester-arranged-passage {
  background: 
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #1e1e1e 100%),
    radial-gradient(ellipse at 80% 20%, #3a3a4a 0%, transparent 70%);
}
.scn-hester-arranged-passage .deck { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 20% 10% 0 0; }
.scn-hester-arranged-passage .rail { position:absolute; bottom:33%; left:10%; right:10%; height:4px; background: #1a1a1a; border-radius:2px; animation: hap-roll 8s ease-in-out infinite; }
.scn-hester-arranged-passage .hester-fig { position:absolute; bottom:30%; left:30%; width:22px; height:38px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hap-hester 5s ease-in-out infinite; }
.scn-hester-arranged-passage .captain { position:absolute; bottom:31%; left:45%; width:24px; height:36px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hap-captain 6s ease-in-out infinite; }
.scn-hester-arranged-passage .child-pearl { position:absolute; bottom:30%; left:55%; width:16px; height:28px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hap-child 9s ease-in-out infinite; }
.scn-hester-arranged-passage .lantern-passage { position:absolute; bottom:40%; left:60%; width:8px; height:12px; background: radial-gradient(circle, #b09050 0%, #806030 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 4px #806030, 0 0 40px 10px rgba(128,96,48,0.4); animation: hap-lantern 3s ease-in-out infinite alternate; }
.scn-hester-arranged-passage .mast-shadow { position:absolute; bottom:35%; left:20%; width:4px; height:70px; background: #1a1a1a; transform: rotate(5deg); animation: hap-shadow 8s ease-in-out infinite; }
@keyframes hap-roll { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hap-hester { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-2px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hap-captain { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes hap-child { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(0.9); } }
@keyframes hap-lantern { 0% { box-shadow: 0 0 12px 2px #806030, 0 0 30px 6px rgba(128,96,48,0.3); opacity:0.7; } 50% { box-shadow: 0 0 24px 6px #b09050, 0 0 50px 12px rgba(176,144,80,0.5); opacity:1; } 100% { box-shadow: 0 0 14px 3px #806030, 0 0 35px 8px rgba(128,96,48,0.35); opacity:0.8; } }
@keyframes hap-shadow { 0%,100% { transform: rotate(5deg); } 50% { transform: rotate(3deg) scaleY(0.95); } }

.scn-election-sermon-convenient {
  background: 
    linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 40%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a0a 0%, #050504 80%);
}
.scn-election-sermon-convenient .church-wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #2a2a1a 0px, #2a2a1a 4px, transparent 4px, transparent 60px); opacity:0.2; }
.scn-election-sermon-convenient .pulpit { position:absolute; bottom:20%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.7); animation: esc-pulpit 12s ease-in-out infinite; }
.scn-election-sermon-convenient .minister { position:absolute; bottom:28%; left:50%; width:18px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esc-minister 7s ease-in-out infinite; }
.scn-election-sermon-convenient .window-grey { position:absolute; top:15%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 0 20px rgba(90,90,70,0.3); animation: esc-window 9s ease-in-out infinite alternate; }
.scn-election-sermon-convenient .candle { position:absolute; bottom:26%; left:70%; width:6px; height:16px; background: linear-gradient(180deg, #a09070 0%, #706050 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 12px 3px #c0a060; animation: esc-candle 3s ease-in-out infinite alternate; }
.scn-election-sermon-convenient .book { position:absolute; bottom:20%; left:48%; width:20px; height:10px; background: #2a2a1a; border-radius: 2px; transform: rotate(-5deg); animation: esc-book 15s ease-in-out infinite; }
@keyframes esc-pulpit { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes esc-minister { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 33% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 66% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes esc-window { 0% { background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); opacity:0.6; } 50% { background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); opacity:0.9; } 100% { background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); opacity:0.7; } }
@keyframes esc-candle { 0% { box-shadow: 0 0 8px 2px #c0a060, 0 0 20px 6px rgba(192,160,96,0.4); transform: scaleY(1); } 50% { box-shadow: 0 0 14px 4px #d0b070, 0 0 30px 10px rgba(208,176,112,0.6); transform: scaleY(1.05); } 100% { box-shadow: 0 0 10px 3px #c0a060, 0 0 25px 8px rgba(192,160,96,0.5); transform: scaleY(0.98); } }
@keyframes esc-book { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } }

/* general-no-cruelty */
.scn-general-no-cruelty {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 40%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, transparent 70%);
}
.scn-general-no-cruelty .room-nc            { position:absolute; inset:0; background:linear-gradient(135deg, #4a3a2a 0%, #2a1a0e 100%); animation: room-nc-pulse 12s ease-in-out infinite alternate; }
.scn-general-no-cruelty .fireplace-nc       { position:absolute; bottom:15%; left:30%; width:120px; height:160px; background:linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%); border-radius:8% 8% 4% 4%; box-shadow:inset 0 10px 20px rgba(0,0,0,.6); transform:scaleX(.9); }
.scn-general-no-cruelty .fire-glow-nc       { position:absolute; bottom:18%; left:35%; width:60px; height:80px; background:radial-gradient(circle at 50% 20%, #d08040 0%, #a06020 40%, transparent 80%); border-radius:50%; filter:blur(8px); animation: fire-glow-nc 3s ease-in-out infinite alternate; }
.scn-general-no-cruelty .general-figure-nc { position:absolute; bottom:12%; left:38%; width:50px; height:120px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: figure-sit-nc 5s ease-in-out infinite; }
.scn-general-no-cruelty .sword-nc          { position:absolute; bottom:30%; left:28%; width:6px; height:90px; background:linear-gradient(180deg, #a08060 0%, #605040 100%); border-radius:2px; transform:rotate(15deg); animation: sword-gleam-nc 8s ease-in-out infinite; }
.scn-general-no-cruelty .shadow-nc         { position:absolute; bottom:10%; left:30%; width:180px; height:20px; background:radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); filter:blur(6px); animation: shadow-shift-nc 10s ease-in-out infinite; }
@keyframes room-nc-pulse      { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fire-glow-nc       { 0% { opacity:.5; transform:scale(.9) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.6; transform:scale(1) } }
@keyframes figure-sit-nc      { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-4px) rotate(2deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes sword-gleam-nc     { 0% { opacity:.4; box-shadow:0 0 4px 2px rgba(160,128,96,.2) } 50% { opacity:1; box-shadow:0 0 12px 6px rgba(200,160,120,.5) } 100% { opacity:.6; box-shadow:0 0 6px 3px rgba(160,128,96,.3) } }
@keyframes shadow-shift-nc    { 0% { transform:translateX(0) scaleX(1) } 50% { transform:translateX(10px) scaleX(1.2) } 100% { transform:translateX(-5px) scaleX(.9) } }

/* general-flowers-and-humor */
.scn-general-flowers-and-humor {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 50%, #1a0e08 100%),
    radial-gradient(ellipse at 60% 20%, #6a5040 0%, transparent 60%);
}
.scn-general-flowers-and-humor .room-fh              { position:absolute; inset:0; background:linear-gradient(135deg, #3a2a1e 0%, #2a1a0e 100%); }
.scn-general-flowers-and-humor .table-fh             { position:absolute; bottom:20%; left:25%; width:180px; height:100px; background:linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius:4%; box-shadow:0 8px 16px rgba(0,0,0,.5); transform:perspective(400px) rotateX(15deg); }
.scn-general-flowers-and-humor .vase-fh              { position:absolute; bottom:32%; left:38%; width:30px; height:60px; background:linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-general-flowers-and-humor .flowers-fh           { position:absolute; bottom:45%; left:35%; width:60px; height:50px; background:radial-gradient(circle at 30% 50%, #b08040 0%, #c06030 40%, #a05020 70%, transparent 100%); border-radius:50%; filter:blur(2px); animation: flowers-bob-fh 4s ease-in-out infinite alternate; }
.scn-general-flowers-and-humor .figure-profile-fh   { position:absolute; bottom:10%; left:55%; width:40px; height:100px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:60% 40% 40% 60% / 60% 50% 50% 40%; transform:translateX(-50%); animation: profile-turn-fh 7s ease-in-out infinite; }
.scn-general-flowers-and-humor .lamp-fh              { position:absolute; bottom:25%; left:15%; width:8px; height:40px; background:linear-gradient(180deg, #c0a070 0%, #806040 100%); border-radius:2px; box-shadow:0 0 20px 10px rgba(192,160,112,.3); animation: lamp-glow-fh 3s ease-in-out infinite alternate; }
.scn-general-flowers-and-humor .shadow-fh            { position:absolute; bottom:15%; left:20%; width:200px; height:30px; background:radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter:blur(8px); animation: shadow-fade-fh 12s ease-in-out infinite; }
@keyframes flowers-bob-fh    { 0% { transform:translateY(0) rotate(-3deg) } 50% { transform:translateY(-5px) rotate(3deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes profile-turn-fh   { 0% { transform:translateX(-50%) rotate(-5deg) } 50% { transform:translateX(-45%) rotate(5deg) } 100% { transform:translateX(-50%) rotate(0) } }
@keyframes lamp-glow-fh      { 0% { opacity:.6; box-shadow:0 0 15px 5px rgba(192,160,112,.2) } 50% { opacity:1; box-shadow:0 0 30px 15px rgba(255,200,140,.5) } 100% { opacity:.8; box-shadow:0 0 20px 8px rgba(192,160,112,.3) } }
@keyframes shadow-fade-fh    { 0% { opacity:.6; transform:scaleX(1) } 50% { opacity:1; transform:scaleX(1.2) } 100% { opacity:.5; transform:scaleX(.9) } }

/* general-remote-presence */
.scn-general-remote-presence {
  background:
    linear-gradient(180deg, #3a2a1e 0%, #2a1a0e 50%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 20%, #5a4030 0%, transparent 70%);
}
.scn-general-remote-presence .room-rp                    { position:absolute; inset:0; background:linear-gradient(135deg, #4a3a2a 0%, #2a1a0e 100%); }
.scn-general-remote-presence .fireplace-rp               { position:absolute; bottom:10%; left:20%; width:140px; height:180px; background:linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius:10% 10% 5% 5%; box-shadow:inset 0 15px 30px rgba(0,0,0,.7); }
.scn-general-remote-presence .chair-rp                   { position:absolute; bottom:15%; left:30%; width:70px; height:90px; background:linear-gradient(180deg, #3a2818 0%, #1a0e08 100%); border-radius:20% 20% 10% 10% / 40% 40% 20% 20%; transform:rotate(-5deg); }
.scn-general-remote-presence .general-figure-rp          { position:absolute; bottom:20%; left:28%; width:50px; height:110px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: figure-recline-rp 6s ease-in-out infinite; }
.scn-general-remote-presence .surveyor-figure-rp         { position:absolute; bottom:10%; left:55%; width:30px; height:80px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:30% 40% 30% 40% / 50% 40% 60% 50%; transform:translateX(-50%); animation: surveyor-shift-rp 8s ease-in-out infinite; }
.scn-general-remote-presence .hearth-glow-rp             { position:absolute; bottom:15%; left:22%; width:100px; height:120px; background:radial-gradient(circle at 50% 30%, #d08040 0%, #a06020 40%, transparent 80%); filter:blur(12px); animation: hearth-glow-rp 4s ease-in-out infinite alternate; }
.scn-general-remote-presence .wall-shadow-rp             { position:absolute; bottom:5%; left:10%; width:300px; height:40px; background:radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 80%); filter:blur(10px); animation: wall-shadow-pulse-rp 15s ease-in-out infinite; }
@keyframes figure-recline-rp     { 0% { transform:rotate(0) translateY(0) } 50% { transform:rotate(-4deg) translateY(-3px) } 100% { transform:rotate(2deg) translateY(0) } }
@keyframes surveyor-shift-rp     { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-45%) scaleY(1.05) } 100% { transform:translateX(-50%) scaleY(1) } }
@keyframes hearth-glow-rp        { 0% { opacity:.4; transform:scale(.9) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:.6; transform:scale(1) } }
@keyframes wall-shadow-pulse-rp  { 0% { opacity:.5; transform:scaleX(1) } 50% { opacity:.8; transform:scaleX(1.1) } 100% { opacity:.4; transform:scaleX(.95) } }

/* general-sword-analogy */
.scn-general-sword-analogy {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 50%, #1a0e08 100%),
    radial-gradient(ellipse at 30% 40%, #5a3a2a 0%, transparent 70%);
}
.scn-general-sword-analogy .room-sa                { position:absolute; inset:0; background:linear-gradient(135deg, #3a2a1e 0%, #2a1a0e 100%); }
.scn-general-sword-analogy .desk-sa                { position:absolute; bottom:12%; left:10%; width:200px; height:80px; background:linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius:2%; box-shadow:0 8px 16px rgba(0,0,0,.5); }
.scn-general-sword-analogy .sword-wall-sa          { position:absolute; bottom:55%; left:40%; width:12px; height:100px; background:linear-gradient(180deg, #a08060 0%, #605040 100%); border-radius:2px; transform:rotate(20deg); box-shadow:0 0 8px 2px rgba(160,128,96,.3); animation: sword-gleam-sa 6s ease-in-out infinite alternate; }
.scn-general-sword-analogy .soldier-silhouette-sa  { position:absolute; bottom:10%; left:50%; width:45px; height:110px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: soldier-stand-sa 7s ease-in-out infinite; }
.scn-general-sword-analogy .ship-model-sa          { position:absolute; bottom:25%; left:15%; width:80px; height:60px; background:linear-gradient(90deg, #5a3a2a 0%, #3a2818 100%); border-radius:4% 4% 40% 40%; clip-path:polygon(0% 80%, 20% 0%, 80% 0%, 100% 80%, 50% 100%); animation: ship-bob-sa 10s ease-in-out infinite; }
.scn-general-sword-analogy .lantern-sa             { position:absolute; bottom:40%; left:65%; width:10px; height:20px; background:radial-gradient(circle, #e0b060 0%, #b08040 60%); border-radius:30%; box-shadow:0 0 30px 15px rgba(224,176,96,.3); animation: lantern-swing-sa 5s ease-in-out infinite alternate; }
.scn-general-sword-analogy .wave-sa                { position:absolute; bottom:0; left:0; right:0; height:40px; background:linear-gradient(180deg, transparent 0%, rgba(80,60,40,.4) 100%); filter:blur(4px); animation: wave-move-sa 20s linear infinite; }
@keyframes sword-gleam-sa        { 0% { opacity:.3; box-shadow:0 0 4px 1px rgba(160,128,96,.1) } 50% { opacity:1; box-shadow:0 0 16px 8px rgba(200,160,120,.5) } 100% { opacity:.5; box-shadow:0 0 8px 3px rgba(160,128,96,.3) } }
@keyframes soldier-stand-sa      { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-3px) rotate(2deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes ship-bob-sa           { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-4px) rotate(3deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes lantern-swing-sa      { 0% { transform:rotate(-10deg) } 50% { transform:rotate(10deg) } 100% { transform:rotate(-5deg) } }
@keyframes wave-move-sa          { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }

/* magistrates-sobriety */
.scn-magistrates-sobriety {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d9c48a 40%, #b89a5e 100%),
    radial-gradient(ellipse at 60% 30%, #fff4d6 0%, transparent 70%);
}
.scn-magistrates-sobriety .bench { position:absolute; bottom:20%; left:15%; width:70%; height:16px; background: linear-gradient(90deg, #8b6f3a 0%, #a8864a 50%, #8b6f3a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.15); animation: ms-bench 12s ease-in-out infinite alternate; }
.scn-magistrates-sobriety .figure-far { position:absolute; bottom:32%; left:22%; width:28px; height:50px; background: linear-gradient(180deg, #4a3b2a 0%, #2e2419 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scale(0.85); opacity:0.7; animation: ms-figure-far 15s ease-in-out infinite alternate; }
.scn-magistrates-sobriety .figure-near { position:absolute; bottom:34%; left:52%; width:30px; height:55px; background: linear-gradient(180deg, #3f3222 0%, #261e14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: ms-figure-near 10s ease-in-out infinite alternate; }
.scn-magistrates-sobriety .table { position:absolute; bottom:22%; left:38%; width:80px; height:10px; background: linear-gradient(90deg, #7a6032 0%, #9a7a44 50%, #7a6032 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: ms-table 18s ease-in-out infinite; }
.scn-magistrates-sobriety .shadow-dapple { position:absolute; inset:30% 0 10% 0; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.08) 0%, transparent 60%), radial-gradient(ellipse at 70% 40%, rgba(0,0,0,0.06) 0%, transparent 50%); animation: ms-dapple 20s ease-in-out infinite alternate; }
.scn-magistrates-sobriety .leaf-a { position:absolute; top:15%; left:10%; width:20px; height:20px; background: radial-gradient(ellipse, #8aa86e 0%, #5e7a44 100%); border-radius:50% 0 50% 0; transform: rotate(20deg); filter: blur(1px); animation: ms-leaf-a 30s linear infinite; }
.scn-magistrates-sobriety .leaf-b { position:absolute; top:20%; right:20%; width:16px; height:16px; background: radial-gradient(ellipse, #7a9a5e 0%, #4e6a34 100%); border-radius:0 50% 0 50%; transform: rotate(-15deg); filter: blur(1px); animation: ms-leaf-b 40s linear infinite reverse; }
.scn-magistrates-sobriety .light-shift { position:absolute; inset:0 0 20% 0; background: radial-gradient(ellipse at 50% 10%, #fff7e0 0%, transparent 60%); opacity:0.3; animation: ms-light 8s ease-in-out infinite alternate; }
@keyframes ms-bench { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ms-figure-far { 0% { transform: scale(0.85) translateX(0); } 50% { transform: scale(0.87) translateX(2px); } 100% { transform: scale(0.85) translateX(0); } }
@keyframes ms-figure-near { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ms-table { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes ms-dapple { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes ms-leaf-a { 0% { transform: translateX(-20px) rotate(20deg); } 100% { transform: translateX(120vw) rotate(360deg); } }
@keyframes ms-leaf-b { 0% { transform: translateX(0) rotate(-15deg); } 100% { transform: translateX(-100vw) rotate(-360deg); } }
@keyframes ms-light { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.25; } }

/* young-divine-approaches */
.scn-young-divine-approaches {
  background: 
    linear-gradient(180deg, #fceacb 0%, #e6c794 40%, #c6a26a 100%),
    radial-gradient(ellipse at 40% 40%, #fff5d6 0%, transparent 70%);
}
.scn-young-divine-approaches .pulpit { position:absolute; bottom:20%; left:38%; width:80px; height:80px; background: linear-gradient(180deg, #7a5e3e 0%, #4a3422 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: yd-pulpit 10s ease-in-out infinite alternate; }
.scn-young-divine-approaches .divine-figure { position:absolute; bottom:40%; left:46%; width:32px; height:64px; background: linear-gradient(180deg, #2e2419 0%, #1a120c 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: yd-figure 4s ease-in-out infinite alternate; }
.scn-young-divine-approaches .halo-glow { position:absolute; bottom:62%; left:46%; width:50px; height:50px; background: radial-gradient(circle, rgba(255,215,140,0.6) 0%, rgba(255,180,80,0.2) 50%, transparent 80%); border-radius:50%; filter: blur(4px); animation: yd-halo 3s ease-in-out infinite alternate; }
.scn-young-divine-approaches .crowd-left { position:absolute; bottom:22%; left:8%; width:80px; height:100px; background: linear-gradient(180deg, #3a2c1e 0%, #1f1610 100%); border-radius: 60% 40% 30% 30% / 50% 40% 20% 20%; transform: skewX(5deg); opacity:0.5; animation: yd-crowd 12s ease-in-out infinite alternate; }
.scn-young-divine-approaches .crowd-right { position:absolute; bottom:22%; right:10%; width:70px; height:110px; background: linear-gradient(180deg, #443422 0%, #241c12 100%); border-radius: 40% 60% 30% 30% / 40% 50% 20% 20%; transform: skewX(-5deg); opacity:0.5; animation: yd-crowd 14s ease-in-out infinite alternate; }
.scn-young-divine-approaches .shadow-step { position:absolute; bottom:15%; left:36%; width:20px; height:4px; background: rgba(0,0,0,0.3); border-radius:50%; animation: yd-shadow-step 5s ease-in-out infinite; }
.scn-young-divine-approaches .light-beam { position:absolute; top:0; left:40%; width:80px; height:60%; background: linear-gradient(180deg, rgba(255,230,170,0.3) 0%, transparent 100%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); opacity:0.8; animation: yd-beam 6s ease-in-out infinite alternate; }
.scn-young-divine-approaches .dust-mote { width:4px; height:4px; background:#fff; border-radius:50%; filter: blur(1px); animation: yd-mote 20s linear infinite; }
.scn-young-divine-approaches .mote-1 { position:absolute; top:30%; left:50%; }
.scn-young-divine-approaches .mote-2 { position:absolute; top:40%; left:45%; animation-delay: 7s; }
@keyframes yd-pulpit { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes yd-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg) scale(1.02); } 100% { transform: translateY(0) rotate(0); } }
@keyframes yd-halo { 0% { opacity:0.5; transform: scale(0.95); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes yd-crowd { 0% { transform: skewX(5deg) translateY(0); } 50% { transform: skewX(3deg) translateY(-2px); } 100% { transform: skewX(5deg) translateY(0); } }
@keyframes yd-shadow-step { 0% { opacity:1; transform: scale(1); } 50% { opacity:0.5; transform: scale(0.8); } 100% { opacity:1; transform: scale(1); } }
@keyframes yd-beam { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes yd-mote { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-30px) scale(1.5); opacity:0.8; } 100% { transform: translateY(-60px) scale(0.5); opacity:0; } }

/* dimmesdale-energy */
.scn-dimmesdale-energy {
  background: 
    linear-gradient(180deg, #f5c88a 0%, #d6993a 40%, #a06820 100%),
    radial-gradient(ellipse at 60% 40%, #ffd48a 0%, transparent 60%);
}
.scn-dimmesdale-energy .cliff { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 30% 0 0 0 / 50% 0 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: de-cliff 20s ease-in-out infinite alternate; }
.scn-dimmesdale-energy .figure-energized { position:absolute; bottom:28%; left:46%; width:36px; height:70px; background: linear-gradient(180deg, #2a1e14 0%, #0d0804 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: de-figure 5s ease-in-out infinite alternate; }
.scn-dimmesdale-energy .aura-glow { position:absolute; bottom:36%; left:44%; width:50px; height:50px; background: radial-gradient(circle, rgba(255,200,100,0.5) 0%, rgba(255,150,50,0.2) 50%, transparent 80%); border-radius:50%; filter: blur(6px); animation: de-aura 3s ease-in-out infinite alternate; }
.scn-dimmesdale-energy .furnace-light { position:absolute; inset:20% 0 30% 0; background: radial-gradient(ellipse at 50% 60%, #ff9933 0%, #cc6600 30%, transparent 70%); opacity:0.5; mix-blend-mode: screen; animation: de-furnace 4s ease-in-out infinite alternate; }
.scn-dimmesdale-energy .ember { width:6px; height:6px; background: radial-gradient(circle, #ffb347 0%, #cc5500 80%); border-radius:50%; filter: blur(1px); animation: de-ember 6s ease-in-out infinite; }
.scn-dimmesdale-energy .ember-1 { position:absolute; bottom:40%; left:48%; animation-delay: 0s; }
.scn-dimmesdale-energy .ember-2 { position:absolute; bottom:45%; left:42%; animation-delay: 2s; }
.scn-dimmesdale-energy .shadow-wisp { position:absolute; bottom:20%; left:30%; width:60px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); filter: blur(10px); animation: de-wisp 15s ease-in-out infinite alternate; }
@keyframes de-cliff { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes de-figure { 0% { transform: translateY(0) rotate(-2deg) scale(1); } 50% { transform: translateY(-6px) rotate(3deg) scale(1.05); } 100% { transform: translateY(0) rotate(0) scale(1); } }
@keyframes de-aura { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:0.9; transform: scale(1.3); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes de-furnace { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes de-ember { 0%,100% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-20px) scale(1.5); opacity:1; } }
@keyframes de-wisp { 0% { transform: translateX(0); opacity:0.3; } 50% { transform: translateX(10px); opacity:0.5; } 100% { transform: translateX(0); opacity:0.2; } }

/* dimmesdale-abstracted */
.scn-dimmesdale-abstracted {
  background: 
    linear-gradient(180deg, #e6d4b0 0%, #c4a87a 50%, #8a6e44 100%),
    radial-gradient(ellipse at 50% 30%, #fff5d6 0%, transparent 70%);
}
.scn-dimmesdale-abstracted .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a5e3a 0%, #4a3420 100%); border-radius: 20% 20% 0 0; }
.scn-dimmesdale-abstracted .figure-body { position:absolute; bottom:25%; left:45%; width:30px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: da-body 4s ease-in-out infinite alternate; }
.scn-dimmesdale-abstracted .figure-ghost { position:absolute; bottom:30%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, rgba(255,215,140,0.2) 0%, transparent 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; filter: blur(4px); opacity:0.5; animation: da-ghost 6s ease-in-out infinite alternate; }
.scn-dimmesdale-abstracted .trail-mist { position:absolute; bottom:20%; left:10%; width:100px; height:30px; background: radial-gradient(ellipse, rgba(255,255,200,0.15) 0%, transparent 80%); filter: blur(12px); animation: da-mist 12s ease-in-out infinite alternate; }
.scn-dimmesdale-abstracted .sun-ring { position:absolute; top:8%; left:50%; width:100px; height:100px; margin-left:-50px; border-radius:50%; background: radial-gradient(circle, rgba(255,230,170,0.3) 0%, transparent 70%); animation: da-sun 8s ease-in-out infinite alternate; }
.scn-dimmesdale-abstracted .abstract-shapes { width:20px; height:20px; background: radial-gradient(circle, rgba(200,180,140,0.2) 0%, transparent 70%); border-radius:50%; filter: blur(6px); position:absolute; }
.scn-dimmesdale-abstracted .shape-a { top:40%; left:20%; animation: da-shape-a 20s linear infinite; }
.scn-dimmesdale-abstracted .shape-b { top:50%; left:60%; width:30px; height:30px; animation: da-shape-b 25s linear infinite reverse; }
.scn-dimmesdale-abstracted .shape-c { top:35%; left:75%; width:15px; height:15px; animation: da-shape-c 18s linear infinite; }
@keyframes da-body { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes da-ghost { 0% { opacity:0.3; transform: translateX(0) scale(1); } 50% { opacity:0.7; transform: translateX(10px) scale(1.1); } 100% { opacity:0.4; transform: translateX(0) scale(1); } }
@keyframes da-mist { 0% { transform: translateX(0); opacity:0.3; } 50% { transform: translateX(30px); opacity:0.5; } 100% { transform: translateX(0); opacity:0.2; } }
@keyframes da-sun { 0% { opacity:0.4; transform: scale(0.95); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes da-shape-a { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(30px) translateY(-20px); } 100% { transform: translateX(60px) translateY(0); } }
@keyframes da-shape-b { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-20px) scale(1.5); opacity:0.6; } 100% { transform: translateX(0) scale(1); } }
@keyframes da-shape-c { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-30px) rotate(180deg); opacity:0.4; } 100% { transform: translateY(0) rotate(360deg); } }

.scn-hester-internal-refusal {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b7 40%, #d4b896 100%),
              radial-gradient(ellipse at 80% 20%, #fff5e0 0%, transparent 60%);
}
.scn-hester-internal-refusal .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e3d0 0%, #d9c8a8 50%, #c4b090 100%);
  border-radius: 0;
}
.scn-hester-internal-refusal .window {
  position: absolute; top: 12%; left: 18%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, #fefce8 0%, #e8d8c0 70%, transparent 100%);
  border: 4px solid #b8a084;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255, 240, 200, 0.6);
  animation: hir-window 6s ease-in-out infinite alternate;
}
.scn-hester-internal-refusal .sunbeam {
  position: absolute; top: 12%; left: 18%; width: 35%; height: 70%;
  background: linear-gradient(160deg, rgba(255,245,200,.5) 0%, transparent 70%);
  transform: skewX(-5deg);
  animation: hir-beam 8s ease-in-out infinite alternate;
}
.scn-hester-internal-refusal .hester {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2e24 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hir-figure 4s ease-in-out infinite;
}
.scn-hester-internal-refusal .pearl {
  position: absolute; bottom: 22%; left: 50%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: hir-figure 4s ease-in-out infinite 0.5s;
}
.scn-hester-internal-refusal .scarlet {
  position: absolute; bottom: 28%; left: 32%; width: 8px; height: 10px;
  background: #c8553d;
  border-radius: 10% 10% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(200,85,61,.5);
  animation: hir-glow 3s ease-in-out infinite alternate;
}
@keyframes hir-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(255,240,200,.4); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,240,200,.8); }
  100% { opacity: 0.85; box-shadow: inset 0 0 25px rgba(255,240,200,.5); }
}
@keyframes hir-beam {
  0% { opacity: 0.7; transform: skewX(-5deg) translateX(0); }
  50% { opacity: 1; transform: skewX(-5deg) translateX(5px); }
  100% { opacity: 0.8; transform: skewX(-5deg) translateX(-3px); }
}
@keyframes hir-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes hir-glow {
  0% { transform: scale(1); box-shadow: 0 0 8px 2px rgba(200,85,61,.3); }
  50% { transform: scale(1.2); box-shadow: 0 0 20px 6px rgba(200,85,61,.7); }
  100% { transform: scale(0.95); box-shadow: 0 0 12px 4px rgba(200,85,61,.4); }
}

.scn-talisman-forsook {
  background: linear-gradient(180deg, #f2e6d0 0%, #d1b896 40%, #806040 100%),
              radial-gradient(ellipse at 60% 0%, #ffe080 0%, transparent 70%);
}
.scn-talisman-forsook .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffeac0 0%, #d4b88a 100%);
  animation: tf-sky 12s ease-in-out infinite alternate;
}
.scn-talisman-forsook .bg-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-talisman-forsook .sun {
  position: absolute; top: 8%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5c0 0%, #ffd680 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #ffd680, 0 0 120px 40px rgba(255,214,128,.3);
  animation: tf-sun 20s ease-in-out infinite alternate;
}
.scn-talisman-forsook .hester {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tf-hester 6s ease-in-out infinite;
}
.scn-talisman-forsook .shadow {
  position: absolute; bottom: 28%; left: 48%; width: 40px; height: 12px;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: tf-shadow 6s ease-in-out infinite;
}
.scn-talisman-forsook .symbol {
  position: absolute; bottom: 38%; left: 50%; width: 10px; height: 12px;
  transform: translateX(-50%);
  background: #a0461a;
  border-radius: 8% 8% 8% 8%;
  box-shadow: 0 0 14px 4px #a0461a, 0 0 30px 8px rgba(160,70,26,.3);
  animation: tf-symbol 3s ease-in-out infinite alternate;
}
@keyframes tf-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes tf-sun {
  0% { transform: scale(0.95); opacity: 0.9; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); opacity: 0.85; }
}
@keyframes tf-hester {
  0% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-50%) translateY(-3px); }
  50% { transform: translateX(-50%) translateY(0); }
  75% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes tf-shadow {
  0% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(1.3); opacity: 0.6; }
  100% { transform: scale(0.9); opacity: 0.3; }
}
@keyframes tf-symbol {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); box-shadow: 0 0 10px 2px #a0461a; }
  50% { transform: translateX(-50%) scale(1.15) rotate(5deg); box-shadow: 0 0 25px 8px #a0461a; }
  100% { transform: translateX(-50%) scale(0.95) rotate(-3deg); box-shadow: 0 0 15px 4px #a0461a; }
}

.scn-child-not-let-drop {
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a0e 40%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 70%, #5a3a22 0%, transparent 80%);
}
.scn-child-not-let-drop .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3420 0%, #2a1a0e 100%);
  border-radius: 0;
}
.scn-child-not-let-drop .table {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #5a3e28 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-child-not-let-drop .candle {
  position: absolute; bottom: 25%; left: 45%; width: 6px; height: 16px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d4a050 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 20px 8px #ffcc66, 0 0 40px 12px rgba(255,204,102,.4);
  animation: cnd-candle 4s ease-in-out infinite alternate;
}
.scn-child-not-let-drop .hester {
  position: absolute; bottom: 14%; left: 35%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cnd-figure 5s ease-in-out infinite;
}
.scn-child-not-let-drop .pearl {
  position: absolute; bottom: 14%; left: 52%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: cnd-figure 5s ease-in-out infinite 0.8s;
}
.scn-child-not-let-drop .bed {
  position: absolute; bottom: 6%; left: 55%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #5a4a32 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
}
@keyframes cnd-candle {
  0% { transform: scaleY(0.95); opacity: 0.9; box-shadow: 0 0 15px 6px #ffcc66, 0 0 30px 10px rgba(255,204,102,.3); }
  50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 0 25px 10px #ffcc66, 0 0 50px 15px rgba(255,204,102,.5); }
  100% { transform: scaleY(0.98); opacity: 0.95; box-shadow: 0 0 18px 8px #ffcc66, 0 0 35px 12px rgba(255,204,102,.4); }
}
@keyframes cnd-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(0); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(0); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-morning-persistent {
  background: linear-gradient(180deg, #c0d0e0 0%, #a0b8d0 40%, #7a96b8 100%),
              radial-gradient(ellipse at 50% 0%, #e8f0ff 0%, transparent 70%);
}
.scn-morning-persistent .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d0dce8 0%, #a8b8c8 100%);
}
.scn-morning-persistent .window {
  position: absolute; top: 8%; right: 10%; width: 28%; height: 42%;
  background: radial-gradient(ellipse at 50% 50%, #f0f8ff 0%, #b0c8e0 70%, transparent 100%);
  border: 3px solid #8a9ab0;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,220,255,0.6);
  animation: mp-window 10s ease-in-out infinite alternate;
}
.scn-morning-persistent .dawn-light {
  position: absolute; top: 8%; right: 10%; width: 30%; height: 60%;
  background: linear-gradient(160deg, rgba(255,248,200,.4) 0%, transparent 70%);
  transform: skewX(-15deg);
  animation: mp-light 8s ease-in-out infinite alternate;
}
.scn-morning-persistent .bed {
  position: absolute; bottom: 6%; left: 10%; width: 50%; height: 25%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.4);
}
.scn-morning-persistent .pearl-up {
  position: absolute; bottom: 28%; left: 20%; width: 16px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-pearl 3s ease-in-out infinite;
}
.scn-morning-persistent .hester-sitting {
  position: absolute; bottom: 10%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2e24 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-hester 5s ease-in-out infinite;
}
@keyframes mp-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(200,220,255,.3); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(200,220,255,.8); }
  100% { opacity: 0.8; box-shadow: inset 0 0 25px rgba(200,220,255,.5); }
}
@keyframes mp-light {
  0% { opacity: 0.6; transform: skewX(-15deg) translateX(0); }
  50% { opacity: 1; transform: skewX(-15deg) translateX(6px); }
  100% { opacity: 0.75; transform: skewX(-15deg) translateX(-4px); }
}
@keyframes mp-pearl {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mp-hester {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

/* Scene: past-revived */
.scn-past-revived {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-past-revived .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; }
.scn-past-revived .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-past-revived .desk { position:absolute; bottom:25%; left:50%; width:120px; height:15px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-past-revived .candle { position:absolute; bottom:30%; left:50%; width:8px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius: 2px; }
.scn-past-revived .flame { position:absolute; bottom:45%; left:50%; width:12px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, #ffd060 0%, #e08030 60%, transparent 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: 0 0 20px 10px rgba(200,100,20,.6); animation: pr-flame 2s ease-in-out infinite alternate; }
.scn-past-revived .figure-sil { position:absolute; bottom:20%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pr-figure 6s ease-in-out infinite; }
.scn-past-revived .memory-shape { position:absolute; top:30%; left:60%; width:40px; height:30px; background: radial-gradient(ellipse, rgba(200,180,150,.3) 0%, transparent 80%); border-radius: 50%; filter: blur(4px); animation: pr-memory 8s ease-in-out infinite alternate; }
.scn-past-revived .shadow { position:absolute; bottom:22%; left:30%; width:80px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius: 50%; transform: skewX(-20deg); }
@keyframes pr-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity:.8; } 50% { transform: translateX(-50%) scaleY(1.2) rotate(2deg); opacity:1; } 100% { transform: translateX(-50%) scaleY(1) rotate(-1deg); opacity:.7; } }
@keyframes pr-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg) translateY(-2px); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pr-memory { 0% { transform: scale(1) translateY(0); opacity:.3; } 50% { transform: scale(1.2) translateY(-8px); opacity:.6; } 100% { transform: scale(0.9) translateY(3px); opacity:.2; } }

/* Scene: upper-room-of-customhouse */
.scn-upper-room-of-customhouse {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a1008 100%),
              radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 80%);
}
.scn-upper-room-of-customhouse .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; }
.scn-upper-room-of-customhouse .floor-planks { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #2a1a0a 10px, #3a2a1a 11px, #2a1a0a 20px); box-shadow: inset 0 5px 10px rgba(0,0,0,.5); }
.scn-upper-room-of-customhouse .beam-left { position:absolute; top:15%; left:10%; width:8px; height:70%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); transform: rotate(-5deg); border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.3); }
.scn-upper-room-of-customhouse .beam-right { position:absolute; top:12%; right:10%; width:8px; height:75%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); transform: rotate(3deg); border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,.3); }
.scn-upper-room-of-customhouse .window-arch { position:absolute; top:10%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-upper-room-of-customhouse .table-large { position:absolute; bottom:18%; left:50%; width:100px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-upper-room-of-customhouse .chair { position:absolute; bottom:15%; left:45%; width:18px; height:30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; transform: rotate(2deg); }
.scn-upper-room-of-customhouse .dust-mote { position:absolute; top:30%; left:20%; width:4px; height:4px; background: rgba(255,220,180,.2); border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,220,180,.1); animation: ur-dust 12s ease-in-out infinite; }
@keyframes ur-dust { 0% { transform: translate(0,0) scale(1); opacity:.3; } 30% { transform: translate(30px,-10px) scale(1.5); opacity:.8; } 60% { transform: translate(60px,20px) scale(0.8); opacity:.4; } 100% { transform: translate(100px,-5px) scale(1); opacity:.2; } }

/* Scene: sorrow-of-wasted-papers */
.scn-sorrow-of-wasted-papers {
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 50%, #050200 100%),
              radial-gradient(ellipse at 40% 60%, #2a1a0a 0%, transparent 70%);
}
.scn-sorrow-of-wasted-papers .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #1a1008 0%, #0a0500 100%); }
.scn-sorrow-of-wasted-papers .pile-base { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.8); transform: skewX(-5deg); }
.scn-sorrow-of-wasted-papers .pile-mid { position:absolute; bottom:15%; left:25%; width:50%; height:15%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 15% 15% 0 0; box-shadow: 0 0 15px rgba(0,0,0,.7); transform: skewX(3deg); }
.scn-sorrow-of-wasted-papers .pile-top { position:absolute; bottom:20%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 10px rgba(0,0,0,.6); }
.scn-sorrow-of-wasted-papers .paper-falling { position:absolute; top:10%; left:50%; width:20px; height:25px; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius: 2px; box-shadow: 0 2px 5px rgba(0,0,0,.5); transform: rotate(15deg); animation: sw-paper 4s ease-in-out infinite; }
.scn-sorrow-of-wasted-papers .lantern-dark { position:absolute; bottom:30%; left:15%; width:12px; height:18px; background: linear-gradient(180deg, #705030 0%, #402818 100%); border-radius: 4px 4px 6px 6px; box-shadow: 0 0 8px rgba(100,60,20,.3); }
.scn-sorrow-of-wasted-papers .glow-faint { position:absolute; bottom:28%; left:13%; width:30px; height:30px; background: radial-gradient(circle, rgba(150,100,40,.15) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: sw-glow 3s ease-in-out infinite alternate; }
@keyframes sw-paper { 0% { transform: translate(0,0) rotate(15deg); opacity:.9; } 50% { transform: translate(-10px,30px) rotate(5deg); opacity:1; } 100% { transform: translate(10px,60px) rotate(-10deg); opacity:0; } }
@keyframes sw-glow { 0% { transform: scale(1); opacity:.2; } 100% { transform: scale(1.4); opacity:.5; } }

/* Scene: history-in-archives */
.scn-history-in-archives {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a1008 100%),
              radial-gradient(ellipse at 70% 30%, #5a4a3a 0%, transparent 80%);
}
.scn-history-in-archives .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-history-in-archives .left-shelf { position:absolute; bottom:10%; left:5%; width:20%; height:70%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-history-in-archives .right-shelf { position:absolute; bottom:10%; right:5%; width:20%; height:70%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-history-in-archives .scrolls { position:absolute; bottom:25%; left:10%; width:15%; height:8%; background: repeating-linear-gradient(90deg, #8a7050 0px, #6a5030 8px, #8a7050 10px); border-radius: 20% 20% 0 0; transform: rotate(-5deg); }
.scn-history-in-archives .figure-reader { position:absolute; bottom:15%; left:50%; width:20px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a0a 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: hi-figure 8s ease-in-out infinite; }
.scn-history-in-archives .desk-archive { position:absolute; bottom:18%; left:45%; width:50px; height:10px; transform:rotate(-2deg); background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 3px; box-shadow: 0 3px 6px rgba(0,0,0,.5); }
.scn-history-in-archives .lamp { position:absolute; bottom:30%; left:55%; width:10px; height:15px; background: linear-gradient(180deg, #b09070 0%, #805040 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 12px 4px rgba(180,140,80,.3); }
.scn-history-in-archives .dust-particles { position:absolute; top:20%; left:30%; width:100%; height:40%; background: transparent; animation: hi-dust 15s linear infinite; }
.scn-history-in-archives .dust-particles::before { content:''; display:block; width:4px; height:4px; background: rgba(255,220,180,.15); border-radius:50%; box-shadow: 20px 10px 0 rgba(255,220,180,.1), 40px 30px 0 rgba(255,220,180,.2), 10px 50px 0 rgba(255,220,180,.15), 70px 20px 0 rgba(255,220,180,.1); }
@keyframes hi-figure { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes hi-dust { 0% { transform: translateY(0) scale(1); opacity:.3; } 50% { transform: translateY(-20px) scale(1.2); opacity:.6; } 100% { transform: translateY(10px) scale(0.8); opacity:.2; } }

.scn-change-in-chillingworth {
  background:
    linear-gradient(180deg, #f7d59c 0%, #e8b87a 30%, #c58a4a 60%, #6a3e1a 100%),
    radial-gradient(ellipse at 50% 100%, #b87a44 0%, transparent 70%);
}
.scn-change-in-chillingworth .sky {
  position:absolute; inset:0 0 50% 0;
  background:linear-gradient(180deg, #ffe0a0 0%, #d4a86a 100%);
  animation:s1-sky 6s ease-in-out infinite alternate;
}
.scn-change-in-chillingworth .sun {
  position:absolute; top:10%; left:20%;
  width:60px; height:60px;
  background:radial-gradient(circle, #fff3c0 0%, #ffd080 40%, transparent 70%);
  border-radius:50%;
  box-shadow:0 0 60px 30px rgba(255,208,128,0.5);
  animation:s1-sun 12s ease-in-out infinite;
}
.scn-change-in-chillingworth .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background:linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius:30% 70% 0 0 / 20% 40% 0 0;
}
.scn-change-in-chillingworth .figure-hester {
  position:absolute; bottom:25%; left:30%;
  width:30px; height:60px;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation:s1-hester 5s ease-in-out infinite;
}
.scn-change-in-chillingworth .figure-chillingworth {
  position:absolute; bottom:25%; right:25%;
  width:40px; height:70px;
  background:linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation:s1-chill 8s ease-in-out infinite alternate;
}
.scn-change-in-chillingworth .shadow {
  position:absolute; bottom:15%; left:20%; right:20%; height:40%;
  background:radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter:blur(10px);
  animation:s1-shadow 4s ease-in-out infinite;
}
.scn-change-in-chillingworth .glow {
  position:absolute; bottom:30%; right:25%;
  width:20px; height:20px;
  background:radial-gradient(circle, #fff0a0 0%, transparent 60%);
  border-radius:50%;
  box-shadow:0 0 40px 10px rgba(255,208,80,0.3);
  animation:s1-glow 3s ease-in-out infinite alternate;
}
@keyframes s1-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes s1-sun { 0% { transform:translate(0,0) scale(1) } 50% { transform:translate(-5px,3px) scale(1.05) } 100% { transform:translate(3px,-2px) scale(0.95) } }
@keyframes s1-hester { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(5px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes s1-chill { 0% { transform:scaleY(1) rotate(0) } 50% { transform:scaleY(1.02) rotate(3deg) } 100% { transform:scaleY(0.98) rotate(-2deg) } }
@keyframes s1-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes s1-glow { 0% { opacity:.4 } 50% { opacity:.9 } 100% { opacity:.5 } }

.scn-evil-gleam-in-eye {
  background:
    linear-gradient(180deg, #b87a44 0%, #6a3e1a 40%, #2a150a 100%),
    radial-gradient(ellipse at 50% 50%, #c08a54 0%, transparent 60%);
}
.scn-evil-gleam-in-eye .bg {
  position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 60%, #1a0a00 100%);
}
.scn-evil-gleam-in-eye .head {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%);
  width:120px; height:160px;
  background:linear-gradient(180deg, #4a2a1a 0%, #1a0a05 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow:inset 0 -20px 30px rgba(0,0,0,0.5);
}
.scn-evil-gleam-in-eye .hair {
  position:absolute; bottom:60%; left:50%; transform:translateX(-50%);
  width:140px; height:80px;
  background:linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius:60% 60% 20% 20% / 80% 80% 20% 20%;
  filter:blur(3px);
  animation:s2-hair 7s ease-in-out infinite alternate;
}
.scn-evil-gleam-in-eye .eye-left {
  position:absolute; bottom:50%; left:calc(50% + 10px); transform:translateX(-50%);
  width:20px; height:14px;
  background:radial-gradient(circle, #ff3a1a 0%, #8a0a00 60%, transparent 80%);
  border-radius:50%;
  box-shadow:0 0 30px 10px rgba(255,50,20,0.6), 0 0 60px 20px rgba(200,20,0,0.3);
  animation:s2-eye 2s ease-in-out infinite alternate;
}
.scn-evil-gleam-in-eye .eye-right {
  position:absolute; bottom:50%; left:calc(50% - 10px); transform:translateX(-50%);
  width:20px; height:14px;
  background:radial-gradient(circle, #ff3a1a 0%, #8a0a00 60%, transparent 80%);
  border-radius:50%;
  box-shadow:0 0 30px 10px rgba(255,50,20,0.6), 0 0 60px 20px rgba(200,20,0,0.3);
  animation:s2-eye 2s ease-in-out infinite alternate-reverse;
}
.scn-evil-gleam-in-eye .mouth {
  position:absolute; bottom:32%; left:50%; transform:translateX(-50%);
  width:30px; height:8px;
  background:linear-gradient(180deg, #2a0a00 0%, #1a0500 100%);
  border-radius:0 0 50% 50%;
  box-shadow:inset 0 -2px 3px #0a0000;
  animation:s2-mouth 4s ease-in-out infinite;
}
.scn-evil-gleam-in-eye .glow-aura {
  position:absolute; bottom:25%; left:50%; transform:translateX(-50%);
  width:140px; height:170px;
  background:radial-gradient(ellipse at 50% 40%, rgba(200,50,20,0.15) 0%, transparent 70%);
  border-radius:50%;
  filter:blur(15px);
  animation:s2-aura 3s ease-in-out infinite alternate;
}
@keyframes s2-hair { 0% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.05) } 100% { transform:translateX(-50%) scaleY(0.95) } }
@keyframes s2-eye { 0% { opacity:.5; box-shadow:0 0 20px 5px rgba(255,50,20,0.4), 0 0 40px 10px rgba(200,20,0,0.2) } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(255,50,20,0.8), 0 0 80px 25px rgba(200,20,0,0.4) } 100% { opacity:.6; box-shadow:0 0 25px 8px rgba(255,50,20,0.5), 0 0 50px 15px rgba(200,20,0,0.3) } }
@keyframes s2-mouth { 0% { width:30px } 50% { width:35px } 100% { width:28px } }
@keyframes s2-aura { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-transformation-into-devil {
  background:
    linear-gradient(180deg, #d4a86a 0%, #b87a44 30%, #6a3e1a 70%, #2a150a 100%),
    radial-gradient(ellipse at 50% 100%, #c08a54 0%, transparent 60%);
}
.scn-transformation-into-devil .sky {
  position:absolute; inset:0 0 40% 0;
  background:linear-gradient(180deg, #ffe0a0 0%, #d4a86a 100%);
  animation:s3-sky 8s ease-in-out infinite alternate;
}
.scn-transformation-into-devil .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius:20% 40% 0 0 / 50% 30% 0 0;
}
.scn-transformation-into-devil .human-figure {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%);
  width:60px; height:110px;
  background:linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation:s3-human 10s ease-in-out infinite;
}
.scn-transformation-into-devil .devil-shadow {
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%);
  width:80px; height:130px;
  background:radial-gradient(ellipse at 50% 60%, #1a0a00 0%, transparent 70%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  filter:blur(8px);
  animation:s3-shadow 10s ease-in-out infinite;
}
.scn-transformation-into-devil .horns {
  position:absolute; bottom:92%; left:50%; transform:translateX(-50%);
  width:0; height:0;
  border-left:20px solid transparent;
  border-right:20px solid transparent;
  border-bottom:40px solid #1a0a00;
  filter:blur(1px);
  animation:s3-horns 10s ease-in-out infinite;
}
.scn-transformation-into-devil .wings {
  position:absolute; bottom:35%; left:40%; right:40%;
  height:80px;
  background:linear-gradient(135deg, #2a1a0a 0%, transparent 40%), linear-gradient(225deg, #2a1a0a 0%, transparent 40%);
  background-size:50% 100%;
  background-repeat:no-repeat;
  background-position:left center, right center;
  filter:blur(3px);
  animation:s3-wings 12s ease-in-out infinite;
}
.scn-transformation-into-devil .tail {
  position:absolute; bottom:10%; left:45%;
  width:30px; height:10px;
  background:linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius:0 50% 50% 0;
  transform-origin:left center;
  animation:s3-tail 3s ease-in-out infinite alternate;
}
.scn-transformation-into-devil .sparks {
  position:absolute; top:50%; left:40%; right:40%; bottom:20%;
  background:radial-gradient(circle at 20% 30%, rgba(255,200,100,0.3) 0%, transparent 50%),
              radial-gradient(circle at 80% 70%, rgba(255,150,50,0.2) 0%, transparent 50%);
  animation:s3-sparks 4s ease-in-out infinite alternate;
}
@keyframes s3-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes s3-human { 0% { transform:translateX(-50%) scaleY(1) scaleX(1) } 50% { transform:translateX(-50%) scaleY(1.05) scaleX(0.95) } 100% { transform:translateX(-50%) scaleY(0.95) scaleX(1.05) } }
@keyframes s3-shadow { 0% { transform:translateX(-50%) scale(1); opacity:.4 } 50% { transform:translateX(-50%) scale(1.2); opacity:.7 } 100% { transform:translateX(-50%) scale(0.9); opacity:.3 } }
@keyframes s3-horns { 0% { transform:translateX(-50%) rotate(0) scaleY(1) } 50% { transform:translateX(-50%) rotate(5deg) scaleY(1.3) } 100% { transform:translateX(-50%) rotate(-5deg) scaleY(0.7) } }
@keyframes s3-wings { 0% { transform:rotate(0) scaleY(1) } 50% { transform:rotate(3deg) scaleY(1.1) } 100% { transform:rotate(-3deg) scaleY(0.9) } }
@keyframes s3-tail { 0% { transform:rotate(0) scaleX(1) } 50% { transform:rotate(-20deg) scaleX(1.1) } 100% { transform:rotate(20deg) scaleX(0.9) } }
@keyframes s3-sparks { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-physician-inquiry {
  background:
    linear-gradient(180deg, #f0c080 0%, #c89050 30%, #8a5a30 60%, #3a2010 100%),
    radial-gradient(ellipse at 50% 100%, #b87840 0%, transparent 70%);
}
.scn-physician-inquiry .sky {
  position:absolute; inset:0 0 45% 0;
  background:linear-gradient(180deg, #ffe0b0 0%, #d4a86a 100%);
  animation:s4-sky 10s ease-in-out infinite alternate;
}
.scn-physician-inquiry .ground {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background:linear-gradient(180deg, #5a3a20 0%, #2a1a0a 100%);
  border-radius:20% 60% 0 0 / 30% 50% 0 0;
}
.scn-physician-inquiry .figure1 {
  position:absolute; bottom:22%; left:30%;
  width:35px; height:65px;
  background:linear-gradient(180deg, #4a2a1a 0%, #1a0a05 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation:s4-fig1 6s ease-in-out infinite;
}
.scn-physician-inquiry .figure2 {
  position:absolute; bottom:22%; right:25%;
  width:40px; height:70px;
  background:linear-gradient(180deg, #3a1a0a 0%, #1a0500 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin:bottom center;
  animation:s4-fig2 8s ease-in-out infinite alternate;
}
.scn-physician-inquiry .tree {
  position:absolute; bottom:30%; left:15%;
  width:40px; height:100px;
  background:linear-gradient(180deg, #5a3a20 0%, #2a1a0a 100%);
  border-radius:30% 30% 10% 10% / 50% 50% 10% 10%;
  filter:blur(1px);
  animation:s4-tree 14s ease-in-out infinite;
}
.scn-physician-inquiry .shadow1 {
  position:absolute; bottom:10%; left:25%;
  width:50px; height:10px;
  background:radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter:blur(5px);
  animation:s4-shad1 6s ease-in-out infinite;
}
.scn-physician-inquiry .shadow2 {
  position:absolute; bottom:10%; right:20%;
  width:55px; height:12px;
  background:radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter:blur(5px);
  animation:s4-shad2 8s ease-in-out infinite alternate;
}
.scn-physician-inquiry .light-rays {
  position:absolute; top:0; left:0; right:0; bottom:40%;
  background:linear-gradient(135deg, rgba(255,220,150,0.2) 0%, transparent 40%, rgba(255,200,100,0.1) 60%);
  animation:s4-rays 5s ease-in-out infinite alternate;
}
@keyframes s4-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes s4-fig1 { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes s4-fig2 { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(0.98) } }
@keyframes s4-tree { 0% { transform:rotate(0) } 50% { transform:rotate(2deg) } 100% { transform:rotate(-2deg) } }
@keyframes s4-shad1 { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }
@keyframes s4-shad2 { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes s4-rays { 0% { opacity:.1 } 50% { opacity:.3 } 100% { opacity:.2 } }

.scn-theories-about-stigma {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 40%, #c4a882 70%, #a08868 100%), radial-gradient(ellipse at 50% 0%, #fff3e0 0%, transparent 60%);
}
.scn-theories-about-stigma .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fff8f0 0%, #f0d8c0 100%); animation: ts1-sky 8s ease-in-out infinite alternate; }
.scn-theories-about-stigma .wall { position:absolute; inset:10% 10% 10% 10%; background: linear-gradient(135deg, #c8b098 0%, #b09880 100%); border-radius:2%; box-shadow: inset 0 0 60px rgba(0,0,0,0.15); animation: ts1-wall 12s ease-in-out infinite; }
.scn-theories-about-stigma .pillar { position:absolute; bottom:10%; left:35%; width:8%; height:70%; background: linear-gradient(90deg, #b8a088 0%, #d8c4b0 40%, #b09880 100%); border-radius:4px; box-shadow: 8px 0 20px rgba(0,0,0,0.1); }
.scn-theories-about-stigma .figure-ts1 { position:absolute; bottom:10%; left:50%; width:12%; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts1-figure 6s ease-in-out infinite; }
.scn-theories-about-stigma .shadow-ts1 { position:absolute; bottom:8%; left:42%; width:28%; height:8%; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(6px); animation: ts1-shadow 6s ease-in-out infinite; }
.scn-theories-about-stigma .light-ts1 { position:absolute; top:5%; left:20%; width:60%; height:30%; background: radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 70%); animation: ts1-light 9s ease-in-out infinite alternate; }
.scn-theories-about-stigma .dust-ts1 { position:absolute; bottom:20%; left:30%; width:40%; height:40%; background: radial-gradient(circle, rgba(255, 230, 200, 0.15) 0%, transparent 70%); animation: ts1-dust 15s linear infinite; }
@keyframes ts1-sky { 0% { opacity:0.6; transform: scaleY(0.95); } 50% { opacity:1; transform: scaleY(1); } 100% { opacity:0.7; transform: scaleY(0.98); } }
@keyframes ts1-wall { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes ts1-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-4%) rotate(-2deg) scaleY(0.98); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(4%) rotate(2deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ts1-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.4; } 50% { transform: translateX(-10%) scaleX(0.8); opacity:0.5; } 100% { transform: translateX(0) scaleX(1); opacity:0.4; } }
@keyframes ts1-light { 0% { opacity:0.3; transform: translateY(-10%); } 50% { opacity:0.6; transform: translateY(0); } 100% { opacity:0.4; transform: translateY(-5%); } }
@keyframes ts1-dust { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 50% { transform: translate(10%,-10%) scale(1.2); opacity:0.5; } 100% { transform: translate(-10%,0) scale(0.9); opacity:0.2; } }

.scn-witnesses-denied-mark {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 40%, #d4b898 70%, #bfa080 100%), radial-gradient(ellipse at 50% 100%, #e8d4b8 0%, transparent 60%);
}
.scn-witnesses-denied-mark .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fffcf0 0%, #f0dcc4 100%); animation: ts2-sky 10s ease-in-out infinite alternate; }
.scn-witnesses-denied-mark .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c8b098 0%, #a08868 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-witnesses-denied-mark .crowd-ts2 { position:absolute; bottom:30%; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; filter: blur(2px); animation: ts2-crowd 12s ease-in-out infinite; }
.scn-witnesses-denied-mark .figure-ts2 { position:absolute; bottom:25%; left:42%; width:16%; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts2-figure 6s ease-in-out infinite; }
.scn-witnesses-denied-mark .beam-ts2 { position:absolute; top:0; left:35%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,240,210,0.5) 0%, transparent 100%); animation: ts2-beam 8s ease-in-out infinite alternate; }
.scn-witnesses-denied-mark .mark-ts2 { position:absolute; bottom:40%; left:48%; width:6%; height:10%; background: radial-gradient(ellipse, #d4a060 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(212,160,96,0.4); animation: ts2-mark 4s ease-in-out infinite alternate; }
@keyframes ts2-sky { 0% { opacity:0.7; transform: scaleY(0.96); } 50% { opacity:1; transform: scaleY(1); } 100% { opacity:0.8; transform: scaleY(0.98); } }
@keyframes ts2-crowd { 0%,100% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-3%) scale(1.02); opacity:0.8; } }
@keyframes ts2-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2%) rotate(-1deg) scaleY(1.01); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2%) rotate(1deg) scaleY(0.99); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ts2-beam { 0% { opacity:0.2; transform: translateX(-10%) skewX(-5deg); } 50% { opacity:0.6; transform: translateX(0) skewX(0deg); } 100% { opacity:0.3; transform: translateX(10%) skewX(5deg); } }
@keyframes ts2-mark { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.8; transform: scale(1.2); } 100% { opacity:0.5; transform: scale(0.9); } }

.scn-witnesses-interpretation {
  background: linear-gradient(180deg, #e8d8c0 0%, #d4c0a8 40%, #c0a890 70%, #a89078 100%), radial-gradient(ellipse at 50% 0%, #f0e0c8 0%, transparent 60%);
}
.scn-witnesses-interpretation .wall { position:absolute; inset:5% 5% 5% 5%; background: linear-gradient(145deg, #b8a088 0%, #a08870 100%); border-radius:2%; box-shadow: inset 0 0 80px rgba(0,0,0,0.1); animation: ts3-wall 14s ease-in-out infinite; }
.scn-witnesses-interpretation .window-ts3 { position:absolute; top:10%; left:30%; width:40%; height:40%; background: linear-gradient(180deg, #fffcf0 0%, #f0dcc4 100%); border:6px solid #8a7058; border-radius:2%; box-shadow: inset 0 0 40px rgba(255,240,210,0.3); animation: ts3-window 9s ease-in-out infinite alternate; }
.scn-witnesses-interpretation .figure-a-ts3 { position:absolute; bottom:15%; left:35%; width:14%; height:50%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts3-figure-a 8s ease-in-out infinite; }
.scn-witnesses-interpretation .figure-b-ts3 { position:absolute; bottom:10%; left:48%; width:18%; height:45%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts3-figure-b 8s ease-in-out infinite 2s; }
.scn-witnesses-interpretation .halo-ts3 { position:absolute; top:25%; left:42%; width:16%; height:20%; background: radial-gradient(ellipse, rgba(255,235,190,0.4) 0%, transparent 70%); border-radius:50%; animation: ts3-halo 6s ease-in-out infinite alternate; }
.scn-witnesses-interpretation .dust-ts3 { position:absolute; top:5%; left:15%; width:70%; height:20%; background: radial-gradient(circle, rgba(255,230,200,0.1) 0%, transparent 60%); animation: ts3-dust 20s linear infinite; }
@keyframes ts3-wall { 0% { filter: brightness(0.95); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.98); } }
@keyframes ts3-window { 0% { opacity:0.7; transform: scale(0.98); } 50% { opacity:1; transform: scale(1); } 100% { opacity:0.8; transform: scale(0.99); } }
@keyframes ts3-figure-a { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3%) rotate(-1deg) scaleY(0.98); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(3%) rotate(1deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ts3-figure-b { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(1deg) scaleY(1.01); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2%) rotate(-1deg) scaleY(0.99); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ts3-halo { 0% { opacity:0.2; transform: scale(0.9); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(0.95); } }
@keyframes ts3-dust { 0% { transform: translate(0,0); opacity:0.1; } 50% { transform: translate(10%,-10%); opacity:0.3; } 100% { transform: translate(-20%,5%); opacity:0.1; } }

.scn-truthful-version-affirmed {
  background: linear-gradient(180deg, #f8ead6 0%, #e8d4bc 40%, #d4bcA4 70%, #bca48c 100%), radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 60%);
}
.scn-truthful-version-affirmed .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fff8f0 0%, #f0dcc4 100%); animation: ts4-sky 12s ease-in-out infinite alternate; }
.scn-truthful-version-affirmed .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #d4c0a8 0%, #b09880 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-truthful-version-affirmed .figure-ts4 { position:absolute; bottom:10%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ts4-figure 7s ease-in-out infinite; }
.scn-truthful-version-affirmed .shadow-ts4 { position:absolute; bottom:5%; left:35%; width:30%; height:12%; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(8px); animation: ts4-shadow 7s ease-in-out infinite; }
.scn-truthful-version-affirmed .halo-ts4 { position:absolute; top:10%; left:35%; width:30%; height:25%; background: radial-gradient(ellipse, rgba(255,240,210,0.3) 0%, transparent 70%); border-radius:50%; animation: ts4-halo 6s ease-in-out infinite alternate; }
.scn-truthful-version-affirmed .scroll-ts4 { position:absolute; bottom:15%; left:25%; width:10%; height:20%; background: linear-gradient(180deg, #e0d0b8 0%, #c0a888 100%); border-radius:2px 2px 4px 4px; transform: rotate(-10deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.2); animation: ts4-scroll 8s ease-in-out infinite; }
.scn-truthful-version-affirmed .motes-ts4 { position:absolute; top:0; left:10%; width:80%; height:100%; background: radial-gradient(circle at 30% 20%, rgba(255,235,200,0.08) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,235,200,0.06) 0%, transparent 50%); animation: ts4-motes 25s linear infinite; }
@keyframes ts4-sky { 0% { opacity:0.6; transform: scaleY(0.97); } 50% { opacity:1; transform: scaleY(1); } 100% { opacity:0.7; transform: scaleY(0.99); } }
@keyframes ts4-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2%) rotate(-1deg) scaleY(1.01); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2%) rotate(1deg) scaleY(0.99); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ts4-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.3; } 50% { transform: translateX(-10%) scaleX(0.8); opacity:0.5; } 100% { transform: translateX(0) scaleX(1); opacity:0.3; } }
@keyframes ts4-halo { 0% { opacity:0.2; transform: scale(0.9); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(0.95); } }
@keyframes ts4-scroll { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2%); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ts4-motes { 0% { transform: translate(0,0); opacity:0.1; } 50% { transform: translate(10%,-15%); opacity:0.3; } 100% { transform: translate(-10%,5%); opacity:0.1; } }

.scn-governor-awful-proclamation {
  background: linear-gradient(180deg, #c0a060 0%, #a08040 50%, #705030 100%), radial-gradient(ellipse at 60% 30%, #f0d080 10%, transparent 60%);
}
.scn-governor-awful-proclamation .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d4b078 0%, #b89560 100%);
  box-shadow: inset 0 -4px 12px rgba(0,0,0,0.2);
  animation: gap-wall 20s ease-in-out infinite;
}
.scn-governor-awful-proclamation .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #8a6b45 0%, #5a4025 100%);
  border-radius: 0 0 10% 10%;
  animation: gap-floor 12s ease-in-out infinite alternate;
}
.scn-governor-awful-proclamation .desk {
  position: absolute;
  bottom: 18%;
  left: 20%;
  width: 120px;
  height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3520 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: gap-desk 8s ease-in-out infinite;
}
.scn-governor-awful-proclamation .governor {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 50px;
  height: 80px;
  background: linear-gradient(180deg, #2a4a6a 0%, #122035 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: gap-governor 4s ease-in-out infinite;
}
.scn-governor-awful-proclamation .proclamation {
  position: absolute;
  bottom: 32%;
  left: 30%;
  width: 40px;
  height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: gap-proclamation 5s ease-in-out infinite alternate;
}
.scn-governor-awful-proclamation .pearl-small {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 18px;
  height: 26px;
  background: linear-gradient(180deg, #d8c8b0 0%, #a09080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gap-pearl 3s ease-in-out infinite;
}
.scn-governor-awful-proclamation .light-ray {
  position: absolute;
  top: 8%;
  left: 30%;
  width: 80px;
  height: 200px;
  background: linear-gradient(180deg, rgba(255,235,150,0.6) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: gap-light 6s ease-in-out infinite alternate;
}
@keyframes gap-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes gap-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes gap-desk {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(1deg) translateY(-1px); }
}
@keyframes gap-governor {
  0% { transform: rotate(-2deg); }
  25% { transform: rotate(1deg) translateX(3px); }
  50% { transform: rotate(2deg); }
  75% { transform: rotate(-1deg) translateX(-2px); }
  100% { transform: rotate(0deg); }
}
@keyframes gap-proclamation {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(0.95); }
}
@keyframes gap-pearl {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gap-light {
  0% { opacity: 0.6; transform: translateX(-5px); }
  50% { opacity: 0.9; transform: translateX(3px); }
  100% { opacity: 0.5; transform: translateX(0); }
}

.scn-hester-holds-pearl-defiant {
  background: linear-gradient(180deg, #b8a070 0%, #8a6b45 50%, #604020 100%), radial-gradient(ellipse at 70% 40%, #e0c060 15%, transparent 60%);
}
.scn-hester-holds-pearl-defiant .wall-bg {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8a878 0%, #a88858 100%);
  box-shadow: inset 0 -6px 15px rgba(0,0,0,0.3);
  animation: hpd-wall 15s ease-in-out infinite alternate;
}
.scn-hester-holds-pearl-defiant .floor-tiles {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 0 0 8% 8%;
  animation: hpd-floor 10s ease-in-out infinite;
}
.scn-hester-holds-pearl-defiant .window {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #a08060 0%, #705040 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: hpd-window 8s ease-in-out infinite;
}
.scn-hester-holds-pearl-defiant .hester-mother {
  position: absolute;
  bottom: 22%;
  left: 38%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: hpd-hester 6s ease-in-out infinite;
}
.scn-hester-holds-pearl-defiant .pearl-child {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 20px;
  height: 30px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hpd-pearl 4s ease-in-out infinite;
}
.scn-hester-holds-pearl-defiant .magistrate {
  position: absolute;
  bottom: 28%;
  right: 15%;
  width: 45px;
  height: 75px;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: hpd-magistrate 5s ease-in-out infinite alternate;
}
.scn-hester-holds-pearl-defiant .shadow-sharp {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 100px;
  height: 20px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: hpd-shadow 7s ease-in-out infinite alternate;
}
@keyframes hpd-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hpd-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes hpd-window {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes hpd-hester {
  0% { transform: rotate(-3deg) translateX(0); }
  25% { transform: rotate(2deg) translateX(4px); }
  50% { transform: rotate(1deg) translateX(0); }
  75% { transform: rotate(-2deg) translateX(-3px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes hpd-pearl {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hpd-magistrate {
  0% { transform: rotate(1deg); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(0deg); }
}
@keyframes hpd-shadow {
  0% { transform: scaleX(1); opacity: 0.4; }
  50% { transform: scaleX(1.1); opacity: 0.6; }
  100% { transform: scaleX(0.9); opacity: 0.3; }
}

.scn-wilson-soothing-word {
  background: linear-gradient(180deg, #d8c088 0%, #b8a070 50%, #907050 100%), radial-gradient(ellipse at 50% 80%, #f0d8a0 0%, transparent 50%);
}
.scn-wilson-soothing-word .room-panel {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8b080 0%, #a88860 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.15);
  animation: wsw-panel 18s ease-in-out infinite alternate;
}
.scn-wilson-soothing-word .floor-plank {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #8a6b45 0%, #5a4025 100%);
  border-radius: 0 0 12% 12%;
  animation: wsw-floor 14s ease-in-out infinite;
}
.scn-wilson-soothing-word .wilson-figure {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 45px;
  height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: wsw-wilson 10s ease-in-out infinite;
}
.scn-wilson-soothing-word .hester-holding {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 40px;
  height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: wsw-hester 8s ease-in-out infinite alternate;
}
.scn-wilson-soothing-word .pearl-tiny {
  position: absolute;
  bottom: 20%;
  left: 60%;
  width: 18px;
  height: 26px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wsw-pearl 6s ease-in-out infinite;
}
.scn-wilson-soothing-word .soft-glow {
  position: absolute;
  top: 15%;
  left: 40%;
  width: 100px;
  height: 150px;
  background: radial-gradient(ellipse, rgba(255,235,180,0.4) 0%, transparent 70%);
  animation: wsw-glow 20s ease-in-out infinite alternate;
}
@keyframes wsw-panel {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes wsw-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes wsw-wilson {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg) translateX(5px); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1deg) translateX(-3px); }
  100% { transform: rotate(0deg); }
}
@keyframes wsw-hester {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0deg); }
}
@keyframes wsw-pearl {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes wsw-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.3; transform: scale(0.95); }
}

.scn-dimmesdale-comes-forward {
  background: linear-gradient(180deg, #b09868 0%, #88704a 50%, #604020 100%), radial-gradient(ellipse at 40% 50%, #d8b880 0%, transparent 60%);
}
.scn-dimmesdale-comes-forward .wall-deep {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c0a060 0%, #987850 100%);
  box-shadow: inset 0 -10px 25px rgba(0,0,0,0.2);
  animation: dcf-wall 16s ease-in-out infinite alternate;
}
.scn-dimmesdale-comes-forward .floor-dark {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #604020 0%, #3a2510 100%);
  border-radius: 0 0 8% 8%;
  animation: dcf-floor 12s ease-in-out infinite;
}
.scn-dimmesdale-comes-forward .dimmesdale-fig {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 45px;
  height: 85px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: dcf-dimmesdale 5s ease-in-out infinite;
}
.scn-dimmesdale-comes-forward .hand-heart {
  position: absolute;
  bottom: 32%;
  left: 38%;
  width: 12px;
  height: 16px;
  background: radial-gradient(circle, #d0c0b0 0%, #a09080 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: dcf-hand 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-comes-forward .hester-back {
  position: absolute;
  bottom: 22%;
  right: 15%;
  width: 38px;
  height: 65px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dcf-hester-back 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-comes-forward .pearl-back {
  position: absolute;
  bottom: 16%;
  right: 18%;
  width: 16px;
  height: 24px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dcf-pearl-back 6s ease-in-out infinite;
}
.scn-dimmesdale-comes-forward .light-spill {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 80px;
  height: 180px;
  background: linear-gradient(180deg, rgba(255,220,140,0.5) 0%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%);
  animation: dcf-light 9s ease-in-out infinite alternate;
}
@keyframes dcf-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes dcf-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes dcf-dimmesdale {
  0% { transform: rotate(-2deg) translateX(0); }
  25% { transform: rotate(1deg) translateX(8px); }
  50% { transform: rotate(2deg) translateX(0); }
  75% { transform: rotate(-1deg) translateX(-5px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes dcf-hand {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.05); }
  100% { transform: translateY(0) scale(0.95); }
}
@keyframes dcf-hester-back {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes dcf-pearl-back {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dcf-light {
  0% { opacity: 0.4; transform: translateX(-10px); }
  50% { opacity: 0.7; transform: translateX(5px); }
  100% { opacity: 0.3; transform: translateX(0); }
}

/* look-your-last */
.scn-look-your-last {
  background: linear-gradient(180deg, #7a7a7a 0%, #9a9a9a 30%, #6a6a6a 70%, #4a4a4a 100%),
              radial-gradient(ellipse at 50% 80%, #8a8a8a 0%, transparent 60%);
}
.scn-look-your-last .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0b0b0 0%, #9a9a9a 50%, #858585 100%);
  animation: sly-sky 20s ease-in-out infinite alternate;
}
.scn-look-your-last .crowd {
  position: absolute; bottom:10%; left:0; right:0; height:30%;
  background: radial-gradient(ellipse at 20% 100%, #3a3a3a 0%, transparent 70%),
              radial-gradient(ellipse at 80% 100%, #3a3a3a 0%, transparent 70%);
  animation: sly-crowd 12s ease-in-out infinite;
}
.scn-look-your-last .platform {
  position: absolute; bottom:30%; left:40%; width:20%; height:5%;
  background: linear-gradient(180deg, #5a5a5a, #3a3a3a);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-look-your-last .figure {
  position: absolute; bottom:35%; left:45%; width:10%; height:30%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 80%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: sly-figure 8s ease-in-out infinite;
}
.scn-look-your-last .scarlet-letter {
  position: absolute; bottom:48%; left:49%; width:4%; height:6%;
  background: radial-gradient(circle, #8c3a2a 0%, #5e1a1d 80%);
  border-radius: 10%;
  box-shadow: 0 0 12px 4px rgba(140,58,42,0.6);
  animation: sly-glow 4s ease-in-out infinite alternate;
}
.scn-look-your-last .child {
  position: absolute; bottom:36%; left:42%; width:6%; height:15%;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: sly-child 6s ease-in-out infinite;
}
.scn-look-your-last .mist {
  position: absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, transparent, #9a9a9a 80%);
  filter: blur(10px);
  animation: sly-mist 30s linear infinite;
}
@keyframes sly-sky { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.85; transform: scaleY(0.98); } }
@keyframes sly-crowd { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sly-figure { 0%,100% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes sly-glow { 0% { box-shadow: 0 0 8px 2px rgba(140,58,42,0.4); opacity:0.8; } 50% { box-shadow: 0 0 20px 8px rgba(140,58,42,0.7); opacity:1; } 100% { box-shadow: 0 0 12px 4px rgba(140,58,42,0.5); opacity:0.9; } }
@keyframes sly-child { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes sly-mist { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

/* last-draught-wormwood */
.scn-last-draught-wormwood {
  background: linear-gradient(180deg, #5a5a5a 0%, #4a4a4a 30%, #3a3a3a 70%, #2a2a2a 100%),
              radial-gradient(circle at 50% 40%, #6a6a6a 0%, transparent 70%);
}
.scn-last-draught-wormwood .table {
  position: absolute; bottom:0; left:5%; right:5%; height:20%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-last-draught-wormwood .cup-body {
  position: absolute; bottom:18%; left:42%; width:16%; height:25%;
  background: linear-gradient(90deg, #5a4a3a, #7a6a5a, #5a4a3a);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  animation: ldw-cup 10s ease-in-out infinite;
}
.scn-last-draught-wormwood .cup-handle {
  position: absolute; bottom:22%; left:56%; width:6%; height:15%;
  background: radial-gradient(ellipse at 50% 50%, #6a5a4a, transparent);
  border-radius: 50%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: ldw-handle 10s ease-in-out infinite;
}
.scn-last-draught-wormwood .liquid {
  position: absolute; bottom:24%; left:44%; width:12%; height:12%;
  background: radial-gradient(ellipse, #3a4a2a 0%, #2a3a1a 60%, #1a2a0a 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: inset 0 -2px 6px rgba(0,0,0,0.5);
  animation: ldw-liquid 5s ease-in-out infinite alternate;
}
.scn-last-draught-wormwood .steam-a {
  position: absolute; bottom:38%; left:46%; width:8%; height:20%;
  background: linear-gradient(180deg, rgba(180,180,180,0.3), transparent);
  border-radius: 50%;
  filter: blur(6px);
  animation: ldw-steam 7s ease-in-out infinite;
}
.scn-last-draught-wormwood .steam-b {
  position: absolute; bottom:40%; left:48%; width:6%; height:15%;
  background: linear-gradient(180deg, rgba(180,180,180,0.2), transparent);
  border-radius: 50%;
  filter: blur(5px);
  animation: ldw-steam 9s ease-in-out infinite reverse;
}
.scn-last-draught-wormwood .hand {
  position: absolute; bottom:15%; left:32%; width:12%; height:30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: ldw-hand 12s ease-in-out infinite;
}
@keyframes ldw-cup { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-1deg); } }
@keyframes ldw-handle { 0%,100% { opacity:1; } 50% { opacity:0.9; } }
@keyframes ldw-liquid { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes ldw-steam { 0% { transform: translateY(0) scale(1); opacity:0; } 50% { transform: translateY(-15px) scale(1.5); opacity:0.6; } 100% { transform: translateY(-30px) scale(2); opacity:0; } }
@keyframes ldw-hand { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(8deg) translateX(2px); } 100% { transform: rotate(10deg) translateX(0); } }

/* pearl-butterfly-garb */
.scn-pearl-butterfly-garb {
  background: linear-gradient(180deg, #7a8a7a 0%, #6a7a6a 40%, #5a6a5a 80%, #4a5a4a 100%),
              radial-gradient(ellipse at 50% 20%, #9a9a7a 0%, transparent 60%);
}
.scn-pearl-butterfly-garb .bg {
  position: absolute; inset:0;
  background: linear-gradient(120deg, #8a9a8a 0%, #7a8a7a 50%, #6a7a6a 100%);
  animation: pbg-bg 25s ease-in-out infinite alternate;
}
.scn-pearl-butterfly-garb .girl-body {
  position: absolute; bottom:25%; left:42%; width:16%; height:35%;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: pbg-girl 8s ease-in-out infinite;
}
.scn-pearl-butterfly-garb .dress {
  position: absolute; bottom:25%; left:40%; width:20%; height:28%;
  background: radial-gradient(ellipse at 50% 30%, #c8b898 0%, #a89878 60%, #887858 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
  animation: pbg-dress 6s ease-in-out infinite;
}
.scn-pearl-butterfly-garb .wing-l {
  position: absolute; bottom:40%; left:30%; width:18%; height:30%;
  background: radial-gradient(ellipse at 30% 50%, #9a8a7a 0%, #7a6a5a 60%, #5a4a3a 100%);
  border-radius: 60% 40% 30% 70% / 50% 50% 50% 50%;
  transform: rotate(-20deg);
  animation: pbg-wing-l 4s ease-in-out infinite alternate;
}
.scn-pearl-butterfly-garb .wing-r {
  position: absolute; bottom:40%; left:52%; width:18%; height:30%;
  background: radial-gradient(ellipse at 70% 50%, #9a8a7a 0%, #7a6a5a 60%, #5a4a3a 100%);
  border-radius: 40% 60% 70% 30% / 50% 50% 50% 50%;
  transform: rotate(20deg);
  animation: pbg-wing-r 4s ease-in-out infinite alternate;
}
.scn-pearl-butterfly-garb .sparkle-a {
  position: absolute; top:30%; left:20%; width:4%; height:4%;
  background: radial-gradient(circle, #e8e8c8 0%, transparent 70%);
  border-radius: 50%;
  animation: pbg-sparkle 3s ease-in-out infinite;
}
.scn-pearl-butterfly-garb .sparkle-b {
  position: absolute; top:45%; left:70%; width:3%; height:3%;
  background: radial-gradient(circle, #e8e8c8 0%, transparent 70%);
  border-radius: 50%;
  animation: pbg-sparkle 3.5s ease-in-out infinite 1s;
}
.scn-pearl-butterfly-garb .ground {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #5a6a4a, #4a5a3a);
  border-radius: 40% 60% 0 0 / 30% 30% 0 0;
  animation: pbg-ground 20s ease-in-out infinite;
}
@keyframes pbg-bg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes pbg-girl { 0%,100% { transform: translateX(0); } 50% { transform: translateX(3px) rotate(1deg); } }
@keyframes pbg-dress { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes pbg-wing-l { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.1); } 100% { transform: rotate(-25deg) scale(0.95); } }
@keyframes pbg-wing-r { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(25deg) scale(0.95); } }
@keyframes pbg-sparkle { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0; transform: scale(0.5); } }
@keyframes pbg-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }

/* pearl-sympathy-agitation */
.scn-pearl-sympathy-agitation {
  background: linear-gradient(180deg, #6a6a6a 0%, #5a5a5a 40%, #4a4a4a 100%),
              radial-gradient(ellipse at 50% 60%, #7a7a7a 0%, transparent 70%);
}
.scn-pearl-sympathy-agitation .walls {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #5a5a5a, #4a4a4a);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: psa-walls 15s ease-in-out infinite;
}
.scn-pearl-sympathy-agitation .floor {
  position: absolute; bottom:0; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #4a3a3a, #3a2a2a);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-pearl-sympathy-agitation .mother {
  position: absolute; bottom:22%; left:35%; width:20%; height:40%;
  background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 60%, #2a2a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: psa-mother 6s ease-in-out infinite;
}
.scn-pearl-sympathy-agitation .child {
  position: absolute; bottom:24%; left:50%; width:14%; height:28%;
  background: linear-gradient(180deg, #5a5a5a 0%, #4a4a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: psa-child 4s ease-in-out infinite;
}
.scn-pearl-sympathy-agitation .agitation-a {
  position: absolute; bottom:30%; left:20%; width:2%; height:10%;
  background: linear-gradient(180deg, transparent, #8a8a8a, transparent);
  border-radius: 50%;
  filter: blur(3px);
  animation: psa-wave 3s ease-in-out infinite;
}
.scn-pearl-sympathy-agitation .agitation-b {
  position: absolute; bottom:30%; right:20%; width:2%; height:15%;
  background: linear-gradient(180deg, transparent, #8a8a8a, transparent);
  border-radius: 50%;
  filter: blur(3px);
  animation: psa-wave 3.5s ease-in-out infinite 0.5s;
}
.scn-pearl-sympathy-agitation .window {
  position: absolute; top:20%; left:30%; width:20%; height:25%;
  background: radial-gradient(circle, #7a7a7a 0%, #5a5a5a 60%, #4a4a4a 100%);
  border: 2px solid #3a3a3a;
  border-radius: 5%;
  animation: psa-window 8s ease-in-out infinite;
}
@keyframes psa-walls { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(0.99); } }
@keyframes psa-mother { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } }
@keyframes psa-child { 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 psa-wave { 0% { opacity:0; transform: translateY(0) scale(1); } 50% { opacity:0.6; transform: translateY(-10px) scale(1.5); } 100% { opacity:0; transform: translateY(-20px) scale(2); } }
@keyframes psa-window { 0%,100% { opacity:0.8; } 50% { opacity:1; } }

.scn-pearl-outburst {
  background:
    linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 40%, #2e2e3e 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 70%);
}
.scn-pearl-outburst .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5c5c70 0%, #3a3a4e 100%);
  animation: po-sky 14s ease-in-out infinite alternate;
}
.scn-pearl-outburst .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2d3a2d 0%, #1e2a1e 100%);
  border-radius: 30% 70% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.5);
  animation: po-ground 20s ease-in-out infinite;
}
.scn-pearl-outburst .figure {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: po-figure 0.8s ease-in-out infinite;
}
.scn-pearl-outburst .arm-left {
  position: absolute; bottom: 42%; left: 48%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: po-arm-l 0.6s ease-in-out infinite;
}
.scn-pearl-outburst .arm-right {
  position: absolute; bottom: 42%; right: 48%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: po-arm-r 0.6s ease-in-out infinite reverse;
}
.scn-pearl-outburst .burst-a,
.scn-pearl-outburst .burst-b,
.scn-pearl-outburst .burst-c {
  position: absolute; bottom: 45%; width: 6px; height: 6px;
  background: radial-gradient(circle, #b0a0a0 0%, transparent 70%);
  border-radius: 50%;
  animation: po-burst 1.5s ease-out infinite;
}
.scn-pearl-outburst .burst-a { left: 40%; animation-delay: 0s; }
.scn-pearl-outburst .burst-b { left: 60%; animation-delay: 0.5s; }
.scn-pearl-outburst .burst-c { left: 50%; animation-delay: 1s; }

@keyframes po-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes po-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes po-figure { 0%,100% { transform: translateX(-50%) rotate(0) } 30% { transform: translateX(-50%) rotate(-5deg) scale(1.05) } 70% { transform: translateX(-50%) rotate(5deg) scale(1.02) } }
@keyframes po-arm-l { 0%,100% { transform: rotate(0) } 50% { transform: rotate(40deg) } }
@keyframes po-arm-r { 0%,100% { transform: rotate(0) } 50% { transform: rotate(-40deg) } }
@keyframes po-burst { 0% { opacity: 0.8; transform: scale(0.5) } 50% { opacity: 0.6; transform: scale(2) } 100% { opacity: 0; transform: scale(3) } }

.scn-hester-understands {
  background:
    linear-gradient(180deg, #3f3f55 0%, #2c2c40 60%),
    radial-gradient(ellipse at 30% 70%, #3f3f55 0%, transparent 60%);
}
.scn-hester-understands .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4e4e66 0%, #2a2a3e 100%);
  opacity: 0.8; animation: hu-bg 12s ease-in-out infinite alternate;
}
.scn-hester-understands .figure-clergy {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg); animation: hu-clergy 4s ease-in-out infinite;
}
.scn-hester-understands .figure-hester {
  position: absolute; bottom: 25%; left: 55%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #2e2e40 0%, #1e1e2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg); animation: hu-hester 6s ease-in-out infinite;
}
.scn-hester-understands .child {
  position: absolute; bottom: 20%; left: 45%; width: 16px; height: 35px;
  background: linear-gradient(180deg, #33334a 0%, #242438 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg); animation: hu-child 3s ease-in-out infinite;
}
.scn-hester-understands .shadow {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: hu-shadow 8s ease-in-out infinite;
}
.scn-hester-understands .whisper-line {
  position: absolute; bottom: 55%; left: 38%; width: 40px; height: 4px;
  background: linear-gradient(90deg, transparent, #7a7a8a, transparent);
  filter: blur(2px); animation: hu-whisper 2s ease-in-out infinite;
}

@keyframes hu-bg { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes hu-clergy { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-3px) } }
@keyframes hu-hester { 0%,100% { transform: rotate(3deg) } 50% { transform: rotate(0) translateY(-4px) scale(1.01) } }
@keyframes hu-child { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(15deg) scale(1.05) } }
@keyframes hu-shadow { 0%,100% { opacity: 0.3 } 50% { opacity: 0.6 } }
@keyframes hu-whisper { 0%,100% { opacity: 0.2; transform: scaleX(0.8) } 50% { opacity: 0.8; transform: scaleX(1.2) } }

.scn-hester-turns-pale {
  background:
    linear-gradient(180deg, #3a3a4e 0%, #4a4a5e 30%, #2e2e40 70%, #1e1e2e 100%),
    radial-gradient(ellipse at 50% 80%, #4a4a5e 0%, transparent 60%);
}
.scn-hester-turns-pale .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #52526a 0%, #2a2a3e 100%);
  animation: hp-bg 16s ease-in-out infinite alternate;
}
.scn-hester-turns-pale .figure-hester {
  position: absolute; bottom: 20%; left: 60%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2e2e40 0%, #1e1e2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hp-figure 6s ease-in-out infinite;
}
.scn-hester-turns-pale .profile-line {
  position: absolute; bottom: 50%; left: 63%; width: 1px; height: 30px;
  background: linear-gradient(180deg, transparent, #7a7a8a, transparent);
  filter: blur(1px); animation: hp-profile 4s ease-in-out infinite;
}
.scn-hester-turns-pale .blush-overlay {
  position: absolute; bottom: 40%; left: 58%; width: 20px; height: 20px;
  background: radial-gradient(circle, #b08070 0%, transparent 70%);
  border-radius: 50%; opacity: 0.4;
  animation: hp-blush 5s ease-in-out infinite;
}
.scn-hester-turns-pale .child {
  position: absolute; bottom: 15%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #33334a 0%, #242438 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg); animation: hp-child 4s ease-in-out infinite;
}
.scn-hester-turns-pale .hand {
  position: absolute; bottom: 30%; left: 65%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #2e2e40 0%, #1e1e2e 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform: rotate(20deg); animation: hp-hand 3s ease-in-out infinite;
}

@keyframes hp-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes hp-figure { 0%,100% { transform: rotate(0) } 30% { transform: rotate(-2deg) translateY(-3px) } 70% { transform: rotate(3deg) translateY(-1px) } }
@keyframes hp-profile { 0%,100% { opacity: 0.3 } 50% { opacity: 0.9 } }
@keyframes hp-blush { 0%,100% { opacity: 0.3; transform: scale(0.8) } 30% { opacity: 0.7; transform: scale(1.3) } 70% { opacity: 0.2; transform: scale(1) } }
@keyframes hp-child { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes hp-hand { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(30deg) translateY(-2px) } }

.scn-thow-must-bear-again {
  background:
    linear-gradient(180deg, #1e2a1e 0%, #141f14 40%, #0a120a 100%),
    radial-gradient(ellipse at 50% 100%, #1e3a1e 0%, transparent 50%);
}
.scn-thow-must-bear-again .forest-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  animation: tb-forest 20s ease-in-out infinite alternate;
}
.scn-thow-must-bear-again .brook {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 60% 40% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: tb-brook 12s ease-in-out infinite;
}
.scn-thow-must-bear-again .figure {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tb-figure 8s ease-in-out infinite;
}
.scn-thow-must-bear-again .scarlet-letter {
  position: absolute; bottom: 30%; left: 48%; width: 14px; height: 14px;
  background: radial-gradient(circle, #8a3a2a 0%, #5e1a1d 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 3px #5e1a1d;
  animation: tb-letter 4s ease-in-out infinite;
}
.scn-thow-must-bear-again .hand {
  position: absolute; bottom: 30%; left: 51%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  animation: tb-hand 6s ease-in-out infinite;
}
.scn-thow-must-bear-again .reflection {
  position: absolute; bottom: 10%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #5e2a1a 0%, transparent 70%);
  opacity: 0.4; filter: blur(3px);
  animation: tb-reflection 5s ease-in-out infinite;
}
.scn-thow-must-bear-again .moss {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 10px;
  background: radial-gradient(ellipse, #2e4a2e 0%, transparent 70%);
  filter: blur(4px); animation: tb-moss 10s ease-in-out infinite;
}

@keyframes tb-forest { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes tb-brook { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tb-figure { 0%,100% { transform: translateX(-50%) rotate(0) } 30% { transform: translateX(-50%) rotate(2deg) translateY(-3px) } 70% { transform: translateX(-50%) rotate(-1deg) translateY(-1px) } }
@keyframes tb-letter { 0%,100% { opacity: 0.9; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } }
@keyframes tb-hand { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(-20deg) translateY(-2px) } }
@keyframes tb-reflection { 0%,100% { opacity: 0.2; transform: scale(0.8) } 50% { opacity: 0.6; transform: scale(1) } }
@keyframes tb-moss { 0%,100% { opacity: 0.4 } 50% { opacity: 0.7 } }

/* scene: item-flower-battery */
.scn-item-flower-battery {
  background: linear-gradient(180deg, #f7e4c0 0%, #e4c99a 35%, #c8a87a 70%), 
              radial-gradient(ellipse at 20% 80%, #c8a87a 0%, transparent 60%);
  overflow: hidden;
}
.scn-item-flower-battery .sun {
  position: absolute;
  top: -15%;
  right: -15%;
  width: 60%;
  height: 60%;
  background: radial-gradient(circle at 30% 30%, #fff8e0, #fddc8a 50%, transparent 70%);
  filter: blur(20px);
  animation: fl-sun 8s ease-in-out infinite alternate;
}
.scn-item-flower-battery .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8d4e8 0%, #d4e8f0 50%, transparent 100%);
  opacity: 0.6;
  animation: fl-sky 6s ease-in-out infinite alternate;
}
.scn-item-flower-battery .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #8b7355 0%, #5e4a3a 100%);
  border-radius: 70% 30% 0 0 / 30% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-item-flower-battery .mother {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fl-mother 3s ease-in-out infinite;
}
.scn-item-flower-battery .arm {
  position: absolute;
  bottom: 60%;
  left: 38%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: 100% 100%;
  animation: fl-arm 1.5s ease-in-out infinite alternate;
}
.scn-item-flower-battery .flower {
  position: absolute;
  width: 30px;
  height: 30px;
  background: radial-gradient(circle at 40% 40%, #f0c0a0, #d08060 60%, #a05030);
  border-radius: 50%;
  filter: blur(1px);
  box-shadow: 0 0 8px rgba(200,100,60,0.5);
}
.scn-item-flower-battery .f1 {
  bottom: 50%;
  left: 20%;
  animation: fl-flower 2s ease-in-out infinite;
}
.scn-item-flower-battery .f2 {
  bottom: 60%;
  left: 45%;
  animation: fl-flower 2.3s ease-in-out infinite 0.3s;
}
.scn-item-flower-battery .f3 {
  bottom: 45%;
  left: 60%;
  animation: fl-flower 2.6s ease-in-out infinite 0.6s;
}
.scn-item-flower-battery .shadow-line {
  position: absolute;
  bottom: 30%;
  left: 10%;
  right: 10%;
  height: 2px;
  background: rgba(0,0,0,0.3);
  filter: blur(4px);
  animation: fl-shadow 4s ease-in-out infinite alternate;
}
@keyframes fl-sun {
  0%   { opacity: 0.8; transform: scale(1); }
  50%  { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes fl-sky {
  0%   { opacity: 0.5; }
  50%  { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes fl-mother {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(1px) rotate(-1deg); }
}
@keyframes fl-arm {
  0%   { transform: rotate(-30deg) translateY(0); }
  50%  { transform: rotate(-20deg) translateY(-3px); }
  100% { transform: rotate(-35deg) translateY(2px); }
}
@keyframes fl-flower {
  0%   { transform: translate(0,0) scale(0.8) rotate(0deg); }
  25%  { transform: translate(15px,-20px) scale(1) rotate(30deg); }
  50%  { transform: translate(30px,-5px) scale(0.9) rotate(60deg); }
  75%  { transform: translate(15px,10px) scale(1.1) rotate(90deg); }
  100% { transform: translate(0,0) scale(0.8) rotate(120deg); }
}
@keyframes fl-shadow {
  0%   { width: 80%; left: 10%; }
  50%  { width: 70%; left: 15%; }
  100% { width: 85%; left: 5%; }
}

/* scene: hester-asks-what-art-thou */
.scn-hester-asks-what-art-thou {
  background: linear-gradient(180deg, #f2dbb8 0%, #d9b88a 40%, #b8936c 80%),
              radial-gradient(ellipse at 50% 100%, #b8936c 0%, transparent 70%);
  overflow: hidden;
}
.scn-hester-asks-what-art-thou .sunburst {
  position: absolute;
  top: -10%;
  left: 30%;
  width: 50%;
  height: 80%;
  background: radial-gradient(ellipse at 50% 30%, #fffbe0, #fddc8a 40%, transparent 70%);
  filter: blur(30px);
  animation: he-sun 10s ease-in-out infinite alternate;
}
.scn-hester-asks-what-art-thou .backdrop {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0c8d8 0%, #c8d8e8 30%, transparent 100%);
  opacity: 0.5;
}
.scn-hester-asks-what-art-thou .hester-figure {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 36px;
  height: 88px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: he-hester 6s ease-in-out infinite;
}
.scn-hester-asks-what-art-thou .pearl-figure {
  position: absolute;
  bottom: 12%;
  left: 55%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #d8c0a0 0%, #b09878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: he-pearl 2s ease-in-out infinite;
}
.scn-hester-asks-what-art-thou .pearl-dress {
  position: absolute;
  bottom: 14%;
  left: 53%;
  width: 28px;
  height: 40px;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 40% 40% 30% 30% / 80% 80% 30% 30%;
  animation: he-dress 2s ease-in-out infinite 0.1s;
}
.scn-hester-asks-what-art-thou .hand {
  position: absolute;
  bottom: 65%;
  left: 48%;
  width: 12px;
  height: 16px;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-20deg);
  animation: he-hand 4s ease-in-out infinite alternate;
}
.scn-hester-asks-what-art-thou .dust {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 100%;
  height: 20px;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,180,160,0.3) 0%, transparent 50%);
  filter: blur(6px);
  animation: he-dust 3s ease-in-out infinite;
}
@keyframes he-sun {
  0%   { opacity: 0.6; transform: scale(1); }
  50%  { opacity: 1; transform: scale(1.08); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes he-hester {
  0%   { transform: translateX(0) rotate(0deg); }
  50%  { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes he-pearl {
  0%   { transform: translateY(0) rotate(-5deg) scaleX(1); }
  25%  { transform: translateY(-8px) rotate(5deg) scaleX(0.95); }
  50%  { transform: translateY(-3px) rotate(-3deg) scaleX(1.05); }
  75%  { transform: translateY(-10px) rotate(8deg) scaleX(0.9); }
  100% { transform: translateY(0) rotate(-2deg) scaleX(1); }
}
@keyframes he-dress {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes he-hand {
  0%   { transform: translate(0,0) rotate(-20deg); }
  50%  { transform: translate(3px,-5px) rotate(-10deg); }
  100% { transform: translate(-2px,2px) rotate(-30deg); }
}
@keyframes he-dust {
  0%   { opacity: 0; transform: translateY(0); }
  50%  { opacity: 0.5; transform: translateY(-5px); }
  100% { opacity: 0; transform: translateY(-10px); }
}

/* scene: pearl-insists-on-name */
.scn-pearl-insists-on-name {
  background: linear-gradient(180deg, #faeac4 0%, #e8d4a0 40%, #d0b878 80%),
              radial-gradient(ellipse at 50% 20%, #fdf0d0 0%, transparent 70%);
  overflow: hidden;
}
.scn-pearl-insists-on-name .golden-bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 60% 30%, #ffe8b0 0%, transparent 60%);
  opacity: 0.3;
  animation: pe-gold 5s ease-in-out infinite alternate;
}
.scn-pearl-insists-on-name .hester-silhouette {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 48px;
  height: 100px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-pearl-insists-on-name .pearl-jump {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 22px;
  height: 40px;
  background: linear-gradient(180deg, #d8ba8a 0%, #b89a6a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pe-jump 1.2s ease-in-out infinite;
}
.scn-pearl-insists-on-name .pearl-arms {
  position: absolute;
  bottom: 52%;
  left: 55%;
  width: 30px;
  height: 16px;
  background: linear-gradient(180deg, #b89a6a 0%, #a08050 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(20deg);
  animation: pe-arms 1.2s ease-in-out infinite 0.1s;
}
.scn-pearl-insists-on-name .dress-sway {
  position: absolute;
  bottom: 22%;
  left: 53%;
  width: 26px;
  height: 30px;
  background: linear-gradient(180deg, #e0c898 0%, #c0a870 100%);
  border-radius: 40% 40% 30% 30% / 80% 80% 30% 30%;
  animation: pe-sway 1.2s ease-in-out infinite 0.15s;
}
.scn-pearl-insists-on-name .sparkle {
  position: absolute;
  width: 6px;
  height: 6px;
  background: #fff8e0;
  border-radius: 50%;
  filter: blur(1px);
}
.scn-pearl-insists-on-name .s1 {
  top: 30%;
  left: 50%;
  animation: pe-sparkle 2s ease-in-out infinite;
}
.scn-pearl-insists-on-name .s2 {
  top: 45%;
  left: 65%;
  animation: pe-sparkle 2.5s ease-in-out infinite 0.5s;
}
.scn-pearl-insists-on-name .ground-patch {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 15%;
  background: linear-gradient(180deg, #b09868 0%, #8a7050 100%);
  border-radius: 60% 60% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
@keyframes pe-gold {
  0%   { opacity: 0.2; transform: scale(1); }
  50%  { opacity: 0.4; transform: scale(1.03); }
  100% { opacity: 0.25; transform: scale(0.97); }
}
@keyframes pe-jump {
  0%   { transform: translateY(0) rotate(-5deg) scaleX(1); }
  25%  { transform: translateY(-12px) rotate(10deg) scaleX(0.9); }
  50%  { transform: translateY(-6px) rotate(-8deg) scaleX(1.05); }
  75%  { transform: translateY(-15px) rotate(15deg) scaleX(0.85); }
  100% { transform: translateY(0) rotate(-3deg) scaleX(1); }
}
@keyframes pe-arms {
  0%   { transform: rotate(20deg) translateY(0); }
  50%  { transform: rotate(40deg) translateY(-5px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes pe-sway {
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes pe-sparkle {
  0%   { opacity: 0; transform: scale(0.5); }
  50%  { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0; transform: scale(0.2); }
}

/* scene: hester-says-heavenly-father */
.scn-hester-says-heavenly-father {
  background: linear-gradient(180deg, #d9c4a0 0%, #c8a880 40%, #b89068 80%),
              radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 60%);
  overflow: hidden;
}
.scn-hester-says-heavenly-father .light-beam {
  position: absolute;
  top: -10%;
  left: 40%;
  width: 20%;
  height: 130%;
  background: linear-gradient(180deg, rgba(255,245,200,0.4) 0%, rgba(255,245,200,0) 100%);
  transform: rotate(10deg);
  filter: blur(15px);
  animation: hf-beam 6s ease-in-out infinite alternate;
}
.scn-hester-says-heavenly-father .hester-bust {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 50px;
  height: 70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-hester-says-heavenly-father .pearl-hand {
  position: absolute;
  bottom: 60%;
  left: 48%;
  width: 14px;
  height: 20px;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(10deg);
  animation: hf-hand 6s ease-in-out infinite;
}
.scn-hester-says-heavenly-father .scarlet-letter {
  position: absolute;
  bottom: 48%;
  left: 47%;
  width: 16px;
  height: 22px;
  background: linear-gradient(180deg, #b04030 0%, #802020 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px 2px rgba(180,60,40,0.6);
  animation: hf-letter 5s ease-in-out infinite alternate;
}
.scn-hester-says-heavenly-father .shadow {
  position: absolute;
  bottom: 10%;
  left: 35%;
  width: 40px;
  height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: hf-shadow 4s ease-in-out infinite;
}
.scn-hester-says-heavenly-father .dust-motes {
  position: absolute;
  top: 20%;
  left: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(ellipse at 60% 30%, rgba(255,240,200,0.2) 0%, transparent 50%);
  filter: blur(8px);
}
@keyframes hf-beam {
  0%   { opacity: 0.3; transform: rotate(10deg) scaleX(1); }
  50%  { opacity: 0.6; transform: rotate(8deg) scaleX(1.05); }
  100% { opacity: 0.2; transform: rotate(12deg) scaleX(0.95); }
}
@keyframes hf-hand {
  0%   { transform: translate(0,0) rotate(10deg); }
  50%  { transform: translate(2px,-4px) rotate(5deg); }
  100% { transform: translate(-1px,0) rotate(15deg); }
}
@keyframes hf-letter {
  0%   { opacity: 0.8; box-shadow: 0 0 12px 2px rgba(180,60,40,0.6); }
  50%  { opacity: 1; box-shadow: 0 0 20px 4px rgba(180,60,40,0.8); }
  100% { opacity: 0.7; box-shadow: 0 0 8px 1px rgba(180,60,40,0.4); }
}
@keyframes hf-shadow {
  0%   { transform: scaleX(1); opacity: 0.4; }
  50%  { transform: scaleX(0.8); opacity: 0.6; }
  100% { transform: scaleX(1.1); opacity: 0.3; }
}

/* Scene: surveyor-among-diverse-associates */
.scn-surveyor-among-diverse-associates {
  background: linear-gradient(180deg, #1e1a18 0%, #2a2420 40%, #3c322c 100%), radial-gradient(ellipse at 50% 60%, #3e352e 0%, transparent 70%);
}
.scn-surveyor-among-diverse-associates .room-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 50%, #4a3d35 0%, #1c1815 100%);
  animation: sv-room 20s ease-in-out infinite alternate;
}
.scn-surveyor-among-diverse-associates .wall-left {
  position: absolute; left: 0; top: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #2f2822 0%, #1a1612 100%);
  animation: sv-wall 24s ease-in-out infinite alternate;
}
.scn-surveyor-among-diverse-associates .wall-right {
  position: absolute; right: 0; top: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #2f2822 0%, #1a1612 100%);
  animation: sv-wall 24s ease-in-out infinite alternate-reverse;
}
.scn-surveyor-among-diverse-associates .table {
  position: absolute; bottom: 14%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #5c4a3a 0%, #3d3024 100%);
  border-radius: 6% 6% 2% 2%; box-shadow: 0 6px 18px rgba(0,0,0,0.6);
  transform: perspective(800px) rotateX(8deg);
}
.scn-surveyor-among-diverse-associates .figure-left {
  position: absolute; bottom: 26%; left: 24%; width: 14%; height: 30%;
  background: radial-gradient(ellipse at 50% 60%, #2a221c 0%, #15110e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sv-figure-left 8s ease-in-out infinite;
}
.scn-surveyor-among-diverse-associates .figure-right {
  position: absolute; bottom: 26%; right: 24%; width: 14%; height: 30%;
  background: radial-gradient(ellipse at 50% 60%, #2a221c 0%, #15110e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sv-figure-right 10s ease-in-out infinite;
}
.scn-surveyor-among-diverse-associates .candle {
  position: absolute; bottom: 24%; left: 49%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #b89a6a 0%, #7a6540 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,160,100,0.5);
  animation: sv-candle 4s ease-in-out infinite alternate;
}
.scn-surveyor-among-diverse-associates .candle-glow {
  position: absolute; bottom: 24%; left: 47%; width: 6%; height: 6%;
  background: radial-gradient(circle, #f0d090 0%, rgba(240,208,144,0) 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sv-glow 6s ease-in-out infinite alternate;
}
@keyframes sv-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sv-wall { 0% { transform: scaleX(0.95); } 50% { transform: scaleX(1); } 100% { transform: scaleX(0.98); } }
@keyframes sv-figure-left { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(0); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes sv-figure-right { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-4px) rotate(0); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(3px) rotate(0); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes sv-candle { 0% { transform: scaleY(1); opacity: 0.8; } 25% { transform: scaleY(1.02); opacity: 0.9; } 50% { transform: scaleY(0.98); opacity: 1; } 75% { transform: scaleY(1.01); opacity: 0.85; } 100% { transform: scaleY(1); opacity: 0.8; } }
@keyframes sv-glow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.4); opacity: 0.9; } 100% { transform: scale(1.1); opacity: 0.7; } }

/* Scene: change-of-diet */
.scn-change-of-diet {
  background: linear-gradient(180deg, #1c1815 0%, #2a2420 50%, #3a3028 100%), radial-gradient(ellipse at 50% 80%, #302822 0%, transparent 60%);
}
.scn-change-of-diet .room-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 60%, #3d352e 0%, #1a1612 100%);
  animation: cd-room 18s ease-in-out infinite alternate;
}
.scn-change-of-diet .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a221c 0%, #1c1814 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 6px 14px rgba(0,0,0,0.5);
  animation: cd-floor 22s ease-in-out infinite alternate;
}
.scn-change-of-diet .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3d3024 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateX(5deg);
}
.scn-change-of-diet .chair {
  position: absolute; bottom: 22%; left: 38%; width: 24%; height: 40%;
  background: linear-gradient(180deg, #4a3c2e 0%, #2a221c 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-change-of-diet .plate {
  position: absolute; bottom: 26%; left: 42%; width: 16%; height: 6%;
  background: radial-gradient(circle at 50% 30%, #b8a088 0%, #8a7a64 60%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: cd-plate 14s ease-in-out infinite;
}
.scn-change-of-diet .figure-sitting {
  position: absolute; bottom: 28%; left: 40%; width: 20%; height: 36%;
  background: radial-gradient(ellipse at 50% 50%, #2a221c 0%, #15110e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-figure 8s ease-in-out infinite;
}
.scn-change-of-diet .window-dry {
  position: absolute; top: 12%; right: 10%; width: 20%; height: 28%;
  background: linear-gradient(180deg, #2f2822 0%, #1a1612 100%);
  border: 2px solid #4a3c2e; border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
}
.scn-change-of-diet .curtain {
  position: absolute; top: 10%; right: 10%; width: 22%; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3d3024 100%);
  border-radius: 20% 20% 4% 4%; filter: blur(2px);
  animation: cd-curtain 20s ease-in-out infinite alternate;
}
@keyframes cd-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cd-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes cd-plate { 0% { transform: scale(1); } 25% { transform: scale(1.02); } 50% { transform: scale(0.98); } 75% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes cd-figure { 0% { transform: rotate(-2deg); } 25% { transform: rotate(0) translateY(-1px); } 50% { transform: rotate(2deg); } 75% { transform: rotate(0) translateY(1px); } 100% { transform: rotate(-2deg); } }
@keyframes cd-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(3px); } }

/* Scene: literature-neglected */
.scn-literature-neglected {
  background: linear-gradient(180deg, #16120f 0%, #241e19 40%, #332a22 100%), radial-gradient(ellipse at 40% 50%, #2f2620 0%, transparent 70%);
}
.scn-literature-neglected .room-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 40%, #3a3028 0%, #14100c 100%);
  animation: ln-room 24s ease-in-out infinite alternate;
}
.scn-literature-neglected .bookshelf {
  position: absolute; top: 5%; left: 5%; width: 20%; height: 70%;
  background: linear-gradient(180deg, #4a3c2e 0%, #2a221c 100%);
  border-radius: 3%; box-shadow: 0 4px 14px rgba(0,0,0,0.6);
  animation: ln-shelf 30s ease-in-out infinite alternate;
}
.scn-literature-neglected .desk {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 14%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3d3024 100%);
  border-radius: 6% 6% 3% 3%; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateX(6deg);
}
.scn-literature-neglected .book-open {
  position: absolute; bottom: 20%; left: 32%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #8a725a 0%, #6a5a44 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 2px 10px rgba(0,0,0,0.3);
  animation: ln-book 18s ease-in-out infinite alternate;
}
.scn-literature-neglected .book-closed {
  position: absolute; bottom: 18%; left: 48%; width: 14%; height: 8%;
  background: linear-gradient(180deg, #7a6540 0%, #5a4a32 100%);
  border-radius: 6% 6% 2% 2%; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: ln-book 20s ease-in-out infinite alternate-reverse;
}
.scn-literature-neglected .figure-turned {
  position: absolute; bottom: 22%; right: 18%; width: 16%; height: 40%;
  background: radial-gradient(ellipse at 50% 60%, #2a221c 0%, #15110e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ln-figure 12s ease-in-out infinite;
}
.scn-literature-neglected .lamp {
  position: absolute; bottom: 28%; left: 22%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #c8a860 0%, #8a7040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 8px rgba(200,168,80,0.5);
  animation: ln-lamp 5s ease-in-out infinite alternate;
}
@keyframes ln-room { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes ln-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes ln-book { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes ln-figure { 0% { transform: rotate(0) translateX(0); } 25% { transform: rotate(2deg) translateX(3px); } 50% { transform: rotate(0) translateX(0); } 75% { transform: rotate(-2deg) translateX(-2px); } 100% { transform: rotate(0) translateX(0); } }
@keyframes ln-lamp { 0% { transform: scale(1); opacity: 0.7; } 25% { transform: scale(1.03); opacity: 0.9; } 50% { transform: scale(0.97); opacity: 1; } 75% { transform: scale(1.01); opacity: 0.85; } 100% { transform: scale(1); opacity: 0.7; } }

/* Scene: transitory-life */
.scn-transitory-life {
  background: linear-gradient(180deg, #141210 0%, #221e1a 40%, #302a24 100%), radial-gradient(ellipse at 50% 50%, #2a241e 0%, transparent 60%);
}
.scn-transitory-life .corridor-bg {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 60%, #3a3028 0%, #14100c 100%);
  animation: tr-corridor 30s ease-in-out infinite alternate;
}
.scn-transitory-life .archway {
  position: absolute; top: 0; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #2a221c 0%, #1c1814 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
  animation: tr-arch 24s ease-in-out infinite alternate;
}
.scn-transitory-life .doorway {
  position: absolute; bottom: 20%; left: 38%; width: 24%; height: 60%;
  background: linear-gradient(180deg, #1c1814 0%, #14100c 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: tr-door 20s ease-in-out infinite alternate;
}
.scn-transitory-life .floor-path {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #3a3028 0%, #241e1a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-transitory-life .figure-walking {
  position: absolute; bottom: 22%; left: 44%; width: 12%; height: 36%;
  background: radial-gradient(ellipse at 50% 60%, #2a221c 0%, #15110e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tr-walk 10s ease-in-out infinite;
}
.scn-transitory-life .shadow-casting {
  position: absolute; bottom: 18%; left: 46%; width: 8%; height: 4%;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: tr-shadow 10s ease-in-out infinite;
}
.scn-transitory-life .wall-sconce {
  position: absolute; top: 20%; left: 28%; width: 4%; height: 6%;
  background: linear-gradient(180deg, #b89a6a 0%, #7a6540 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(200,160,100,0.4);
  animation: tr-sconce 4s ease-in-out infinite alternate;
}
.scn-transitory-life .glow-orb {
  position: absolute; top: 19%; left: 27%; width: 6%; height: 6%;
  background: radial-gradient(circle, #f0d090 0%, rgba(240,208,144,0) 80%);
  border-radius: 50%;
  filter: blur(6px);
  animation: tr-glow 6s ease-in-out infinite alternate;
}
@keyframes tr-corridor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes tr-arch { 0% { transform: scaleY(0.98); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes tr-door { 0% { transform: scaleX(0.98); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes tr-walk { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(6px) rotate(-1deg); } 50% { transform: translateX(12px) rotate(0); } 75% { transform: translateX(18px) rotate(1deg); } 100% { transform: translateX(24px) rotate(0); } }
@keyframes tr-shadow { 0% { transform: translateX(0) scaleX(0.8); opacity: 0.6; } 25% { transform: translateX(6px) scaleX(0.9); opacity: 0.5; } 50% { transform: translateX(12px) scaleX(1); opacity: 0.4; } 75% { transform: translateX(18px) scaleX(0.9); opacity: 0.5; } 100% { transform: translateX(24px) scaleX(0.8); opacity: 0.6; } }
@keyframes tr-sconce { 0% { transform: scaleY(1) rotate(0); opacity: 0.7; } 25% { transform: scaleY(1.02) rotate(2deg); opacity: 0.85; } 50% { transform: scaleY(0.98) rotate(-1deg); opacity: 1; } 75% { transform: scaleY(1.01) rotate(0); opacity: 0.9; } 100% { transform: scaleY(1) rotate(0); opacity: 0.7; } }
@keyframes tr-glow { 0% { transform: scale(1) translateX(0); opacity: 0.5; } 50% { transform: scale(1.3) translateX(2px); opacity: 0.8; } 100% { transform: scale(0.9) translateX(-1px); opacity: 0.6; } }

.scn-hester-reviled-bounty { background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 60%, #2a1a0a 100%), radial-gradient(circle at 40% 60%, #3a2a1a 0%, transparent 70%); position:relative; overflow:hidden; height:100%; }
.scn-hester-reviled-bounty .wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-hester-reviled-bounty .window-light { position:absolute; top:20%; left:60%; width:80px; height:100px; background: radial-gradient(circle, #d4a050 0%, #c08040 40%, transparent 70%); border-radius:8%; box-shadow: 0 0 60px 20px #c08040, 0 0 100px 40px rgba(192,128,64,.4); animation: hrb-glow 4s ease-in-out infinite alternate; }
.scn-hester-reviled-bounty .hester-silhouette { position:absolute; bottom:28%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #1a0a05 0%, #2a1a0a 70%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(5deg) translateX(-10px); animation: hrb-reach 5s ease-in-out infinite; }
.scn-hester-reviled-bounty .reviler-silhouette { position:absolute; bottom:28%; left:58%; width:35px; height:65px; background: linear-gradient(180deg, #1a0a05 0%, #0a0502 100%); border-radius: 45% 40% 30% 30% / 55% 60% 40% 40%; transform: rotate(-10deg) translateX(5px); animation: hrb-shrink 7s ease-in-out infinite; }
.scn-hester-reviled-bounty .table { position:absolute; bottom:20%; left:35%; width:100px; height:15px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: hrb-table 12s ease-in-out infinite; }
.scn-hester-reviled-bounty .candle { position:absolute; bottom:35%; left:40%; width:4px; height:20px; background: linear-gradient(180deg, #f0c060 0%, #806030 100%); border-radius:2px; box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,.3); animation: hrb-flicker 2s ease-in-out infinite alternate; }
@keyframes hrb-glow { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.8; transform: scale(.95); } }
@keyframes hrb-reach { 0%,100% { transform: rotate(5deg) translateX(-10px) scaleY(1); } 25% { transform: rotate(10deg) translateX(-5px) scaleY(1.02); } 50% { transform: rotate(8deg) translateX(-8px) scaleY(1); } 75% { transform: rotate(12deg) translateX(-12px) scaleY(1.01); } }
@keyframes hrb-shrink { 0%,100% { transform: rotate(-10deg) translateX(5px) scale(1); } 33% { transform: rotate(-15deg) translateX(8px) scale(.96); } 66% { transform: rotate(-5deg) translateX(2px) scale(1.02); } }
@keyframes hrb-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hrb-flicker { 0% { opacity:.6; transform: scaleY(1) translateY(0); } 50% { opacity:1; transform: scaleY(1.1) translateY(-2px); } 100% { opacity:.7; transform: scaleY(.95) translateY(0); } }

.scn-hester-schooled-patience { background: linear-gradient(135deg, #d4c4a0 0%, #c0b090 50%, #b0a080 100%), radial-gradient(circle at 70% 30%, #e8dcc0 0%, transparent 60%); position:relative; overflow:hidden; height:100%; }
.scn-hester-schooled-patience .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); }
.scn-hester-schooled-patience .soft-window { position:absolute; top:15%; left:65%; width:70px; height:90px; background: radial-gradient(circle, #f0e8d0 0%, #d0c8b0 40%, transparent 80%); border-radius:10%; box-shadow: 0 0 40px 15px rgba(240,232,208,.5), 0 0 80px 30px rgba(240,232,208,.2); animation: hsp-light 8s ease-in-out infinite alternate; }
.scn-hester-schooled-patience .hester-seated { position:absolute; bottom:22%; left:40%; width:35px; height:60px; background: linear-gradient(180deg, #402a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: hsp-breathe 6s ease-in-out infinite; }
.scn-hester-schooled-patience .folded-hands { position:absolute; bottom:18%; left:42%; width:14px; height:12px; background: radial-gradient(circle, #5a3a2a 0%, #3a2a1a 70%); border-radius:50%; transform: translateX(2px); animation: hsp-hands 6s ease-in-out infinite; }
.scn-hester-schooled-patience .book { position:absolute; bottom:16%; left:36%; width:30px; height:40px; background: linear-gradient(135deg, #604020 0%, #402810 100%); border-radius:4px 10px 4px 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(2deg); animation: hsp-book 12s ease-in-out infinite; }
.scn-hester-schooled-patience .gentle-glow { position:absolute; top:40%; left:30%; width:120px; height:120px; background: radial-gradient(circle at 50% 50%, rgba(255,240,210,.2) 0%, transparent 70%); animation: hsp-glow-pulse 10s ease-in-out infinite alternate; }
@keyframes hsp-light { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes hsp-breathe { 0%,100% { transform: rotate(-5deg) scale(1) translateY(0); } 25% { transform: rotate(-6deg) scale(1.01) translateY(-2px); } 50% { transform: rotate(-4deg) scale(1) translateY(0); } 75% { transform: rotate(-5deg) scale(.99) translateY(1px); } }
@keyframes hsp-hands { 0%,100% { transform: translateX(2px) scale(1); } 33% { transform: translateX(4px) scale(1.05); } 66% { transform: translateX(0) scale(.95); } }
@keyframes hsp-book { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-3px); } }
@keyframes hsp-glow-pulse { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

.scn-hester-clergymen-exhortation { background: linear-gradient(180deg, #e8d8b0 0%, #c8b88a 40%, #a89868 100%), radial-gradient(ellipse at 80% 10%, #f8ecc0 0%, transparent 70%); position:relative; overflow:hidden; height:100%; }
.scn-hester-clergymen-exhortation .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e4c0 0%, #d0c098 100%); }
.scn-hester-clergymen-exhortation .buildings { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #a08860 0%, #806840 100%); box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); }
.scn-hester-clergymen-exhortation .sun { position:absolute; top:10%; right:15%; width:50px; height:50px; background: radial-gradient(circle, #fff8e0 0%, #f8e8b0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,248,224,.7), 0 0 120px 50px rgba(255,248,224,.3); animation: hce-sun 12s ease-in-out infinite alternate; }
.scn-hester-clergymen-exhortation .clergyman-fore { position:absolute; bottom:28%; left:30%; width:40px; height:75px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 45% 40% 30% 30% / 55% 60% 40% 40%; transform: rotate(5deg); box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: hce-point 3s ease-in-out infinite; }
.scn-hester-clergymen-exhortation .clergyman-mid { position:absolute; bottom:30%; left:45%; width:38px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius: 45% 40% 30% 30% / 55% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: hce-point 3.5s ease-in-out infinite reverse; }
.scn-hester-clergymen-exhortation .hester-small { position:absolute; bottom:25%; left:55%; width:25px; height:55px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg) scale(.9); animation: hce-cower 4s ease-in-out infinite; }
.scn-hester-clergymen-exhortation .shadow-ground { position:absolute; bottom:20%; left:20%; right:10%; height:40px; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 100%); }
@keyframes hce-sun { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.9; transform: scale(.98); } }
@keyframes hce-point { 0%,100% { transform: rotate(5deg) translateY(0) scale(1); } 25% { transform: rotate(10deg) translateY(-3px) scale(1.02); } 50% { transform: rotate(5deg) translateY(0) scale(1); } 75% { transform: rotate(0deg) translateY(-1px) scale(.98); } }
@keyframes hce-cower { 0%,100% { transform: rotate(-10deg) scale(.9) translateX(0); } 33% { transform: rotate(-12deg) scale(.88) translateX(2px); } 66% { transform: rotate(-8deg) scale(.92) translateX(-1px); } }

.scn-hester-dread-of-children { background: linear-gradient(180deg, #f8e8c0 0%, #d8c098 50%, #b8a078 100%), radial-gradient(ellipse at 60% 80%, #c8b080 0%, transparent 60%); position:relative; overflow:hidden; height:100%; }
.scn-hester-dread-of-children .sky-glare { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #f8f0d8 0%, #e0d4b0 100%); }
.scn-hester-dread-of-children .ground-dusty { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b8a078 0%, #908060 100%); }
.scn-hester-dread-of-children .hester-running { position:absolute; bottom:25%; left:20%; width:28px; height:60px; background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%); border-radius: 45% 40% 30% 30% / 55% 60% 40% 40%; transform: rotate(-15deg) translateX(0); animation: hdc-run 2s ease-in-out infinite; }
.scn-hester-dread-of-children .child-1 { position:absolute; bottom:30%; left:50%; width:18px; height:35px; background: linear-gradient(180deg, #302010 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg) scale(.8); animation: hdc-chase 2.5s ease-in-out infinite; animation-delay:0s; }
.scn-hester-dread-of-children .child-2 { position:absolute; bottom:28%; left:60%; width:20px; height:38px; background: linear-gradient(180deg, #2a1a0a 0%, #100a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg) scale(.9); animation: hdc-chase 2.7s ease-in-out infinite; animation-delay:0.3s; }
.scn-hester-dread-of-children .child-3 { position:absolute; bottom:32%; left:70%; width:16px; height:32px; background: linear-gradient(180deg, #3a2010 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg) scale(.7); animation: hdc-chase 3s ease-in-out infinite; animation-delay:0.6s; }
.scn-hester-dread-of-children .dust-particles { position:absolute; bottom:20%; left:10%; width:200px; height:20px; background: radial-gradient(circle at 30% 50%, rgba(180,160,130,.15) 0%, transparent 70%); filter:blur(4px); animation: hdc-dust 4s ease-in-out infinite alternate; }
@keyframes hdc-run { 0% { transform: rotate(-15deg) translateX(0) scale(1); } 20% { transform: rotate(-20deg) translateX(10px) scale(1.02); } 40% { transform: rotate(-10deg) translateX(20px) scale(.98); } 60% { transform: rotate(-15deg) translateX(30px) scale(1); } 80% { transform: rotate(-10deg) translateX(40px) scale(1.01); } 100% { transform: rotate(-15deg) translateX(50px) scale(1); } }
@keyframes hdc-chase { 0% { transform: rotate(10deg) scale(.8) translateX(0); } 25% { transform: rotate(15deg) scale(.85) translateX(5px); } 50% { transform: rotate(10deg) scale(.8) translateX(10px); } 75% { transform: rotate(5deg) scale(.75) translateX(15px); } 100% { transform: rotate(10deg) scale(.8) translateX(20px); } }
@keyframes hdc-dust { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.6; transform: scaleY(1.5); } 100% { opacity:.4; transform: scaleY(.8); } }

/* Scene 1: judgment-of-god */
.scn-judgment-of-god {
  background: 
    linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 30%, #2a2a3e 70%, #0a0a14 100%),
    radial-gradient(ellipse at 40% 30%, #3a3a4e 0%, transparent 70%);
}
.scn-judgment-of-god .bg-wall {
  position: absolute; inset: 0; background: #141428; opacity: 0.6; animation: jg-wall 30s ease-in-out infinite alternate;
}
.scn-judgment-of-god .window-light {
  position: absolute; top: 12%; left: 25%; width: 40px; height: 60px; background: radial-gradient(circle at 50% 50%, rgba(200,200,230,0.3) 0%, rgba(100,120,150,0.1) 70%, transparent 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 0 40px 15px rgba(180,200,240,0.15); animation: jg-window 8s ease-in-out infinite;
}
.scn-judgment-of-god .altar-cross {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%); width: 8px; height: 70px; background: #2a2a1e; border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,0.6); animation: jg-cross 5s ease-in-out infinite;
}
.scn-judgment-of-god .altar-cross::before {
  content: ''; position: absolute; top: 10px; left: -15px; width: 38px; height: 8px; background: #2a2a1e; border-radius: 2px;
}
.scn-judgment-of-god .figure-priest {
  position: absolute; bottom: 32%; left: 38%; width: 22px; 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: jg-priest 6s ease-in-out infinite;
}
.scn-judgment-of-god .figure-hester {
  position: absolute; bottom: 32%; left: 55%; width: 20px; height: 58px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: jg-hester 6s ease-in-out infinite 0.3s;
}
.scn-judgment-of-god .floor-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, rgba(10,10,20,0.2) 0%, #0a0a14 100%); border-radius: 20% 20% 0 0; filter: blur(4px); animation: jg-floor 20s ease-in-out infinite alternate;
}
.scn-judgment-of-god .pew {
  position: absolute; bottom: 5%; left: 30%; width: 80px; height: 20px; background: #1e1e12; border-radius: 4px 4px 0 0; box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: jg-pew 10s ease-in-out infinite alternate;
}
@keyframes jg-wall { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes jg-window { 0% { opacity:0.3; filter:blur(3px); } 50% { opacity:0.6; filter:blur(0px); } 100% { opacity:0.35; filter:blur(3px); } }
@keyframes jg-cross { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes jg-priest { 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 jg-hester { 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 jg-floor { 0% { height:30%; opacity:0.6; } 50% { height:32%; opacity:0.8; } 100% { height:28%; opacity:0.5; } }
@keyframes jg-pew { 0% { height:20px; } 50% { height:22px; } 100% { height:18px; } }

/* Scene 2: world-beyond-town */
.scn-world-beyond-town {
  background: 
    linear-gradient(180deg, #3a4a4a 0%, #2c3838 40%, #1e2424 80%, #0a0e0e 100%),
    radial-gradient(ellipse at 50% 100%, #2c3838 0%, transparent 70%);
}
.scn-world-beyond-town .sky-overcast {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #4a5a5a 0%, #3a4848 50%, #2a3636 100%); animation: wb-sky 25s ease-in-out infinite alternate;
}
.scn-world-beyond-town .town-silhouette {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 12%; background: linear-gradient(180deg, #1a2020 0%, #0a0e0e 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; filter: blur(1px); animation: wb-town 30s linear infinite;
}
.scn-world-beyond-town .path-fade {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 40%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); border-radius: 0 0 30% 30%; animation: wb-path 15s ease-in-out infinite alternate;
}
.scn-world-beyond-town .tree-left {
  position: absolute; bottom: 25%; left: 5%; width: 25px; height: 80px; background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%); border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%; transform-origin: bottom center; animation: wb-tree 12s ease-in-out infinite;
}
.scn-world-beyond-town .tree-right {
  position: absolute; bottom: 20%; right: 8%; width: 30px; height: 90px; background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%); border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%; transform-origin: bottom center; animation: wb-tree 12s ease-in-out infinite 0.5s;
}
.scn-world-beyond-town .figure-on-path {
  position: absolute; bottom: 18%; left: 45%; width: 14px; height: 40px; background: #0a0e0e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wb-figure 6s ease-in-out infinite;
}
.scn-world-beyond-town .leaf-rustle {
  position: absolute; bottom: 30%; left: 25%; width: 12px; height: 6px; background: #6a6a4a; border-radius: 50% 50% 0 0; transform: rotate(30deg); animation: wb-leaf 4s ease-in-out infinite;
}
.scn-world-beyond-town .mist {
  position: absolute; top: 10%; left: 0; right: 0; height: 20%; background: linear-gradient(90deg, transparent 0%, rgba(60,70,70,0.2) 50%, transparent 100%); filter: blur(10px); animation: wb-mist 20s linear infinite;
}
@keyframes wb-sky { 0% { opacity:0.7; } 50% { opacity:0.85; } 100% { opacity:0.65; } }
@keyframes wb-town { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wb-path { 0% { height:40%; } 50% { height:42%; } 100% { height:38%; } }
@keyframes wb-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes wb-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(9px) rotate(-1deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes wb-leaf { 0% { transform: translate(0,0) rotate(30deg); } 50% { transform: translate(8px,4px) rotate(45deg); } 100% { transform: translate(16px,8px) rotate(60deg); } }
@keyframes wb-mist { 0% { transform: translateX(-20%); } 50% { transform: translateX(20%); } 100% { transform: translateX(-20%); } }

/* Scene 3: only-under-fallen-leaves */
.scn-only-under-fallen-leaves {
  background: 
    linear-gradient(180deg, #1a1a0e 0%, #2a2a1a 30%, #3a3a2a 60%, #1a1a0e 100%),
    radial-gradient(ellipse at 60% 70%, #2a2a1a 0%, transparent 70%);
}
.scn-only-under-fallen-leaves .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a2a1a 0%, #0e0e0a 100%); border-radius: 40% 40% 0 0; animation: of-ground 30s ease-in-out infinite alternate;
}
.scn-only-under-fallen-leaves .leaf-mound {
  position: absolute; bottom: 20%; left: 15%; width: 120px; height: 20px; background: #5a4a3a; border-radius: 50% 50% 30% 30%; filter: blur(3px); animation: of-mound 10s ease-in-out infinite;
}
.scn-only-under-fallen-leaves .staff-standing {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%); width: 6px; height: 80px; background: #4a3a2a; border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,0.4); animation: of-staff 8s ease-in-out infinite;
}
.scn-only-under-fallen-leaves .shoe-left {
  position: absolute; bottom: 10%; left: 35%; width: 16px; height: 8px; background: #1a1a0a; border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: of-shoe 5s ease-in-out infinite;
}
.scn-only-under-fallen-leaves .shoe-right {
  position: absolute; bottom: 10%; left: 48%; width: 16px; height: 8px; background: #1a1a0a; border-radius: 50% 50% 0 0; transform: rotate(5deg); animation: of-shoe 5s ease-in-out infinite 0.2s;
}
.scn-only-under-fallen-leaves .distant-trunk {
  position: absolute; bottom: 30%; right: 10%; width: 12px; height: 100px; background: #2a1a0e; border-radius: 4px; filter: blur(2px); animation: of-trunk 20s ease-in-out infinite;
}
.scn-only-under-fallen-leaves .branch-overhead {
  position: absolute; top: 5%; left: 10%; width: 60px; height: 6px; background: #1a1a0a; border-radius: 50%; transform: rotate(-20deg); filter: blur(1px); animation: of-branch 15s ease-in-out infinite alternate;
}
@keyframes of-ground { 0% { height:50%; } 50% { height:52%; } 100% { height:48%; } }
@keyframes of-mound { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes of-staff { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes of-shoe { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-2px) rotate(-12deg); } 100% { transform: translateY(0) rotate(-8deg); } }
@keyframes of-trunk { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes of-branch { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-2px); } 100% { transform: rotate(-22deg) translateY(0); } }

/* Scene 4: powerless-to-go */
.scn-powerless-to-go {
  background: 
    linear-gradient(180deg, #0e0e14 0%, #1a1a24 40%, #0e0e14 100%),
    radial-gradient(ellipse at 30% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-powerless-to-go .bg-night {
  position: absolute; inset: 0; background: #12121c; opacity: 0.5; animation: pg-night 20s ease-in-out infinite alternate;
}
.scn-powerless-to-go .door-frame {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 70px; height: 120px; border: 4px solid #2a2a1e; border-radius: 4px 4px 0 0; background: transparent; animation: pg-frame 12s ease-in-out infinite;
}
.scn-powerless-to-go .door-panel {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 60px; height: 110px; background: #2a2a1e; border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: pg-door 10s ease-in-out infinite;
}
.scn-powerless-to-go .figure-bowed {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); 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 center; animation: pg-figure 8s ease-in-out infinite;
}
.scn-powerless-to-go .threshold {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%); width: 80px; height: 8px; background: #1a1a0e; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: pg-thresh 15s ease-in-out infinite;
}
.scn-powerless-to-go .light-crack {
  position: absolute; top: 20%; left: 45%; width: 4px; height: 40px; background: linear-gradient(180deg, rgba(200,190,150,0.3) 0%, transparent 100%); filter: blur(2px); animation: pg-crack 6s ease-in-out infinite;
}
.scn-powerless-to-go .chained-shackle {
  position: absolute; bottom: 25%; left: 42%; width: 10px; height: 20px; background: #3a3a2a; border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 4px #1a1a0a; animation: pg-shackle 5s ease-in-out infinite;
}
@keyframes pg-night { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes pg-frame { 0% { border-color: #2a2a1e; } 50% { border-color: #1e1e14; } 100% { border-color: #2a2a1e; } }
@keyframes pg-door { 0% { background: #2a2a1e; } 50% { background: #1e1e14; } 100% { background: #2a2a1e; } }
@keyframes pg-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes pg-thresh { 0% { height:8px; } 50% { height:10px; } 100% { height:6px; } }
@keyframes pg-crack { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.15; } }
@keyframes pg-shackle { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-pearl-inner-nature { background: linear-gradient(180deg, #1a1520 0%, #2a1e2a 40%, #3a2a30 100%), radial-gradient(ellipse at 50% 100%, #3a2a30 0%, transparent 70%); }
.scn-pearl-inner-nature .inner-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #1e1420 0%, #2e1e2a 50%, #1e1420 100%); animation: scn1-bg 20s ease-in-out infinite alternate; }
.scn-pearl-inner-nature .inner-wall { position:absolute; top:0; left:10%; right:10%; bottom:30%; background: linear-gradient(180deg, #2a1e2a 0%, #1e1420 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.6); animation: scn1-wall 15s ease-in-out infinite; }
.scn-pearl-inner-nature .inner-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1e20 0%, #1a1014 100%); border-radius: 0 0 20% 20% / 0 0 50% 50%; }
.scn-pearl-inner-nature .inner-window { position:absolute; top:10%; left:20%; width:50px; height:70px; background: linear-gradient(135deg, #4a3a4a 0%, #2a1a2a 100%); border: 2px solid #2a1a20; border-radius: 2px 2px 8px 8px; box-shadow: inset 0 0 20px 6px #6a5a5a; animation: scn1-window 5s ease-in-out infinite alternate; }
.scn-pearl-inner-nature .inner-figure { position:absolute; bottom:25%; left:40%; width:20px; 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: scn1-figure 6s ease-in-out infinite; }
.scn-pearl-inner-nature .inner-chair { position:absolute; bottom:26%; right:25%; width:30px; height:20px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1414 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: scn1-chair 8s ease-in-out infinite alternate; }
.scn-pearl-inner-nature .inner-shadow { position:absolute; bottom:25%; left:35%; width:25px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 60%); filter: blur(4px); animation: scn1-shadow 4s ease-in-out infinite alternate; }
@keyframes scn1-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes scn1-wall { 0% { transform: scaleX(1) } 25% { transform: scaleX(1.01) } 50% { transform: scaleX(1) } 75% { transform: scaleX(0.99) } 100% { transform: scaleX(1) } }
@keyframes scn1-window { 0% { box-shadow: inset 0 0 15px 4px #6a5a5a; opacity:.6 } 50% { box-shadow: inset 0 0 30px 10px #8a7a7a; opacity:1 } 100% { box-shadow: inset 0 0 20px 6px #6a5a5a; opacity:.7 } }
@keyframes scn1-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 33% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 66% { transform: translateX(-2px) translateY(1px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes scn1-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes scn1-shadow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.2) } 100% { opacity:.3; transform: scale(1) } }

.scn-pearl-inherited-passion { background: linear-gradient(180deg, #0e0a14 0%, #1a1220 50%, #2a1a30 100%), radial-gradient(ellipse at 50% 70%, #2a1a30 0%, transparent 60%); }
.scn-pearl-inherited-passion .passion-bg { position:absolute; inset:0 0 0 0; background: radial-gradient(ellipse at 40% 30%, #1a1220 0%, #0e0a14 100%); animation: scn2-bg 18s ease-in-out infinite; }
.scn-pearl-inherited-passion .passion-bed { position:absolute; bottom:20%; left:15%; right:30%; height:40%; background: linear-gradient(180deg, #2a1e2a 0%, #1a101a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.6); }
.scn-pearl-inherited-passion .passion-mother { position:absolute; bottom:25%; left:25%; width:22px; height:60px; background: linear-gradient(180deg, #1a1020 0%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scn2-mother 7s ease-in-out infinite; }
.scn-pearl-inherited-passion .passion-child { position:absolute; bottom:22%; left:40%; width:14px; height:35px; background: linear-gradient(180deg, #1a1020 0%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: scn2-child 6s ease-in-out infinite alternate; }
.scn-pearl-inherited-passion .passion-aura { position:absolute; bottom:20%; left:20%; width:80px; height:80px; background: radial-gradient(circle, rgba(180,140,200,.2) 0%, rgba(180,140,200,.05) 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: scn2-aura 8s ease-in-out infinite alternate; }
.scn-pearl-inherited-passion .passion-curtain { position:absolute; top:0; right:5%; width:30px; height:100%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; filter: blur(2px); animation: scn2-curtain 12s ease-in-out infinite; }
.scn-pearl-inherited-passion .passion-lamp { position:absolute; top:15%; left:10%; width:12px; height:16px; background: radial-gradient(circle, #c0a060 0%, #806040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(192,160,96,.4); animation: scn2-lamp 4s ease-in-out infinite alternate; }
@keyframes scn2-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes scn2-mother { 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 scn2-child { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes scn2-aura { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.6; transform: scale(1.2) } 100% { opacity:.3; transform: scale(0.9) } }
@keyframes scn2-curtain { 0% { transform: translateX(0) } 33% { transform: translateX(-3px) } 66% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes scn2-lamp { 0% { box-shadow: 0 0 20px 8px rgba(192,160,96,.3); opacity:.7 } 50% { box-shadow: 0 0 40px 16px rgba(192,160,96,.5); opacity:1 } 100% { box-shadow: 0 0 25px 10px rgba(192,160,96,.4); opacity:.8 } }

.scn-pearl-warfare-perpetuated { background: linear-gradient(180deg, #0a0a14 0%, #12121e 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, transparent 80%); }
.scn-pearl-warfare-perpetuated .warfare-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #0e0e18 0%, #161624 50%, #0e0e18 100%); animation: scn3-bg 22s ease-in-out infinite alternate; }
.scn-pearl-warfare-perpetuated .warfare-cloud1 { position:absolute; top:20%; left:10%; width:60px; height:20px; background: linear-gradient(180deg, rgba(60,50,80,.4) 0%, rgba(40,30,60,.1) 100%); border-radius: 50%; filter: blur(8px); animation: scn3-cloud1 30s linear infinite; }
.scn-pearl-warfare-perpetuated .warfare-cloud2 { position:absolute; top:30%; right:15%; width:50px; height:15px; background: linear-gradient(180deg, rgba(60,50,80,.3) 0%, rgba(40,30,60,.05) 100%); border-radius: 50%; filter: blur(6px); animation: scn3-cloud2 40s linear infinite reverse; }
.scn-pearl-warfare-perpetuated .warfare-figure-lg { position:absolute; bottom:25%; left:30%; width:25px; height:70px; background: linear-gradient(180deg, #1a1020 0%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scn3-lg 5s ease-in-out infinite; }
.scn-pearl-warfare-perpetuated .warfare-figure-sm { position:absolute; bottom:25%; left:45%; width:16px; height:40px; background: linear-gradient(180deg, #1a1020 0%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: scn3-sm 4s ease-in-out infinite alternate; }
.scn-pearl-warfare-perpetuated .warfare-bolt { position:absolute; top:15%; left:50%; width:4px; height:30px; background: linear-gradient(180deg, #c0c0e0 0%, #8080a0 100%); transform: rotate(20deg); box-shadow: 0 0 20px 10px rgba(192,192,224,.3); animation: scn3-bolt 6s ease-in-out infinite; }
.scn-pearl-warfare-perpetuated .warfare-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; }
@keyframes scn3-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes scn3-cloud1 { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }
@keyframes scn3-cloud2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes scn3-lg { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes scn3-sm { 0% { transform: scaleX(1) scaleY(1) } 25% { transform: scaleX(1.02) scaleY(0.98) } 50% { transform: scaleX(1) scaleY(1) } 75% { transform: scaleX(0.98) scaleY(1.02) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes scn3-bolt { 0% { opacity:.3; transform: rotate(20deg) scaleY(1) } 25% { opacity:1; transform: rotate(25deg) scaleY(1.2) } 50% { opacity:.6; transform: rotate(15deg) scaleY(0.8) } 75% { opacity:1; transform: rotate(18deg) scaleY(1.1) } 100% { opacity:.3; transform: rotate(20deg) scaleY(1) } }

.scn-pearl-discipline-struggle { background: linear-gradient(180deg, #1a1218 0%, #2a1e24 40%, #3a2a30 100%), radial-gradient(ellipse at 50% 30%, #3a2a30 0%, transparent 70%); }
.scn-pearl-discipline-struggle .discipline-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(45deg, #1e141a 0%, #2e1e26 50%, #1e141a 100%); animation: scn4-bg 18s ease-in-out infinite alternate; }
.scn-pearl-discipline-struggle .discipline-table { position:absolute; bottom:30%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-pearl-discipline-struggle .discipline-parent { position:absolute; bottom:35%; left:45%; width:24px; height:65px; background: linear-gradient(180deg, #1a1018 0%, #0e0a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scn4-parent 5s ease-in-out infinite; }
.scn-pearl-discipline-struggle .discipline-child { position:absolute; bottom:30%; left:25%; width:15px; height:35px; background: linear-gradient(180deg, #1a1018 0%, #0e0a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scn4-child 4s ease-in-out infinite alternate; }
.scn-pearl-discipline-struggle .discipline-rod { position:absolute; bottom:40%; left:42%; width:3px; height:30px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); transform: rotate(-20deg); transform-origin: bottom left; animation: scn4-rod 6s ease-in-out infinite; }
.scn-pearl-discipline-struggle .discipline-rod-shadow { position:absolute; bottom:40%; left:42%; width:6px; height:25px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 60%); filter: blur(3px); transform: rotate(-20deg) translate(10px, 5px); animation: scn4-rod-shadow 6s ease-in-out infinite; }
.scn-pearl-discipline-struggle .discipline-window { position:absolute; top:12%; left:10%; width:30px; height:40px; background: linear-gradient(135deg, #2a1a20 0%, #1a0e14 100%); border: 2px solid #1a0e14; border-radius: 2px 2px 6px 6px; box-shadow: inset 0 0 8px 3px #4a2a2a; animation: scn4-window 7s ease-in-out infinite alternate; }
@keyframes scn4-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes scn4-parent { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes scn4-child { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } 100% { transform: scaleY(1) } }
@keyframes scn4-rod { 0% { transform: rotate(-20deg) } 25% { transform: rotate(-30deg) } 50% { transform: rotate(-15deg) } 75% { transform: rotate(-25deg) } 100% { transform: rotate(-20deg) } }
@keyframes scn4-rod-shadow { 0% { opacity:.3; transform: rotate(-20deg) translate(10px,5px) } 25% { opacity:.5; transform: rotate(-30deg) translate(12px,6px) } 50% { opacity:.4; transform: rotate(-15deg) translate(8px,4px) } 75% { opacity:.5; transform: rotate(-25deg) translate(11px,5px) } 100% { opacity:.3; transform: rotate(-20deg) translate(10px,5px) } }
@keyframes scn4-window { 0% { box-shadow: inset 0 0 5px 2px #4a2a2a; opacity:.6 } 50% { box-shadow: inset 0 0 15px 5px #6a3a3a; opacity:1 } 100% { box-shadow: inset 0 0 8px 3px #4a2a2a; opacity:.7 } }

/* minister-approaches */
.scn-minister-approaches {
  background:
    linear-gradient(180deg, #4a5a6e 0%, #2d3a4a 40%, #1a2633 100%),
    radial-gradient(ellipse at 50% 100%, #1a2633 0%, transparent 60%);
}
.scn-minister-approaches .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7e 0%, #3a4a5a 100%);
  animation: ma-sky 12s ease-in-out infinite alternate;
}
.scn-minister-approaches .trees-back {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background:
    linear-gradient(90deg, #1a2a22 0%, #2a3a32 20%, #1a2a22 40%, #2a3a32 60%, #1a2a22 80%, #2a3a32 100%);
  border-radius: 30% 40% 0 0;
  filter: blur(4px);
  animation: ma-trees 20s ease-in-out infinite alternate;
}
.scn-minister-approaches .trees-mid {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 35%;
  background:
    linear-gradient(90deg, #0a1a10 0%, #1a2a1a 15%, #0a1a10 30%, #1a2a1a 50%, #0a1a10 70%, #1a2a1a 85%, #0a1a10 100%);
  border-radius: 20% 30% 0 0;
  filter: blur(2px);
  animation: ma-trees 14s ease-in-out infinite alternate-reverse;
}
.scn-minister-approaches .path {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: perspective(300px) rotateX(30deg);
}
.scn-minister-approaches .figure-minister {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #0a0a12 0%, #14141e 50%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: ma-walk 6s ease-in-out infinite;
}
.scn-minister-approaches .book {
  position: absolute; bottom: 22%; left: 32%; width: 10px; height: 14px;
  background: #3a2a1a;
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.6);
  animation: ma-book 6s ease-in-out infinite;
}
.scn-minister-approaches .mist {
  position: absolute; top: 15%; left: -10%; width: 120vw; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,220,240,0.15) 0%, transparent 70%);
  filter: blur(12px);
  animation: ma-mist 30s linear infinite;
}
@keyframes ma-sky  { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:0.9; transform:scale(1.02); } 100% { opacity:0.75; transform:scale(1); } }
@keyframes ma-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes ma-walk  { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes ma-book  { 0% { transform: rotate(-5deg); } 25% { transform: rotate(-3deg) translateY(-1px); } 50% { transform: rotate(-6deg); } 75% { transform: rotate(-2deg); } 100% { transform: rotate(-5deg); } }
@keyframes ma-mist  { 0% { transform: translateX(0); } 50% { transform: translateX(20px); opacity:0.8; } 100% { transform: translateX(40px); } }

/* pearl-hand-over-heart */
.scn-pearl-hand-over-heart {
  background:
    linear-gradient(180deg, #2a3a4a 0%, #1a2633 40%, #0a121a 100%),
    radial-gradient(ellipse at 50% 60%, #2a3a4a 0%, transparent 60%);
}
.scn-pearl-hand-over-heart .dark-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, #000a12 100%);
  animation: ph-dark 15s ease-in-out infinite alternate;
}
.scn-pearl-hand-over-heart .figure-torso {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-pearl-hand-over-heart .figure-head {
  position: absolute; bottom: 82%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-pearl-hand-over-heart .hand-over-heart {
  position: absolute; bottom: 40%; left: 50%; width: 16px; height: 22px;
  transform: translateX(-20px);
  background: #1a1a2a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ph-hand 4s ease-in-out infinite;
}
.scn-pearl-hand-over-heart .glow-mark {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 8px;
  transform: translateX(-20px);
  background: radial-gradient(circle, #b08040 0%, #8a6020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(176,128,64,0.6), 0 0 24px 8px rgba(176,128,64,0.3);
  animation: ph-glow 3s ease-in-out infinite alternate;
}
.scn-pearl-hand-over-heart .shadow-blot {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: ph-shadow 5s ease-in-out infinite alternate;
}
@keyframes ph-dark { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes ph-hand { 0% { transform: translateX(-20px) rotate(0deg); } 25% { transform: translateX(-18px) rotate(-3deg); } 50% { transform: translateX(-20px) rotate(2deg); } 75% { transform: translateX(-22px) rotate(-2deg); } 100% { transform: translateX(-20px) rotate(0deg); } }
@keyframes ph-glow { 0% { opacity:0.7; box-shadow: 0 0 8px 2px rgba(176,128,64,0.4); } 50% { opacity:1; box-shadow: 0 0 20px 6px rgba(176,128,64,0.8), 0 0 40px 12px rgba(176,128,64,0.4); } 100% { opacity:0.8; box-shadow: 0 0 12px 3px rgba(176,128,64,0.5); } }
@keyframes ph-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(0.9); opacity:0.2; } }

/* pearl-sings-away */
.scn-pearl-sings-away {
  background:
    linear-gradient(180deg, #5a6a7e 0%, #3a4a5a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 0%, #6a7a8e 0%, transparent 60%);
}
.scn-pearl-sings-away .sky-calm {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a7a8e 0%, #4a5a6e 100%);
  animation: psa-sky 20s ease-in-out infinite alternate;
}
.scn-pearl-sings-away .forest-edge {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background:
    linear-gradient(90deg, #1a2a22 0%, #2a3a32 25%, #1a2a22 50%, #2a3a32 75%, #1a2a22 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  filter: blur(3px);
  animation: psa-forest 15s ease-in-out infinite alternate;
}
.scn-pearl-sings-away .brook {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a6a7a 0%, #3a5a6a 30%, #4a6a7a 60%, #3a5a6a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: psa-brook 8s ease-in-out infinite alternate;
}
.scn-pearl-sings-away .stones {
  position: absolute; bottom: 20%; left: 20%; width: 12px; height: 8px;
  background: #4a4a5a;
  border-radius: 50%;
  box-shadow: 20px -2px 0 0 #4a4a5a, 40px 4px 0 0 #4a4a5a, -10px 0 0 0 #4a4a5a;
  animation: psa-stones 12s ease-in-out infinite alternate;
}
.scn-pearl-sings-away .pearl-figure {
  position: absolute; bottom: 22%; left: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: psa-walk 6s ease-in-out infinite;
}
.scn-pearl-sings-away .ripple {
  position: absolute; bottom: 16%; left: 22%; width: 30px; height: 6px;
  border: 1px solid rgba(200,220,240,0.3);
  border-radius: 50%;
  transform: scale(0.5);
  animation: psa-ripple 4s ease-out infinite;
}
.scn-pearl-sings-away .drift-petal {
  position: absolute; top: 20%; left: -5%; width: 6px; height: 6px;
  background: radial-gradient(circle, #c8a8a0 0%, #a87870 100%);
  border-radius: 50% 0 50% 0;
  filter: blur(1px);
  animation: psa-petal 20s linear infinite;
}
@keyframes psa-sky    { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes psa-forest { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes psa-brook  { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }
@keyframes psa-stones { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes psa-walk   { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(1deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(18px) rotate(2deg); } 100% { transform: translateX(24px) rotate(0); } }
@keyframes psa-ripple { 0% { opacity:0.6; transform: scale(0.5); } 100% { opacity:0; transform: scale(1.5); } }
@keyframes psa-petal { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(40vw) rotate(180deg); } 100% { transform: translateX(80vw) rotate(360deg); } }

/* pearl-gathers-flowers */
.scn-pearl-gathers-flowers {
  background:
    linear-gradient(180deg, #5a6a7e 0%, #4a5a6a 40%, #3a4a5a 100%),
    radial-gradient(ellipse at 50% 80%, #4a5a6a 0%, transparent 70%);
}
.scn-pearl-gathers-flowers .rock-large {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 50%;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 40% 30% 10% 10% / 60% 50% 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-pearl-gathers-flowers .moss {
  position: absolute; bottom: 45%; left: 20%; width: 50%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #3a5a3a 0%, transparent 80%);
  filter: blur(2px);
}
.scn-pearl-gathers-flowers .violets {
  position: absolute; bottom: 40%; left: 30%; width: 8px; height: 12px;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  background: #6a5a7a;
  box-shadow: 15px 5px 0 0 #6a5a7a, -10px 8px 0 0 #6a5a7a, 30px -2px 0 0 #7a6a8a;
  animation: pgf-violets 6s ease-in-out infinite alternate;
}
.scn-pearl-gathers-flowers .anemones {
  position: absolute; bottom: 35%; left: 40%; width: 10px; height: 10px;
  background: radial-gradient(circle, #e8d0c0 0%, #c8a8a0 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 20px 10px 0 0 #e8d0c0, -15px -5px 0 0 #e8d0c0;
  animation: pgf-anemones 8s ease-in-out infinite alternate;
}
.scn-pearl-gathers-flowers .columbines {
  position: absolute; bottom: 30%; left: 25%; width: 12px; height: 18px;
  background: radial-gradient(ellipse at 50% 30%, #c8553d 0%, #a0461a 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 25px -8px 0 0 #c8553d, -8px 12px 0 0 #a0461a;
  animation: pgf-columbines 7s ease-in-out infinite alternate;
}
.scn-pearl-gathers-flowers .pearl-hand {
  position: absolute; bottom: 20%; left: 35%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  animation: pgf-hand 5s ease-in-out infinite;
}
.scn-pearl-gathers-flowers .leaf-shade {
  position: absolute; bottom: 28%; left: 42%; width: 20px; height: 20px;
  background: rgba(30,50,30,0.3);
  border-radius: 50% 0 50% 0;
  filter: blur(3px);
  animation: pgf-leaf 10s ease-in-out infinite alternate;
}
@keyframes pgf-violets    { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes pgf-anemones   { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(0.95); } }
@keyframes pgf-columbines { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(5deg); } 100% { transform: translateY(2px) rotate(-3deg); } }
@keyframes pgf-hand       { 0% { transform: rotate(10deg); } 25% { transform: rotate(15deg) translateX(2px); } 50% { transform: rotate(5deg); } 75% { transform: rotate(12deg) translateX(-1px); } 100% { transform: rotate(10deg); } }
@keyframes pgf-leaf       { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.25; } }

.scn-new-purpose {
  background: linear-gradient(180deg, #1f1a14 0%, #2a221a 30%, #1a1410 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a18 0%, transparent 60%);
}
.scn-new-purpose .np-wall  { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a221a 0%, #1f1a14 100%); }
.scn-new-purpose .np-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1f1a14 0%, #0f0a08 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-new-purpose .np-desk  { position:absolute; bottom:20%; left:50%; width:120px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3422 0%, #2e1e12 100%); border-radius:2px; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-new-purpose .np-figure{ position:absolute; bottom:24%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #15100c 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-figure 8s ease-in-out infinite; }
.scn-new-purpose .np-candle{ position:absolute; bottom:35%; left:50%; width:6px; height:18px; transform:translateX(-30px); background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius: 2px 2px 4px 4px; }
.scn-new-purpose .np-glow  { position:absolute; bottom:38%; left:50%; width:40px; height:50px; transform:translate(-30px, 0); background: radial-gradient(circle, #f0c068 0%, #b08040 30%, transparent 70%); border-radius:50%; mix-blend-mode:screen; animation: np-glow 3s ease-in-out infinite alternate; }
.scn-new-purpose .np-dust  { position:absolute; top:20%; left:20%; width:80px; height:60px; background: radial-gradient(circle at 30% 40%, rgba(200,160,96,.15) 0%, transparent 100%); filter:blur(4px); animation: np-dust 20s linear infinite; }
@keyframes np-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } }
@keyframes np-glow   { 0% { opacity:.6; transform:scale(1) translate(-30px,0); } 50% { opacity:1; transform:scale(1.1) translate(-30px,-1px); } 100% { opacity:.8; transform:scale(.95) translate(-30px,1px); } }
@keyframes np-dust   { 0% { transform:translate(0,0); opacity:.3; } 50% { transform:translate(30px,-20px); opacity:.7; } 100% { transform:translate(60px,0); opacity:.2; } }

.scn-chillingworth-settles-as-physician {
  background: linear-gradient(180deg, #2a241c 0%, #1e1812 40%, #14100a 100%),
              radial-gradient(ellipse at 80% 30%, #3a2e1e 0%, transparent 50%);
}
.scn-chillingworth-settles-as-physician .cs-bookshelf { position:absolute; top:0; left:0; right:0; height:60%; background: repeating-linear-gradient(180deg, #3a2a1a 0px, #3a2a1a 8px, #2a1a0a 8px, #2a1a0a 10px); opacity:.6; }
.scn-chillingworth-settles-as-physician .cs-desk { position:absolute; bottom:25%; left:20%; width:160px; height:8px; background: linear-gradient(180deg, #5a422a 0%, #3a2a1a 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-chillingworth-settles-as-physician .cs-chair { position:absolute; bottom:26%; left:25%; width:28px; height:40px; background: linear-gradient(180deg, #4a3422 0%, #2e1e12 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform:scaleX(1.2); animation: cs-chair 12s ease-in-out infinite; }
.scn-chillingworth-settles-as-physician .cs-lamp { position:absolute; bottom:55%; left:45%; width:6px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:2px; transform-origin:bottom center; animation: cs-lamp 4s ease-in-out infinite alternate; }
.scn-chillingworth-settles-as-physician .cs-glow { position:absolute; bottom:58%; left:45%; width:50px; height:60px; transform:translateX(-3px); background: radial-gradient(circle, #f0d080 0%, #c8a060 30%, transparent 70%); mix-blend-mode:screen; border-radius:50%; animation: cs-glow 3s ease-in-out infinite alternate; }
.scn-chillingworth-settles-as-physician .cs-book { position:absolute; bottom:30%; left:25%; width:10px; height:14px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius:2px; box-shadow:2px 0 0 #5a3a1a; animation: cs-book 6s ease-in-out infinite; }
.scn-chillingworth-settles-as-physician .cs-moth { position:absolute; top:25%; left:35%; width:4px; height:4px; background:#d0b070; border-radius:50%; filter:blur(1px); animation: cs-moth 8s ease-in-out infinite; }
@keyframes cs-chair{ 0%,100% { transform:scaleX(1.2) translateY(0); } 50% { transform:scaleX(1.2) translateY(-3px); } }
@keyframes cs-lamp { 0% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-3deg); } }
@keyframes cs-glow  { 0% { opacity:.5; transform:scale(1) translateX(-3px); } 50% { opacity:.85; transform:scale(1.08) translateX(-2px); } 100% { opacity:.6; transform:scale(.95) translateX(-4px); } }
@keyframes cs-book  { 0%,100% { transform:rotate(0) translateY(0); } 50% { transform:rotate(10deg) translateY(-2px); } }
@keyframes cs-moth  { 0% { transform:translate(0,0); opacity:0; } 30% { opacity:1; } 70% { transform:translate(50px,-30px); opacity:.8; } 100% { transform:translate(80px,10px); opacity:0; } }

.scn-physician-materialized {
  background: linear-gradient(180deg, #1a1612 0%, #12100e 40%, #0a0806 100%),
              radial-gradient(ellipse at 30% 60%, #2a1e14 0%, transparent 60%);
}
.scn-physician-materialized .pm-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%); }
.scn-physician-materialized .pm-table { position:absolute; bottom:20%; left:30%; width:100px; height:6px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-physician-materialized .pm-skeleton { position:absolute; bottom:25%; left:40%; width:50px; height:70px; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:scaleY(1.1); animation: pm-skeleton 20s ease-in-out infinite; }
.scn-physician-materialized .pm-skull { position:absolute; bottom:60%; left:42%; width:20px; height:24px; background: radial-gradient(circle at 50% 50%, #e8d8b8 0%, #b8a888 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -4px 0 #8a7a5a; }
.scn-physician-materialized .pm-ribcage { position:absolute; bottom:36%; left:40%; width:36px; height:20px; background: repeating-linear-gradient(90deg, #b8a888 0px, #b8a888 2px, transparent 2px, transparent 8px); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; opacity:.6; }
.scn-physician-materialized .pm-lamp { position:absolute; bottom:65%; left:60%; width:8px; height:24px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:2px; transform-origin:bottom center; animation: pm-lamp 5s ease-in-out infinite alternate; }
.scn-physician-materialized .pm-shade { position:absolute; bottom:65%; left:59%; width:28px; height:32px; background: radial-gradient(ellipse at 50% 50%, #f0d080 0%, #c8a060 40%, transparent 70%); mix-blend-mode:screen; border-radius:50%; animation: pm-shade 4s ease-in-out infinite alternate; }
@keyframes pm-skeleton { 0%,100% { transform:scaleY(1.1) rotate(0); } 50% { transform:scaleY(1.1) rotate(2deg); } }
@keyframes pm-lamp { 0% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-1deg); } }
@keyframes pm-shade { 0% { opacity:.4; transform:scale(1); } 50% { opacity:.8; transform:scale(1.05); } 100% { opacity:.5; transform:scale(.95); } }

.scn-only-surgeon-barber {
  background: linear-gradient(180deg, #2a221c 0%, #1e1812 40%, #14100a 100%),
              radial-gradient(ellipse at 70% 40%, #3a2e1e 0%, transparent 60%);
}
.scn-only-surgeon-barber .sb-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%); }
.scn-only-surgeon-barber .sb-mirror { position:absolute; bottom:40%; left:25%; width:80px; height:100px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 20px 8px rgba(200,180,140,.2); opacity:.7; }
.scn-only-surgeon-barber .sb-chair { position:absolute; bottom:15%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; transform:scaleX(1.3); animation: sb-chair 10s ease-in-out infinite; }
.scn-only-surgeon-barber .sb-basin { position:absolute; bottom:35%; left:50%; width:30px; height:12px; background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, #4a3a2a 100%); border-radius:50%; box-shadow: 0 -2px 0 #3a2a1a; }
.scn-only-surgeon-barber .sb-razor { position:absolute; bottom:38%; left:45%; width:4px; height:30px; background: linear-gradient(180deg, #c8b898 0%, #a89878 100%); border-radius:2px; transform:rotate(-30deg); transform-origin:bottom center; animation: sb-razor 6s ease-in-out infinite alternate; }
.scn-only-surgeon-barber .sb-lantern { position:absolute; bottom:55%; left:60%; width:12px; height:20px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:4px 4px 8px 8px; box-shadow: 0 0 20px 6px rgba(200,160,80,.3); animation: sb-lantern 3s ease-in-out infinite alternate; }
.scn-only-surgeon-barber .sb-drip { position:absolute; bottom:28%; left:50%; width:3px; height:6px; background: radial-gradient(circle at 50% 50%, #c8b898 0%, transparent 100%); border-radius:50%; animation: sb-drip 5s ease-in-out infinite; }
@keyframes sb-chair { 0%,100% { transform:scaleX(1.3) translateY(0); } 50% { transform:scaleX(1.3) translateY(-4px); } }
@keyframes sb-razor { 0% { transform:rotate(-30deg); } 50% { transform:rotate(0deg); } 100% { transform:rotate(-20deg); } }
@keyframes sb-lantern { 0% { opacity:.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:.7; transform:scale(.95); } }
@keyframes sb-drip { 0% { transform:translateY(0); opacity:.8; } 50% { transform:translateY(10px); opacity:0; } 100% { transform:translateY(0); opacity:.8; } }

/* scarlet-letter-avenged */
.scn-scarlet-letter-avenged {
  background: 
    linear-gradient(180deg, #f4e4c1 0%, #c2a67a 40%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 20%, #fce9c8 0%, transparent 60%);
}
.scn-scarlet-letter-avenged .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0dbb8 0%, #d4b894 100%);
  animation: sla-sky 12s ease-in-out infinite alternate;
}
.scn-scarlet-letter-avenged .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a6e4e 0%, #4a3520 100%);
  border-radius: 30% 70% 0 0 / 60% 90% 0 0;
  animation: sla-ground 18s ease-in-out infinite alternate;
}
.scn-scarlet-letter-avenged .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe699 0%, #e8b86d 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f0c878;
  animation: sla-sun 8s ease-in-out infinite;
}
.scn-scarlet-letter-avenged .figure {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sla-figure 4s ease-in-out infinite;
}
.scn-scarlet-letter-avenged .letter {
  position: absolute; bottom: 45%; left: 36%; width: 20px; height: 24px;
  background: #c8553d;
  border-radius: 4px;
  box-shadow: 0 0 16px 4px rgba(200,85,61,0.5);
  transform: rotate(-5deg);
  animation: sla-letter 3s ease-in-out infinite alternate;
}
.scn-scarlet-letter-avenged .hand {
  position: absolute; bottom: 38%; left: 50%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: sla-hand 5s ease-in-out infinite;
}
.scn-scarlet-letter-avenged .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: sla-shadow 4s ease-in-out infinite alternate;
}
@keyframes sla-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sla-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sla-sun { 0% { transform: scale(0.95); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes sla-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sla-letter { 0% { transform: rotate(-5deg) scale(1); box-shadow: 0 0 12px 2px #c8553d; } 50% { transform: rotate(-2deg) scale(1.1); box-shadow: 0 0 24px 6px #c8553d; } 100% { transform: rotate(-5deg) scale(1); box-shadow: 0 0 12px 2px #c8553d; } }
@keyframes sla-hand { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.05); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes sla-shadow { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.2) scaleY(0.9); } 100% { transform: scaleX(1) scaleY(1); } }

/* hester-reveal-intent */
.scn-hester-reveal-intent {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #bca88c 40%, #7a5a3a 100%),
    radial-gradient(ellipse at 40% 30%, #fef0d0 0%, transparent 60%);
}
.scn-hester-reveal-intent .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fae8c4 0%, #d4b894 100%);
  animation: hri-sky 10s ease-in-out infinite alternate;
}
.scn-hester-reveal-intent .sun {
  position: absolute; top: 15%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffeebb 0%, #e8b86d 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #f0c878;
  animation: hri-sun 9s ease-in-out infinite;
}
.scn-hester-reveal-intent .figure-profile {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 20% 30% 30% / 60% 40% 30% 30%;
  transform: rotate(5deg);
  animation: hri-figure 4s ease-in-out infinite;
}
.scn-hester-reveal-intent .hand-raised {
  position: absolute; bottom: 45%; left: 42%; width: 8px; height: 30px;
  background: #4a3520;
  border-radius: 20% 20% 30% 30%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: hri-hand 3s ease-in-out infinite alternate;
}
.scn-hester-reveal-intent .dress {
  position: absolute; bottom: 10%; left: 25%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #5e3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: hri-dress 6s ease-in-out infinite;
}
.scn-hester-reveal-intent .clasp {
  position: absolute; bottom: 38%; left: 32%; width: 6px; height: 6px;
  background: #c8553d;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #c8553d;
  animation: hri-clasp 2s ease-in-out infinite alternate;
}
@keyframes hri-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hri-sun { 0% { transform: scale(0.95) translateY(0); } 50% { transform: scale(1.05) translateY(-5px); } 100% { transform: scale(0.95) translateY(0); } }
@keyframes hri-figure { 0% { transform: rotate(5deg) translateX(0); } 25% { transform: rotate(2deg) translateX(3px); } 50% { transform: rotate(5deg) translateX(0); } 75% { transform: rotate(8deg) translateX(-3px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes hri-hand { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.1); } 100% { transform: rotate(-20deg) scaleY(1); } }
@keyframes hri-dress { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.05) scaleY(0.98); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes hri-clasp { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(1); } }

/* truth-discipline */
.scn-truth-discipline {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 60%, #5e2a1a 0%, transparent 70%);
}
.scn-truth-discipline .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
  animation: tdi-bg 15s ease-in-out infinite alternate;
}
.scn-truth-discipline .letter-glow {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 36px;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 60%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 10px #c8553d, 0 0 60px 20px rgba(200,85,61,0.3);
  animation: tdi-glow 3s ease-in-out infinite alternate;
}
.scn-truth-discipline .smoke {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 30px;
  background: radial-gradient(circle, rgba(180,120,80,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: tdi-smoke 5s ease-in-out infinite;
}
.scn-truth-discipline .flame {
  position: absolute; bottom: 30%; left: 48%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #e8a060 0%, #c8553d 50%, #5e2a1a 100%);
  border-radius: 50% 50% 20% 20%;
  transform: scaleY(1.2);
  animation: tdi-flame 2s ease-in-out infinite alternate;
}
.scn-truth-discipline .chest {
  position: absolute; bottom: 15%; left: 35%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20%;
  animation: tdi-chest 8s ease-in-out infinite;
}
.scn-truth-discipline .scar {
  position: absolute; bottom: 28%; left: 37%; width: 16px; height: 20px;
  background: #8a2a1a;
  border-radius: 80% 20% 50% 50% / 60% 40% 60% 40%;
  transform: rotate(10deg);
  animation: tdi-scar 4s ease-in-out infinite alternate;
}
@keyframes tdi-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes tdi-glow { 0% { box-shadow: 0 0 20px 5px #c8553d; } 50% { box-shadow: 0 0 40px 15px #c8553d, 0 0 80px 30px rgba(200,85,61,0.4); } 100% { box-shadow: 0 0 20px 5px #c8553d; } }
@keyframes tdi-smoke { 0% { transform: translateY(0) scale(1) rotate(0deg); } 50% { transform: translateY(-10px) scale(1.2) rotate(5deg); } 100% { transform: translateY(0) scale(1) rotate(0deg); } }
@keyframes tdi-flame { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.3) scaleX(1.1); } 100% { transform: scaleY(1) scaleX(1); } }
@keyframes tdi-chest { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.02) scaleY(0.98); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes tdi-scar { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(15deg) scale(1.05); } 100% { transform: rotate(10deg) scale(1); } }

/* chillingworth-pity-admiration */
.scn-chillingworth-pity-admiration {
  background: 
    linear-gradient(180deg, #f0dbb8 0%, #a08060 50%, #4a3520 100%),
    radial-gradient(ellipse at 60% 20%, #fae0b0 0%, transparent 60%);
}
.scn-chillingworth-pity-admiration .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f2d6a8 0%, #c2a67a 100%);
  animation: cpa-sky 14s ease-in-out infinite alternate;
}
.scn-chillingworth-pity-admiration .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  animation: cpa-ground 20s ease-in-out infinite alternate;
}
.scn-chillingworth-pity-admiration .sun {
  position: absolute; top: 8%; left: 30%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffeebb 0%, #e8b86d 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 70px 25px #f0c878;
  animation: cpa-sun 12s ease-in-out infinite;
}
.scn-chillingworth-pity-admiration .figure-hester {
  position: absolute; bottom: 12%; left: 25%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-3deg);
  animation: cpa-hester 5s ease-in-out infinite;
}
.scn-chillingworth-pity-admiration .figure-chillingworth {
  position: absolute; bottom: 12%; right: 25%; width: 35px; height: 85px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(3deg);
  animation: cpa-chillingworth 5s ease-in-out infinite reverse;
}
.scn-chillingworth-pity-admiration .shadow {
  position: absolute; bottom: 5%; left: 20%; width: 100px; height: 30px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(10px);
  animation: cpa-shadow 6s ease-in-out infinite alternate;
}
.scn-chillingworth-pity-admiration .path {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(90deg, transparent, #8a6e4e 30%, #6a4a2a 70%, transparent);
  border-radius: 50%;
  animation: cpa-path 8s ease-in-out infinite;
}
@keyframes cpa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cpa-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cpa-sun { 0% { transform: scale(0.95) translateY(0); } 50% { transform: scale(1.05) translateY(-8px); } 100% { transform: scale(0.95) translateY(0); } }
@keyframes cpa-hester { 0% { transform: rotate(-3deg) translateX(0); } 25% { transform: rotate(-1deg) translateX(5px); } 50% { transform: rotate(-3deg) translateX(0); } 75% { transform: rotate(-5deg) translateX(-5px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes cpa-chillingworth { 0% { transform: rotate(3deg) translateX(0); } 25% { transform: rotate(1deg) translateX(-5px); } 50% { transform: rotate(3deg) translateX(0); } 75% { transform: rotate(5deg) translateX(5px); } 100% { transform: rotate(3deg) translateX(0); } }
@keyframes cpa-shadow { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.3) scaleY(0.8); } 100% { transform: scaleX(1) scaleY(1); } }
@keyframes cpa-path { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.05); } 100% { opacity: 0.6; transform: scaleX(1); } }

/* Scene: gouty-officers (funny, dim interior with sunshine) */
.scn-gouty-officers {
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 60%, #4a3a2a 100%),
              radial-gradient(ellipse at 70% 30%, #c8a060 0%, transparent 70%);
}
.scn-gouty-officers .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-gouty-officers .window-light { position:absolute; top:10%; right:20%; width:60px; height:80px; background: radial-gradient(ellipse, #fce4b0 0%, #d4a040 70%, transparent 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 0 40px 20px rgba(252,228,176,.3); animation: go-window 8s ease-in-out infinite alternate; }
.scn-gouty-officers .sunbeam { position:absolute; top:15%; right:25%; width:120px; height:200px; background: linear-gradient(135deg, rgba(252,228,176,.25) 0%, transparent 100%); transform: rotate(20deg); animation: go-sunbeam 12s ease-in-out infinite alternate; }
.scn-gouty-officers .figure1 { position:absolute; bottom:10%; left:15%; width:40px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: go-bob 3s ease-in-out infinite; }
.scn-gouty-officers .figure2 { position:absolute; bottom:10%; left:55%; width:38px; height:68px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: go-bob 3.4s ease-in-out infinite reverse; }
.scn-gouty-officers .cane1 { position:absolute; bottom:12%; left:12%; width:4px; height:50px; background:#5a4a3a; border-radius:10%; transform: rotate(15deg); animation: go-cane 3s ease-in-out infinite; }
.scn-gouty-officers .cane2 { position:absolute; bottom:12%; right:32%; width:4px; height:48px; background:#5a4a3a; border-radius:10%; transform: rotate(-10deg); animation: go-cane 3.4s ease-in-out infinite reverse; }
.scn-gouty-officers .shadow-funny { position:absolute; bottom:0; left:20%; width:100px; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); filter: blur(6px); animation: go-shadow 5s ease-in-out infinite; }
@keyframes go-window { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes go-sunbeam { 0% { opacity:.2; transform: rotate(18deg) translateX(0) } 50% { opacity:.4; transform: rotate(22deg) translateX(5px) } 100% { opacity:.25; transform: rotate(20deg) translateX(-2px) } }
@keyframes go-bob { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes go-cane { 0% { transform: rotate(12deg) } 50% { transform: rotate(18deg) translateX(2px) } 100% { transform: rotate(14deg) } }
@keyframes go-shadow { 0% { transform: scaleX(1); opacity:.3 } 50% { transform: scaleX(1.2); opacity:.5 } 100% { transform: scaleX(.9); opacity:.2 } }

/* Scene: whig-officers-and-surveyor (calm, dim interior) */
.scn-whig-officers-and-surveyor {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #3a2a2a 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a3a 0%, transparent 70%);
}
.scn-whig-officers-and-surveyor .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); }
.scn-whig-officers-and-surveyor .desk { position:absolute; bottom:15%; left:30%; width:140px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4% 4% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-whig-officers-and-surveyor .figure-surveyor { position:absolute; bottom:22%; left:38%; width:35px; height:60px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wo-seated 6s ease-in-out infinite alternate; }
.scn-whig-officers-and-surveyor .papers { position:absolute; bottom:18%; left:35%; width:40px; height:30px; background: #f0e0c0; border-radius:2%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: wo-papers 12s ease-in-out infinite alternate; }
.scn-whig-officers-and-surveyor .inkwell { position:absolute; bottom:18%; left:55%; width:12px; height:14px; background: #1a1a1a; border-radius:50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-whig-officers-and-surveyor .lamp { position:absolute; top:20%; left:45%; width:16px; height:24px; background: radial-gradient(ellipse, #f0d080 0%, #b08040 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(240,208,128,.2); animation: wo-lamp 10s ease-in-out infinite alternate; }
.scn-whig-officers-and-surveyor .shadow-slow { position:absolute; bottom:0; left:30%; width:120px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.15) 0%, transparent 100%); filter: blur(8px); animation: wo-shadow 20s ease-in-out infinite; }
@keyframes wo-seated { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes wo-papers { 0% { transform: translateX(0) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes wo-lamp { 0% { opacity:.6; box-shadow: 0 0 20px 8px rgba(240,208,128,.15) } 50% { opacity:.9; box-shadow: 0 0 40px 15px rgba(240,208,128,.3) } 100% { opacity:.7; box-shadow: 0 0 25px 10px rgba(240,208,128,.2) } }
@keyframes wo-shadow { 0% { transform: scaleX(1); opacity:.2 } 50% { transform: scaleX(1.1); opacity:.4 } 100% { transform: scaleX(.9); opacity:.25 } }

/* Scene: dread-of-extermination (tense, dim interior) */
.scn-dread-of-extermination {
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 50%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 70%, #3a1a1a 0%, transparent 80%);
}
.scn-dread-of-extermination .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); }
.scn-dread-of-extermination .guillotine-blade { position:absolute; top:15%; left:50%; width:80px; height:10px; background: linear-gradient(90deg, #4a4a4a 0%, #6a6a6a 50%, #4a4a4a 100%); transform:translateX(-50%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); box-shadow: 0 4px 8px rgba(200,0,0,.3); animation: de-blade 4s ease-in-out infinite; }
.scn-dread-of-extermination .figure-old { position:absolute; bottom:20%; left:40%; width:40px; height:65px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: de-cower 3s ease-in-out infinite; }
.scn-dread-of-extermination .shadow-axe { position:absolute; top:30%; left:35%; width:50px; height:80px; background: radial-gradient(ellipse, rgba(100,0,0,.4) 0%, transparent 100%); filter: blur(12px); animation: de-shadow 3s ease-in-out infinite; }
.scn-dread-of-extermination .chain { position:absolute; top:20%; left:45%; width:4px; height:40px; background: #5a5a5a; border-radius:10%; box-shadow: 0 0 4px rgba(0,0,0,.5); animation: de-chain 6s ease-in-out infinite; }
.scn-dread-of-extermination .dim-light { position:absolute; top:40%; left:30%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,100,50,.1) 0%, transparent 100%); filter: blur(20px); animation: de-light 8s ease-in-out infinite alternate; }
@keyframes de-blade { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 50% { transform: translateX(-50%) translateY(5px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes de-cower { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-8px) scaleY(.95) } 100% { transform: translateY(0) scaleY(1.02) } }
@keyframes de-shadow { 0% { transform: translateX(0) scale(1); opacity:.3 } 50% { transform: translateX(8px) scale(1.3); opacity:.6 } 100% { transform: translateX(-4px) scale(.9); opacity:.2 } }
@keyframes de-chain { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(4px) rotate(5deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes de-light { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.4; transform: scale(1.2) } 100% { opacity:.1; transform: scale(.8) } }

/* Scene: merciful-continuance (warm, dim interior) */
.scn-merciful-continuance {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 70%);
}
.scn-merciful-continuance .hearth { position:absolute; bottom:10%; left:30%; width:100px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:30% 30% 10% 10%; box-shadow: inset 0 -6px 10px rgba(0,0,0,.5); }
.scn-merciful-continuance .fire-glow { position:absolute; bottom:15%; left:35%; width:60px; height:60px; background: radial-gradient(circle, #ffa040 0%, #ff7000 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,160,64,.4); animation: mc-fire 4s ease-in-out infinite alternate; }
.scn-merciful-continuance .armchair-left { position:absolute; bottom:20%; left:10%; width:50px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-merciful-continuance .armchair-right { position:absolute; bottom:20%; right:10%; width:50px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-merciful-continuance .figure-old-a { position:absolute; bottom:25%; left:16%; width:32px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-sit 7s ease-in-out infinite; }
.scn-merciful-continuance .figure-old-b { position:absolute; bottom:25%; right:16%; width:32px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-sit 7.5s ease-in-out infinite reverse; }
.scn-merciful-continuance .rug { position:absolute; bottom:5%; left:20%; width:60%; height:20px; background: linear-gradient(90deg, #5a3a2a 0%, #6a4a3a 50%, #5a3a2a 100%); border-radius:50%; filter: blur(4px); animation: mc-rug 20s ease-in-out infinite; }
.scn-merciful-continuance .window-night { position:absolute; top:10%; right:10%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 50%, #0a0a2a 0%, #1a1a3a 100%); border-radius:4% 4% 8% 8%; box-shadow: 0 0 10px 2px rgba(0,0,0,.5); animation: mc-night 30s ease-in-out infinite alternate; }
@keyframes mc-fire { 0% { transform: scale(1) rotate(0); opacity:.8 } 50% { transform: scale(1.1) rotate(5deg); opacity:1 } 100% { transform: scale(.95) rotate(-3deg); opacity:.7 } }
@keyframes mc-sit { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mc-rug { 0% { opacity:.4; transform: scaleX(1) } 50% { opacity:.6; transform: scaleX(1.02) } 100% { opacity:.5; transform: scaleX(.98) } }
@keyframes mc-night { 0% { background: #0a0a2a } 50% { background: #1a1a3a } 100% { background: #0a0a1a } }

.scn-hester-resolution-aid { background: linear-gradient(180deg, #1a1510 0%, #2a2018 50%, #3a2a1a 100%), radial-gradient(ellipse at 30% 40%, #4a3a2a 0%, transparent 70%); }
.scn-hester-resolution-aid .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1f15 0%, #1e1510 100%); }
.scn-hester-resolution-aid .window { position:absolute; top:15%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); border:6px solid #3a2a1a; border-radius:4px; box-shadow:inset 0 0 20px rgba(100,140,160,0.3); animation:he1-window 8s ease-in-out infinite alternate; }
.scn-hester-resolution-aid .light-beam { position:absolute; top:18%; left:50%; width:40px; height:200px; transform:translateX(-50%) skewX(-5deg); background: linear-gradient(180deg, rgba(200,180,150,0.4) 0%, rgba(200,180,150,0.05) 100%); filter:blur(4px); animation:he1-beam 6s ease-in-out infinite alternate; }
.scn-hester-resolution-aid .figure { position:absolute; bottom:20%; left:45%; width:28px; height:50px; background: linear-gradient(180deg, #1a1510 0%, #0e0a08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:he1-figure 5s ease-in-out infinite; }
.scn-hester-resolution-aid .scarlet-letter { position:absolute; bottom:32%; left:50%; width:14px; height:18px; transform:translateX(-50%) rotate(5deg); background: radial-gradient(circle, #8a4a3a 0%, #5e1a1d 100%); border-radius:2px; box-shadow:0 0 12px 3px rgba(142,74,58,0.5); animation:he1-letter 4s ease-in-out infinite alternate; }
.scn-hester-resolution-aid .chair { position:absolute; bottom:18%; left:60%; width:24px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1510 100%); border-radius:10% 10% 20% 20%; transform:rotate(-5deg); }
.scn-hester-resolution-aid .shadow { position:absolute; bottom:0; left:30%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); filter:blur(5px); animation:he1-shadow 5s ease-in-out infinite alternate; }
@keyframes he1-window { 0% { opacity:0.6; } 50% { opacity:1; box-shadow:inset 0 0 30px rgba(100,140,160,0.5); } 100% { opacity:0.7; } }
@keyframes he1-beam { 0% { opacity:0.3; transform:translateX(-50%) skewX(-5deg) scaleY(0.9); } 50% { opacity:0.6; transform:translateX(-50%) skewX(-5deg) scaleY(1.1); } 100% { opacity:0.35; } }
@keyframes he1-figure { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform:translateX(0) translateY(0) rotate(-1deg); } 75% { transform:translateX(-3px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes he1-letter { 0% { transform:translateX(-50%) rotate(5deg) scale(1); box-shadow:0 0 12px 3px rgba(142,74,58,0.5); } 50% { transform:translateX(-50%) rotate(7deg) scale(1.1); box-shadow:0 0 20px 6px rgba(142,74,58,0.7); } 100% { transform:translateX(-50%) rotate(4deg) scale(1); } }
@keyframes he1-shadow { 0% { opacity:0.5; transform:scaleX(1); } 50% { opacity:0.8; transform:scaleX(1.1); } 100% { opacity:0.5; } }

.scn-hester-years-passed { background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 60%, #3a4a4a 100%), radial-gradient(ellipse at 50% 30%, #9aaeae 0%, transparent 70%); }
.scn-hester-years-passed .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a9a9a 0%, #6a7a7a 100%); animation:he2-sky 12s ease-in-out infinite alternate; }
.scn-hester-years-passed .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%); border-radius:30% 70% 0 0 / 50% 60% 0 0; }
.scn-hester-years-passed .figure-mother { position:absolute; bottom:25%; left:40%; width:30px; height:55px; background: linear-gradient(180deg, #2a2a2a 0%, #0e0e0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:he2-mother 7s ease-in-out infinite; }
.scn-hester-years-passed .figure-child { position:absolute; bottom:20%; left:48%; width:18px; height:32px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:he2-child 4s ease-in-out infinite alternate; }
.scn-hester-years-passed .scarlet-letter { position:absolute; bottom:38%; left:42%; width:12px; height:16px; transform:rotate(10deg); background: radial-gradient(circle, #9a5a3a 0%, #6e2a1d 100%); border-radius:2px; box-shadow:0 0 14px 3px rgba(154,90,58,0.5); animation:he2-letter 3s ease-in-out infinite alternate; }
.scn-hester-years-passed .embroidery { position:absolute; bottom:36%; left:41%; width:18px; height:20px; background: radial-gradient(circle, #c8a058 0%, transparent 70%); filter:blur(2px); animation:he2-emb 5s ease-in-out infinite alternate; }
.scn-hester-years-passed .distant-tree { position:absolute; bottom:40%; right:10%; width:40px; height:60px; background: linear-gradient(180deg, #2a3a1a 0%, #0e1a0e 100%); border-radius:60% 40% 0 0 / 80% 60% 0 0; animation:he2-tree 15s ease-in-out infinite alternate; }
@keyframes he2-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes he2-mother { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 25% { transform:translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform:translateX(0) translateY(0) rotate(-1deg); } 75% { transform:translateX(-2px) translateY(-1px) rotate(0deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes he2-child { 0% { transform:translateX(0) translateY(0) rotate(-2deg); } 50% { transform:translateX(4px) translateY(-2px) rotate(2deg); } 100% { transform:translateX(0) translateY(0) rotate(-1deg); } }
@keyframes he2-letter { 0% { transform:rotate(10deg) scale(1); box-shadow:0 0 14px 3px rgba(154,90,58,0.5); } 50% { transform:rotate(12deg) scale(1.1); box-shadow:0 0 22px 6px rgba(154,90,58,0.7); } 100% { transform:rotate(9deg) scale(1); } }
@keyframes he2-emb { 0% { opacity:0.3; filter:blur(2px); } 50% { opacity:0.7; filter:blur(1px); } 100% { opacity:0.4; } }
@keyframes he2-tree { 0% { transform:scale(1) translateY(0); } 50% { transform:scale(1.05) translateY(-3px); } 100% { transform:scale(1) translateY(0); } }

.scn-public-regard-grown { background: linear-gradient(180deg, #7a7a7a 0%, #5a5a5a 50%, #3a3a3a 100%), radial-gradient(ellipse at 50% 20%, #9a9a9a 0%, transparent 70%); }
.scn-public-regard-grown .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius:50% 50% 0 0 / 40% 40% 0 0; }
.scn-public-regard-grown .crowd-bg { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(70,60,50,0.6) 0%, transparent 100%); filter:blur(8px); }
.scn-public-regard-grown .figure-hester { position:absolute; bottom:28%; left:50%; width:25px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:he3-hester 6s ease-in-out infinite; }
.scn-public-regard-grown .scarlet-letter { position:absolute; bottom:40%; left:50%; width:12px; height:15px; transform:translateX(-50%) rotate(-5deg); background: radial-gradient(circle, #8a4a3a 0%, #5e1a1d 100%); border-radius:2px; box-shadow:0 0 16px 4px rgba(138,74,58,0.5); animation:he3-letter 4s ease-in-out infinite alternate; }
.scn-public-regard-grown .aura { position:absolute; bottom:42%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,180,150,0.3) 0%, transparent 70%); filter:blur(6px); animation:he3-aura 5s ease-in-out infinite alternate; }
.scn-public-regard-grown .shadow-cast { position:absolute; bottom:25%; left:45%; width:60px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); filter:blur(4px); animation:he3-shadow 6s ease-in-out infinite alternate; }
.scn-public-regard-grown .distant-figures { position:absolute; bottom:30%; left:20%; width:15px; height:35px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.5; animation:he3-distant 5s ease-in-out infinite alternate; }
@keyframes he3-hester { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 25% { transform:translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform:translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform:translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform:translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes he3-letter { 0% { transform:translateX(-50%) rotate(-5deg) scale(1); box-shadow:0 0 16px 4px rgba(138,74,58,0.5); } 50% { transform:translateX(-50%) rotate(-3deg) scale(1.1); box-shadow:0 0 24px 8px rgba(138,74,58,0.7); } 100% { transform:translateX(-50%) rotate(-6deg) scale(1); } }
@keyframes he3-aura { 0% { opacity:0.3; transform:translateX(-50%) scale(0.9); } 50% { opacity:0.7; transform:translateX(-50%) scale(1.2); } 100% { opacity:0.4; } }
@keyframes he3-shadow { 0% { opacity:0.4; transform:scaleX(1); } 50% { opacity:0.7; transform:scaleX(1.1); } 100% { opacity:0.5; } }
@keyframes he3-distant { 0% { opacity:0.3; transform:translateY(0); } 50% { opacity:0.6; transform:translateY(-3px); } 100% { opacity:0.4; } }

.scn-hatred-transformed-love { background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 50%, #2a3a3a 100%), radial-gradient(ellipse at 50% 40%, #7a8a8a 0%, transparent 70%); }
.scn-hatred-transformed-love .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:40% 60% 0 0 / 50% 50% 0 0; }
.scn-hatred-transformed-love .bg-overcast { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 100%); }
.scn-hatred-transformed-love .figure-left { position:absolute; bottom:25%; left:30%; width:25px; height:45px; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:he4-left 8s ease-in-out infinite; }
.scn-hatred-transformed-love .figure-right { position:absolute; bottom:25%; right:30%; width:25px; height:45px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:he4-right 8s ease-in-out infinite; }
.scn-hatred-transformed-love .bridge { position:absolute; bottom:35%; left:35%; right:35%; height:3px; background: linear-gradient(90deg, transparent 0%, #8a8a7a 50%, transparent 100%); animation:he4-bridge 9s ease-in-out infinite alternate; }
.scn-hatred-transformed-love .light-spark { position:absolute; bottom:35%; left:50%; width:10px; height:10px; transform:translateX(-50%); background: radial-gradient(circle, #c8a058 0%, transparent 70%); border-radius:50%; box-shadow:0 0 20px 6px rgba(200,160,88,0.5); animation:he4-spark 4s ease-in-out infinite alternate; }
.scn-hatred-transformed-love .shadow-fade { position:absolute; bottom:20%; left:40%; width:80px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); filter:blur(3px); animation:he4-fade 6s ease-in-out infinite alternate; }
@keyframes he4-left { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 33% { transform:translateX(5px) translateY(-2px) rotate(2deg); } 66% { transform:translateX(-2px) translateY(0) rotate(-1deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes he4-right { 0% { transform:translateX(0) translateY(0) rotate(0deg); } 33% { transform:translateX(-5px) translateY(-2px) rotate(-2deg); } 66% { transform:translateX(2px) translateY(0) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes he4-bridge { 0% { opacity:0.3; transform:scaleX(0.8); } 50% { opacity:0.8; transform:scaleX(1.1); } 100% { opacity:0.4; } }
@keyframes he4-spark { 0% { transform:translateX(-50%) scale(0.8); opacity:0.4; } 50% { transform:translateX(-50%) scale(1.3); opacity:1; } 100% { transform:translateX(-50%) scale(0.9); opacity:0.5; } }
@keyframes he4-fade { 0% { opacity:0.3; transform:scaleX(1); } 50% { opacity:0.6; transform:scaleX(1.1); } 100% { opacity:0.4; } }

.scn-taylor-election {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2418 40%, #3a2e1e 100%), radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-taylor-election .bg-wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a2418 0%, #1a1810 100%);
  animation: te-wall 18s ease-in-out infinite alternate;
}
.scn-taylor-election .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2a1e12 0%, #0e0a06 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-taylor-election .desk-top {
  position:absolute; bottom:32%; left:25%; right:25%; height:12%;
  background: linear-gradient(180deg, #4a3a28 0%, #3a2818 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: te-desk 9s ease-in-out infinite;
}
.scn-taylor-election .desk-legs {
  position:absolute; bottom:20%; left:30%; right:30%; height:12%;
  background: linear-gradient(180deg, #3a2818 0%, #1a1208 100%);
  border-radius: 0 0 8% 8%;
  animation: te-legs 9s ease-in-out infinite;
}
.scn-taylor-election .lamp-base {
  position:absolute; bottom:48%; left:42%; width:6%; height:12%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-taylor-election .lamp-glow {
  position:absolute; bottom:52%; left:40%; width:12%; height:20%;
  background: radial-gradient(ellipse, #c88a44 0%, #e8a860 40%, transparent 70%);
  filter: blur(6px);
  animation: te-lamp 3s ease-in-out infinite alternate;
}
.scn-taylor-election .figure-silhouette {
  position:absolute; bottom:32%; left:38%; width:16%; height:34%;
  background: linear-gradient(180deg, #0a0806 0%, #120e0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: te-figure 4s ease-in-out infinite;
}
.scn-taylor-election .papers {
  position:absolute; bottom:34%; left:44%; width:12%; height:4%;
  background: #e0d8c0;
  border-radius: 2%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3), 2px 4px 6px rgba(0,0,0,.2);
  animation: te-papers 7s ease-in-out infinite alternate;
}
.scn-taylor-election .shadow-flicker {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 45% 55%, rgba(0,0,0,.3) 0%, transparent 60%);
  pointer-events: none;
  animation: te-flicker 2s ease-in-out infinite alternate;
}
@keyframes te-wall {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}
@keyframes te-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes te-legs {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
}
@keyframes te-lamp {
  0% { opacity: .6; transform: scaleY(.95); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: .7; transform: scaleY(1); }
}
@keyframes te-figure {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(2px) rotate(1deg); }
}
@keyframes te-papers {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes te-flicker {
  0% { opacity: .2; }
  100% { opacity: .5; }
}

.scn-strange-experience-of-pride {
  background: linear-gradient(180deg, #0f0d0a 0%, #1a1612 40%, #2a2220 100%), radial-gradient(ellipse at 60% 45%, #3a2e28 0%, transparent 70%);
}
.scn-strange-experience-of-pride .bg-deep {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0f0d0a 0%, #1a1612 60%, #2a2220 100%);
}
.scn-strange-experience-of-pride .bg-mid {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 60% 40%, rgba(60,50,40,.5) 0%, transparent 60%);
}
.scn-strange-experience-of-pride .wall-panel {
  position:absolute; top:10%; left:20%; right:20%; height:60%;
  background: linear-gradient(180deg, #2a2220 0%, #1a1612 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.6);
}
.scn-strange-experience-of-pride .mirror-frame {
  position:absolute; top:20%; left:35%; right:35%; height:45%;
  background: linear-gradient(180deg, #6a5040 0%, #3a2818 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: se-frame 12s ease-in-out infinite alternate;
}
.scn-strange-experience-of-pride .mirror-glass {
  position:absolute; top:22%; left:37%; right:37%; height:40%;
  background: linear-gradient(135deg, rgba(80,70,60,.4) 0%, rgba(160,140,120,.2) 50%, rgba(80,70,60,.4) 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.3);
  animation: se-glass 8s ease-in-out infinite alternate;
}
.scn-strange-experience-of-pride .figure-torso {
  position:absolute; bottom:22%; left:38%; right:38%; height:26%;
  background: linear-gradient(180deg, #0a0806 0%, #15100c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: se-torso 5s ease-in-out infinite;
}
.scn-strange-experience-of-pride .figure-head {
  position:absolute; bottom:46%; left:43%; right:43%; height:10%;
  background: #0a0806;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: se-head 5s ease-in-out infinite;
}
.scn-strange-experience-of-pride .candle {
  position:absolute; bottom:30%; left:72%; width:4%; height:14%;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a880 50%, #8a7050 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-strange-experience-of-pride .candle-light {
  position:absolute; bottom:42%; left:69%; width:8%; height:12%;
  background: radial-gradient(ellipse, #f0d080 0%, #d0a050 40%, transparent 70%);
  filter: blur(4px);
  animation: se-candle 3s ease-in-out infinite alternate;
}
@keyframes se-frame {
  0% { transform: scale(1); }
  50% { transform: scale(1.02) rotate(1deg); }
  100% { transform: scale(0.98) rotate(-1deg); }
}
@keyframes se-glass {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .4; }
}
@keyframes se-torso {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(2px) rotate(-2deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes se-head {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes se-candle {
  0% { opacity: .6; transform: scaleY(.9); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: .7; transform: scaleY(.95); }
}

.scn-guillotine-metaphor {
  background: linear-gradient(180deg, #050505 0%, #0f0a08 40%, #1a1210 100%), radial-gradient(ellipse at 50% 20%, #2a1e1a 0%, transparent 80%);
}
.scn-guillotine-metaphor .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #050505 0%, #0f0a08 100%);
}
.scn-guillotine-metaphor .bg-stone {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%);
}
.scn-guillotine-metaphor .scaffold {
  position:absolute; bottom:30%; left:20%; right:20%; height:15%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a120e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,.7);
}
.scn-guillotine-metaphor .upright {
  position:absolute; bottom:40%; left:46%; right:46%; height:60%;
  background: linear-gradient(90deg, #2a1e16 0%, #3a2a22 50%, #2a1e16 100%);
  border-radius: 4% 4% 0 0;
}
.scn-guillotine-metaphor .blade {
  position:absolute; bottom:50%; left:40%; right:40%; height:30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1e16 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: gm-blade 8s ease-in-out infinite alternate;
}
.scn-guillotine-metaphor .blade-shadow {
  position:absolute; bottom:50%; left:42%; right:42%; height:32%;
  background: #0a0806;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(8px);
  opacity: .6;
  animation: gm-shadow 8s ease-in-out infinite alternate;
}
.scn-guillotine-metaphor .rope {
  position:absolute; top:5%; left:48%; right:48%; height:45%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%);
  width: 4%;
  margin-left: -2%;
  border-radius: 20%;
}
.scn-guillotine-metaphor .crowd-silhouette {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: #0a0806;
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  animation: gm-crowd 12s ease-in-out infinite alternate;
}
.scn-guillotine-metaphor .drip {
  position:absolute; bottom:44%; left:49%; width:2%; height:6%;
  background: radial-gradient(ellipse, #2a0e0a 0%, #120604 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: gm-drip 4s ease-in-out infinite;
}
@keyframes gm-blade {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(40px) rotate(-2deg); }
}
@keyframes gm-shadow {
  0%, 100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(40px) scaleX(1.1); }
}
@keyframes gm-crowd {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes gm-drip {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(10px) scale(0.8); }
}

.scn-democrats-generous {
  background: linear-gradient(180deg, #0a0a12 0%, #14141e 40%, #1e1e2a 100%), radial-gradient(ellipse at 50% 70%, #2a2a3a 0%, transparent 70%);
}
.scn-democrats-generous .bg-night {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0a0a12 0%, #14141e 100%);
  animation: dg-night 20s ease-in-out infinite alternate;
}
.scn-democrats-generous .table-top {
  position:absolute; bottom:30%; left:20%; right:20%; height:10%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 2px 10px rgba(0,0,0,.5);
}
.scn-democrats-generous .table-legs {
  position:absolute; bottom:18%; left:25%; right:25%; height:12%;
  background: linear-gradient(180deg, #1a1a28 0%, #0e0e18 100%);
  border-radius: 0 0 8% 8%;
}
.scn-democrats-generous .figure-left {
  position:absolute; bottom:28%; left:16%; width:14%; height:30%;
  background: linear-gradient(180deg, #0a0a18 0%, #12122a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: dg-figL 6s ease-in-out infinite alternate;
}
.scn-democrats-generous .figure-right {
  position:absolute; bottom:28%; right:16%; width:14%; height:30%;
  background: linear-gradient(180deg, #0a0a18 0%, #12122a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: dg-figR 6s ease-in-out infinite alternate;
}
.scn-democrats-generous .figure-center {
  position:absolute; bottom:28%; left:42%; right:42%; height:32%;
  background: linear-gradient(180deg, #0a0a18 0%, #14142e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dg-figC 8s ease-in-out infinite;
}
.scn-democrats-generous .lantern {
  position:absolute; bottom:40%; left:48%; right:48%; height:12%;
  background: linear-gradient(180deg, #d0a860 0%, #b08040 100%);
  border-radius: 20% 20% 10% 10%;
  animation: dg-lantern 4s ease-in-out infinite alternate;
}
.scn-democrats-generous .lantern-glow {
  position:absolute; bottom:38%; left:44%; right:44%; height:18%;
  background: radial-gradient(ellipse, #e8c868 0%, #d0a050 40%, transparent 70%);
  filter: blur(8px);
  animation: dg-glow 4s ease-in-out infinite alternate;
}
.scn-democrats-generous .papers {
  position:absolute; bottom:32%; left:44%; width:10%; height:4%;
  background: #d8d0b8;
  border-radius: 2%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: dg-papers 9s ease-in-out infinite alternate;
}
@keyframes dg-night {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes dg-figL {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dg-figR {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dg-figC {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
}
@keyframes dg-lantern {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes dg-glow {
  0% { opacity: .5; transform: scale(.95); }
  50% { opacity: .8; transform: scale(1.1); }
  100% { opacity: .6; transform: scale(1); }
}
@keyframes dg-papers {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-pue-private-papers { background: linear-gradient(180deg, #2a2018 0%, #3a2a1a 50%, #2a1a10 100%), radial-gradient(ellipse at 50% 30%, #5a3a20 0%, transparent 70%); }
.scn-pue-private-papers .desk-surface { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,.5); }
.scn-pue-private-papers .paper-stack { position:absolute; bottom:30%; left:40%; width:40%; height:20%; background: linear-gradient(180deg, #e8dcc0 0%, #c8b8a0 100%); border-radius: 2% 2% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.3); transform: rotate(-2deg); animation: ppp-shift 12s ease-in-out infinite; }
.scn-pue-private-papers .paper-loose { position:absolute; bottom:35%; left:25%; width:30%; height:15%; background: linear-gradient(180deg, #f0e4cc 0%, #d8c8b0 100%); border-radius: 1% 1% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.2); transform: rotate(3deg); animation: ppp-float 8s ease-in-out infinite alternate; }
.scn-pue-private-papers .inkwell { position:absolute; bottom:28%; left:20%; width:12%; height:10%; background: radial-gradient(circle at 40% 20%, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,.4); }
.scn-pue-private-papers .quill { position:absolute; bottom:36%; left:18%; width:3%; height:25%; background: linear-gradient(180deg, #d4b896 0%, #b09878 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; transform: rotate(15deg); transform-origin: bottom; animation: ppp-write 6s ease-in-out infinite; }
.scn-pue-private-papers .candle { position:absolute; bottom:26%; left:55%; width:6%; height:20%; background: linear-gradient(180deg, #e8d4c0 0%, #c8b098 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 12px 6px rgba(200,160,120,.3); }
.scn-pue-private-papers .candle-glow { position:absolute; bottom:44%; left:55%; width:8%; height:8%; background: radial-gradient(circle, #ffd080 0%, #e8a040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,200,100,.4); animation: ppp-flicker 3s ease-in-out infinite alternate; }
.scn-pue-private-papers .shadow-fall { position:absolute; inset:0; background: radial-gradient(ellipse at 55% 40%, transparent 30%, rgba(0,0,0,.5) 100%); pointer-events: none; }
@keyframes ppp-shift { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(4px) rotate(-1deg); } }
@keyframes ppp-float { 0% { transform: translateY(0) rotate(3deg); opacity:.9; } 100% { transform: translateY(-6px) rotate(2deg); opacity:1; } }
@keyframes ppp-write { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(20deg) scaleY(1.02); } }
@keyframes ppp-flicker { 0% { opacity:.7; transform: scale(.9); } 50% { opacity:1; transform: scale(1.1); box-shadow: 0 0 50px 30px rgba(255,200,100,.5); } 100% { opacity:.8; transform: scale(1); } }

.scn-pue-antiquarian-researches { background: linear-gradient(180deg, #2e241c 0%, #3c2c1c 50%, #1e140e 100%), radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 80%); }
.scn-pue-antiquarian-researches .table-top { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.5); }
.scn-pue-antiquarian-researches .open-book { position:absolute; bottom:22%; left:25%; width:35%; height:24%; background: linear-gradient(180deg, #e0d4be 0%, #c0b49e 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.4); transform: perspective(600px) rotateX(10deg); animation: par-book 10s ease-in-out infinite; }
.scn-pue-antiquarian-researches .book-page-lines { position:absolute; bottom:24%; left:28%; width:29%; height:18%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #8a7a64 8px, #8a7a64 9px); border-radius: 5% 5% 0 0; opacity:.4; }
.scn-pue-antiquarian-researches .globe { position:absolute; bottom:28%; right:20%; width:20%; height:28%; background: radial-gradient(circle at 40% 30%, #6a8a6a 0%, #3a5a3a 100%); border-radius: 50%; box-shadow: 0 6px 12px rgba(0,0,0,.3), inset -10px -10px 20px rgba(0,0,0,.3); transform: rotate(15deg); animation: par-spin 30s linear infinite; }
.scn-pue-antiquarian-researches .map-scroll { position:absolute; bottom:20%; left:5%; width:20%; height:30%; background: linear-gradient(180deg, #d4c4a8 0%, #b8a48c 100%); border-radius: 10% 10% 5% 5% / 40% 40% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: skewX(-5deg); animation: par-unroll 12s ease-in-out infinite alternate; }
.scn-pue-antiquarian-researches .magnifier { position:absolute; bottom:40%; left:45%; width:12%; height:8%; background: radial-gradient(circle, #c0d4e0 0%, #e8f0f8 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 0 2px #b8a898, 0 4px 8px rgba(0,0,0,.3); animation: par-peek 6s ease-in-out infinite; }
.scn-pue-antiquarian-researches .soft-light { position:absolute; bottom:10%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse, rgba(255,200,100,.1) 0%, transparent 70%); pointer-events: none; animation: par-light 8s ease-in-out infinite alternate; }
@keyframes par-book { 0%,100% { transform: perspective(600px) rotateX(10deg) translateY(0); } 50% { transform: perspective(600px) rotateX(12deg) translateY(-4px); } }
@keyframes par-spin { 0% { transform: rotate(15deg); } 100% { transform: rotate(375deg); } }
@keyframes par-unroll { 0% { transform: skewX(-5deg) scaleY(1); } 100% { transform: skewX(0deg) scaleY(1.05); } }
@keyframes par-peek { 0%,100% { opacity:.6; transform: translateX(0); } 50% { opacity:1; transform: translateX(8px) scale(1.05); } }
@keyframes par-light { 0% { opacity:.5; } 100% { opacity:.9; } }

.scn-scarlet-letter-discovery { background: linear-gradient(180deg, #1a1410 0%, #2a1c14 50%, #1a0e08 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 80%); }
.scn-scarlet-letter-discovery .dark-mid { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.6) 100%); }
.scn-scarlet-letter-discovery .package-edge { position:absolute; bottom:20%; left:15%; right:15%; height:50%; background: linear-gradient(180deg, #4a3828 0%, #2a1c10 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); transform: perspective(400px) rotateX(5deg); }
.scn-scarlet-letter-discovery .letter-cloth { position:absolute; bottom:35%; left:35%; width:30%; height:20%; background: linear-gradient(135deg, #8a2a1a 0%, #b83828 30%, #9a2818 70%, #6a1810 100%); border-radius: 5% 5% 0 0; box-shadow: 0 0 20px 8px rgba(180,40,30,.3); transform: perspective(800px) rotateX(-5deg); animation: sld-flash 4s ease-in-out infinite; }
.scn-scarlet-letter-discovery .gold-thread { position:absolute; bottom:38%; left:40%; width:20%; height:10%; background: radial-gradient(circle at 30% 50%, #d4a030 0%, #b08020 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 16px 6px rgba(200,160,50,.5); animation: sld-glimmer 3s ease-in-out infinite alternate; }
.scn-scarlet-letter-discovery .spotlight { position:absolute; bottom:30%; left:30%; width:40%; height:45%; background: radial-gradient(ellipse, rgba(220,160,80,.15) 0%, transparent 70%); pointer-events: none; animation: sld-pulse 5s ease-in-out infinite; }
.scn-scarlet-letter-discovery .fragment-shadow { position:absolute; bottom:20%; left:20%; width:60%; height:30%; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%); animation: sld-waver 6s ease-in-out infinite; }
.scn-scarlet-letter-discovery .tremble-box { position:absolute; bottom:30%; left:30%; width:40%; height:30%; border:2px solid rgba(80,60,40,.3); border-radius: 5%; animation: sld-tremble 0.8s ease-in-out infinite; pointer-events: none; }
@keyframes sld-flash { 0%,100% { opacity:.8; transform: perspective(800px) rotateX(-5deg) scale(1); } 30% { opacity:1; transform: perspective(800px) rotateX(-4deg) scale(1.03); box-shadow: 0 0 30px 12px rgba(180,40,30,.5); } 70% { opacity:.9; transform: perspective(800px) rotateX(-6deg) scale(.98); } }
@keyframes sld-glimmer { 0% { opacity:.5; transform: scale(.9); } 100% { opacity:1; transform: scale(1.1); box-shadow: 0 0 24px 10px rgba(200,160,50,.7); } }
@keyframes sld-pulse { 0%,100% { opacity:.4; } 50% { opacity:.8; } }
@keyframes sld-waver { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-5px) scaleX(1.05); } }
@keyframes sld-tremble { 0% { transform: translate(0,0); } 25% { transform: translate(1px,-1px); } 50% { transform: translate(-1px,1px); } 75% { transform: translate(2px,0); } 100% { transform: translate(0,0); } }

.scn-letter-ornamental-riddle { background: linear-gradient(180deg, #1c1410 0%, #2a1c14 50%, #140e0a 100%), radial-gradient(ellipse at 50% 50%, #3a2818 0%, transparent 80%); }
.scn-letter-ornamental-riddle .deep-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.7) 100%); }
.scn-letter-ornamental-riddle .parchment-edge { position:absolute; bottom:20%; left:20%; right:20%; height:50%; background: linear-gradient(180deg, #d4c4b0 0%, #b8a890 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); transform: perspective(500px) rotateX(3deg); }
.scn-letter-ornamental-riddle .letter-cloth { position:absolute; bottom:30%; left:35%; width:30%; height:25%; background: linear-gradient(135deg, #9a3222 0%, #c84830 30%, #a83822 70%, #782012 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 0 20px 10px rgba(200,70,40,.3); transform: rotate(-3deg); animation: lor-twist 12s ease-in-out infinite; }
.scn-letter-ornamental-riddle .gold-filigree { position:absolute; bottom:34%; left:38%; width:24%; height:16%; background: radial-gradient(circle at 30% 40%, #e8c040 0%, #c89830 40%, transparent 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px rgba(200,160,60,.4); animation: lor-shimmer 5s ease-in-out infinite alternate; }
.scn-letter-ornamental-riddle .magnifier-glass { position:absolute; bottom:32%; left:42%; width:16%; height:14%; background: radial-gradient(circle, #d0e0e8 0%, #e8f0f8 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 0 2px #b8a898, 0 4px 12px rgba(0,0,0,.4); transform: translateX(-50%); animation: lor-scan 8s ease-in-out infinite; }
.scn-letter-ornamental-riddle .rim-light { position:absolute; bottom:30%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse at 40% 50%, rgba(255,220,150,.05) 0%, transparent 70%); pointer-events: none; animation: lor-edge 6s ease-in-out infinite alternate; }
.scn-letter-ornamental-riddle .soft-drift { position:absolute; bottom:10%; left:20%; width:60%; height:10%; background: linear-gradient(90deg, transparent, rgba(200,180,160,.05), transparent); border-radius: 50%; filter: blur(4px); animation: lor-drift 20s linear infinite; }
@keyframes lor-twist { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(2deg) scale(1.02); } }
@keyframes lor-shimmer { 0% { opacity:.6; transform: scale(.95); } 100% { opacity:1; transform: scale(1.05); box-shadow: 0 0 30px 10px rgba(200,160,60,.6); } }
@keyframes lor-scan { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-30%) translateY(-8px); } }
@keyframes lor-edge { 0% { opacity:.3; } 100% { opacity:.7; } }
@keyframes lor-drift { 0% { transform: translateX(-10%); } 100% { transform: translateX(110%); } }

.scn-effect-of-office-on-character {
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 40%, #0f3460 100%),
              radial-gradient(ellipse at 50% 30%, #0f3460 0%, transparent 70%);
}
.scn-effect-of-office-on-character .eoc-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 80%);
  animation: eoc-wall 20s ease-in-out infinite alternate;
}
.scn-effect-of-office-on-character .eoc-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 5% 5% 0 0;
  animation: eoc-floor 12s ease-in-out infinite alternate;
}
.scn-effect-of-office-on-character .eoc-desk {
  position:absolute; bottom:18%; left:25%; right:25%; height:14%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: eoc-desk 9s ease-in-out infinite;
}
.scn-effect-of-office-on-character .eoc-chair {
  position:absolute; bottom:20%; left:38%; width:28%; height:24%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 12% 12% / 40% 40% 30% 30%;
  transform: scale(0.95);
  animation: eoc-chair 6s ease-in-out infinite alternate;
}
.scn-effect-of-office-on-character .eoc-figure {
  position:absolute; bottom:22%; left:42%; width:16%; height:32%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eoc-figure 8s ease-in-out infinite alternate;
}
.scn-effect-of-office-on-character .eoc-lamp {
  position:absolute; bottom:38%; left:22%; width:8%; height:6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: eoc-lamp 5s ease-in-out infinite;
}
.scn-effect-of-office-on-character .eoc-glow {
  position:absolute; bottom:36%; left:18%; width:16%; height:12%;
  background: radial-gradient(circle at 50% 100%, rgba(192,160,80,.6) 0%, transparent 80%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: eoc-glow 3s ease-in-out infinite alternate;
}
.scn-effect-of-office-on-character .eoc-clock {
  position:absolute; top:10%; left:70%; width:10%; height:12%;
  background: radial-gradient(circle, #4a4a5a 0%, #2a2a3a 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(200,200,200,.2);
  animation: eoc-clock 30s linear infinite;
}
@keyframes eoc-wall {
  0% { opacity:.7; filter: brightness(1); }
  50% { opacity:1; filter: brightness(0.9); }
  100% { opacity:.8; filter: brightness(1.1); }
}
@keyframes eoc-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes eoc-desk {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-1px); }
}
@keyframes eoc-chair {
  0% { transform: scale(0.95) rotate(-1deg); }
  50% { transform: scale(0.97) rotate(1deg); }
  100% { transform: scale(0.95) rotate(-1deg); }
}
@keyframes eoc-figure {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(-2deg); }
  100% { transform: translateX(-2px) rotate(0); }
}
@keyframes eoc-lamp {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(5deg); }
}
@keyframes eoc-glow {
  0% { opacity:.3; transform: scale(0.9); }
  50% { opacity:.8; transform: scale(1.2); }
  100% { opacity:.5; transform: scale(1); }
}
@keyframes eoc-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-loss-of-self-support {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f3460 50%, #16213e 100%),
              radial-gradient(ellipse at 50% 80%, #0f3460 0%, transparent 70%);
}
.scn-loss-of-self-support .lss-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 90%);
  animation: lss-wall 15s ease-in-out infinite alternate;
}
.scn-loss-of-self-support .lss-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0;
  animation: lss-floor 10s ease-in-out infinite alternate;
}
.scn-loss-of-self-support .lss-figure {
  position:absolute; bottom:12%; left:40%; width:20%; 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: lss-figure 12s ease-in-out infinite alternate;
}
.scn-loss-of-self-support .lss-stick {
  position:absolute; bottom:15%; left:52%; width:4%; height:30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10%;
  transform-origin: bottom center;
  animation: lss-stick 8s ease-in-out infinite;
}
.scn-loss-of-self-support .lss-shadow {
  position:absolute; bottom:0; left:30%; width:40%; height:12%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 80%);
  animation: lss-shadow 6s ease-in-out infinite alternate;
}
.scn-loss-of-self-support .lss-window {
  position:absolute; top:10%; left:20%; width:30%; height:40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border: 4px solid #3a3a4a;
  border-radius: 4%;
  box-shadow: inset 0 0 30px rgba(100,150,200,.3);
  animation: lss-window 20s ease-in-out infinite alternate;
}
.scn-loss-of-self-support .lss-light {
  position:absolute; top:15%; left:25%; width:20%; height:30%;
  background: linear-gradient(180deg, rgba(200,200,200,.1) 0%, transparent 100%);
  mix-blend-mode: screen;
  animation: lss-light 5s ease-in-out infinite alternate;
}
@keyframes lss-wall {
  0% { opacity:.6; }
  50% { opacity:.9; }
  100% { opacity:.7; }
}
@keyframes lss-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(1px); }
}
@keyframes lss-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(0); }
}
@keyframes lss-stick {
  0%,100% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes lss-shadow {
  0% { opacity:.5; transform: scale(1); }
  50% { opacity:.8; transform: scale(1.1); }
  100% { opacity:.4; transform: scale(0.9); }
}
@keyframes lss-window {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.9); }
}
@keyframes lss-light {
  0% { opacity:.1; }
  50% { opacity:.4; }
  100% { opacity:.2; }
}

.scn-office-as-perpetual-hope {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f3460 60%, #16213e 100%),
              radial-gradient(ellipse at 50% 20%, #16213e 0%, transparent 70%);
}
.scn-office-as-perpetual-hope .oph-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 80%);
  animation: oph-wall 18s ease-in-out infinite alternate;
}
.scn-office-as-perpetual-hope .oph-window {
  position:absolute; top:5%; left:15%; width:40%; height:50%;
  background: radial-gradient(ellipse at 50% 50%, #3a4a5a 0%, #1a2a3a 100%);
  border: 6px solid #3a3a4a;
  border-radius: 4%;
  box-shadow: inset 0 0 50px rgba(150,200,250,.3);
  animation: oph-window 25s ease-in-out infinite alternate;
}
.scn-office-as-perpetual-hope .oph-frame {
  position:absolute; top:5%; left:15%; width:40%; height:50%;
  border: 6px solid #4a3a2a;
  border-radius: 4%;
  box-sizing: border-box;
  animation: oph-frame 12s ease-in-out infinite;
}
.scn-office-as-perpetual-hope .oph-figure {
  position:absolute; bottom:18%; left:30%; width:18%; height:35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oph-figure 10s ease-in-out infinite alternate;
}
.scn-office-as-perpetual-hope .oph-desk {
  position:absolute; bottom:12%; left:20%; right:20%; height:15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: oph-desk 8s ease-in-out infinite;
}
.scn-office-as-perpetual-hope .oph-papers {
  position:absolute; bottom:15%; left:30%; width:15%; height:8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4%;
  transform: rotate(-5deg);
  animation: oph-papers 7s ease-in-out infinite alternate;
}
.scn-office-as-perpetual-hope .oph-lamp {
  position:absolute; bottom:30%; left:55%; width:8%; height:6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: oph-lamp 6s ease-in-out infinite;
}
.scn-office-as-perpetual-hope .oph-glow {
  position:absolute; bottom:28%; left:50%; width:16%; height:12%;
  background: radial-gradient(circle at 50% 100%, rgba(200,170,100,.5) 0%, transparent 80%);
  mix-blend-mode: screen;
  animation: oph-glow 4s ease-in-out infinite alternate;
}
@keyframes oph-wall {
  0% { opacity:.7; }
  50% { opacity:1; }
  100% { opacity:.8; }
}
@keyframes oph-window {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1.3); }
  100% { filter: brightness(1); }
}
@keyframes oph-frame {
  0% { transform: scale(1); border-color: #4a3a2a; }
  50% { transform: scale(1.02); border-color: #5a4a3a; }
  100% { transform: scale(1); border-color: #3a2a1a; }
}
@keyframes oph-figure {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(4px) rotate(-3deg); }
  100% { transform: translateX(-2px) rotate(0); }
}
@keyframes oph-desk {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.01) translateY(-1px); }
}
@keyframes oph-papers {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(2px); }
  100% { transform: rotate(-7deg) translateX(-1px); }
}
@keyframes oph-lamp {
  0%,100% { transform: rotate(0); }
  50% { transform: rotate(3deg); }
}
@keyframes oph-glow {
  0% { opacity:.2; transform: scale(0.8); }
  50% { opacity:.6; transform: scale(1.3); }
  100% { opacity:.4; transform: scale(1); }
}

.scn-faith-steals-pith {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f3460 50%, #16213e 100%),
              radial-gradient(ellipse at 50% 70%, #0f3460 0%, transparent 60%);
}
.scn-faith-steals-pith .fsp-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 90%);
  animation: fsp-wall 14s ease-in-out infinite alternate;
}
.scn-faith-steals-pith .fsp-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 8% 8% 0 0;
  animation: fsp-floor 11s ease-in-out infinite alternate;
}
.scn-faith-steals-pith .fsp-figure {
  position:absolute; bottom:20%; left:35%; width:18%; 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: fsp-figure 9s ease-in-out infinite alternate;
}
.scn-faith-steals-pith .fsp-hand {
  position:absolute; top:5%; left:30%; width:30%; height:50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
  transform-origin: top center;
  animation: fsp-hand 15s ease-in-out infinite alternate;
}
.scn-faith-steals-pith .fsp-shadow {
  position:absolute; bottom:0; left:25%; width:50%; height:15%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%);
  animation: fsp-shadow 7s ease-in-out infinite alternate;
}
.scn-faith-steals-pith .fsp-desk {
  position:absolute; bottom:15%; left:15%; right:15%; height:18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: fsp-desk 10s ease-in-out infinite;
}
.scn-faith-steals-pith .fsp-chair {
  position:absolute; bottom:17%; left:42%; width:20%; height:22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  transform: scale(0.95);
  animation: fsp-chair 8s ease-in-out infinite alternate;
}
@keyframes fsp-wall {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.7; }
}
@keyframes fsp-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes fsp-figure {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(2px) rotate(0); }
}
@keyframes fsp-hand {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-10px); }
  100% { transform: rotate(-15deg) translateY(5px); }
}
@keyframes fsp-shadow {
  0% { opacity:.4; transform: scale(1); }
  50% { opacity:.7; transform: scale(1.15); }
  100% { opacity:.5; transform: scale(0.9); }
}
@keyframes fsp-desk {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.02) translateY(-1px); }
}
@keyframes fsp-chair {
  0% { transform: scale(0.95) rotate(-2deg); }
  50% { transform: scale(0.97) rotate(2deg); }
  100% { transform: scale(0.95) rotate(-1deg); }
}

/* stern-repression - overcast, calm, grim smile */
.scn-stern-repression {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 30%, #5a5a6a 60%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-stern-repression .sky-overcast {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  animation: sr-sky 20s ease-in-out infinite alternate;
}
.scn-stern-repression .crowd-back {
  position:absolute; bottom:30%; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #3a3a3e 0%, #2a2a2e 100%);
  border-radius: 30% 40% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: sr-crowd 25s ease-in-out infinite alternate;
}
.scn-stern-repression .crowd-mid {
  position:absolute; bottom:28%; left:0; right:0; height:40%;
  background: repeating-linear-gradient(90deg, #2e2e32 0px, #2e2e32 12px, #3a3a3e 12px, #3a3a3e 24px);
  border-radius: 0 0 0 0;
  opacity: .6;
  mask-image: radial-gradient(ellipse at 50% 100%, transparent 40%, black 70%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, transparent 40%, black 70%);
}
.scn-stern-repression .platform {
  position:absolute; bottom:22%; left:50%; width:120px; height:16px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-stern-repression .authority {
  position:absolute; bottom:24%; left:47%; width:30px; 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: sr-authority 8s ease-in-out infinite;
}
.scn-stern-repression .figure-grim {
  position:absolute; bottom:22%; left:52%; width:28px; 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: sr-figure 10s ease-in-out infinite;
}
.scn-stern-repression .face-smile {
  position:absolute; bottom:38%; left:52.5%; width:16px; height:18px;
  background: radial-gradient(circle at 50% 40%, #b8a880 0%, #8a7a5a 60%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.5);
  animation: sr-smile 6s ease-in-out infinite;
}
.scn-stern-repression .poster {
  position:absolute; bottom:26%; left:44%; width:20px; height:28px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: sr-poster 15s ease-in-out infinite alternate;
}
@keyframes sr-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes sr-crowd { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes sr-authority { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(2deg) } }
@keyframes sr-figure { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-3deg) } }
@keyframes sr-smile { 0% { opacity: .7; transform: scaleY(.9) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: .8; transform: scaleY(.95) } }
@keyframes sr-poster { 0% { transform: rotate(0) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }

/* wrestling-and-quarterstaff - overcast, calm, market */
.scn-wrestling-and-quarterstaff {
  background:
    linear-gradient(180deg, #5a5a5e 0%, #4a4a4e 40%, #6a6a6e 70%, #3a3a3e 100%),
    radial-gradient(ellipse at 50% 100%, #4a4a4e 0%, transparent 80%);
}
.scn-wrestling-and-quarterstaff .ground {
  position:absolute; bottom:28%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 10% 20% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,.4);
  animation: wq-ground 20s ease-in-out infinite alternate;
}
.scn-wrestling-and-quarterstaff .market-booth {
  position:absolute; bottom:40%; right:15%; width:80px; height:50px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: wq-booth 30s ease-in-out infinite alternate;
}
.scn-wrestling-and-quarterstaff .wrestle-a {
  position:absolute; bottom:28%; left:38%; width:24px; height:36px;
  background: linear-gradient(180deg, #3a3a3e 0%, #1a1a1e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: wq-wrestle-a 4s ease-in-out infinite;
}
.scn-wrestling-and-quarterstaff .wrestle-b {
  position:absolute; bottom:28%; left:44%; width:24px; height:36px;
  background: linear-gradient(180deg, #4a4a4e 0%, #2a2a2e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: wq-wrestle-b 4s ease-in-out infinite;
  animation-delay: .2s;
}
.scn-wrestling-and-quarterstaff .staff-a {
  position:absolute; bottom:28%; left:62%; width:22px; height:38px;
  background: linear-gradient(180deg, #3a3a3e 0%, #1a1a1e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wq-staff-a 5s ease-in-out infinite;
}
.scn-wrestling-and-quarterstaff .staff-b {
  position:absolute; bottom:28%; left:70%; width:22px; height:38px;
  background: linear-gradient(180deg, #4a4a4e 0%, #2a2a2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wq-staff-b 5s ease-in-out infinite;
  animation-delay: .3s;
}
.scn-wrestling-and-quarterstaff .staff-pole {
  position:absolute; bottom:30%; left:66%; width:6px; height:45px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10%;
  transform-origin: bottom center;
  animation: wq-pole 3s ease-in-out infinite;
}
.scn-wrestling-and-quarterstaff .crowd-watch {
  position:absolute; bottom:26%; left:20%; right:20%; height:20%;
  background: repeating-linear-gradient(90deg, #2e2e32 0px, #2e2e32 8px, transparent 8px, transparent 16px);
  mask-image: radial-gradient(ellipse at 50% 0%, black 30%, transparent 60%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 0%, black 30%, transparent 60%);
  opacity: .5;
  animation: wq-crowd 18s ease-in-out infinite alternate;
}
@keyframes wq-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes wq-booth { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wq-wrestle-a { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(8deg) } 50% { transform: translateX(6px) rotate(0) } 75% { transform: translateX(3px) rotate(-8deg) } }
@keyframes wq-wrestle-b { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-8deg) } 50% { transform: translateX(-6px) rotate(0) } 75% { transform: translateX(-3px) rotate(8deg) } }
@keyframes wq-staff-a { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(2px) rotate(6deg) } 60% { transform: translateX(-2px) rotate(-4deg) } }
@keyframes wq-staff-b { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-2px) rotate(-6deg) } 60% { transform: translateX(2px) rotate(4deg) } }
@keyframes wq-pole { 0%,100% { transform: rotate(0) } 25% { transform: rotate(6deg) } 75% { transform: rotate(-6deg) } }
@keyframes wq-crowd { 0% { opacity: .4 } 50% { opacity: .6 } 100% { opacity: .5 } }

/* comparison-to-descendants - overcast, calm, generational contrast */
.scn-comparison-to-descendants {
  background:
    linear-gradient(180deg, #5e5e6e 0%, #4e4e5e 30%, #6e6e7e 60%, #3e3e4e 100%),
    radial-gradient(ellipse at 50% 0%, #6e6e7e 0%, transparent 70%);
}
.scn-comparison-to-descendants .bg-faded {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #6a6a7a 0%, transparent 100%);
  animation: cd-bg 22s ease-in-out infinite alternate;
}
.scn-comparison-to-descendants .generation-old {
  position:absolute; bottom:28%; left:25%; width:40px; height:55px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cd-old 7s ease-in-out infinite;
}
.scn-comparison-to-descendants .generation-new {
  position:absolute; bottom:28%; right:25%; width:36px; height:50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cd-new 9s ease-in-out infinite;
}
.scn-comparison-to-descendants .child-fig {
  position:absolute; bottom:26%; left:32%; width:20px; height:30px;
  background: linear-gradient(180deg, #5a5a5e 0%, #3a3a3e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: cd-child 6s ease-in-out infinite;
}
.scn-comparison-to-descendants .merry-gesture {
  position:absolute; bottom:48%; left:22%; width:16px; height:8px;
  background: radial-gradient(ellipse at 50% 50%, #6a5a3a 0%, transparent 70%);
  border-radius: 50%;
  animation: cd-merry 5s ease-in-out infinite;
}
.scn-comparison-to-descendants .joyless-stance {
  position:absolute; bottom:48%; right:22%; width:14px; height:6px;
  background: radial-gradient(ellipse at 50% 50%, #3a3a3e 0%, transparent 70%);
  border-radius: 50%;
  animation: cd-joyless 5s ease-in-out infinite alternate;
}
.scn-comparison-to-descendants .shadow-divide {
  position:absolute; bottom:35%; left:50%; width:4px; height:40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, transparent 0%, #2a2a3a 40%, #2a2a3a 60%, transparent 100%);
  animation: cd-divide 12s ease-in-out infinite alternate;
}
@keyframes cd-bg { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes cd-old { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(4px) rotate(3deg) translateY(-2px); } 60% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes cd-new { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-4px) rotate(-4deg) translateY(-1px); } 60% { transform: translateX(2px) rotate(2deg); } }
@keyframes cd-child { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) translateY(-1px) } }
@keyframes cd-merry { 0%,100% { transform: translate(0,0) rotate(-5deg); opacity: .6 } 50% { transform: translate(4px,-3px) rotate(5deg); opacity: 1 } }
@keyframes cd-joyless { 0% { transform: translateY(0); opacity: .5 } 100% { transform: translateY(-2px); opacity: .3 } }
@keyframes cd-divide { 0% { opacity: .4 } 50% { opacity: .7 } 100% { opacity: .5 } }

/* diversity-of-hue - overcast, calm, colorful accents */
.scn-diversity-of-hue {
  background:
    linear-gradient(180deg, #5a5a5e 0%, #4a4a4e 35%, #6a6a6e 65%, #3a3a3e 100%),
    radial-gradient(ellipse at 50% 100%, #4a4a4e 0%, transparent 70%);
}
.scn-diversity-of-hue .market-gray {
  position:absolute; bottom:28%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4a4a4e 0%, #2a2a2e 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 4px 16px rgba(0,0,0,.5);
  animation: dh-market 20s ease-in-out infinite alternate;
}
.scn-diversity-of-hue .settler-a {
  position:absolute; bottom:28%; left:18%; width:22px; height:40px;
  background: linear-gradient(180deg, #3a3a3e 0%, #1a1a1e 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dh-settler 8s ease-in-out infinite;
}
.scn-diversity-of-hue .settler-b {
  position:absolute; bottom:28%; left:26%; width:20px; height:38px;
  background: linear-gradient(180deg, #4a4a4e 0%, #2a2a2e 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dh-settler 8s ease-in-out infinite;
  animation-delay: .4s;
}
.scn-diversity-of-hue .indian-group {
  position:absolute; bottom:28%; right:18%; width:50px; height:50px;
  background: 
    radial-gradient(ellipse 60% 80% at 30% 90%, #8a6a4a 0%, transparent 60%),
    radial-gradient(ellipse 60% 80% at 70% 90%, #8a6a4a 0%, transparent 60%);
  animation: dh-group 12s ease-in-out infinite;
}
.scn-diversity-of-hue .feather-head {
  position:absolute; bottom:52%; right:30%; width:18px; height:20px;
  background: radial-gradient(ellipse at 50% 40%, #c87040 0%, #a06030 50%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: 0 -4px 8px rgba(160,96,48,.3);
  animation: dh-feather 6s ease-in-out infinite;
}
.scn-diversity-of-hue .wampum-belt {
  position:absolute; bottom:38%; right:22%; width:24px; height:10px;
  background: repeating-linear-gradient(90deg, #4a8a6a 0px, #4a8a6a 4px, #8a6a4a 4px, #8a6a4a 8px, #6a8a4a 8px, #6a8a4a 12px);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: dh-belt 10s ease-in-out infinite alternate;
}
.scn-diversity-of-hue .basket {
  position:absolute; bottom:26%; right:28%; width:16px; height:18px;
  background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: dh-basket 8s ease-in-out infinite alternate;
}
.scn-diversity-of-hue .colorful-cloth {
  position:absolute; bottom:32%; right:16%; width:20px; height:16px;
  background: linear-gradient(135deg, #8a4a6a 0%, #6a8a4a 50%, #4a6a8a 100%);
  border-radius: 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: dh-cloth 5s ease-in-out infinite;
}
@keyframes dh-market { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dh-settler { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) } }
@keyframes dh-group { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) translateY(-1px) } }
@keyframes dh-feather { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(4deg) translateY(-2px) } }
@keyframes dh-belt { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes dh-basket { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dh-cloth { 0%,100% { transform: rotate(0) scale(1) } 50% { transform: rotate(3deg) scale(1.05) } }

/* wretched-alternative-chosen (wr) */
.scn-wretched-alternative-chosen {
  background: linear-gradient(135deg, #1a1a2e 0%, #2c2255 40%, #1a1a2e 100%),
              radial-gradient(ellipse at 60% 30%, #3a2a6e 0%, transparent 70%);
}
.scn-wretched-alternative-chosen .interior-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2040 0%, #1a1030 100%);
  animation: wr-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-wretched-alternative-chosen .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 20% 0 0 / 100% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-wretched-alternative-chosen .window-arch {
  position: absolute; top: 15%; left: 55%; width: 90px; height: 110px;
  background: #1a1a3e;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  border: 2px solid #4a3a6e;
  box-shadow: inset 0 0 30px rgba(100,80,140,0.2);
}
.scn-wretched-alternative-chosen .pane-glow {
  position: absolute; top: 18%; left: 57%; width: 70px; height: 90px;
  background: radial-gradient(circle, #b09060 0%, #705030 60%, transparent 100%);
  border-radius: 40% 40% 0 0;
  opacity: 0.5;
  animation: wr-glow 5s ease-in-out infinite alternate;
}
.scn-wretched-alternative-chosen .figure-hester {
  position: absolute; bottom: 32%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a4e 0%, #1a102a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wr-bow 8s ease-in-out infinite;
}
.scn-wretched-alternative-chosen .shadow-bars {
  position: absolute; top: 0; left: 55%; width: 90px; height: 110px;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, rgba(0,0,0,0.3) 8px, rgba(0,0,0,0.3) 10px);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  opacity: 0.4;
  animation: wr-barmove 10s linear infinite;
}
.scn-wretched-alternative-chosen .dust-mote {
  position: absolute; top: 50%; left: 50%; width: 4px; height: 4px;
  background: #f0d080;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,208,128,0.3);
  animation: wr-dust 16s ease-in-out infinite;
}

@keyframes wr-wall-pulse {
  0% { opacity: 0.9; }
  50% { opacity: 0.6; }
  100% { opacity: 0.8; }
}
@keyframes wr-glow {
  0% { opacity: 0.3; box-shadow: 0 0 10px 2px #b09060; }
  50% { opacity: 0.7; box-shadow: 0 0 30px 6px #c8a870; }
  100% { opacity: 0.4; box-shadow: 0 0 15px 3px #b09060; }
}
@keyframes wr-bow {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes wr-barmove {
  0% { transform: translateX(0); }
  50% { transform: translateX(-4px); }
  100% { transform: translateX(2px); }
}
@keyframes wr-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.2; }
  50% { transform: translate(20px, -30px) scale(1.5); opacity: 0.8; }
  100% { transform: translate(5px, -10px) scale(0.5); opacity: 0.1; }
}

/* higher-point-climbed (hi) */
.scn-higher-point-climbed {
  background: linear-gradient(0deg, #1a1020 0%, #2a1a3e 50%, #1a1020 100%),
              radial-gradient(ellipse at 50% 80%, #3a204a 0%, transparent 70%);
}
.scn-higher-point-climbed .stair-background {
  position: absolute; bottom: 0; left: 0; right: 0; height: 100%;
  background: linear-gradient(180deg, #2a1a30 0%, #1a0818 100%);
  clip-path: polygon(0% 100%, 0% 10%, 100% 10%, 100% 100%);
  animation: hi-stair-slide 15s ease-in-out infinite;
}
.scn-higher-point-climbed .stair-tread {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 10%;
  background: repeating-linear-gradient(90deg, #3a2a44 0px, #3a2a44 80px, #2a1a30 80px, #2a1a30 160px);
  animation: hi-tread-move 8s linear infinite;
}
.scn-higher-point-climbed .railing-shadow {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 4px;
  background: linear-gradient(90deg, transparent, #4a3a5a 20%, #4a3a5a 80%, transparent);
  transform: skewY(-3deg);
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: hi-rail-sway 6s ease-in-out infinite alternate;
}
.scn-higher-point-climbed .figure-ascending {
  position: absolute; bottom: 35%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a5e 0%, #2a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hi-climb 4s ease-in-out infinite;
}
.scn-higher-point-climbed .figure-descending {
  position: absolute; bottom: 45%; left: 60%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a1028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hi-descend 5s ease-in-out infinite reverse;
}
.scn-higher-point-climbed .lamp-glow {
  position: absolute; top: 15%; right: 20%; width: 40px; height: 50px;
  background: radial-gradient(circle, #f0c060 0%, #c08840 50%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  box-shadow: 0 0 40px 10px #f0c06033, 0 0 80px 20px #f0c0601a;
  animation: hi-lamp 4s ease-in-out infinite alternate;
}
.scn-higher-point-climbed .lamp-pulse {
  position: absolute; top: 15%; right: 20%; width: 40px; height: 50px;
  background: transparent;
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  box-shadow: inset 0 0 20px rgba(240,192,96,0.3);
  animation: hi-pulse 2s ease-in-out infinite;
}

@keyframes hi-stair-slide {
  0% { transform: translateX(0); }
  50% { transform: translateX(-10px); }
  100% { transform: translateX(0); }
}
@keyframes hi-tread-move {
  0% { background-position: 0 0; }
  100% { background-position: -160px 0; }
}
@keyframes hi-rail-sway {
  0% { transform: skewY(-2deg); }
  50% { transform: skewY(1deg); }
  100% { transform: skewY(-2deg); }
}
@keyframes hi-climb {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hi-descend {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hi-lamp {
  0% { opacity: 0.5; box-shadow: 0 0 20px 5px #f0c06033; }
  50% { opacity: 1; box-shadow: 0 0 50px 12px #f0c06044; }
  100% { opacity: 0.7; box-shadow: 0 0 30px 8px #f0c06033; }
}
@keyframes hi-pulse {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.2); opacity: 0.1; }
  100% { transform: scale(1); opacity: 0.3; }
}

/* occasion-finding (oc) */
.scn-occasion-finding {
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 30%, #5a6a5a 60%, #3a4a3a 100%),
              radial-gradient(ellipse at 50% 0%, #6a7a6a 0%, transparent 70%);
}
.scn-occasion-finding .overcast-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 100%);
  animation: oc-sky 20s ease-in-out infinite alternate;
}
.scn-occasion-finding .path-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  clip-path: polygon(0% 100%, 0% 40%, 100% 20%, 100% 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-occasion-finding .figure-hester-pearl {
  position: absolute; bottom: 40%; left: 20%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oc-walk-stroll 10s ease-in-out infinite;
}
.scn-occasion-finding .figure-chillingworth {
  position: absolute; bottom: 36%; right: 25%; width: 28px; 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: oc-stoop 8s ease-in-out infinite;
}
.scn-occasion-finding .herb-basket {
  position: absolute; bottom: 34%; right: 32%; width: 18px; height: 20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-10deg);
  animation: oc-basket-sway 5s ease-in-out infinite;
}
.scn-occasion-finding .staff {
  position: absolute; bottom: 38%; right: 15%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform: rotate(8deg);
  transform-origin: bottom center;
  border-radius: 2px;
  animation: oc-staff-tap 3s ease-in-out infinite;
}
.scn-occasion-finding .searching-shadow {
  position: absolute; bottom: 34%; right: 20%; width: 30px; height: 20px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(6px);
  animation: oc-shadow-pulse 8s ease-in-out infinite;
}

@keyframes oc-sky {
  0% { opacity: 0.6; background-position: 0 0; }
  50% { opacity: 0.9; background-position: 0 10px; }
  100% { opacity: 0.7; background-position: 0 -5px; }
}
@keyframes oc-walk-stroll {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(10px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(20px) translateY(0) rotate(0deg); }
  75% { transform: translateX(10px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes oc-stoop {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes oc-basket-sway {
  0%, 100% { transform: rotate(-8deg); }
  50% { transform: rotate(4deg); }
}
@keyframes oc-staff-tap {
  0%, 100% { transform: rotate(6deg); }
  50% { transform: rotate(12deg); }
}
@keyframes oc-shadow-pulse {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.2); }
  100% { opacity: 0.1; transform: scale(1); }
}

/* pearl-play-shells (pe) */
.scn-pearl-play-shells {
  background: linear-gradient(180deg, #87c8e8 0%, #bfd8e0 30%, #8ab8c0 60%, #c8d8c0 100%),
              radial-gradient(ellipse at 30% 10%, #fff4d0 0%, transparent 60%);
}
.scn-pearl-play-shells .sun-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #b0e0f0 0%, #90c8d8 100%);
  animation: pe-sky-bright 12s ease-in-out infinite alternate;
}
.scn-pearl-play-shells .sandy-beach {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #e8d8b0 0%, #d0c090 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-pearl-play-shells .tide-pool {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #80c8d8 0%, #508090 100%);
  border-radius: 40% 40% 60% 60% / 50% 50% 50% 50%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: pe-pool-glint 5s ease-in-out infinite;
}
.scn-pearl-play-shells .pearl-figure {
  position: absolute; bottom: 35%; left: 45%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #e8d8c8 0%, #c8b0a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-hopping 3s ease-in-out infinite;
}
.scn-pearl-play-shells .shell-scatter {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 6px;
  background: linear-gradient(135deg, #f0d8c0 0%, #d0b090 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(30deg);
  box-shadow: 2px -2px 0 0 #e8c8a8, -3px 1px 0 0 #d0b898;
  animation: pe-shell-jitter 6s ease-in-out infinite;
}
.scn-pearl-play-shells .water-reflections {
  position: absolute; bottom: 38%; left: 30%; width: 50px; height: 40px;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 5px, rgba(255,255,255,0.15) 5px, rgba(255,255,255,0.15) 7px);
  transform: skewX(-10deg);
  opacity: 0.5;
  animation: pe-reflect 8s linear infinite;
}
.scn-pearl-play-shells .sun-ripple {
  position: absolute; top: 20%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe8a0 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pe-ripple-expand 4s ease-in-out infinite;
}

@keyframes pe-sky-bright {
  0% { opacity: 0.7; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 5px; }
  100% { opacity: 0.8; background-position: 0 -3px; }
}
@keyframes pe-pool-glint {
  0% { background: radial-gradient(ellipse at 30% 30%, #a0d8e8 0%, #6090a0 100%); }
  50% { background: radial-gradient(ellipse at 70% 40%, #c0e8f0 0%, #70a0b0 100%); }
  100% { background: radial-gradient(ellipse at 30% 30%, #a0d8e8 0%, #6090a0 100%); }
}
@keyframes pe-hopping {
  0% { transform: translateY(0) rotate(0deg); }
  15% { transform: translateY(-6px) rotate(-5deg); }
  30% { transform: translateY(0) rotate(0deg); }
  45% { transform: translateY(-4px) rotate(3deg); }
  60% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-5px) rotate(-4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pe-shell-jitter {
  0%, 100% { transform: rotate(25deg) translateX(0); }
  50% { transform: rotate(35deg) translateX(2px); }
}
@keyframes pe-reflect {
  0% { transform: translateX(0) skewX(-10deg); }
  50% { transform: translateX(10px) skewX(5deg); }
  100% { transform: translateX(0) skewX(-10deg); }
}
@keyframes pe-ripple-expand {
  0% { transform: scale(0.8); opacity: 0.3; }
  50% { transform: scale(1.2); opacity: 0.7; }
  100% { transform: scale(0.8); opacity: 0.3; }
}

/* Scene 1: plea-for-excuse */
.scn-plea-for-excuse {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 60%, #06060e 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 70%);
}
.scn-plea-for-excuse .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(0deg, #0a0a14 0%, #16162a 100%);
  animation: pe-floor 12s ease-in-out infinite alternate;
}
.scn-plea-for-excuse .wall-left {
  position: absolute;
  left: 0; top: 0; bottom: 30%;
  width: 40%;
  background: linear-gradient(135deg, #1e1e36 0%, #12122a 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.8);
  animation: pe-wall 15s ease-in-out infinite alternate;
}
.scn-plea-for-excuse .wall-right {
  position: absolute;
  right: 0; top: 0; bottom: 30%;
  width: 40%;
  background: linear-gradient(225deg, #1e1e36 0%, #12122a 100%);
  box-shadow: inset 8px 0 20px rgba(0,0,0,0.8);
  animation: pe-wall 15s ease-in-out infinite alternate-reverse;
}
.scn-plea-for-excuse .window {
  position: absolute;
  top: 18%; left: 50%;
  width: 80px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #4a5a7a 0%, #2a2a4a 60%, transparent 100%);
  border: 4px solid #0a0a14;
  border-radius: 4px;
  box-shadow: inset 0 0 30px 8px rgba(80,100,140,0.3);
  animation: pe-window 8s ease-in-out infinite alternate;
}
.scn-plea-for-excuse .figure {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 40px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pe-figure 6s ease-in-out infinite;
}
.scn-plea-for-excuse .shadow {
  position: absolute;
  bottom: 28%; left: 50%;
  width: 60px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.8) 0%, transparent 70%);
  animation: pe-shadow 6s ease-in-out infinite;
}
.scn-plea-for-excuse .dust {
  position: absolute;
  top: 10%; left: 10%;
  width: 4px; height: 4px;
  background: rgba(200,210,220,0.15);
  border-radius: 50%;
  filter: blur(2px);
  animation: pe-dust 20s linear infinite;
}
.scn-plea-for-excuse .vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
  animation: pe-vignette 10s ease-in-out infinite alternate;
}

@keyframes pe-floor {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pe-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes pe-window {
  0% { box-shadow: inset 0 0 20px 4px rgba(80,100,140,0.2); }
  50% { box-shadow: inset 0 0 40px 12px rgba(80,100,140,0.5); }
  100% { box-shadow: inset 0 0 25px 6px rgba(80,100,140,0.3); }
}
@keyframes pe-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-48%) translateY(-3px) rotate(1deg); }
  50% { transform: translateX(-52%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes pe-shadow {
  0%,100% { transform: translateX(-50%) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(-50%) scaleX(0.8); opacity: 0.4; }
}
@keyframes pe-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  25% { opacity: 0.3; }
  100% { transform: translate(100vw, -50px) scale(0.5); opacity: 0; }
}
@keyframes pe-vignette {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}

/* Scene 2: breach-never-repaired */
.scn-breach-never-repaired {
  background: 
    linear-gradient(180deg, #161623 0%, #0e0e18 40%, #05050a 100%),
    radial-gradient(ellipse at 50% 60%, #1a1a30 0%, transparent 80%);
}
.scn-breach-never-repaired .sky {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #1e1e3a 0%, transparent 100%);
  animation: bn-sky 20s ease-in-out infinite alternate;
}
.scn-breach-never-repaired .ground {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 60%;
  background: linear-gradient(0deg, #0a0a10 0%, #12121e 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: bn-ground 15s ease-in-out infinite alternate;
}
.scn-breach-never-repaired .wall {
  position: absolute;
  left: 50%; bottom: 35%;
  width: 150px; height: 200px;
  transform: translateX(-50%);
  background: 
    linear-gradient(180deg, #2a2a40 0%, #1a1a2a 50%, #141428 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 10px 30px rgba(0,0,0,0.8), inset 0 0 40px rgba(0,0,0,0.5);
  animation: bn-wall 12s ease-in-out infinite alternate;
}
.scn-breach-never-repaired .crack {
  position: absolute;
  left: 50%; bottom: 35%;
  width: 130px; height: 180px;
  transform: translateX(-50%);
  background: 
    linear-gradient(135deg, transparent 30%, #0a0a14 30%, #0a0a14 32%, transparent 32%),
    linear-gradient(45deg, transparent 48%, #0a0a14 48%, #0a0a14 50%, transparent 50%),
    linear-gradient(170deg, transparent 65%, #0a0a14 65%, #0a0a14 67%, transparent 67%);
  background-size: 100% 100%;
  animation: bn-crack 8s ease-in-out infinite alternate;
}
.scn-breach-never-repaired .debris {
  position: absolute;
  bottom: 33%; left: 50%;
  width: 20px; height: 10px;
  transform: translateX(-50%) rotate(15deg);
  background: #1a1a2a;
  border-radius: 4px;
  box-shadow: 0 -8px 0 #121222, 12px -12px 0 #0a0a1a;
  animation: bn-debris 10s ease-in-out infinite;
}
.scn-breach-never-repaired .figure {
  position: absolute;
  bottom: 12%; left: 45%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #202038 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scale(0.8);
  animation: bn-figure 6s ease-in-out infinite;
}
.scn-breach-never-repaired .mist {
  position: absolute;
  bottom: 10%; left: 0; right: 0;
  height: 40%;
  background: radial-gradient(ellipse at 30% 80%, rgba(100,120,140,0.08) 0%, transparent 70%),
              radial-gradient(ellipse at 70% 90%, rgba(100,120,140,0.06) 0%, transparent 70%);
  filter: blur(12px);
  animation: bn-mist 30s ease-in-out infinite alternate;
}

@keyframes bn-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes bn-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes bn-wall {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.03); }
  100% { transform: translateX(-50%) scaleY(0.97); }
}
@keyframes bn-crack {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes bn-debris {
  0% { transform: translateX(-50%) rotate(15deg) translateY(0); }
  25% { transform: translateX(-50%) rotate(20deg) translateY(-3px); }
  50% { transform: translateX(-50%) rotate(10deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(5deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(15deg) translateY(0); }
}
@keyframes bn-figure {
  0% { transform: scale(0.8) translateY(0); }
  25% { transform: scale(0.78) translateY(-4px); }
  50% { transform: scale(0.82) translateY(0); }
  75% { transform: scale(0.8) translateY(-2px); }
  100% { transform: scale(0.8) translateY(0); }
}
@keyframes bn-mist {
  0% { transform: translateX(0); opacity: 0.2; }
  50% { transform: translateX(20px); opacity: 0.5; }
  100% { transform: translateX(-10px); opacity: 0.3; }
}

/* Scene 3: struggle-unsaid */
.scn-struggle-unsaid {
  background: 
    linear-gradient(180deg, #1a1a28 0%, #0f0f1a 50%, #080810 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a40 0%, transparent 70%);
}
.scn-struggle-unsaid .bg {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(20,20,35,0.1) 40px, rgba(20,20,35,0.1) 42px);
  animation: su-bg 25s linear infinite;
}
.scn-struggle-unsaid .path {
  position: absolute;
  bottom: 20%; left: 10%; right: 10%;
  height: 15%;
  background: linear-gradient(0deg, #0a0a14 0%, #14142a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
  animation: su-path 14s ease-in-out infinite alternate;
}
.scn-struggle-unsaid .door {
  position: absolute;
  left: 50%; bottom: 20%;
  width: 60px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 4px 0 12px rgba(0,0,0,0.6);
  transform-origin: left center;
  animation: su-door 6s ease-in-out infinite alternate;
}
.scn-struggle-unsaid .clergy {
  position: absolute;
  bottom: 20%; left: 40%;
  width: 35px; height: 90px;
  background: linear-gradient(180deg, #1e1e36 0%, #0a0a1a 100%);
  border-radius: 35% 35% 30% 30% / 45% 45% 30% 30%;
  transform: scale(0.9);
  animation: su-clergy 5s ease-in-out infinite;
}
.scn-struggle-unsaid .hesitation {
  position: absolute;
  bottom: 28%; left: 50%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,210,220,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: su-hesitation 4s ease-in-out infinite;
}
.scn-struggle-unsaid .light-shaft {
  position: absolute;
  top: 5%; left: 50%;
  width: 40px; height: 80%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(180,200,220,0.08) 0%, transparent 80%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: su-shaft 10s ease-in-out infinite alternate;
}
.scn-struggle-unsaid .leaves {
  position: absolute;
  top: 10%; left: 20%;
  width: 8px; height: 12px;
  background: #1a2a1a;
  border-radius: 50% 0 50% 0;
  transform: rotate(30deg);
  animation: su-leaves 20s linear infinite;
}

@keyframes su-bg {
  0% { background-position: 0 0; }
  100% { background-position: 42px 0; }
}
@keyframes su-path {
  0% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
  100% { transform: translateY(0); }
}
@keyframes su-door {
  0% { transform: translateX(-50%) rotateY(0deg); }
  50% { transform: translateX(-50%) rotateY(-20deg); }
  100% { transform: translateX(-50%) rotateY(0deg); }
}
@keyframes su-clergy {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes su-hesitation {
  0% { transform: scale(0.5); opacity: 0.4; }
  50% { transform: scale(1.2); opacity: 0.8; }
  100% { transform: scale(0.5); opacity: 0.4; }
}
@keyframes su-shaft {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}
@keyframes su-leaves {
  0% { transform: translate(0, 0) rotate(30deg); opacity: 0; }
  10% { opacity: 0.3; }
  100% { transform: translate(120px, -60px) rotate(120deg); opacity: 0; }
}

/* Scene 4: decision-made */
.scn-decision-made {
  background: 
    linear-gradient(180deg, #141428 0%, #0e0e1e 50%, #06060e 100%),
    radial-gradient(ellipse at 60% 70%, #2a2a44 0%, transparent 70%);
}
.scn-decision-made .bg {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(45deg, transparent 0px, transparent 30px, rgba(30,30,50,0.08) 30px, rgba(30,30,50,0.08) 32px);
  animation: dm-bg 20s linear infinite;
}
.scn-decision-made .table {
  position: absolute;
  bottom: 10%; left: 30%; right: 30%;
  height: 20%;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e1e 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 20px rgba(0,0,0,0.8);
  animation: dm-table 10s ease-in-out infinite alternate;
}
.scn-decision-made .lamp {
  position: absolute;
  bottom: 28%; left: 50%;
  width: 20px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 0 40px 12px rgba(200,160,120,0.5), 0 0 80px 24px rgba(200,160,120,0.2);
  animation: dm-lamp 4s ease-in-out infinite alternate;
}
.scn-decision-made .hand {
  position: absolute;
  bottom: 28%; left: 45%;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: dm-hand 5s ease-in-out infinite;
}
.scn-decision-made .face {
  position: absolute;
  bottom: 32%; left: 55%;
  width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scale(0.8);
  filter: blur(1px);
  animation: dm-face 6s ease-in-out infinite alternate;
}
.scn-decision-made .glow {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 60px; height: 60px;
  transform: translate(-50%, 20%);
  background: radial-gradient(circle, rgba(220,180,130,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: dm-glow 4s ease-in-out infinite alternate;
}
.scn-decision-made .spark {
  position: absolute;
  top: 40%; left: 50%;
  width: 4px; height: 4px;
  background: #ffe0b0;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffe0b0;
  animation: dm-spark 3s ease-in-out infinite;
}
.scn-decision-made .shadow {
  position: absolute;
  bottom: 8%; left: 30%; right: 40%;
  height: 8%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.4) 50%, transparent);
  filter: blur(6px);
  animation: dm-shadow 8s ease-in-out infinite alternate;
}

@keyframes dm-bg {
  0% { background-position: 0 0; }
  100% { background-position: 32px 0; }
}
@keyframes dm-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.95); }
}
@keyframes dm-lamp {
  0% { box-shadow: 0 0 30px 8px rgba(200,160,120,0.4); }
  50% { box-shadow: 0 0 60px 20px rgba(200,160,120,0.7); }
  100% { box-shadow: 0 0 40px 12px rgba(200,160,120,0.5); }
}
@keyframes dm-hand {
  0% { transform: rotate(10deg) translateY(0); }
  25% { transform: rotate(15deg) translateY(-4px); }
  50% { transform: rotate(8deg) translateY(0); }
  75% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes dm-face {
  0% { transform: scale(0.8) translateY(0); }
  50% { transform: scale(0.82) translateY(-3px); }
  100% { transform: scale(0.78) translateY(0); }
}
@keyframes dm-glow {
  0% { opacity: 0.4; transform: translate(-50%, 20%) scale(1); }
  50% { opacity: 0.8; transform: translate(-50%, 20%) scale(1.2); }
  100% { opacity: 0.5; transform: translate(-50%, 20%) scale(1); }
}
@keyframes dm-spark {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  20% { opacity: 1; }
  100% { transform: translate(20px, -40px) scale(0.3); opacity: 0; }
}
@keyframes dm-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

.scn-surveyor-of-revenue {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e05 100%),
    radial-gradient(ellipse at 30% 60%, #5a3a2a 0%, transparent 70%);
}
.scn-surveyor-of-revenue .wall { position:absolute; inset:0 0 45% 0; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 30%, #3a2a1a 100%); }
.scn-surveyor-of-revenue .floor { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-surveyor-of-revenue .window-shut { position:absolute; top:10%; left:15%; width:90px; height:120px; background: linear-gradient(180deg, #5a3a0a 0%, #3a2a0a 100%); border-radius:4px; box-shadow: inset 0 0 0 4px #2a1a0a; }
.scn-surveyor-of-revenue .desk { position:absolute; bottom:20%; left:30%; width:140px; height:60px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:6px 6px 0 0; transform: perspective(400px) rotateX(10deg); box-shadow: 0 8px 12px rgba(0,0,0,.7); }
.scn-surveyor-of-revenue .figure-sitting { position:absolute; bottom:30%; left:38%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: srv-figure 6s ease-in-out infinite;
}
.scn-surveyor-of-revenue .quill-holder { position:absolute; bottom:42%; left:44%; width:6px; height:20px; background: #6a4a2a; transform: rotate(15deg); border-radius:2px; animation: srv-quill 8s ease-in-out infinite alternate; }
.scn-surveyor-of-revenue .inkpot { position:absolute; bottom:38%; left:46%; width:12px; height:14px; background: #0a0a1a; border-radius:50% 50% 30% 30%; box-shadow: inset 0 -2px 0 #3a2a1a; }
.scn-surveyor-of-revenue .candle-lamp { position:absolute; top:30%; left:22%; width:14px; height:30px; background: linear-gradient(180deg, #d0a050 0%, #a07030 50%, #6a4020 100%); border-radius:10px 10px 4px 4px; box-shadow: 0 0 40px 10px rgba(200,150,60,.4); animation: srv-candle 4s ease-in-out infinite alternate; }
.scn-surveyor-of-revenue .motes { position:absolute; top:20%; left:50%; width:4px; height:4px; background: rgba(200,180,100,.3); border-radius:50%; box-shadow: -30px -10px 0 rgba(200,180,100,.2), 40px 20px 0 rgba(200,180,100,.15); filter: blur(1px); animation: srv-motes 12s linear infinite; }
@keyframes srv-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes srv-quill { 0% { transform: rotate(15deg); } 100% { transform: rotate(25deg); } }
@keyframes srv-candle { 0% { box-shadow: 0 0 30px 8px rgba(200,150,60,.3); } 50% { box-shadow: 0 0 50px 15px rgba(220,170,70,.5); } 100% { box-shadow: 0 0 35px 10px rgba(200,150,60,.35); } }
@keyframes srv-motes { 0% { transform: translate(0, 0) scale(1); opacity: .6; } 50% { transform: translate(20px, -15px) scale(1.2); opacity: .3; } 100% { transform: translate(40px, -30px) scale(.8); opacity: .1; } }

.scn-lesson-of-literary-fame {
  background: 
    linear-gradient(90deg, #2a1a0a 0%, #4a2a1a 30%, #3a1a0a 70%, #1a0a00 100%),
    radial-gradient(ellipse at 70% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-lesson-of-literary-fame .bg-arch { position:absolute; top:0; left:20%; width:60%; height:100%; background: radial-gradient(ellipse at 50% 20%, #5a3a2a 0%, #2a1a0a 70%); border-radius: 0 0 40% 40% / 0 0 60% 60%; }
.scn-lesson-of-literary-fame .floor-2 { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); }
.scn-lesson-of-literary-fame .pedestal { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:80px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,.6); }
.scn-lesson-of-literary-fame .book-pile { position:absolute; bottom:35%; left:38%; width:40px; height:20px; background: linear-gradient(90deg, #5a4a3a 0%, #7a5a4a 50%, #5a4a3a 100%); border-radius:2px; transform: skewY(-5deg); box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-lesson-of-literary-fame .figure-walk { position:absolute; bottom:25%; 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: lsn-walk 8s ease-in-out infinite;
}
.scn-lesson-of-literary-fame .shadow-elongate { position:absolute; bottom:22%; left:28%; width:30px; height:60px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(6px); transform: rotate(20deg); animation: lsn-shadow 8s ease-in-out infinite; }
.scn-lesson-of-literary-fame .door-fade { position:absolute; top:5%; right:10%; width:70px; height:120px; background: linear-gradient(90deg, #3a2a1a 0%, #1a0a00 100%); border:4px solid #2a1a0a; border-radius:4px; opacity:.7; }
.scn-lesson-of-literary-fame .lantern-float { position:absolute; top:15%; left:25%; width:20px; height:24px; background: linear-gradient(180deg, #c08040 0%, #a06020 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 40px 10px rgba(192,128,64,.3); animation: lsn-lantern 6s ease-in-out infinite alternate; }
.scn-lesson-of-literary-fame .dust-specks { position:absolute; top:30%; left:40%; width:6px; height:6px; background: rgba(200,180,100,.2); border-radius:50%; box-shadow: 20px -10px 0 rgba(200,180,100,.15), -10px 20px 0 rgba(200,180,100,.1); filter: blur(2px); animation: lsn-dust 25s linear infinite; }
@keyframes lsn-walk { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(15px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(30px) translateY(0) rotate(0); } 75% { transform: translateX(45px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(60px) translateY(0) rotate(0); } }
@keyframes lsn-shadow { 0% { transform: rotate(20deg) scaleX(1); opacity: .4; } 50% { transform: rotate(25deg) scaleX(.8); opacity: .2; } 100% { transform: rotate(20deg) scaleX(1); opacity: .4; } }
@keyframes lsn-lantern { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-8px) rotate(5deg); } 100% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes lsn-dust { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(30px, -20px) scale(1.5); opacity: .3; } 100% { transform: translate(60px, -40px) scale(.5); opacity: 0; } }

.scn-literary-talk-with-navalofficer {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 40%, #3a1a0a 80%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 60%);
}
.scn-literary-talk-with-navalofficer .room-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 30%, #4a2a1a 70%, #2a1a0a 100%); }
.scn-literary-talk-with-navalofficer .table { position:absolute; bottom:22%; left:20%; width:60%; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 8px 12px rgba(0,0,0,.7); transform: perspective(300px) rotateX(5deg); }
.scn-literary-talk-with-navalofficer .globe { position:absolute; bottom:35%; left:48%; width:28px; height:28px; background: radial-gradient(circle at 40% 35%, #7a5a3a 0%, #4a3a2a 100%); border-radius:50%; box-shadow: inset -4px -4px 6px rgba(0,0,0,.5), 0 4px 6px rgba(0,0,0,.3); transform: rotate(20deg); animation: talk-globe 30s linear infinite; }
.scn-literary-talk-with-navalofficer .naval-hat { position:absolute; bottom:28%; left:62%; width:30px; height:18px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; transform: rotate(-10deg); }
.scn-literary-talk-with-navalofficer .figure-left { position:absolute; bottom:25%; left:25%; width:22px; height:48px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: talk-fig-left 5s ease-in-out infinite alternate;
}
.scn-literary-talk-with-navalofficer .figure-right { position:absolute; bottom:25%; right:25%; width:22px; height:48px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: talk-fig-right 5s ease-in-out infinite alternate;
}
.scn-literary-talk-with-navalofficer .book-stack { position:absolute; bottom:30%; left:40%; width:30px; height:12px; background: linear-gradient(90deg, #7a5a4a 0%, #9a7a5a 50%, #7a5a4a 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,.5); transform: skewX(-5deg); }
.scn-literary-talk-with-navalofficer .chandelier { position:absolute; top:5%; left:45%; width:60px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 40% 40%; box-shadow: 0 0 30px 8px rgba(200,150,60,.2); }
.scn-literary-talk-with-navalofficer .wine-glass { position:absolute; bottom:30%; left:55%; width:10px; height:18px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); border-radius:0 0 30% 30%; transform: rotate(10deg); animation: talk-wine 8s ease-in-out infinite; }
@keyframes talk-globe { 0% { transform: rotate(20deg); } 100% { transform: rotate(380deg); } }
@keyframes talk-fig-left { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes talk-fig-right { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes talk-wine { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-4px); } 100% { transform: rotate(10deg) translateY(0); } }

.scn-name-on-pepper-bags {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 70%, #1a0a00 100%),
    radial-gradient(ellipse at 40% 70%, #5a3a2a 0%, transparent 60%);
}
.scn-name-on-pepper-bags .warehouse-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 20%, #4a2a1a 80%, #2a1a0a 100%); }
.scn-name-on-pepper-bags .floor-planks { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-name-on-pepper-bags .pepper-bag-1 { position:absolute; bottom:25%; left:20%; width:50px; height:40px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-5deg); box-shadow: 0 6px 8px rgba(0,0,0,.5); animation: pepper-sway 7s ease-in-out infinite; }
.scn-name-on-pepper-bags .pepper-bag-2 { position:absolute; bottom:20%; left:35%; width:55px; height:45px; background: linear-gradient(180deg, #9a7a4a 0%, #7a5a3a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(8deg); box-shadow: 0 6px 8px rgba(0,0,0,.5); animation: pepper-sway 8s ease-in-out infinite -2s; }
.scn-name-on-pepper-bags .pepper-bag-3 { position:absolute; bottom:30%; left:50%; width:48px; height:38px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a2a 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-10deg); box-shadow: 0 6px 8px rgba(0,0,0,.5); animation: pepper-sway 9s ease-in-out infinite -4s; }
.scn-name-on-pepper-bags .stencil-spray { position:absolute; bottom:35%; left:30%; width:30px; height:16px; background: #1a0a00; clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); opacity:.6; animation: stencil-bob 5s ease-in-out infinite; }
.scn-name-on-pepper-bags .figure-laugh { position:absolute; bottom:28%; left:65%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: laugh-body 3s ease-in-out infinite;
}
.scn-name-on-pepper-bags .marker-box { position:absolute; bottom:35%; left:58%; width:20px; height:14px; background: #5a3a2a; border-radius:4px; box-shadow: inset 0 0 0 2px #3a2a1a; transform: rotate(15deg); animation: marker-flick 4s ease-in-out infinite alternate; }
.scn-name-on-pepper-bags .lamp-overhead { position:absolute; top:5%; left:35%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 30%, #c08040 0%, #a06020 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 60px 20px rgba(192,128,64,.3); animation: lamp-glow 6s ease-in-out infinite alternate; }
@keyframes pepper-sway { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes stencil-bob { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes laugh-body { 0% { transform: translateY(0) rotate(0); } 20% { transform: translateY(-2px) rotate(-5deg); } 40% { transform: translateY(-1px) rotate(5deg); } 60% { transform: translateY(-2px) rotate(-3deg); } 80% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes marker-flick { 0% { transform: rotate(15deg) scale(1); } 100% { transform: rotate(25deg) scale(0.9); } }
@keyframes lamp-glow { 0% { box-shadow: 0 0 40px 10px rgba(192,128,64,.2); opacity: .8; } 50% { box-shadow: 0 0 80px 25px rgba(220,160,80,.5); opacity: 1; } 100% { box-shadow: 0 0 50px 15px rgba(192,128,64,.3); opacity: .9; } }

.scn-forest-playmate {
  background: linear-gradient(180deg, #718c6e 0%, #4d6b4a 60%, #2e462b 100%), 
              radial-gradient(ellipse at 50% 10%, #a8c4a4 0%, transparent 60%);
}
.scn-forest-playmate .fp-bg {
  position:absolute; inset:0; background: inherit; opacity:0.3; animation: fp-bg 20s ease-in-out infinite alternate;
}
.scn-forest-playmate .fp-ground {
  position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a3d2e 0%, #2f2519 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 4px 15px rgba(0,0,0,0.3); animation: fp-ground 15s ease-in-out infinite;
}
.scn-forest-playmate .fp-leaves {
  position:absolute; bottom:22%; left:10%; right:10%; height:10%; background: linear-gradient(90deg, #5a6b3d 0%, #4e5c32 50%, #5a6b3d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(2px); opacity:0.7; animation: fp-leaves 12s ease-in-out infinite;
}
.scn-forest-playmate .fp-berries {
  position:absolute; bottom:20%; left:30%; width:8px; height:8px; background: radial-gradient(circle, #b45a3a 0%, #8c4228 70%); border-radius:50%; box-shadow: 15px -5px 0 #b45a3a, -10px 10px 0 #9e4a32, 20px 15px 0 #b45a3a; animation: fp-berries 6s ease-in-out infinite alternate;
}
.scn-forest-playmate .fp-child {
  position:absolute; bottom:25%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #7a6b5e 0%, #5c4f44 100%); border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fp-child 8s ease-in-out infinite;
}
.scn-forest-playmate .fp-tree {
  position:absolute; bottom:20%; right:10%; width:30px; height:60%; background: linear-gradient(180deg, #5c4a3a 0%, #3a2d22 100%); border-radius: 40% 60% 10% 10% / 80% 80% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: fp-tree 25s ease-in-out infinite;
}
@keyframes fp-bg { 0% { opacity:0.25 } 50% { opacity:0.35 } 100% { opacity:0.25 } }
@keyframes fp-ground { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(0.98) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes fp-leaves { 0% { opacity:0.6; transform: rotate(0deg) } 50% { opacity:0.75; transform: rotate(1deg) } 100% { opacity:0.6; transform: rotate(0deg) } }
@keyframes fp-berries { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes fp-child { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(9px) rotate(2deg) } 100% { transform: translateX(12px) rotate(-1deg) } }
@keyframes fp-tree { 0% { transform: rotate(-0.5deg) } 50% { transform: rotate(0.5deg) } 100% { transform: rotate(-0.5deg) } }

.scn-forest-creatures-gentle {
  background: linear-gradient(180deg, #7c8f7a 0%, #4e664b 40%, #2f422d 100%), 
              radial-gradient(ellipse at 30% 20%, #9bb198 0%, transparent 50%);
}
.scn-forest-creatures-gentle .fcg-bg {
  position:absolute; inset:0; background: inherit; opacity:0.25; animation: fcg-bg 18s ease-in-out infinite alternate;
}
.scn-forest-creatures-gentle .fcg-trunk {
  position:absolute; bottom:0; left:20%; width:16px; height:80%; background: linear-gradient(180deg, #6b5a4e 0%, #4a3d34 100%); border-radius: 30% 30% 10% 10% / 80% 80% 10% 10%; box-shadow: 2px 0 6px rgba(0,0,0,0.3); animation: fcg-trunk 30s ease-in-out infinite;
}
.scn-forest-creatures-gentle .fcg-branch {
  position:absolute; bottom:50%; left:20%; width:80px; height:8px; background: linear-gradient(180deg, #6b5a4e 0%, #4a3d34 100%); border-radius: 50% 40% 40% 50% / 60% 60% 40% 40%; transform-origin: left center; animation: fcg-branch 22s ease-in-out infinite;
}
.scn-forest-creatures-gentle .fcg-pigeon {
  position:absolute; bottom:55%; left:45%; width:14px; height:10px; background: radial-gradient(ellipse at 30% 50%, #9fa8a0 0%, #717a70 100%); border-radius: 50% 40% 30% 50% / 70% 60% 40% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: fcg-pigeon 5s ease-in-out infinite;
}
.scn-forest-creatures-gentle .fcg-squirrel {
  position:absolute; bottom:45%; left:50%; width:10px; height:12px; background: radial-gradient(ellipse at 40% 30%, #a0845c 0%, #7a6442 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fcg-squirrel 4s ease-in-out infinite;
}
.scn-forest-creatures-gentle .fcg-leaf.cluster {
  position:absolute; bottom:48%; left:30%; width:40px; height:20px; background: radial-gradient(ellipse, #5e7a4b 0%, #3e5430 100%); border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%; filter: blur(1px); animation: fcg-leaf-c 8s ease-in-out infinite alternate;
}
.scn-forest-creatures-gentle .fcg-leaf.single {
  position:absolute; bottom:52%; left:35%; width:12px; height:6px; background: #6f8c5a; border-radius: 50% 50% 40% 60%; transform: rotate(20deg); animation: fcg-leaf-s 6s ease-in-out infinite;
}
@keyframes fcg-bg { 0% { opacity:0.2 } 50% { opacity:0.3 } 100% { opacity:0.2 } }
@keyframes fcg-trunk { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } 100% { transform: scaleX(1) } }
@keyframes fcg-branch { 0% { transform: rotate(-1deg) scaleX(1) } 50% { transform: rotate(1deg) scaleX(0.98) } 100% { transform: rotate(-1deg) scaleX(1) } }
@keyframes fcg-pigeon { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fcg-squirrel { 0% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-3px) rotate(-3deg) } 40% { transform: translateY(0) rotate(2deg) } 60% { transform: translateY(-2px) rotate(-1deg) } 80% { transform: translateY(0) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fcg-leaf-c { 0% { opacity:0.5; transform: scale(0.95) } 100% { opacity:0.7; transform: scale(1.05) } }
@keyframes fcg-leaf-s { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(15deg) } }

.scn-fox-and-wolf {
  background: linear-gradient(180deg, #6e826b 0%, #3c5239 50%, #1f2e1c 100%), 
              radial-gradient(ellipse at 60% 40%, #7f957c 0%, transparent 70%);
}
.scn-fox-and-wolf .fw-bg {
  position:absolute; inset:0; background: inherit; opacity:0.3; animation: fw-bg 15s ease-in-out infinite alternate;
}
.scn-fox-and-wolf .fw-bush {
  position:absolute; bottom:20%; left:10%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 100%, #4a5e3f 0%, #2d3b25 100%); border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: fw-bush 12s ease-in-out infinite;
}
.scn-fox-and-wolf .fw-fox {
  position:absolute; bottom:25%; left:30%; width:26px; height:16px; background: radial-gradient(ellipse at 60% 40%, #b0805c 0%, #8c6444 100%); border-radius: 50% 50% 30% 50% / 80% 70% 40% 50%; transform-origin: bottom center; animation: fw-fox 7s ease-in-out infinite;
}
.scn-fox-and-wolf .fw-wolf {
  position:absolute; bottom:25%; right:25%; width:30px; height:18px; background: radial-gradient(ellipse at 50% 40%, #7a7e7a 0%, #5c605c 100%); border-radius: 50% 50% 30% 50% / 80% 70% 40% 50%; transform-origin: bottom center; animation: fw-wolf 9s ease-in-out infinite;
}
.scn-fox-and-wolf .fw-child {
  position:absolute; bottom:20%; left:55%; width:18px; height:36px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5c4e 100%); border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%; animation: fw-child 6s ease-in-out infinite;
}
.scn-fox-and-wolf .fw-shadow {
  position:absolute; bottom:15%; left:25%; right:25%; height:4px; background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 70%); filter: blur(2px); animation: fw-shadow 10s ease-in-out infinite;
}
@keyframes fw-bg { 0% { opacity:0.25 } 50% { opacity:0.35 } 100% { opacity:0.25 } }
@keyframes fw-bush { 0% { transform: scale(1) } 50% { transform: scale(0.98) } 100% { transform: scale(1) } }
@keyframes fw-fox { 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 fw-wolf { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(-4px) rotate(1deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes fw-child { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fw-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

.scn-gentler-than-streets {
  background: linear-gradient(180deg, #c8d4c2 0%, #a8b8a2 40%, #889a82 100%), 
              radial-gradient(ellipse at 50% 80%, #d8e2d4 0%, transparent 50%);
}
.scn-gentler-than-streets .gts-bg {
  position:absolute; inset:0; background: inherit; opacity:0.3; animation: gts-bg 20s ease-in-out infinite alternate;
}
.scn-gentler-than-streets .gts-meadow {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a8a72 0%, #5c6a54 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,0.1); animation: gts-meadow 12s ease-in-out infinite;
}
.scn-gentler-than-streets .gts-flowers {
  position:absolute; bottom:28%; left:10%; right:10%; height:15%; background: radial-gradient(circle at 20% 50%, #d4b8c0 0%, transparent 40%), radial-gradient(circle at 50% 70%, #f0d8d8 0%, transparent 30%), radial-gradient(circle at 80% 40%, #c8a8b0 0%, transparent 50%); filter: blur(1px); animation: gts-flowers 8s ease-in-out infinite alternate;
}
.scn-gentler-than-streets .gts-child {
  position:absolute; bottom:22%; left:45%; width:22px; height:44px; background: linear-gradient(180deg, #a09080 0%, #807060 100%); border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gts-child 6s ease-in-out infinite;
}
.scn-gentler-than-streets .gts-petal {
  position:absolute; bottom:30%; left:35%; width:6px; height:6px; background: #f0d0c8; border-radius: 50% 0 50% 0; opacity:0.8; animation: gts-petal 10s ease-in-out infinite;
}
.scn-gentler-than-streets .gts-light {
  position:absolute; bottom:15%; left:40%; right:40%; height:10%; background: radial-gradient(ellipse, rgba(255,240,220,0.15) 0%, transparent 70%); animation: gts-light 18s ease-in-out infinite alternate;
}
@keyframes gts-bg { 0% { opacity:0.25 } 50% { opacity:0.35 } 100% { opacity:0.25 } }
@keyframes gts-meadow { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes gts-flowers { 0% { opacity:0.6; transform: scale(0.98) } 50% { opacity:0.8; transform: scale(1.02) } 100% { opacity:0.6; transform: scale(0.98) } }
@keyframes gts-child { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes gts-petal { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(15deg) translateY(-3px) } 50% { transform: rotate(30deg) translateY(0) } 75% { transform: rotate(15deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes gts-light { 0% { opacity:0.1 } 50% { opacity:0.2 } 100% { opacity:0.1 } }

.scn-moral-be-true {
  background:
    linear-gradient(135deg, #3a4a6a 0%, #8a9aba 40%, #c8d8e0 70%, #f0e8c0 100%),
    radial-gradient(ellipse at 50% 30%, #f5e6b0 0%, transparent 60%);
}
.scn-moral-be-true .light-beam {
  position: absolute;
  top: -10%;
  left: 35%;
  width: 30%;
  height: 130%;
  background: linear-gradient(180deg, rgba(255, 240, 180, 0.6) 0%, rgba(255, 240, 180, 0.1) 70%, transparent 100%);
  transform: skewX(-12deg);
  filter: blur(8px);
  opacity: 0.7;
  animation: mbt-beam 6s ease-in-out infinite alternate;
}
.scn-moral-be-true .figure {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 30px;
  height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2e 50%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  box-shadow: inset 0 2px 6px rgba(255, 255, 200, 0.4);
  animation: mbt-figure 5s ease-in-out infinite;
}
.scn-moral-be-true .shadow {
  position: absolute;
  bottom: 15%;
  left: 40%;
  width: 80px;
  height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  transform: skewX(-20deg);
  animation: mbt-shadow 5s ease-in-out infinite alternate;
}
.scn-moral-be-true .window {
  position: absolute;
  top: 10%;
  left: 15%;
  width: 80px;
  height: 120px;
  background: linear-gradient(180deg, #1a2a3a 0%, #3a4a5a 100%);
  border: 4px solid #4a5a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200, 180, 100, 0.3);
}
.scn-moral-be-true .floor {
  position: absolute;
  bottom: 0;
  height: 20%;
  left: 0;
  right: 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-moral-be-true .dust.motes {
  position: absolute;
  top: 30%;
  left: 20%;
  width: 60%;
  height: 40%;
  background: radial-gradient(circle at 30% 40%, rgba(255,240,200,0.1) 0%, transparent 40%);
  filter: blur(4px);
  animation: mbt-dust 12s ease-in-out infinite;
}
@keyframes mbt-beam {
  0% { opacity: 0.5; transform: skewX(-12deg) scaleY(1); }
  50% { opacity: 0.8; transform: skewX(-8deg) scaleY(1.05); }
  100% { opacity: 0.6; transform: skewX(-12deg) scaleY(0.95); }
}
@keyframes mbt-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-52%) rotate(-2deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(-4px); }
  75% { transform: translateX(-48%) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes mbt-shadow {
  0% { transform: skewX(-20deg) scaleX(1); opacity: 0.6; }
  50% { transform: skewX(-15deg) scaleX(1.2); opacity: 0.8; }
  100% { transform: skewX(-20deg) scaleX(0.9); opacity: 0.5; }
}
@keyframes mbt-dust {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-5px); }
  100% { opacity: 0.2; transform: translateY(3px); }
}

.scn-chillingworth-withers {
  background:
    linear-gradient(180deg, #4a6a8a 0%, #8aa0b0 30%, #c8b080 60%, #e8d8c0 100%),
    radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 70%);
}
.scn-chillingworth-withers .sun {
  position: absolute;
  top: 5%;
  left: 45%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, #ffa000 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,200,100,0.4);
  animation: cw-sun 8s ease-in-out infinite alternate;
}
.scn-chillingworth-withers .figure-withering {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 20px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 50%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  animation: cw-wither 6s ease-in-out infinite;
}
.scn-chillingworth-withers .weed {
  position: absolute;
  bottom: 20%;
  left: 38%;
  width: 8px;
  height: 40px;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: cw-weed 4s ease-in-out infinite;
}
.scn-chillingworth-withers .ground {
  position: absolute;
  bottom: 0;
  height: 25%;
  left: 0;
  right: 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-chillingworth-withers .dust-devil {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 40px;
  height: 80px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.3) 0%, transparent 70%);
  filter: blur(5px);
  animation: cw-dust 10s linear infinite;
}
.scn-chillingworth-withers .halo {
  position: absolute;
  top: 10%;
  left: 40%;
  width: 100px;
  height: 100px;
  background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 60%);
  filter: blur(10px);
  animation: cw-halo 7s ease-in-out infinite alternate;
}
@keyframes cw-sun {
  0% { transform: scale(1); box-shadow: 0 0 80px 30px rgba(255,200,100,0.4); }
  50% { transform: scale(1.08); box-shadow: 0 0 100px 40px rgba(255,200,100,0.6); }
  100% { transform: scale(0.95); box-shadow: 0 0 60px 20px rgba(255,200,100,0.3); }
}
@keyframes cw-wither {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); opacity: 0.9; }
  25% { transform: translateX(-52%) scaleY(0.9) rotate(-3deg); opacity: 0.7; }
  50% { transform: translateX(-50%) scaleY(0.8) rotate(0deg); opacity: 0.5; }
  75% { transform: translateX(-48%) scaleY(0.7) rotate(3deg); opacity: 0.3; }
  100% { transform: translateX(-50%) scaleY(0.6) rotate(0deg); opacity: 0.1; }
}
@keyframes cw-weed {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(0.85); }
  100% { transform: rotate(-5deg) scaleY(0.7); }
}
@keyframes cw-dust {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.3; }
  50% { transform: translateY(-30px) rotate(180deg); opacity: 0.5; }
  100% { transform: translateY(0) rotate(360deg); opacity: 0.2; }
}
@keyframes cw-halo {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

.scn-pity-for-shadowy-beings {
  background:
    linear-gradient(135deg, #1a2a4a 0%, #4a5a7a 40%, #8a9aba 70%, #c0d0e0 100%),
    radial-gradient(ellipse at 50% 30%, #e0d0b0 0%, transparent 60%);
}
.scn-pity-for-shadowy-beings .bg-sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a7a9a 0%, #8a9aba 50%, #b0c0d0 100%);
  opacity: 0.6;
  animation: psb-sky 10s ease-in-out infinite alternate;
}
.scn-pity-for-shadowy-beings .figure-a {
  position: absolute;
  bottom: 25%;
  left: 25%;
  width: 25px;
  height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  animation: psb-fig-a 5s ease-in-out infinite;
}
.scn-pity-for-shadowy-beings .figure-b {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  animation: psb-fig-b 6s ease-in-out infinite;
}
.scn-pity-for-shadowy-beings .figure-c {
  position: absolute;
  bottom: 30%;
  right: 25%;
  width: 20px;
  height: 45px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  animation: psb-fig-c 7s ease-in-out infinite;
}
.scn-pity-for-shadowy-beings .gentle-light {
  position: absolute;
  top: 20%;
  left: 40%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0.05) 50%, transparent 100%);
  filter: blur(12px);
  animation: psb-light 8s ease-in-out infinite alternate;
}
.scn-pity-for-shadowy-beings .shadow-veil {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 30% 50%, transparent 30%, rgba(0,0,20,0.3) 100%);
  animation: psb-veil 9s ease-in-out infinite;
}
@keyframes psb-sky {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.02); }
  100% { opacity: 0.6; transform: scaleY(0.98); }
}
@keyframes psb-fig-a {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes psb-fig-b {
  0% { transform: translateY(0) rotate(2deg); }
  30% { transform: translateY(-4px) rotate(0deg); }
  60% { transform: translateY(-6px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes psb-fig-c {
  0% { transform: translateY(0) rotate(-3deg); }
  20% { transform: translateY(-2px) rotate(0deg); }
  40% { transform: translateY(-4px) rotate(3deg); }
  60% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}
@keyframes psb-light {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.3); }
  100% { opacity: 0.3; transform: scale(0.9); }
}
@keyframes psb-veil {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.4; }
}

.scn-love-and-hate-same {
  background:
    linear-gradient(90deg, #4a6a8a 0%, #8a9aba 30%, #c0d0e0 50%, #d0c0a0 70%, #b08060 100%),
    radial-gradient(ellipse at 25% 50%, #e0d0b0 0%, transparent 50%),
    radial-gradient(ellipse at 75% 50%, #c06030 0%, transparent 50%);
}
.scn-love-and-hate-same .left-bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 50%;
  height: 100%;
  background: radial-gradient(ellipse at 30% 50%, #c8d8e8 0%, #8a9aba 60%, transparent 100%);
  animation: lhs-left 6s ease-in-out infinite alternate;
}
.scn-love-and-hate-same .right-bg {
  position: absolute;
  right: 0;
  top: 0;
  width: 50%;
  height: 100%;
  background: radial-gradient(ellipse at 70% 50%, #a06040 0%, #6a3a1a 60%, #2a1a0a 100%);
  animation: lhs-right 6s ease-in-out infinite alternate;
}
.scn-love-and-hate-same .figure-left {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 25px;
  height: 60px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  animation: lhs-fig-left 4s ease-in-out infinite;
}
.scn-love-and-hate-same .figure-right {
  position: absolute;
  bottom: 25%;
  right: 20%;
  width: 25px;
  height: 60px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  animation: lhs-fig-right 4s ease-in-out infinite;
}
.scn-love-and-hate-same .glow-celestial {
  position: absolute;
  top: 15%;
  left: 18%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #ffe0a0 0%, rgba(255,224,160,0.2) 60%, transparent 100%);
  filter: blur(8px);
  animation: lhs-glow-c 5s ease-in-out infinite alternate;
}
.scn-love-and-hate-same .glow-lurid {
  position: absolute;
  top: 15%;
  right: 18%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #c06030 0%, rgba(192,96,48,0.2) 60%, transparent 100%);
  filter: blur(8px);
  animation: lhs-glow-l 5s ease-in-out infinite alternate;
}
@keyframes lhs-left {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes lhs-right {
  0% { opacity: 0.9; }
  50% { opacity: 0.7; }
  100% { opacity: 0.8; }
}
@keyframes lhs-fig-left {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(0deg) scaleY(1.05); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes lhs-fig-right {
  0% { transform: translateX(0) rotate(2deg); }
  50% { transform: translateX(-5px) rotate(0deg) scaleY(1.05); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes lhs-glow-c {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.3); }
  100% { opacity: 0.5; transform: scale(0.9); }
}
@keyframes lhs-glow-l {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.3; transform: scale(0.8); }
  100% { opacity: 0.6; transform: scale(1.2); }
}

.scn-hand-over-heart-again {
  background: linear-gradient(180deg, #5a6068 0%, #3a4048 60%, #2a2f38 100%),
              radial-gradient(ellipse at 50% 100%, #4a5058 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-hand-over-heart-again .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7a8088 0%, #5a6068 100%);
  animation: hh-sky 12s ease-in-out infinite alternate;
}
.scn-hand-over-heart-again .ground-mist {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #1a1e24 80%);
  animation: hh-mist 8s ease-in-out infinite alternate;
}
.scn-hand-over-heart-again .figure-minister {
  position: absolute; bottom: 35%; left: 50%; width: 36px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2e34 0%, #1a1e24 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: hh-stand 4s ease-in-out infinite;
}
.scn-hand-over-heart-again .hand-over-heart {
  position: absolute; bottom: 48%; left: 50%; width: 12px; height: 16px;
  transform: translateX(-50%) rotate(-10deg);
  background: #1a1e24;
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 -2px 0 #3a4048;
  animation: hh-hand 5s ease-in-out infinite;
}
.scn-hand-over-heart-again .figure-pearl {
  position: absolute; bottom: 35%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a4048 0%, #2a2e34 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hh-pearl 6s ease-in-out infinite;
}
.scn-hand-over-heart-again .figure-hester {
  position: absolute; bottom: 35%; left: 60%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a2e34 0%, #1a1e24 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  animation: hh-hester 7s ease-in-out infinite;
}
.scn-hand-over-heart-again .shadow-bushes {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: #1a1e24;
  border-radius: 70% 60% 0 0 / 80% 70% 0 0;
  opacity: 0.5;
  animation: hh-bushes 15s ease-in-out infinite;
}
@keyframes hh-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes hh-mist { 0% { opacity: 0.6; transform: translateY(0) } 50% { opacity: 0.8; transform: translateY(2px) } 100% { opacity: 0.5; transform: translateY(-1px) } }
@keyframes hh-stand { 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 hh-hand { 0% { transform: translateX(-50%) rotate(-10deg) translateY(0) } 50% { transform: translateX(-50%) rotate(-15deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(-10deg) translateY(0) } }
@keyframes hh-pearl { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes hh-hester { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hh-bushes { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) } 100% { transform: scaleY(0.98) } }

.scn-kiss-washed-off {
  background: linear-gradient(180deg, #4a5058 0%, #2a3038 40%, #1a1e24 100%),
              radial-gradient(ellipse at 50% 0%, #6a7078 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-kiss-washed-off .bg-woods {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a4048 0%, transparent 100%);
  animation: kw-woods 15s ease-in-out infinite alternate;
}
.scn-kiss-washed-off .brook {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a5058 0%, #2a3a42 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: kw-brook 8s ease-in-out infinite;
}
.scn-kiss-washed-off .figure-minister-lean {
  position: absolute; bottom: 40%; left: 45%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #2a2e34 0%, #1a1e24 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(15deg) translateX(-50%);
  transform-origin: bottom center;
  animation: kw-lean 5s ease-in-out infinite;
}
.scn-kiss-washed-off .figure-pearl-kneel {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a4048 0%, #2a2e34 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kw-kneel 4s ease-in-out infinite;
}
.scn-kiss-washed-off .kiss-bloom {
  position: absolute; bottom: 46%; left: 48%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c8b8a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,184,160,0.4);
  animation: kw-bloom 3s ease-in-out infinite alternate;
}
.scn-kiss-washed-off .water-splash {
  position: absolute; bottom: 28%; left: 52%; width: 14px; height: 14px;
  background: radial-gradient(circle, #6a8088 0%, transparent 70%);
  border-radius: 50%;
  animation: kw-splash 2s ease-in-out infinite;
}
.scn-kiss-washed-off .ripple-1, .scn-kiss-washed-off .ripple-2 {
  position: absolute; bottom: 30%; left: 52%; width: 40px; height: 8px;
  border: 2px solid #6a8088; border-radius: 50%;
  transform: translateX(-50%) scale(0.5);
  opacity: 0;
}
.scn-kiss-washed-off .ripple-1 { animation: kw-ripple 4s linear infinite; }
.scn-kiss-washed-off .ripple-2 { animation: kw-ripple 4s linear infinite 2s; }
@keyframes kw-woods { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes kw-brook { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes kw-lean { 0% { transform: rotate(15deg) translateX(-50%) } 50% { transform: rotate(18deg) translateX(-50%) translateY(-2px) } 100% { transform: rotate(15deg) translateX(-50%) } }
@keyframes kw-kneel { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes kw-bloom { 0% { opacity: 0.5; box-shadow: 0 0 8px 2px rgba(200,184,160,0.3) } 50% { opacity: 0.9; box-shadow: 0 0 20px 6px rgba(200,184,160,0.6) } 100% { opacity: 0.6; box-shadow: 0 0 12px 4px rgba(200,184,160,0.4) } }
@keyframes kw-splash { 0% { opacity: 0.6; transform: scale(0.8) } 50% { opacity: 0.2; transform: scale(1.4) } 100% { opacity: 0; transform: scale(1.8) } }
@keyframes kw-ripple { 0% { opacity: 0.5; transform: translateX(-50%) scale(0.5) } 50% { opacity: 0.2; transform: translateX(-50%) scale(1.2) } 100% { opacity: 0; transform: translateX(-50%) scale(1.8) } }

.scn-fateful-interview-closes {
  background: linear-gradient(180deg, #1a1e24 0%, #0e1218 60%, #05080c 100%),
              radial-gradient(ellipse at 50% 80%, #1a242a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-fateful-interview-closes .deep-water {
  position: absolute; inset: 10% 0 0 0;
  background: linear-gradient(180deg, #1a2830 0%, #0e1820 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: fb-water 20s ease-in-out infinite alternate;
}
.scn-fateful-interview-closes .murmur-ripples {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 20%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, #2a3a42 20px, #2a3a42 22px);
  opacity: 0.3;
  border-radius: 50%;
  animation: fb-ripple 6s ease-in-out infinite;
}
.scn-fateful-interview-closes .stone-left {
  position: absolute; bottom: 20%; left: 15%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #2a3038 0%, #1a1e24 100%);
  border-radius: 40% 60% 50% 50% / 50% 50% 60% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: fb-stone-l 12s ease-in-out infinite;
}
.scn-fateful-interview-closes .stone-right {
  position: absolute; bottom: 22%; right: 20%; width: 50px; height: 35px;
  background: linear-gradient(225deg, #2a3038 0%, #1a1e24 100%);
  border-radius: 60% 40% 50% 50% / 50% 50% 40% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: fb-stone-r 14s ease-in-out infinite;
}
.scn-fateful-interview-closes .weed-surface {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 15px;
  background: #2a3a32;
  border-radius: 50% 50% 0 0;
  transform: rotate(10deg);
  animation: fb-weed 8s ease-in-out infinite alternate;
}
.scn-fateful-interview-closes .bubble-1, .scn-fateful-interview-closes .bubble-2 {
  position: absolute; bottom: 25%; left: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #4a5a62 0%, transparent 70%);
  border-radius: 50%;
  animation: fb-bubble 5s ease-in-out infinite;
}
.scn-fateful-interview-closes .bubble-2 { left: 55%; animation-delay: 2.5s; }
.scn-fateful-interview-closes .mood-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 70%);
  opacity: 0.4;
  animation: fb-shadow 10s ease-in-out infinite alternate;
}
@keyframes fb-water { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes fb-ripple { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(5px) scaleX(1.1) } 100% { transform: translateX(-5px) scaleX(0.95) } }
@keyframes fb-stone-l { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes fb-stone-r { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes fb-weed { 0% { transform: rotate(10deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(8deg) } }
@keyframes fb-bubble { 0% { opacity: 0; transform: translateY(0) scale(0.8) } 50% { opacity: 0.6; transform: translateY(-10px) scale(1.2) } 100% { opacity: 0; transform: translateY(-20px) scale(0.6) } }
@keyframes fb-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.2 } }

.scn-minister-departs-backward-glance {
  background: linear-gradient(180deg, #3a3e48 0%, #1a1e28 50%, #0a0e14 100%),
              radial-gradient(ellipse at 50% 0%, #5a6068 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-minister-departs-backward-glance .twilight-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a5e68 0%, #3a3e48 100%);
  animation: mg-sky 20s ease-in-out infinite alternate;
}
.scn-minister-departs-backward-glance .tree-line {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1e28 0%, #0a0e14 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: mg-trees 15s ease-in-out infinite;
}
.scn-minister-departs-backward-glance .figure-minister-back {
  position: absolute; bottom: 35%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1e28 0%, #0a0e14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: mg-walk 6s ease-in-out infinite;
}
.scn-minister-departs-backward-glance .figure-hester-fade {
  position: absolute; bottom: 35%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2e38 0%, #1a1e28 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  opacity: 0.6;
  animation: mg-fade-hester 10s ease-in-out infinite;
}
.scn-minister-departs-backward-glance .figure-pearl-fade {
  position: absolute; bottom: 35%; left: 54%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #3a3e48 0%, #2a2e38 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  animation: mg-fade-pearl 12s ease-in-out infinite;
}
.scn-minister-departs-backward-glance .backward-glance {
  position: absolute; bottom: 44%; left: 30%; width: 10px; height: 10px;
  background: radial-gradient(circle, #8a8e98 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(138,142,152,0.5);
  animation: mg-glance 4s ease-in-out infinite alternate;
}
.scn-minister-departs-backward-glance .ground-path {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 4px;
  background: linear-gradient(90deg, transparent, #2a2e38, transparent);
  border-radius: 50%;
  animation: mg-path 8s ease-in-out infinite;
}
@keyframes mg-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes mg-trees { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes mg-walk { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(-3px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes mg-fade-hester { 0% { opacity: 0.6; transform: translateX(0) } 50% { opacity: 0.4; transform: translateX(2px) } 100% { opacity: 0.3; transform: translateX(4px) } }
@keyframes mg-fade-pearl { 0% { opacity: 0.5; transform: translateX(0) } 50% { opacity: 0.3; transform: translateX(3px) } 100% { opacity: 0.2; transform: translateX(5px) } }
@keyframes mg-glance { 0% { opacity: 0.5; box-shadow: 0 0 6px 1px rgba(138,142,152,0.3) } 50% { opacity: 0.9; box-shadow: 0 0 14px 4px rgba(138,142,152,0.6) } 100% { opacity: 0.6; box-shadow: 0 0 8px 2px rgba(138,142,152,0.4) } }
@keyframes mg-path { 0% { transform: scaleX(0.9) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

/* murmured-knowledge */
.scn-murmured-knowledge {
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3c 40%, #1e1e2a 100%),
              radial-gradient(ellipse at 40% 60%, rgba(110, 130, 150, 0.1) 0%, transparent 70%);
}
.scn-murmured-knowledge .bg-overcast {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a4a5e 0%, #3a3a4e 50%, #2a2a3c 100%);
  animation: mk-shift 20s ease-in-out infinite alternate;
}
.scn-murmured-knowledge .figure-left {
  position: absolute; bottom: 28%; left: 20%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mk-fig-left 6s ease-in-out infinite;
}
.scn-murmured-knowledge .figure-right {
  position: absolute; bottom: 28%; right: 20%; width: 52px; height: 108px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: mk-fig-right 7s ease-in-out infinite;
}
.scn-murmured-knowledge .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2e2e3e 0%, #1a1a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: mk-ground 12s ease-in-out infinite alternate;
}
.scn-murmured-knowledge .haze {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(ellipse, rgba(200,210,220,0.08) 0%, transparent 70%);
  filter: blur(15px);
  animation: mk-haze 15s ease-in-out infinite alternate;
}
.scn-murmured-knowledge .eye-flash {
  position: absolute; top: 48%; left: 35%; width: 4px; height: 4px;
  background: radial-gradient(circle, #d0e0f0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,220,240,0.3);
  animation: mk-flash 5s ease-in-out infinite alternate;
}
@keyframes mk-shift {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes mk-fig-left {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(0) translateY(0) rotate(1deg); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes mk-fig-right {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  25% { transform: translateX(-3px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(0) translateY(0) rotate(-1deg); }
  75% { transform: translateX(3px) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes mk-ground {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes mk-haze {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-5px); }
  100% { opacity: 0.3; transform: translateY(0); }
}
@keyframes mk-flash {
  0% { opacity: 0; transform: scale(0.8); }
  30% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0; transform: scale(0.8); }
}

/* desperate-tenderness */
.scn-desperate-tenderness {
  background: linear-gradient(180deg, #4a4a5a 0%, #3e3e4e 30%, #2e2e3e 70%, #1e1e2e 100%),
              radial-gradient(ellipse at 50% 80%, #5a5a6a 0%, transparent 60%);
}
.scn-desperate-tenderness .storm-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(135deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%);
  animation: dt-sky 20s ease-in-out infinite alternate;
}
.scn-desperate-tenderness .frowny-hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: dt-hills 15s ease-in-out infinite alternate;
}
.scn-desperate-tenderness .figure-standing {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dt-stand 8s ease-in-out infinite;
}
.scn-desperate-tenderness .wind-stream {
  position: absolute; top: 25%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(90deg, transparent, rgba(180,190,200,0.1), transparent);
  filter: blur(20px);
  animation: dt-wind 12s linear infinite alternate;
}
.scn-desperate-tenderness .shadow-pool {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: dt-shadow 9s ease-in-out infinite alternate;
}
.scn-desperate-tenderness .trembling-hand {
  position: absolute; bottom: 34%; left: 48%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: dt-hand 4s ease-in-out infinite;
}
@keyframes dt-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes dt-hills {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes dt-stand {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(0deg); }
}
@keyframes dt-wind {
  0% { transform: translateX(-20px); opacity: 0.2; }
  50% { transform: translateX(20px); opacity: 0.5; }
  100% { transform: translateX(-20px); opacity: 0.2; }
}
@keyframes dt-shadow {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(0.9); opacity: 0.9; }
  100% { transform: scaleX(1); opacity: 0.7; }
}
@keyframes dt-hand {
  0% { transform: translate(0,0) rotate(-5deg); }
  25% { transform: translate(-3px,1px) rotate(3deg); }
  50% { transform: translate(0,0) rotate(-2deg); }
  75% { transform: translate(3px,-1px) rotate(5deg); }
  100% { transform: translate(0,0) rotate(-5deg); }
}

/* heaven-frown */
.scn-heaven-frown {
  background: linear-gradient(180deg, #2a2a3a 0%, #1e1e2e 40%, #12121a 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a4a 0%, transparent 60%);
}
.scn-heaven-frown .clouds-heavy {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: hf-clouds 25s ease-in-out infinite alternate;
}
.scn-heaven-frown .figure-large {
  position: absolute; bottom: 20%; left: 32%; width: 60px; height: 130px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hf-large 6s ease-in-out infinite;
}
.scn-heaven-frown .figure-small {
  position: absolute; bottom: 18%; right: 35%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hf-small 7s ease-in-out infinite;
}
.scn-heaven-frown .light-shaft {
  position: absolute; top: 5%; left: 45%; width: 4px; height: 40%;
  background: linear-gradient(180deg, rgba(200,210,220,0.08), transparent);
  filter: blur(3px);
  animation: hf-shaft 10s ease-in-out infinite alternate;
}
.scn-heaven-frown .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.8);
  animation: hf-ground 14s ease-in-out infinite alternate;
}
.scn-heaven-frown .shiver-line {
  position: absolute; bottom: 38%; left: 30%; width: 20%; height: 2px;
  background: rgba(180,190,200,0.15);
  filter: blur(1px);
  animation: hf-shiver 3s ease-in-out infinite;
}
@keyframes hf-clouds {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.05); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes hf-large {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-3px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(2deg); }
  75% { transform: translateX(-4px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes hf-small {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); }
  50% { transform: translateX(0) translateY(0) rotate(-2deg); }
  75% { transform: translateX(3px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(2deg); }
}
@keyframes hf-shaft {
  0% { opacity: 0.3; transform: scaleY(0.8); }
  50% { opacity: 0.6; transform: scaleY(1); }
  100% { opacity: 0.3; transform: scaleY(0.8); }
}
@keyframes hf-ground {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes hf-shiver {
  0% { transform: translateX(0) scaleX(1); opacity: 0.2; }
  25% { transform: translateX(5px) scaleX(1.5); opacity: 0.6; }
  50% { transform: translateX(-3px) scaleX(0.8); opacity: 0.3; }
  75% { transform: translateX(2px) scaleX(1.2); opacity: 0.5; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.2; }
}

/* consecration-of-love */
.scn-consecration-of-love {
  background: linear-gradient(180deg, #3a3a4e 0%, #2e2e42 40%, #222236 100%),
              radial-gradient(ellipse at 50% 70%, #4a4a5e 0%, transparent 60%);
}
.scn-consecration-of-love .bg-soft {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a4a5e 0%, #3a3a4e 50%, #2a2a3e 100%);
  animation: cl-bg 15s ease-in-out infinite alternate;
}
.scn-consecration-of-love .figures-side {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 60%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  animation: cl-figures 9s ease-in-out infinite;
}
.scn-consecration-of-love .hands-joined {
  position: absolute; bottom: 38%; left: 50%; width: 14px; height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #5a5a6e 0%, #3a3a4e 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 10px 3px rgba(120,110,100,0.3);
  animation: cl-hands 5s ease-in-out infinite;
}
.scn-consecration-of-love .ground-moss {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2e3e2e 0%, #1e2e1e 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: cl-moss 12s ease-in-out infinite alternate;
}
.scn-consecration-of-love .warm-glow {
  position: absolute; top: 30%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse, rgba(160,120,80,0.12) 0%, transparent 70%);
  filter: blur(20px);
  animation: cl-glow 8s ease-in-out infinite alternate;
}
.scn-consecration-of-love .leaf-drift {
  position: absolute; top: 15%; right: 10%; width: 20px; height: 12px;
  background: rgba(100,110,90,0.2);
  border-radius: 50% 0 50% 0;
  filter: blur(2px);
  animation: cl-leaf 20s linear infinite;
}
@keyframes cl-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cl-figures {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes cl-hands {
  0% { transform: translateX(-50%) scale(1); }
  25% { transform: translateX(-50%) scale(1.05) rotate(2deg); }
  50% { transform: translateX(-50%) scale(1); }
  75% { transform: translateX(-50%) scale(0.95) rotate(-2deg); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes cl-moss {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes cl-glow {
  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 cl-leaf {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.3; }
  25% { transform: translateX(-20px) rotate(90deg); opacity: 0.6; }
  50% { transform: translateX(-40px) rotate(180deg); opacity: 0.3; }
  75% { transform: translateX(-60px) rotate(270deg); opacity: 0.1; }
  100% { transform: translateX(-80px) rotate(360deg); opacity: 0; }
}

.scn-mother-daughter-seclusion {
  background:
    linear-gradient(180deg, #b8d4e8 0%, #e8d4a8 40%, #b08a6a 100%),
    radial-gradient(ellipse at 30% 60%, #d4c0a8 0%, transparent 60%);
}
.scn-mother-daughter-seclusion .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #d0e0f0 0%, #f5e8d0 100%);
  animation: mds-sky 20s ease-in-out infinite alternate;
}
.scn-mother-daughter-seclusion .trees-l {
  position:absolute; bottom:25%; left:0; width:35%; height:55%;
  background: linear-gradient(90deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 0 0 20% / 60% 0 0 40%;
  box-shadow: inset 0 0 30px #0a0a0a;
  animation: mds-trees 15s ease-in-out infinite;
}
.scn-mother-daughter-seclusion .trees-r {
  position:absolute; bottom:25%; right:0; width:35%; height:55%;
  background: linear-gradient(270deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 0 30% 20% 0 / 0 60% 40% 0;
  box-shadow: inset 0 0 30px #0a0a0a;
  animation: mds-trees 15s ease-in-out infinite reverse;
}
.scn-mother-daughter-seclusion .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-mother-daughter-seclusion .mother {
  position:absolute; bottom:20%; left:38%; width:24px; height:80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mds-figure 6s ease-in-out infinite;
}
.scn-mother-daughter-seclusion .child {
  position:absolute; bottom:18%; left:53%; width:16px; height:50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mds-figure 6s ease-in-out infinite reverse;
  animation-delay: 0.5s;
}
.scn-mother-daughter-seclusion .sunbeam {
  position:absolute; top:10%; left:40%; width:20%; height:60%;
  background: linear-gradient(0deg, transparent 0%, rgba(255,255,200,0.2) 50%, transparent 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(8px);
  animation: mds-beam 12s ease-in-out infinite alternate;
}
@keyframes mds-sky {
  0% { opacity:0.8; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(0.95); }
  100% { opacity:0.7; transform: scaleY(1); }
}
@keyframes mds-trees {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes mds-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(4px) rotate(0deg); }
  60% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes mds-beam {
  0% { transform: skewX(-5deg) scaleX(1); opacity:0.4; }
  50% { transform: skewX(5deg) scaleX(1.2); opacity:0.8; }
  100% { transform: skewX(-3deg) scaleX(0.9); opacity:0.3; }
}

.scn-pearl-imaginative-play {
  background:
    linear-gradient(180deg, #d4a868 0%, #c89858 30%, #a07040 100%),
    radial-gradient(ellipse at 50% 20%, #f0d0a0 0%, transparent 60%);
}
.scn-pearl-imaginative-play .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #b88858 0%, #a07040 100%);
  box-shadow: inset 0 0 40px #5a3a1a;
}
.scn-pearl-imaginative-play .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-pearl-imaginative-play .hearth {
  position:absolute; bottom:20%; left:10%; width:80px; height:50px;
  background: radial-gradient(ellipse at 50% 30%, #ffa040 0%, #804020 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 10px #ffa040, 0 0 80px 20px rgba(255,160,64,0.3);
  animation: pim-fire 3s ease-in-out infinite alternate;
}
.scn-pearl-imaginative-play .table {
  position:absolute; bottom:15%; left:55%; width:100px; height:12px;
  background: linear-gradient(90deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  transform: skewX(-10deg);
}
.scn-pearl-imaginative-play .chair {
  position:absolute; bottom:12%; left:65%; width:30px; height:40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: translateX(-50%);
}
.scn-pearl-imaginative-play .pearl {
  position:absolute; bottom:18%; left:40%; width:18px; height:45px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c89858 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pim-pearl 4s ease-in-out infinite;
}
.scn-pearl-imaginative-play .block {
  position:absolute; bottom:10%; left:50%; width:20px; height:20px;
  background: linear-gradient(135deg, #b87858 0%, #8a6040 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: pim-block 2s ease-in-out infinite;
}
@keyframes pim-fire {
  0% { opacity:0.7; transform: scaleY(0.95) translateY(0); }
  50% { opacity:1; transform: scaleY(1.1) translateY(-3px); }
  100% { opacity:0.8; transform: scaleY(0.9) translateY(0); }
}
@keyframes pim-pearl {
  0% { transform: translateX(0) rotate(-2deg); }
  30% { transform: translateX(8px) rotate(1deg); }
  60% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes pim-block {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  50% { transform: translateX(20px) rotate(90deg) scale(0.9); }
  100% { transform: translateX(0) rotate(180deg) scale(1); }
}

.scn-pearl-multitude-of-voices {
  background:
    linear-gradient(180deg, #d4c0a8 0%, #b09878 40%, #8a7050 100%),
    radial-gradient(ellipse at 50% 50%, #e8d8c0 0%, transparent 70%);
}
.scn-pearl-multitude-of-voices .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #c8b098 0%, #b09878 100%);
  box-shadow: inset 0 0 30px #6a5a3a;
}
.scn-pearl-multitude-of-voices .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-pearl-multitude-of-voices .pearl {
  position:absolute; bottom:15%; left:50%; width:20px; height:50px;
  background: linear-gradient(180deg, #e8d0b0 0%, #c0a880 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: pmv-pearl 5s ease-in-out infinite;
}
.scn-pearl-multitude-of-voices .tree-shadow {
  position:absolute; top:10%; left:5%; width:30%; height:70%;
  background: linear-gradient(180deg, rgba(30,50,30,0.3) 0%, transparent 100%);
  border-radius: 40% 60% 0 0 / 50% 70% 0 0;
  filter: blur(4px);
  animation: pmv-shadow 20s ease-in-out infinite alternate;
}
.scn-pearl-multitude-of-voices .weed-shadow {
  position:absolute; top:30%; right:10%; width:15%; height:50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(40,60,20,0.3) 0%, transparent 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(5px);
  animation: pmv-shadow 25s ease-in-out infinite alternate-reverse;
}
.scn-pearl-multitude-of-voices .voice-a {
  position:absolute; bottom:35%; left:30%; width:24px; height:24px;
  background: radial-gradient(circle, #f0d0a0 0%, #d0b080 60%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(240,208,160,0.5);
  animation: pmv-voice 6s ease-in-out infinite;
}
.scn-pearl-multitude-of-voices .voice-b {
  position:absolute; bottom:40%; right:25%; width:20px; height:20px;
  background: radial-gradient(circle, #e0c0a0 0%, #c0a080 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(224,192,160,0.4);
  animation: pmv-voice 7s ease-in-out infinite reverse;
  animation-delay: 1s;
}
@keyframes pmv-pearl {
  0% { transform: translateX(-50%) rotate(-3deg); }
  30% { transform: translateX(-50%) translateY(-5px) rotate(2deg); }
  60% { transform: translateX(-50%) translateY(3px) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(3deg); }
}
@keyframes pmv-shadow {
  0% { opacity:0.3; transform: scale(1); }
  50% { opacity:0.6; transform: scale(1.05); }
  100% { opacity:0.2; transform: scale(0.95); }
}
@keyframes pmv-voice {
  0% { transform: translateY(0) scale(1) rotate(0deg); }
  50% { transform: translateY(-20px) scale(1.2) rotate(30deg); }
  100% { transform: translateY(0) scale(0.8) rotate(-20deg); }
}

.scn-pearl-preternatural-activity {
  background:
    linear-gradient(180deg, #d8c8b0 0%, #b8a088 40%, #887060 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0d0 0%, transparent 70%);
}
.scn-pearl-preternatural-activity .wall {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%);
  box-shadow: inset 0 0 20px #5a4a3a;
}
.scn-pearl-preternatural-activity .floor {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-pearl-preternatural-activity .pearl {
  position:absolute; bottom:10%; left:50%; width:16px; height:40px;
  background: linear-gradient(180deg, #e8d0b0 0%, #c0a880 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: ppa-pearl 2s ease-in-out infinite;
}
.scn-pearl-preternatural-activity .swirl-a {
  position:absolute; bottom:30%; left:25%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(200,180,160,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ppa-swirl 3s ease-in-out infinite;
}
.scn-pearl-preternatural-activity .swirl-b {
  position:absolute; bottom:40%; right:20%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(180,160,140,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ppa-swirl 4s ease-in-out infinite reverse;
  animation-delay: 0.5s;
}
.scn-pearl-preternatural-activity .swirl-c {
  position:absolute; bottom:20%; left:60%; width:50px; height:50px;
  background: radial-gradient(circle, rgba(220,200,180,0.35) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: ppa-swirl 2.5s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-pearl-preternatural-activity .sparkle {
  position:absolute; bottom:50%; left:40%; width:10px; height:10px;
  background: radial-gradient(circle, #f0e0d0 0%, #d0c0b0 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(240,224,208,0.6);
  animation: ppa-sparkle 1.5s ease-in-out infinite;
}
@keyframes ppa-pearl {
  0% { transform: translateX(-50%) rotate(-5deg) scale(1); }
  50% { transform: translateX(-50%) translateY(-8px) rotate(5deg) scale(1.1); }
  100% { transform: translateX(-50%) rotate(-5deg) scale(0.9); }
}
@keyframes ppa-swirl {
  0% { transform: translateX(0) scale(1) rotate(0deg); opacity:0.3; }
  50% { transform: translateX(20px) scale(1.5) rotate(180deg); opacity:0.6; }
  100% { transform: translateX(-10px) scale(0.8) rotate(360deg); opacity:0.2; }
}
@keyframes ppa-sparkle {
  0% { opacity:0; transform: scale(0.5) translateY(0); }
  50% { opacity:1; transform: scale(1.5) translateY(-10px); }
  100% { opacity:0; transform: scale(0.5) translateY(0); }
}

.scn-dimmesdale-reveals-stigma {
  background: linear-gradient(180deg, #2a2535 0%, #4a3a5a 40%, #6a5a7a 70%, #8a7a9a 100%),
              radial-gradient(ellipse at 50% 30%, #ffdd99 0%, transparent 60%);
}
.scn-dimmesdale-reveals-stigma .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, #0a0a15 100%);
  animation: ds1-bg 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-reveals-stigma .figure {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 120px; transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1020 0%, #0a0510 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ds1-figure 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-reveals-stigma .stigma {
  position: absolute; bottom: 55%; left: 50%; width: 30px; height: 30px; transform: translateX(-50%);
  background: radial-gradient(circle, #ffcc66 0%, #ff9933 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ffcc66, 0 0 80px 30px rgba(255,153,51,0.3);
  animation: ds1-stigma 2s ease-in-out infinite alternate;
}
.scn-dimmesdale-reveals-stigma .ray {
  position: absolute; top: 20%; left: 50%; width: 4px; height: 100px;
  background: linear-gradient(180deg, rgba(255,230,180,0.8) 0%, transparent 100%);
  transform-origin: bottom center;
}
.scn-dimmesdale-reveals-stigma .ray-1 {
  transform: translateX(-50%) rotate(-25deg);
  animation: ds1-ray1 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-reveals-stigma .ray-2 {
  transform: translateX(-50%) rotate(25deg);
  animation: ds1-ray2 7s ease-in-out infinite alternate;
}
.scn-dimmesdale-reveals-stigma .angel {
  position: absolute; width: 15px; height: 15px; background: radial-gradient(circle, rgba(255,220,150,0.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
}
.scn-dimmesdale-reveals-stigma .angel-1 {
  top: 15%; left: 20%; animation: ds1-angel1 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-reveals-stigma .angel-2 {
  top: 12%; right: 25%; animation: ds1-angel2 14s ease-in-out infinite alternate;
}
.scn-dimmesdale-reveals-stigma .shadow {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 20px;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(8px);
  animation: ds1-shadow 5s ease-in-out infinite alternate;
}
@keyframes ds1-bg { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes ds1-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(1deg); } }
@keyframes ds1-stigma { 0% { opacity: 0.6; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.7; transform: translateX(-50%) scale(0.95); } }
@keyframes ds1-ray1 { 0% { transform: translateX(-50%) rotate(-25deg) scaleY(1); opacity: 0.5; } 50% { transform: translateX(-50%) rotate(-20deg) scaleY(1.1); opacity: 1; } 100% { transform: translateX(-50%) rotate(-30deg) scaleY(0.9); opacity: 0.6; } }
@keyframes ds1-ray2 { 0% { transform: translateX(-50%) rotate(25deg) scaleY(1); opacity: 0.4; } 50% { transform: translateX(-50%) rotate(30deg) scaleY(1.2); opacity: 1; } 100% { transform: translateX(-50%) rotate(20deg) scaleY(0.8); opacity: 0.5; } }
@keyframes ds1-angel1 { 0% { transform: translate(0, 0) scale(1); opacity: 0.3; } 50% { transform: translate(10px, -5px) scale(1.2); opacity: 0.6; } 100% { transform: translate(-5px, 5px) scale(0.9); opacity: 0.2; } }
@keyframes ds1-angel2 { 0% { transform: translate(0, 0) scale(0.8); opacity: 0.4; } 50% { transform: translate(-8px, -8px) scale(1.1); opacity: 0.7; } 100% { transform: translate(6px, 3px) scale(0.7); opacity: 0.3; } }
@keyframes ds1-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.1); opacity: 0.6; } 100% { transform: scaleX(0.9); opacity: 0.3; } }

.scn-dimmesdale-uncovers-breast {
  background: linear-gradient(180deg, #1a1a30 0%, #3a3a5a 50%, #6a5a7a 100%),
              radial-gradient(ellipse at 50% 40%, #ffddaa 0%, transparent 60%);
}
.scn-dimmesdale-uncovers-breast .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, #0a0a1a 100%);
  animation: du1-bg 10s ease-in-out infinite alternate;
}
.scn-dimmesdale-uncovers-breast .figure {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 130px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2030 0%, #0a0510 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  animation: du1-figure 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-uncovers-breast .arm {
  position: absolute; bottom: 55%; left: 38%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #1a1020 0%, #0a0510 100%);
  border-radius: 40% 0 0 40%;
  transform-origin: right center;
  animation: du1-arm 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-uncovers-breast .band {
  position: absolute; bottom: 62%; left: 45%; width: 16px; height: 8px;
  background: #3a2a1a; border-radius: 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  transform-origin: top center;
  animation: du1-band 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-uncovers-breast .revelation {
  position: absolute; bottom: 50%; left: 50%; width: 40px; height: 40px; transform: translateX(-50%);
  background: radial-gradient(circle, #ffeebb 0%, #ffaa44 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffaa44, 0 0 100px 40px rgba(255,170,68,0.3);
  animation: du1-revelation 1.5s ease-in-out infinite alternate;
}
.scn-dimmesdale-uncovers-breast .crowd {
  position: absolute; bottom: 15%; height: 30px; background: #1a1520;
  border-radius: 50% 50% 0 0;
}
.scn-dimmesdale-uncovers-breast .crowd-1 { left: 10%; right: 60%; animation: du1-crowd1 8s ease-in-out infinite alternate; }
.scn-dimmesdale-uncovers-breast .crowd-2 { left: 60%; right: 10%; animation: du1-crowd2 9s ease-in-out infinite alternate; }
@keyframes du1-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes du1-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(2deg); } }
@keyframes du1-arm { 0% { transform: rotate(10deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(15deg); } }
@keyframes du1-band { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-5px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes du1-revelation { 0% { opacity: 0.5; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.6; transform: translateX(-50%) scale(0.95); } }
@keyframes du1-crowd1 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(0.95); } }
@keyframes du1-crowd2 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(0.97); } }

.scn-hester-supports-dimmesdale {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c2444 40%, #4a3a5a 70%, #6a5a7a 100%),
              radial-gradient(ellipse at 50% 30%, #ffddaa 0%, transparent 60%);
}
.scn-hester-supports-dimmesdale .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, #0a0a1a 100%);
  animation: hs1-bg 12s ease-in-out infinite alternate;
}
.scn-hester-supports-dimmesdale .hester {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0510 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: hs1-hester 6s ease-in-out infinite alternate;
}
.scn-hester-supports-dimmesdale .dimmesdale {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #1a1520 0%, #0a0510 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform: rotate(-10deg);
  animation: hs1-dimmesdale 5s ease-in-out infinite alternate;
}
.scn-hester-supports-dimmesdale .chillingworth {
  position: absolute; bottom: 20%; left: 62%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%);
  border-radius: 30% 30% 20% 20% / 45% 45% 30% 30%;
  transform: rotate(15deg);
  animation: hs1-chill 7s ease-in-out infinite alternate;
}
.scn-hester-supports-dimmesdale .ground {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 30% 30% 0 0;
  animation: hs1-ground 10s ease-in-out infinite alternate;
}
.scn-hester-supports-dimmesdale .beam {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,180,0.4) 0%, transparent 100%);
  transform: rotate(10deg);
  filter: blur(5px);
  animation: hs1-beam 8s ease-in-out infinite alternate;
}
.scn-hester-supports-dimmesdale .dust {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: rgba(255,200,150,0.5); border-radius: 50%; filter: blur(1px);
  animation: hs1-dust 3s ease-in-out infinite;
}
@keyframes hs1-bg { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes hs1-hester { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(7deg) translateY(0); } }
@keyframes hs1-dimmesdale { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-1px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes hs1-chill { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } 100% { transform: rotate(18deg) translateY(0); } }
@keyframes hs1-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1.05); } }
@keyframes hs1-beam { 0% { opacity: 0.3; transform: rotate(10deg) scaleY(1); } 50% { opacity: 0.6; transform: rotate(8deg) scaleY(1.1); } 100% { opacity: 0.4; transform: rotate(12deg) scaleY(0.9); } }
@keyframes hs1-dust { 0% { transform: translate(0, 0); opacity: 0.5; } 50% { transform: translate(10px, -10px); opacity: 0.2; } 100% { transform: translate(-5px, 5px); opacity: 0.6; } }

.scn-pearl-kiss-father {
  background: linear-gradient(180deg, #1a2a1a 0%, #2a3a2a 30%, #4a5a3a 60%, #6a7a5a 100%),
              radial-gradient(ellipse at 50% 30%, #ffeecc 0%, transparent 60%);
}
.scn-pearl-kiss-father .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, #0a1a0a 100%);
  animation: pk1-bg 14s ease-in-out infinite alternate;
}
.scn-pearl-kiss-father .father {
  position: absolute; bottom: 25%; left: 55%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #1a1520 0%, #0a0510 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 35% 35%;
  transform: rotate(-5deg);
  animation: pk1-father 6s ease-in-out infinite alternate;
}
.scn-pearl-kiss-father .pearl {
  position: absolute; bottom: 30%; left: 42%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform: rotate(5deg);
  animation: pk1-pearl 4s ease-in-out infinite alternate;
}
.scn-pearl-kiss-father .kiss {
  position: absolute; bottom: 55%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffcc88 0%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffcc88, 0 0 40px 16px rgba(255,204,136,0.4);
  animation: pk1-kiss 3s ease-in-out infinite alternate;
}
.scn-pearl-kiss-father .light {
  position: absolute; top: 15%; left: 35%; width: 80px; height: 150px;
  background: linear-gradient(180deg, rgba(255,230,200,0.3) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(8px);
  animation: pk1-light 10s ease-in-out infinite alternate;
}
.scn-pearl-kiss-father .leaves {
  position: absolute; width: 20px; height: 20px;
  background: radial-gradient(ellipse, #4a6a3a 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
}
.scn-pearl-kiss-father .leaves-1 { top: 12%; left: 10%; animation: pk1-leaf1 20s linear infinite; }
.scn-pearl-kiss-father .leaves-2 { top: 8%; right: 15%; animation: pk1-leaf2 25s linear infinite reverse; }
@keyframes pk1-bg { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes pk1-father { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(0); } }
@keyframes pk1-pearl { 0% { transform: rotate(5deg) translateY(0) translateX(0); } 50% { transform: rotate(7deg) translateY(-1px) translateX(2px); } 100% { transform: rotate(3deg) translateY(0) translateX(-1px); } }
@keyframes pk1-kiss { 0% { opacity: 0.5; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.9); } }
@keyframes pk1-light { 0% { opacity: 0.2; transform: rotate(15deg) scaleY(1); } 50% { opacity: 0.5; transform: rotate(10deg) scaleY(1.1); } 100% { opacity: 0.3; transform: rotate(20deg) scaleY(0.9); } }
@keyframes pk1-leaf1 { 0% { transform: translateX(-20px) translateY(0) rotate(0deg); } 50% { transform: translateX(30vw) translateY(10px) rotate(180deg); } 100% { transform: translateX(100vw) translateY(-5px) rotate(360deg); } }
@keyframes pk1-leaf2 { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-20vw) translateY(8px) rotate(-90deg); } 100% { transform: translateX(-100vw) translateY(-3px) rotate(-180deg); } }

/* chillingworth-visits */
.scn-chillingworth-visits {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2820 100%),
    radial-gradient(ellipse at 30% 60%, #4a3228 0%, transparent 60%);
}
.scn-chillingworth-visits .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  animation: cv-wall 20s ease-in-out infinite alternate;
}
.scn-chillingworth-visits .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0e0a 0%, #2a1a12 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-chillingworth-visits .table {
  position: absolute; bottom: 15%; left: 30%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 4px;
  transform: perspective(50px) rotateX(5deg);
}
.scn-chillingworth-visits .bible {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 16px;
  background: #1a1210;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: cv-bible 6s ease-in-out infinite;
}
.scn-chillingworth-visits .candle {
  position: absolute; bottom: 20%; left: 44%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a070 40%, #604020 100%);
  border-radius: 2px;
  animation: cv-candle 4s ease-in-out infinite alternate;
}
.scn-chillingworth-visits .minister {
  position: absolute; bottom: 10%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #e0d8c8 0%, #b8a898 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cv-minister 8s ease-in-out infinite;
}
.scn-chillingworth-visits .physician {
  position: absolute; bottom: 10%; left: 15%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1010 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: cv-physician 8s ease-in-out infinite;
}
.scn-chillingworth-visits .glow-aura {
  position: absolute; bottom: 18%; left: 42%; width: 20px; height: 30px;
  background: radial-gradient(circle, #f0c880 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cv-glow 3s ease-in-out infinite alternate;
}
@keyframes cv-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cv-bible { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cv-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.95) translateY(0); opacity: 0.85; } }
@keyframes cv-minister { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(5px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes cv-physician { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 30% { transform: translateX(4px) translateY(2px) rotate(-1deg); } 60% { transform: translateX(8px) translateY(1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes cv-glow { 0% { opacity: 0.5; transform: scale(0.8); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.8); } }

/* chillingworth-intent-regard */
.scn-chillingworth-intent-regard {
  background:
    linear-gradient(180deg, #0e0a08 0%, #1a1412 40%, #2a1e1a 100%),
    radial-gradient(ellipse at 60% 50%, #3a2820 0%, transparent 70%);
}
.scn-chillingworth-intent-regard .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0a08 0%, #1a1412 100%);
  animation: ir-bg 30s ease-in-out infinite alternate;
}
.scn-chillingworth-intent-regard .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 10px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-chillingworth-intent-regard .candle {
  position: absolute; bottom: 28%; left: 48%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0d0a0 0%, #b08050 40%, #503020 100%);
  border-radius: 3px;
  animation: ir-candle 5s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 4px #b08050;
}
.scn-chillingworth-intent-regard .minister-torso {
  position: absolute; bottom: 8%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #d8c8b0 0%, #a89880 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: ir-min-torso 9s ease-in-out infinite;
}
.scn-chillingworth-intent-regard .minister-head {
  position: absolute; bottom: 45%; left: 50%; width: 18px; height: 22px;
  background: radial-gradient(circle at 40% 30%, #e8dcc8 0%, #b8a898 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: ir-min-head 9s ease-in-out infinite;
}
.scn-chillingworth-intent-regard .chillingworth-torso {
  position: absolute; bottom: 5%; left: 10%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1010 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 45% 45%;
  transform: rotate(5deg);
  animation: ir-ch-torso 7s ease-in-out infinite;
}
.scn-chillingworth-intent-regard .chillingworth-head {
  position: absolute; bottom: 46%; left: 12%; width: 20px; height: 24px;
  background: radial-gradient(circle at 30% 30%, #2a1e1a 0%, #1a1010 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform: rotate(10deg);
  box-shadow: inset 0 -3px 5px rgba(0,0,0,0.5);
  animation: ir-ch-head 7s ease-in-out infinite;
}
.scn-chillingworth-intent-regard .glow-ring {
  position: absolute; bottom: 26%; left: 46%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0c880 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ir-glow 4s ease-in-out infinite alternate;
}
@keyframes ir-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ir-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.15) translateY(-3px); opacity: 1; } 100% { transform: scaleY(0.9) translateY(0); opacity: 0.8; } }
@keyframes ir-min-torso { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-48%) translateY(-2px) rotate(2deg); } 60% { transform: translateX(-52%) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ir-min-head { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-48%) translateY(-3px) rotate(3deg); } 60% { transform: translateX(-52%) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ir-ch-torso { 0% { transform: rotate(5deg) translateX(0); } 30% { transform: rotate(8deg) translateX(2px); } 60% { transform: rotate(3deg) translateX(-1px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes ir-ch-head { 0% { transform: rotate(10deg) translateX(0); } 30% { transform: rotate(15deg) translateX(2px); } 60% { transform: rotate(5deg) translateX(-1px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ir-glow { 0% { opacity: 0.4; transform: scale(0.8); } 50% { opacity: 0.9; transform: scale(1.3); } 100% { opacity: 0.4; transform: scale(0.8); } }

/* near-the-secret */
.scn-near-the-secret {
  background:
    linear-gradient(180deg, #0a0808 0%, #151010 40%, #1a1412 100%),
    radial-gradient(ellipse at 40% 60%, #2a1e1a 0%, transparent 70%);
}
.scn-near-the-secret .bg-void {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0808 0%, #151010 100%);
  animation: ns-void 25s ease-in-out infinite alternate;
}
.scn-near-the-secret .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 14px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 3px;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.7);
}
.scn-near-the-secret .lamp {
  position: absolute; bottom: 20%; left: 35%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #f0d0a0 0%, #b08050 40%, #503020 100%);
  border-radius: 4px;
  animation: ns-lamp 6s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 6px #b08050;
}
.scn-near-the-secret .books {
  position: absolute; bottom: 22%; left: 50%; right: 10%; height: 40px;
  background: repeating-linear-gradient(90deg, #1a1210 0px, #1a1210 12px, #0e0a08 12px, #0e0a08 14px);
  border-radius: 2px;
  transform: perspective(30px) rotateX(10deg);
  animation: ns-books 10s ease-in-out infinite;
}
.scn-near-the-secret .minister-silhouette {
  position: absolute; bottom: 5%; left: 45%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom;
  animation: ns-minister 8s ease-in-out infinite;
}
.scn-near-the-secret .physician-silhouette {
  position: absolute; bottom: 5%; left: 20%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: ns-physician 8s ease-in-out infinite;
}
.scn-near-the-secret .secret-glow {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,150,80,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: ns-secret 5s ease-in-out infinite alternate;
}
@keyframes ns-void { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ns-lamp { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.2) translateY(-4px); opacity: 1; } 100% { transform: scaleY(0.9) translateY(0); opacity: 0.7; } }
@keyframes ns-books { 0% { transform: perspective(30px) rotateX(10deg) translateY(0); } 50% { transform: perspective(30px) rotateX(15deg) translateY(-2px); } 100% { transform: perspective(30px) rotateX(10deg) translateY(0); } }
@keyframes ns-minister { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(6px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ns-physician { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(5px) translateY(1px) rotate(-2deg); } 60% { transform: translateX(2px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ns-secret { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.8); } }

/* physicians-joy */
.scn-physicians-joy {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2820 100%),
    radial-gradient(ellipse at 50% 40%, #4a3228 0%, transparent 60%);
}
.scn-physicians-joy .bg-room {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 100%);
  animation: pj-room 20s ease-in-out infinite alternate;
}
.scn-physicians-joy .chair {
  position: absolute; bottom: 10%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: pj-chair 7s ease-in-out infinite;
}
.scn-physicians-joy .table-small {
  position: absolute; bottom: 15%; left: 50%; width: 50px; height: 8px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e0a 100%);
  border-radius: 3px;
  transform: translateX(-50%);
}
.scn-physicians-joy .candles {
  position: absolute; bottom: 20%; left: 50%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a070 40%, #604020 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 25px 8px #b08050, 0 0 40px 16px rgba(176,128,80,0.4);
  animation: pj-candles 4s ease-in-out infinite alternate;
}
.scn-physicians-joy .minister-seated {
  position: absolute; bottom: 5%; left: 38%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #d8c8b0 0%, #a89880 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: pj-minister 9s ease-in-out infinite;
}
.scn-physicians-joy .physician-standing {
  position: absolute; bottom: 5%; left: 60%; width: 22px; height: 54px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1010 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom;
  animation: pj-physician 9s ease-in-out infinite;
}
.scn-physicians-joy .joy-light {
  position: absolute; bottom: 18%; left: 46%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(240,200,128,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: pj-joylight 6s ease-in-out infinite alternate;
}
@keyframes pj-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pj-chair { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pj-candles { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.9; } 50% { transform: translateX(-50%) scaleY(1.1) translateY(-3px); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.8; } }
@keyframes pj-minister { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 60% { transform: translateX(4px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes pj-physician { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 30% { transform: translateX(4px) translateY(1px) rotate(-1deg); } 60% { transform: translateX(2px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes pj-joylight { 0% { opacity: 0.5; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.8); } }

.scn-uncle-sams-gold { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #3a3028 100%), radial-gradient(ellipse at 50% 100%, #3a3028 0%, transparent 70%); }
.scn-uncle-sams-gold .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); animation: usg-wall 12s ease-in-out infinite alternate; }
.scn-uncle-sams-gold .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a3028 0%, #1a1a16 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,.6); }
.scn-uncle-sams-gold .chest { position:absolute; bottom:20%; left:50%; width:100px; height:60px; transform:translateX(-50%); background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.7); animation: usg-chest 10s ease-in-out infinite; }
.scn-uncle-sams-gold .chest-glow { position:absolute; bottom:24%; left:50%; width:40px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #c0a050 0%, #806020 70%); border-radius:50%; box-shadow: 0 0 40px 20px #c0a050, 0 0 80px 40px rgba(192,160,80,.4); animation: usg-glow 3s ease-in-out infinite alternate; }
.scn-uncle-sams-gold .figure { position:absolute; bottom:24%; left:30%; width:24px; height:48px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: usg-figure 4s ease-in-out infinite; }
.scn-uncle-sams-gold .candle { position:absolute; bottom:30%; left:48%; width:8px; height:16px; background: linear-gradient(180deg, #d0c080 0%, #a09050 100%); border-radius:4px; box-shadow: 0 0 12px 4px rgba(255,200,100,.3); animation: usg-candle 2s ease-in-out infinite alternate; }
.scn-uncle-sams-gold .candle-smoke { position:absolute; bottom:46%; left:48%; width:12px; height:20px; background: radial-gradient(circle, rgba(200,180,160,.2) 0%, transparent 70%); filter: blur(4px); animation: usg-smoke 5s linear infinite; }
@keyframes usg-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes usg-chest { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) rotate(-1deg) } }
@keyframes usg-glow { 0% { box-shadow: 0 0 20px 10px #c0a050, 0 0 60px 30px rgba(192,160,80,.3); opacity:.8 } 50% { box-shadow: 0 0 50px 25px #e0c080, 0 0 100px 50px rgba(224,192,128,.5); opacity:1 } 100% { box-shadow: 0 0 30px 15px #c0a050, 0 0 70px 35px rgba(192,160,80,.35); opacity:.9 } }
@keyframes usg-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes usg-candle { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.9; transform: scaleY(0.95) } }
@keyframes usg-smoke { 0% { transform: translateY(0) scale(.6); opacity:.1 } 50% { transform: translateY(-20px) scale(1); opacity:.3 } 100% { transform: translateY(-40px) scale(1.2); opacity:0 } }

.scn-surveyors-melancholy { background: linear-gradient(180deg, #1c1c2a 0%, #242430 30%, #2a2a2a 100%), radial-gradient(ellipse at 70% 30%, #2a2a3a 0%, transparent 60%); }
.scn-surveyors-melancholy .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #242430 0%, #1a1a24 100%); animation: sm-wall 15s ease-in-out infinite alternate; }
.scn-surveyors-melancholy .window { position:absolute; top:10%; left:10%; width:30%; height:50%; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border:4px solid #3a2a1a; border-radius:8px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: sm-window 8s ease-in-out infinite alternate; }
.scn-surveyors-melancholy .desk { position:absolute; bottom:20%; right:10%; width:50%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:6px 6px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-surveyors-melancholy .figure { position:absolute; bottom:25%; right:25%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sm-figure 6s ease-in-out infinite; }
.scn-surveyors-melancholy .papers { position:absolute; bottom:30%; right:22%; width:40%; height:8%; background: linear-gradient(180deg, #d0c0a0 0%, #b8a890 100%); border-radius:3px; transform: rotate(-5deg); animation: sm-papers 4s ease-in-out infinite alternate; }
.scn-surveyors-melancholy .clock { position:absolute; top:8%; right:8%; width:24px; height:24px; background: radial-gradient(circle, #c0b090 0%, #807060 100%); border-radius:50%; border:2px solid #4a3a2a; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: sm-clock 2s linear infinite; }
@keyframes sm-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes sm-window { 0% { filter: brightness(1); transform: scale(1) } 50% { filter: brightness(1.2); transform: scale(1.02) } 100% { filter: brightness(0.8); transform: scale(0.98) } }
@keyframes sm-figure { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(0) } 60% { transform: translateY(0) rotate(2deg) } 100% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes sm-papers { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(3px) } 100% { transform: rotate(-3deg) translateX(-2px) } }
@keyframes sm-clock { 0% { transform: rotate(0) } 50% { transform: rotate(6deg) } 100% { transform: rotate(0) } }

.scn-fear-of-becoming-inspector { background: linear-gradient(180deg, #14141e 0%, #1c1c28 40%, #2a2a3a 100%), radial-gradient(ellipse at 30% 50%, #2a2a3a 0%, transparent 60%); }
.scn-fear-of-becoming-inspector .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1c1c28 0%, #14141e 100%); animation: fbi-wall 12s ease-in-out infinite alternate; }
.scn-fear-of-becoming-inspector .shadow { position:absolute; bottom:0; left:0; right:0; height:60%; background: radial-gradient(ellipse at 50% 100%, #0a0a12 0%, transparent 70%); animation: fbi-shadow 8s ease-in-out infinite alternate; }
.scn-fear-of-becoming-inspector .desk { position:absolute; bottom:15%; left:5%; width:60%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:6px 6px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.7); }
.scn-fear-of-becoming-inspector .figure { position:absolute; bottom:25%; left:20%; width:22px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fbi-figure 5s ease-in-out infinite; }
.scn-fear-of-becoming-inspector .lamp { position:absolute; top:30%; left:10%; width:10px; height:20px; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius:5px; box-shadow: 0 0 30px 15px rgba(255,200,100,.3); animation: fbi-lamp 3s ease-in-out infinite alternate; }
.scn-fear-of-becoming-inspector .clock { position:absolute; top:12%; right:15%; width:20px; height:20px; background: radial-gradient(circle, #a09070 0%, #706050 100%); border-radius:50%; border:2px solid #3a2a1a; animation: fbi-clock 1s linear infinite; }
@keyframes fbi-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fbi-shadow { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.05) } 100% { opacity:.7; transform: scaleY(0.95) } }
@keyframes fbi-figure { 0% { transform: translateY(0) rotate(-3deg) scale(1) } 25% { transform: translateY(-2px) rotate(0) scale(1.02) } 50% { transform: translateY(0) rotate(3deg) scale(1) } 75% { transform: translateY(-1px) rotate(0) scale(0.98) } 100% { transform: translateY(0) rotate(-2deg) scale(1) } }
@keyframes fbi-lamp { 0% { box-shadow: 0 0 20px 10px rgba(255,200,100,.2); opacity:.8 } 50% { box-shadow: 0 0 40px 20px rgba(255,200,100,.5); opacity:1 } 100% { box-shadow: 0 0 25px 12px rgba(255,200,100,.3); opacity:.9 } }
@keyframes fbi-clock { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0) } }

.scn-providence-better-things { background: linear-gradient(180deg, #362818 0%, #4a3828 30%, #5a4a3a 100%), radial-gradient(ellipse at 50% 80%, #4a3828 0%, transparent 60%); }
.scn-providence-better-things .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3828 0%, #362818 100%); animation: pbt-wall 10s ease-in-out infinite alternate; }
.scn-providence-better-things .fire { position:absolute; bottom:15%; left:20%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 100%, #d06020 0%, #a04010 40%, #802010 70%, transparent 100%); border-radius:50%; animation: pbt-fire 4s ease-in-out infinite alternate; }
.scn-providence-better-things .fireplace { position:absolute; bottom:10%; left:15%; width:40%; height:45%; background: linear-gradient(180deg, #6a4a30 0%, #3a2a18 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-providence-better-things .mantel { position:absolute; bottom:50%; left:15%; width:40%; height:6%; background: linear-gradient(180deg, #8a6a50 0%, #5a3a20 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pbt-mantel 7s ease-in-out infinite alternate; }
.scn-providence-better-things .portrait { position:absolute; top:10%; right:20%; width:20%; height:35%; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border:3px solid #8a6a50; border-radius:6px; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: pbt-portrait 12s ease-in-out infinite; }
.scn-providence-better-things .figure { position:absolute; bottom:20%; right:30%; width:24px; height:42px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pbt-figure 5s ease-in-out infinite; }
.scn-providence-better-things .armchair { position:absolute; bottom:14%; right:20%; width:40%; height:30%; background: linear-gradient(180deg, #5a3a28 0%, #3a2010 100%); border-radius:20% 20% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: pbt-chair 9s ease-in-out infinite alternate; }
@keyframes pbt-wall { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pbt-fire { 0% { transform: scaleY(1) scaleX(1); opacity:.8 } 50% { transform: scaleY(1.1) scaleX(0.95); opacity:1 } 100% { transform: scaleY(0.9) scaleX(1.05); opacity:.9 } }
@keyframes pbt-mantel { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pbt-portrait { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes pbt-figure { 0% { transform: translateY(0) rotate(-2deg) } 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 pbt-chair { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }

.scn-agony-mitigated {
  background:
    linear-gradient(180deg, #f7e8c8 0%, #d4c4a0 40%, #b0a080 100%),
    radial-gradient(ellipse at 50% 25%, #fff5e0 0%, transparent 50%);
}
.scn-agony-mitigated .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a8d8ff 0%, #f7e8c8 100%);
  animation: am-sky 12s ease-in-out infinite alternate;
}
.scn-agony-mitigated .sun {
  position: absolute; top: 8%; left: 60%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #fffbe0 0%, #f0d080 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(240,208,128,0.3);
  animation: am-sun 8s ease-in-out infinite alternate;
}
.scn-agony-mitigated .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-agony-mitigated .figure {
  position: absolute; bottom: 26%; left: 50%;
  width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a2018 0%, #4a3a2a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am-figure 6s ease-in-out infinite;
}
.scn-agony-mitigated .shadow {
  position: absolute; bottom: 24%; left: 48%;
  width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: am-shadow 6s ease-in-out infinite;
}
.scn-agony-mitigated .distant-hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  opacity: 0.5;
  animation: am-hills 20s ease-in-out infinite alternate;
}
@keyframes am-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes am-sun { 0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 60px 30px rgba(240,208,128,0.3); } 50% { transform: scale(1.05) translate(2px, -2px); box-shadow: 0 0 100px 50px rgba(240,208,128,0.4); } 100% { transform: scale(0.98) translate(-1px, 1px); box-shadow: 0 0 70px 35px rgba(240,208,128,0.25); } }
@keyframes am-figure { 0% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 50% { transform: translateX(-50%) rotate(0.5deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(1deg) translateY(0); } }
@keyframes am-shadow { 0% { transform: scaleX(1); opacity: 0.6; } 50% { transform: scaleX(1.1); opacity: 0.5; } 100% { transform: scaleX(0.9); opacity: 0.7; } }
@keyframes am-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-pillory-scaffold {
  background:
    linear-gradient(180deg, #d4b85a 0%, #9a8a4a 30%, #6a5a3a 100%),
    radial-gradient(ellipse at 50% 20%, #f0e0a0 0%, transparent 50%);
}
.scn-pillory-scaffold .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8ab8e0 0%, #a8c8f0 30%, #f0e0c0 100%);
  animation: ps-sky 15s ease-in-out infinite alternate;
}
.scn-pillory-scaffold .sun {
  position: absolute; top: 12%; left: 30%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8d0 0%, #f0c860 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,200,96,0.4);
  animation: ps-sun 10s ease-in-out infinite alternate;
}
.scn-pillory-scaffold .scaffold-base {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6);
}
.scn-pillory-scaffold .platform {
  position: absolute; bottom: 28%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ps-platform 8s ease-in-out infinite alternate;
}
.scn-pillory-scaffold .pillory {
  position: absolute; bottom: 34%; left: 43%; right: 43%; height: 8%;
  background: linear-gradient(180deg, #5a2a0a 0%, #3a1a00 100%);
  border-radius: 4px;
}
.scn-pillory-scaffold .chain-left {
  position: absolute; bottom: 42%; left: 36%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  transform-origin: top center;
  animation: ps-chain 4s ease-in-out infinite;
}
.scn-pillory-scaffold .chain-right {
  position: absolute; bottom: 42%; right: 36%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  transform-origin: top center;
  animation: ps-chain 4s ease-in-out infinite reverse;
}
.scn-pillory-scaffold .shadow-pool {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  animation: ps-shadow 12s ease-in-out infinite alternate;
}
@keyframes ps-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes ps-sun { 0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 40px 20px rgba(240,200,96,0.4); } 50% { transform: scale(1.08) translate(3px, -1px); box-shadow: 0 0 80px 40px rgba(240,200,96,0.5); } 100% { transform: scale(0.95) translate(-2px, 2px); box-shadow: 0 0 50px 25px rgba(240,200,96,0.3); } }
@keyframes ps-platform { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes ps-chain { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes ps-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-hester-ascends-platform {
  background:
    linear-gradient(180deg, #f0d8a0 0%, #d4b880 30%, #a09870 100%),
    radial-gradient(ellipse at 50% 30%, #fff0c0 0%, transparent 60%);
}
.scn-hester-ascends-platform .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #a0c8f0 0%, #d0d8b0 60%, #f0d8a0 100%);
  animation: ha-sky 18s ease-in-out infinite alternate;
}
.scn-hester-ascends-platform .sun {
  position: absolute; top: 5%; right: 20%;
  width: 45px; height: 45px;
  background: radial-gradient(circle, #fffbe0 0%, #f0d080 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 70px 35px rgba(240,208,128,0.3);
  animation: ha-sun 9s ease-in-out infinite alternate;
}
.scn-hester-ascends-platform .steps {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  clip-path: polygon(0% 100%, 100% 100%, 100% 0%, 80% 5%, 80% 20%, 60% 25%, 60% 40%, 40% 45%, 40% 60%, 20% 65%, 20% 80%, 0% 85%);
  animation: ha-steps 12s ease-in-out infinite alternate;
}
.scn-hester-ascends-platform .railing {
  position: absolute; bottom: 30%; left: 12%; right: 12%; height: 4%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-hester-ascends-platform .figure {
  position: absolute; bottom: 20%; left: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-figure 5s ease-in-out infinite;
}
.scn-hester-ascends-platform .shadow-cast {
  position: absolute; bottom: 16%; left: 24%; width: 34px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: ha-shadow 5s ease-in-out infinite;
}
.scn-hester-ascends-platform .dust-motes {
  position: absolute; top: 10%; left: 0; right: 0; height: 100%;
  background: radial-gradient(circle at 30% 20%, rgba(255,240,180,0.1) 0%, transparent 50%);
  animation: ha-dust 25s linear infinite;
}
@keyframes ha-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ha-sun { 0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 50px 25px rgba(240,208,128,0.3); } 50% { transform: scale(1.1) translate(-2px, -1px); box-shadow: 0 0 90px 45px rgba(240,208,128,0.45); } 100% { transform: scale(0.95) translate(1px, 2px); box-shadow: 0 0 60px 30px rgba(240,208,128,0.25); } }
@keyframes ha-steps { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes ha-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ha-shadow { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 0.3; } 100% { transform: scale(0.9); opacity: 0.6; } }
@keyframes ha-dust { 0% { transform: translateY(0); opacity: 0.3; } 50% { transform: translateY(-20px); opacity: 0.1; } 100% { transform: translateY(-40px); opacity: 0; } }

.scn-divine-maternity-contrast {
  background:
    linear-gradient(180deg, #f0d8b0 0%, #d4b880 40%, #b09870 100%),
    radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 50%);
}
.scn-divine-maternity-contrast .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0d0f0 0%, #d0d8c0 60%, #f0d8b0 100%);
  animation: dm-sky 14s ease-in-out infinite alternate;
}
.scn-divine-maternity-contrast .sun {
  position: absolute; top: 10%; left: 50%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fffbe0 0%, #f0d080 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 100px 50px rgba(240,208,128,0.3);
  animation: dm-sun 10s ease-in-out infinite alternate;
}
.scn-divine-maternity-contrast .woman {
  position: absolute; bottom: 20%; left: 44%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dm-woman 7s ease-in-out infinite;
}
.scn-divine-maternity-contrast .infant {
  position: absolute; bottom: 30%; left: 46%; width: 12px; height: 12px;
  background: radial-gradient(circle, #7a5a3a 0%, #3a1a0a 100%);
  border-radius: 50%;
  animation: dm-infant 7s ease-in-out infinite;
}
.scn-divine-maternity-contrast .halo {
  position: absolute; bottom: 42%; left: 42%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,240,200,0.3) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,240,200,0.2);
  animation: dm-halo 9s ease-in-out infinite alternate;
}
.scn-divine-maternity-contrast .veil {
  position: absolute; bottom: 22%; left: 41%; width: 30px; height: 20px;
  background: linear-gradient(180deg, rgba(200,180,160,0.4) 0%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: dm-veil 6s ease-in-out infinite alternate;
}
.scn-divine-maternity-contrast .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
}
@keyframes dm-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dm-sun { 0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 80px 40px rgba(240,208,128,0.3); } 50% { transform: scale(1.05) translate(2px, -1px); box-shadow: 0 0 120px 60px rgba(240,208,128,0.45); } 100% { transform: scale(0.98) translate(-1px, 1px); box-shadow: 0 0 90px 45px rgba(240,208,128,0.25); } }
@keyframes dm-woman { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes dm-infant { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes dm-halo { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes dm-veil { 0% { transform: translateY(0) rotate(-2deg); opacity: 0.3; } 50% { transform: translateY(-2px) rotate(2deg); opacity: 0.5; } 100% { transform: translateY(0) rotate(-1deg); opacity: 0.2; } }

.scn-prison-door-crowd {
  background: linear-gradient(180deg, #b8a88a 0%, #d4c8a8 30%, #e0d4b8 60%, #c8b898 100%), radial-gradient(ellipse at 60% 30%, #f0e8d8 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-prison-door-crowd .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0e8d8 0%, #d4c8a8 100%);
  animation: si1-sky 10s ease-in-out infinite alternate;
}
.scn-prison-door-crowd .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-prison-door-crowd .jail-wall {
  position: absolute; bottom: 30%; left: 50%; width: 40%; height: 70%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 30px rgba(0,0,0,0.6);
}
.scn-prison-door-crowd .door {
  position: absolute; bottom: 30%; left: 50%; width: 18%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border: 4px solid #4a3a2a;
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 0 4px 12px rgba(0,0,0,0.5);
}
.scn-prison-door-crowd .iron-stud {
  position: absolute; bottom: 42%; left: 50%; width: 4%; height: 4%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #6a5a4a 0%, #2a221a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.8);
  animation: si1-stud 4s ease-in-out infinite alternate;
}
.scn-prison-door-crowd .crowd-fig-1 {
  position: absolute; bottom: 15%; left: 20%; width: 5%; height: 25%;
  background: linear-gradient(180deg, #2a221a 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si1-crowd-walk 6s ease-in-out infinite;
}
.scn-prison-door-crowd .crowd-fig-2 {
  position: absolute; bottom: 15%; left: 30%; width: 5%; height: 25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #120e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si1-crowd-walk 6s ease-in-out infinite reverse;
  animation-delay: 1.2s;
}
.scn-prison-door-crowd .crowd-fig-3 {
  position: absolute; bottom: 15%; left: 70%; width: 5%; height: 25%;
  background: linear-gradient(180deg, #2a221a 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si1-crowd-walk 6s ease-in-out infinite;
  animation-delay: 2.5s;
}
.scn-prison-door-crowd .hat-shade {
  position: absolute; bottom: 35%; left: 20%; width: 6%; height: 8%;
  background: #1a1208;
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  clip-path: polygon(0 20%, 100% 20%, 85% 100%, 15% 100%);
  animation: si1-hat 8s ease-in-out infinite alternate;
  opacity: 0.8;
}
@keyframes si1-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes si1-stud { 0% { transform: translateX(-50%) scale(1); } 100% { transform: translateX(-50%) scale(1.08); box-shadow: 0 0 10px rgba(0,0,0,0.9); } }
@keyframes si1-crowd-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes si1-hat { 0% { transform: rotate(-2deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(2deg); } }

.scn-founders-cemetery-and-prison {
  background: linear-gradient(180deg, #a89880 0%, #c8b898 30%, #d8c8a8 60%, #b8a888 100%), radial-gradient(ellipse at 40% 20%, #e0d4bc 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-founders-cemetery-and-prison .sky-fcp {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d0c0a0 0%, #c0b090 100%);
  animation: si2-sky 12s ease-in-out infinite alternate;
}
.scn-founders-cemetery-and-prison .ground-fcp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-founders-cemetery-and-prison .prison-fcp {
  position: absolute; bottom: 25%; left: 10%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #6a5a42 0%, #3a2e1e 100%);
  border-radius: 3% 3% 0 0;
  box-shadow: 0 0 30px rgba(0,0,0,0.5);
}
.scn-founders-cemetery-and-prison .gravestone-1 {
  position: absolute; bottom: 20%; left: 60%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  transform: rotate(-2deg);
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: si2-grave 9s ease-in-out infinite alternate;
}
.scn-founders-cemetery-and-prison .gravestone-2 {
  position: absolute; bottom: 22%; left: 70%; width: 5%; height: 14%;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  transform: rotate(3deg);
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: si2-grave 9s ease-in-out infinite alternate;
  animation-delay: 1.5s;
}
.scn-founders-cemetery-and-prison .gravestone-3 {
  position: absolute; bottom: 18%; left: 80%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #907060 0%, #604040 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  transform: rotate(-1deg);
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: si2-grave 9s ease-in-out infinite alternate;
  animation-delay: 3s;
}
.scn-founders-cemetery-and-prison .weed-1 {
  position: absolute; bottom: 35%; left: 55%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform: rotate(10deg);
  animation: si2-weed 5s ease-in-out infinite alternate;
}
.scn-founders-cemetery-and-prison .weed-2 {
  position: absolute; bottom: 32%; left: 75%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  transform: rotate(-8deg);
  animation: si2-weed 5s ease-in-out infinite alternate;
  animation-delay: 2s;
}
@keyframes si2-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes si2-grave { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes si2-weed { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); } }

.scn-aged-prison-door {
  background: linear-gradient(180deg, #4a3e2e 0%, #5a4e3e 30%, #6a5a4a 60%, #3a2e1e 100%), radial-gradient(ellipse at 50% 40%, #8a7a6a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-aged-prison-door .door-frame {
  position: absolute; inset: 10% 15% 20% 15%;
  background: linear-gradient(180deg, #6a5a42 0%, #3a2e1e 100%);
  border-radius: 2% 2% 1% 1%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 20px rgba(0,0,0,0.5);
}
.scn-aged-prison-door .door-plank {
  position: absolute; top: 12%; left: 20%; width: 60%; height: 65%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 20%, #5a4a3a 40%, #4a3a2a 60%, #6a5a4a 80%, #5a4a3a 100%);
  border-radius: 1% 1% 0 0;
  box-shadow: inset 0 2px 4px rgba(255,255,200,0.1), 0 4px 8px rgba(0,0,0,0.6);
}
.scn-aged-prison-door .iron-hinge-left {
  position: absolute; top: 25%; left: 16%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 50%, #6a5a4a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.8);
  animation: si3-hinge 6s ease-in-out infinite alternate;
}
.scn-aged-prison-door .iron-hinge-right {
  position: absolute; top: 25%; right: 16%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 50%, #6a5a4a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.8);
  animation: si3-hinge 6s ease-in-out infinite alternate;
  animation-delay: 2s;
}
.scn-aged-prison-door .rust-spot-1 {
  position: absolute; top: 30%; left: 35%; width: 6%; height: 6%;
  background: radial-gradient(circle, #a05530 0%, #703020 50%, transparent 100%);
  border-radius: 50%;
  animation: si3-rust 8s ease-in-out infinite alternate;
}
.scn-aged-prison-door .rust-spot-2 {
  position: absolute; top: 50%; right: 30%; width: 8%; height: 8%;
  background: radial-gradient(circle, #a05530 0%, #703020 50%, transparent 100%);
  border-radius: 50%;
  animation: si3-rust 8s ease-in-out infinite alternate;
  animation-delay: 3s;
}
.scn-aged-prison-door .shadow-wash {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.4) 100%);
  mix-blend-mode: multiply;
  animation: si3-shadow 9s ease-in-out infinite alternate;
}
.scn-aged-prison-door .sun-glint {
  position: absolute; top: 15%; left: 45%; width: 10%; height: 10%;
  background: radial-gradient(circle, rgba(255,240,200,0.8) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: si3-glint 5s ease-in-out infinite alternate;
}
@keyframes si3-hinge { 0% { box-shadow: 2px 0 6px rgba(0,0,0,0.8); } 50% { box-shadow: 2px 0 10px rgba(0,0,0,0.9); } 100% { box-shadow: 2px 0 6px rgba(0,0,0,0.8); } }
@keyframes si3-rust { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes si3-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes si3-glint { 0% { opacity: 0.3; transform: translate(0,0); } 50% { opacity: 0.8; transform: translate(3px, -2px); } 100% { opacity: 0.3; transform: translate(0,0); } }

.scn-grass-plot-and-rose-bush {
  background: linear-gradient(180deg, #5a6a3a 0%, #7a8a5a 30%, #6a7a4a 60%, #4a5a2a 100%), radial-gradient(ellipse at 50% 80%, #8a9a6a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-grass-plot-and-rose-bush .grass-bg {
  position: absolute; inset: 20% 0 0 0;
  background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-grass-plot-and-rose-bush .burdock {
  position: absolute; bottom: 30%; left: 15%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a12 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(8deg);
  animation: si4-weed 6s ease-in-out infinite alternate;
}
.scn-grass-plot-and-rose-bush .pigweed {
  position: absolute; bottom: 25%; left: 75%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-5deg);
  animation: si4-weed 6s ease-in-out infinite alternate;
  animation-delay: 2s;
}
.scn-grass-plot-and-rose-bush .apple-peru {
  position: absolute; bottom: 35%; left: 45%; width: 5%; height: 15%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 50% 50% 10% 10% / 40% 40% 10% 10%;
  transform: rotate(15deg);
  animation: si4-weed 6s ease-in-out infinite alternate;
  animation-delay: 4s;
}
.scn-grass-plot-and-rose-bush .rose-bush {
  position: absolute; bottom: 30%; left: 35%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
}
.scn-grass-plot-and-rose-bush .rose-blossom {
  position: absolute; bottom: 55%; left: 42%; width: 4%; height: 4%;
  background: radial-gradient(circle, #b87878 0%, #703030 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(184,120,120,0.4);
  animation: si4-rose 4s ease-in-out infinite alternate;
}
.scn-grass-plot-and-rose-bush .prison-outline {
  position: absolute; bottom: 10%; right: 10%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0604 100%);
  border-radius: 5% 5% 0 0;
  opacity: 0.3;
  box-shadow: 0 0 30px rgba(0,0,0,0.5);
}
@keyframes si4-weed { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes si4-rose { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 0.7; } }

/* inspector-fit-for-office */
.scn-inspector-fit-for-office {
  background:
    linear-gradient(180deg, #2a1e12 0%, #1c1410 50%, #0f0b08 100%),
    radial-gradient(ellipse at 20% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-inspector-fit-for-office .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(30,20,12,.6) 0%, transparent 60%);
}
.scn-inspector-fit-for-office .desk {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 6px 20px rgba(0,0,0,.6);
}
.scn-inspector-fit-for-office .figure {
  position: absolute; bottom: 18%; left: 38%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: if-figure 8s ease-in-out infinite;
}
.scn-inspector-fit-for-office .candle {
  position: absolute; bottom: 26%; left: 55%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #e8c070 0%, #b08030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 10px 2px #b08030;
  animation: if-candle 4s ease-in-out infinite alternate;
}
.scn-inspector-fit-for-office .candle-glow {
  position: absolute; bottom: 24%; left: 54%; width: 8%; height: 14%;
  background: radial-gradient(circle, rgba(200,140,60,.5) 0%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: if-glow 3s ease-in-out infinite alternate;
}
.scn-inspector-fit-for-office .papers {
  position: absolute; bottom: 14%; left: 48%; width: 12%; height: 4%;
  background: #d4c0a0; border-radius: 2px;
  transform: rotate(-5deg);
  animation: if-paper 12s ease-in-out infinite;
}
.scn-inspector-fit-for-office .coat-rack {
  position: absolute; bottom: 18%; left: 70%; width: 4%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 2px 2px 0 0;
  animation: if-rack 20s ease-in-out infinite alternate;
}

@keyframes if-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes if-candle {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes if-glow {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes if-paper {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes if-rack {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}

/* gallant-old-general */
.scn-gallant-old-general {
  background:
    linear-gradient(180deg, #1e1a18 0%, #141210 50%, #0a0a08 100%),
    radial-gradient(ellipse at 80% 50%, #2a2018 0%, transparent 60%);
}
.scn-gallant-old-general .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(10,8,6,.5) 100%);
}
.scn-gallant-old-general .portrait-frame {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 70%;
  background: linear-gradient(135deg, #6a5040 0%, #3a2a1a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 0 30px 10px rgba(0,0,0,.7), inset 0 0 0 4px #8a7050;
}
.scn-gallant-old-general .general {
  position: absolute; bottom: 18%; left: 32%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #2a2825 0%, #1a1815 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gg-general 10s ease-in-out infinite;
}
.scn-gallant-old-general .epaulette {
  position: absolute; bottom: 55%; left: 38%; width: 6%; height: 6%;
  background: radial-gradient(circle, #b89870 0%, #806040 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(200,160,100,.3);
  animation: gg-epaulette 8s ease-in-out infinite alternate;
}
.scn-gallant-old-general .medal {
  position: absolute; bottom: 42%; left: 42%; width: 4%; height: 4%;
  background: radial-gradient(circle, #d0b080 0%, #907050 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,160,100,.4);
  animation: gg-medal 6s ease-in-out infinite;
}
.scn-gallant-old-general .sword {
  position: absolute; bottom: 30%; left: 30%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #b0a090 0%, #807060 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: gg-sword 12s ease-in-out infinite;
}
.scn-gallant-old-general .shadow {
  position: absolute; bottom: 10%; left: 28%; width: 44%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: gg-shadow 15s ease-in-out infinite alternate;
}

@keyframes gg-general {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(0.3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gg-epaulette {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.05) translateY(-1px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes gg-medal {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes gg-sword {
  0% { transform: rotate(15deg) scaleY(1); }
  50% { transform: rotate(16deg) scaleY(1.01); }
  100% { transform: rotate(15deg) scaleY(1); }
}
@keyframes gg-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.05); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* general-palsied-step */
.scn-general-palsied-step {
  background:
    linear-gradient(135deg, #1c1410 0%, #120c0a 30%, #0a0806 100%),
    radial-gradient(ellipse at 50% 0%, #2a1e16 0%, transparent 70%);
}
.scn-general-palsied-step .bg-stair {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, #1a1410 0px, #1a1410 15px, #0f0a08 15px, #0f0a08 30px);
  transform: skewY(-10deg);
  transform-origin: bottom left;
}
.scn-general-palsied-step .railing {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 2%;
  background: #3a2a1a; border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: gp-railing 20s ease-in-out infinite alternate;
}
.scn-general-palsied-step .general-step {
  position: absolute; bottom: 22%; left: 20%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a2520 0%, #1a1510 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gp-climb 6s ease-in-out infinite;
}
.scn-general-palsied-step .servant {
  position: absolute; bottom: 18%; left: 35%; width: 10%; height: 24%;
  background: linear-gradient(180deg, #1e1a15 0%, #0e0a08 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: gp-servant 6s ease-in-out infinite;
}
.scn-general-palsied-step .cane {
  position: absolute; bottom: 24%; left: 18%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 1px; transform: rotate(10deg);
  transform-origin: bottom left;
  animation: gp-cane 6s ease-in-out infinite;
}
.scn-general-palsied-step .shadow-step {
  position: absolute; bottom: 12%; left: 16%; width: 20%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(3px);
  animation: gp-shadow 6s ease-in-out infinite;
}
.scn-general-palsied-step .wall-lamp {
  position: absolute; top: 20%; left: 75%; width: 6%; height: 10%;
  background: radial-gradient(circle, #d0a060 0%, #a08030 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(180,120,40,.3);
  animation: gp-lamp 4s ease-in-out infinite alternate;
}

@keyframes gp-climb {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(1deg); }
  75% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes gp-servant {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes gp-cane {
  0% { transform: rotate(10deg) translateY(0); }
  25% { transform: rotate(12deg) translateY(-2px); }
  50% { transform: rotate(10deg) translateY(-4px); }
  75% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes gp-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(0.9); }
  100% { opacity: 0.4; transform: scaleX(1); }
}
@keyframes gp-lamp {
  0% { opacity: 0.6; box-shadow: 0 0 12px 4px rgba(180,120,40,.2); }
  50% { opacity: 1; box-shadow: 0 0 24px 8px rgba(180,120,40,.4); }
  100% { opacity: 0.7; box-shadow: 0 0 15px 5px rgba(180,120,40,.25); }
}
@keyframes gp-railing {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(1); }
}

/* general-kindly-countenance */
.scn-general-kindly-countenance {
  background:
    linear-gradient(180deg, #1c100c 0%, #2a1810 30%, #3a2018 60%, #4a2820 100%),
    radial-gradient(ellipse at 50% 0%, #8a4030 0%, transparent 60%);
}
.scn-general-kindly-countenance .bg-fire {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(200,100,50,.15) 100%);
}
.scn-general-kindly-countenance .fireplace {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px 10px rgba(0,0,0,.8);
}
.scn-general-kindly-countenance .fire {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #ffb060 0%, #d07030 40%, #8a3018 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: gk-fire 2s ease-in-out infinite alternate;
}
.scn-general-kindly-countenance .armchair {
  position: absolute; bottom: 8%; left: 20%; width: 30%; height: 30%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2018 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
}
.scn-general-kindly-countenance .figure-profile {
  position: absolute; bottom: 14%; left: 22%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #2a2018 0%, #1a120e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gk-figure 10s ease-in-out infinite;
}
.scn-general-kindly-countenance .glow-light {
  position: absolute; bottom: 18%; left: 18%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,180,80,.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: gk-glow 4s ease-in-out infinite alternate;
}
.scn-general-kindly-countenance .book {
  position: absolute; bottom: 14%; left: 24%; width: 8%; height: 6%;
  background: #4a3520; border-radius: 2px;
  transform: rotate(5deg);
  animation: gk-book 15s ease-in-out infinite;
}

@keyframes gk-fire {
  0% { transform: scaleY(0.9) scaleX(1); opacity: 0.7; }
  50% { transform: scaleY(1.1) scaleX(1.05); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(0.98); opacity: 0.8; }
}
@keyframes gk-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gk-glow {
  0% { opacity: 0.2; transform: scale(0.9); }
  50% { opacity: 0.5; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}
@keyframes gk-book {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(5deg) translateY(0); }
}

/* scene: fouler-offence — firelit, hate */
.scn-fouler-offence {
  background: 
    radial-gradient(ellipse 70% 60% at 50% 100%, #4a2a1a 0%, #1a0a0a 70%, #0a0505 100%),
    linear-gradient(180deg, #1a0a08 0%, #2a1510 40%, #3a2018 100%);
}
.scn-fouler-offence .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a0a08 0%, #0a0505 100%);
  animation: fo-room 12s ease-in-out infinite alternate;
}
.scn-fouler-offence .fire-glow {
  position: absolute; bottom: 30%; left: 45%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #ff8020 0%, #c84a0a 40%, transparent 80%);
  mix-blend-mode: screen; animation: fo-fireglow 4s ease-in-out infinite alternate;
}
.scn-fouler-offence .figure-hester {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center; animation: fo-hester 6s ease-in-out infinite;
}
.scn-fouler-offence .figure-chillingworth {
  position: absolute; bottom: 20%; right: 28%; width: 46px; height: 80px;
  background: linear-gradient(180deg, #1a1510 0%, #0a0808 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center; animation: fo-chill 7s ease-in-out infinite;
}
.scn-fouler-offence .flame-core {
  position: absolute; bottom: 40%; left: 48%; width: 16px; height: 30px;
  background: radial-gradient(circle, #ffe080 0%, #ff6020 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 24px 8px #ff8020;
  animation: fo-flame 0.8s ease-in-out infinite alternate;
}
.scn-fouler-offence .smoke-smear {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(60,40,30,0.3) 0%, transparent 100%);
  filter: blur(10px); animation: fo-smoke 20s linear infinite;
}
.scn-fouler-offence .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0505 100%);
  animation: fo-shadow 12s ease-in-out infinite alternate;
}
@keyframes fo-room { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes fo-fireglow { 0% { opacity: 0.7; transform: scale(1,1) } 50% { opacity: 1; transform: scale(1.05,1.1) } 100% { opacity: 0.8; transform: scale(0.95,0.9) } }
@keyframes fo-hester { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes fo-chill { 0% { transform: translateX(0) rotate(1deg) } 33% { transform: translateX(-3px) rotate(-1deg) } 66% { transform: translateX(1px) rotate(0) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes fo-flame { 0% { transform: scaleY(0.8) translateY(0); opacity: 0.9 } 50% { transform: scaleY(1.3) translateY(-5px); opacity: 1 } 100% { transform: scaleY(0.9) translateY(2px); opacity: 0.95 } }
@keyframes fo-smoke { 0% { transform: translateX(0) translateY(0) scale(1); opacity: 0 } 20% { opacity: 0.4 } 40% { transform: translateX(30px) translateY(-20px) scale(1.5); opacity: 0.1 } 100% { transform: translateX(100px) translateY(-50px) scale(2); opacity: 0 } }
@keyframes fo-shadow { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }

/* scene: warning-to-men — firelit, warning */
.scn-warning-to-men {
  background: 
    radial-gradient(ellipse 60% 50% at 50% 80%, #3a1a0a 0%, #1a0a05 70%, #0a0505 100%),
    linear-gradient(180deg, #0f0805 0%, #1a0e08 40%, #0a0505 100%);
}
.scn-warning-to-men .cavern-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a0e08 0%, #0a0505 100%);
  animation: wt-cavern 15s ease-in-out infinite alternate;
}
.scn-warning-to-men .figure-woman {
  position: absolute; bottom: 20%; left: 35%; width: 55px; height: 100px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center; animation: wt-woman 8s ease-in-out infinite;
}
.scn-warning-to-men .hand-reaching {
  position: absolute; bottom: 50%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: left center; animation: wt-hand 3s ease-in-out infinite;
}
.scn-warning-to-men .heart-glow {
  position: absolute; bottom: 50%; left: 62%; width: 20px; height: 18px;
  background: radial-gradient(circle, #ff6040 0%, #c83020 60%, transparent 100%);
  border-radius: 50% 50% 40% 40%; box-shadow: 0 0 30px 10px rgba(255,80,40,0.6);
  animation: wt-heart 4s ease-in-out infinite alternate;
}
.scn-warning-to-men .ember-rain {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  pointer-events: none;
}
.scn-warning-to-men .ember-a {
  background: repeating-linear-gradient(0deg, transparent 0%, transparent 70%, rgba(255,160,40,0.15) 70%, transparent 75%) 0 0 / 100% 100%;
  animation: wt-ember-a 3s linear infinite;
}
.scn-warning-to-men .ember-b {
  background: repeating-linear-gradient(0deg, transparent 0%, transparent 40%, rgba(200,80,20,0.1) 40%, transparent 45%) 0 0 / 100% 100%;
  animation: wt-ember-b 4.5s linear infinite;
}
.scn-warning-to-men .chain-link {
  position: absolute; bottom: 15%; left: 40%; width: 60px; height: 20px;
  background: repeating-linear-gradient(90deg, #1a1510 0px, #1a1510 4px, transparent 4px, transparent 8px);
  border-radius: 10px; animation: wt-chain 6s ease-in-out infinite;
}
@keyframes wt-cavern { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes wt-woman { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes wt-hand { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(8px) rotate(5deg) } 60% { transform: translateX(4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wt-heart { 0% { transform: scale(1); opacity: 0.6 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(0.9); opacity: 0.7 } }
@keyframes wt-ember-a { 0% { transform: translateY(0) } 100% { transform: translateY(100vh) } }
@keyframes wt-ember-b { 0% { transform: translateY(0) translateX(10px) } 100% { transform: translateY(100vh) translateX(-10px) } }
@keyframes wt-chain { 0% { opacity: 0.3 } 50% { opacity: 0.8 } 100% { opacity: 0.3 } }

/* scene: dark-light-on-state — firelit, gazing */
.scn-dark-light-on-state {
  background: 
    radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, #0a0505 70%, #050202 100%),
    linear-gradient(180deg, #0f0a05 0%, #1a0e08 40%, #0a0505 100%);
}
.scn-dark-light-on-state .night-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0f0a05 0%, #050202 100%);
  animation: dl-night 20s ease-in-out infinite alternate;
}
.scn-dark-light-on-state .figure-hester-back {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a100a 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center; animation: dl-hester 10s ease-in-out infinite;
}
.scn-dark-light-on-state .scarlet-letter {
  position: absolute; bottom: 50%; left: 42%; width: 14px; height: 20px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, transparent 100%);
  border-radius: 20%; box-shadow: 0 0 20px 6px rgba(200,85,61,0.5);
  animation: dl-scarlet 3s ease-in-out infinite alternate;
}
.scn-dark-light-on-state .path-dirt {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  animation: dl-path 15s ease-in-out infinite;
}
.scn-dark-light-on-state .tree-silhouette {
  position: absolute; top: 0; right: 10%; width: 80px; height: 100%;
  background: linear-gradient(180deg, #0a0505 0%, #1a1008 100%);
  border-radius: 60% 20% 0 0 / 100% 50% 0 0;
  transform-origin: bottom; animation: dl-tree 8s ease-in-out infinite alternate;
}
.scn-dark-light-on-state .moonbeam {
  position: absolute; top: 5%; left: 55%; width: 30px; height: 200px;
  background: linear-gradient(180deg, rgba(200,180,140,0.15) 0%, transparent 100%);
  filter: blur(4px); animation: dl-beam 6s ease-in-out infinite alternate;
}
.scn-dark-light-on-state .mist-veil {
  position: absolute; inset: 0; background: repeating-linear-gradient(0deg, transparent 0%, transparent 30%, rgba(80,60,40,0.05) 30%, transparent 35%);
  pointer-events: none; animation: dl-mist 12s linear infinite;
}
@keyframes dl-night { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes dl-hester { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(-2px) translateY(-1px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(1px) translateY(1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes dl-scarlet { 0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 16px 4px rgba(200,85,61,0.3) } 50% { transform: scale(1.15); opacity: 1; box-shadow: 0 0 28px 8px rgba(200,85,61,0.6) } 100% { transform: scale(0.95); opacity: 0.8; box-shadow: 0 0 20px 5px rgba(200,85,61,0.4) } }
@keyframes dl-path { 0% { opacity: 0.5 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes dl-tree { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(0.98) scaleY(1.02) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes dl-beam { 0% { opacity: 0.3; transform: scaleX(1) } 100% { opacity: 0.6; transform: scaleX(1.2) } }
@keyframes dl-mist { 0% { background-position: 0 0 } 100% { background-position: 0 100px } }

/* scene: summoning-pearl — sunlit, tense */
.scn-summoning-pearl {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 70%, #8fbc8f 100%),
    radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 80%);
}
.scn-summoning-pearl .meadow-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #90ee90 0%, #7ccd7c 50%, #5cb85c 100%);
  animation: sp-meadow 20s ease-in-out infinite alternate;
}
.scn-summoning-pearl .figure-hester-call {
  position: absolute; bottom: 30%; left: 25%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center; animation: sp-hester-call 6s ease-in-out infinite;
}
.scn-summoning-pearl .figure-pearl-run {
  position: absolute; bottom: 25%; right: 35%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #e8d0b0 0%, #c8a880 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: sp-pearl-run 4s ease-in-out infinite;
}
.scn-summoning-pearl .grass-blade {
  position: absolute; bottom: 15%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 40% 40% 0 0; transform-origin: bottom center;
}
.scn-summoning-pearl .grass-a {
  left: 20%; animation: sp-grass-a 3s ease-in-out infinite alternate;
}
.scn-summoning-pearl .grass-b {
  left: 70%; animation: sp-grass-b 3.5s ease-in-out infinite alternate;
  animation-delay: 1.5s;
}
.scn-summoning-pearl .butterfly-flit {
  position: absolute; top: 40%; left: 50%; width: 12px; height: 8px;
  background: #ff8c00; border-radius: 50%; box-shadow: 0 0 6px #ffa500;
  animation: sp-butterfly 5s ease-in-out infinite;
}
.scn-summoning-pearl .sunburst-ray {
  position: absolute; top: 10%; left: 45%; width: 40px; height: 120px;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  filter: blur(6px); animation: sp-sunburst 8s ease-in-out infinite alternate;
}
.scn-summoning-pearl .dandelion-puff {
  position: absolute; top: 20%; left: 60%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,255,255,0.5) 0%, transparent 100%);
  filter: blur(3px); animation: sp-puff 15s linear infinite;
}
@keyframes sp-meadow { 0% { opacity: 0.9; background-position: 0 0 } 50% { opacity: 1; background-position: 0 10% } 100% { opacity: 0.85; background-position: 0 0 } }
@keyframes sp-hester-call { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes sp-pearl-run { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-8px) translateY(-1px) rotate(-2deg) } 50% { transform: translateX(-16px) translateY(0) rotate(1deg) } 75% { transform: translateX(-24px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-32px) translateY(0) rotate(0deg) } }
@keyframes sp-grass-a { 0% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(0deg) } }
@keyframes sp-grass-b { 0% { transform: rotate(0deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(0deg) } }
@keyframes sp-butterfly { 0% { transform: translate(0,0) scale(1) } 20% { transform: translate(20px,-10px) scale(1.2) } 40% { transform: translate(10px,-20px) scale(0.9) } 60% { transform: translate(-10px,-15px) scale(1.1) } 80% { transform: translate(-20px,-5px) scale(0.8) } 100% { transform: translate(0,0) scale(1) } }
@keyframes sp-sunburst { 0% { opacity: 0.3; transform: scaleY(0.8) } 50% { opacity: 0.6; transform: scaleY(1.2) } 100% { opacity: 0.4; transform: scaleY(0.9) } }
@keyframes sp-puff { 0% { transform: translateX(0) translateY(0) scale(1); opacity: 0 } 20% { opacity: 0.5 } 40% { transform: translateX(30px) translateY(-20px) scale(1.5); opacity: 0.2 } 100% { transform: translateX(80px) translateY(-60px) scale(2); opacity: 0 } }

/* customhouse-stirring-scene */
.scn-customhouse-stirring-scene { background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #b08a6a 100%), radial-gradient(ellipse at 70% 60%, #ffebc0 0%, transparent 60%); }
.scn-customhouse-stirring-scene .room-bg   { position:absolute; inset:0; background: linear-gradient(180deg, #eee6d0 0%, #d4c4a0 100%); animation: chs-bg 15s ease-in-out infinite alternate; }
.scn-customhouse-stirring-scene .window-left  { position:absolute; top:5%; left:8%; width:80px; height:120px; background: linear-gradient(180deg, #8ac0e0 0%, #b0d8f0 100%); border:4px solid #8a7a5a; border-radius:4px; box-shadow: 0 0 30px 10px rgba(255,235,192,0.3); animation: chs-window 8s ease-in-out infinite; }
.scn-customhouse-stirring-scene .window-right { position:absolute; top:5%; right:8%; width:80px; height:120px; background: linear-gradient(180deg, #8ac0e0 0%, #b0d8f0 100%); border:4px solid #8a7a5a; border-radius:4px; box-shadow: 0 0 30px 10px rgba(255,235,192,0.3); animation: chs-window 8s ease-in-out 4s infinite; }
.scn-customhouse-stirring-scene .sunbeam { position:absolute; top:8%; left:20%; width:120px; height:200px; background: linear-gradient(135deg, rgba(255,235,180,0.6) 0%, rgba(255,235,180,0) 100%); filter: blur(8px); animation: chs-beam 12s ease-in-out infinite alternate; }
.scn-customhouse-stirring-scene .counter { position:absolute; bottom:15%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); border-radius:4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-customhouse-stirring-scene .figure-a { position:absolute; bottom:20%; left:15%; width:30px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: chs-fig 6s ease-in-out infinite; }
.scn-customhouse-stirring-scene .figure-b { position:absolute; bottom:20%; left:35%; width:26px; height:54px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: chs-fig 6s ease-in-out 2s infinite; }
.scn-customhouse-stirring-scene .figure-c { position:absolute; bottom:20%; right:20%; width:28px; height:58px; background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: chs-fig 6s ease-in-out 4s infinite; }
@keyframes chs-bg    { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.97; } }
@keyframes chs-window{ 0% { transform:scale(1); } 50% { transform:scale(1.02) rotate(0.5deg); } 100% { transform:scale(1); } }
@keyframes chs-beam  { 0% { opacity:0.4; transform:rotate(-2deg); } 50% { opacity:0.7; transform:rotate(1deg); } 100% { opacity:0.5; transform:rotate(0deg); } }
@keyframes chs-fig   { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(1.5deg); } 100% { transform:translateY(0) rotate(0deg); } }

/* surveyors-office (dim interior) */
.scn-surveyors-office { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 70%); }
.scn-surveyors-office .walls       { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-surveyors-office .window-arch { position:absolute; top:8%; left:10%; width:130px; height:150px; background: linear-gradient(180deg, #6a5a4a 0%, #2a1a0a 100%); border-radius:50% 50% 30% 30% / 80% 80% 30% 30%; border:3px solid #5a4a3a; box-shadow: inset 0 0 30px #1a0a00, 0 0 20px rgba(0,0,0,0.4); animation: svo-win 12s ease-in-out infinite alternate; }
.scn-surveyors-office .outside-wharf { position:absolute; top:14%; left:16%; width:100px; height:120px; background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%); border-radius:10% 10% 40% 40%; filter: blur(2px); opacity:0.6; animation: svo-wharf 20s ease-in-out infinite; }
.scn-surveyors-office .desk       { position:absolute; bottom:15%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-surveyors-office .stool      { position:absolute; bottom:12%; left:20%; width:50px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10%; animation: svo-stool 10s ease-in-out infinite alternate; }
.scn-surveyors-office .lamp       { position:absolute; bottom:40%; left:12%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, #b08040 0%, #6a3a0a 100%); border-radius:4px; box-shadow: 0 0 25px 6px rgba(176,128,64,0.4); animation: svo-lamp 6s ease-in-out infinite alternate; }
@keyframes svo-win   { 0% { transform:scale(1); opacity:0.7; } 50% { transform:scale(1.03); opacity:0.85; } 100% { transform:scale(1); opacity:0.7; } }
@keyframes svo-wharf { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(0); } }
@keyframes svo-stool { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes svo-lamp  { 0% { box-shadow:0 0 15px 3px rgba(176,128,64,0.3); opacity:0.7; } 50% { box-shadow:0 0 30px 8px rgba(176,128,64,0.6); opacity:1; } 100% { box-shadow:0 0 18px 4px rgba(176,128,64,0.3); opacity:0.8; } }

/* office-cobwebs-and-sand (dim interior, close-up) */
.scn-office-cobwebs-and-sand { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #0a0000 100%), radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, transparent 80%); }
.scn-office-cobwebs-and-sand .bg-dark    { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-office-cobwebs-and-sand .cobweb-a  { position:absolute; top:10%; left:15%; width:120px; height:120px; background: radial-gradient(circle at 50% 50%, transparent 40%, rgba(150,130,100,0.3) 41%, transparent 43%); filter: blur(1px); animation: ocs-web 14s ease-in-out infinite alternate; }
.scn-office-cobwebs-and-sand .cobweb-b  { position:absolute; top:30%; right:10%; width:100px; height:100px; background: radial-gradient(circle at 50% 50%, transparent 35%, rgba(150,130,100,0.2) 36%, transparent 38%); filter: blur(1px); animation: ocs-web 14s ease-in-out 7s infinite alternate; }
.scn-office-cobwebs-and-sand .sand-floor{ position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 100%) repeat-x 0 0 / 50px 10px; border-radius:20% 20% 0 0 / 40% 40% 0 0; animation: ocs-sand 25s linear infinite; }
.scn-office-cobwebs-and-sand .paint-peel{ position:absolute; top:20%; left:40%; width:80px; height:60px; background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:10% 80% 10% 80% / 40% 30% 70% 60%; clip-path: polygon(0 0, 100% 0, 90% 80%, 10% 100%); animation: ocs-peel 8s ease-in-out infinite; }
@keyframes ocs-web   { 0% { transform:scale(1) rotate(0deg); opacity:0.5; } 50% { transform:scale(1.05) rotate(5deg); opacity:0.7; } 100% { transform:scale(1) rotate(-2deg); opacity:0.5; } }
@keyframes ocs-sand  { 0% { background-position:0 0; } 50% { background-position:-25px 0; } 100% { background-position:0 0; } }
@keyframes ocs-peel  { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(3deg); } 100% { transform:translateY(0) rotate(0deg); } }

/* surveyor-at-work (dim interior, figure centered) */
.scn-surveyor-at-work { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, transparent 70%); }
.scn-surveyor-at-work .room-bg   { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-surveyor-at-work .desk     { position:absolute; bottom:10%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius:6px 6px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-surveyor-at-work .stool    { position:absolute; bottom:8%; left:25%; width:60px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 10% 10%; animation: saw-stool 12s ease-in-out infinite alternate; }
.scn-surveyor-at-work .newspaper{ position:absolute; bottom:30%; left:35%; width:100px; height:70px; background: linear-gradient(180deg, #e8dccc 0%, #c8b8a8 100%); transform:rotate(-5deg); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: saw-paper 8s ease-in-out infinite alternate; }
.scn-surveyor-at-work .lamp     { position:absolute; bottom:45%; right:10%; width:24px; height:40px; background: radial-gradient(ellipse at 50% 100%, #b08040 0%, #6a3a0a 100%); border-radius:4px; box-shadow: 0 0 20px 5px rgba(176,128,64,0.3); animation: saw-lamp 6s ease-in-out infinite alternate; }
.scn-surveyor-at-work .figure   { position:absolute; bottom:20%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: saw-fig 4s ease-in-out infinite; }
@keyframes saw-stool { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes saw-paper { 0% { transform:rotate(-5deg) scale(1); } 50% { transform:rotate(-2deg) scale(1.02); } 100% { transform:rotate(-5deg) scale(1); } }
@keyframes saw-lamp  { 0% { box-shadow:0 0 12px 3px rgba(176,128,64,0.3); opacity:0.7; } 50% { box-shadow:0 0 28px 8px rgba(176,128,64,0.6); opacity:1; } 100% { box-shadow:0 0 15px 4px rgba(176,128,64,0.35); opacity:0.8; } }
@keyframes saw-fig   { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-4px) rotate(1.5deg); } 100% { transform:translateY(0) rotate(-0.5deg); } }

/* Scene: church-walls-strange (cws) */
.scn-church-walls-strange {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 30%, #1e1e2e 70%, #151521 100%),
              radial-gradient(ellipse at 30% 50%, rgba(100,100,130,0.2) 0%, transparent 60%);
}
.scn-church-walls-strange .sky-cws { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 60%, transparent 100%); animation: cws-sky 15s ease-in-out infinite alternate; }
.scn-church-walls-strange .wall-cws { position:absolute; top:10%; left:10%; right:10%; bottom:10%; background: linear-gradient(135deg, #3a3228 0%, #2a2218 50%, #1a1210 100%); border-radius: 12% 12% 4% 4%; box-shadow: inset 0 0 40px rgba(0,0,0,0.6); animation: cws-wall 20s ease-in-out infinite; }
.scn-church-walls-strange .window-cws { position:absolute; top:25%; left:35%; width:18%; height:35%; background: radial-gradient(ellipse at 50% 50%, #686860 0%, #4a4a40 70%); border-radius: 50% / 60% 60% 40% 40%; box-shadow: inset 0 0 15px rgba(0,0,0,0.8), 0 0 30px 8px rgba(120,120,110,0.3); animation: cws-window 8s ease-in-out infinite alternate; }
.scn-church-walls-strange .figure-cws { position:absolute; bottom:15%; left:30%; width:8%; height:28%; background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cws-figure 6s ease-in-out infinite; }
.scn-church-walls-strange .shadow-cws { position:absolute; bottom:10%; left:20%; right:30%; height:12%; background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, transparent 100%); filter: blur(8px); animation: cws-shadow 9s ease-in-out infinite alternate; }
.scn-church-walls-strange .stone-cws { position:absolute; top:50%; left:15%; width:8%; height:10%; background: linear-gradient(135deg, #4a4238 0%, #322a20 100%); border-radius: 20% 20% 20% 20%; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); animation: cws-stone 25s linear infinite; }
@keyframes cws-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes cws-wall { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes cws-window { 0% { opacity:0.6; box-shadow: inset 0 0 15px rgba(0,0,0,0.8), 0 0 20px 4px rgba(120,120,110,0.2); } 50% { opacity:0.9; box-shadow: inset 0 0 25px rgba(0,0,0,0.8), 0 0 40px 12px rgba(120,120,110,0.4); } 100% { opacity:0.7; box-shadow: inset 0 0 15px rgba(0,0,0,0.8), 0 0 20px 4px rgba(120,120,110,0.2); } }
@keyframes cws-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(10px) translateY(-2px) rotate(2deg); } 66% { transform: translateX(-5px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes cws-shadow { 0% { transform: skewX(-5deg) scaleX(1); opacity:0.6; } 50% { transform: skewX(5deg) scaleX(1.1); opacity:0.8; } 100% { transform: skewX(-5deg) scaleX(1); opacity:0.6; } }
@keyframes cws-stone { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-40px) rotate(360deg); } }

/* Scene: transformation-of-self (tos) */
.scn-transformation-of-self {
  background: linear-gradient(180deg, #2c2c3a 0%, #1e1e2a 40%, #14141e 80%, #0a0a12 100%),
              radial-gradient(ellipse at 30% 70%, rgba(80,80,100,0.3) 0%, transparent 70%);
}
.scn-transformation-of-self .bg-tos { position:absolute; inset:0; background: linear-gradient(135deg, #3a3a4a 0%, #1a1a2a 50%, #0a0a1a 100%); animation: tos-bg 20s ease-in-out infinite alternate; }
.scn-transformation-of-self .forest-tos { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); animation: tos-forest 18s ease-in-out infinite alternate; }
.scn-transformation-of-self .path-tos { position:absolute; bottom:10%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%; transform-origin: bottom; animation: tos-path 12s ease-in-out infinite; }
.scn-transformation-of-self .figure-tos { position:absolute; bottom:15%; left:20%; width:10%; height:30%; background: linear-gradient(180deg, #181818 0%, #0e0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tos-figure 5s ease-in-out infinite; }
.scn-transformation-of-self .mist-tos { position:absolute; top:5%; left:0; right:0; bottom:40%; background: linear-gradient(180deg, rgba(200,200,220,0.15) 0%, transparent 100%); filter: blur(12px); animation: tos-mist 30s linear infinite alternate; }
.scn-transformation-of-self .tree-tos { position:absolute; bottom:35%; right:10%; width:6%; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom; animation: tos-tree 22s ease-in-out infinite; }
@keyframes tos-bg { 0% { opacity:0.8; } 50% { opacity:0.6; } 100% { opacity:0.9; } }
@keyframes tos-forest { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes tos-path { 0% { transform: scaleX(1) skewX(0deg); } 50% { transform: scaleX(0.95) skewX(-2deg); } 100% { transform: scaleX(1) skewX(0deg); } }
@keyframes tos-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 66% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes tos-mist { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.05); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes tos-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }

/* Scene: inner-revolution (irev) */
.scn-inner-revolution {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #12121a 80%, #0a0a12 100%),
              radial-gradient(ellipse at 50% 30%, rgba(100,60,40,0.2) 0%, transparent 60%);
}
.scn-inner-revolution .floor-irev { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%); border-radius: 0 0 20% 20% / 0 0 60% 60%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: irev-floor 14s ease-in-out infinite alternate; }
.scn-inner-revolution .wall-irev { position:absolute; top:0; left:10%; right:10%; bottom:15%; background: linear-gradient(180deg, #3a3228 0%, #2a2218 50%, #1a1210 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 60px rgba(0,0,0,0.7); animation: irev-wall 22s ease-in-out infinite; }
.scn-inner-revolution .ceiling-irev { position:absolute; top:0; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: irev-ceiling 18s ease-in-out infinite alternate; }
.scn-inner-revolution .throne-irev { position:absolute; bottom:18%; left:30%; right:30%; height:30%; background: linear-gradient(135deg, #3a3228 0%, #2a2218 50%, #1a1210 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); transform-origin: bottom center; animation: irev-throne 10s ease-in-out infinite; }
.scn-inner-revolution .crown-irev { position:absolute; top:22%; left:40%; right:40%; height:12%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(160,140,100,0.3); transform-origin: bottom center; animation: irev-crown 4s ease-in-out infinite; }
.scn-inner-revolution .figure-irev { position:absolute; bottom:15%; left:20%; width:10%; height:30%; background: linear-gradient(180deg, #181818 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: irev-figure 6s ease-in-out infinite; }
.scn-inner-revolution .shadow-irev { position:absolute; bottom:15%; left:18%; right:25%; height:8%; background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, transparent 100%); filter: blur(10px); animation: irev-shadow 8s ease-in-out infinite alternate; }
@keyframes irev-floor { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes irev-wall { 0% { transform: scale(1) skewX(0deg); } 50% { transform: scale(1.01) skewX(-1deg); } 100% { transform: scale(1) skewX(0deg); } }
@keyframes irev-ceiling { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes irev-throne { 0% { transform: rotate(0deg) scale(1); } 33% { transform: rotate(3deg) scale(1.02); } 66% { transform: rotate(-2deg) scale(0.98); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes irev-crown { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(10deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-8deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes irev-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(6px) translateY(-2px) rotate(2deg); } 66% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes irev-shadow { 0% { transform: scaleX(1) skewX(0deg); opacity:0.5; } 50% { transform: scaleX(1.2) skewX(-5deg); opacity:0.8; } 100% { transform: scaleX(1) skewX(0deg); opacity:0.5; } }

/* Scene: deacon-encounter (deac) */
.scn-deacon-encounter {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1e1e2e 70%, #14141e 100%),
              radial-gradient(ellipse at 40% 60%, rgba(100,100,130,0.15) 0%, transparent 60%);
}
.scn-deacon-encounter .ground-deac { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5); animation: deac-ground 18s ease-in-out infinite alternate; }
.scn-deacon-encounter .sky-deac { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 60%, transparent 100%); animation: deac-sky 20s ease-in-out infinite alternate; }
.scn-deacon-encounter .church-deac { position:absolute; bottom:30%; left:5%; width:20%; height:40%; background: linear-gradient(180deg, #3a3228 0%, #2a2218 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: deac-church 25s ease-in-out infinite; }
.scn-deacon-encounter .figure1-deac { position:absolute; bottom:20%; left:30%; width:8%; height:25%; background: linear-gradient(180deg, #181818 0%, #0e0e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: deac-figure1 7s ease-in-out infinite; }
.scn-deacon-encounter .figure2-deac { position:absolute; bottom:20%; right:25%; width:9%; height:28%; background: linear-gradient(180deg, #1a1a1a 0%, #101010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: deac-figure2 9s ease-in-out infinite reverse; }
.scn-deacon-encounter .staff-deac { position:absolute; bottom:15%; right:28%; width:1.5%; height:30%; background: linear-gradient(180deg, #2a2218 0%, #1a1208 100%); border-radius: 10% 10% 10% 10%; transform-origin: bottom; animation: deac-staff 8s ease-in-out infinite; }
.scn-deacon-encounter .fog-deac { position:absolute; top:10%; left:0; right:0; bottom:30%; background: linear-gradient(180deg, rgba(220,220,240,0.1) 0%, transparent 100%); filter: blur(15px); animation: deac-fog 35s linear infinite alternate; }
@keyframes deac-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes deac-sky { 0% { opacity:0.7; } 50% { opacity:0.85; } 100% { opacity:0.75; } }
@keyframes deac-church { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes deac-figure1 { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(5px) translateY(-1px) rotate(2deg); } 66% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes deac-figure2 { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(-6px) translateY(-2px) rotate(-2deg); } 66% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes deac-staff { 0% { transform: rotate(0deg); } 33% { transform: rotate(3deg); } 66% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes deac-fog { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.03); } 100% { opacity:0.2; transform: scale(1); } }

/* dimmesdale-feeble-pale */
.scn-dimmesdale-feeble-pale {
  background:
    radial-gradient(ellipse 120% 60% at 50% 0%, #ffd8a8 0%, #ffe8cc 40%, transparent 70%),
    linear-gradient(180deg, #9e7b56 0%, #5a3d28 100%);
}
.scn-dimmesdale-feeble-pale .sunlight {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,215,150,0.25) 0%, transparent 50%); animation: dfp-sunlight 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-feeble-pale .window {
  position: absolute; top: 10%; left: 45%; width: 20%; height: 55%; background: radial-gradient(ellipse at 50% 50%, #fff5e0 0%, #ffe0b0 70%, transparent 100%); border: 6px solid #3a2a1a; border-radius: 12px; box-shadow: 0 0 60px 30px rgba(255,215,150,0.3); animation: dfp-window 8s ease-in-out infinite;
}
.scn-dimmesdale-feeble-pale .figure {
  position: absolute; bottom: 30%; left: 48%; width: 40px; height: 90px; background: linear-gradient(180deg, #2a1f1a 0%, #120a06 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; box-shadow: -2px 0 8px rgba(0,0,0,0.6); animation: dfp-figure 4s ease-in-out infinite;
}
.scn-dimmesdale-feeble-pale .shadow {
  position: absolute; bottom: 22%; left: 44%; width: 80px; height: 20px; background: radial-gradient(ellipse, #1a0a06 0%, transparent 70%); opacity: 0.5; animation: dfp-shadow 4s ease-in-out infinite;
}
.scn-dimmesdale-feeble-pale .pulpit {
  position: absolute; bottom: 18%; left: 40%; width: 120px; height: 60px; background: linear-gradient(180deg, #5a3a28 0%, #2a1a0e 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); transform: perspective(200px) rotateX(5deg); animation: dfp-pulpit 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-feeble-pale .dust-motes {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 20%, rgba(255,240,210,0.15) 0%, transparent 40%), radial-gradient(circle at 70% 60%, rgba(255,230,180,0.1) 0%, transparent 30%); animation: dfp-motes 20s linear infinite;
}
@keyframes dfp-sunlight { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dfp-window { 0%, 100% { transform: scale(1); filter: brightness(0.95); } 50% { transform: scale(1.02); filter: brightness(1.1); } }
@keyframes dfp-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-0.5deg); } 75% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dfp-shadow { 0%, 100% { transform: scale(1) translateX(0); opacity: 0.5; } 50% { transform: scale(0.92) translateX(4px); opacity: 0.4; } }
@keyframes dfp-pulpit { 0%, 100% { transform: perspective(200px) rotateX(5deg); } 50% { transform: perspective(200px) rotateX(2deg) translateY(-2px); } }
@keyframes dfp-motes { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

/* dimmesdale-death-hue */
.scn-dimmesdale-death-hue {
  background:
    radial-gradient(ellipse 80% 50% at 50% 20%, #ffeac0 0%, #d4a76a 40%, transparent 70%),
    linear-gradient(180deg, #6a5a48 0%, #3d3228 100%);
}
.scn-dimmesdale-death-hue .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #b8a080 0%, #89745a 100%); animation: ddh-sky 15s ease-in-out infinite alternate;
}
.scn-dimmesdale-death-hue .sun-halo {
  position: absolute; top: 8%; left: 50%; width: 100px; height: 100px; transform: translateX(-50%); background: radial-gradient(circle, #ffe8b0 0%, #d4a76a 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(212,167,106,0.3); animation: ddh-halo 9s ease-in-out infinite;
}
.scn-dimmesdale-death-hue .figure-hood {
  position: absolute; bottom: 28%; left: 45%; width: 36px; height: 70px; background: linear-gradient(180deg, #2a1f1a 0%, #120a06 100%); border-radius: 40% 40% 20% 20% / 55% 55% 25% 25%; transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,0.7); animation: ddh-figure 3s ease-in-out infinite;
}
.scn-dimmesdale-death-hue .staff {
  position: absolute; bottom: 25%; left: 50%; width: 4px; height: 50px; background: #2a1a0e; transform: translateX(-50%) rotate(-5deg); transform-origin: bottom center; border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,0.5); animation: ddh-staff 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-death-hue .shadow-long {
  position: absolute; bottom: 22%; left: 35%; width: 120px; height: 30px; background: radial-gradient(ellipse, #1a0e08 0%, transparent 70%); opacity: 0.4; animation: ddh-shadow 6s ease-in-out infinite;
}
.scn-dimmesdale-death-hue .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 30% 70% 0 0 / 50% 100% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,0.4);
}
@keyframes ddh-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ddh-halo { 0%, 100% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.05); opacity: 1; } }
@keyframes ddh-figure { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(1px) rotate(2deg); } }
@keyframes ddh-staff { 0% { transform: translateX(-50%) rotate(-5deg); } 100% { transform: translateX(-50%) rotate(5deg); } }
@keyframes ddh-shadow { 0%, 100% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.1); opacity: 0.3; } }

/* dimmesdale-approaches-scaffold */
.scn-dimmesdale-approaches-scaffold {
  background:
    radial-gradient(ellipse 100% 80% at 50% 100%, #d4a76a 0%, transparent 60%),
    linear-gradient(180deg, #b8a080 0%, #8a755a 50%, #5a4a3a 100%);
}
.scn-dimmesdale-approaches-scaffold .sky-high {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b8a080 0%, #fff5e0 100%); animation: das-sky 20s ease-in-out infinite alternate;
}
.scn-dimmesdale-approaches-scaffold .scaffold {
  position: absolute; bottom: 20%; left: 30%; width: 200px; height: 120px; background: linear-gradient(180deg, #5a3a28 0%, #2a1a0e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.3); transform: perspective(400px) rotateX(10deg); animation: das-scaffold 14s ease-in-out infinite;
}
.scn-dimmesdale-approaches-scaffold .figure-waver {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 80px; background: linear-gradient(180deg, #1a120e 0%, #0a0604 100%); border-radius: 30% 30% 25% 25% / 40% 40% 30% 30%; transform-origin: bottom center; animation: das-figure 3.5s ease-in-out infinite;
}
.scn-dimmesdale-approaches-scaffold .arm-outstretched {
  position: absolute; bottom: 45%; left: 46%; width: 40px; height: 8px; background: #1a120e; border-radius: 50% 50% 10% 10% / 50% 50% 0 0; transform-origin: right center; transform: rotate(-20deg); animation: das-arm 3.5s ease-in-out infinite;
}
.scn-dimmesdale-approaches-scaffold .ground-path {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 4px; background: linear-gradient(90deg, transparent, #6a4a2a, transparent); border-radius: 2px; filter: blur(2px); animation: das-path 12s linear infinite;
}
.scn-dimmesdale-approaches-scaffold .sunbeams {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,215,150,0.15) 0%, transparent 50%), linear-gradient(225deg, rgba(255,215,150,0.1) 0%, transparent 40%); animation: das-beams 18s ease-in-out infinite alternate;
}
@keyframes das-sky { 0% { opacity: 0.8; background-position: 0% 0%; } 100% { opacity: 1; background-position: 0% 10%; } }
@keyframes das-scaffold { 0%, 100% { transform: perspective(400px) rotateX(10deg) translateY(0); } 50% { transform: perspective(400px) rotateX(8deg) translateY(-2px); } }
@keyframes das-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(20px) translateY(0) rotate(-1deg); } }
@keyframes das-arm { 0% { transform: rotate(-20deg); } 25% { transform: rotate(-15deg); } 50% { transform: rotate(-25deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(-20deg); } }
@keyframes das-path { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.6; } 100% { opacity: 0.3; transform: translateX(20px); } }
@keyframes das-beams { 0% { opacity: 0.4; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }

/* bellingham-advanced */
.scn-bellingham-advanced {
  background:
    radial-gradient(ellipse 120% 40% at 30% 100%, #d4a76a 0%, transparent 60%),
    linear-gradient(180deg, #b8a080 0%, #9a8068 50%, #5a4a3a 100%);
}
.scn-bellingham-advanced .sky-bright {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #ffeac0 0%, #b8a080 100%); animation: ba-sky 16s ease-in-out infinite alternate;
}
.scn-bellingham-advanced .ground-square {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%; background: linear-gradient(180deg, #6a5a48 0%, #4a3a28 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: ba-ground 20s linear infinite;
}
.scn-bellingham-advanced .figure-totter {
  position: absolute; bottom: 30%; left: 50%; width: 34px; height: 70px; background: linear-gradient(180deg, #1a120e 0%, #0a0604 100%); border-radius: 30% 30% 20% 20% / 45% 45% 25% 25%; transform-origin: bottom center; animation: ba-totter 3s ease-in-out infinite;
}
.scn-bellingham-advanced .cape {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 60px; background: linear-gradient(180deg, #5a3a28 0%, #2a1a0e 100%); border-radius: 0 60% 0 60% / 0 80% 0 80%; transform-origin: top left; animation: ba-cape 4s ease-in-out infinite alternate;
}
.scn-bellingham-advanced .hand-forward {
  position: absolute; bottom: 45%; left: 36%; width: 20px; height: 12px; background: #1a120e; border-radius: 30% 30% 10% 10% / 50% 50% 0 0; transform-origin: right center; transform: rotate(10deg); animation: ba-hand 3s ease-in-out infinite;
}
.scn-bellingham-advanced .shadow-cast {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 18px; background: radial-gradient(ellipse, #1a0e08 0%, transparent 70%); opacity: 0.35; animation: ba-shadow 5s ease-in-out infinite;
}
.scn-bellingham-advanced .building-bg {
  position: absolute; bottom: 25%; left: 60%; width: 100px; height: 150px; background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%); border-radius: 10% 10% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.4); transform: perspective(300px) rotateY(-10deg); animation: ba-building 12s ease-in-out infinite alternate;
}
@keyframes ba-sky { 0% { opacity: 0.85; background-position: 0% 0%; } 100% { opacity: 1; background-position: 0% 5%; } }
@keyframes ba-ground { 0% { background-position: 0% 0%; } 50% { background-position: 2% 0%; } 100% { background-position: 0% 0%; } }
@keyframes ba-totter { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(-3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ba-cape { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes ba-hand { 0% { transform: rotate(10deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(15deg); } 75% { transform: rotate(8deg); } 100% { transform: rotate(10deg); } }
@keyframes ba-shadow { 0%, 100% { transform: scaleX(1); opacity: 0.35; } 50% { transform: scaleX(0.9) translateX(4px); opacity: 0.25; } }
@keyframes ba-building { 0%, 100% { transform: perspective(300px) rotateY(-10deg) translateY(0); } 50% { transform: perspective(300px) rotateY(-8deg) translateY(-2px); } }

/* Scene 1: dimmesdale-withdraws */
.scn-dimmesdale-withdraws {
  background: linear-gradient(180deg, #c8a06a 0%, #e8c68a 30%, #d4b07a 60%, #b09060 100%), radial-gradient(ellipse at 70% 30%, #f0d8a0 0%, transparent 70%);
}
.scn-dimmesdale-withdraws .window-frame {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(135deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.4);
  animation: dw-frame 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-withdraws .curtain-left {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #b87a5a 0%, #8a5a3a 50%, #6a3a2a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  filter: drop-shadow(4px 0 6px rgba(0,0,0,0.3));
  transform-origin: left center;
  animation: dw-curtain-l 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-withdraws .curtain-right {
  position: absolute; top: 10%; right: 20%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #b87a5a 0%, #8a5a3a 50%, #6a3a2a 100%);
  clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
  filter: drop-shadow(-4px 0 6px rgba(0,0,0,0.3));
  transform-origin: right center;
  animation: dw-curtain-r 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-withdraws .figure-minister {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw-minister 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-withdraws .shadow-figure {
  position: absolute; bottom: 10%; left: 42%; width: 40px; height: 30px;
  background: rgba(0,0,0,0.3); border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  filter: blur(3px);
  animation: dw-shadow 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-withdraws .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%);
  animation: dw-floor 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-withdraws .light-beam {
  position: absolute; top: 15%; left: 30%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,230,180,0.15) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: dw-beam 8s ease-in-out infinite alternate;
}
@keyframes dw-frame { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.01); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.85; } }
@keyframes dw-curtain-l { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes dw-curtain-r { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(3px) rotate(1deg); } }
@keyframes dw-minister { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes dw-shadow { 0% { transform: scale(1) skewX(0); opacity: 0.6; } 50% { transform: scale(1.02) skewX(1deg); opacity: 0.8; } 100% { transform: scale(0.98) skewX(-1deg); opacity: 0.5; } }
@keyframes dw-floor { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes dw-beam { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.4; } }

/* Scene 2: dimmesdale-kisses-pearl */
.scn-dimmesdale-kisses-pearl {
  background: linear-gradient(135deg, #f0d8a0 0%, #e8c68a 30%, #d4b07a 60%, #b09060 100%), radial-gradient(circle at 50% 60%, #ffe0a0 0%, transparent 60%);
}
.scn-dimmesdale-kisses-pearl .bg-warm {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 40%, rgba(255,200,100,0.2) 0%, transparent 70%);
  animation: kp-warm 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-kisses-pearl .figure-minister {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 60%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kp-minister 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-kisses-pearl .figure-pearl {
  position: absolute; bottom: 18%; left: 48%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #b07860 0%, #8a5840 60%, #5a3828 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: kp-pearl 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-kisses-pearl .embrace {
  position: absolute; bottom: 40%; left: 38%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: kp-embrace 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-kisses-pearl .heart-glow {
  position: absolute; bottom: 45%; left: 44%; width: 20px; height: 18px;
  background: radial-gradient(circle, #ff8080 0%, transparent 70%);
  border-radius: 50%;
  animation: kp-heart 3s ease-in-out infinite;
}
.scn-dimmesdale-kisses-pearl .soft-lights {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,180,0.3) 0%, transparent 70%);
  animation: kp-lights 8s ease-in-out infinite alternate;
}
@keyframes kp-warm { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes kp-minister { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes kp-pearl { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes kp-embrace { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(0.9); opacity: 0.4; } }
@keyframes kp-heart { 0% { transform: scale(0.8); opacity: 0.6; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.6; } }
@keyframes kp-lights { 0% { transform: translateY(0); opacity: 0.5; } 50% { transform: translateY(-10px); opacity: 0.8; } 100% { transform: translateY(5px); opacity: 0.6; } }

/* Scene 3: wilson-witchcraft-jest */
.scn-wilson-witchcraft-jest {
  background: linear-gradient(135deg, #d4b07a 0%, #c8a06a 30%, #b09060 60%, #a08050 100%), radial-gradient(circle at 50% 80%, #e0c080 0%, transparent 60%);
}
.scn-wilson-witchcraft-jest .bg-interior {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4b07a 0%, #b09060 100%);
}
.scn-wilson-witchcraft-jest .figure-wilson {
  position: absolute; bottom: 20%; left: 25%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wj-wilson 4s ease-in-out infinite;
}
.scn-wilson-witchcraft-jest .figure-dimmesdale {
  position: absolute; bottom: 20%; left: 45%; width: 40px; height: 95px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wj-dimmesdale 4s ease-in-out infinite alternate;
}
.scn-wilson-witchcraft-jest .figure-chillingworth {
  position: absolute; bottom: 20%; right: 25%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 60%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wj-chill 5s ease-in-out infinite;
}
.scn-wilson-witchcraft-jest .jest-bubble {
  position: absolute; top: 25%; left: 35%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, rgba(255,255,200,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: wj-bubble 3s ease-in-out infinite;
}
.scn-wilson-witchcraft-jest .sparkles {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 40%;
  background: radial-gradient(circle at 20% 30%, #ffff80 0%, transparent 10%),
              radial-gradient(circle at 70% 50%, #ffff80 0%, transparent 10%),
              radial-gradient(circle at 40% 70%, #ffff80 0%, transparent 10%);
  animation: wj-sparkles 4s ease-in-out infinite;
}
.scn-wilson-witchcraft-jest .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 19%, rgba(0,0,0,0.1) 19%, rgba(0,0,0,0.1) 20%);
  animation: wj-floor 6s ease-in-out infinite alternate;
}
@keyframes wj-wilson { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-5px) rotate(3deg); } 50% { transform: translateY(2px) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(4deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wj-dimmesdale { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes wj-chill { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-3px) scale(1.02); } 50% { transform: translateY(1px) scale(0.98); } 75% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes wj-bubble { 0% { transform: scale(0.8); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.7; } 100% { transform: scale(0.9); opacity: 0.4; } }
@keyframes wj-sparkles { 0% { opacity: 0.2; } 50% { opacity: 0.8; } 100% { opacity: 0.3; } }
@keyframes wj-floor { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

/* Scene 4: hester-departs */
.scn-hester-departs {
  background: linear-gradient(180deg, #a0c8e8 0%, #d0e8f0 30%, #f0e8d0 60%, #e0c8a0 100%), radial-gradient(ellipse at 30% 40%, #f0e8d0 0%, transparent 60%);
}
.scn-hester-departs .sky-outside {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #a0c8e8 0%, #c0d8f0 100%);
  animation: hd-sky 12s ease-in-out infinite alternate;
}
.scn-hester-departs .house-wall {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(135deg, #b09060 0%, #8a6a3a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,0.2);
  animation: hd-wall 10s ease-in-out infinite alternate;
}
.scn-hester-departs .window-lattice {
  position: absolute; top: 30%; left: 45%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #6a5a3a 0%, #5a4a2a 100%);
  border: 3px solid #4a3a1a; border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(255,255,200,0.3);
  animation: hd-lattice 8s ease-in-out infinite alternate;
}
.scn-hester-departs .face-hibbins {
  position: absolute; top: 32%; left: 49%; width: 30px; height: 40px;
  background: radial-gradient(circle, #c09070 0%, #8a6a5a 60%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: center;
  animation: hd-face 6s ease-in-out infinite;
}
.scn-hester-departs .steps {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #b09060 0%, #8a6a3a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: hd-steps 8s ease-in-out infinite alternate;
}
.scn-hester-departs .figure-hester {
  position: absolute; bottom: 12%; left: 35%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 60%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: hd-hester 5s ease-in-out infinite alternate;
}
.scn-hester-departs .figure-pearl {
  position: absolute; bottom: 10%; left: 42%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #b07860 0%, #8a5840 60%, #5a3828 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: hd-pearl 5s ease-in-out infinite alternate;
}
.scn-hester-departs .doorway {
  position: absolute; bottom: 15%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: hd-door 12s ease-in-out infinite alternate;
}
@keyframes hd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hd-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.005); } 100% { transform: scaleY(0.995); } }
@keyframes hd-lattice { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes hd-face { 0% { transform: scale(1) rotate(0); } 25% { transform: scale(1.05) rotate(3deg); } 50% { transform: scale(1) rotate(-2deg); } 75% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(1) rotate(0); } }
@keyframes hd-steps { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hd-hester { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes hd-pearl { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(-3deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes hd-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }

/* Scene: salem-native-sentiment (calm, overcast) */
.scn-salem-native-sentiment {
  background: linear-gradient(180deg, #7a8a9a 0%, #9aabba 40%, #b4c4d4 100%),
              radial-gradient(ellipse at 50% 0%, #b4c4d4 0%, transparent 70%);
}
.scn-salem-native-sentiment .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 100%); animation: sns-sky 16s ease-in-out infinite alternate; }
.scn-salem-native-sentiment .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 30% 70% 0 0 / 80% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.3); animation: sns-hills 20s ease-in-out infinite alternate; }
.scn-salem-native-sentiment .houses { position:absolute; bottom:25%; left:15%; width:120px; height:40px; background: linear-gradient(90deg, #7a6a5a 0%, #8a7a6a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: sns-houses 12s ease-in-out infinite; }
.scn-salem-native-sentiment .steeple { position:absolute; bottom:30%; left:40%; width:16px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4% 4% 0 0; transform: perspective(80px) rotateX(-10deg); animation: sns-steeple 14s ease-in-out infinite; }
.scn-salem-native-sentiment .tree { position:absolute; bottom:25%; left:65%; width:40px; height:60px; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 -4px 6px rgba(0,0,0,.3); animation: sns-tree 18s ease-in-out infinite alternate; }
.scn-salem-native-sentiment .path { position:absolute; bottom:18%; left:30%; width:80px; height:12px; background: linear-gradient(180deg, #a09a8a 0%, #7a726a 100%); border-radius: 50% 50% 20% 20% / 100% 100% 20% 20%; opacity:.7; animation: sns-path 22s ease-in-out infinite; }
.scn-salem-native-sentiment .figure { position:absolute; bottom:20%; left:50%; width:10px; height:20px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sns-figure 8s ease-in-out infinite; }
@keyframes sns-sky { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sns-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes sns-houses { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) translateY(-1px) } }
@keyframes sns-steeple { 0%,100% { transform: perspective(80px) rotateX(-10deg) } 50% { transform: perspective(80px) rotateX(-12deg) scale(1.02) } }
@keyframes sns-tree { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes sns-path { 0%,100% { clip-path: inset(0 30% 0 30%) } 50% { clip-path: inset(0 25% 0 25%) } }
@keyframes sns-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

/* Scene: family-roots-in-salem (calm, overcast) */
.scn-family-roots-in-salem {
  background: linear-gradient(180deg, #8a9a7a 0%, #aabb9a 40%, #c8dbb4 100%),
              radial-gradient(ellipse at 50% 100%, #aabb9a 0%, transparent 70%);
}
.scn-family-roots-in-salem .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #7a8a6a 0%, #9aaa8a 100%); animation: frs-sky 18s ease-in-out infinite alternate; }
.scn-family-roots-in-salem .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 20% 20% 0 0; animation: frs-ground 24s ease-in-out infinite; }
.scn-family-roots-in-salem .trunk { position:absolute; bottom:15%; left:35%; width:30px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: frs-trunk 12s ease-in-out infinite alternate; }
.scn-family-roots-in-salem .roots { position:absolute; bottom:5%; left:28%; width:70px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 60% 20% 20% / 100% 100% 20% 20%; transform: rotate(-5deg); animation: frs-roots 20s ease-in-out infinite; }
.scn-family-roots-in-salem .house { position:absolute; bottom:18%; left:55%; width:60px; height:40px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: frs-house 16s ease-in-out infinite; }
.scn-family-roots-in-salem .leaves { position:absolute; bottom:55%; left:35%; width:60px; height:40px; background: radial-gradient(circle, #5a7a4a 0%, #3a5a2a 70%); border-radius: 50%; filter: blur(3px); animation: frs-leaves 14s ease-in-out infinite alternate; }
.scn-family-roots-in-salem .figure { position:absolute; bottom:10%; left:30%; width:8px; height:16px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: frs-figure 9s ease-in-out infinite; }
@keyframes frs-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes frs-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes frs-trunk { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(1) } }
@keyframes frs-roots { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-8deg) translateY(1px) } }
@keyframes frs-house { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes frs-leaves { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes frs-figure { 0% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(6px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }

/* Scene: ancestors-puritan-legacy (dark, overcast) */
.scn-ancestors-puritan-legacy {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #4a4a5a 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 70%);
}
.scn-ancestors-puritan-legacy .sky { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); animation: apl-sky 20s ease-in-out infinite alternate; }
.scn-ancestors-puritan-legacy .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 0 0; animation: apl-ground 15s ease-in-out infinite; }
.scn-ancestors-puritan-legacy .building { position:absolute; bottom:15%; left:30%; width:100px; height:70px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: apl-building 18s ease-in-out infinite alternate; }
.scn-ancestors-puritan-legacy .door { position:absolute; bottom:18%; left:45%; width:16px; height:28px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 4px #3a2a1a; animation: apl-door 12s ease-in-out infinite; }
.scn-ancestors-puritan-legacy .ancestor { position:absolute; bottom:10%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: apl-ancestor 10s ease-in-out infinite; }
.scn-ancestors-puritan-legacy .lantern { position:absolute; bottom:15%; left:48%; width:6px; height:8px; background: radial-gradient(circle, #c8a060 0%, #805020 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 6px #805020, 0 0 32px 12px rgba(128,80,32,.4); animation: apl-lantern 3s ease-in-out infinite alternate; }
@keyframes apl-sky { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.75 } }
@keyframes apl-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes apl-building { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(1) } }
@keyframes apl-door { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes apl-ancestor { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes apl-lantern { 0% { opacity:.8; box-shadow: 0 0 12px 4px #805020, 0 0 24px 8px rgba(128,80,32,.3) } 50% { opacity:1; box-shadow: 0 0 24px 8px #c8a060, 0 0 48px 16px rgba(200,160,96,.5) } 100% { opacity:.9; box-shadow: 0 0 16px 6px #805020, 0 0 32px 12px rgba(128,80,32,.4) } }

/* Scene: puritan-persecution (dark, overcast) */
.scn-puritan-persecution {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #4a4a5a 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-puritan-persecution .sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); animation: pp-sky 22s ease-in-out infinite alternate; }
.scn-puritan-persecution .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 5% 5% 0 0; animation: pp-ground 18s ease-in-out infinite; }
.scn-puritan-persecution .courthouse { position:absolute; bottom:10%; left:20%; width:120px; height:80px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 6px 14px rgba(0,0,0,.7); animation: pp-courthouse 14s ease-in-out infinite alternate; }
.scn-puritan-persecution .door { position:absolute; bottom:12%; left:40%; width:18px; height:30px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 6px #3a2a1a; animation: pp-door 10s ease-in-out infinite; }
.scn-puritan-persecution .judge { position:absolute; bottom:8%; left:25%; width:16px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pp-judge 11s ease-in-out infinite; }
.scn-puritan-persecution .quaker { position:absolute; bottom:8%; left:50%; width:14px; height:38px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: pp-quaker 13s ease-in-out infinite; }
.scn-puritan-persecution .chain { position:absolute; bottom:12%; left:48%; width:20px; height:4px; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: pp-chain 8s ease-in-out infinite; }
@keyframes pp-sky { 0% { opacity:.65 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes pp-ground { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pp-courthouse { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) translateY(-1px) } 100% { transform: scaleX(1) } }
@keyframes pp-door { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes pp-judge { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pp-quaker { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pp-chain { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }

.scn-hall-lighting { background: linear-gradient(180deg, #f5e6d0 0%, #e3d1b0 40%, #cbb090 80%, #a08060 100%), radial-gradient(ellipse at 70% 30%, #ffe8c0 0%, transparent 60%); }
.scn-hall-lighting .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.15); }
.scn-hall-lighting .wall-left { position:absolute; top:0; left:0; width:20%; height:70%; background: linear-gradient(90deg, #d9c6a8 0%, #e3d1b0 100%); border-right: 2px solid #b09878; }
.scn-hall-lighting .wall-right { position:absolute; top:0; right:0; width:20%; height:70%; background: linear-gradient(270deg, #d9c6a8 0%, #e3d1b0 100%); border-left: 2px solid #b09878; }
.scn-hall-lighting .tower-window-left { position:absolute; top:15%; left:5%; width:10%; height:35%; background: radial-gradient(ellipse at 50% 50%, #ffe0a0 0%, #f0c880 50%, #d0a860 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 30px rgba(255,224,160,.6); animation: hl-window-left 6s ease-in-out infinite alternate; }
.scn-hall-lighting .tower-window-right { position:absolute; top:15%; right:5%; width:10%; height:35%; background: radial-gradient(ellipse at 50% 50%, #ffe0a0 0%, #f0c880 50%, #d0a860 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 30px rgba(255,224,160,.6); animation: hl-window-right 8s ease-in-out infinite alternate; }
.scn-hall-lighting .hall-window { position:absolute; top:10%; right:25%; width:25%; height:50%; background: radial-gradient(ellipse at 50% 60%, #fff0d0 0%, #f8e0b0 40%, #dcc090 100%); border-radius: 20% 20% 5% 5%; box-shadow: inset 0 0 40px rgba(255,240,208,.5); animation: hl-window-main 4s ease-in-out infinite; }
.scn-hall-lighting .curtain { position:absolute; top:8%; right:22%; width:31%; height:54%; background: linear-gradient(180deg, #b03828 0%, #8a2a1e 40%, #5e1a1d 100%); border-radius: 10% 10% 30% 30%; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); animation: hl-curtain 9s ease-in-out infinite alternate; }
.scn-hall-lighting .light-shaft-a { position:absolute; top:15%; left:30%; width:8%; height:55%; background: linear-gradient(180deg, rgba(255,240,200,.6) 0%, rgba(255,240,200,0) 100%); filter: blur(4px); transform-origin: top center; animation: hl-shaft-a 7s ease-in-out infinite; }
.scn-hall-lighting .light-shaft-b { position:absolute; top:12%; right:35%; width:6%; height:50%; background: linear-gradient(180deg, rgba(255,240,200,.5) 0%, rgba(255,240,200,0) 100%); filter: blur(3px); transform-origin: top center; animation: hl-shaft-b 5s ease-in-out infinite alternate; }
@keyframes hl-window-left { 0% { opacity:.8; box-shadow: inset 0 0 20px rgba(255,224,160,.4); } 50% { opacity:1; box-shadow: inset 0 0 40px rgba(255,224,160,.8); } 100% { opacity:.9; box-shadow: inset 0 0 30px rgba(255,224,160,.6); } }
@keyframes hl-window-right { 0% { opacity:.9; transform: scaleY(1); } 33% { opacity:1; transform: scaleY(1.02); } 66% { opacity:.85; transform: scaleY(.98); } 100% { opacity:.95; transform: scaleY(1); } }
@keyframes hl-window-main { 0% { filter: brightness(1); } 25% { filter: brightness(1.1); } 50% { filter: brightness(.95); } 75% { filter: brightness(1.05); } 100% { filter: brightness(1); } }
@keyframes hl-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(-2px); } }
@keyframes hl-shaft-a { 0% { opacity:.6; transform: skewY(-2deg); } 50% { opacity:1; transform: skewY(3deg); } 100% { opacity:.7; transform: skewY(-1deg); } }
@keyframes hl-shaft-b { 0% { opacity:.5; transform: skewY(1deg); } 100% { opacity:.8; transform: skewY(-4deg); } }

.scn-hall-furniture-armor { background: linear-gradient(180deg, #e8d8c0 0%, #d4b898 40%, #b09070 80%, #8a6e50 100%), radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 70%); }
.scn-hall-furniture-armor .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); }
.scn-hall-furniture-armor .wall-panel { position:absolute; top:0; left:0; right:0; height:75%; background: linear-gradient(180deg, #e3d1b0 0%, #d0b898 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.08); }
.scn-hall-furniture-armor .table { position:absolute; bottom:25%; left:50%; width:45%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #8a6e50 0%, #6a5030 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-hall-furniture-armor .chair-left { position:absolute; bottom:25%; left:20%; width:12%; height:25%; background: linear-gradient(180deg, #7a5e40 0%, #5a4028 100%); border-radius: 10% 10% 5% 5%; transform: skewY(3deg); }
.scn-hall-furniture-armor .chair-right { position:absolute; bottom:25%; right:20%; width:12%; height:25%; background: linear-gradient(180deg, #7a5e40 0%, #5a4028 100%); border-radius: 10% 10% 5% 5%; transform: skewY(-3deg); }
.scn-hall-furniture-armor .carving-left { position:absolute; bottom:40%; left:20%; width:8%; height:8%; background: radial-gradient(circle, #c8a880 0%, #a08050 100%); border-radius: 50%; filter: blur(2px); animation: hfa-carve 10s ease-in-out infinite; }
.scn-hall-furniture-armor .carving-right { position:absolute; bottom:40%; right:20%; width:8%; height:8%; background: radial-gradient(circle, #c8a880 0%, #a08050 100%); border-radius: 50%; filter: blur(2px); animation: hfa-carve 12s ease-in-out infinite reverse; }
.scn-hall-furniture-armor .candle { position:absolute; bottom:35%; left:50%; width:3%; height:10%; transform:translateX(-50%); background: linear-gradient(180deg, #f0e0a0 0%, #e0c080 50%, #b09040 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 20px 6px rgba(255,220,100,.5); animation: hfa-flame 3s ease-in-out infinite alternate; }
@keyframes hfa-carve { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.8; transform: scale(.95); } }
@keyframes hfa-flame { 0% { transform: translateX(-50%) scaleY(1); opacity:.9; } 50% { transform: translateX(-50%) scaleY(1.2); opacity:1; } 100% { transform: translateX(-50%) scaleY(.85); opacity:.85; } }

.scn-portraits-on-wall { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #000010 100%), radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 80%); }
.scn-portraits-on-wall .wall-dark { position:absolute; top:0; left:0; right:0; height:100%; background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%); }
.scn-portraits-on-wall .portrait-frame { position:absolute; width:15%; height:30%; background: linear-gradient(180deg, #c8a880 0%, #a08050 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 20px rgba(0,0,0,.7); }
.scn-portraits-on-wall .portrait-1 { top:15%; left:10%; }
.scn-portraits-on-wall .portrait-2 { top:15%; left:42%; }
.scn-portraits-on-wall .portrait-3 { top:15%; right:10%; }
.scn-portraits-on-wall .portrait-head { position:absolute; width:10%; height:15%; background: radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-portraits-on-wall .portrait-head-1 { top:20%; left:12.5%; animation: pow-head 12s ease-in-out infinite; }
.scn-portraits-on-wall .portrait-head-2 { top:20%; left:44.5%; animation: pow-head 15s ease-in-out infinite .5s; }
.scn-portraits-on-wall .portrait-head-3 { top:20%; right:12.5%; animation: pow-head 9s ease-in-out infinite 1s; }
.scn-portraits-on-wall .light-spot { position:absolute; top:5%; left:30%; width:40%; height:40%; background: radial-gradient(ellipse at 50% 40%, rgba(255,240,200,.15) 0%, transparent 70%); animation: pow-light 8s ease-in-out infinite alternate; }
.scn-portraits-on-wall .shadow-bottom { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, #000010 100%); animation: pow-shadow 10s ease-in-out infinite; }
@keyframes pow-head { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-.5deg); } }
@keyframes pow-light { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes pow-shadow { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.9; } }

.scn-suit-of-mail { background: linear-gradient(180deg, #4a3520 0%, #3a2a18 40%, #2a1a0c 80%, #1a0e04 100%), radial-gradient(ellipse at 50% 50%, #5a4020 0%, transparent 70%); }
.scn-suit-of-mail .oak-panel { position:absolute; top:0; left:0; right:0; height:100%; background: repeating-linear-gradient(90deg, #4a3520 0px, #5a4020 2px, #3a2a18 4px); opacity:.3; }
.scn-suit-of-mail .suit-torso { position:absolute; top:25%; left:50%; width:18%; height:40%; transform:translateX(-50%); background: linear-gradient(180deg, #b0a0a0 0%, #807070 40%, #585050 100%); border-radius: 15% 15% 20% 20%; box-shadow: 0 8px 24px rgba(0,0,0,.6), inset 0 4px 12px rgba(255,255,255,.1); animation: som-swing 6s ease-in-out infinite; }
.scn-suit-of-mail .suit-helmet { position:absolute; top:18%; left:50%; width:12%; height:10%; transform:translateX(-50%); background: linear-gradient(180deg, #c0b0b0 0%, #908080 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.5), inset 0 2px 6px rgba(255,255,255,.1); animation: som-swing 6s ease-in-out infinite .2s; }
.scn-suit-of-mail .gauntlet-left { position:absolute; top:45%; left:36%; width:8%; height:12%; transform:translateX(-50%); background: linear-gradient(180deg, #a09090 0%, #706060 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: som-arm-left 6s ease-in-out infinite .5s; }
.scn-suit-of-mail .gauntlet-right { position:absolute; top:45%; right:36%; width:8%; height:12%; transform:translateX(50%); background: linear-gradient(180deg, #a09090 0%, #706060 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: som-arm-right 6s ease-in-out infinite .8s; }
.scn-suit-of-mail .chain-bg { position:absolute; top:27%; left:42%; width:16%; height:36%; background: repeating-linear-gradient(45deg, #a09898 0px, #908080 2px, #706060 4px); border-radius: 10%; opacity:.2; }
.scn-suit-of-mail .shine-left { position:absolute; top:30%; left:46%; width:6%; height:20%; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, transparent 100%); filter: blur(2px); animation: som-shine 4s ease-in-out infinite; }
.scn-suit-of-mail .shine-right { position:absolute; top:32%; right:46%; width:4%; height:15%; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, transparent 100%); filter: blur(2px); animation: som-shine 5s ease-in-out infinite .5s; }
.scn-suit-of-mail .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); }
@keyframes som-swing { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes som-arm-left { 0% { transform: translateX(-50%) rotate(0deg); } 33% { transform: translateX(-50%) rotate(3deg); } 66% { transform: translateX(-50%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes som-arm-right { 0% { transform: translateX(50%) rotate(0deg); } 33% { transform: translateX(50%) rotate(-3deg); } 66% { transform: translateX(50%) rotate(2deg); } 100% { transform: translateX(50%) rotate(-1deg); } }
@keyframes som-shine { 0% { opacity:.3; } 50% { opacity:.8; } 100% { opacity:.2; } }

.scn-private-forgiveness {
  background:
    linear-gradient(180deg, #c8b89a 0%, #9c8a72 40%, #6d5b46 100%),
    radial-gradient(ellipse at 50% 100%, #4d3e2f 0%, transparent 60%);
}
.scn-private-forgiveness .sky-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d4cbb8 0%, #b5a68b 100%);
  animation: prv-sky 18s ease-in-out infinite alternate;
}
.scn-private-forgiveness .ground-soft {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a6a55 0%, #4d3e2f 100%);
  border-radius: 30% 50% 0 0;
  animation: prv-ground 14s ease-in-out infinite alternate;
}
.scn-private-forgiveness .figure-giver {
  position: absolute; bottom: 20%; left: 30%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #3a3025 0%, #1d1812 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: prv-giver 5s ease-in-out infinite;
}
.scn-private-forgiveness .figure-receiver {
  position: absolute; bottom: 18%; left: 52%; width: 32px; height: 58px;
  background: linear-gradient(180deg, #4a3b2e 0%, #2a1f18 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: center bottom;
  animation: prv-receiver 5s ease-in-out infinite 0.5s;
}
.scn-private-forgiveness .token-glow {
  position: absolute; bottom: 32%; left: 48%; width: 14px; height: 10px;
  background: radial-gradient(circle, #c8a070 0%, transparent 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 28px 12px rgba(200,160,112,0.4), 0 0 60px 24px rgba(200,160,112,0.2);
  animation: prv-glow 4s ease-in-out infinite alternate;
}
.scn-private-forgiveness .tree-branch {
  position: absolute; top: 8%; left: 5%; width: 140px; height: 6px;
  background: linear-gradient(90deg, #5a4736 0%, #2f241c 100%);
  border-radius: 40%;
  transform: rotate(-15deg);
  animation: prv-branch 22s ease-in-out infinite;
}
.scn-private-forgiveness .cloud-pass {
  position: absolute; top: 6%; left: -30%; width: 90px; height: 22px;
  background: linear-gradient(180deg, rgba(200,190,175,0.7) 0%, rgba(200,190,175,0.1) 100%);
  filter: blur(8px);
  animation: prv-cloud 45s linear infinite;
}
@keyframes prv-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes prv-ground { 0% { transform: scaleY(0.98); } 50% { transform: scaleY(1); } 100% { transform: scaleY(0.99); } }
@keyframes prv-giver { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(-3px) translateY(-2px) rotate(1deg); } 60% { transform: translateX(0) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes prv-receiver { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 30% { transform: translateX(2px) translateY(-3px) rotate(-1deg); } 60% { transform: translateX(0) translateY(0) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes prv-glow { 0% { opacity: 0.6; box-shadow: 0 0 20px 8px rgba(200,160,112,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 16px rgba(200,160,112,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 25px 10px rgba(200,160,112,0.35); } }
@keyframes prv-branch { 0% { transform: rotate(-12deg); } 50% { transform: rotate(-18deg); } 100% { transform: rotate(-12deg); } }
@keyframes prv-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(130vw); } }

.scn-whisper-of-scandal {
  background:
    linear-gradient(180deg, #1d222b 0%, #12151c 40%, #080a0e 100%),
    radial-gradient(ellipse at 30% 80%, #2c3545 0%, transparent 60%);
}
.scn-whisper-of-scandal .bg-night {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, #1e2635 0%, transparent 70%);
  animation: whs-bg 16s ease-in-out infinite alternate;
}
.scn-whisper-of-scandal .wall-shadow {
  position: absolute; top: 0; right: 0; width: 60%; height: 100%;
  background: linear-gradient(135deg, #0d1018 0%, transparent 100%);
  animation: whs-wall 10s ease-in-out infinite alternate;
}
.scn-whisper-of-scandal .figure-whisperer {
  position: absolute; bottom: 22%; left: 38%; width: 36px; height: 62px;
  background: linear-gradient(180deg, #2a2f3c 0%, #13161f 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: whs-whisper 5s ease-in-out infinite;
}
.scn-whisper-of-scandal .figure-listener {
  position: absolute; bottom: 20%; left: 52%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #2a2f3c 0%, #13161f 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: whs-listen 5s ease-in-out infinite 1s;
}
.scn-whisper-of-scandal .breath-curve {
  position: absolute; bottom: 38%; left: 44%; width: 20px; height: 14px;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,200,230,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: whs-breath 3s ease-in-out infinite alternate;
}
.scn-whisper-of-scandal .lamp-dim {
  position: absolute; bottom: 20%; left: 25%; width: 8px; height: 10px;
  background: radial-gradient(circle, #d4a56a 0%, transparent 80%);
  box-shadow: 0 0 30px 12px rgba(212,165,106,0.2);
  animation: whs-lamp 7s ease-in-out infinite;
}
.scn-whisper-of-scandal .curtain-fall {
  position: absolute; top: 0; left: 72%; width: 30%; height: 100%;
  background: linear-gradient(180deg, #1a1e2a 0%, #10131c 30%, #1a1e2a 100%);
  border-radius: 0 0 20% 20%;
  animation: whs-curtain 12s ease-in-out infinite alternate;
}
@keyframes whs-bg { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes whs-wall { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes whs-whisper { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes whs-listen { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes whs-breath { 0% { opacity: 0.1; transform: scale(0.8); } 50% { opacity: 0.25; transform: scale(1.2); } 100% { opacity: 0.1; transform: scale(0.8); } }
@keyframes whs-lamp { 0% { opacity: 0.3; box-shadow: 0 0 20px 6px rgba(212,165,106,0.1); } 50% { opacity: 0.6; box-shadow: 0 0 40px 16px rgba(212,165,106,0.25); } 100% { opacity: 0.3; box-shadow: 0 0 20px 6px rgba(212,165,106,0.1); } }
@keyframes whs-curtain { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }

.scn-effect-of-symbol {
  background:
    linear-gradient(180deg, #1a1412 0%, #322422 40%, #1a1412 100%),
    radial-gradient(ellipse at 50% 60%, #3f2c27 0%, transparent 70%);
}
.scn-effect-of-symbol .room-walls {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1f1b 0%, #3a2a25 50%, #1f1512 100%);
  animation: eff-walls 20s ease-in-out infinite alternate;
}
.scn-effect-of-symbol .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a22 0%, #1f1510 100%);
  border-radius: 20% 10% 0 0;
}
.scn-effect-of-symbol .figure-seated {
  position: absolute; bottom: 18%; left: 44%; width: 40px; height: 68px;
  background: linear-gradient(180deg, #322522 0%, #1f1412 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: eff-seated 8s ease-in-out infinite;
}
.scn-effect-of-symbol .chest-symbol {
  position: absolute; bottom: 30%; left: 48%; width: 18px; height: 16px;
  background: radial-gradient(circle, #a84a3a 0%, #5e2a1e 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 0 20px 8px rgba(168,74,58,0.4), 0 0 40px 16px rgba(168,74,58,0.2);
  animation: eff-symbol 3s ease-in-out infinite alternate;
}
.scn-effect-of-symbol .window-dusky {
  position: absolute; top: 10%; left: 20%; width: 60px; height: 80px;
  border: 3px solid #2a1f1a;
  background: linear-gradient(135deg, rgba(80,60,50,0.3) 0%, rgba(30,20,15,0.6) 100%);
  border-radius: 5% 5% 8% 8%;
  animation: eff-window 12s ease-in-out infinite;
}
.scn-effect-of-symbol .shadow-crawl {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,6,4,0.7) 100%);
  animation: eff-shade 14s ease-in-out infinite alternate;
}
.scn-effect-of-symbol .rust-patch {
  position: absolute; bottom: 34%; left: 38%; width: 14px; height: 8px;
  background: radial-gradient(circle, #8b4a2e 0%, transparent 80%);
  border-radius: 40%;
  filter: blur(3px);
  animation: eff-rust 6s ease-in-out infinite;
}
@keyframes eff-walls { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.92; } }
@keyframes eff-seated { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-3px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes eff-symbol { 0% { opacity: 0.7; box-shadow: 0 0 16px 4px rgba(168,74,58,0.3); } 50% { opacity: 1; box-shadow: 0 0 32px 12px rgba(168,74,58,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(168,74,58,0.35); } }
@keyframes eff-window { 0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.02); opacity: 0.5; } 100% { transform: scale(1); opacity: 0.4; } }
@keyframes eff-shade { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes eff-rust { 0% { transform: rotate(0deg); opacity: 0.4; } 50% { transform: rotate(-8deg); opacity: 0.6; } 100% { transform: rotate(0deg); opacity: 0.4; } }

.scn-personal-transformation {
  background:
    linear-gradient(180deg, #1f1714 0%, #312521 40%, #1f1714 100%),
    radial-gradient(ellipse at 50% 100%, #4a3832 0%, transparent 70%);
}
.scn-personal-transformation .mirror-frame {
  position: absolute; top: 5%; left: 30%; width: 80px; height: 110px;
  border: 4px solid #4a3530;
  background: radial-gradient(ellipse at 50% 50%, rgba(60,45,40,0.2) 0%, rgba(20,14,12,0.7) 100%);
  border-radius: 10% 10% 15% 15%;
  animation: prs-mirror 20s ease-in-out infinite alternate;
}
.scn-personal-transformation .figure-reflection {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2b1f1b 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: prs-fig 7s ease-in-out infinite;
}
.scn-personal-transformation .scissors-open {
  position: absolute; bottom: 22%; left: 52%; width: 16px; height: 14px;
  background: linear-gradient(135deg, #5a4a42 0%, #2a1e1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 40%, 20% 40%);
  transform: rotate(-15deg);
  animation: prs-scissors 4s ease-in-out infinite;
}
.scn-personal-transformation .hair-locks {
  position: absolute; bottom: 15%; left: 42%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #4a3528 0%, #2a1c14 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(10deg);
  animation: prs-hair 5s ease-in-out infinite alternate;
}
.scn-personal-transformation .candle-glow {
  position: absolute; bottom: 12%; left: 60%; width: 6px; height: 12px;
  background: radial-gradient(circle at 50% 0%, #e8c070 0%, #a07040 50%, transparent 100%);
  box-shadow: 0 0 24px 10px rgba(232,192,112,0.3);
  animation: prs-candle 3s ease-in-out infinite alternate;
}
.scn-personal-transformation .table-edge {
  position: absolute; bottom: 14%; left: 34%; width: 32%; height: 2px;
  background: linear-gradient(90deg, #3a2824 0%, #1f1412 100%);
  animation: prs-table 12s ease-in-out infinite;
}
.scn-personal-transformation .austerity-shade {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(135deg, #1a1210 0%, transparent 100%);
  animation: prs-shade 18s ease-in-out infinite alternate;
}
@keyframes prs-mirror { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes prs-fig { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes prs-scissors { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(0.95); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes prs-hair { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes prs-candle { 0% { opacity: 0.6; box-shadow: 0 0 16px 6px rgba(232,192,112,0.2); } 50% { opacity: 1; box-shadow: 0 0 32px 14px rgba(232,192,112,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 20px 8px rgba(232,192,112,0.25); } }
@keyframes prs-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.03); } 100% { transform: scaleX(1); } }
@keyframes prs-shade { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }

.scn-brook-boundary {
  background:
    linear-gradient(180deg, #5b6770 0%, #3f4a52 40%, #2a3238 70%, #1e262c 100%),
    radial-gradient(ellipse at 50% 100%, #2b3540 0%, transparent 60%);
}
.scn-brook-boundary .bb-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6b7a85 0%, #4e5c66 60%, transparent 100%);
  animation: bb-sky 10s ease-in-out infinite alternate;
}
.scn-brook-boundary .bb-forest-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2b3a2e 0%, #1a281c 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
  animation: bb-forest 15s ease-in-out infinite alternate;
}
.scn-brook-boundary .bb-brook {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #4e6068 0%, #3c4c54 50%, #4e6068 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: bb-flow 4s ease-in-out infinite;
}
.scn-brook-boundary .bb-figure-left {
  position: absolute; bottom: 30%; left: 25%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1c1f22 0%, #0e1114 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bb-sway 6s ease-in-out infinite;
}
.scn-brook-boundary .bb-figure-right {
  position: absolute; bottom: 30%; right: 25%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #1c1f22 0%, #0e1114 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bb-sway 6s ease-in-out infinite reverse;
}
.scn-brook-boundary .bb-reflection-left {
  position: absolute; bottom: 15%; left: 25%; width: 24px; height: 30px;
  background: linear-gradient(180deg, rgba(28,31,34,.4) 0%, transparent 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%;
  transform: scaleY(-0.6);
  opacity: 0.5;
  animation: bb-reflect 6s ease-in-out infinite;
}
.scn-brook-boundary .bb-reflection-right {
  position: absolute; bottom: 15%; right: 25%; width: 26px; height: 30px;
  background: linear-gradient(180deg, rgba(28,31,34,.4) 0%, transparent 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%;
  transform: scaleY(-0.6);
  opacity: 0.5;
  animation: bb-reflect 6s ease-in-out infinite reverse;
}
.scn-brook-boundary .bb-leaves {
  position: absolute; top: 20%; left: 10%; width: 20px; height: 10px;
  background: #5a6b5a;
  border-radius: 50% 0 50% 0;
  filter: blur(2px);
  opacity: 0.4;
  animation: bb-drift 20s linear infinite;
}
@keyframes bb-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes bb-forest { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bb-flow { 0% { background-position: 0 0 } 50% { background-position: -20px 0 } 100% { background-position: 0 0 } }
@keyframes bb-sway { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(0deg) } }
@keyframes bb-reflect { 0%,100% { opacity: .4; transform: scaleY(-0.6) translateX(0) } 50% { opacity: .6; transform: scaleY(-0.55) translateX(2px) } }
@keyframes bb-drift { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(30px) translateY(-5px) } 100% { transform: translateX(-60px) translateY(0) } }

.scn-leap-across-brook {
  background:
    linear-gradient(180deg, #5b6770 0%, #3f4a52 35%, #2a3238 70%, #1e262c 100%),
    radial-gradient(ellipse at 50% 20%, #6b7a85 0%, transparent 70%);
}
.scn-leap-across-brook .la-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6b7a85 0%, #4e5c66 60%, transparent 100%);
  animation: la-sky 12s ease-in-out infinite alternate;
}
.scn-leap-across-brook .la-forest-bg {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2b3a2e 0%, #1a281c 100%);
  border-radius: 40% 60% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
  animation: la-forest 18s ease-in-out infinite alternate;
}
.scn-leap-across-brook .la-brook {
  position: absolute; bottom: 22%; left: 5%; right: 5%; height: 14%;
  background: linear-gradient(90deg, #4e6068 0%, #5a6d78 30%, #4e6068 70%, #3c4c54 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.4);
  animation: la-flow 3s ease-in-out infinite;
}
.scn-leap-across-brook .la-pearl {
  position: absolute; bottom: 28%; left: 40%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1a1d20 0%, #0c0f12 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: la-pearl-gesture 4s ease-in-out infinite;
}
.scn-leap-across-brook .la-hester {
  position: absolute; bottom: 28%; left: 60%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #1a1d20 0%, #0c0f12 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: la-hester-beckon 5s ease-in-out infinite;
}
.scn-leap-across-brook .la-reflection-pearl {
  position: absolute; bottom: 16%; left: 40%; width: 22px; height: 28px;
  background: linear-gradient(180deg, rgba(26,29,32,.4) 0%, transparent 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%;
  transform: scaleY(-0.6);
  opacity: 0.5;
  animation: la-reflect 4s ease-in-out infinite;
}
.scn-leap-across-brook .la-reflection-hester {
  position: absolute; bottom: 16%; left: 60%; width: 28px; height: 28px;
  background: linear-gradient(180deg, rgba(26,29,32,.4) 0%, transparent 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%;
  transform: scaleY(-0.6);
  opacity: 0.5;
  animation: la-reflect 5s ease-in-out infinite reverse;
}
.scn-leap-across-brook .la-ripples {
  position: absolute; bottom: 22%; left: 35%; width: 50px; height: 10px;
  background: radial-gradient(ellipse, rgba(255,255,255,.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: la-ripple 2s ease-in-out infinite;
}
@keyframes la-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes la-forest { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes la-flow { 0% { background-position: 0 0 } 50% { background-position: -30px 0 } 100% { background-position: 0 0 } }
@keyframes la-pearl-gesture { 0%,100% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(3px) rotate(1deg) } 60% { transform: translateX(-2px) rotate(-2deg) } }
@keyframes la-hester-beckon { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(1deg) } }
@keyframes la-reflect { 0%,100% { opacity: .4; transform: scaleY(-0.6) translateX(0) } 50% { opacity: .6; transform: scaleY(-0.55) translateX(1px) } }
@keyframes la-ripple { 0% { transform: scaleX(1); opacity: .3 } 50% { transform: scaleX(1.3); opacity: .6 } 100% { transform: scaleX(1); opacity: .3 } }

.scn-pearl-points {
  background:
    linear-gradient(180deg, #3b454d 0%, #2a3238 40%, #1e262c 100%),
    radial-gradient(ellipse at 50% 80%, #334049 0%, transparent 70%);
}
.scn-pearl-points .pp-bg-deep {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4e5c66 0%, #2b3540 70%, transparent 100%);
  animation: pp-bg 8s ease-in-out infinite alternate;
}
.scn-pearl-points .pp-brook-surface {
  position: absolute; bottom: 18%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #4e6068 0%, #3c4c54 40%, #4e6068 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  animation: pp-surface 5s ease-in-out infinite;
}
.scn-pearl-points .pp-pearl-silhouette {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #15191c 0%, #0a0d10 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: pp-pearl-still 6s ease-in-out infinite;
}
.scn-pearl-points .pp-pointing-hand {
  position: absolute; bottom: 42%; left: 48%; width: 6px; height: 14px;
  background: #15191c;
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  transform-origin: bottom center;
  animation: pp-point 3s ease-in-out infinite;
}
.scn-pearl-points .pp-reflection {
  position: absolute; bottom: 10%; left: 45%; width: 24px; height: 30px;
  background: linear-gradient(180deg, rgba(21,25,28,.3) 0%, transparent 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%;
  transform: scaleY(-0.6);
  opacity: 0.5;
  animation: pp-reflect 6s ease-in-out infinite;
}
.scn-pearl-points .pp-ripples {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(255,255,255,.1) 0%, transparent 100%);
  filter: blur(3px);
  animation: pp-ripple 2s ease-in-out infinite;
}
@keyframes pp-bg { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes pp-surface { 0% { background-position: 0 0 } 50% { background-position: -15px -5px } 100% { background-position: 0 0 } }
@keyframes pp-pearl-still { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(1deg) } 75% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes pp-point { 0%,100% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(-15deg) translateY(-2px) } 60% { transform: rotate(-10deg) translateY(-1px) } }
@keyframes pp-reflect { 0%,100% { opacity: .4; transform: scaleY(-0.6) translateX(0) } 50% { opacity: .6; transform: scaleY(-0.55) translateX(2px) } }
@keyframes pp-ripple { 0% { transform: scaleX(1); opacity: .2 } 50% { transform: scaleX(1.5); opacity: .5 } 100% { transform: scaleX(1); opacity: .2 } }

.scn-imperious-pearl {
  background:
    linear-gradient(180deg, #3b454d 0%, #2a3238 40%, #1e262c 100%),
    radial-gradient(ellipse at 50% 80%, #334049 0%, transparent 70%);
}
.scn-imperious-pearl .ip-bg-mid {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4e5c66 0%, #2b3540 70%, transparent 100%);
  animation: ip-bg 9s ease-in-out infinite alternate;
}
.scn-imperious-pearl .ip-brook {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 28%;
  background: linear-gradient(180deg, #4e6068 0%, #3c4c54 50%, #4e6068 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  animation: ip-flow 4s ease-in-out infinite;
}
.scn-imperious-pearl .ip-pearl-body {
  position: absolute; bottom: 30%; left: 45%; width: 26px; height: 64px;
  background: linear-gradient(180deg, #15191c 0%, #0a0d10 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: ip-body-sway 7s ease-in-out infinite;
}
.scn-imperious-pearl .ip-stamping-foot {
  position: absolute; bottom: 22%; left: 48%; width: 8px; height: 10px;
  background: #15191c;
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: top center;
  animation: ip-stamp 2s ease-in-out infinite;
}
.scn-imperious-pearl .ip-reflection {
  position: absolute; bottom: 5%; left: 45%; width: 26px; height: 32px;
  background: linear-gradient(180deg, rgba(21,25,28,.3) 0%, transparent 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%;
  transform: scaleY(-0.6);
  opacity: 0.5;
  animation: ip-reflect 7s ease-in-out infinite;
}
.scn-imperious-pearl .ip-splash {
  position: absolute; bottom: 16%; left: 46%; width: 16px; height: 8px;
  background: radial-gradient(ellipse, rgba(200,200,200,.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ip-splash 1.5s ease-in-out infinite;
}
.scn-imperious-pearl .ip-ripples {
  position: absolute; bottom: 15%; left: 40%; width: 70px; height: 6px;
  background: radial-gradient(ellipse, rgba(255,255,255,.1) 0%, transparent 100%);
  filter: blur(2px);
  animation: ip-ripple 2s ease-in-out infinite;
}
@keyframes ip-bg { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ip-flow { 0% { background-position: 0 0 } 50% { background-position: -20px 0 } 100% { background-position: 0 0 } }
@keyframes ip-body-sway { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(1px) rotate(1deg) } }
@keyframes ip-stamp { 0%,100% { transform: translateY(0) scale(1) } 30% { transform: translateY(-2px) scale(1.1) } 50% { transform: translateY(0) scale(0.95) } 70% { transform: translateY(-1px) scale(1.05) } }
@keyframes ip-reflect { 0%,100% { opacity: .4; transform: scaleY(-0.6) translateX(0) } 50% { opacity: .6; transform: scaleY(-0.55) translateX(2px) } }
@keyframes ip-splash { 0% { transform: scale(0.5); opacity: .5 } 50% { transform: scale(1.2); opacity: .1 } 100% { transform: scale(0.5); opacity: .5 } }
@keyframes ip-ripple { 0% { transform: scaleX(1); opacity: .2 } 50% { transform: scaleX(1.6); opacity: .4 } 100% { transform: scaleX(1); opacity: .2 } }

.scn-bellingham-asks-wilson-examine { background: linear-gradient(135deg, #8b7355 0%, #6b5b45 50%, #4a3d2e 100%), radial-gradient(ellipse at 40% 20%, #b8a080 0%, transparent 60%); }
.scn-bellingham-asks-wilson-examine .wall { position:absolute; inset:0; background: linear-gradient(180deg, #9c8568 0%, #7a6548 100%); }
.scn-bellingham-asks-wilson-examine .window { position:absolute; top:15%; left:60%; width:30%; height:40%; background: linear-gradient(180deg, #e0d8c0 0%, #c8b890 100%); border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); }
.scn-bellingham-asks-wilson-examine .light-beam { position:absolute; top:15%; left:60%; width:30%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,0.25) 0%, rgba(255,240,200,0) 100%); transform: skewX(-15deg); animation: baw-beam 6s ease-in-out infinite;
}
.scn-bellingham-asks-wilson-examine .table { position:absolute; bottom:18%; left:25%; width:50%; height:10%; background: linear-gradient(0deg, #5a4a35 0%, #7a6a55 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-bellingham-asks-wilson-examine .figure-bellingham { position:absolute; bottom:20%; left:30%; width:16%; height:45%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); animation: baw-stand 4s ease-in-out infinite alternate; }
.scn-bellingham-asks-wilson-examine .figure-wilson { position:absolute; bottom:20%; right:28%; width:18%; height:48%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 50%, #2a2a1a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform: rotate(-5deg); animation: baw-stand 5s ease-in-out infinite alternate; }
.scn-bellingham-asks-wilson-examine .figure-pearl { position:absolute; bottom:10%; left:48%; width:10%; height:30%; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: baw-child 3s ease-in-out infinite; }
.scn-bellingham-asks-wilson-examine .chair { position:absolute; bottom:18%; left:48%; width:14%; height:20%; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-bellingham-asks-wilson-examine .shadow { position:absolute; bottom:0; left:20%; width:60%; height:12%; background: linear-gradient(0deg, rgba(0,0,0,.25) 0%, transparent 100%); border-radius: 50%; }
@keyframes baw-beam { 0% { opacity:.3; transform: skewX(-15deg) scaleX(1); } 50% { opacity:.6; transform: skewX(-12deg) scaleX(1.05); } 100% { opacity:.3; transform: skewX(-15deg) scaleX(1); } }
@keyframes baw-stand { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-2px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes baw-child { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-wilson-grandfatherly-fails { background: linear-gradient(180deg, #87ceeb 0%, #e0f0ff 50%, #f5f5dc 100%), radial-gradient(ellipse at 30% 80%, #fff8dc 0%, transparent 60%); }
.scn-wilson-grandfatherly-fails .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0ff 0%, #87cefa 100%); animation: wgf-sky 15s ease-in-out infinite alternate; }
.scn-wilson-grandfatherly-fails .sun { position:absolute; top:8%; right:15%; width:12%; height:12%; background: radial-gradient(circle, #fffacd 0%, #ffd700 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px #ffd700; animation: wgf-sun 8s ease-in-out infinite; }
.scn-wilson-grandfatherly-fails .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7ccd7c 0%, #3cb371 50%, #2e8b57 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; }
.scn-wilson-grandfatherly-fails .figure-wilson { position:absolute; bottom:22%; left:25%; width:20%; height:50%; background: linear-gradient(180deg, #2e4a3e 0%, #1e3a2e 50%, #0e2a1e 100%); border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%; transform: rotate(10deg) scaleX(1.1); animation: wgf-walk 4s ease-in-out infinite; }
.scn-wilson-grandfatherly-fails .figure-pearl { position:absolute; bottom:12%; left:50%; width:12%; height:35%; background: linear-gradient(180deg, #c8a882 0%, #a88862 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wgf-bounce 2.5s ease-in-out infinite; }
.scn-wilson-grandfatherly-fails .book { position:absolute; bottom:20%; left:40%; width:10%; height:8%; background: linear-gradient(180deg, #8b4513 0%, #5c3a1a 100%); border-radius: 4px; transform: rotate(-15deg); box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: wgf-book 6s ease-in-out infinite; }
.scn-wilson-grandfatherly-fails .flower-a { position:absolute; bottom:5%; left:10%; width:6%; height:10%; background: radial-gradient(circle, #ff69b4 0%, #ff1493 50%, transparent 80%); border-radius: 50%; animation: wgf-flower 7s ease-in-out infinite; }
.scn-wilson-grandfatherly-fails .flower-b { position:absolute; bottom:8%; right:15%; width:8%; height:12%; background: radial-gradient(circle, #ffa07a 0%, #ff7f50 50%, transparent 80%); border-radius: 50%; animation: wgf-flower 9s ease-in-out infinite reverse; }
@keyframes wgf-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes wgf-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.1) translate(4px,-4px); } 100% { transform: scale(1) translate(0,0); } }
@keyframes wgf-walk { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(8px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes wgf-bounce { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wgf-book { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes wgf-flower { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.2) rotate(20deg); } 100% { transform: scale(1) rotate(0); } }

.scn-pearl-perverse-refusal { background: linear-gradient(180deg, #e0f0ff 0%, #f5f5dc 100%), radial-gradient(ellipse at 50% 90%, #fff8dc 0%, transparent 70%); }
.scn-pearl-perverse-refusal .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0ff 0%, #87cefa 100%); animation: ppr-sky 12s ease-in-out infinite alternate; }
.scn-pearl-perverse-refusal .sun-rays { position:absolute; top:10%; left:40%; width:20%; height:200%; background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%); transform: rotate(20deg); animation: ppr-rays 6s ease-in-out infinite; }
.scn-pearl-perverse-refusal .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7ccd7c 0%, #3cb371 100%); border-radius: 70% 30% 0 0 / 40% 20% 0 0; }
.scn-pearl-perverse-refusal .figure-pearl { position:absolute; bottom:10%; left:45%; width:14%; height:40%; background: linear-gradient(180deg, #c8a882 0%, #a88862 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: ppr-stubborn 3s ease-in-out infinite; }
.scn-pearl-perverse-refusal .hand-mouth { position:absolute; bottom:26%; left:50%; width:6%; height:8%; background: linear-gradient(180deg, #d2b48c 0%, #b08a6a 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom; animation: ppr-hand 2s ease-in-out infinite alternate; }
.scn-pearl-perverse-refusal .shadow-wilson { position:absolute; bottom:20%; right:20%; width:18%; height:50%; background: linear-gradient(180deg, rgba(46,74,62,0.4) 0%, transparent 100%); border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%; transform: rotate(-10deg); animation: ppr-shadow 5s ease-in-out infinite; }
.scn-pearl-perverse-refusal .blur-leaf { position:absolute; top:30%; left:25%; width:10%; height:8%; background: radial-gradient(circle, #4caf50 0%, transparent 70%); filter: blur(4px); animation: ppr-leaf 8s ease-in-out infinite; }
@keyframes ppr-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes ppr-rays { 0% { opacity:.3; transform: rotate(18deg) scaleX(1); } 50% { opacity:.5; transform: rotate(22deg) scaleX(1.2); } 100% { opacity:.3; transform: rotate(18deg) scaleX(1); } }
@keyframes ppr-stubborn { 0% { transform: scaleX(-1) translateY(0) rotate(0); } 50% { transform: scaleX(-1) translateY(-4px) rotate(8deg); } 100% { transform: scaleX(-1) translateY(0) rotate(0); } }
@keyframes ppr-hand { 0% { transform: scaleY(1) translateY(0); } 100% { transform: scaleY(0.8) translateY(-4px); } }
@keyframes ppr-shadow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes ppr-leaf { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(10px) rotate(30deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-chillingworth-whispers { background: linear-gradient(135deg, #4a3b2c 0%, #3a2b1c 50%, #2a1b0c 100%), radial-gradient(ellipse at 60% 30%, #b8a080 0%, transparent 50%); }
.scn-chillingworth-whispers .wall { position:absolute; inset:0; background: linear-gradient(0deg, #2a1b0c 0%, #4a3b2c 100%); }
.scn-chillingworth-whispers .bookshelf { position:absolute; left:10%; top:10%; width:15%; height:80%; background: linear-gradient(180deg, #5c3a1a 0%, #3a2a1a 100%); box-shadow: inset -4px 0 8px rgba(0,0,0,.6); border-radius: 2px; }
.scn-chillingworth-whispers .window-bright { position:absolute; top:10%; right:15%; width:30%; height:45%; background: linear-gradient(180deg, #e0d8c0 0%, #c8b890 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,240,200,0.3); animation: cw-light 8s ease-in-out infinite alternate; }
.scn-chillingworth-whispers .figure-chillingworth { position:absolute; bottom:15%; left:35%; width:18%; height:55%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%; transform: rotate(-5deg); animation: cw-whisper 4s ease-in-out infinite; }
.scn-chillingworth-whispers .figure-dimmesdale { position:absolute; bottom:18%; left:55%; width:16%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%; transform: rotate(3deg); animation: cw-stand 5s ease-in-out infinite alternate; }
.scn-chillingworth-whispers .figure-hester { position:absolute; bottom:12%; right:10%; width:15%; height:48%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(8deg); animation: cw-turn 6s ease-in-out infinite; }
.scn-chillingworth-whispers .desk { position:absolute; bottom:0; left:20%; width:60%; height:10%; background: linear-gradient(0deg, #4a3a2a 0%, #6a5a4a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-chillingworth-whispers .lamp { position:absolute; bottom:28%; right:35%; width:8%; height:18%; background: radial-gradient(ellipse at 50% 0%, #ffd700 0%, #b8860b 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px #b8860b; animation: cw-lamp 3s ease-in-out infinite alternate; }
.scn-chillingworth-whispers .shadow-dark { position:absolute; bottom:0; left:30%; width:40%; height:6%; background: linear-gradient(0deg, rgba(0,0,0,.4) 0%, transparent 100%); border-radius: 50%; }
@keyframes cw-light { 0% { opacity:.7; box-shadow: inset 0 0 20px rgba(255,240,200,0.2); } 50% { opacity:.9; box-shadow: inset 0 0 30px rgba(255,240,200,0.4); } 100% { opacity:.7; box-shadow: inset 0 0 20px rgba(255,240,200,0.2); } }
@keyframes cw-whisper { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(6px) scaleX(1.05); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes cw-stand { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes cw-turn { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(-4px); } 100% { transform: rotate(8deg) translateX(0); } }
@keyframes cw-lamp { 0% { opacity:.6; transform: scale(1); } 50% { opacity:.9; transform: scale(1.2); } 100% { opacity:.6; transform: scale(1); } }

/* Scene 1: hester-dimmesdale-union */
.scn-hester-dimmesdale-union {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 40%, #0d0505 100%),
    radial-gradient(ellipse at 50% 60%, #3a2020 0%, transparent 70%);
}
.scn-hester-dimmesdale-union .bg-deep { position:absolute; inset:0; background: inherit; animation: hdu-pulse 12s ease-in-out infinite; }
.scn-hester-dimmesdale-union .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0e0e 0%, #2a1a1a 100%); border-radius: 20% 20% 0 0; }
.scn-hester-dimmesdale-union .altar { position:absolute; bottom:25%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: hdu-altar 20s ease-in-out infinite; }
.scn-hester-dimmesdale-union .figure-left { position:absolute; bottom:25%; 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: hdu-fig-l 4s ease-in-out infinite; }
.scn-hester-dimmesdale-union .figure-right { position:absolute; bottom:25%; right: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: hdu-fig-r 4s ease-in-out infinite 0.5s; }
.scn-hester-dimmesdale-union .light-beam { position:absolute; top:-10%; left:50%; width:4px; height:120%; transform:translateX(-50%) rotate(5deg); background: linear-gradient(180deg, rgba(200,180,140,0.3) 0%, rgba(200,180,140,0) 100%); animation: hdu-beam 3s ease-in-out infinite alternate; }
@keyframes hdu-pulse { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes hdu-altar { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes hdu-fig-l { 0%,100% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-4px) translateY(-1px) rotate(-2deg); } }
@keyframes hdu-fig-r { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(4px) translateY(-1px) rotate(2deg); } }
@keyframes hdu-beam { 0% { opacity:0.2; transform: translateX(-50%) rotate(5deg) scaleY(0.9); } 50% { opacity:0.6; transform: translateX(-50%) rotate(-3deg) scaleY(1); } 100% { opacity:0.3; transform: translateX(-50%) rotate(7deg) scaleY(0.85); } }

/* Scene 2: hester-reasoning */
.scn-hester-reasoning {
  background:
    linear-gradient(180deg, #0d1418 0%, #1a2228 50%, #0d0f12 100%),
    radial-gradient(ellipse at 30% 50%, #1a2a30 0%, transparent 60%);
}
.scn-hester-reasoning .bg-cell { position:absolute; inset:0; background: inherit; animation: hre-pulse 15s ease-in-out infinite; }
.scn-hester-reasoning .floor-cell { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #0d0d0f 0%, #1a1e22 100%); border-radius: 30% 30% 0 0; }
.scn-hester-reasoning .barred-window { position:absolute; top:15%; right:20%; width:40px; height:60px; background: #1a2a30; border: 4px solid #2a3a40; border-radius: 10%; box-shadow: inset 0 0 20px rgba(100,140,180,0.2); animation: hre-window 8s ease-in-out infinite; }
.scn-hester-reasoning .figure-crouched { position:absolute; bottom:15%; left:35%; width:24px; height:36px; background: linear-gradient(180deg, #0d1214 0%, #05080a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hre-crouch 6s ease-in-out infinite; }
.scn-hester-reasoning .shadow-bars { position:absolute; top:15%; right:20%; width:40px; height:60px; background: repeating-linear-gradient(0deg, transparent 0px, transparent 6px, #0a1012 6px, #0a1012 10px); opacity:0.4; animation: hre-shadow 10s linear infinite; }
@keyframes hre-pulse { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hre-window { 0% { box-shadow: inset 0 0 10px rgba(100,140,180,0.1); } 50% { box-shadow: inset 0 0 30px rgba(100,140,180,0.4); } 100% { box-shadow: inset 0 0 15px rgba(100,140,180,0.2); } }
@keyframes hre-crouch { 0%,100% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(3deg); } }
@keyframes hre-shadow { 0% { transform: translateX(0); } 50% { transform: translateX(1px); } 100% { transform: translateX(-1px); } }

/* Scene 3: hester-martyrdom */
.scn-hester-martyrdom {
  background:
    linear-gradient(180deg, #2a1a12 0%, #3a2218 30%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 80%, #4a3020 0%, transparent 70%);
}
.scn-hester-martyrdom .bg-chapel { position:absolute; inset:0; background: inherit; animation: hma-pulse 18s ease-in-out infinite; }
.scn-hester-martyrdom .floor-chapel { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #1a0e08 0%, #2a1a12 100%); border-radius: 40% 40% 0 0; }
.scn-hester-martyrdom .kneeler { position:absolute; bottom:22%; left:50%; width:30px; height:10px; transform:translateX(-50%); background: #3a2218; border-radius: 20%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-hester-martyrdom .figure-kneeling { position:absolute; bottom:22%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1010 0%, #0d0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hma-kneel 5s ease-in-out infinite alternate; }
.scn-hester-martyrdom .halo { position:absolute; top:15%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,170,120,0.6) 0%, rgba(200,170,120,0) 70%); border-radius: 50%; animation: hma-halo 3s ease-in-out infinite alternate; }
.scn-hester-martyrdom .candle-left { position:absolute; bottom:30%; left:30%; width:4px; height:20px; background: linear-gradient(0deg, #5a3a20 0%, #a07040 100%); border-radius: 20%; box-shadow: 0 0 8px #a07040; animation: hma-candle 2s ease-in-out infinite; }
.scn-hester-martyrdom .candle-right { position:absolute; bottom:30%; right:30%; width:4px; height:20px; background: linear-gradient(0deg, #5a3a20 0%, #a07040 100%); border-radius: 20%; box-shadow: 0 0 8px #a07040; animation: hma-candle 2s ease-in-out infinite 1s; }
@keyframes hma-pulse { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hma-kneel { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes hma-halo { 0% { opacity:0.4; transform: translateX(-50%) scale(0.9); } 50% { opacity:0.8; transform: translateX(-50%) scale(1.1); } 100% { opacity:0.5; transform: translateX(-50%) scale(0.95); } }
@keyframes hma-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-1px); } 100% { transform: scaleY(0.95) translateY(1px); } }

/* Scene 4: hester-cottage-site */
.scn-hester-cottage-site {
  background:
    linear-gradient(180deg, #6a8fa8 0%, #b0d4e8 40%, #d4e8c8 100%),
    radial-gradient(ellipse at 70% 20%, #e8f0d0 0%, transparent 50%);
}
.scn-hester-cottage-site .sky-cottage { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7aa5c0 0%, #c8e0f0 100%); animation: hco-sky 20s ease-in-out infinite; }
.scn-hester-cottage-site .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #4a7040 0%, #6a9a5a 100%); border-radius: 40% 60% 0 0; }
.scn-hester-cottage-site .cottage-body { position:absolute; bottom:25%; left:25%; width:140px; height:100px; background: linear-gradient(180deg, #b09070 0%, #8a6a4a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.2); animation: hco-house 15s ease-in-out infinite; }
.scn-hester-cottage-site .roof { position:absolute; bottom:65%; left:22%; width:150px; height:40px; background: linear-gradient(135deg, #a08050 0%, #7a5a30 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); transform-origin: bottom center; animation: hco-roof 10s ease-in-out infinite alternate; }
.scn-hester-cottage-site .door { position:absolute; bottom:25%; left:35%; width:30px; height:60px; background: #5a3a20; border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 8px rgba(0,0,0,.3); animation: hco-door 25s ease-in-out infinite; }
.scn-hester-cottage-site .window-cottage { position:absolute; bottom:45%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #d0e0f0 0%, #7090b0 100%); border: 2px solid #4a3a2a; border-radius: 10%; animation: hco-window 4s ease-in-out infinite alternate; }
.scn-hester-cottage-site .chimney-smoke { position:absolute; bottom:80%; left:30%; width:10px; height:40px; background: linear-gradient(0deg, rgba(200,200,200,0.5) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: hco-smoke 8s ease-out infinite; }
.scn-hester-cottage-site .tree { position:absolute; bottom:30%; right:15%; width:40px; height:80px; background: linear-gradient(180deg, #3a5a30 0%, #1a3a1a 100%); border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; transform-origin: bottom center; animation: hco-tree 25s ease-in-out infinite; }
.scn-hester-cottage-site .cloud-left { position:absolute; top:8%; left:10%; width:80px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(6px); animation: hco-cloud-l 40s linear infinite; }
.scn-hester-cottage-site .cloud-right { position:absolute; top:14%; right:5%; width:60px; 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(5px); animation: hco-cloud-r 55s linear infinite reverse; }
@keyframes hco-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hco-house { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes hco-roof { 0% { transform: rotate(0) } 100% { transform: rotate(1deg) } }
@keyframes hco-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.3) } 100% { transform: scaleX(1) } }
@keyframes hco-window { 0% { box-shadow: 0 0 4px rgba(200,220,240,0.3); } 50% { box-shadow: 0 0 12px rgba(200,220,240,0.7); } 100% { box-shadow: 0 0 6px rgba(200,220,240,0.4); } }
@keyframes hco-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 100% { transform: translateY(-60px) scale(1.5); opacity: 0; } }
@keyframes hco-tree { 0% { transform: rotate(0) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes hco-cloud-l { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes hco-cloud-r { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-general-as-ruined-fortress {
  background: linear-gradient(135deg, #3a3a4a 0%, #2a2c3a 40%, #1e202e 100%),
              radial-gradient(ellipse at 30% 20%, #4a5a6a 0%, transparent 70%);
}
.scn-general-as-ruined-fortress .ru-wall-left {
  position: absolute; left: 0; top: 0; width: 35%; height: 100%;
  background: linear-gradient(90deg, #4a4a5a 0%, #2e3040 100%);
  border-right: 3px solid #3a3a4a; transform: scaleX(1);
  animation: ru-shift 20s ease-in-out infinite alternate;
}
.scn-general-as-ruined-fortress .ru-wall-right {
  position: absolute; right: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(270deg, #4a4a5a 0%, #2e3040 100%);
  border-left: 3px solid #3a3a4a;
  animation: ru-shift 20s ease-in-out infinite alternate-reverse;
}
.scn-general-as-ruined-fortress .ru-arch {
  position: absolute; bottom: 50%; left: 30%; width: 40%; height: 40%;
  background: #1e202e; border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  border: 4px solid #4a4a5a; box-shadow: inset 0 20px 30px rgba(0,0,0,0.7);
  animation: ru-arch 12s ease-in-out infinite alternate;
}
.scn-general-as-ruined-fortress .ru-window {
  position: absolute; top: 30%; left: 35%; width: 20%; height: 25%;
  background: radial-gradient(circle, #7a9ab0 0%, #3a4a5a 80%);
  border: 6px solid #2a2c3a; border-radius: 4px;
  box-shadow: inset 0 0 30px #9ab0c0, 0 0 40px rgba(122,154,176,0.2);
  opacity: 0.7; animation: ru-window-glint 8s ease-in-out infinite;
}
.scn-general-as-ruined-fortress .ru-debris {
  position: absolute; bottom: 0; left: 15%; width: 70%; height: 15%;
  background: linear-gradient(180deg, #2e3040 0%, #1a1c28 100%);
  clip-path: polygon(0% 30%, 10% 0%, 25% 20%, 40% 0%, 60% 15%, 75% 0%, 90% 25%, 100% 0%, 100% 100%, 0% 100%);
  animation: ru-debris-settle 30s ease-in-out infinite alternate;
}
.scn-general-as-ruined-fortress .ru-figure {
  position: absolute; bottom: 20%; left: 42%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1a1c28 0%, #0e0f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: ru-figure 6s ease-in-out infinite;
}
.scn-general-as-ruined-fortress .ru-dust {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(ellipse at 30% 50%, rgba(80,90,100,0.15) 0%, transparent 60%);
  filter: blur(30px); animation: ru-dust 40s linear infinite;
}
@keyframes ru-shift { 0% { opacity: 0.85; } 50% { opacity: 1; transform: scaleX(1.02); } 100% { opacity: 0.9; transform: scaleX(0.98); } }
@keyframes ru-arch { 0% { border-radius: 50% 50% 0 0 / 80% 80% 0 0; } 50% { border-radius: 55% 45% 0 0 / 85% 75% 0 0; } 100% { border-radius: 45% 55% 0 0 / 75% 85% 0 0; } }
@keyframes ru-window-glint { 0% { opacity: 0.6; box-shadow: inset 0 0 20px #7a9ab0; } 50% { opacity: 0.9; box-shadow: inset 0 0 40px #9ab0c0, 0 0 60px rgba(122,154,176,0.3); } 100% { opacity: 0.7; box-shadow: inset 0 0 25px #7a9ab0; } }
@keyframes ru-debris-settle { 0% { clip-path: polygon(0% 30%, 10% 0%, 25% 20%, 40% 0%, 60% 15%, 75% 0%, 90% 25%, 100% 0%, 100% 100%, 0% 100%); } 50% { clip-path: polygon(0% 35%, 8% 5%, 28% 22%, 38% 3%, 62% 18%, 73% 5%, 88% 28%, 100% 3%, 100% 100%, 0% 100%); } 100% { clip-path: polygon(0% 30%, 10% 0%, 25% 20%, 40% 0%, 60% 15%, 75% 0%, 90% 25%, 100% 0%, 100% 100%, 0% 100%); } }
@keyframes ru-figure { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-4px) rotate(-1deg); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes ru-dust { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-20px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }

.scn-general-heroic-qualities {
  background: linear-gradient(135deg, #3a2a1a 0%, #4a3a2a 40%, #2a1e12 100%),
              radial-gradient(ellipse at 60% 40%, #6a4a2a 0%, transparent 70%);
}
.scn-general-heroic-qualities .hq-backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e12 0%, #3a2a1a 50%, #1e1410 100%); opacity: 0.8;
  animation: hq-backdrop 15s ease-in-out infinite alternate;
}
.scn-general-heroic-qualities .hq-bust {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1e1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: hq-bust 8s ease-in-out infinite;
}
.scn-general-heroic-qualities .hq-glint {
  position: absolute; top: 30%; left: 38%; width: 8%; height: 6%;
  background: radial-gradient(circle, #c0a060 0%, transparent 70%);
  border-radius: 50%; opacity: 0.5;
  animation: hq-glint 4s ease-in-out infinite alternate;
}
.scn-general-heroic-qualities .hq-candle {
  position: absolute; bottom: 15%; right: 30%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 30%, #6a4a2a 100%);
  border-radius: 2px;
  animation: hq-candle-flicker 3s ease-in-out infinite;
}
.scn-general-heroic-qualities .hq-flame {
  position: absolute; bottom: 35%; right: 30%; width: 6%; height: 10%;
  background: radial-gradient(circle, #e0c070 0%, #c08040 50%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: hq-flame 1.5s ease-in-out infinite alternate;
}
.scn-general-heroic-qualities .hq-drape {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 50%, #1a0e08 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 85%, 10% 70%, 0% 55%, 15% 40%, 0% 25%);
  animation: hq-drape 25s ease-in-out infinite alternate;
}
.scn-general-heroic-qualities .hq-shadow {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: hq-shadow 12s ease-in-out infinite alternate;
}
@keyframes hq-backdrop { 0% { opacity: 0.75; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes hq-bust { 0% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hq-glint { 0% { opacity: 0.3; transform: scale(1); } 100% { opacity: 0.7; transform: scale(1.2); } }
@keyframes hq-candle-flicker { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes hq-flame { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 100% { transform: translateY(-5px) scale(1.1); opacity: 1; } }
@keyframes hq-drape { 0% { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 85%, 10% 70%, 0% 55%, 15% 40%, 0% 25%); } 50% { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 88%, 8% 72%, 0% 58%, 12% 42%, 0% 28%); } 100% { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 85%, 10% 70%, 0% 55%, 15% 40%, 0% 25%); } }
@keyframes hq-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(0.95); } }

.scn-general-iron-furnace {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a0e 40%, #3a1a0e 100%),
              radial-gradient(ellipse at 50% 60%, #5a2a0e 0%, transparent 70%);
}
.scn-general-iron-furnace .if-cavern {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0806 0%, #1a0e08 100%); opacity: 0.6;
  animation: if-cavern 20s ease-in-out infinite alternate;
}
.scn-general-iron-furnace .if-furnace {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 50% 80%, #8a3a0e 0%, #4a2a0e 60%, #1a0e08 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.8), 0 0 60px rgba(138,58,14,0.3);
  animation: if-furnace 10s ease-in-out infinite;
}
.scn-general-iron-furnace .if-glow {
  position: absolute; bottom: 40%; left: 25%; width: 50%; height: 20%;
  background: radial-gradient(ellipse, #c0601a 0%, #8a3a0e 50%, transparent 80%);
  filter: blur(20px); opacity: 0.7;
  animation: if-glow 4s ease-in-out infinite alternate;
}
.scn-general-iron-furnace .if-anvil {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: if-anvil 15s ease-in-out infinite alternate;
}
.scn-general-iron-furnace .if-hammer {
  position: absolute; bottom: 40%; left: 30%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; transform-origin: bottom center;
  animation: if-hammer 2s ease-in-out infinite;
}
.scn-general-iron-furnace .if-sparks {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(circle at 20% 50%, #f0c060 0%, transparent 20%),
              radial-gradient(circle at 80% 30%, #f0a040 0%, transparent 15%),
              radial-gradient(circle at 50% 70%, #f0a040 0%, transparent 10%);
  opacity: 0.4; filter: blur(2px);
  animation: if-sparks 0.8s ease-in-out infinite alternate;
}
.scn-general-iron-furnace .if-embers {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, #c0601a 0%, transparent 70%);
  opacity: 0.6; filter: blur(10px);
  animation: if-embers 6s ease-in-out infinite alternate;
}
@keyframes if-cavern { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes if-furnace { 0% { transform: scale(1); box-shadow: inset 0 -20px 40px rgba(0,0,0,0.8), 0 0 60px rgba(138,58,14,0.3); } 50% { transform: scale(1.02); box-shadow: inset 0 -20px 40px rgba(0,0,0,0.8), 0 0 80px rgba(138,58,14,0.5); } 100% { transform: scale(0.98); box-shadow: inset 0 -20px 40px rgba(0,0,0,0.8), 0 0 50px rgba(138,58,14,0.2); } }
@keyframes if-glow { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 0.9; transform: scale(1.1); } }
@keyframes if-anvil { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes if-hammer { 0% { transform: rotate(0deg); } 50% { transform: rotate(-30deg); } 100% { transform: rotate(0deg); } }
@keyframes if-sparks { 0% { opacity: 0.3; transform: translateY(0); } 100% { opacity: 0.6; transform: translateY(-10px) scale(1.2); } }
@keyframes if-embers { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.3); } 100% { opacity: 0.6; transform: scale(0.9); } }

.scn-general-stubborn-endurance {
  background: linear-gradient(180deg, #1a1a24 0%, #2a2a3a 50%, #0e1018 100%),
              radial-gradient(ellipse at 40% 60%, #3a3a4a 0%, transparent 70%);
}
.scn-general-stubborn-endurance .se-walls {
  position: absolute; left: 0; top: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a24 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.5);
  animation: se-walls 30s ease-in-out infinite alternate;
}
.scn-general-stubborn-endurance .se-walls::after {
  content: ''; position: absolute; right: -30%; top: 0; width: 60%; height: 100%;
  background: linear-gradient(90deg, #1a1a24 0%, transparent 100%);
}
.scn-general-stubborn-endurance .se-floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, #1a1a24 0%, #0e1018 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-general-stubborn-endurance .se-figure {
  position: absolute; bottom: 20%; left: 40%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a24 50%, #0e1018 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: se-figure 12s ease-in-out infinite alternate;
}
.scn-general-stubborn-endurance .se-lantern {
  position: absolute; bottom: 40%; left: 25%; width: 8%; height: 15%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 4px; box-shadow: 0 0 20px rgba(120,130,150,0.2);
  animation: se-lantern-swing 5s ease-in-out infinite;
}
.scn-general-stubborn-endurance .se-light {
  position: absolute; bottom: 35%; left: 20%; width: 18%; height: 25%;
  background: radial-gradient(ellipse, #8a9ab0 0%, transparent 70%);
  opacity: 0.3; filter: blur(15px);
  animation: se-light 8s ease-in-out infinite alternate;
}
.scn-general-stubborn-endurance .se-chain {
  position: absolute; bottom: 55%; left: 26%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 1px;
  animation: se-chain 5s ease-in-out infinite;
}
.scn-general-stubborn-endurance .se-shackle {
  position: absolute; bottom: 20%; left: 30%; width: 10%; height: 6%;
  background: #2a2a3a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: se-shackle 8s ease-in-out infinite alternate;
}
@keyframes se-walls { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes se-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes se-lantern-swing { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes se-light { 0% { opacity: 0.2; transform: scale(0.9); } 100% { opacity: 0.4; transform: scale(1.1); } }
@keyframes se-chain { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes se-shackle { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

/* hester-counsels-women */
.scn-hester-counsels-women {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e05 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-hester-counsels-women .room-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #1a0e05 100%); animation: hcw1-room 20s ease-in-out infinite alternate;
}
.scn-hester-counsels-women .window {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 60px; background: radial-gradient(circle at 50% 60%, #c8a060 0%, #8a6a40 80%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 24px 6px rgba(200,160,96,.3); animation: hcw1-glow 4s ease-in-out infinite alternate;
}
.scn-hester-counsels-women .fireplace {
  position: absolute; bottom: 15%; left: 15%; width: 60px; height: 70px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%); border-radius: 50% 50% 10% 10% / 40% 40% 60% 60%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.5); animation: hcw1-fire 6s ease-in-out infinite;
}
.scn-hester-counsels-women .hearth-glow {
  position: absolute; bottom: 12%; left: 15%; width: 60px; height: 20px; background: radial-gradient(ellipse, #e8a040 0%, #a06020 60%, transparent 100%); filter: blur(6px); animation: hcw1-hearth 3s ease-in-out infinite alternate;
}
.scn-hester-counsels-women .chair {
  position: absolute; bottom: 10%; left: 50%; width: 40px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; transform: translateX(-50%); animation: hcw1-chair 8s ease-in-out infinite;
}
.scn-hester-counsels-women .figure-hester {
  position: absolute; bottom: 10%; left: 40%; width: 24px; height: 60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hcw1-hester 5s ease-in-out infinite alternate;
}
.scn-hester-counsels-women .figure-woman {
  position: absolute; bottom: 8%; left: 55%; width: 20px; height: 50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%; transform-origin: bottom center; animation: hcw1-woman 4s ease-in-out infinite;
}
.scn-hester-counsels-women .shadow-vignette {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,.6) 100%); pointer-events: none; animation: hcw1-shad 10s ease-in-out infinite alternate;
}
@keyframes hcw1-room { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes hcw1-glow { 0% { box-shadow: 0 0 18px 3px rgba(200,160,96,.2) } 50% { box-shadow: 0 0 30px 8px rgba(200,160,96,.5) } 100% { box-shadow: 0 0 20px 4px rgba(200,160,96,.25) } }
@keyframes hcw1-fire { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.05) scaleX(1.02) } 100% { transform: scaleY(1) scaleX(1) } }
@keyframes hcw1-hearth { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes hcw1-chair { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes hcw1-hester { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes hcw1-woman { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(1px) scaleY(1.01) } 100% { transform: translateX(-1px) scaleY(1) } }
@keyframes hcw1-shad { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .55 } }

/* hester-prophesies-future */
.scn-hester-prophesies-future {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0e05 100%), radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 80%);
}
.scn-hester-prophesies-future .room-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #0e0a05 100%); animation: hpf2-room 18s ease-in-out infinite alternate;
}
.scn-hester-prophesies-future .window-light {
  position: absolute; top: 8%; right: 15%; width: 50px; height: 70px; background: radial-gradient(circle at 50% 50%, #e0c080 0%, #b09050 70%, transparent 100%); border-radius: 2px; box-shadow: 0 0 40px 10px rgba(224,192,128,.4); animation: hpf2-window 5s ease-in-out infinite alternate;
}
.scn-hester-prophesies-future .figure-hester {
  position: absolute; bottom: 10%; left: 45%; width: 24px; height: 65px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hpf2-hester 6s ease-in-out infinite;
}
.scn-hester-prophesies-future .arm-gesture {
  position: absolute; bottom: 45%; left: 46%; width: 6px; height: 35px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 30% 30% 10% 10%; transform-origin: bottom left; transform: rotate(30deg); animation: hpf2-arm 8s ease-in-out infinite alternate;
}
.scn-hester-prophesies-future .future-glow {
  position: absolute; top: 15%; left: 30%; width: 80px; height: 40px; background: radial-gradient(ellipse, rgba(224,200,150,.3) 0%, transparent 70%); filter: blur(8px); animation: hpf2-glow 7s ease-in-out infinite alternate;
}
.scn-hester-prophesies-future .shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 70%, transparent 50%, rgba(0,0,0,.5) 100%); pointer-events: none; animation: hpf2-shad 12s ease-in-out infinite;
}
@keyframes hpf2-room { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes hpf2-window { 0% { box-shadow: 0 0 30px 5px rgba(224,192,128,.3) } 50% { box-shadow: 0 0 50px 15px rgba(224,192,128,.6) } 100% { box-shadow: 0 0 35px 8px rgba(224,192,128,.35) } }
@keyframes hpf2-hester { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(-1px) rotate(2deg) } 75% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes hpf2-arm { 0% { transform: rotate(25deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(25deg) } }
@keyframes hpf2-glow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.1) } 100% { opacity: .45; transform: scaleX(1) } }
@keyframes hpf2-shad { 0%,100% { opacity: .4 } 50% { opacity: .6 } }

/* future-revelation-woman */
.scn-future-revelation-woman {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0e05 100%), radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 80%);
}
.scn-future-revelation-woman .backdrop {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #0e0a05 100%); animation: frw3-back 25s ease-in-out infinite alternate;
}
.scn-future-revelation-woman .aurora {
  position: absolute; top: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, rgba(200,180,150,.2) 0%, rgba(100,80,60,.1) 50%, transparent 100%); filter: blur(10px); animation: frw3-aurora 15s ease-in-out infinite alternate;
}
.scn-future-revelation-woman .figure-tall {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 80px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: translateX(-50%); transform-origin: bottom center; animation: frw3-tall 8s ease-in-out infinite;
}
.scn-future-revelation-woman .glow-halo {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 60px; margin-left: -30px; background: radial-gradient(circle, rgba(200,180,150,.5) 0%, transparent 70%); filter: blur(6px); animation: frw3-halo 6s ease-in-out infinite alternate;
}
.scn-future-revelation-woman .stars {
  position: absolute; top: 5%; left: 10%; width: 3px; height: 3px; background: #d0c0a0; border-radius: 50%; box-shadow: 20px 30px 0 #d0c0a0, 50px 10px 0 #d0c0a0, 80px 25px 0 #d0c0a0, 30px 45px 0 #d0c0a0, 70px 40px 0 #d0c0a0; animation: frw3-stars 20s linear infinite;
}
.scn-future-revelation-woman .particles {
  position: absolute; bottom: 60%; left: 30%; width: 4px; height: 4px; background: rgba(224,200,150,.4); border-radius: 50%; box-shadow: 40px -20px 0 rgba(224,200,150,.3), 80px -40px 0 rgba(224,200,150,.5), 20px -60px 0 rgba(224,200,150,.2), 60px -10px 0 rgba(224,200,150,.4); filter: blur(2px); animation: frw3-parts 12s ease-in-out infinite alternate;
}
@keyframes frw3-back { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes frw3-aurora { 0% { opacity: .3; transform: translateY(0) scaleY(1) } 50% { opacity: .5; transform: translateY(-5px) scaleY(1.1) } 100% { opacity: .3; transform: translateY(0) scaleY(1) } }
@keyframes frw3-tall { 0% { transform: translateX(-50%) rotate(-1deg) } 25% { transform: translateX(-50%) rotate(1deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(-2deg) translateY(0) } 75% { transform: translateX(-50%) rotate(1deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes frw3-halo { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .7; transform: scale(1.1) } 100% { opacity: .45; transform: scale(1) } }
@keyframes frw3-stars { 0% { opacity: .5 } 50% { opacity: 1 } 100% { opacity: .5 } }
@keyframes frw3-parts { 0% { transform: translateY(0) scale(1); opacity: .3 } 50% { transform: translateY(-10px) scale(1.2); opacity: .6 } 100% { transform: translateY(0) scale(1); opacity: .3 } }

/* tombstone-engraved */
.scn-tombstone-engraved {
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #8a7a6a 0%, transparent 70%);
}
.scn-tombstone-engraved .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 60%); animation: te4-sky 20s ease-in-out infinite alternate;
}
.scn-tombstone-engraved .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%); border-radius: 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: te4-grass 15s ease-in-out infinite alternate;
}
.scn-tombstone-engraved .tombstone {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 100px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 5% 5%; transform: translateX(-50%); box-shadow: 4px 6px 12px rgba(0,0,0,.5); animation: te4-tomb 7s ease-in-out infinite;
}
.scn-tombstone-engraved .slate {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 70px; margin-left: -30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 3% 3%; animation: te4-slate 10s ease-in-out infinite alternate;
}
.scn-tombstone-engraved .armorial {
  position: absolute; bottom: 45%; left: 50%; width: 20px; height: 30px; margin-left: -10px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% 50% 10% 10%; animation: te4-arm 6s ease-in-out infinite alternate;
}
.scn-tombstone-engraved .sunbeam {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 15px; background: linear-gradient(90deg, rgba(200,180,150,.4) 0%, rgba(200,180,150,.05) 100%); filter: blur(4px); transform: rotate(15deg); animation: te4-beam 9s ease-in-out infinite alternate;
}
.scn-tombstone-engraved .shadow-grave {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: te4-shad 12s ease-in-out infinite;
}
@keyframes te4-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes te4-grass { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes te4-tomb { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes te4-slate { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .95 } }
@keyframes te4-arm { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .8; transform: scale(1.05) } 100% { opacity: .6; transform: scale(1) } }
@keyframes te4-beam { 0% { opacity: .3; transform: rotate(15deg) translateX(0) } 50% { opacity: .6; transform: rotate(15deg) translateX(5px) } 100% { opacity: .3; transform: rotate(15deg) translateX(0) } }
@keyframes te4-shad { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .5 } }

/* needle-skill-remarked */
.scn-needle-skill-remarked {
  background: linear-gradient(135deg, #fefae0 0%, #f4d03f 30%, #d4a373 70%, #bc6c25 100%);
}
.scn-needle-skill-remarked .sunbeam {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 20%, rgba(255,245,200,0.6) 0%, transparent 70%);
  animation: nsr-sunbeam 6s ease-in-out infinite alternate;
}
.scn-needle-skill-remarked .fabric {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 55%;
  background: linear-gradient(180deg, #e6d5b8 0%, #c9b18a 100%);
  border-radius: 8px; box-shadow: inset 0 -4px 12px rgba(0,0,0,0.3);
  animation: nsr-fabric 12s ease-in-out infinite;
}
.scn-needle-skill-remarked .needle {
  position: absolute; top: 30%; left: 40%; width: 4px; height: 50%;
  background: linear-gradient(180deg, #b0b0b0 0%, #808080 80%, #505050 100%);
  border-radius: 2px 2px 1px 1px; transform: rotate(-25deg);
  box-shadow: 0 0 6px rgba(200,200,200,0.3);
  animation: nsr-needle 3s ease-in-out infinite;
}
.scn-needle-skill-remarked .thread {
  position: absolute; top: 35%; left: 42%; width: 40%; height: 2px;
  background: #b87878; border-radius: 1px; transform-origin: left center;
  filter: blur(0.5px); animation: nsr-thread 4s ease-in-out infinite alternate;
}
.scn-needle-skill-remarked .scarlet-letter {
  position: absolute; bottom: 35%; left: 28%; width: 30px; height: 38px;
  background: linear-gradient(135deg, #a0461a 0%, #c8553d 50%, #a0461a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 0 20px 8px rgba(168,70,26,0.5);
  animation: nsr-scarlet 5s ease-in-out infinite alternate;
}
.scn-needle-skill-remarked .thumb {
  position: absolute; bottom: 18%; right: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #f5cba7 0%, #e0b286 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(10deg); animation: nsr-thumb 4s ease-in-out infinite;
}
.scn-needle-skill-remarked .finger {
  position: absolute; bottom: 18%; right: 40%; width: 12px; height: 26px;
  background: linear-gradient(180deg, #f5cba7 0%, #e0b286 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(-5deg); animation: nsr-finger 4s ease-in-out infinite alternate;
}
.scn-needle-skill-remarked .spectator-eye {
  position: absolute; top: 15%; right: 20%; width: 10px; height: 6px;
  background: #5b3a29; border-radius: 50%; box-shadow: 0 0 12px 3px rgba(91,58,41,0.3);
  animation: nsr-eye 7s ease-in-out infinite alternate;
}
@keyframes nsr-sunbeam {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes nsr-fabric {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes nsr-needle {
  0% { transform: rotate(-25deg) translateY(0); }
  50% { transform: rotate(-30deg) translateY(3px); }
  100% { transform: rotate(-20deg) translateY(0); }
}
@keyframes nsr-thread {
  0% { transform: rotate(0deg); width: 40%; }
  50% { transform: rotate(15deg); width: 45%; }
  100% { transform: rotate(-5deg); width: 38%; }
}
@keyframes nsr-scarlet {
  0% { transform: scale(1); box-shadow: 0 0 20px 8px rgba(168,70,26,0.5); }
  50% { transform: scale(1.05); box-shadow: 0 0 30px 12px rgba(168,70,26,0.7); }
  100% { transform: scale(0.95); box-shadow: 0 0 15px 5px rgba(168,70,26,0.4); }
}
@keyframes nsr-thumb {
  0% { transform: rotate(10deg) translateY(0); }
  25% { transform: rotate(12deg) translateY(-1px); }
  50% { transform: rotate(8deg) translateY(1px); }
  75% { transform: rotate(15deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes nsr-finger {
  0% { transform: rotate(-5deg) translateY(0); }
  100% { transform: rotate(-10deg) translateY(2px); }
}
@keyframes nsr-eye {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.3); }
  100% { transform: scaleX(0.8); }
}

/* strip-madam-hester */
.scn-strip-madam-hester {
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 40%, #0f3460 70%, #112233 100%),
              radial-gradient(ellipse at 60% 20%, #e0a500 0%, transparent 50%);
}
.scn-strip-madam-hester .sunburst {
  position: absolute; top: 5%; left: 55%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffe066 0%, #ffb300 30%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: smh-sunburst 10s ease-in-out infinite alternate;
}
.scn-strip-madam-hester .hestersilhouette {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 140px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(2deg); animation: smh-hesil 8s ease-in-out infinite;
}
.scn-strip-madam-hester .scarletletter {
  position: absolute; bottom: 48%; left: 40%; width: 20px; height: 24px;
  background: linear-gradient(135deg, #a0461a 0%, #c8553d 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 0 25px 8px rgba(168,70,26,0.8);
  animation: smh-scarlet 5s ease-in-out infinite alternate;
}
.scn-strip-madam-hester .oldwoman-left {
  position: absolute; bottom: 15%; left: 10%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 30% 10% 10% / 40% 50% 20% 20%;
  transform: rotate(-5deg); animation: smh-oldwoman 12s ease-in-out infinite;
}
.scn-strip-madam-hester .oldwoman-right {
  position: absolute; bottom: 15%; right: 15%; width: 45px; height: 105px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 20% 10% 10% / 50% 40% 20% 20%;
  transform: rotate(4deg); animation: smh-oldwoman 12s ease-in-out infinite reverse;
}
.scn-strip-madam-hester .clutching-hand {
  position: absolute; bottom: 25%; left: 22%; width: 18px; height: 30px;
  background: #2a2a2a; border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-10deg); filter: blur(1px);
  animation: smh-hand 4s ease-in-out infinite alternate;
}
.scn-strip-madam-hester .shadow-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, #000000 80%);
}
@keyframes smh-sunburst {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.8); }
}
@keyframes smh-hesil {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(3px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes smh-scarlet {
  0% { transform: scale(1); box-shadow: 0 0 25px 8px rgba(168,70,26,0.8); }
  50% { transform: scale(1.15); box-shadow: 0 0 40px 15px rgba(168,70,26,0.9); }
  100% { transform: scale(0.9); box-shadow: 0 0 20px 5px rgba(168,70,26,0.5); }
}
@keyframes smh-oldwoman {
  0% { transform: rotate(-5deg) translateY(0); }
  33% { transform: rotate(-8deg) translateY(-2px); }
  66% { transform: rotate(-2deg) translateY(1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes smh-hand {
  0% { transform: rotate(-10deg) translateX(0); }
  100% { transform: rotate(-20deg) translateX(8px); }
}

/* beadle-commands-way */
.scn-beadle-commands-way {
  background: linear-gradient(180deg, #87CEEB 0%, #Add8e6 40%, #f0e68c 70%, #daa520 100%),
              radial-gradient(ellipse at 50% 0%, #fffacd 0%, transparent 60%);
}
.scn-beadle-commands-way .sky-bg {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #b0d4e8 0%, transparent 100%);
}
.scn-beadle-commands-way .sun {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5c0 0%, #ffd700 40%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 10px rgba(255,215,0,0.5);
  animation: bcw-sun 20s linear infinite alternate;
}
.scn-beadle-commands-way .beadle {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(3deg); animation: bcw-beadle 6s ease-in-out infinite;
}
.scn-beadle-commands-way .staff {
  position: absolute; bottom: 20%; left: 30%; width: 4px; height: 100px;
  background: linear-gradient(180deg, #8B5A2B 0%, #5C3A1E 100%);
  border-radius: 2px; transform: rotate(8deg);
  animation: bcw-staff 4s ease-in-out infinite alternate;
}
.scn-beadle-commands-way .crowd-left {
  position: absolute; bottom: 20%; left: 0; width: 30%; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 30% 0 0 / 0 50% 0 0;
  filter: blur(2px); animation: bcw-crowd 8s ease-in-out infinite;
}
.scn-beadle-commands-way .crowd-right {
  position: absolute; bottom: 20%; right: 0; width: 30%; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 0 0 0 / 50% 0 0 0;
  filter: blur(2px); animation: bcw-crowd 8s ease-in-out infinite reverse;
}
.scn-beadle-commands-way .street {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #d4a373 0%, #bc6c25 100%);
  border-radius: 20px 20px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-beadle-commands-way .dust {
  position: absolute; bottom: 15%; left: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,180,120,0.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: bcw-dust 3s ease-in-out infinite;
}
@keyframes bcw-sun {
  0% { transform: translateX(0) scale(1); }
  100% { transform: translateX(20px) scale(1.1); }
}
@keyframes bcw-beadle {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(6deg) translateY(-3px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes bcw-staff {
  0% { transform: rotate(8deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(5deg); }
}
@keyframes bcw-crowd {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes bcw-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.6; }
  50% { transform: translate(10px,-8px) scale(1.5); opacity: 0.2; }
  100% { transform: translate(20px,0) scale(0.8); opacity: 0.4; }
}

/* procession-to-scaffold */
.scn-procession-to-scaffold {
  background: linear-gradient(180deg, #e0f0ff 0%, #b8d4e8 40%, #c9a96e 70%, #8b6914 100%),
              radial-gradient(ellipse at 70% 80%, #f0e68c 0%, transparent 60%);
}
.scn-procession-to-scaffold .bg-sky {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #c9dae8 0%, transparent 100%);
}
.scn-procession-to-scaffold .sunshaft {
  position: absolute; top: 10%; left: 30%; width: 200px; height: 100%;
  background: linear-gradient(135deg, rgba(255,250,200,0.4) 0%, transparent 70%);
  filter: blur(10px); animation: pts-sunshaft 15s ease-in-out infinite alternate;
}
.scn-procession-to-scaffold .beadle {
  position: absolute; bottom: 20%; left: 10%; width: 50px; height: 130px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(2deg); animation: pts-beadle 7s ease-in-out infinite;
}
.scn-procession-to-scaffold .hester {
  position: absolute; bottom: 20%; left: 30%; width: 55px; height: 135px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 25% 25% 15% 15% / 55% 55% 25% 25%;
  transform: rotate(-1deg); animation: pts-hester 9s ease-in-out infinite;
}
.scn-procession-to-scaffold .scarletletter {
  position: absolute; bottom: 48%; left: 35%; width: 18px; height: 22px;
  background: linear-gradient(135deg, #a0461a 0%, #c8553d 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 0 30px 10px rgba(168,70,26,0.7);
  animation: pts-scarlet 5s ease-in-out infinite alternate;
}
.scn-procession-to-scaffold .crowd-shapes {
  position: absolute; bottom: 15%; left: 45%; width: 50%; height: 80px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 40% 0 0 0 / 60% 0 0 0;
  filter: blur(3px); opacity: 0.8; animation: pts-crowd 12s ease-in-out infinite;
}
.scn-procession-to-scaffold .scaffold {
  position: absolute; bottom: 10%; right: 5%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #8B5A2B 0%, #5C3A1E 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  transform: skewX(-5deg); animation: pts-scaffold 10s ease-in-out infinite;
}
.scn-procession-to-scaffold .shadows-long {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
}
@keyframes pts-sunshaft {
  0% { transform: rotate(-3deg) scaleX(1); opacity: 0.3; }
  50% { transform: rotate(3deg) scaleX(1.2); opacity: 0.6; }
  100% { transform: rotate(-1deg) scaleX(0.9); opacity: 0.4; }
}
@keyframes pts-beadle {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(4deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes pts-hester {
  0% { transform: rotate(-1deg) translateY(0); }
  33% { transform: rotate(1deg) translateY(2px); }
  66% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes pts-scarlet {
  0% { transform: scale(1) rotate(0); box-shadow: 0 0 30px 10px rgba(168,70,26,0.7); }
  50% { transform: scale(1.1) rotate(5deg); box-shadow: 0 0 45px 15px rgba(168,70,26,0.9); }
  100% { transform: scale(0.9) rotate(-5deg); box-shadow: 0 0 20px 5px rgba(168,70,26,0.5); }
}
@keyframes pts-crowd {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(-5px); }
}
@keyframes pts-scaffold {
  0% { transform: skewX(-5deg) translateY(0); }
  50% { transform: skewX(-3deg) translateY(-2px); }
  100% { transform: skewX(-5deg) translateY(0); }
}

.scn-puritan-gloom-exaggerated {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 60%);
}
.scn-puritan-gloom-exaggerated .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 100%); animation: pg-sky 15s ease-in-out infinite alternate;
}
.scn-puritan-gloom-exaggerated .building {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 140px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: pg-building 20s ease-in-out infinite alternate;
}
.scn-puritan-gloom-exaggerated .window {
  position: absolute; bottom: 48%; left: 28%; width: 14px; height: 20px; background: radial-gradient(circle, #c0a060 0%, #8a7040 70%); border-radius: 10%; box-shadow: 0 0 20px 4px rgba(192,160,96,.3); animation: pg-window 4s ease-in-out infinite alternate;
}
.scn-puritan-gloom-exaggerated .figure {
  position: absolute; bottom: 26%; left: 50%; width: 20px; height: 44px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pg-figure 6s ease-in-out infinite;
}
.scn-puritan-gloom-exaggerated .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-puritan-gloom-exaggerated .lamp {
  position: absolute; bottom: 32%; left: 38%; width: 6px; height: 80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform-origin: bottom center; animation: pg-lamp 8s ease-in-out infinite;
  box-shadow: 0 0 30px 10px rgba(192,160,96,.15);
}
.scn-puritan-gloom-exaggerated .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.05) 100%); border-radius: 50%; filter: blur(6px); animation: pg-cloud-a 40s linear infinite;
}
.scn-puritan-gloom-exaggerated .cloud-b {
  position: absolute; top: 20%; right: 15%; width: 70px; height: 16px; background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.04) 100%); border-radius: 50%; filter: blur(5px); animation: pg-cloud-b 55s linear infinite reverse;
}
@keyframes pg-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pg-building { 0% { transform: scale(1) } 50% { transform: scale(1.005) } 100% { transform: scale(1) } }
@keyframes pg-window { 0% { opacity:.6; box-shadow: 0 0 15px 2px rgba(192,160,96,.2); } 50% { opacity:1; box-shadow: 0 0 30px 8px rgba(192,160,96,.4); } 100% { opacity:.7; box-shadow: 0 0 20px 4px rgba(192,160,96,.3); } }
@keyframes pg-figure { 0% { transform: translateX(-10px) rotate(-1deg); } 25% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(20px) rotate(1deg); } 100% { transform: translateX(30px) rotate(0deg); } }
@keyframes pg-lamp { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes pg-cloud-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(110vw); } }
@keyframes pg-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-desire-for-pageantry {
  background: linear-gradient(180deg, #5a5a5a 0%, #4a4a4a 50%, #3a3a3a 100%), radial-gradient(ellipse at 50% 0%, #5a5a5a 0%, transparent 70%);
}
.scn-desire-for-pageantry .sky {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #6a6a6a 0%, #5a5a5a 100%); animation: dp-sky 12s ease-in-out infinite alternate;
}
.scn-desire-for-pageantry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-desire-for-pageantry .banner {
  position: absolute; bottom: 40%; left: 30%; width: 30px; height: 60px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 4% 4% 20% 20%; transform-origin: bottom center; animation: dp-banner 3s ease-in-out infinite alternate;
}
.scn-desire-for-pageantry .figure-a {
  position: absolute; bottom: 30%; left: 20%; width: 22px; height: 48px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-figure-a 5s ease-in-out infinite;
}
.scn-desire-for-pageantry .figure-b {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 48px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-figure-b 5s ease-in-out infinite 1.5s;
}
.scn-desire-for-pageantry .sun-haze {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 80px; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(200,180,140,.15) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: dp-haze 8s ease-in-out infinite alternate;
}
.scn-desire-for-pageantry .cloud-a {
  position: absolute; top: 8%; left: 5%; width: 100px; height: 18px; background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.05) 100%); border-radius: 50%; filter: blur(6px); animation: dp-cloud-a 45s linear infinite;
}
.scn-desire-for-pageantry .cloud-b {
  position: absolute; top: 18%; right: 10%; width: 80px; height: 14px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,.04) 100%); border-radius: 50%; filter: blur(5px); animation: dp-cloud-b 50s linear infinite reverse;
}
.scn-desire-for-pageantry .dust {
  position: absolute; bottom: 30%; left: 30%; width: 100%; height: 10px; background: radial-gradient(ellipse, rgba(200,180,140,.08) 0%, transparent 70%); filter: blur(8px); animation: dp-dust 7s ease-in-out infinite alternate;
}
@keyframes dp-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes dp-banner { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.02); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes dp-figure-a { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes dp-figure-b { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes dp-haze { 0% { opacity:.3; transform: translateX(-50%) scale(1); } 50% { opacity:.6; transform: translateX(-50%) scale(1.2); } 100% { opacity:.3; transform: translateX(-50%) scale(1); } }
@keyframes dp-cloud-a { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes dp-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }
@keyframes dp-dust { 0% { opacity:.1; transform: translateY(0); } 50% { opacity:.3; transform: translateY(-8px); } 100% { opacity:.1; transform: translateY(0); } }

.scn-dim-reflection-london {
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-dim-reflection-london .sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 100%); animation: dr-sky 18s ease-in-out infinite alternate;
}
.scn-dim-reflection-london .building.tall {
  position: absolute; bottom: 50%; left: 25%; width: 80px; height: 140px; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: dr-tall 20s ease-in-out infinite alternate;
}
.scn-dim-reflection-london .building.short {
  position: absolute; bottom: 50%; left: 40%; width: 60px; height: 100px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: dr-short 20s ease-in-out infinite alternate 1s;
}
.scn-dim-reflection-london .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); animation: dr-water 10s ease-in-out infinite alternate;
}
.scn-dim-reflection-london .reflection {
  position: absolute; bottom: 0; left: 25%; width: 80px; height: 140px; background: linear-gradient(180deg, rgba(74,74,58,.4) 0%, rgba(58,58,42,.2) 100%); border-radius: 0 0 4% 4%; filter: blur(2px); transform: scaleY(-1); opacity: .7; animation: dr-reflection 12s ease-in-out infinite alternate;
}
.scn-dim-reflection-london .cloud-a {
  position: absolute; top: 10%; left: 8%; width: 110px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.05) 100%); border-radius: 50%; filter: blur(6px); animation: dr-cloud-a 50s linear infinite;
}
.scn-dim-reflection-london .cloud-b {
  position: absolute; top: 20%; right: 12%; width: 70px; height: 14px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,.04) 100%); border-radius: 50%; filter: blur(5px); animation: dr-cloud-b 60s linear infinite reverse;
}
.scn-dim-reflection-london .ripple {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; animation: dr-ripple 4s ease-in-out infinite;
}
@keyframes dr-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dr-tall { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.005); } 100% { transform: translateY(0) scale(1); } }
@keyframes dr-short { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.005); } 100% { transform: translateY(0) scale(1); } }
@keyframes dr-water { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: -10% 0%; } }
@keyframes dr-reflection { 0% { opacity:.6; transform: scaleY(-1) translateY(0); } 50% { opacity:.8; transform: scaleY(-1) translateY(4px); } 100% { opacity:.6; transform: scaleY(-1) translateY(0); } }
@keyframes dr-cloud-a { 0% { transform: translateX(-60px); } 100% { transform: translateX(130vw); } }
@keyframes dr-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }
@keyframes dr-ripple { 0% { transform: scale(1); opacity:.4; } 50% { transform: scale(2); opacity:.1; } 100% { transform: scale(1); opacity:.4; } }

.scn-relaxation-of-labor {
  background: linear-gradient(180deg, #5a6a5a 0%, #4a5a4a 50%, #3a4a3a 100%), radial-gradient(ellipse at 50% 100%, #4a5a4a 0%, transparent 60%);
}
.scn-relaxation-of-labor .sky {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #6a7a6a 0%, #5a6a5a 100%); animation: rl-sky 14s ease-in-out infinite alternate;
}
.scn-relaxation-of-labor .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.5);
}
.scn-relaxation-of-labor .tree {
  position: absolute; bottom: 30%; left: 10%; width: 100px; height: 120px; background: radial-gradient(ellipse at 50% 20%, #4a5a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(2px); animation: rl-tree 25s ease-in-out infinite alternate;
}
.scn-relaxation-of-labor .figure-seated {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 32px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom center; animation: rl-seated 6s ease-in-out infinite;
}
.scn-relaxation-of-labor .figure-reclining {
  position: absolute; bottom: 20%; left: 55%; width: 36px; height: 20px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: center; animation: rl-reclining 8s ease-in-out infinite;
}
.scn-relaxation-of-labor .rock {
  position: absolute; bottom: 20%; left: 65%; width: 30px; height: 20px; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: rl-rock 30s ease-in-out infinite alternate;
}
.scn-relaxation-of-labor .grass-blade {
  position: absolute; bottom: 40%; left: 20%; width: 4px; height: 30px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 0 0; transform-origin: bottom; animation: rl-grass 2s ease-in-out infinite alternate;
}
.scn-relaxation-of-labor .cloud-a {
  position: absolute; top: 10%; left: 5%; width: 100px; height: 18px; background: linear-gradient(180deg, rgba(255,255,255,.25) 0%, rgba(255,255,255,.05) 100%); border-radius: 50%; filter: blur(6px); animation: rl-cloud-a 40s linear infinite;
}
.scn-relaxation-of-labor .cloud-b {
  position: absolute; top: 18%; right: 10%; width: 80px; height: 14px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, rgba(255,255,255,.04) 100%); border-radius: 50%; filter: blur(5px); animation: rl-cloud-b 50s linear infinite reverse;
}
@keyframes rl-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes rl-tree { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.01); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes rl-seated { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes rl-reclining { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes rl-rock { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes rl-grass { 0% { transform: rotate(10deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes rl-cloud-a { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes rl-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }

/* license-with-facts */
.scn-license-with-facts {
  background:
    linear-gradient(180deg, #1e1a12 0%, #3a2e1e 40%, #4a3a2a 70%, #2a2218 100%),
    radial-gradient(ellipse at 50% 60%, #5a4028 0%, transparent 70%);
}
.scn-license-with-facts .bg { position: absolute; inset: 0;  background: inherit; filter: blur(4px); opacity: 0.3; }
.scn-license-with-facts .desk { position: absolute; bottom: 22%; left: 15%; right: 15%; height: 8%; background: linear-gradient(180deg, #5a4a30 0%, #3a2e1e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-license-with-facts .paper-stack { position: absolute; bottom: 30%; left: 40%; width: 20%; height: 6%; background: linear-gradient(180deg, #d4c4a4 0%, #b8a884 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: lwf-stack 12s ease-in-out infinite; }
.scn-license-with-facts .lamp-glow { position: absolute; bottom: 34%; left: 30%; width: 8%; height: 10%; background: radial-gradient(circle, #e8b85a 0%, rgba(232,184,90,0.3) 60%, transparent 80%); box-shadow: 0 0 40px 20px rgba(232,184,90,0.4); animation: lwf-lamp 4s ease-in-out infinite alternate; }
.scn-license-with-facts .inkwell { position: absolute; bottom: 28%; left: 54%; width: 4%; height: 4%; background: radial-gradient(circle, #2a1a0a 0%, #1a0a00 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-license-with-facts .chair-silhouette { position: absolute; bottom: 20%; left: 60%; width: 18%; height: 30%; background: linear-gradient(180deg, #2a1e12 0%, #1a1008 100%); border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom; animation: lwf-chair 8s ease-in-out infinite; }
.scn-license-with-facts .dust-particle { position: absolute; top: 20%; left: 20%; width: 1%; height: 1%; background: #e0d0b0; border-radius: 50%; filter: blur(2px); box-shadow: 0 0 4px rgba(224,208,176,0.6); animation: lwf-dust 30s linear infinite; }
@keyframes lwf-stack { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes lwf-lamp { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes lwf-chair { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } }
@keyframes lwf-dust { 0% { transform: translate(0,0) scale(1); opacity: 0.3; } 50% { transform: translate(20px,-10px) scale(1.5); opacity: 0.6; } 100% { transform: translate(40px,-20px) scale(0.8); opacity: 0.2; } }

/* ghost-of-surveyor-pue */
.scn-ghost-of-surveyor-pue {
  background:
    linear-gradient(180deg, #1a1622 0%, #2a203a 30%, #1a1220 70%, #0e0a12 100%),
    radial-gradient(ellipse at 70% 40%, #4a3a5a 0%, transparent 60%);
}
.scn-ghost-of-surveyor-pue .bg { position: absolute; inset: 0; filter: blur(6px); opacity: 0.2; background: inherit; }
.scn-ghost-of-surveyor-pue .throne { position: absolute; bottom: 10%; left: 20%; width: 30%; height: 40%; background: linear-gradient(135deg, #3a2a40 0%, #1e1420 100%); border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.7); }
.scn-ghost-of-surveyor-pue .ghost-figure { position: absolute; bottom: 15%; left: 30%; width: 20%; height: 45%; background: radial-gradient(ellipse at 50% 30%, rgba(200,180,220,0.25) 0%, rgba(200,180,220,0.05) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); animation: gsp-ghost 6s ease-in-out infinite alternate; }
.scn-ghost-of-surveyor-pue .ray-light { position: absolute; top: 10%; left: 40%; width: 30%; height: 50%; background: linear-gradient(180deg, rgba(200,190,220,0.3) 0%, transparent 80%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: gsp-ray 8s ease-in-out infinite alternate; }
.scn-ghost-of-surveyor-pue .dust-mote { position: absolute; top: 20%; left: 50%; width: 2%; height: 2%; background: rgba(220,210,230,0.7); border-radius: 50%; filter: blur(1px); animation: gsp-dust 20s linear infinite; }
.scn-ghost-of-surveyor-pue .dust-mote:nth-child(6) { left: 60%; animation-duration: 25s; animation-delay: -5s; }
.scn-ghost-of-surveyor-pue .cobweb { position: absolute; top: 5%; left: 10%; width: 40%; height: 30%; background: radial-gradient(circle at 20% 20%, transparent 10%, rgba(255,255,255,0.05) 10%, transparent 15%, rgba(255,255,255,0.03) 15%, transparent); filter: blur(1px); animation: gsp-web 12s ease-in-out infinite; }
.scn-ghost-of-surveyor-pue .shadow { position: absolute; bottom: 0; left: 10%; width: 80%; height: 10%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: gsp-shadow 6s ease-in-out infinite alternate; }
@keyframes gsp-ghost { 0% { opacity: 0.3; transform: translateY(0) rotate(0deg); } 50% { opacity: 0.6; transform: translateY(-8px) rotate(2deg); } 100% { opacity: 0.4; transform: translateY(0) rotate(-2deg); } }
@keyframes gsp-ray { 0% { opacity: 0.2; transform: scaleY(0.9); } 50% { opacity: 0.5; transform: scaleY(1.1); } 100% { opacity: 0.3; transform: scaleY(0.95); } }
@keyframes gsp-dust { 0% { transform: translate(0,0) scale(1); opacity: 0; } 20% { opacity: 0.8; } 80% { opacity: 0.6; } 100% { transform: translate(-30px, -50px) scale(0.5); opacity: 0; } }
@keyframes gsp-web { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes gsp-shadow { 0% { opacity: 0.4; transform: translateX(0); } 100% { opacity: 0.7; transform: translateX(10px); } }

/* ghost-commands-publication */
.scn-ghost-commands-publication {
  background:
    linear-gradient(180deg, #1a1018 0%, #2a1a22 40%, #1e121a 70%, #0e080c 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a30 0%, transparent 60%);
}
.scn-ghost-commands-publication .bg { position: absolute; inset: 0; filter: blur(5px); opacity: 0.15; }
.scn-ghost-commands-publication .ghost-hand { position: absolute; bottom: 30%; left: 55%; width: 12%; height: 30%; background: radial-gradient(ellipse at 50% 40%, rgba(180,170,200,0.2) 0%, transparent 80%); border-radius: 20% 20% 40% 40% / 10% 10% 60% 60%; transform-origin: bottom left; animation: gcp-hand 5s ease-in-out infinite; }
.scn-ghost-commands-publication .scroll { position: absolute; bottom: 20%; left: 30%; width: 25%; height: 12%; background: linear-gradient(180deg, #c8b898 0%, #a89070 100%); border-radius: 2% 2% 8% 8% / 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: gcp-scroll 8s ease-in-out infinite; }
.scn-ghost-commands-publication .candle { position: absolute; bottom: 25%; left: 20%; width: 4%; height: 15%; background: linear-gradient(180deg, #e8d8c0 0%, #c8b098 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-ghost-commands-publication .flame { position: absolute; bottom: 40%; left: 20.5%; width: 3%; height: 8%; background: radial-gradient(circle, #ffe080 0%, #f0a030 40%, rgba(240,160,48,0) 70%); border-radius: 50%; animation: gcp-flame 1.5s ease-in-out infinite alternate; }
.scn-ghost-commands-publication .moth { position: absolute; top: 20%; left: 40%; width: 4%; height: 4%; background: radial-gradient(circle, #c08050 0%, #705030 100%); border-radius: 50%; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); animation: gcp-moth 6s linear infinite; }
.scn-ghost-commands-publication .shadow { position: absolute; bottom: 0; left: 0; width: 100%; height: 20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: gcp-shadow 3s ease-in-out infinite alternate; }
@keyframes gcp-hand { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(5deg); } }
@keyframes gcp-scroll { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gcp-flame { 0% { transform: scaleY(0.9) translateX(0); } 50% { transform: scaleY(1.2) translateX(2px); } 100% { transform: scaleY(1) translateX(-1px); } }
@keyframes gcp-moth { 0% { transform: translate(0,0) rotate(0deg); } 20% { transform: translate(15px,-20px) rotate(30deg); } 40% { transform: translate(-10px,10px) rotate(-20deg); } 60% { transform: translate(20px,-5px) rotate(45deg); } 80% { transform: translate(-5px,-15px) rotate(-10deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes gcp-shadow { 0% { opacity: 0.3; } 100% { opacity: 0.6; } }

/* pacing-the-quarterdeck */
.scn-pacing-the-quarterdeck {
  background:
    linear-gradient(180deg, #1a1820 0%, #2a2630 40%, #1e1c22 70%, #0e0c12 100%),
    radial-gradient(ellipse at 60% 40%, #3a3640 0%, transparent 60%);
}
.scn-pacing-the-quarterdeck .bg { position: absolute; inset: 0; filter: blur(4px); opacity: 0.2; }
.scn-pacing-the-quarterdeck .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a3228 0%, #1e1812 100%); }
.scn-pacing-the-quarterdeck .floor::after { content:''; position: absolute; top:0; left:0; width:100%; height:100%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 10px, rgba(0,0,0,0.1) 10px, rgba(0,0,0,0.1) 12px); }
.scn-pacing-the-quarterdeck .door { position: absolute; bottom: 30%; left: 10%; width: 15%; height: 50%; background: linear-gradient(180deg, #4a3e30 0%, #2a2218 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-pacing-the-quarterdeck .window { position: absolute; bottom: 35%; right: 15%; width: 18%; height: 30%; background: linear-gradient(180deg, #4a4850 0%, #2a2830 100%); border: 6px solid #2a2218; border-radius: 4px; box-shadow: inset 0 0 12px rgba(100,100,120,0.3); animation: ptq-window 10s ease-in-out infinite alternate; }
.scn-pacing-the-quarterdeck .lamp-glow { position: absolute; bottom: 32%; left: 45%; width: 10%; height: 14%; background: radial-gradient(circle, #e8c880 0%, rgba(232,200,128,0.3) 60%, transparent 80%); box-shadow: 0 0 50px 30px rgba(232,200,128,0.2); animation: ptq-lamp 5s ease-in-out infinite alternate; }
.scn-pacing-the-quarterdeck .walking-figure { position: absolute; bottom: 28%; left: 20%; width: 8%; height: 35%; background: linear-gradient(180deg, #1a1620 0%, #0e0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ptq-walk 6s ease-in-out infinite; }
.scn-pacing-the-quarterdeck .shadow { position: absolute; bottom: 0; left: 20%; width: 8%; height: 2%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: ptq-shadow 6s ease-in-out infinite; }
@keyframes ptq-window { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes ptq-lamp { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes ptq-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(30px) rotate(2deg); } 50% { transform: translateX(60px) rotate(-2deg); } 75% { transform: translateX(90px) rotate(2deg); } 100% { transform: translateX(120px) rotate(-2deg); } }
@keyframes ptq-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.4; } 25% { transform: translateX(30px) scaleX(1.2); opacity: 0.6; } 50% { transform: translateX(60px) scaleX(1); opacity: 0.5; } 75% { transform: translateX(90px) scaleX(1.3); opacity: 0.7; } 100% { transform: translateX(120px) scaleX(1); opacity: 0.4; } }

.scn-blameless-life-reckoned {
  background: linear-gradient(180deg, #b8c4c8 0%, #9aa8ae 50%, #7a8a8e 100%), radial-gradient(ellipse at 50% 0%, #dce4e8 0%, transparent 70%);
}
.scn-blameless-life-reckoned .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d0d8dc 0%, #b0bcc0 80%, transparent 100%);
  animation: blr-sky 16s ease-in-out infinite alternate;
}
.scn-blameless-life-reckoned .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a8a72 0%, #5a6a52 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
  animation: blr-hills 20s ease-in-out infinite alternate;
}
.scn-blameless-life-reckoned .cottage {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: blr-cottage 12s ease-in-out infinite;
}
.scn-blameless-life-reckoned .window {
  position: absolute; bottom: 33%; left: 50%; width: 16px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d4c4a0 0%, #a09070 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 3px rgba(160,144,112,0.5);
  animation: blr-window 4s ease-in-out infinite alternate;
}
.scn-blameless-life-reckoned .figure {
  position: absolute; bottom: 23%; left: 44%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: blr-figure 6s ease-in-out infinite;
}
.scn-blameless-life-reckoned .cloud-a {
  position: absolute; top: 12%; left: 20%; width: 90px; 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(5px);
  animation: blr-drift-a 40s linear infinite;
}
.scn-blameless-life-reckoned .cloud-b {
  position: absolute; top: 20%; right: 10%; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: blr-drift-b 55s linear infinite reverse;
}
@keyframes blr-sky { 0% { opacity: 0.75 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes blr-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes blr-cottage { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes blr-window { 0% { opacity: 0.6; box-shadow: 0 0 8px 2px rgba(160,144,112,0.3) } 50% { opacity: 1; box-shadow: 0 0 18px 6px rgba(200,180,140,0.6) } 100% { opacity: 0.7; box-shadow: 0 0 10px 3px rgba(160,144,112,0.4) } }
@keyframes blr-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-0.5px) rotate(0.5deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-0.5px) rotate(0.5deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes blr-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes blr-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-hester-charity-sick {
  background: linear-gradient(180deg, #2a221a 0%, #1a1812 40%, #0e0c08 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-hester-charity-sick .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3a3024 0%, #2a2218 100%);
  border-bottom: 2px solid #4a3a2a;
}
.scn-hester-charity-sick .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-hester-charity-sick .table {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
  animation: hcs-table 14s ease-in-out infinite;
}
.scn-hester-charity-sick .candle {
  position: absolute; bottom: 50%; left: 50%; width: 12px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 60%, #8a7a5a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 8px #ffd880;
  animation: hcs-candle 3s ease-in-out infinite alternate;
}
.scn-hester-charity-sick .figure {
  position: absolute; bottom: 25%; left: 38%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hcs-figure 7s ease-in-out infinite;
}
.scn-hester-charity-sick .bowl {
  position: absolute; bottom: 30%; left: 60%; width: 28px; height: 12px;
  background: linear-gradient(180deg, #a09070 0%, #706050 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
  animation: hcs-bowl 10s ease-in-out infinite;
}
.scn-hester-charity-sick .shadow {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 12px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: hcs-shadow 4s ease-in-out infinite alternate;
}
@keyframes hcs-table { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes hcs-candle { 0% { box-shadow: 0 0 20px 6px #ffd880; height: 40px; } 50% { box-shadow: 0 0 40px 12px #ffd880; height: 38px; } 100% { box-shadow: 0 0 25px 8px #ffd880; height: 40px; } }
@keyframes hcs-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-3px) rotate(-2deg) } 60% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hcs-bowl { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes hcs-shadow { 0% { opacity: 0.2; transform: scaleX(1) } 50% { opacity: 0.5; transform: scaleX(1.2) } 100% { opacity: 0.2; transform: scaleX(1) } }

.scn-pestilence-devotion {
  background: linear-gradient(180deg, #1e1410 0%, #140e0a 50%, #0a0604 100%), radial-gradient(ellipse at 50% 70%, #3a2218 0%, transparent 70%);
}
.scn-pestilence-devotion .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1c14 0%, #1a100c 100%);
  border-bottom: 2px solid #3a2a1e;
}
.scn-pestilence-devotion .bed {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
  animation: pde-bed 18s ease-in-out infinite;
}
.scn-pestilence-devotion .figure {
  position: absolute; bottom: 30%; left: 38%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pde-figure 8s ease-in-out infinite;
}
.scn-pestilence-devotion .candle {
  position: absolute; bottom: 28%; left: 65%; width: 10px; height: 36px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 60%, #8a7a5a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 25px 6px #ffd880;
  animation: pde-candle 3.5s ease-in-out infinite alternate;
}
.scn-pestilence-devotion .cross {
  position: absolute; top: 18%; left: 50%; width: 6px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10%;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
}
.scn-pestilence-devotion .curtain {
  position: absolute; top: 0; right: 10%; width: 30px; height: 80%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1c14 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: pde-curtain 20s ease-in-out infinite;
}
.scn-pestilence-devotion .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 16px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: pde-shadow 5s ease-in-out infinite alternate;
}
@keyframes pde-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes pde-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 75% { transform: translateX(-1px) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pde-candle { 0% { box-shadow: 0 0 15px 4px #ffd880; height: 36px; } 50% { box-shadow: 0 0 35px 10px #ffd880; height: 34px; } 100% { box-shadow: 0 0 20px 6px #ffd880; height: 36px; } }
@keyframes pde-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes pde-shadow { 0% { opacity: 0.3; transform: scaleX(1) } 50% { opacity: 0.6; transform: scaleX(1.3) } 100% { opacity: 0.3; transform: scaleX(1) } }

.scn-taper-of-sick-chamber {
  background: linear-gradient(180deg, #0c0806 0%, #1a100c 40%, #0e0a08 100%), radial-gradient(ellipse at 50% 70%, #2a1a12 0%, transparent 70%);
}
.scn-taper-of-sick-chamber .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1410 0%, #120e0a 100%);
}
.scn-taper-of-sick-chamber .candle-body {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a890 40%, #907a5a 80%, #605040 100%);
  border-radius: 20% 20% 8% 8%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.2);
  animation: tsc-body 8s ease-in-out infinite;
}
.scn-taper-of-sick-chamber .flame {
  position: absolute; bottom: 70%; left: 50%; width: 16px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #ffd880 0%, #ff8020 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: tsc-flame 1.5s ease-in-out infinite alternate;
}
.scn-taper-of-sick-chamber .glow {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, 50%);
  background: radial-gradient(circle, rgba(255,216,128,0.3) 0%, rgba(255,128,32,0.1) 40%, transparent 70%);
  border-radius: 50%;
  animation: tsc-glow 4s ease-in-out infinite alternate;
}
.scn-taper-of-sick-chamber .hand {
  position: absolute; bottom: 34%; left: 42%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 30% 20% 20%;
  transform: rotate(-20deg);
  animation: tsc-hand 6s ease-in-out infinite;
}
.scn-taper-of-sick-chamber .drip {
  position: absolute; bottom: 38%; left: 52%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a890 100%);
  border-radius: 50%;
  animation: tsc-drip 10s linear infinite;
}
@keyframes tsc-body { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scale(1.01) } }
@keyframes tsc-flame { 0% { transform: translateX(-50%) scaleY(1) skewX(0deg) } 25% { transform: translateX(-50%) scaleY(1.05) skewX(-5deg) } 50% { transform: translateX(-50%) scaleY(0.95) skewX(5deg) } 75% { transform: translateX(-50%) scaleY(1.02) skewX(-3deg) } 100% { transform: translateX(-50%) scaleY(1) skewX(0deg) } }
@keyframes tsc-glow { 0% { opacity: 0.4; transform: translate(-50%, 50%) scale(1) } 50% { opacity: 0.7; transform: translate(-50%, 50%) scale(1.1) } 100% { opacity: 0.4; transform: translate(-50%, 50%) scale(1) } }
@keyframes tsc-hand { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-20deg) } }
@keyframes tsc-drip { 0% { transform: translateY(0); opacity: 1 } 100% { transform: translateY(30px); opacity: 0 } }

.scn-procession-returns { background: linear-gradient(180deg, #87ceeb 0%, #f5d6a8 60%, #f0b060 100%), radial-gradient(ellipse at 50% 30%, #ffe080 0%, transparent 60%); }
.scn-procession-returns .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4f0 0%, #d4c8a0 100%); animation: pr-sky 20s ease-in-out infinite alternate; }
.scn-procession-returns .sun { position:absolute; top:8%; left:55%; width:80px; height:80px; background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, #ffa020 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 120px 40px #ffc040, 0 0 240px 80px rgba(255,192,64,.3); animation: pr-sun 12s ease-in-out infinite alternate; }
.scn-procession-returns .path { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #c8b080 0%, #a08858 100%); border-radius: 20% 80% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: pr-path 18s ease-in-out infinite alternate; }
.scn-procession-returns .crowd-left { position:absolute; bottom:23%; left:5%; width:30%; height:60%; background: radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, #3a2a1a 60%, transparent 100%); border-radius: 40% 60% 0 0; animation: pr-crowd 6s ease-in-out infinite alternate; }
.scn-procession-returns .crowd-right { position:absolute; bottom:23%; right:5%; width:30%; height:60%; background: radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, #3a2a1a 60%, transparent 100%); border-radius: 60% 40% 0 0; animation: pr-crowd 7s ease-in-out infinite alternate-reverse; }
.scn-procession-returns .procession { position:absolute; bottom:25%; left:35%; width:30%; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: pr-procession 15s ease-in-out infinite; }
.scn-procession-returns .spire { position:absolute; bottom:25%; left:70%; width:12px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px 4px 0 0; transform: skewX(-2deg); animation: pr-spire 10s ease-in-out infinite alternate; }
@keyframes pr-sky { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes pr-sun { 0% { transform: scale(1) translateY(0); opacity: .9 } 50% { transform: scale(1.05) translateY(-5px); opacity: 1 } 100% { transform: scale(.98) translateY(2px); opacity: .85 } }
@keyframes pr-path { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pr-crowd { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateY(-1px) } 100% { transform: scaleY(.98) } }
@keyframes pr-procession { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(.5deg) } 50% { transform: translateX(-4px) rotate(-.3deg) } 75% { transform: translateX(6px) rotate(.4deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pr-spire { 0% { transform: skewX(-2deg) scaleY(1) } 50% { transform: skewX(1deg) scaleY(1.02) } 100% { transform: skewX(-1deg) scaleY(1) } }

.scn-crowd-shout-enthusiasm { background: linear-gradient(180deg, #ffd080 0%, #ffb040 50%, #e89030 100%), radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 60%); }
.scn-crowd-shout-enthusiasm .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #ffe0a0 0%, #ffb040 100%); animation: cs-sky 15s ease-in-out infinite alternate; }
.scn-crowd-shout-enthusiasm .sun-glare { position:absolute; top:5%; left:45%; width:100px; height:100px; background: radial-gradient(circle, #fff8e0 0%, #ffdc80 40%, #ffb040 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 180px 60px #ffdc80, 0 0 300px 120px rgba(255,220,128,.4); animation: cs-glare 8s ease-in-out infinite alternate; }
.scn-crowd-shout-enthusiasm .crowd-base { position:absolute; bottom:10%; left:5%; right:5%; height:50%; background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1a0a 80%); border-radius: 50% 50% 0 0; animation: cs-crowd-base 5s ease-in-out infinite alternate; }
.scn-crowd-shout-enthusiasm .crowd-lower { position:absolute; bottom:20%; left:10%; right:10%; height:40%; background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, #1a0a00 80%); border-radius: 40% 60% 0 0; animation: cs-crowd-lower 6s ease-in-out infinite alternate-reverse; }
.scn-crowd-shout-enthusiasm .crowd-upper { position:absolute; bottom:35%; left:15%; right:15%; height:30%; background: radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, #0a0000 80%); border-radius: 30% 70% 0 0; animation: cs-crowd-upper 7s ease-in-out infinite alternate; }
.scn-crowd-shout-enthusiasm .arms { position:absolute; bottom:40%; left:20%; right:20%; height:30%; background: repeating-linear-gradient(0deg, transparent 0px, transparent 10px, #2a1a0a 10px, #2a1a0a 12px), repeating-linear-gradient(90deg, transparent 0px, transparent 20px, #3a2a1a 20px, #3a2a1a 22px); background-blend-mode: overlay; opacity: .7; animation: cs-arms 3s ease-in-out infinite; }
.scn-crowd-shout-enthusiasm .hats { position:absolute; bottom:48%; left:12%; right:12%; height:15%; background: radial-gradient(circle at 30% 50%, #6a4a3a 0%, #4a2a1a 100%), radial-gradient(circle at 70% 50%, #6a4a3a 0%, #4a2a1a 100%); background-size: 40px 30px, 30px 25px; background-position: 20% 0, 80% 0; background-repeat: no-repeat; border-radius: 50%; animation: cs-hats 4s ease-in-out infinite alternate; }
@keyframes cs-sky { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes cs-glare { 0% { transform: scale(1) rotate(0deg); opacity: .9 } 50% { transform: scale(1.08) rotate(5deg); opacity: 1 } 100% { transform: scale(.95) rotate(-3deg); opacity: .85 } }
@keyframes cs-crowd-base { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) translateY(-2px) } 100% { transform: scaleY(.97) } }
@keyframes cs-crowd-lower { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.04) translateY(-3px) } 100% { transform: scaleY(.96) } }
@keyframes cs-crowd-upper { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.06) translateY(-4px) } 100% { transform: scaleY(.94) } }
@keyframes cs-arms { 0% { transform: translateY(0) rotate(-2deg) } 33% { transform: translateY(-6px) rotate(1deg) } 66% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cs-hats { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }

.scn-mighty-swell-voices { background: linear-gradient(180deg, #ffcc80 0%, #ffb040 40%, #e88020 70%, #c06010 100%), radial-gradient(ellipse at 50% 60%, #ffe0a0 0%, transparent 70%); }
.scn-mighty-swell-voices .bg-wave { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(255,176,64,.3) 30%, transparent 60%, rgba(255,176,64,.1) 80%); animation: ms-bg-wave 10s ease-in-out infinite alternate; }
.scn-mighty-swell-voices .wave-front { position:absolute; bottom:20%; left:0; right:0; height:60%; background: radial-gradient(ellipse at 50% 100%, #ffa030 0%, transparent 70%); border-radius: 50% 50% 0 0; filter: blur(8px); animation: ms-wave-front 6s ease-in-out infinite alternate; }
.scn-mighty-swell-voices .wave-mid { position:absolute; bottom:30%; left:5%; right:5%; height:40%; background: radial-gradient(ellipse at 30% 100%, #ffb840 0%, transparent 70%), radial-gradient(ellipse at 70% 100%, #ffb840 0%, transparent 70%); filter: blur(10px); animation: ms-wave-mid 8s ease-in-out infinite alternate-reverse; }
.scn-mighty-swell-voices .wave-back { position:absolute; bottom:40%; left:10%; right:10%; height:30%; background: radial-gradient(ellipse at 20% 100%, #ffc860 0%, transparent 60%), radial-gradient(ellipse at 80% 100%, #ffc860 0%, transparent 60%); filter: blur(6px); animation: ms-wave-back 12s ease-in-out infinite alternate; }
.scn-mighty-swell-voices .pulse-core { position:absolute; bottom:35%; left:40%; width:20%; height:30%; background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 100%); border-radius:50%; filter: blur(15px); animation: ms-pulse 3s ease-in-out infinite; }
@keyframes ms-bg-wave { 0% { opacity: .5 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes ms-wave-front { 0% { transform: translateY(0) scaleX(1) } 25% { transform: translateY(-8px) scaleX(1.02) } 50% { transform: translateY(4px) scaleX(.98) } 75% { transform: translateY(-4px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ms-wave-mid { 0% { transform: translateY(0) scaleX(1) } 33% { transform: translateY(-10px) scaleX(1.03) } 66% { transform: translateY(5px) scaleX(.97) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ms-wave-back { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-12px) scaleX(1.04) } 100% { transform: translateY(0) scaleX(.96) } }
@keyframes ms-pulse { 0% { transform: scale(.8) rotate(0deg); opacity: .3 } 33% { transform: scale(1.15) rotate(10deg); opacity: .7 } 66% { transform: scale(.9) rotate(-5deg); opacity: .5 } 100% { transform: scale(1) rotate(0deg); opacity: .4 } }

.scn-dimmesdale-tottering { background: linear-gradient(180deg, #f0d8b0 0%, #c8a880 40%, #8a6a5a 70%, #3a2a1a 100%), radial-gradient(ellipse at 70% 40%, #ffe0c0 0%, transparent 60%); }
.scn-dimmesdale-tottering .sky-bright { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe0c0 0%, #f0d0a0 60%, transparent 100%); animation: dt-sky 12s ease-in-out infinite alternate; }
.scn-dimmesdale-tottering .halo { position:absolute; top:15%; left:45%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,224,192,.8) 0%, rgba(255,224,192,.3) 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,224,192,.5), 0 0 160px 80px rgba(255,224,192,.2); animation: dt-halo 4s ease-in-out infinite alternate; }
.scn-dimmesdale-tottering .figure { position:absolute; bottom:15%; left:48%; width:40px; height:100px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dt-figure 3s ease-in-out infinite; }
.scn-dimmesdale-tottering .staff { position:absolute; bottom:12%; left:52%; width:6px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(5deg); transform-origin: bottom center; animation: dt-staff 4s ease-in-out infinite; }
.scn-dimmesdale-tottering .ground-shadow { position:absolute; bottom:10%; left:30%; right:30%; height:5%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 100%); filter: blur(4px); animation: dt-shadow 5s ease-in-out infinite alternate; }
.scn-dimmesdale-tottering .dust { position:absolute; bottom:15%; left:35%; right:35%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,.4) 0%, transparent 70%); filter: blur(10px); animation: dt-dust 7s ease-in-out infinite alternate; }
@keyframes dt-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes dt-halo { 0% { transform: scale(.9) rotate(-5deg); opacity: .6 } 50% { transform: scale(1.1) rotate(3deg); opacity: 1 } 100% { transform: scale(.95) rotate(-2deg); opacity: .7 } }
@keyframes dt-figure { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(4px) rotate(2deg) } 40% { transform: translateX(-3px) rotate(-2deg) } 60% { transform: translateX(6px) rotate(3deg) } 80% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dt-staff { 0% { transform: rotate(5deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(7deg) } }
@keyframes dt-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) translateX(5px) } 100% { transform: scaleX(.9) translateX(-3px) } }
@keyframes dt-dust { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-8px) scaleY(1.3) } 100% { transform: translateY(0) scaleY(.9) } }

.scn-hester-moves-in {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 60%, #deb887 80%, #a0522d 100%),
              radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 50%);
}
.scn-hester-moves-in .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 60%, #b0e0e6 100%);
  animation: hs1-sky 20s ease-in-out infinite alternate;
}
.scn-hester-moves-in .sea {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4682b4 0%, #5f9ea0 40%, #7fffd4 100%);
  border-radius: 30% 70% 0 0 / 10% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,40,60,0.3);
  animation: hs1-sea 8s ease-in-out infinite alternate;
}
.scn-hester-moves-in .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #228b22 0%, #006400 100%);
  border-radius: 80% 20% 0 0 / 100% 40% 0 0;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.3);
  animation: hs1-hills 18s ease-in-out infinite alternate;
}
.scn-hester-moves-in .cottage {
  position: absolute; bottom: 30%; left: 40%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #deb887 0%, #8b4513 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.4);
  transform: rotate(-1deg);
  animation: hs1-cottage 12s ease-in-out infinite;
}
.scn-hester-moves-in .door {
  position: absolute; bottom: 30%; left: 44%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #8b4513 0%, #5c3a21 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: hs1-door 6s ease-in-out infinite alternate;
}
.scn-hester-moves-in .figure {
  position: absolute; bottom: 29%; left: 38%; width: 16px; height: 50px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 40%, #8b4513 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs1-figure 7s ease-in-out infinite;
}
.scn-hester-moves-in .sun {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ffd700, 0 0 80px 30px rgba(255,215,0,0.3);
  animation: hs1-sun 15s ease-in-out infinite alternate;
}
.scn-hester-moves-in .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: hs1-drift-a 40s linear infinite;
}
.scn-hester-moves-in .cloud-b {
  position: absolute; top: 18%; right: 30%; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: hs1-drift-b 55s linear infinite reverse;
}
@keyframes hs1-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hs1-sea {
  0% { transform: translateY(0px) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.02); }
  100% { transform: translateY(0px) scaleX(1); }
}
@keyframes hs1-hills {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hs1-cottage {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes hs1-door {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}
@keyframes hs1-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes hs1-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(1); opacity: 0.95; }
}
@keyframes hs1-drift-a {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes hs1-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

/* Scene: hester-suspicion */
.scn-hester-suspicion {
  background: linear-gradient(180deg, #fdf5e6 0%, #ffe4b5 30%, #deb887 60%, #8b4513 100%),
              radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%);
}
.scn-hester-suspicion .ext-wall {
  position: absolute; bottom: 20%; left: 20%; width: 200px; height: 160px;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  border-radius: 8px; box-shadow: 4px 0 12px rgba(0,0,0,0.5);
  transform: skewY(-2deg);
  animation: hs2-wall 10s ease-in-out infinite alternate;
}
.scn-hester-suspicion .window-frame {
  position: absolute; bottom: 40%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5c3a21 0%, #3e2723 100%);
  border-radius: 6px; box-shadow: 0 0 10px rgba(0,0,0,0.6);
}
.scn-hester-suspicion .window-pane {
  position: absolute; bottom: 42%; left: 32%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #fffacd 0%, #ffe4b5 100%);
  border-radius: 4px;
  animation: hs2-pane 5s ease-in-out infinite alternate;
}
.scn-hester-suspicion .silhouette {
  position: absolute; bottom: 38%; left: 40%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2c1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform: translateX(-50%);
  animation: hs2-silhouette 8s ease-in-out infinite alternate;
}
.scn-hester-suspicion .child-a {
  position: absolute; bottom: 22%; left: 15%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #a0522d 0%, #5c3a21 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hs2-child 6s ease-in-out infinite;
}
.scn-hester-suspicion .child-b {
  position: absolute; bottom: 22%; left: 20%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #c4845c 0%, #7a4e32 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hs2-child 6s ease-in-out infinite 1s;
}
.scn-hester-suspicion .shadow-grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #556b2f 0%, #2e4a1e 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: hs2-grass 12s ease-in-out infinite alternate;
}
@keyframes hs2-wall {
  0% { transform: skewY(-2deg) translateY(0); }
  50% { transform: skewY(-1deg) translateY(-2px); }
  100% { transform: skewY(-2deg) translateY(0); }
}
@keyframes hs2-pane {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes hs2-silhouette {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes hs2-child {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(10px) rotate(-2deg); }
  75% { transform: translateX(15px) rotate(2deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes hs2-grass {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}

/* Scene: hester-needlework-intro */
.scn-hester-needlework-intro {
  background: linear-gradient(180deg, #3e2723 0%, #4e342e 30%, #5d4037 60%, #3e2723 100%),
              radial-gradient(ellipse at 30% 50%, #795548 0%, transparent 70%);
}
.scn-hester-needlework-intro .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 40%, rgba(0,0,0,0.3) 100%);
  animation: hs3-room 14s ease-in-out infinite alternate;
}
.scn-hester-needlework-intro .table {
  position: absolute; bottom: 10%; left: 30%; width: 180px; height: 40px;
  background: linear-gradient(180deg, #6d4c41 0%, #4e342e 100%);
  border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
}
.scn-hester-needlework-intro .chair {
  position: absolute; bottom: 16%; left: 34%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-hester-needlework-intro .figure-seated {
  position: absolute; bottom: 25%; left: 36%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #8d6e63 0%, #5d4037 40%, #3e2723 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs3-figure 7s ease-in-out infinite;
}
.scn-hester-needlework-intro .lamp {
  position: absolute; bottom: 30%; left: 25%; width: 20px; height: 30px;
  background: radial-gradient(circle, #ffcc80 0%, #ffa726 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #ffa726, 0 0 60px 20px rgba(255,167,38,0.3);
  animation: hs3-lamp 4s ease-in-out infinite alternate;
}
.scn-hester-needlework-intro .needlework {
  position: absolute; bottom: 12%; left: 38%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #d7ccc8 0%, #a1887f 100%);
  border-radius: 5px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: hs3-needlework 6s ease-in-out infinite;
}
.scn-hester-needlework-intro .infant-cradle {
  position: absolute; bottom: 8%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%);
  border-radius: 20% 20% 10% 10%;
  animation: hs3-cradle 5s ease-in-out infinite alternate;
}
.scn-hester-needlework-intro .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle, rgba(255,255,255,0.05) 10%, transparent 90%);
  animation: hs3-dust 20s linear infinite;
}
@keyframes hs3-room {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}
@keyframes hs3-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hs3-lamp {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes hs3-needlework {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes hs3-cradle {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes hs3-dust {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}

/* Scene: item-scarlet-letter-embroidery */
.scn-item-scarlet-letter-embroidery {
  background: linear-gradient(180deg, #2c1a0e 0%, #4a2e1a 40%, #3e2723 100%),
              radial-gradient(ellipse at 50% 30%, #5d4037 0%, transparent 70%);
}
.scn-item-scarlet-letter-embroidery .fabric-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d7ccc8 0%, #bcaaa4 50%, #a1887f 100%);
  border-radius: 4px;
  animation: hs4-fabric 16s ease-in-out infinite alternate;
}
.scn-item-scarlet-letter-embroidery .letter-shape {
  position: absolute; top: 20%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #702243 0%, #5e1a1d 50%, #3a0d12 100%);
  border-radius: 20% 40% 20% 40% / 30% 20% 40% 20%;
  box-shadow: 0 0 15px 5px rgba(112,34,67,0.5);
  transform: rotate(-5deg);
  animation: hs4-letter 8s ease-in-out infinite alternate;
}
.scn-item-scarlet-letter-embroidery .gold-thread {
  position: absolute; top: 30%; left: 35%; width: 40px; height: 4px;
  background: linear-gradient(90deg, #ffd700 0%, #b8860b 50%, #daa520 100%);
  border-radius: 2px;
  animation: hs4-thread 4s ease-in-out infinite;
}
.scn-item-scarlet-letter-embroidery .hand-left {
  position: absolute; bottom: 25%; left: 18%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 40%, #8b4513 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 50% 40%;
  transform: rotate(20deg);
  animation: hs4-hand-l 7s ease-in-out infinite;
}
.scn-item-scarlet-letter-embroidery .hand-right {
  position: absolute; bottom: 25%; right: 18%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 40%, #8b4513 100%);
  border-radius: 50% 50% 40% 40% / 60% 40% 50% 40%;
  transform: rotate(-20deg);
  animation: hs4-hand-r 7s ease-in-out infinite 1s;
}
.scn-item-scarlet-letter-embroidery .needle {
  position: absolute; top: 28%; left: 42%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 1px;
  animation: hs4-needle 3s ease-in-out infinite alternate;
}
.scn-item-scarlet-letter-embroidery .shadow-detail {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 60%, rgba(0,0,0,0.4) 100%);
  animation: hs4-shadow 12s ease-in-out infinite alternate;
}
@keyframes hs4-fabric {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hs4-letter {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-3deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes hs4-thread {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(2px) scaleY(1.2); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes hs4-hand-l {
  0% { transform: rotate(20deg) translateX(0); }
  50% { transform: rotate(22deg) translateX(-2px); }
  100% { transform: rotate(20deg) translateX(0); }
}
@keyframes hs4-hand-r {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-18deg) translateX(2px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes hs4-needle {
  0% { transform: translateY(0) rotate(10deg); }
  50% { transform: translateY(-4px) rotate(15deg); }
  100% { transform: translateY(0) rotate(10deg); }
}
@keyframes hs4-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.6; }
}

/* hester-buoys-him */
.scn-hester-buoys-him {
  background: linear-gradient(180deg, #6b7b7b 0%, #4a5a5a 40%, #3a4a4a 100%), radial-gradient(ellipse at 50% 30%, #5a7a7a 0%, transparent 60%);
}
.scn-hester-buoys-him .sky-ov {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a0b8b8 0%, #708888 100%);
  animation: hbh-sky 12s ease-in-out infinite alternate;
}
.scn-hester-buoys-him .trees-bg {
  position: absolute; bottom: 25%; left: -5%; width: 110%; height: 35%;
  background: linear-gradient(90deg, #2a3a2a 0%, #1a2a1a 30%, #2a3a2a 60%, #1a2a1a 100%);
  border-radius: 30% 70% 40% 60% / 50% 50%;
  filter: blur(2px);
  animation: hbh-trees 20s ease-in-out infinite alternate;
}
.scn-hester-buoys-him .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-hester-buoys-him .figure-hester {
  position: absolute; bottom: 22%; left: 32%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbh-fig-h 4s ease-in-out infinite;
}
.scn-hester-buoys-him .figure-dimmesdale {
  position: absolute; bottom: 20%; left: 52%; width: 30px; height: 58px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbh-fig-d 4s ease-in-out infinite;
}
.scn-hester-buoys-him .arm-support {
  position: absolute; bottom: 38%; left: 42%; width: 24px; height: 4px;
  background: #1a1a2a;
  border-radius: 50%;
  transform-origin: right center;
  animation: hbh-arm 4s ease-in-out infinite;
}
.scn-hester-buoys-him .mist {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(150,170,170,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: hbh-mist 15s ease-in-out infinite alternate;
}
.scn-hester-buoys-him .leaf-a,
.scn-hester-buoys-him .leaf-b {
  position: absolute; width: 12px; height: 6px;
  background: #5a6a4a;
  border-radius: 50%;
  filter: blur(1px);
}
.scn-hester-buoys-him .leaf-a { top: 20%; left: 10%; animation: hbh-leaf-a 12s linear infinite; }
.scn-hester-buoys-him .leaf-b { top: 35%; left: 60%; animation: hbh-leaf-b 17s linear infinite reverse; }
@keyframes hbh-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hbh-trees { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes hbh-fig-h { 0%,100% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(5px,-2px) rotate(0deg); } 50% { transform: translate(10px,0) rotate(2deg); } 75% { transform: translate(5px,-1px) rotate(0deg); } }
@keyframes hbh-fig-d { 0%,100% { transform: translate(0,0) rotate(3deg); } 25% { transform: translate(-3px,-1px) rotate(1deg); } 50% { transform: translate(-6px,0) rotate(-2deg); } 75% { transform: translate(-3px,1px) rotate(0deg); } }
@keyframes hbh-arm { 0%,100% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.1); } }
@keyframes hbh-mist { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(-5px); } 100% { opacity: 0.4; transform: translateY(0); } }
@keyframes hbh-leaf-a { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(80px,40px) rotate(180deg); } 100% { transform: translate(160px,80px) rotate(360deg); } }
@keyframes hbh-leaf-b { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-60px,30px) rotate(-150deg); } 100% { transform: translate(-120px,60px) rotate(-300deg); } }

/* varied-missions */
.scn-varied-missions {
  background: linear-gradient(180deg, #6b7b7b 0%, #4a5a5a 40%, #3a4a4a 100%), radial-gradient(ellipse at 50% 30%, #5a7a7a 0%, transparent 60%);
}
.scn-varied-missions .sky-ov {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a0b8b8 0%, #708888 100%);
  animation: vm-sky 15s ease-in-out infinite alternate;
}
.scn-varied-missions .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: vm-hills 18s ease-in-out infinite alternate;
}
.scn-varied-missions .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 8% 8% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.4);
}
.scn-varied-missions .figure-hester {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 62px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vm-fig 5s ease-in-out infinite;
}
.scn-varied-missions .arm-point {
  position: absolute; bottom: 40%; left: 40%; width: 40px; height: 4px;
  background: #1a1a2a;
  border-radius: 50%;
  transform-origin: left center;
  animation: vm-arm 3s ease-in-out infinite alternate;
}
.scn-varied-missions .book-symbol {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 16px;
  background: #4a3a2a;
  border-radius: 10% 10% 20% 20% / 20% 20% 10% 10%;
  box-shadow: 2px 0 0 #3a2a1a, -2px 0 0 #3a2a1a;
  animation: vm-book 8s ease-in-out infinite;
}
.scn-varied-missions .scroll-symbol {
  position: absolute; bottom: 32%; left: 68%; width: 10px; height: 20px;
  background: #5a4a3a;
  border-radius: 30% 30% 30% 30% / 40% 40% 40% 40%;
  box-shadow: 0 2px 0 #3a2a1a;
  animation: vm-scroll 7s ease-in-out infinite alternate;
}
.scn-varied-missions .path-fork {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 10px;
  border: 2px solid #2a3a2a;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  border-bottom: none;
  animation: vm-path 10s ease-in-out infinite alternate;
}
@keyframes vm-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes vm-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes vm-fig { 0%,100% { transform: translate(0,0) rotate(-1deg); } 25% { transform: translate(3px,-2px) rotate(1deg); } 50% { transform: translate(6px,0) rotate(-1deg); } 75% { transform: translate(3px,-1px) rotate(1deg); } }
@keyframes vm-arm { 0% { transform: rotate(20deg) scaleX(1); } 50% { transform: rotate(30deg) scaleX(1.05); } 100% { transform: rotate(20deg) scaleX(1); } }
@keyframes vm-book { 0%,100% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(2deg); } 50% { transform: translate(0, -2px) rotate(0deg); } 75% { transform: translate(-2px, -1px) rotate(-2deg); } }
@keyframes vm-scroll { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(0,-3px) rotate(5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes vm-path { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* dim-fitful-light */
.scn-dim-fitful-light {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #050510 100%), radial-gradient(ellipse at 50% 30%, #0a0a1a 0%, transparent 70%);
}
.scn-dim-fitful-light .bg-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #10101a 0%, #0a0a10 100%);
  animation: dfl-bg 10s ease-in-out infinite alternate;
}
.scn-dim-fitful-light .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-dim-fitful-light .figure-dimmesdale {
  position: absolute; bottom: 12%; left: 45%; width: 32px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dfl-fig 4s ease-in-out infinite;
}
.scn-dim-fitful-light .light-flicker {
  position: absolute; bottom: 30%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,190,160,0.1) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,190,160,0.1);
  animation: dfl-light 2s ease-in-out infinite alternate;
}
.scn-dim-fitful-light .shadow-cast {
  position: absolute; bottom: 5%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(90deg, rgba(0,0,0,0.2) 0%, transparent 50%, rgba(0,0,0,0.3) 100%);
  filter: blur(8px);
  animation: dfl-shadow 4s ease-in-out infinite alternate;
}
.scn-dim-fitful-light .tree-trunk {
  position: absolute; bottom: 30%; left: 30%; width: 10px; height: 50%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: dfl-tree 8s ease-in-out infinite alternate;
}
@keyframes dfl-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dfl-fig { 0%,100% { transform: translate(0,0) rotate(3deg); } 25% { transform: translate(-2px,-1px) rotate(-1deg); } 50% { transform: translate(0,0) rotate(-3deg); } 75% { transform: translate(2px,1px) rotate(1deg); } }
@keyframes dfl-light { 0% { opacity: 0.1; box-shadow: 0 0 20px 5px rgba(200,190,160,0.05); } 50% { opacity: 0.3; box-shadow: 0 0 40px 15px rgba(200,190,160,0.15); } 100% { opacity: 0.1; box-shadow: 0 0 20px 5px rgba(200,190,160,0.05); } }
@keyframes dfl-shadow { 0% { transform: skewX(0deg); } 50% { transform: skewX(5deg); } 100% { transform: skewX(0deg); } }
@keyframes dfl-tree { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* not-alone */
.scn-not-alone {
  background: linear-gradient(180deg, #6b7b7b 0%, #4a5a5a 40%, #3a4a4a 100%), radial-gradient(ellipse at 50% 30%, #5a7a7a 0%, transparent 60%);
}
.scn-not-alone .sky-ov {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0b8b8 0%, #708888 100%);
  animation: na-sky 14s ease-in-out infinite alternate;
}
.scn-not-alone .town-silhouette {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  clip-path: polygon(5% 0, 10% 30%, 20% 0, 25% 40%, 35% 10%, 40% 50%, 50% 20%, 60% 60%, 70% 30%, 80% 70%, 90% 40%, 100% 80%, 100% 100%, 0 100%);
  filter: blur(1px);
  animation: na-town 20s ease-in-out infinite alternate;
}
.scn-not-alone .rock-hill {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: na-hill 15s ease-in-out infinite alternate;
}
.scn-not-alone .figure-hester {
  position: absolute; bottom: 22%; left: 46%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: na-fig 5s ease-in-out infinite;
}
.scn-not-alone .cape-flow {
  position: absolute; bottom: 26%; left: 44%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 0 50% 50% 0 / 0 60% 40% 0;
  transform-origin: top left;
  animation: na-cape 6s ease-in-out infinite alternate;
}
.scn-not-alone .leaf-a {
  position: absolute; top: 15%; left: 20%; width: 10px; height: 5px;
  background: #5a6a4a;
  border-radius: 50%;
  filter: blur(1px);
  animation: na-leaf 10s linear infinite;
}
@keyframes na-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes na-town { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes na-hill { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes na-fig { 0%,100% { 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); } }
@keyframes na-cape { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } }
@keyframes na-leaf { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(100px,60px) rotate(180deg); } 100% { transform: translate(200px,120px) rotate(360deg); } }

/* Scene: hester-conceals-letter */
.scn-hester-conceals-letter {
  background:
    linear-gradient(180deg, #87CEEB 0%, #f0e6d3 40%, #c4945a 70%, #8b6f4a 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff50 0%, transparent 60%);
}
.scn-hester-conceals-letter .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #d4e8f0 40%, transparent 100%);
  animation: hcl-sky 8s ease-in-out infinite alternate;
}
.scn-hester-conceals-letter .sunlight {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at center, #fffbe6 0%, transparent 70%);
  opacity: 0.6; animation: hcl-sun 6s ease-in-out infinite alternate;
}
.scn-hester-conceals-letter .platform {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #a07850 0%, #7a5c3a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
}
.scn-hester-conceals-letter .crowd-left {
  position: absolute; bottom: 28%; left: 0; width: 20%; height: 22%;
  background: linear-gradient(180deg, rgba(60,40,30,0.7) 0%, rgba(40,25,15,0.9) 100%);
  border-radius: 0 40% 0 0; animation: hcl-crowd 10s ease-in-out infinite;
}
.scn-hester-conceals-letter .crowd-right {
  position: absolute; bottom: 28%; right: 0; width: 20%; height: 22%;
  background: linear-gradient(180deg, rgba(60,40,30,0.7) 0%, rgba(40,25,15,0.9) 100%);
  border-radius: 40% 0 0 0; animation: hcl-crowd 10s ease-in-out infinite reverse;
}
.scn-hester-conceals-letter .hester-silhouette {
  position: absolute; bottom: 28%; left: 50%; width: 22px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: hcl-hester 4s ease-in-out infinite;
}
.scn-hester-conceals-letter .infant-clasped {
  position: absolute; bottom: 31%; left: 48%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  animation: hcl-infant 4s ease-in-out infinite;
}
.scn-hester-conceals-letter .concealed-letter {
  position: absolute; bottom: 34%; left: 49%; width: 10px; height: 14px;
  background: #a0461a; /* terracotta */
  border-radius: 2px; opacity: 0.4;
  animation: hcl-conceal 3s ease-in-out infinite alternate;
}
.scn-hester-conceals-letter .shadow-floor {
  position: absolute; bottom: 28%; left: 15%; width: 70%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 60%);
  animation: hcl-shadow 5s ease-in-out infinite;
}
@keyframes hcl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes hcl-sun { 0% { transform:scale(1); opacity:0.5 } 50% { transform:scale(1.08); opacity:0.7 } 100% { transform:scale(1); opacity:0.5 } }
@keyframes hcl-crowd { 0%,100% { opacity:0.6 } 50% { opacity:0.9 } }
@keyframes hcl-hester { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 25% { transform:translateX(-48%) translateY(-2px) rotate(-2deg) } 50% { transform:translateX(-50%) translateY(0) rotate(0deg) } 75% { transform:translateX(-52%) translateY(-1px) rotate(2deg) } 100% { transform:translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes hcl-infant { 0% { transform:translate(0,0) } 50% { transform:translate(-2px,1px) } 100% { transform:translate(0,0) } }
@keyframes hcl-conceal { 0% { opacity:0.2; transform:scaleY(0.8) } 50% { opacity:0.5; transform:scaleY(1) } 100% { opacity:0.2; transform:scaleY(0.8) } }
@keyframes hcl-shadow { 0% { opacity:0.3; transform:scaleX(1) } 50% { opacity:0.6; transform:scaleX(1.05) } 100% { opacity:0.3; transform:scaleX(1) } }

/* Scene: hester-beauty */
.scn-hester-beauty {
  background:
    linear-gradient(180deg, #f8e8d0 0%, #e0c8a8 50%, #c8a880 100%),
    radial-gradient(ellipse at 55% 30%, #fffbe6 0%, transparent 50%);
}
.scn-hester-beauty .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(200,170,130,0.3) 100%);
}
.scn-hester-beauty .sun-ray {
  position: absolute; top: 10%; left: 40%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(255,240,200,0.4) 0%, transparent 70%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: hbt-ray 8s ease-in-out infinite alternate;
}
.scn-hester-beauty .head-profile {
  position: absolute; bottom: 35%; left: 60%; width: 24px; height: 34px;
  background: linear-gradient(180deg, #d4b090 0%, #b89070 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: hbt-head 5s ease-in-out infinite;
}
.scn-hester-beauty .hair-gloss {
  position: absolute; bottom: 41%; left: 59%; width: 30px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 50%, #0a0804 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  clip-path: polygon(0 20%, 100% 10%, 90% 100%, 10% 100%);
  animation: hbt-hair 6s ease-in-out infinite alternate;
}
.scn-hester-beauty .hair-gloss::after {
  content: ''; position: absolute; top: 15%; left: 20%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, #f8e080 0%, transparent 70%);
  animation: hbt-gleam 4s ease-in-out infinite;
}
.scn-hester-beauty .shoulder-line {
  position: absolute; bottom: 28%; left: 52%; width: 35px; height: 20px;
  background: linear-gradient(180deg, #b8a088 0%, #907860 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
}
.scn-hester-beauty .gleam-sparkle {
  position: absolute; top: 20%; left: 55%; width: 6px; height: 6px;
  background: radial-gradient(circle, #fffbe6 0%, #f8d080 50%, transparent 100%);
  border-radius: 50%; animation: hbt-sparkle 3s ease-in-out infinite;
}
.scn-hester-beauty .shadow-fall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(60,40,20,0.2) 100%);
}
@keyframes hbt-ray { 0% { opacity:0.3; transform:scaleX(1) } 50% { opacity:0.6; transform:scaleX(1.1) rotate(2deg) } 100% { opacity:0.3; transform:scaleX(1) } }
@keyframes hbt-head { 0% { transform:rotate(3deg) } 50% { transform:rotate(7deg) } 100% { transform:rotate(3deg) } }
@keyframes hbt-hair { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hbt-gleam { 0% { opacity:0.2; transform:scale(0.8) } 50% { opacity:0.8; transform:scale(1.2) } 100% { opacity:0.2; transform:scale(0.8) } }
@keyframes hbt-sparkle { 0%,100% { opacity:0; transform:scale(0.5) } 50% { opacity:1; transform:scale(1.5) } }

/* Scene: desperate-recklessness-in-attire */
.scn-desperate-recklessness-in-attire {
  background:
    linear-gradient(180deg, #8b6f4a 0%, #6b5030 50%, #4a3420 100%),
    radial-gradient(ellipse at 50% 30%, #b89860 0%, transparent 60%);
}
.scn-desperate-recklessness-in-attire .bg-prison {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(0,0,0,0.05) 20px, rgba(0,0,0,0.05) 21px);
  animation: drt-bg 12s linear infinite;
}
.scn-desperate-recklessness-in-attire .dress-base {
  position: absolute; bottom: 15%; left: 35%; width: 90px; height: 110px;
  background: linear-gradient(180deg, #7a5c3a 0%, #5a3c1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform: skewX(-3deg);
  animation: drt-dress 5s ease-in-out infinite;
}
.scn-desperate-recklessness-in-attire .dress-rip {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #4a2a10 0%, #2a1508 100%);
  clip-path: polygon(0 0, 40% 20%, 20% 50%, 60% 70%, 30% 100%);
  animation: drt-rip 4s ease-in-out infinite alternate;
}
.scn-desperate-recklessness-in-attire .sash-terracotta {
  position: absolute; bottom: 40%; left: 37%; width: 50px; height: 10px;
  background: #c8553d; /* terracotta */
  border-radius: 2px; transform: rotate(-8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: drt-sash 6s ease-in-out infinite;
}
.scn-desperate-recklessness-in-attire .embroidered-edge {
  position: absolute; bottom: 18%; left: 38%; width: 70px; height: 4px;
  background: repeating-linear-gradient(90deg, #b89060 0px, #b89060 3px, transparent 3px, transparent 6px);
  border-radius: 1px;
}
.scn-desperate-recklessness-in-attire .skirt-folds {
  position: absolute; bottom: 10%; left: 32%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #6b4a2a 0%, #3a2510 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  clip-path: polygon(0 0, 20% 20%, 40% 5%, 60% 25%, 80% 10%, 100% 20%, 100% 100%, 0 100%);
  animation: drt-folds 7s ease-in-out infinite;
}
.scn-desperate-recklessness-in-attire .shadow-cast {
  position: absolute; bottom: 0; left: 20%; width: 120px; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 60%);
}
@keyframes drt-bg { 0% { background-position: 0 0 } 100% { background-position: 0 21px } }
@keyframes drt-dress { 0% { transform:skewX(-3deg) translateY(0) } 50% { transform:skewX(-5deg) translateY(-2px) } 100% { transform:skewX(-3deg) translateY(0) } }
@keyframes drt-rip { 0% { opacity:0.6; transform:scale(1) } 50% { opacity:1; transform:scale(1.1) rotate(2deg) } 100% { opacity:0.6; transform:scale(1) } }
@keyframes drt-sash { 0% { transform:rotate(-6deg) translateX(0) } 50% { transform:rotate(-10deg) translateX(3px) } 100% { transform:rotate(-6deg) translateX(0) } }
@keyframes drt-folds { 0% { clip-path:polygon(0 0, 20% 20%, 40% 5%, 60% 25%, 80% 10%, 100% 20%, 100% 100%, 0 100%) } 50% { clip-path:polygon(0 0, 20% 25%, 40% 10%, 60% 30%, 80% 15%, 100% 25%, 100% 100%, 0 100%) } 100% { clip-path:polygon(0 0, 20% 20%, 40% 5%, 60% 25%, 80% 10%, 100% 20%, 100% 100%, 0 100%) } }

/* Scene: scarlet-letter-transfigures */
.scn-scarlet-letter-transfigures {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #050510 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 60%);
}
.scn-scarlet-letter-transfigures .bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 20%, rgba(100,80,60,0.1) 0%, transparent 50%);
}
.scn-scarlet-letter-transfigures .spotlight {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,0.15) 0%, rgba(255,200,100,0.05) 30%, transparent 60%);
  animation: slt-spotlight 8s ease-in-out infinite alternate;
}
.scn-scarlet-letter-transfigures .letter-A {
  position: absolute; top: 30%; left: 50%; width: 50px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 30% 30%, #b87878 0%, #702243 100%); /* dusty rose to mulberry */
  clip-path: polygon(50% 0%, 0% 100%, 20% 100%, 50% 30%, 80% 100%, 100% 100%);
  animation: slt-letter 6s ease-in-out infinite;
  box-shadow: 0 0 30px 8px rgba(184,120,120,0.4), 0 0 60px 20px rgba(112,34,67,0.2);
}
.scn-scarlet-letter-transfigures .letter-glow {
  position: absolute; top: 28%; left: 48%; width: 56px; height: 66px;
  background: radial-gradient(ellipse at 50% 50%, rgba(184,120,120,0.1) 0%, transparent 60%);
  animation: slt-glow 4s ease-in-out infinite alternate;
}
.scn-scarlet-letter-transfigures .embroidery-thread {
  position: absolute; top: 32%; left: 50%; width: 44px; height: 52px;
  transform: translateX(-50%);
  border: 1px solid #c8553d; /* terracotta */
  clip-path: polygon(50% 0%, 0% 100%, 20% 100%, 50% 30%, 80% 100%, 100% 100%);
  animation: slt-thread 3s ease-in-out infinite;
}
.scn-scarlet-letter-transfigures .gaze-left {
  position: absolute; bottom: 25%; left: 15%; width: 30px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(30,20,10,0.6) 0%, transparent 60%);
  border-radius: 50%; animation: slt-gaze 5s ease-in-out infinite;
}
.scn-scarlet-letter-transfigures .gaze-right {
  position: absolute; bottom: 25%; right: 15%; width: 30px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(30,20,10,0.6) 0%, transparent 60%);
  border-radius: 50%; animation: slt-gaze 5s ease-in-out infinite reverse;
}
.scn-scarlet-letter-transfigures .sparkle {
  position: absolute; top: 28%; left: 52%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f8e080 0%, transparent 60%);
  border-radius: 50%; animation: slt-sparkle 2s ease-in-out infinite;
}
@keyframes slt-spotlight { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes slt-letter { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-50%) scale(1.05) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes slt-glow { 0% { opacity:0.4; transform:scale(0.95) } 50% { opacity:0.8; transform:scale(1.1) } 100% { opacity:0.4; transform:scale(0.95) } }
@keyframes slt-thread { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes slt-gaze { 0% { opacity:0.2; transform:scale(1) } 50% { opacity:0.6; transform:scale(1.3) } 100% { opacity:0.2; transform:scale(1) } }
@keyframes slt-sparkle { 0%,100% { opacity:0; transform:scale(0.5) } 50% { opacity:0.8; transform:scale(1.8) } }

/* pearl-blessing-and-fear */
.scn-pearl-blessing-and-fear {
  background: 
    linear-gradient(180deg, #1a1020 0%, #2c1a2a 50%, #1f1420 100%),
    radial-gradient(ellipse at 30% 70%, #3a1f2a 0%, transparent 80%);
}
.scn-pearl-blessing-and-fear .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(50,30,40,0.6) 0%, transparent 100%);
  animation: pb-dimm 10s ease-in-out infinite alternate;
}
@keyframes pb-dimm {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; }
}
.scn-pearl-blessing-and-fear .wall {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 70%;
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-pearl-blessing-and-fear .window {
  position: absolute; top: 20%; right: 15%; width: 60px; height: 80px;
  background: radial-gradient(circle at 40% 30%, #c4a87a 0%, #8a6e4a 60%, #4a3a2a 100%);
  border: 3px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: 0 0 40px 10px rgba(196,168,122,0.3);
  animation: pb-window 4s ease-in-out infinite alternate;
}
@keyframes pb-window {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
.scn-pearl-blessing-and-fear .mother {
  position: absolute; bottom: 22%; left: 40%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1515 0%, #0e0a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pb-mother 8s ease-in-out infinite;
}
@keyframes pb-mother {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
.scn-pearl-blessing-and-fear .child {
  position: absolute; bottom: 35%; left: 46%; width: 22px; height: 28px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pb-child 6s ease-in-out infinite alternate;
}
@keyframes pb-child {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-1px) rotate(0deg) scale(1.02); }
  100% { transform: translateY(0) rotate(3deg); }
}
.scn-pearl-blessing-and-fear .halo {
  position: absolute; bottom: 30%; left: 43%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,220,160,0.4) 0%, rgba(255,180,100,0.2) 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,200,120,0.15);
  animation: pb-halo 3s ease-in-out infinite alternate;
}
@keyframes pb-halo {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}

/* pearl-perfect-form */
.scn-pearl-perfect-form {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 50%, #dcc090 100%),
    radial-gradient(ellipse at 70% 60%, #fff4d0 0%, transparent 70%);
}
.scn-pearl-perfect-form .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #c8b28a 0%, #a8906c 100%);
  border-radius: 20% 20% 0 0;
}
.scn-pearl-perfect-form .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 80%;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 100%);
}
.scn-pearl-perfect-form .window {
  position: absolute; top: 10%; left: 15%; width: 120px; height: 150px;
  background: radial-gradient(ellipse at 30% 40%, #fff8e0 0%, #e8d4a0 80%);
  border: 4px solid #b89868;
  border-radius: 6px;
  box-shadow: inset 0 0 50px rgba(255,240,200,0.4);
  animation: pp-sunshine 6s ease-in-out infinite alternate;
}
@keyframes pp-sunshine {
  0% { opacity: 0.8; transform: scaleX(0.98); }
  50% { opacity: 1; transform: scaleX(1.02) translateY(2px); }
  100% { opacity: 0.85; transform: scaleX(0.98); }
}
.scn-pearl-perfect-form .crib {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b89868 0%, #8a7040 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}
.scn-pearl-perfect-form .baby {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d4b0 0%, #e0b890 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: pp-baby 5s ease-in-out infinite alternate;
}
@keyframes pp-baby {
  0% { transform: translateX(-50%) rotate(-5deg) scale(0.95); }
  50% { transform: translateX(-50%) rotate(0deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(5deg) scale(0.95); }
}
.scn-pearl-perfect-form .rays {
  position: absolute; top: 5%; left: 10%; width: 200px; height: 200px;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,240,180,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: pp-rays 12s linear infinite alternate;
}
@keyframes pp-rays {
  0% { transform: rotate(0deg) scale(0.9); opacity: 0.6; }
  50% { transform: rotate(10deg) scale(1.1); opacity: 1; }
  100% { transform: rotate(-5deg) scale(0.95); opacity: 0.7; }
}
.scn-pearl-perfect-form .toy {
  position: absolute; bottom: 28%; left: 35%; width: 16px; height: 16px;
  background: radial-gradient(circle, #d4a050 0%, #b08030 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  animation: pp-toy 3s ease-in-out infinite alternate;
}
@keyframes pp-toy {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(20deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* pearl-gorgeous-dress */
.scn-pearl-gorgeous-dress {
  background:
    linear-gradient(180deg, #f5e0c0 0%, #e8d0a0 50%, #d4b880 100%),
    radial-gradient(ellipse at 40% 50%, #fdf4e0 0%, transparent 80%);
}
.scn-pearl-gorgeous-dress .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,220,160,0.15) 0%, transparent 100%);
  animation: pg-warmglow 8s ease-in-out infinite alternate;
}
@keyframes pg-warmglow {
  0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
.scn-pearl-gorgeous-dress .mirror {
  position: absolute; top: 8%; right: 10%; width: 90px; height: 130px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%);
  border: 3px solid #a08050;
  border-radius: 6px;
  box-shadow: 0 0 30px rgba(196,168,120,0.3);
}
.scn-pearl-gorgeous-dress .dress-body {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a05030 0%, #803820 50%, #602010 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 8px 30px rgba(0,0,0,0.2);
  animation: pg-dress 4s ease-in-out infinite alternate;
}
@keyframes pg-dress {
  0% { transform: translateX(-50%) rotate(-2deg) scale(0.98); }
  50% { transform: translateX(-50%) rotate(0deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(2deg) scale(0.98); }
}
.scn-pearl-gorgeous-dress .ribbon {
  position: absolute; width: 12px; height: 50px;
  background: linear-gradient(180deg, #c8553d 0%, #a04028 100%);
  border-radius: 0 0 30% 30%;
}
.scn-pearl-gorgeous-dress .ribbon.left {
  bottom: 25%; left: 42%;
  animation: pg-ribbonL 5s ease-in-out infinite alternate;
}
@keyframes pg-ribbonL {
  0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); }
}
.scn-pearl-gorgeous-dress .ribbon.right {
  bottom: 25%; right: 42%;
  animation: pg-ribbonR 5s ease-in-out infinite alternate 0.5s;
}
@keyframes pg-ribbonR {
  0% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); }
}
.scn-pearl-gorgeous-dress .lace {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 30% 50%, #f0e0c0 0%, #d0b888 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: pg-lace 3s ease-in-out infinite alternate;
}
@keyframes pg-lace {
  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); }
}
.scn-pearl-gorgeous-dress .pearls {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(240,232,208,0.6);
  animation: pg-pearls 2s ease-in-out infinite alternate;
}
@keyframes pg-pearls {
  0% { transform: translate(-12px, -4px) scale(0.9); }
  100% { transform: translate(12px, 4px) scale(1.1); }
}
.scn-pearl-gorgeous-dress .child-head {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 34px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0d4b0 0%, #e0b890 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pg-head 6s ease-in-out infinite alternate;
}
@keyframes pg-head {
  0% { transform: translateX(-50%) rotate(-4deg); }
  50% { transform: translateX(-50%) rotate(0deg) scale(1.03); }
  100% { transform: translateX(-50%) rotate(4deg); }
}

/* pearl-variety */
.scn-pearl-variety {
  background:
    linear-gradient(180deg, #f8ecd0 0%, #e8d8b0 50%, #d4c090 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e0 0%, transparent 70%);
}
.scn-pearl-variety .bg-light {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, transparent 100%);
  animation: pv-breathe 10s ease-in-out infinite alternate;
}
@keyframes pv-breathe {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
.scn-pearl-variety .child-main {
  position: absolute; bottom: 22%; left: 50%; width: 36px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a07050 0%, #805030 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: pv-main 7s ease-in-out infinite;
}
@keyframes pv-main {
  0% { transform: translateX(-50%) rotate(-3deg) scale(0.95); }
  50% { transform: translateX(-50%) rotate(0deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(3deg) scale(0.95); }
}
.scn-pearl-variety .child-shadow {
  position: absolute; bottom: 18%; left: 25%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  opacity: 0.4;
  filter: blur(2px);
}
.scn-pearl-variety .child-shadow.a {
  animation: pv-shadowA 9s ease-in-out infinite alternate;
  left: 20%;
}
@keyframes pv-shadowA {
  0% { transform: rotate(-10deg) translateX(0) scale(0.85); }
  50% { transform: rotate(0deg) translateX(20px) scale(1); }
  100% { transform: rotate(10deg) translateX(5px) scale(0.9); }
}
.scn-pearl-variety .child-shadow.b {
  animation: pv-shadowB 9s ease-in-out infinite alternate 1.5s;
  left: 65%;
}
@keyframes pv-shadowB {
  0% { transform: rotate(15deg) translateX(0) scale(0.9); }
  50% { transform: rotate(0deg) translateX(-15px) scale(1.05); }
  100% { transform: rotate(-10deg) translateX(-5px) scale(0.85); }
}
.scn-pearl-variety .child-shadow.c {
  animation: pv-shadowC 9s ease-in-out infinite alternate 3s;
  left: 45%;
  bottom: 15%;
}
@keyframes pv-shadowC {
  0% { transform: rotate(-5deg) scale(0.7); }
  50% { transform: rotate(8deg) scale(1); }
  100% { transform: rotate(-8deg) scale(0.75); }
}
.scn-pearl-variety .gown {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a07050 0%, #7a5a3a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  animation: pv-gown 5s ease-in-out infinite alternate;
}
@keyframes pv-gown {
  0% { transform: translateX(-50%) rotate(-3deg) scale(0.95); }
  50% { transform: translateX(-50%) rotate(0deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(3deg) scale(0.95); }
}
.scn-pearl-variety .sparkle {
  position: absolute; top: 20%; left: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff8d0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(255,248,208,0.4);
  animation: pv-sparkle 2s ease-in-out infinite alternate;
}
@keyframes pv-sparkle {
  0% { transform: scale(0.8) rotate(0deg); opacity: 0.3; }
  50% { transform: scale(1.5) rotate(45deg); opacity: 1; }
  100% { transform: scale(0.9) rotate(90deg); opacity: 0.5; }
}

.scn-open-conversation {
  background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 60%, #daa520 100%);
}
.scn-open-conversation .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0e68c 0%, #87ceeb 40%, transparent 100%);
  animation: oc1-sky 8s ease-in-out infinite alternate;
}
.scn-open-conversation .sun {
  position: absolute; top: 5%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.5);
  animation: oc1-sun 6s ease-in-out infinite alternate;
}
.scn-open-conversation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: oc1-ground 12s ease-in-out infinite alternate;
}
.scn-open-conversation .figure-left {
  position: absolute; bottom: 38%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2f1e0e 0%, #1a0f06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oc1-fig-left 3s ease-in-out infinite;
  box-shadow: -8px 0 12px rgba(0,0,0,0.5);
}
.scn-open-conversation .figure-right {
  position: absolute; bottom: 38%; left: 55%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #4a2c1a 0%, #1f1108 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oc1-fig-right 3.2s ease-in-out infinite;
  box-shadow: 8px 0 12px rgba(0,0,0,0.5);
}
.scn-open-conversation .bench {
  position: absolute; bottom: 36%; left: 40%; width: 60px; height: 10px;
  background: linear-gradient(90deg, #5c3a1e 0%, #7a4f2b 50%, #5c3a1e 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: oc1-bench 10s ease-in-out infinite alternate;
}
.scn-open-conversation .shadow {
  position: absolute; bottom: 34%; left: 28%; width: 80px; height: 4px;
  background: rgba(0,0,0,0.3);
  filter: blur(3px);
  border-radius: 50%;
  animation: oc1-shadow 5s ease-in-out infinite alternate;
}
@keyframes oc1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes oc1-sun { 0% { transform: translateX(-5px) scale(0.95); opacity: 0.9; } 50% { transform: translateX(5px) scale(1.05); opacity: 1; } 100% { transform: translateX(-2px) scale(0.98); opacity: 0.95; } }
@keyframes oc1-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes oc1-fig-left { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes oc1-fig-right { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes oc1-bench { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes oc1-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.3; } 50% { transform: scaleX(1.1) translateX(3px); opacity: 0.5; } 100% { transform: scaleX(0.95) translateX(-2px); opacity: 0.4; } }

.scn-hester-accusation {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #daa520 100%);
}
.scn-hester-accusation .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffdab9 0%, #ffa07a 60%, transparent 100%);
  animation: ha2-bg 10s ease-in-out infinite alternate;
}
.scn-hester-accusation .horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 2px;
  background: #8b4513;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: ha2-horizon 8s ease-in-out infinite alternate;
}
.scn-hester-accusation .sunburst {
  position: absolute; top: 10%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd700 0%, rgba(255,215,0,0.3) 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,215,0,0.3);
  animation: ha2-sunburst 6s ease-in-out infinite alternate;
}
.scn-hester-accusation .figure-hester {
  position: absolute; bottom: 30%; left: 35%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #5c3317 0%, #2f1e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha2-fig-hester 3.5s ease-in-out infinite;
  box-shadow: -6px 0 10px rgba(0,0,0,0.5);
}
.scn-hester-accusation .path {
  position: absolute; bottom: 28%; left: 30%; width: 120px; height: 30px;
  background: linear-gradient(90deg, #a0522d 0%, #d2b48c 50%, #a0522d 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ha2-path 12s ease-in-out infinite alternate;
}
.scn-hester-accusation .stones {
  position: absolute; bottom: 32%; left: 45%; width: 10px; height: 10px;
  background: #696969;
  border-radius: 50%;
  box-shadow: 12px 4px 0 #696969, 6px -6px 0 #808080, -10px 2px 0 #505050;
  animation: ha2-stones 15s ease-in-out infinite alternate;
}
.scn-hester-accusation .ray {
  position: absolute; top: 15%; left: 20%; width: 200px; height: 100%;
  background: linear-gradient(135deg, rgba(255,215,0,0.1) 0%, rgba(255,255,255,0.05) 50%, transparent 100%);
  filter: blur(10px);
  transform-origin: top left;
  animation: ha2-ray 9s ease-in-out infinite alternate;
}
@keyframes ha2-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ha2-horizon { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes ha2-sunburst { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.9; } }
@keyframes ha2-fig-hester { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ha2-path { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.05) translateX(5px); } 100% { transform: scaleX(0.95) translateX(-3px); } }
@keyframes ha2-stones { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-2px); } }
@keyframes ha2-ray { 0% { transform: rotate(-5deg) scaleY(1); opacity: 0.3; } 50% { transform: rotate(5deg) scaleY(1.2); opacity: 0.5; } 100% { transform: rotate(-2deg) scaleY(0.9); opacity: 0.4; } }

.scn-chillingworth-distance {
  background: linear-gradient(180deg, #2f4f4f 0%, #556b2f 40%, #8b4513 100%);
}
.scn-chillingworth-distance .wall {
  position: absolute; inset: 0 30% 20% 0;
  background: linear-gradient(90deg, #3c2418 0%, #5c4033 50%, #2f1e0e 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: cd3-wall 15s ease-in-out infinite alternate;
}
.scn-chillingworth-distance .window {
  position: absolute; top: 15%; left: 20%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #87ceeb 0%, #f0e68c 100%);
  border: 6px solid #5c4033;
  border-radius: 4px;
  box-shadow: 0 0 20px 10px rgba(255,215,0,0.3);
  animation: cd3-window 8s ease-in-out infinite alternate;
}
.scn-chillingworth-distance .sunbeam {
  position: absolute; top: 15%; left: 20%; width: 120px; height: 200px;
  background: linear-gradient(45deg, rgba(255,215,0,0.15) 0%, rgba(255,255,255,0.05) 60%, transparent 100%);
  filter: blur(8px);
  transform-origin: top left;
  animation: cd3-sunbeam 10s ease-in-out infinite alternate;
}
.scn-chillingworth-distance .figure-seated {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2f1e0e 0%, #1a0f06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd3-seated 4s ease-in-out infinite;
  box-shadow: -4px 0 8px rgba(0,0,0,0.6);
}
.scn-chillingworth-distance .figure-standing {
  position: absolute; bottom: 15%; left: 50%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #1a0f06 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd3-standing 4.5s ease-in-out infinite;
  box-shadow: 6px 0 12px rgba(0,0,0,0.7);
}
.scn-chillingworth-distance .chair {
  position: absolute; bottom: 20%; left: 33%; width: 40px; height: 20px;
  background: linear-gradient(90deg, #5c4033 0%, #8b6914 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cd3-chair 12s ease-in-out infinite alternate;
}
.scn-chillingworth-distance .desk {
  position: absolute; bottom: 18%; left: 31%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #8b4513 0%, #a0522d 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cd3-desk 14s ease-in-out infinite alternate;
}
.scn-chillingworth-distance .dust {
  position: absolute; top: 20%; left: 20%; width: 100%; height: 50%;
  background: repeating-linear-gradient(45deg, rgba(255,255,255,0.02) 0px, rgba(255,255,255,0.02) 4px, transparent 4px, transparent 8px);
  filter: blur(2px);
  animation: cd3-dust 20s linear infinite;
}
@keyframes cd3-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cd3-window { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes cd3-sunbeam { 0% { transform: rotate(-3deg) scaleX(1); opacity: 0.4; } 50% { transform: rotate(3deg) scaleX(1.1); opacity: 0.6; } 100% { transform: rotate(-1deg) scaleX(0.95); opacity: 0.5; } }
@keyframes cd3-seated { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cd3-standing { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cd3-chair { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes cd3-desk { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(1px) scaleX(1.01); } 100% { transform: translateY(-1px) scaleX(0.99); } }
@keyframes cd3-dust { 0% { background-position: 0 0; } 100% { background-position: 100% 100%; } }

.scn-choice-debate {
  background: linear-gradient(180deg, #2c1810 0%, #5c4033 50%, #8b4513 100%);
}
.scn-choice-debate .bg-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a1a 0%, #3c2418 100%);
  animation: cbd4-bg 12s ease-in-out infinite alternate;
}
.scn-choice-debate .column-light {
  position: absolute; top: 0; left: 50%; width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(255,215,0,0.2) 0%, rgba(255,215,0,0.05) 100%);
  transform: translateX(-50%);
  filter: blur(6px);
  animation: cbd4-column 8s ease-in-out infinite alternate;
}
.scn-choice-debate .figure-left {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #4a2c1a 0%, #1f1108 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbd4-fig-left 3.5s ease-in-out infinite;
  box-shadow: -6px 0 10px rgba(0,0,0,0.6);
}
.scn-choice-debate .figure-right {
  position: absolute; bottom: 25%; left: 55%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #2f1e0e 0%, #0d0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cbd4-fig-right 3.8s ease-in-out infinite;
  box-shadow: 6px 0 10px rgba(0,0,0,0.6);
}
.scn-choice-debate .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5c4033 0%, #3c2418 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: cbd4-floor 15s ease-in-out infinite alternate;
}
.scn-choice-debate .shadow-line {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 2px;
  background: rgba(0,0,0,0.4);
  filter: blur(2px);
  animation: cbd4-shadow 6s ease-in-out infinite alternate;
}
@keyframes cbd4-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cbd4-column { 0% { transform: translateX(-50%) scaleY(0.95); opacity: 0.4; } 50% { transform: translateX(-50%) scaleY(1.05); opacity: 0.7; } 100% { transform: translateX(-50%) scaleY(0.98); opacity: 0.5; } }
@keyframes cbd4-fig-left { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cbd4-fig-right { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cbd4-floor { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-2px); } }
@keyframes cbd4-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.3; } 50% { transform: scaleX(1.2) translateX(5px); opacity: 0.5; } 100% { transform: scaleX(0.9) translateX(-3px); opacity: 0.4; } }

.scn-final-words {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a2238 40%, #1a1625 100%), radial-gradient(ellipse at 60% 30%, #3e2a2a 0%, transparent 70%);
}
.scn-final-words .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2238 0%, #1a1625 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
  animation: fiw-wall 12s ease-in-out infinite alternate;
}
.scn-final-words .figure-garbed {
  position: absolute; bottom: 18%; left: 20%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #2c2922 0%, #1a1812 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: fiw-fig-g 6s ease-in-out infinite;
}
.scn-final-words .figure-pale {
  position: absolute; bottom: 20%; right: 25%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #d4c9b8 0%, #a8977a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,.3), 0 4px 10px rgba(0,0,0,.3);
  animation: fiw-fig-p 5s ease-in-out infinite alternate;
}
.scn-final-words .infant-swaddled {
  position: absolute; bottom: 26%; right: 25%; width: 28px; height: 34px;
  background: linear-gradient(180deg, #c8b898 0%, #a09070 100%);
  border-radius: 50% 50% 40% 40%;
  transform: translateX(-15px) translateY(5px);
  animation: fiw-infant 4s ease-in-out infinite;
}
.scn-final-words .scarlet-mark {
  position: absolute; bottom: 38%; right: 25%; width: 20px; height: 16px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(5deg);
  box-shadow: 0 0 12px 4px rgba(200,85,61,.4);
  animation: fiw-scarlet 3s ease-in-out infinite alternate;
}
.scn-final-words .candle-glow {
  position: absolute; bottom: 40%; left: 55%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffd680 0%, #d4a050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(255,214,128,.6), 0 0 60px 20px rgba(212,160,80,.3);
  animation: fiw-candle 2s ease-in-out infinite alternate;
}
.scn-final-words .shadow-long {
  position: absolute; bottom: 10%; left: 15%; width: 160px; height: 8px;
  background: rgba(0,0,0,.5);
  filter: blur(4px);
  border-radius: 50%;
  transform: skewX(-20deg);
  animation: fiw-shadow 8s ease-in-out infinite alternate;
}
.scn-final-words .chain-link {
  position: absolute; top: 30%; left: 50%; width: 40px; height: 4px;
  background: linear-gradient(90deg, transparent, #5e5a5a 20%, #3e3a3a 50%, #5e5a5a 80%, transparent);
  border-radius: 2px;
  filter: blur(1px);
  animation: fiw-chain 5s ease-in-out infinite;
}
@keyframes fiw-wall {
  0% { opacity: .85; }
  50% { opacity: .95; }
  100% { opacity: .85; }
}
@keyframes fiw-fig-g {
  0% { transform: scaleX(1) translateY(0); }
  25% { transform: scaleX(0.98) translateY(-2px); }
  50% { transform: scaleX(1) translateY(0); }
  75% { transform: scaleX(1.02) translateY(2px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes fiw-fig-p {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-5px) rotate(2deg); }
}
@keyframes fiw-infant {
  0% { transform: translateX(-15px) translateY(5px) rotate(0deg); }
  50% { transform: translateX(-12px) translateY(3px) rotate(-3deg); }
  100% { transform: translateX(-15px) translateY(5px) rotate(0deg); }
}
@keyframes fiw-scarlet {
  0% { transform: rotate(5deg) scale(1); opacity: .9; }
  100% { transform: rotate(8deg) scale(1.1); opacity: 1; }
}
@keyframes fiw-candle {
  0% { height: 20px; box-shadow: 0 0 20px 6px rgba(255,214,128,.5), 0 0 40px 12px rgba(212,160,80,.2); }
  50% { height: 22px; box-shadow: 0 0 30px 10px rgba(255,214,128,.7), 0 0 60px 20px rgba(212,160,80,.4); }
  100% { height: 20px; box-shadow: 0 0 20px 6px rgba(255,214,128,.5), 0 0 40px 12px rgba(212,160,80,.2); }
}
@keyframes fiw-shadow {
  0% { transform: skewX(-20deg) scaleX(1); opacity: .4; }
  100% { transform: skewX(-25deg) scaleX(1.1); opacity: .6; }
}
@keyframes fiw-chain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(10px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

.scn-black-man-question {
  background: linear-gradient(180deg, #1c182a 0%, #2a2238 50%, #1a1625 100%), radial-gradient(ellipse at 30% 50%, #2e2a3e 0%, transparent 70%);
}
.scn-black-man-question .bg-chamber {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a2238 30%, #1a1625 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,.5);
  animation: bmq-chamber 15s ease-in-out infinite alternate;
}
.scn-black-man-question .table-wood {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 8px;
  background: linear-gradient(90deg, #4a3a2a, #3a2a1a, #4a3a2a);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  filter: blur(1px);
  animation: bmq-table 6s ease-in-out infinite;
}
.scn-black-man-question .figure-facing {
  position: absolute; bottom: 15%; left: 30%; width: 65px; height: 110px;
  background: linear-gradient(180deg, #d4c9b8 0%, #a8977a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 0 -10px 15px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3);
  animation: bmq-fig-f 5s ease-in-out infinite alternate;
}
.scn-black-man-question .figure-watchful {
  position: absolute; bottom: 18%; right: 25%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #2c2922 0%, #1a1812 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: bmq-fig-w 6s ease-in-out infinite;
}
.scn-black-man-question .candle-wick {
  position: absolute; bottom: 26%; left: 45%; width: 6px; height: 15px;
  background: linear-gradient(180deg, #ffd680 0%, #d4a050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 25px 8px rgba(255,214,128,.6), 0 0 50px 15px rgba(212,160,80,.3);
  animation: bmq-wick 2s ease-in-out infinite alternate;
}
.scn-black-man-question .eyes-glint {
  position: absolute; bottom: 55%; right: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #e0c060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(224,192,96,.8);
  animation: bmq-eyes 3s ease-in-out infinite;
}
.scn-black-man-question .breath-mist {
  position: absolute; bottom: 40%; left: 28%; width: 20px; height: 12px;
  background: rgba(255,255,255,.1);
  filter: blur(4px);
  border-radius: 50%;
  animation: bmq-breath 4s ease-in-out infinite;
}
@keyframes bmq-chamber {
  0% { opacity: .8; }
  50% { opacity: .95; }
  100% { opacity: .8; }
}
@keyframes bmq-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes bmq-fig-f {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-4px) rotate(3deg); }
}
@keyframes bmq-fig-w {
  0% { transform: scaleX(1) translateY(0); }
  25% { transform: scaleX(0.98) translateY(-2px); }
  50% { transform: scaleX(1) translateY(0); }
  75% { transform: scaleX(1.02) translateY(2px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes bmq-wick {
  0% { height: 15px; box-shadow: 0 0 15px 4px rgba(255,214,128,.5), 0 0 30px 8px rgba(212,160,80,.2); }
  50% { height: 17px; box-shadow: 0 0 25px 8px rgba(255,214,128,.7), 0 0 50px 15px rgba(212,160,80,.4); }
  100% { height: 15px; box-shadow: 0 0 15px 4px rgba(255,214,128,.5), 0 0 30px 8px rgba(212,160,80,.2); }
}
@keyframes bmq-eyes {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: .6; transform: scale(1); }
}
@keyframes bmq-breath {
  0% { opacity: .2; transform: translateY(0) scaleX(1); }
  50% { opacity: .5; transform: translateY(-8px) scaleX(1.5); }
  100% { opacity: .2; transform: translateY(0) scaleX(1); }
}

.scn-release-from-prison {
  background: linear-gradient(180deg, #e8dcc8 0%, #f5e8d0 30%, #c8b898 100%), radial-gradient(ellipse at 50% 0%, #f5e8d0 0%, transparent 60%);
}
.scn-release-from-prison .door-arch {
  position: absolute; bottom: 15%; left: 50%; width: 140px; height: 200px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 -10px 30px rgba(0,0,0,.4);
  animation: rfp-door 10s ease-in-out infinite alternate;
}
.scn-release-from-prison .sunbeam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 0;
  background: linear-gradient(180deg, rgba(255,240,200,.6) 0%, transparent 100%);
  animation: rfp-beam 6s ease-in-out infinite alternate;
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 40px 20px rgba(255,240,200,.2);
}
.scn-release-from-prison .figure-stepping {
  position: absolute; bottom: 16%; left: 50%; width: 55px; height: 100px;
  background: linear-gradient(180deg, #d4c9b8 0%, #a8977a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: rfp-fig 4s ease-in-out infinite;
}
.scn-release-from-prison .scarlet-blaze {
  position: absolute; bottom: 32%; left: 50%; width: 22px; height: 18px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%) rotate(5deg);
  box-shadow: 0 0 20px 6px rgba(200,85,61,.5), 0 0 40px 12px rgba(160,70,26,.3);
  animation: rfp-scarlet 3s ease-in-out infinite alternate;
}
.scn-release-from-prison .ground-stones {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: rfp-ground 8s ease-in-out infinite alternate;
}
.scn-release-from-prison .shadow-cast {
  position: absolute; bottom: 8%; left: 50%; width: 100px; height: 6px;
  background: rgba(0,0,0,.3);
  filter: blur(3px);
  border-radius: 50%;
  transform: translateX(-50%) skewX(-10deg);
  animation: rfp-shadow 5s ease-in-out infinite;
}
.scn-release-from-prison .dust-motes {
  position: absolute; top: 20%; left: 30%; width: 60%; height: 30%;
  background: radial-gradient(circle at 40% 60%, rgba(255,240,200,.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: rfp-dust 7s ease-in-out infinite;
}
@keyframes rfp-door {
  0% { box-shadow: 0 -10px 30px rgba(0,0,0,.4); }
  50% { box-shadow: 0 -15px 40px rgba(0,0,0,.6); }
  100% { box-shadow: 0 -10px 30px rgba(0,0,0,.4); }
}
@keyframes rfp-beam {
  0% { height: 0; opacity: .3; }
  50% { height: 80%; opacity: .7; }
  100% { height: 0; opacity: .3; }
}
@keyframes rfp-fig {
  0% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-48%) translateY(-3px); }
  50% { transform: translateX(-50%) translateY(0); }
  75% { transform: translateX(-52%) translateY(2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes rfp-scarlet {
  0% { transform: translateX(-50%) rotate(5deg) scale(1); opacity: .9; }
  100% { transform: translateX(-50%) rotate(8deg) scale(1.1); opacity: 1; }
}
@keyframes rfp-ground {
  0% { transform: translateY(0) scaleX(1); }
  100% { transform: translateY(-2px) scaleX(1.02); }
}
@keyframes rfp-shadow {
  0% { transform: translateX(-50%) skewX(-10deg) scaleX(1); opacity: .3; }
  100% { transform: translateX(-50%) skewX(-15deg) scaleX(1.1); opacity: .5; }
}
@keyframes rfp-dust {
  0% { opacity: .2; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.1); }
  100% { opacity: .2; transform: scale(1); }
}

.scn-daily-custom-begins {
  background: linear-gradient(180deg, #d4c8b8 0%, #e8dcc8 30%, #b8a898 100%), radial-gradient(ellipse at 50% 100%, #c8b898 0%, transparent 60%);
}
.scn-daily-custom-begins .street-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: dcb-street 12s ease-in-out infinite alternate;
}
.scn-daily-custom-begins .house-facade.left {
  position: absolute; bottom: 20%; left: 5%; width: 35%; height: 60%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.2), inset 0 0 30px rgba(0,0,0,.2);
  animation: dcb-house-l 8s ease-in-out infinite alternate;
}
.scn-daily-custom-begins .house-facade.right {
  position: absolute; bottom: 20%; right: 5%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.2), inset 0 0 30px rgba(0,0,0,.2);
  animation: dcb-house-r 10s ease-in-out infinite alternate;
}
.scn-daily-custom-begins .figure-walking {
  position: absolute; bottom: 12%; left: 30%; width: 50px; height: 95px;
  background: linear-gradient(180deg, #d4c9b8 0%, #a8977a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: dcb-fig 4s ease-in-out infinite;
}
.scn-daily-custom-begins .scarlet-string {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 16px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(3deg);
  box-shadow: 0 0 12px 4px rgba(200,85,61,.4);
  animation: dcb-scarlet 3s ease-in-out infinite alternate;
}
.scn-daily-custom-begins .sun-shadow {
  position: absolute; bottom: 8%; left: 25%; width: 70px; height: 5px;
  background: rgba(0,0,0,.25);
  filter: blur(3px);
  border-radius: 50%;
  transform: skewX(-15deg);
  animation: dcb-shadow 5s ease-in-out infinite;
}
.scn-daily-custom-begins .town-marker {
  position: absolute; top: 25%; left: 60%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  transform: skewX(-5deg);
  animation: dcb-marker 6s ease-in-out infinite;
}
.scn-daily-custom-begins .crowd-shape {
  position: absolute; bottom: 22%; right: 15%; width: 80px; height: 40px;
  background: linear-gradient(180deg, rgba(80,70,60,.4) 0%, rgba(60,50,40,.2) 100%);
  border-radius: 60% 60% 40% 40% / 80% 80% 20% 20%;
  filter: blur(8px);
  animation: dcb-crowd 7s ease-in-out infinite;
}
@keyframes dcb-street {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes dcb-house-l {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.02) translateY(-2px); }
}
@keyframes dcb-house-r {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(1.01) translateY(-1px); }
}
@keyframes dcb-fig {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(0deg); }
  75% { transform: translateX(24px) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes dcb-scarlet {
  0% { transform: rotate(3deg) scale(1); opacity: .9; }
  100% { transform: rotate(6deg) scale(1.08); opacity: 1; }
}
@keyframes dcb-shadow {
  0% { transform: skewX(-15deg) translateX(0); opacity: .3; }
  100% { transform: skewX(-18deg) translateX(8px); opacity: .5; }
}
@keyframes dcb-marker {
  0% { transform: skewX(-5deg) translateY(0); }
  50% { transform: skewX(-3deg) translateY(-4px); }
  100% { transform: skewX(-5deg) translateY(0); }
}
@keyframes dcb-crowd {
  0% { opacity: .2; transform: scale(1); }
  50% { opacity: .4; transform: scale(1.05); }
  100% { opacity: .2; transform: scale(1); }
}

/* dimmesdale-speaks-truth */
.scn-dimmesdale-speaks-truth {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9c29a 50%, #b89a6a 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-dimmesdale-speaks-truth .pulpit {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 40%;
  height: 50%;
  background: linear-gradient(180deg, #8b6f47 0%, #5a4424 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: dst-pulpit 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-speaks-truth .figure-dst {
  position: absolute;
  bottom: 35%;
  left: 38%;
  width: 20%;
  height: 55%;
  background: linear-gradient(180deg, #3a2f25 0%, #1e1710 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dst-figure 4s ease-in-out infinite;
}
.scn-dimmesdale-speaks-truth .armor {
  position: absolute;
  bottom: 20%;
  right: 10%;
  width: 15%;
  height: 40%;
  background: linear-gradient(135deg, #a09080 0%, #6e5d4a 50%, #3b3022 100%);
  border-radius: 20% 10% 10% 20%;
  box-shadow: 0 0 20px rgba(255,220,150,0.3);
  animation: dst-armor 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-speaks-truth .light-ray {
  position: absolute;
  top: 0;
  left: 35%;
  width: 30%;
  height: 60%;
  background: linear-gradient(180deg, rgba(255,248,200,0.6) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%);
  animation: dst-ray 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-speaks-truth .shadow-dst {
  position: absolute;
  bottom: 0;
  left: 30%;
  width: 20%;
  height: 10%;
  background: rgba(30,20,10,0.5);
  filter: blur(8px);
  animation: dst-shadow 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-speaks-truth .echo-ring {
  position: absolute;
  top: 30%;
  left: 40%;
  width: 20%;
  height: 20%;
  border: 2px solid rgba(180,140,100,0.4);
  border-radius: 50%;
  transform: scale(1);
  animation: dst-echo 6s ease-out infinite;
}
@keyframes dst-pulpit {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1); }
}
@keyframes dst-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(2%) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  70% { transform: translateX(-1%) rotate(-0.5deg); }
  100% { transform: translateX(0); }
}
@keyframes dst-armor {
  0% { box-shadow: 0 0 20px rgba(255,220,150,0.3); }
  50% { box-shadow: 0 0 40px rgba(255,220,150,0.6); }
  100% { box-shadow: 0 0 20px rgba(255,220,150,0.3); }
}
@keyframes dst-ray {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.05); }
  100% { opacity: 0.8; transform: scaleX(0.95); }
}
@keyframes dst-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(0.8); }
  100% { opacity: 0.4; transform: scaleX(1); }
}
@keyframes dst-echo {
  0% { transform: scale(0.5); opacity: 1; }
  50% { transform: scale(1.2); opacity: 0.5; }
  100% { transform: scale(1.5); opacity: 0; }
}

/* governor-asks-plain */
.scn-governor-asks-plain {
  background: linear-gradient(180deg, #f0daa0 0%, #c8a86a 50%, #a08040 100%),
              radial-gradient(ellipse at 50% 20%, #fff0c0 0%, transparent 60%);
}
.scn-governor-asks-plain .throne {
  position: absolute;
  bottom: 15%;
  left: 55%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5);
  animation: gap-throne 8s ease-in-out infinite alternate;
}
.scn-governor-asks-plain .figure-gov {
  position: absolute;
  bottom: 35%;
  left: 58%;
  width: 18%;
  height: 50%;
  background: linear-gradient(180deg, #2e2218 0%, #0f0a06 100%);
  border-radius: 30% 30% 25% 25% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gap-figure-gov 5s ease-in-out infinite;
}
.scn-governor-asks-plain .figure-dim {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 16%;
  height: 45%;
  background: linear-gradient(180deg, #3a2f25 0%, #1e1710 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: gap-figure-dim 4s ease-in-out infinite alternate;
}
.scn-governor-asks-plain .light-source {
  position: absolute;
  top: 5%;
  left: 45%;
  width: 10%;
  height: 10%;
  background: radial-gradient(circle, #fff8d0 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%;
  animation: gap-light 6s ease-in-out infinite alternate;
}
.scn-governor-asks-plain .shadow-gap {
  position: absolute;
  bottom: 0;
  left: 30%;
  width: 15%;
  height: 8%;
  background: rgba(20,15,10,0.6);
  filter: blur(6px);
  animation: gap-shadow 6s ease-in-out infinite alternate;
}
.scn-governor-asks-plain .pillar {
  position: absolute;
  bottom: 0;
  left: 20%;
  width: 8%;
  height: 80%;
  background: linear-gradient(90deg, #b09878 0%, #8a7050 50%, #5a4430 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.3);
  animation: gap-pillar 12s ease-in-out infinite alternate;
}
@keyframes gap-throne {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95) translateY(2px); }
  100% { transform: scaleX(1); }
}
@keyframes gap-figure-gov {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-2%) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  70% { transform: translateX(1%) rotate(0); }
  100% { transform: translateX(0); }
}
@keyframes gap-figure-dim {
  0% { transform: translateX(0); }
  50% { transform: translateX(2%) translateY(-2px); }
  100% { transform: translateX(0); }
}
@keyframes gap-light {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.8; transform: scale(0.9); }
}
@keyframes gap-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(0.8); }
  100% { opacity: 0.5; transform: scaleX(1); }
}
@keyframes gap-pillar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}

/* wilson-approves */
.scn-wilson-approves {
  background: linear-gradient(180deg, #ffebc8 0%, #f5d6a0 50%, #d4a870 100%),
              radial-gradient(ellipse at 60% 40%, #fff5d0 0%, transparent 70%);
}
.scn-wilson-approves .window-wap {
  position: absolute;
  top: 10%;
  left: 10%;
  width: 25%;
  height: 30%;
  background: linear-gradient(135deg, #ffe8a0 0%, #f0c060 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 30px rgba(255,200,80,0.5);
  animation: wap-window 8s ease-in-out infinite alternate;
}
.scn-wilson-approves .figure-wilson {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 20%;
  height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 30% 30% 25% 25% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wap-figure-wilson 5s ease-in-out infinite;
}
.scn-wilson-approves .figure-dim-wap {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 14%;
  height: 40%;
  background: linear-gradient(180deg, #3a2f25 0%, #1e1710 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: wap-figure-dim 4s ease-in-out infinite alternate;
}
.scn-wilson-approves .child-wap {
  position: absolute;
  bottom: 28%;
  left: 42%;
  width: 10%;
  height: 18%;
  background: linear-gradient(180deg, #c8a070 0%, #8a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: wap-child 3s ease-in-out infinite alternate;
}
.scn-wilson-approves .glow-wap {
  position: absolute;
  top: 20%;
  left: 40%;
  width: 30%;
  height: 40%;
  background: radial-gradient(ellipse, rgba(255,235,180,0.4) 0%, transparent 70%);
  filter: blur(15px);
  animation: wap-glow 6s ease-in-out infinite alternate;
}
.scn-wilson-approves .halo-wap {
  position: absolute;
  top: 10%;
  left: 48%;
  width: 8%;
  height: 8%;
  background: radial-gradient(circle, #ffe080 0%, #ffcc40 40%, transparent 70%);
  border-radius: 50%;
  animation: wap-halo 4s ease-in-out infinite alternate;
}
@keyframes wap-window {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.9; transform: scaleY(0.95); }
}
@keyframes wap-figure-wilson {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-2%) rotate(1deg); }
  50% { transform: translateX(1%) rotate(-1deg); }
  75% { transform: translateX(-1%) rotate(0.5deg); }
  100% { transform: translateX(0); }
}
@keyframes wap-figure-dim {
  0% { transform: translateX(0); }
  50% { transform: translateX(3%) translateY(-1px); }
  100% { transform: translateX(0); }
}
@keyframes wap-child {
  0% { transform: scale(1); }
  50% { transform: scale(1.1) translateY(-3px); }
  100% { transform: scale(1); }
}
@keyframes wap-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}
@keyframes wap-halo {
  0% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

/* chillingworth-smiles */
.scn-chillingworth-smiles {
  background: linear-gradient(180deg, #c09060 0%, #705040 50%, #302520 100%),
              radial-gradient(ellipse at 40% 30%, #ffe0a0 0%, transparent 50%);
}
.scn-chillingworth-smiles .figure-chill {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 22%;
  height: 55%;
  background: linear-gradient(180deg, #1a1510 0%, #0a0805 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: csm-figure 6s ease-in-out infinite alternate;
}
.scn-chillingworth-smiles .sinister-smile {
  position: absolute;
  bottom: 45%;
  left: 47%;
  width: 12%;
  height: 4%;
  background: linear-gradient(90deg, transparent 0%, #a06030 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: csm-smile 3s ease-in-out infinite alternate;
}
.scn-chillingworth-smiles .dark-shadow-csm {
  position: absolute;
  bottom: 0;
  left: 40%;
  width: 30%;
  height: 20%;
  background: rgba(0,0,0,0.7);
  filter: blur(12px);
  animation: csm-shadow 5s ease-in-out infinite alternate;
}
.scn-chillingworth-smiles .bright-spot {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 40%;
  height: 50%;
  background: linear-gradient(135deg, rgba(255,220,160,0.2) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: csm-bright 4s ease-in-out infinite alternate;
}
.scn-chillingworth-smiles .sharp-line {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 30%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #a08060, transparent);
  transform: rotate(-10deg);
  animation: csm-line 8s linear infinite;
}
.scn-chillingworth-smiles .glowing-eye {
  position: absolute;
  bottom: 50%;
  left: 48%;
  width: 4%;
  height: 4%;
  background: radial-gradient(circle, #ffeeaa 0%, #ddaa60 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255,200,100,0.5);
  animation: csm-eye 3s ease-in-out infinite alternate;
}
@keyframes csm-figure {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(2%) scale(1.02) rotate(1deg); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes csm-smile {
  0% { transform: scaleX(0.8) translateY(0); opacity: 0.6; }
  50% { transform: scaleX(1.1) translateY(-1px); opacity: 0.9; }
  100% { transform: scaleX(0.9) translateY(1px); opacity: 0.7; }
}
@keyframes csm-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.6; transform: scaleX(0.9); }
}
@keyframes csm-bright {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes csm-line {
  0% { opacity: 0; transform: rotate(-10deg) translateX(-10%); }
  25% { opacity: 0.5; }
  50% { opacity: 0; transform: rotate(-10deg) translateX(10%); }
  75% { opacity: 0.5; }
  100% { opacity: 0; transform: rotate(-10deg) translateX(-10%); }
}
@keyframes csm-eye {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.8; }
}

.scn-glove-recognition {
  background: linear-gradient(180deg, #f5e6d3 0%, #e0ccb3 40%, #c4a88a 100%),
              radial-gradient(circle at 70% 30%, #fdf4e8 0%, transparent 60%);
  overflow: hidden;
}
.scn-glove-recognition .bg { position:absolute; inset:0; background:linear-gradient(135deg, #f0e0cc 0%, #d4c0a8 100%); }
.scn-glove-recognition .window {
  position:absolute; top:10%; left:60%; width:120px; height:180px;
  background: linear-gradient(135deg, #e8f0ff 0%, #c0d0e8 100%);
  border-right: 6px solid #8a7a66; border-bottom: 6px solid #8a7a66;
  box-shadow: inset -4px -4px 12px rgba(0,0,0,0.2);
  animation: gl-window-glow 5s ease-in-out infinite alternate;
}
.scn-glove-recognition .table {
  position:absolute; bottom:20%; left:5%; right:5%; height:25%;
  background: linear-gradient(180deg, #6b5a4a 0%, #4a3e32 100%);
  border-radius: 4px; box-shadow: 0 -8px 20px rgba(0,0,0,0.3);
}
.scn-glove-recognition .glove {
  position:absolute; bottom:38%; left:35%; width:40px; height:60px;
  background: linear-gradient(180deg, #a0461a 0%, #804020 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: gl-glove-shake 4s ease-in-out infinite;
}
.scn-glove-recognition .hand {
  position:absolute; bottom:42%; left:28%; width:50px; height:80px;
  background: linear-gradient(135deg, #dbb88a 0%, #a67c5c 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gl-hand-reach 6s ease-in-out infinite;
}
.scn-glove-recognition .shadow {
  position:absolute; bottom:20%; left:20%; width:100px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: gl-shadow-pulse 4s ease-in-out infinite alternate;
}
@keyframes gl-window-glow { 0% { opacity:0.7; } 50% { opacity:1; box-shadow: inset -4px -4px 12px rgba(0,0,0,0.2), 0 0 30px rgba(255,200,150,0.3); } 100% { opacity:0.8; } }
@keyframes gl-glove-shake { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes gl-hand-reach { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(8px) rotate(5deg); } 60% { transform: translateX(12px) rotate(10deg); } }
@keyframes gl-shadow-pulse { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.9); } }

.scn-portent-letter-sky {
  background: linear-gradient(180deg, #e8dccc 0%, #d4c0a8 50%, #b89878 100%),
              radial-gradient(circle at 50% 30%, #fdf4e8 0%, transparent 60%);
  overflow: hidden;
}
.scn-portent-letter-sky .wall { position:absolute; inset:0; background:linear-gradient(135deg, #c9b89a 0%, #a88c6e 100%); }
.scn-portent-letter-sky .window-frame {
  position:absolute; top:8%; left:50%; transform:translateX(-50%); width:200px; height:280px;
  background: #7a6a5a; border: 8px solid #5a4a3c; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: pl-frame-breath 10s ease-in-out infinite alternate;
}
.scn-portent-letter-sky .sky {
  position:absolute; top:6%; left:50%; transform:translateX(-50%); width:180px; height:260px;
  background: linear-gradient(135deg, #fdf8ea 0%, #f0d8b0 60%, #d4a050 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: pl-sky-pulse 8s ease-in-out infinite alternate;
}
.scn-portent-letter-sky .letter-a {
  position:absolute; top:30%; left:50%; transform:translateX(-50%); width:80px; height:100px;
  background: linear-gradient(135deg, #a0461a 0%, #803018 100%);
  clip-path: polygon(50% 0%, 100% 100%, 80% 100%, 60% 60%, 40% 60%, 20% 100%, 0% 100%);
  box-shadow: 0 0 30px 10px rgba(160,70,26,0.5);
  animation: pl-letter-glow 3s ease-in-out infinite alternate;
}
.scn-portent-letter-sky .figure {
  position:absolute; bottom:20%; left:48%; width:60px; height:120px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pl-figure-look 6s ease-in-out infinite;
}
@keyframes pl-frame-breath { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.3); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.4); } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.2); } }
@keyframes pl-sky-pulse { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pl-letter-glow { 0% { opacity:0.7; box-shadow: 0 0 20px 5px rgba(160,70,26,0.3); } 50% { opacity:1; box-shadow: 0 0 50px 20px rgba(160,70,26,0.7); } 100% { opacity:0.8; box-shadow: 0 0 25px 8px rgba(160,70,26,0.4); } }
@keyframes pl-figure-look { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(4deg); } 75% { transform: translateX(5px) rotate(2deg); } }

.scn-hester-reflection {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2038 40%, #1a1220 100%),
              radial-gradient(circle at 50% 70%, #2a2038 0%, transparent 60%);
  overflow: hidden;
}
.scn-hester-reflection .room-bg { position:absolute; inset:0; background:linear-gradient(135deg, #14142a 0%, #0e0e1c 100%); }
.scn-hester-reflection .window-bars {
  position:absolute; top:5%; left:20%; right:20%; bottom:60%;
  background: transparent; border: 4px solid #3a3a4e;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}
.scn-hester-reflection .window-bars::before, .scn-hester-reflection .window-bars::after {
  content:''; position:absolute; background:#3a3a4e; width:4px;
}
.scn-hester-reflection .window-bars::before { top:0; bottom:0; left:30%; }
.scn-hester-reflection .window-bars::after { top:0; bottom:0; right:30%; }
.scn-hester-reflection .figure-hester {
  position:absolute; bottom:22%; left:30%; width:60px; height:140px;
  background: linear-gradient(180deg, #2a2038 0%, #1a0a1c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-figure-hester 8s ease-in-out infinite;
}
.scn-hester-reflection .figure-dimmesdale {
  position:absolute; bottom:20%; left:55%; width:55px; height:130px;
  background: linear-gradient(180deg, #2e2a3e 0%, #1c1828 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-figure-dimmes 10s ease-in-out infinite;
}
.scn-hester-reflection .shadow-pool {
  position:absolute; bottom:10%; left:10%; right:10%; height:40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: hr-shadow-drift 12s ease-in-out infinite alternate;
}
@keyframes hr-figure-hester { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(3px) rotate(2deg) scaleY(1.02); } 60% { transform: translateX(-2px) rotate(-1deg) scaleY(0.98); } }
@keyframes hr-figure-dimmes { 0%,100% { transform: translateX(0) rotate(0) scaleY(1); } 20% { transform: translateX(-2px) rotate(-2deg) scaleY(0.95); } 50% { transform: translateX(4px) rotate(3deg) scaleY(1.05); } 80% { transform: translateX(-1px) rotate(-1deg) scaleY(0.98); } }
@keyframes hr-shadow-drift { 0% { opacity:0.4; transform: translateY(0); } 50% { opacity:0.6; transform: translateY(10px); } 100% { opacity:0.3; transform: translateY(-5px); } }

.scn-hidden-machinery {
  background: linear-gradient(180deg, #0a0a14 0%, #14142a 50%, #1a1a30 100%),
              radial-gradient(circle at 30% 60%, #2a2038 0%, transparent 60%);
  overflow: hidden;
}
.scn-hidden-machinery .deep-bg { position:absolute; inset:0; background:linear-gradient(135deg, #0c0c14 0%, #18182a 100%); }
.scn-hidden-machinery .gear-large {
  position:absolute; top:30%; left:25%; width:120px; height:120px;
  background: radial-gradient(circle, #3a3a4e 0%, #2a2a3e 40%, #1a1a2a 100%);
  border-radius: 50%; border: 8px solid #4a4a5e;
  box-shadow: 0 0 30px rgba(0,0,0,0.7);
  animation: hm-gear-spin 6s linear infinite;
}
.scn-hidden-machinery .gear-large::after {
  content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:30px; height:30px; background:#5a5a6e; border-radius:50%;
  box-shadow: 0 0 20px rgba(90,90,110,0.5);
}
.scn-hidden-machinery .gear-small {
  position:absolute; top:45%; left:55%; width:80px; height:80px;
  background: radial-gradient(circle, #4a3a3e 0%, #3a2a2e 40%, #1a1a2a 100%);
  border-radius: 50%; border: 6px solid #5a4a4e;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: hm-gear-spin 4s linear infinite reverse;
}
.scn-hidden-machinery .gear-small::after {
  content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:20px; height:20px; background:#6a5a5e; border-radius:50%;
}
.scn-hidden-machinery .crank {
  position:absolute; bottom:30%; right:20%; width:60px; height:8px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; transform-origin: right center;
  animation: hm-crank-pump 3s ease-in-out infinite;
}
.scn-hidden-machinery .crank::before {
  content:''; position:absolute; top:-6px; left:8px; width:12px; height:20px;
  background: #4a3a2a; border-radius: 30%;
}
.scn-hidden-machinery .chain {
  position:absolute; top:20%; left:50%; width:100px; height:200px;
  border-left: 3px dashed #5a4a4e; border-right: 3px dashed #5a4a4e;
  animation: hm-chain-sway 8s ease-in-out infinite;
}
.scn-hidden-machinery .shadow-mist {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: hm-mist-pulse 10s ease-in-out infinite alternate;
}
@keyframes hm-gear-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes hm-crank-pump { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-20deg); } 75% { transform: rotate(20deg); } }
@keyframes hm-chain-sway { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 75% { transform: rotate(-5deg); } }
@keyframes hm-mist-pulse { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* ---- Scene: chillingworth-arrival-mystery ---- */
.scn-chillingworth-arrival-mystery {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1c14 40%, #1a0e08 100%),
    radial-gradient(ellipse at 45% 60%, #3a2a20 0%, transparent 70%);
  animation: ca-bg 20s ease-in-out infinite alternate;
}
.scn-chillingworth-arrival-mystery .wall-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a201c 0%, #1a1210 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.7);
}
.scn-chillingworth-arrival-mystery .wall-side {
  position: absolute; inset: 0 40% 20% 60%;
  background: linear-gradient(90deg, #1c1410 0%, #2a201c 100%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,.5);
}
.scn-chillingworth-arrival-mystery .doorway {
  position: absolute; inset: 15% 35% 25% 45%;
  background: linear-gradient(180deg, #0e0a08 0%, #1a120e 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: 0 0 0 4px #2a1e14 inset;
}
.scn-chillingworth-arrival-mystery .figure-silhouette {
  position: absolute; inset: 27% 42% 28% 47%;
  background: linear-gradient(180deg, #120e0a 0%, #080604 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ca-figure 6s ease-in-out infinite alternate;
}
.scn-chillingworth-arrival-mystery .shadow-interior {
  position: absolute; inset: 30% 30% 0 20%;
  background: radial-gradient(ellipse at 50% 20%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: ca-shadow 8s ease-in-out infinite;
}
.scn-chillingworth-arrival-mystery .candle-glow {
  position: absolute; top: 25%; right: 25%;
  width: 8px; height: 16px;
  background: radial-gradient(circle, #ffd090 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px #b07030;
  animation: ca-candle 3s ease-in-out infinite alternate;
}
.scn-chillingworth-arrival-mystery .dust-particle {
  position: absolute; top: 20%; left: 30%;
  width: 3px; height: 3px;
  background: rgba(200,160,120,.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: ca-dust 12s linear infinite;
  animation-delay: -4s;
}
@keyframes ca-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ca-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ca-shadow { 0%,100% { opacity:.5 } 50% { opacity:.8 } }
@keyframes ca-candle { 0% { box-shadow: 0 0 30px 12px #b07030; opacity:.7 } 50% { box-shadow: 0 0 50px 20px #ffb060; opacity:1 } 100% { box-shadow: 0 0 35px 14px #b07030; opacity:.8 } }
@keyframes ca-dust { 0% { transform: translate(0,0) scale(1); opacity:.3 } 25% { transform: translate(10px,-8px) scale(1.2); opacity:.5 } 50% { transform: translate(20px,0) scale(.8); opacity:.2 } 75% { transform: translate(30px,-4px) scale(1.1); opacity:.4 } 100% { transform: translate(40px,0) scale(1); opacity:.3 } }

/* ---- Scene: chillingworth-fame ---- */
.scn-chillingworth-fame {
  background:
    linear-gradient(180deg, #201814 0%, #2a1c14 50%, #1a100c 100%),
    radial-gradient(ellipse at 60% 50%, #4a3020 0%, transparent 60%);
}
.scn-chillingworth-fame .wall-bookshelf {
  position: absolute; inset: 8% 0 40% 12%;
  background:
    repeating-linear-gradient(0deg, #2a1e14 0px, #2a1e14 20px, #1c120c 20px, #1c120c 22px);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: cf-shelf 30s ease-in-out infinite alternate;
}
.scn-chillingworth-fame .desk {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-chillingworth-fame .chair {
  position: absolute; bottom: 22%; left: 30%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  transform-origin: bottom left;
  animation: cf-chair 12s ease-in-out infinite;
}
.scn-chillingworth-fame .figure-seated {
  position: absolute; bottom: 28%; left: 34%; width: 12%; height: 26%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cf-figure 5s ease-in-out infinite alternate;
}
.scn-chillingworth-fame .candle-glow {
  position: absolute; top: 22%; right: 28%;
  width: 6px; height: 14px;
  background: radial-gradient(circle, #ffc070 0%, #b07030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 36px 12px #a06020;
  animation: cf-candle 4s ease-in-out infinite alternate;
}
.scn-chillingworth-fame .scroll {
  position: absolute; bottom: 22%; left: 50%;
  width: 8%; height: 2%;
  background: linear-gradient(90deg, #4a3820 0%, #6a4c30 50%, #4a3820 100%);
  border-radius: 20%;
  transform: rotate(-5deg);
  animation: cf-scroll 20s linear infinite;
}
.scn-chillingworth-fame .ambient-particles {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(180,140,80,.05) 0%, transparent 50%),
              radial-gradient(circle at 70% 30%, rgba(180,140,80,.03) 0%, transparent 40%);
  filter: blur(6px);
  animation: cf-particles 15s ease-in-out infinite alternate;
}
@keyframes cf-shelf { 0% { background-position: 0 0 } 50% { background-position: 0 -10px } 100% { background-position: 0 5px } }
@keyframes cf-chair { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) translateY(-2px) } }
@keyframes cf-figure { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cf-candle { 0% { box-shadow: 0 0 24px 8px #a06020; opacity:.8 } 50% { box-shadow: 0 0 48px 18px #ffb050; opacity:1 } 100% { box-shadow: 0 0 30px 10px #a06020; opacity:.85 } }
@keyframes cf-scroll { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(4px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes cf-particles { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* ---- Scene: physician-attaches-to-dimmesdale ---- */
.scn-physician-attaches-to-dimmesdale {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1c18 40%, #1a0c0a 100%),
    radial-gradient(ellipse at 50% 55%, #3a2a20 0%, transparent 70%);
}
.scn-physician-attaches-to-dimmesdale .bg-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(0,0,0,.5) 0%, transparent 60%);
  animation: pa-bg 10s ease-in-out infinite alternate;
}
.scn-physician-attaches-to-dimmesdale .figure-physician {
  position: absolute; bottom: 20%; left: 20%; width: 18%; height: 36%;
  background: linear-gradient(180deg, #2a1a12 0%, #100806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: pa-physician 5s ease-in-out infinite alternate;
}
.scn-physician-attaches-to-dimmesdale .figure-minister {
  position: absolute; bottom: 22%; right: 25%; width: 16%; height: 32%;
  background: linear-gradient(180deg, #1a2018 0%, #0a0e0a 100%); /* slightly greenish pallor */
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: pa-minister 6s ease-in-out infinite;
}
.scn-physician-attaches-to-dimmesdale .hand-extended {
  position: absolute; bottom: 38%; left: 32%; width: 10%; height: 6%;
  background: linear-gradient(90deg, #3a2a1a 0%, #1a120c 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform: rotate(-10deg);
  animation: pa-hand 4s ease-in-out infinite alternate;
}
.scn-physician-attaches-to-dimmesdale .ground-shadow {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pa-ground 12s ease-in-out infinite;
}
.scn-physician-attaches-to-dimmesdale .ambient-light {
  position: absolute; top: 15%; right: 20%;
  width: 12%; height: 12%;
  background: radial-gradient(circle, rgba(180,120,60,.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: pa-light 3s ease-in-out infinite alternate;
}
@keyframes pa-bg { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes pa-physician { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(5px) rotate(-1deg) scale(1.02) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pa-minister { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(-4px) scale(.98) } }
@keyframes pa-hand { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-4px) scale(1.05) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes pa-ground { 0%,100% { opacity:.5 } 50% { opacity:.8 } }
@keyframes pa-light { 0% { opacity:.4 } 50% { opacity:.1 } 100% { opacity:.3 } }

/* ---- Scene: dimmesdale-refuses ---- */
.scn-dimmesdale-refuses {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a1e18 40%, #100a08 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a20 0%, transparent 60%);
}
.scn-dimmesdale-refuses .bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 30%, rgba(0,0,0,.7) 0%, transparent 60%);
  animation: dr-bg 15s ease-in-out infinite alternate;
}
.scn-dimmesdale-refuses .figure-minister-turning {
  position: absolute; bottom: 22%; left: 40%; width: 14%; height: 34%;
  background: linear-gradient(180deg, #1a1c16 0%, #0a0c08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: dr-figure 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-refuses .arm-repelling {
  position: absolute; bottom: 44%; left: 45%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1a1c16 0%, #0a0c08 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  transform-origin: bottom left;
  animation: dr-arm 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-refuses .shadow-cast {
  position: absolute; bottom: 18%; left: 35%; right: 20%; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: dr-shadow 6s ease-in-out infinite;
}
.scn-dimmesdale-refuses .glow-from-front {
  position: absolute; top: 20%; left: 15%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,160,80,.08) 0%, transparent 70%);
  filter: blur(12px);
  animation: dr-glow 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-refuses .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #2a1c14 0%, #1a0e08 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: dr-floor 20s ease-in-out infinite alternate;
}
@keyframes dr-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dr-figure { 0% { transform: translateX(0) rotate(3deg) } 50% { transform: translateX(-6px) rotate(-2deg) scale(1.02) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes dr-arm { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-6px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes dr-shadow { 0%,100% { opacity:.4 } 50% { opacity:.7 } }
@keyframes dr-glow { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.5; transform: scale(1.1) } 100% { opacity:.3; transform: scale(.95) } }
@keyframes dr-floor { 0% { background-position: 0 0 } 50% { background-position: 0 -5px } 100% { background-position: 0 0 } }

/* --- Scene 1: pearl-among-mariners --- */
.scn-pearl-among-mariners { background: linear-gradient(180deg, #5ba3d9 0%, #87ceeb 40%, #f5e6c8 70%, #c8a87c 100%), radial-gradient(ellipse at 60% 30%, #fff4d0 0%, transparent 60%); }
.scn-pearl-among-mariners .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #7ec8e3 0%, #b5dff5 50%, #e8f0e0 100%); animation: pmr-sky 20s ease-in-out infinite alternate; }
.scn-pearl-among-mariners .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #3a7a9a 0%, #5a9aba 40%, #8ac4d8 100%); border-radius: 30% 20% 0 0 / 10% 8% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.2); animation: pmr-sea 12s ease-in-out infinite alternate; }
.scn-pearl-among-mariners .sun { position:absolute; top:15%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff8e0 0%, #ffd890 40%, #e8a050 75%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,216,144,.5), 0 0 120px 60px rgba(255,200,100,.3); animation: pmr-sun 8s ease-in-out infinite alternate; }
.scn-pearl-among-mariners .mariner { position:absolute; bottom:35%; width:40px; height:70px; border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-pearl-among-mariners .mariner-1 { left:15%; animation: pmr-mariner-a 6s ease-in-out infinite; }
.scn-pearl-among-mariners .mariner-2 { left:70%; width:44px; height:68px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); animation: pmr-mariner-b 7s ease-in-out infinite; }
.scn-pearl-among-mariners .mariner-3 { left:45%; bottom:34%; width:36px; height:65px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); animation: pmr-mariner-c 8s ease-in-out infinite; }
.scn-pearl-among-mariners .pearl-fig { position:absolute; bottom:38%; left:42%; width:20px; height:40px; background: radial-gradient(ellipse at 50% 40%, #f5e6d0 0%, #e0c8a8 50%, #c8a880 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 8px rgba(255,230,180,.5); animation: pmr-pearl 3s ease-in-out infinite; }
.scn-pearl-among-mariners .sparkle { position:absolute; width:6px; height:6px; background: radial-gradient(circle, #fff8f0 0%, #ffd8a0 60%, transparent 100%); border-radius:50%; filter: blur(1px); }
.scn-pearl-among-mariners .sparkle-1 { top:30%; left:35%; animation: pmr-sparkle-a 2.5s ease-in-out infinite; }
.scn-pearl-among-mariners .sparkle-2 { top:25%; left:50%; animation: pmr-sparkle-b 3.2s ease-in-out infinite 0.5s; }
@keyframes pmr-sky { 0% { opacity:.85; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.9; transform: scaleY(.98) } }
@keyframes pmr-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.01) } 100% { transform: translateY(2px) scaleY(.99) } }
@keyframes pmr-sun { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.08); opacity:1; box-shadow: 0 0 100px 40px rgba(255,216,144,.6) } 100% { transform: scale(.95); opacity:.85 } }
@keyframes pmr-mariner-a { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-5px) rotate(1deg) } 100% { transform: translateY(2px) rotate(0) } }
@keyframes pmr-mariner-b { 0% { transform: translateY(2px) rotate(0) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes pmr-mariner-c { 0% { transform: translateY(-1px) rotate(1deg) } 50% { transform: translateY(-6px) rotate(-1deg) } 100% { transform: translateY(3px) rotate(0) } }
@keyframes pmr-pearl { 0% { transform: translateY(0) rotate(-2deg) scale(1) } 25% { transform: translateY(-8px) rotate(2deg) scale(1.02) } 50% { transform: translateY(-4px) rotate(-1deg) scale(.98) } 75% { transform: translateY(-10px) rotate(3deg) scale(1.01) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes pmr-sparkle-a { 0% { opacity:0; transform: scale(.5) } 25% { opacity:1; transform: scale(1.2) } 50% { opacity:.6; transform: scale(.8) } 75% { opacity:1; transform: scale(1.1) } 100% { opacity:0; transform: scale(.4) } }
@keyframes pmr-sparkle-b { 0% { opacity:.3; transform: scale(.6) } 30% { opacity:1; transform: scale(1.3) } 60% { opacity:.5; transform: scale(.9) } 100% { opacity:.2; transform: scale(.5) } }

/* --- Scene 2: item-gold-chain --- */
.scn-item-gold-chain { background: linear-gradient(180deg, #b8956a 0%, #d4b88a 30%, #c4a070 60%, #8a6a4a 100%), radial-gradient(ellipse at 50% 40%, #f0d8a0 0%, transparent 70%); }
.scn-item-gold-chain .deck-bg { position:absolute; inset:0; background: linear-gradient(180deg, #8a7040 0%, #6a5030 50%, #4a3820 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 20px 60px rgba(0,0,0,.4); animation: igc-deck 15s ease-in-out infinite alternate; }
.scn-item-gold-chain .rail { position:absolute; bottom:30%; left:0; right:0; height:12px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.5); }
.scn-item-gold-chain .shipmaster { position:absolute; bottom:32%; left:30%; width:55px; height:85px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%); border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%; transform-origin: bottom center; animation: igc-master 5s ease-in-out infinite; }
.scn-item-gold-chain .arm-reaching { position:absolute; bottom:48%; left:38%; width:50px; height:12px; background: linear-gradient(90deg, #5a4a3a 0%, #6a5a4a 50%, #7a6a5a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: left center; transform: rotate(-20deg); animation: igc-arm 2s ease-in-out infinite; }
.scn-item-gold-chain .pearl-child { position:absolute; bottom:35%; left:55%; width:18px; height:36px; background: radial-gradient(ellipse at 50% 40%, #f0dcc0 0%, #d4b88a 50%, #b8956a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: igc-child 3s ease-in-out infinite; }
.scn-item-gold-chain .chain-gold { position:absolute; bottom:50%; left:38%; width:25px; height:4px; background: linear-gradient(90deg, #ffd080 0%, #f0b040 50%, #d09020 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,200,80,.6); animation: igc-chain 1.5s ease-in-out infinite; }
.scn-item-gold-chain .glint { position:absolute; width:5px; height:5px; background: radial-gradient(circle, #fff8e0 0%, #ffd890 60%, transparent 100%); border-radius:50%; filter: blur(1px); }
.scn-item-gold-chain .glint-1 { top:45%; left:45%; animation: igc-glint-a 1.8s ease-in-out infinite; }
.scn-item-gold-chain .glint-2 { top:42%; left:48%; animation: igc-glint-b 2.2s ease-in-out infinite 0.3s; }
@keyframes igc-deck { 0% { opacity:.95; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:.9; transform: translateY(1px) } }
@keyframes igc-master { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-4px) rotate(2deg) } 60% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes igc-arm { 0% { transform: rotate(-25deg) translateX(0) } 25% { transform: rotate(-15deg) translateX(8px) } 50% { transform: rotate(-20deg) translateX(4px) } 75% { transform: rotate(-28deg) translateX(10px) } 100% { transform: rotate(-25deg) translateX(0) } }
@keyframes igc-child { 0% { transform: translateY(0) rotate(-3deg) scale(1) } 20% { transform: translateY(-12px) rotate(3deg) scale(1.03) } 40% { transform: translateY(-6px) rotate(-2deg) scale(.97) } 60% { transform: translateY(-14px) rotate(4deg) scale(1.02) } 80% { transform: translateY(-8px) rotate(-1deg) scale(.98) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes igc-chain { 0% { opacity:.7; transform: translateX(0) scaleX(1) } 25% { opacity:1; transform: translateX(5px) scaleX(1.1) } 50% { opacity:.8; transform: translateX(-3px) scaleX(.95) } 75% { opacity:1; transform: translateX(8px) scaleX(1.05) } 100% { opacity:.7; transform: translateX(0) scaleX(1) } }
@keyframes igc-glint-a { 0% { opacity:0; transform: scale(.3) } 30% { opacity:1; transform: scale(1.4) } 60% { opacity:.5; transform: scale(.7) } 100% { opacity:0; transform: scale(.2) } }
@keyframes igc-glint-b { 0% { opacity:.2; transform: scale(.5) } 40% { opacity:1; transform: scale(1.6) } 70% { opacity:.4; transform: scale(.6) } 100% { opacity:.1; transform: scale(.3) } }

/* --- Scene 3: pearl-with-chain --- */
.scn-pearl-with-chain { background: linear-gradient(180deg, #d4b88a 0%, #e8d0a8 30%, #f0dcc0 60%, #c4a070 100%), radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 70%); }
.scn-pearl-with-chain .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, #e8d0a8 0%, #d4b88a 40%, #c4a070 70%, #a08050 100%); border-radius: 20% 10% 30% 15% / 15% 20% 25% 10%; box-shadow: inset 0 0 80px rgba(160,128,80,.3); animation: pwc-bg 18s ease-in-out infinite alternate; }
.scn-pearl-with-chain .pearl-portrait { position:absolute; bottom:15%; left:50%; width:50px; height:90px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #f5e6d0 0%, #e0c8a8 30%, #c8a880 60%, #a88260 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 8px 30px rgba(0,0,0,.3); animation: pwc-portrait 6s ease-in-out infinite; }
.scn-pearl-with-chain .chain-neck { position:absolute; bottom:60%; left:50%; width:30px; height:8px; transform: translateX(-50%); background: linear-gradient(90deg, #e8a840 0%, #ffd080 30%, #e8b850 60%, #d09830 100%); border-radius: 50%; box-shadow: 0 0 15px 3px rgba(255,200,80,.5), 0 0 30px 8px rgba(255,200,80,.2); animation: pwc-neck 4s ease-in-out infinite; }
.scn-pearl-with-chain .chain-waist { position:absolute; bottom:35%; left:50%; width:40px; height:6px; transform: translateX(-50%); background: linear-gradient(90deg, #d09830 0%, #f0b850 30%, #ffd080 60%, #e0a840 100%); border-radius: 50%; box-shadow: 0 0 12px 2px rgba(255,200,80,.4); animation: pwc-waist 4.5s ease-in-out infinite 0.5s; }
.scn-pearl-with-chain .scarlet-letter { position:absolute; bottom:38%; left:55%; width:16px; height:20px; background: #b84838; border-radius: 4px; box-shadow: 0 0 20px 6px rgba(200,80,60,.5), inset 0 0 8px rgba(0,0,0,.2); animation: pwc-letter 5s ease-in-out infinite; }
.scn-pearl-with-chain .seaman-shadow { position:absolute; bottom:12%; right:8%; width:30px; height:60px; background: linear-gradient(180deg, rgba(60,40,20,.5) 0%, rgba(40,20,10,.3) 100%); border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%; filter: blur(4px); animation: pwc-shadow 8s ease-in-out infinite; }
.scn-pearl-with-chain .light-ray { position:absolute; top:0; left:20%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,.15) 0%, rgba(255,240,200,.05) 50%, transparent 100%); transform: skewX(-10deg); animation: pwc-ray 7s ease-in-out infinite alternate; }
@keyframes pwc-bg { 0% { opacity:.92; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.95; transform: scaleY(.98) } }
@keyframes pwc-portrait { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(-6px) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes pwc-neck { 0% { transform: translateX(-50%) scaleX(1) rotate(0) } 30% { transform: translateX(-50%) scaleX(1.05) rotate(3deg) } 60% { transform: translateX(-50%) scaleX(.98) rotate(-2deg) } 100% { transform: translateX(-50%) scaleX(1) rotate(0) } }
@keyframes pwc-waist { 0% { transform: translateX(-50%) scaleX(1) rotate(0) } 25% { transform: translateX(-50%) scaleX(1.03) rotate(-2deg) } 50% { transform: translateX(-50%) scaleX(.97) rotate(3deg) } 75% { transform: translateX(-50%) scaleX(1.02) rotate(-1deg) } 100% { transform: translateX(-50%) scaleX(1) rotate(0) } }
@keyframes pwc-letter { 0% { opacity:.9; transform: scale(1) } 25% { opacity:1; transform: scale(1.06); box-shadow: 0 0 25px 8px rgba(200,80,60,.6) } 50% { opacity:.85; transform: scale(.97) } 75% { opacity:1; transform: scale(1.03); box-shadow: 0 0 30px 10px rgba(200,80,60,.7) } 100% { opacity:.9; transform: scale(1) } }
@keyframes pwc-shadow { 0% { opacity:.3; transform: translateX(0) scaleY(1) } 50% { opacity:.5; transform: translateX(-5px) scaleY(1.05) } 100% { opacity:.35; transform: translateX(3px) scaleY(.95) } }
@keyframes pwc-ray { 0% { opacity:.4; transform: skewX(-12deg) translateX(-5px) } 50% { opacity:.7; transform: skewX(-8deg) translateX(8px) } 100% { opacity:.3; transform: skewX(-15deg) translateX(-10px) } }

/* --- Scene 4: seaman-message-chillingworth --- */
.scn-seaman-message-chillingworth { background: linear-gradient(180deg, #2a3a4a 0%, #3a4a5a 30%, #4a5a6a 60%, #5a6a7a 100%), radial-gradient(ellipse at 40% 60%, #4a5a6a 0%, transparent 70%); }
.scn-seaman-message-chillingworth .sky-dark { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a4a5a 0%, #4a5a6a 40%, #5a6a7a 100%); animation: smc-sky 15s ease-in-out infinite alternate; }
.scn-seaman-message-chillingworth .sea-dark { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #1a2a3a 0%, #2a3a4a 40%, #3a4a5a 100%); border-radius: 20% 30% 0 0 / 8% 12% 0 0; box-shadow: inset 0 15px 30px rgba(0,0,0,.4); animation: smc-sea 14s ease-in-out infinite alternate; }
.scn-seaman-message-chillingworth .seaman-fig { position:absolute; bottom:30%; left:30%; width:45px; height:75px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%); border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%; box-shadow: 0 4px 20px rgba(0,0,0,.5); animation: smc-seaman 6s ease-in-out infinite; }
.scn-seaman-message-chillingworth .chillingworth-shadow { position:absolute; bottom:28%; right:20%; width:40px; height:65px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #000010 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; filter: blur(3px); opacity:.7; animation: smc-chill 8s ease-in-out infinite; }
.scn-seaman-message-chillingworth .whisper-lines { position:absolute; bottom:50%; left:35%; width:30px; height:2px; background: linear-gradient(90deg, rgba(200,200,220,.3) 0%, rgba(200,200,220,.1) 50%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: smc-whisper 3s ease-in-out infinite; }
.scn-seaman-message-chillingworth .ship-rail { position:absolute; bottom:32%; left:0; right:0; height:10px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: 0 3px 10px rgba(0,0,0,.6); }
.scn-seaman-message-chillingworth .dark-aura { position:absolute; bottom:20%; right:15%; width:60px; height:80px; background: radial-gradient(ellipse at 50% 50%, rgba(10,10,30,.4) 0%, rgba(10,10,30,.1) 50%, transparent 100%); filter: blur(8px); animation: smc-aura 10s ease-in-out infinite alternate; }
@keyframes smc-sky { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:.95; transform: scaleY(1.01) } 100% { opacity:.85; transform: scaleY(.99) } }
@keyframes smc-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(2px) scaleY(.98) } }
@keyframes smc-seaman { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateY(-8px) rotate(-1deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes smc-chill { 0% { transform: translateY(0) scaleY(1) opacity:.6 } 30% { transform: translateY(-6px) scaleY(1.04) opacity:.8 } 60% { transform: translateY(-2px) scaleY(.97) opacity:.5 } 100% { transform: translateY(0) scaleY(1) opacity:.65 } }
@keyframes smc-whisper { 0% { opacity:.2; transform: translateX(0) scaleX(1) } 20% { opacity:.8; transform: translateX(10px) scaleX(1.5) } 40% { opacity:.3; transform: translateX(-5px) scaleX(.8) } 60% { opacity:.7; transform: translateX(15px) scaleX(1.3) } 80% { opacity:.4; transform: translateX(5px) scaleX(1.1) } 100% { opacity:.2; transform: translateX(0) scaleX(1) } }
@keyframes smc-aura { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.2; transform: scale(.9) } }

.scn-hester-bridal-veil-exception {
  background:
    linear-gradient(135deg, #f5e6c8 0%, #3a2a1a 100%),
    radial-gradient(circle at 60% 20%, #fff8e7 0%, transparent 70%);
}
.scn-hester-bridal-veil-exception .window-light {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fff8e7 0%, transparent 100%);
  animation: hbv-window 6s ease-in-out infinite alternate;
}
.scn-hester-bridal-veil-exception .veil {
  position: absolute; top: 15%; left: 40%; width: 100px; height: 140px;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,255,255,0.9) 0%, rgba(240,230,210,0.6) 70%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform-origin: top center;
  animation: hbv-veil 5s ease-in-out infinite alternate;
}
.scn-hester-bridal-veil-exception .needle {
  position: absolute; top: 25%; left: 45%; width: 2px; height: 60px;
  background: linear-gradient(180deg, #aaa 0%, #ccc 100%);
  transform-origin: top center;
  animation: hbv-needle 4s ease-in-out infinite;
}
.scn-hester-bridal-veil-exception .thread {
  position: absolute; top: 45%; left: 42%; width: 40px; height: 2px;
  background: #d4c4a0;
  border-radius: 50%;
  animation: hbv-thread 4s ease-in-out infinite alternate;
}
.scn-hester-bridal-veil-exception .figure {
  position: absolute; bottom: 20%; left: 32%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hbv-figure 8s ease-in-out infinite;
}
@keyframes hbv-window {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes hbv-veil {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(-1px); }
}
@keyframes hbv-needle {
  0%,100% { transform: translateX(0) translateY(0) rotate(-5deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(5deg); }
}
@keyframes hbv-thread {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(8px) scaleX(1.3); }
  100% { transform: translateX(-4px) scaleX(0.9); }
}
@keyframes hbv-figure {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

.scn-hester-austere-life {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
    radial-gradient(circle at 50% 40%, #3a3a4e 0%, transparent 70%);
}
.scn-hester-austere-life .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  animation: aus-wall 12s ease-in-out infinite alternate;
}
.scn-hester-austere-life .figure {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1e1a26 0%, #0e0a16 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: aus-figure 8s ease-in-out infinite;
}
.scn-hester-austere-life .dress {
  position: absolute; bottom: 20%; left: 37%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.5);
  animation: aus-dress 10s ease-in-out infinite;
}
.scn-hester-austere-life .scarlet {
  position: absolute; bottom: 45%; left: 45%; width: 12px; height: 14px;
  background: radial-gradient(circle, #c8553d 0%, #8a2a1a 100%);
  border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%;
  box-shadow: 0 0 12px 2px rgba(200,85,61,0.5);
  animation: aus-scarlet 4s ease-in-out infinite alternate;
}
.scn-hester-austere-life .child {
  position: absolute; bottom: 18%; left: 48%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: aus-child 6s ease-in-out infinite;
}
@keyframes aus-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes aus-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes aus-dress { 0%,100% { transform: scale(1); } 50% { transform: scale(0.98); } }
@keyframes aus-scarlet { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1.05); } }
@keyframes aus-child { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px); } }

.scn-hester-charity-work {
  background:
    radial-gradient(ellipse at 50% 70%, #ff7e5f 0%, #feb47b 30%, #2c1e1e 100%),
    linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
}
.scn-hester-charity-work .fire {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #ffd080 0%, #ff7e5f 50%, #c84020 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: cha-fire 2s ease-in-out infinite alternate;
}
.scn-hester-charity-work .hand-left {
  position: absolute; bottom: 25%; left: 35%; width: 25px; height: 40px;
  background: linear-gradient(180deg, #d4a080 0%, #b08060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: cha-hand 5s ease-in-out infinite;
}
.scn-hester-charity-work .hand-right {
  position: absolute; bottom: 22%; left: 55%; width: 25px; height: 42px;
  background: linear-gradient(180deg, #d4a080 0%, #b08060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: cha-hand 5s ease-in-out infinite reverse;
}
.scn-hester-charity-work .gift {
  position: absolute; bottom: 28%; left: 45%; width: 18px; height: 18px;
  background: radial-gradient(circle, #c08040 0%, #804020 100%);
  border-radius: 20%;
  box-shadow: 0 0 8px 2px rgba(192,128,64,0.6);
  animation: cha-gift 3s ease-in-out infinite;
}
.scn-hester-charity-work .table {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cha-table 8s ease-in-out infinite;
}
@keyframes cha-fire { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.1) rotate(3deg); } 100% { transform: scaleY(0.95) rotate(-2deg); } }
@keyframes cha-hand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cha-gift { 0%,100% { transform: scale(1); } 50% { transform: scale(1.15); } }
@keyframes cha-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

.scn-hester-oriental-taste {
  background:
    radial-gradient(circle at 50% 50%, #4a2a2a 0%, #1a0a0a 100%),
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
}
.scn-hester-oriental-taste .candle {
  position: absolute; bottom: 40%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #f0c080 0%, #b08040 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  animation: ori-candle 3s ease-in-out infinite alternate;
}
.scn-hester-oriental-taste .hoop {
  position: absolute; bottom: 30%; left: 45%; width: 80px; height: 80px;
  border: 4px solid #b08040;
  border-radius: 50%;
  background: transparent;
  box-shadow: 0 0 20px 4px rgba(176,128,64,0.3);
  animation: ori-hoop 8s linear infinite;
}
.scn-hester-oriental-taste .fabric {
  position: absolute; bottom: 28%; left: 48%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #702243 0%, #5e1a1d 50%, #3a0a0a 100%);
  border-radius: 20% 10% 30% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: ori-fabric 6s ease-in-out infinite;
}
.scn-hester-oriental-taste .needle {
  position: absolute; bottom: 32%; left: 52%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #ccc 0%, #888 100%);
  transform-origin: top center;
  animation: ori-needle 4s ease-in-out infinite;
}
.scn-hester-oriental-taste .thread {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 2px;
  background: #b87878;
  border-radius: 50%;
  animation: ori-thread 4s ease-in-out infinite alternate;
}
@keyframes ori-candle { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(2deg); } 100% { transform: scaleY(0.95) rotate(-2deg); } }
@keyframes ori-hoop { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ori-fabric { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ori-needle { 0%,100% { transform: translateX(0) rotate(-10deg); } 50% { transform: translateX(2px) rotate(10deg); } }
@keyframes ori-thread { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.2); } 100% { transform: translateX(-5px) scaleX(0.9); } }

/* blasphemous-suggestions */
.scn-blasphemous-suggestions { background: linear-gradient(180deg, #2a2a2e 0%, #1b1b1f 50%, #121215 100%), radial-gradient(ellipse at 50% 30%, #3a3a40 0%, transparent 70%); }
.scn-blasphemous-suggestions .bs1-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1d 0%, #0e0e10 100%); }
.scn-blasphemous-suggestions .bs1-pulpit { position:absolute; bottom:20%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2e20 0%, #1e140e 100%); border-radius: 8% 8% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: bs1-pulpit 10s ease-in-out infinite; }
.scn-blasphemous-suggestions .bs1-dimmesdale { position:absolute; bottom:22%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bs1-fig 4s ease-in-out infinite; }
.scn-blasphemous-suggestions .bs1-deacon { position:absolute; bottom:22%; left:56%; width:24px; height:48px; background: linear-gradient(180deg, #3a3a42 0%, #1a1a1d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bs1-fig 4s ease-in-out infinite reverse; }
.scn-blasphemous-suggestions .bs1-lantern { position:absolute; bottom:35%; left:50%; width:10px; height:16px; transform:translateX(-50%); background: radial-gradient(circle, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20%; box-shadow: 0 0 20px 4px rgba(90,74,42,.4); animation: bs1-lantern 3s ease-in-out infinite alternate; }
.scn-blasphemous-suggestions .bs1-shadow { position:absolute; bottom:18%; left:42%; width:40px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); transform: scaleX(1.5); animation: bs1-shadow 4s ease-in-out infinite; }
@keyframes bs1-pulpit { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.7); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes bs1-fig { 0% { transform: translate(0,0) rotate(0deg) scaleY(1); } 25% { transform: translate(2px, -1px) rotate(1deg) scaleY(1.01); } 50% { transform: translate(-1px, 0) rotate(-2deg) scaleY(0.98); } 75% { transform: translate(3px, -1px) rotate(1.5deg) scaleY(1.02); } 100% { transform: translate(0,0) rotate(0deg) scaleY(1); } }
@keyframes bs1-lantern { 0% { box-shadow: 0 0 15px 2px rgba(90,74,42,.3); opacity: .8; } 50% { box-shadow: 0 0 25px 6px rgba(90,74,42,.6); opacity: 1; } 100% { box-shadow: 0 0 18px 3px rgba(90,74,42,.4); opacity: .9; } }
@keyframes bs1-shadow { 0% { transform: scaleX(1.5) translateX(0); opacity: .6; } 50% { transform: scaleX(1.8) translateX(-4px); opacity: .8; } 100% { transform: scaleX(1.5) translateX(0); opacity: .6; } }

/* old-dame-encounter */
.scn-old-dame-encounter { background: linear-gradient(180deg, #3a3a42 0%, #2a2a32 40%, #1a1a22 100%), radial-gradient(ellipse at 70% 80%, #4a4a52 0%, transparent 60%); }
.scn-old-dame-encounter .oe1-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%); }
.scn-old-dame-encounter .oe1-house-l { position:absolute; bottom:20%; left:10%; width:120px; height:140px; background: linear-gradient(180deg, #4a3e32 0%, #2a221a 100%); border-radius: 0 0 4% 4%; box-shadow: -4px 0 8px rgba(0,0,0,.5); animation: oe1-house 20s ease-in-out infinite; }
.scn-old-dame-encounter .oe1-house-r { position:absolute; bottom:18%; right:15%; width:140px; height:150px; background: linear-gradient(180deg, #4e4236 0%, #2e261e 100%); border-radius: 0 0 4% 4%; box-shadow: 4px 0 8px rgba(0,0,0,.5); animation: oe1-house 22s ease-in-out infinite reverse; }
.scn-old-dame-encounter .oe1-dimmesdale { position:absolute; bottom:22%; left:45%; width:20px; height:52px; background: linear-gradient(180deg, #2e2e36 0%, #1a1a22 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oe1-fig 5s ease-in-out infinite; }
.scn-old-dame-encounter .oe1-old-dame { position:absolute; bottom:22%; left:52%; width:18px; height:44px; background: linear-gradient(180deg, #3e3e48 0%, #1e1e26 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oe1-fig 5s ease-in-out infinite reverse; }
.scn-old-dame-encounter .oe1-lamp { position:absolute; bottom:35%; left:48%; width:12px; height:18px; background: radial-gradient(circle, #7a7a5a 0%, #4a4a2a 100%); border-radius: 20%; box-shadow: 0 0 18px 4px rgba(74,74,42,.4); animation: oe1-lamp 4s ease-in-out infinite alternate; }
.scn-old-dame-encounter .oe1-mist { position:absolute; bottom:28%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(100,100,110,.3) 0%, transparent 100%); filter: blur(6px); animation: oe1-mist 30s linear infinite; }
@keyframes oe1-house { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes oe1-fig { 0% { transform: translate(0,0) rotate(0deg); } 20% { transform: translate(2px, -1px) rotate(0.5deg); } 40% { transform: translate(-1px, 0) rotate(-0.5deg); } 60% { transform: translate(3px, -2px) rotate(1deg); } 80% { transform: translate(-2px, 0) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes oe1-lamp { 0% { opacity:.7; box-shadow: 0 0 12px 2px rgba(74,74,42,.3); } 50% { opacity:1; box-shadow: 0 0 22px 6px rgba(74,74,42,.6); } 100% { opacity:.8; box-shadow: 0 0 14px 3px rgba(74,74,42,.4); } }
@keyframes oe1-mist { 0% { transform: translateX(0); opacity:.5; } 50% { transform: translateX(30px); opacity:.8; } 100% { transform: translateX(0); opacity:.5; } }

/* heavenly-comfort */
.scn-heavenly-comfort { background: linear-gradient(180deg, #2e2e2e 0%, #1e1e1e 50%, #0e0e0e 100%), radial-gradient(ellipse at 40% 60%, #4a3a2a 0%, transparent 70%); }
.scn-heavenly-comfort .hc1-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a 0%, #0c0c0c 100%); }
.scn-heavenly-comfort .hc1-hearth { position:absolute; bottom:15%; left:30%; width:80px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.6); animation: hc1-hearth 12s ease-in-out infinite; }
.scn-heavenly-comfort .hc1-fire { position:absolute; bottom:22%; left:34%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, #c87030 30%, transparent 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(3px); animation: hc1-fire 3s ease-in-out infinite alternate; }
.scn-heavenly-comfort .hc1-chair { position:absolute; bottom:18%; right:25%; width:70px; height:90px; background: linear-gradient(180deg, #3a2e22 0%, #1e1610 100%); border-radius: 8% 8% 4% 4% / 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: hc1-chair 8s ease-in-out infinite; }
.scn-heavenly-comfort .hc1-dimmesdale { position:absolute; bottom:20%; right:30%; width:18px; height:48px; background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc1-fig 4s ease-in-out infinite; }
.scn-heavenly-comfort .hc1-old-dame { position:absolute; bottom:20%; left:45%; width:18px; height:42px; background: linear-gradient(180deg, #3a3a42 0%, #1e1e26 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc1-fig 4s ease-in-out infinite reverse; }
.scn-heavenly-comfort .hc1-glow { position:absolute; bottom:28%; left:30%; width:60px; height:60px; background: radial-gradient(circle, rgba(140,100,60,.2) 0%, transparent 100%); filter: blur(8px); animation: hc1-glow 5s ease-in-out infinite alternate; }
@keyframes hc1-hearth { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes hc1-fire { 0% { transform: scale(1) translateY(0); opacity:.7; } 50% { transform: scale(1.1) translateY(-3px); opacity:1; } 100% { transform: scale(0.95) translateY(2px); opacity:.8; } }
@keyframes hc1-chair { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes hc1-fig { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(2px, -1px) rotate(1deg); } 60% { transform: translate(-1px, 1px) rotate(-0.5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes hc1-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.2); } 100% { opacity:.4; transform: scale(1.05); } }

/* providential-disorder */
.scn-providential-disorder { background: linear-gradient(180deg, #1a1a20 0%, #0e0e12 50%, #060608 100%), radial-gradient(ellipse at 50% 50%, #2a2a32 0%, transparent 70%); }
.scn-providential-disorder .pd1-bg { position:absolute; inset:0; background: linear-gradient(180deg, #121216 0%, #08080a 100%); }
.scn-providential-disorder .pd1-vapor { position:absolute; bottom:30%; left:20%; right:20%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(80,80,90,.3) 0%, transparent 100%); filter: blur(10px); animation: pd1-vapor 15s ease-in-out infinite alternate; }
.scn-providential-disorder .pd1-cup { position:absolute; bottom:22%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #4a4a52 0%, #2a2a32 100%); border-radius: 0 0 20% 20% / 0 0 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,255,255,.05); animation: pd1-cup 6s ease-in-out infinite; }
.scn-providential-disorder .pd1-hand { position:absolute; bottom:22%; left:48%; width:16px; height:40px; background: linear-gradient(180deg, #2a2a32 0%, #1a1a22 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pd1-hand 2s ease-in-out infinite; }
.scn-providential-disorder .pd1-figure-dimmesdale { position:absolute; bottom:24%; right:20%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd1-fig 5s ease-in-out infinite; }
.scn-providential-disorder .pd1-figure-old-dame { position:absolute; bottom:22%; left:30%; width:18px; height:44px; background: linear-gradient(180deg, #3a3a42 0%, #1e1e26 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd1-fig 5s ease-in-out infinite reverse; }
@keyframes pd1-vapor { 0% { transform: translateY(0) scale(1); opacity:.4; } 50% { transform: translateY(-10px) scale(1.2); opacity:.7; } 100% { transform: translateY(5px) scale(0.9); opacity:.5; } }
@keyframes pd1-cup { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-5deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(3deg) translateY(0); } 75% { transform: translateX(-50%) rotate(-3deg) translateY(2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes pd1-hand { 0% { transform: rotate(0deg) translate(0,0); } 25% { transform: rotate(10deg) translate(3px, -2px); } 50% { transform: rotate(-5deg) translate(-1px, 1px); } 75% { transform: rotate(8deg) translate(2px, -1px); } 100% { transform: rotate(0deg) translate(0,0); } }
@keyframes pd1-fig { 0% { transform: translate(0,0) rotate(0deg) scaleY(1); } 30% { transform: translate(4px, -2px) rotate(2deg) scaleY(1.02); } 60% { transform: translate(-2px, 1px) rotate(-1deg) scaleY(0.98); } 100% { transform: translate(0,0) rotate(0deg) scaleY(1); } }

.scn-hester-new-sense {
  background:
    linear-gradient(180deg, #1a1423 0%, #2a1f2e 30%, #1c1629 70%, #0f0a14 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a44 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-hester-new-sense .wall {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #31243a 0%, #22182b 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
}
.scn-hester-new-sense .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(180deg, #3a2e2a 0%, #1e1615 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: hns-floor 12s ease-in-out infinite alternate;
}
.scn-hester-new-sense .window {
  position: absolute;
  bottom: 40%; left: 30%;
  width: 80px; height: 100px;
  background: linear-gradient(135deg, #4a3b4a 0%, #2e2230 100%);
  border: 4px solid #2a1f2e;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(180,140,100,0.15);
}
.scn-hester-new-sense .figure {
  position: absolute;
  bottom: 20%; left: 35%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1220 0%, #0d0812 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hns-walk 4s ease-in-out infinite;
}
.scn-hester-new-sense .shadow-figure {
  position: absolute;
  bottom: 5%; left: 35%;
  width: 22px; height: 30px;
  background: rgba(0,0,0,0.35);
  border-radius: 50% 50% 30% 30%;
  filter: blur(6px);
  transform-origin: bottom center;
  animation: hns-shadowwalk 4s ease-in-out infinite;
}
.scn-hester-new-sense .candle {
  position: absolute;
  bottom: 35%; left: 55%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b88a 40%, #8a704a 100%);
  border-radius: 2px;
  animation: hns-candleflicker 2s ease-in-out infinite alternate;
}
.scn-hester-new-sense .flame-glow {
  position: absolute;
  bottom: 58%; left: 55%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #ffb040 40%, transparent 70%);
  border-radius: 50%;
  animation: hns-flame 1.5s ease-in-out infinite alternate;
}
@keyframes hns-floor { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes hns-walk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(24px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes hns-shadowwalk {
  0% { transform: translateX(0) scale(1); }
  25% { transform: translateX(10px) scale(0.95); }
  50% { transform: translateX(20px) scale(1); }
  75% { transform: translateX(10px) scale(0.95); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes hns-candleflicker {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02) scaleX(0.98); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.85; }
}
@keyframes hns-flame {
  0% { transform: scale(1) rotate(-5deg); opacity: 0.8; }
  50% { transform: scale(1.1) rotate(3deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-2deg); opacity: 0.75; }
}

.scn-item-sympathetic-knowledge {
  background:
    linear-gradient(180deg, #1a1625 0%, #221b30 40%, #151020 100%),
    radial-gradient(ellipse at 60% 50%, #2a2238 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-item-sympathetic-knowledge .bg-deep {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #0f0b18 0%, #1a1428 50%, #0f0b18 100%);
  animation: isk-bg 20s ease-in-out infinite alternate;
}
.scn-item-sympathetic-knowledge .bg-mid {
  position: absolute;
  inset: 10% 10% 20% 10%;
  background: linear-gradient(180deg, #2a223a 0%, #1a1428 100%);
  border-radius: 30% 30% 20% 20%;
  filter: blur(15px);
  opacity: 0.5;
  animation: isk-bmid 15s ease-in-out infinite alternate;
}
.scn-item-sympathetic-knowledge .table {
  position: absolute;
  bottom: 15%; left: 25%;
  width: 60%; height: 12%;
  background: linear-gradient(180deg, #3a2e2a 0%, #1a1412 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: isk-table 10s ease-in-out infinite;
}
.scn-item-sympathetic-knowledge .book {
  position: absolute;
  bottom: 25%; left: 40%;
  width: 30px; height: 20px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: isk-book 5s ease-in-out infinite alternate;
}
.scn-item-sympathetic-knowledge .figure {
  position: absolute;
  bottom: 20%; left: 35%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1225 0%, #0d0818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: isk-figure 6s ease-in-out infinite;
}
.scn-item-sympathetic-knowledge .reflection {
  position: absolute;
  bottom: 25%; left: 48%;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, rgba(26,22,40,0.4) 0%, rgba(15,10,25,0.2) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: isk-reflection 6s ease-in-out infinite;
  filter: blur(3px);
}
.scn-item-sympathetic-knowledge .candle {
  position: absolute;
  bottom: 35%; left: 55%;
  width: 6px; height: 25px;
  background: linear-gradient(180deg, #f0d8b0 0%, #c8a878 40%, #6a4e32 100%);
  border-radius: 2px;
  animation: isk-candle 3s ease-in-out infinite alternate;
}
.scn-item-sympathetic-knowledge .shadow {
  position: absolute;
  bottom: 5%; left: 30%;
  width: 30px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: isk-shadow 8s ease-in-out infinite;
}
@keyframes isk-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes isk-bmid { 0% { transform: translateY(0); opacity: 0.4; } 50% { transform: translateY(-5px); opacity: 0.6; } 100% { transform: translateY(3px); opacity: 0.45; } }
@keyframes isk-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes isk-book { 0% { transform: rotate(0deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(5deg); } }
@keyframes isk-figure {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(0); }
  75% { transform: translateX(8px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes isk-reflection {
  0% { transform: translateX(0) scale(1); opacity: 0.6; }
  25% { transform: translateX(6px) scale(0.95); opacity: 0.5; }
  50% { transform: translateX(12px) scale(1); opacity: 0.7; }
  75% { transform: translateX(6px) scale(0.95); opacity: 0.5; }
  100% { transform: translateX(0) scale(1); opacity: 0.6; }
}
@keyframes isk-candle {
  0% { transform: scaleY(1); opacity: 0.85; }
  50% { transform: scaleY(1.03) scaleX(0.97); opacity: 1; }
  100% { transform: scaleY(0.96); opacity: 0.8; }
}
@keyframes isk-shadow { 0% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.45; } 100% { transform: scale(0.9); opacity: 0.25; } }

.scn-hester-awful-revelations {
  background:
    linear-gradient(180deg, #1a142a 0%, #221a30 40%, #0f0a18 100%),
    radial-gradient(ellipse at 50% 30%, #2a2040 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-hester-awful-revelations .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #191229 0%, #231a34 50%, #191229 100%);
  animation: har-bg 18s ease-in-out infinite alternate;
}
.scn-hester-awful-revelations .drape {
  position: absolute;
  top: 0; left: 10%; right: 10%;
  height: 70%;
  background: linear-gradient(180deg, #2a1e2a 0%, #1a121a 100%);
  border-radius: 0 0 60% 60% / 0 0 40% 40%;
  filter: blur(4px);
  animation: har-drape 8s ease-in-out infinite alternate;
}
.scn-hester-awful-revelations .chair {
  position: absolute;
  bottom: 15%; left: 35%;
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: har-chair 10s ease-in-out infinite;
}
.scn-hester-awful-revelations .figure {
  position: absolute;
  bottom: 18%; left: 38%;
  width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1225 0%, #0d0818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: har-figure 5s ease-in-out infinite;
}
.scn-hester-awful-revelations .shadow {
  position: absolute;
  bottom: 5%; left: 35%;
  width: 30px; height: 20px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(10px);
  animation: har-shadow 7s ease-in-out infinite;
}
.scn-hester-awful-revelations .swirl1 {
  position: absolute;
  top: 20%; right: 15%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(60,40,60,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: har-swirl1 12s linear infinite;
}
.scn-hester-awful-revelations .swirl2 {
  position: absolute;
  top: 40%; left: 10%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(50,30,50,0.1) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(5px);
  animation: har-swirl2 15s linear infinite reverse;
}
@keyframes har-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes har-drape { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(3px) scale(0.98); } }
@keyframes har-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes har-figure {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  30% { transform: translateX(4px) translateY(-2px) rotate(3deg); }
  60% { transform: translateX(-4px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes har-shadow {
  0% { transform: scale(1) translateX(0); opacity: 0.4; }
  50% { transform: scale(1.1) translateX(2px); opacity: 0.6; }
  100% { transform: scale(0.95) translateX(-1px); opacity: 0.35; }
}
@keyframes har-swirl1 {
  0% { transform: rotate(0deg) translateX(0) scale(1); }
  50% { transform: rotate(180deg) translateX(10px) scale(1.2); }
  100% { transform: rotate(360deg) translateX(0) scale(1); }
}
@keyframes har-swirl2 {
  0% { transform: rotate(0deg) translateX(0) scale(1); }
  50% { transform: rotate(-180deg) translateX(-8px) scale(0.9); }
  100% { transform: rotate(-360deg) translateX(0) scale(1); }
}

.scn-hester-sisterhood {
  background:
    linear-gradient(180deg, #1a1625 0%, #221b30 40%, #101020 100%),
    radial-gradient(ellipse at 50% 20%, #2a2240 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-hester-sisterhood .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #151128 0%, #1e1730 50%, #151128 100%);
  animation: hss-bg 20s ease-in-out infinite alternate;
}
.scn-hester-sisterhood .altar {
  position: absolute;
  bottom: 15%; left: 25%;
  width: 50%; height: 15%;
  background: linear-gradient(180deg, #3a2e3a 0%, #1e1620 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
}
.scn-hester-sisterhood .cross {
  position: absolute;
  bottom: 40%; left: 50%;
  width: 6px; height: 80px;
  background: linear-gradient(180deg, #5a4a4a 0%, #2a1e1e 100%);
  border-radius: 3px;
  transform: translateX(-50%);
  box-shadow: 0 0 10px rgba(100,80,80,0.3);
}
.scn-hester-sisterhood .cross::before {
  content: '';
  position: absolute;
  top: 20px; left: -25px;
  width: 56px; height: 6px;
  background: linear-gradient(90deg, #5a4a4a 0%, #2a1e1e 100%);
  border-radius: 3px;
}
.scn-hester-sisterhood .figure-left {
  position: absolute;
  bottom: 15%; left: 20%;
  width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a1225 0%, #0d0818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hss-figure-left 8s ease-in-out infinite;
}
.scn-hester-sisterhood .figure-right {
  position: absolute;
  bottom: 15%; right: 20%;
  width: 20px; height: 55px;
  background: linear-gradient(180deg, #1a1225 0%, #0d0818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hss-figure-right 8s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-hester-sisterhood .halo {
  position: absolute;
  bottom: 65%; left: 50%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,180,150,0.2) 0%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  filter: blur(6px);
  animation: hss-halo 5s ease-in-out infinite alternate;
}
.scn-hester-sisterhood .beam {
  position: absolute;
  top: 0; left: 45%;
  width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,150,0.08) 0%, transparent 100%);
  filter: blur(12px);
  animation: hss-beam 10s ease-in-out infinite alternate;
}
@keyframes hss-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hss-figure-left {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-2px) rotate(3deg); }
  60% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hss-figure-right {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-1px) rotate(-3deg); }
  60% { transform: translateY(0) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hss-halo {
  0% { transform: translateX(-50%) scale(1) rotate(0); opacity: 0.3; }
  50% { transform: translateX(-50%) scale(1.15) rotate(10deg); opacity: 0.5; }
  100% { transform: translateX(-50%) scale(0.95) rotate(-5deg); opacity: 0.25; }
}
@keyframes hss-beam {
  0% { transform: scaleX(1); opacity: 0.1; }
  50% { transform: scaleX(1.2); opacity: 0.2; }
  100% { transform: scaleX(0.9); opacity: 0.08; }
}

/* physician-defense */
.scn-physician-defense { background: linear-gradient(135deg, #e8dcc8 0%, #c4b89a 50%, #a89577 100%), radial-gradient(ellipse at 40% 60%, #f5e6c0 0%, transparent 70%); }

.scn-physician-defense .room-bg {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #d6cbb0 0%, #e3d5b8 40%, #c2b190 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-physician-defense .window {
  position:absolute; top:10%; left:20%; width:30%; height:40%;
  background: linear-gradient(135deg, #fdf5e6 0%, #e8d5b0 70%);
  border: 6px solid #8a7a5e;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,200,100,0.3), 0 0 20px rgba(255,200,100,0.2);
  animation: pd-window-pulse 8s ease-in-out infinite;
}
.scn-physician-defense .sunbeam {
  position:absolute; top:15%; left:20%; width:8%; height:70%;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, rgba(255,220,150,0.3) 100%);
  filter: blur(8px);
  transform: skewX(-10deg);
  animation: pd-sunbeam-move 12s ease-in-out infinite alternate;
}
.scn-physician-defense .table {
  position:absolute; bottom:18%; left:30%; width:40%; height:14%;
  background: linear-gradient(180deg, #6b4f3a 0%, #4d361f 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
}
.scn-physician-defense .physician {
  position:absolute; bottom:28%; left:45%; width:16%; height:40%;
  background: linear-gradient(135deg, #3a2c1e 0%, #1f160d 100%);
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pd-figure-sway 5s ease-in-out infinite;
}
.scn-physician-defense .shadow-physician {
  position:absolute; bottom:24%; left:48%; width:14%; height:35%;
  background: linear-gradient(135deg, rgba(30,20,10,0.6) 0%, rgba(10,5,0,0.8) 100%);
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%;
  transform: scaleX(-1) translateX(10px);
  animation: pd-shadow-move 5s ease-in-out infinite alternate;
}
.scn-physician-defense .bottle {
  position:absolute; bottom:28%; left:55%; width:4%; height:12%;
  background: linear-gradient(180deg, #c8a86b 0%, #a07d4a 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 2px -2px 10px rgba(0,0,0,0.3);
  animation: pd-bottle-glint 4s ease-in-out infinite;
}
.scn-physician-defense .dust-motes {
  position:absolute; top:10%; left:10%; width:80%; height:70%;
  background: radial-gradient(circle 1px at 20% 30%, rgba(255,240,200,0.4) 0%, transparent 50%),
              radial-gradient(circle 2px at 50% 60%, rgba(255,240,200,0.3) 0%, transparent 50%),
              radial-gradient(circle 1px at 80% 20%, rgba(255,240,200,0.2) 0%, transparent 50%);
  background-size: 100px 100px, 150px 150px, 80px 80px;
  animation: pd-dust-drift 20s linear infinite;
}

@keyframes pd-window-pulse { 0%{ opacity:0.9; box-shadow:0 0 20px rgba(255,200,100,0.2); } 50%{ opacity:1; box-shadow:0 0 40px rgba(255,200,100,0.4); } 100%{ opacity:0.9; box-shadow:0 0 20px rgba(255,200,100,0.2); } }
@keyframes pd-sunbeam-move { 0%{ transform: skewX(-10deg) translateX(0); opacity:0.6; } 50%{ transform: skewX(-5deg) translateX(5%); opacity:0.8; } 100%{ transform: skewX(-12deg) translateX(-2%); opacity:0.5; } }
@keyframes pd-figure-sway { 0%{ transform: rotate(0deg); } 30%{ transform: rotate(1deg) translateX(2%); } 60%{ transform: rotate(-0.5deg) translateX(-1%); } 100%{ transform: rotate(0deg); } }
@keyframes pd-shadow-move { 0%{ transform: scaleX(-1) translateX(10px); opacity:0.5; } 50%{ transform: scaleX(-1) translateX(15px) scaleY(1.05); opacity:0.7; } 100%{ transform: scaleX(-1) translateX(8px); opacity:0.5; } }
@keyframes pd-bottle-glint { 0%{ opacity:1; } 25%{ opacity:0.7; } 50%{ opacity:1; } 75%{ opacity:0.8; } 100%{ opacity:1; } }
@keyframes pd-dust-drift { 0%{ background-position:0 0, 0 0, 0 0; } 100%{ background-position:100px 100px, 150px 150px, 80px 80px; } }

/* better-death-sentence */
.scn-better-death-sentence { background: linear-gradient(180deg, #f0dab0 0%, #e9c68a 30%, #d2a97a 100%), radial-gradient(ellipse at 50% 0%, #ffebc0 0%, transparent 60%); }

.scn-better-death-sentence .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #f7e3b0 0%, #e8c88a 60%, #dbb47a 100%);
  animation: bds-sky-pulse 15s ease-in-out infinite alternate;
}
.scn-better-death-sentence .sun {
  position:absolute; top:5%; left:60%; width:20%; height:20%;
  background: radial-gradient(circle, #fff5d0 0%, #ffd58a 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px rgba(255,200,100,0.4);
  animation: bds-sun-glare 6s ease-in-out infinite alternate;
}
.scn-better-death-sentence .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #b3976a 0%, #7a5e3a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.3);
}
.scn-better-death-sentence .hestersil {
  position:absolute; bottom:25%; left:25%; width:15%; height:45%;
  background: linear-gradient(180deg, #4a3b2a 0%, #1f160d 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: bds-stand 5s ease-in-out infinite alternate;
}
.scn-better-death-sentence .chillingworth {
  position:absolute; bottom:20%; left:55%; width:18%; height:50%;
  background: linear-gradient(135deg, #2a1f12 0%, #0e0a05 100%);
  border-radius: 30% 40% 20% 30% / 50% 60% 30% 40%;
  transform-origin: bottom center;
  animation: bds-lean 6s ease-in-out infinite;
}
.scn-better-death-sentence .shadow-chill {
  position:absolute; bottom:18%; left:50%; width:20%; height:55%;
  background: linear-gradient(135deg, rgba(20,10,0,0.7) 0%, rgba(0,0,0,0.5) 100%);
  border-radius: 30% 40% 20% 30% / 50% 60% 30% 40%;
  transform: scaleX(-1) translateX(15px);
  animation: bds-shadow-lean 6s ease-in-out infinite alternate;
}
.scn-better-death-sentence .stone {
  position:absolute; bottom:27%; left:68%; width:6%; height:4%;
  background: radial-gradient(circle at 30% 30%, #8a7a5e 0%, #5a4e3a 100%);
  border-radius: 50%;
  animation: bds-stone-hover 8s ease-in-out infinite;
}

@keyframes bds-sky-pulse { 0%{ opacity:0.9; } 50%{ opacity:1; } 100%{ opacity:0.8; } }
@keyframes bds-sun-glare { 0%{ transform: scale(0.95); opacity:0.8; } 50%{ transform: scale(1.05); opacity:1; } 100%{ transform: scale(1); opacity:0.9; } }
@keyframes bds-stand { 0%{ transform: translateY(0) rotate(0deg); } 50%{ transform: translateY(-3px) rotate(1deg); } 100%{ transform: translateY(0) rotate(0deg); } }
@keyframes bds-lean { 0%{ transform: rotate(0deg); } 25%{ transform: rotate(2deg) translateX(2%); } 50%{ transform: rotate(-1deg) translateX(-1%); } 75%{ transform: rotate(3deg) translateX(1%); } 100%{ transform: rotate(0deg); } }
@keyframes bds-shadow-lean { 0%{ transform: scaleX(-1) translateX(15px) rotate(0deg); } 50%{ transform: scaleX(-1) translateX(20px) rotate(3deg); } 100%{ transform: scaleX(-1) translateX(15px) rotate(0deg); } }
@keyframes bds-stone-hover { 0%{ transform: translateY(0); opacity:0.6; } 50%{ transform: translateY(-2px); opacity:0.9; } 100%{ transform: translateY(0); opacity:0.6; } }

/* fiend-revelation */
.scn-fiend-revelation { background: linear-gradient(180deg, #1c1a2e 0%, #2c1f3a 40%, #1f1728 100%), radial-gradient(ellipse at 30% 50%, #3a2a4a 0%, transparent 70%); }

.scn-fiend-revelation .dark-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #1e1b30 0%, #140f20 100%);
  animation: fr-bg-shift 20s ease-in-out infinite alternate;
}
.scn-fiend-revelation .eye-socket {
  position:absolute; top:25%; left:40%; width:20%; height:25%;
  background: linear-gradient(180deg, #2e1f3a 0%, #0e0a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8), 0 0 30px rgba(100,60,0,0.3);
  animation: fr-socket-move 6s ease-in-out infinite alternate;
}
.scn-fiend-revelation .eye-iris {
  position:absolute; top:30%; left:45%; width:8%; height:10%;
  background: radial-gradient(circle, #c87a3a 0%, #4a2a0a 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,120,50,0.5), 0 0 60px 20px rgba(200,120,50,0.3);
  animation: fr-iris-pupil 3s ease-in-out infinite alternate;
}
.scn-fiend-revelation .eyebrow {
  position:absolute; top:27%; left:40%; width:22%; height:4%;
  background: linear-gradient(90deg, transparent 10%, #1a1428 30%, #2a1e3a 50%, #1a1428 70%, transparent 90%);
  border-radius: 50%;
  animation: fr-eyebrow-furrow 7s ease-in-out infinite;
}
.scn-fiend-revelation .shadow-loom {
  position:absolute; bottom:0; left:30%; right:10%; height:60%;
  background: linear-gradient(180deg, transparent 0%, rgba(20,10,30,0.7) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: fr-shadow-encroach 10s ease-in-out infinite alternate;
}
.scn-fiend-revelation .tear {
  position:absolute; top:48%; left:48%; width:3%; height:8%;
  background: linear-gradient(180deg, #9ac9d0 0%, #50758a 100%);
  border-radius: 50% 50% 20% 20%;
  animation: fr-tear-drop 4s ease-in-out infinite;
}
.scn-fiend-revelation .light-stripe {
  position:absolute; top:10%; left:20%; width:3%; height:60%;
  background: linear-gradient(180deg, rgba(255,200,100,0.4) 0%, transparent 100%);
  filter: blur(14px);
  transform: rotate(15deg);
  animation: fr-light-sweep 12s linear infinite;
}

@keyframes fr-bg-shift { 0%{ opacity:0.8; } 50%{ opacity:1; } 100%{ opacity:0.7; } }
@keyframes fr-socket-move { 0%{ transform: translate(0,0); } 50%{ transform: translate(-2%,-1%); } 100%{ transform: translate(2%,1%); } }
@keyframes fr-iris-pupil { 0%{ transform: scale(1) translate(0,0); box-shadow:0 0 30px 10px rgba(200,120,50,0.5); } 50%{ transform: scale(1.2) translate(3%,2%); box-shadow:0 0 50px 15px rgba(200,120,50,0.7); } 100%{ transform: scale(0.9) translate(-2%,-1%); box-shadow:0 0 20px 5px rgba(200,120,50,0.4); } }
@keyframes fr-eyebrow-furrow { 0%{ transform: translateY(0) rotate(0deg); } 25%{ transform: translateY(-2px) rotate(-5deg); } 50%{ transform: translateY(1px) rotate(3deg); } 75%{ transform: translateY(-1px) rotate(-2deg); } 100%{ transform: translateY(0) rotate(0deg); } }
@keyframes fr-shadow-encroach { 0%{ opacity:0.6; } 50%{ opacity:0.9; } 100%{ opacity:0.5; } }
@keyframes fr-tear-drop { 0%{ transform: translateY(0); opacity:0.8; } 50%{ transform: translateY(10px); opacity:0.5; } 100%{ transform: translateY(20px); opacity:0; } }
@keyframes fr-light-sweep { 0%{ transform: rotate(15deg) translateX(-30px); opacity:0.3; } 50%{ transform: rotate(15deg) translateX(10px); opacity:0.6; } 100%{ transform: rotate(15deg) translateX(50px); opacity:0.2; } }

/* constant-shadow-presence */
.scn-constant-shadow-presence { background: linear-gradient(90deg, #d9bfa0 0%, #c3a582 40%, #ac8e6a 100%), radial-gradient(ellipse at 70% 30%, #e6cba8 0%, transparent 60%); }

.scn-constant-shadow-presence .sunlit-wall {
  position:absolute; inset:0 0 0 0;
  background: linear-gradient(135deg, #e0c8a8 0%, #cbae8a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.2);
  animation: csp-wall-glow 10s ease-in-out infinite alternate;
}
.scn-constant-shadow-presence .dark-figure {
  position:absolute; bottom:0; left:35%; width:30%; height:80%;
  background: linear-gradient(135deg, #1a1410 0%, #0a0705 100%);
  border-radius: 30% 20% 10% 10% / 50% 40% 20% 20%;
  box-shadow: -20px 0 40px rgba(0,0,0,0.6);
  animation: csp-figure-breathe 7s ease-in-out infinite;
}
.scn-constant-shadow-presence .shadow-shape {
  position:absolute; bottom:5%; left:30%; width:40%; height:75%;
  background: linear-gradient(135deg, rgba(10,8,5,0.7) 0%, rgba(0,0,0,0.4) 100%);
  border-radius: 30% 20% 10% 10% / 50% 40% 20% 20%;
  filter: blur(8px);
  animation: csp-shadow-creep 8s ease-in-out infinite alternate;
}
.scn-constant-shadow-presence .hand-reaching {
  position:absolute; bottom:30%; left:60%; width:12%; height:18%;
  background: linear-gradient(180deg, #1f1812 0%, #0e0a07 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-20deg);
  animation: csp-hand-reach 4s ease-in-out infinite;
}
.scn-constant-shadow-presence .elbow-glow {
  position:absolute; bottom:50%; left:55%; width:6%; height:6%;
  background: radial-gradient(circle, #ffd280 0%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.3);
  animation: csp-elbow-pulse 6s ease-in-out infinite alternate;
}
.scn-constant-shadow-presence .floor-line {
  position:absolute; bottom:0; left:10%; right:10%; height:2%;
  background: linear-gradient(90deg, transparent, #6a5a4a 20%, #8a7a5e 50%, #6a5a4a 80%, transparent);
  box-shadow: 0 -2px 4px rgba(0,0,0,0.3);
}
.scn-constant-shadow-presence .dust-particles {
  position:absolute; top:10%; left:10%; width:80%; height:80%;
  background: radial-gradient(circle 1px at 30% 40%, rgba(255,230,180,0.3) 0%, transparent 50%),
              radial-gradient(circle 2px at 60% 20%, rgba(255,230,180,0.2) 0%, transparent 50%),
              radial-gradient(circle 1px at 80% 70%, rgba(255,230,180,0.15) 0%, transparent 50%);
  background-size: 120px 120px, 200px 200px, 90px 90px;
  animation: csp-dust-drift 25s linear infinite;
}

@keyframes csp-wall-glow { 0%{ opacity:0.9; } 50%{ opacity:1; } 100%{ opacity:0.8; } }
@keyframes csp-figure-breathe { 0%{ transform: scaleY(1) translateY(0); } 50%{ transform: scaleY(1.02) translateY(-2px); } 100%{ transform: scaleY(1) translateY(0); } }
@keyframes csp-shadow-creep { 0%{ transform: translateX(0) scale(1); opacity:0.6; } 50%{ transform: translateX(5px) scale(1.03); opacity:0.8; } 100%{ transform: translateX(-3px) scale(0.98); opacity:0.5; } }
@keyframes csp-hand-reach { 0%{ transform: rotate(-20deg) translate(0,0); } 25%{ transform: rotate(-15deg) translate(5%,-2%); } 50%{ transform: rotate(-25deg) translate(-2%,3%); } 75%{ transform: rotate(-18deg) translate(3%,-1%); } 100%{ transform: rotate(-20deg) translate(0,0); } }
@keyframes csp-elbow-pulse { 0%{ opacity:0.4; transform: scale(0.9); } 50%{ opacity:0.8; transform: scale(1.1); } 100%{ opacity:0.5; transform: scale(1); } }
@keyframes csp-dust-drift { 0%{ background-position:0 0, 0 0, 0 0; } 100%{ background-position:120px 120px, 200px 200px, 90px 90px; } }

.scn-wildest-feature-sailors { background: linear-gradient(180deg, #8b9daa 0%, #6b7f8a 35%, #4a5c66 70%), radial-gradient(ellipse at 80% 30%, #9aacb8 0%, transparent 60%); overflow:hidden; }
.scn-wildest-feature-sailors .sky-overcast { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #9aaec0 0%, #7a8e9e 60%, #5d707e 100%); animation: wfs-sky 14s ease-in-out infinite alternate; }
.scn-wildest-feature-sailors .sea-flat { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4f6878 0%, #3a4f5c 50%, #2a3b44 100%); border-top: 2px solid #6a8090; animation: wfs-sea 10s ease-in-out infinite alternate; }
.scn-wildest-feature-sailors .ship-hull { position:absolute; bottom:45%; left:52%; width:160px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2d1f14 100%); border-radius: 30% 30% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-wildest-feature-sailors .ship-mast { position:absolute; bottom:55%; left:57%; width:5px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #221810 100%); border-radius: 4px 4px 0 0; transform: rotate(-2deg); animation: wfs-mast 6s ease-in-out infinite alternate; }
.scn-wildest-feature-sailors .sail-billow { position:absolute; bottom:62%; left:55%; width:50px; height:55px; background: radial-gradient(ellipse at 40% 30%, #d4dce4 0%, #a4b4c0 70%); border-radius: 50%; transform: rotate(10deg); box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: wfs-billow 8s ease-in-out infinite alternate; }
.scn-wildest-feature-sailors .sail-slack { position:absolute; bottom:60%; left:60%; width:35px; height:45px; background: radial-gradient(ellipse at 50% 50%, #bcc8d4 0%, #8a9caa 70%); border-radius: 40% 50% 30% 40%; transform: rotate(-5deg); animation: wfs-slack 10s ease-in-out infinite alternate; }
.scn-wildest-feature-sailors .mariner-cluster { position:absolute; bottom:38%; left:30%; width:50px; height:55px; background: radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, #1a1008 80%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: wfs-cluster 7s ease-in-out infinite; }
.scn-wildest-feature-sailors .mariner-lead { position:absolute; bottom:36%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(8deg); animation: wfs-lead 5s ease-in-out infinite alternate; }
.scn-wildest-feature-sailors .beach-stripe { position:absolute; bottom:47%; left:10%; width:80%; height:4px; background: linear-gradient(90deg, #6a7a84 0%, #8a9aa4 30%, #6a7a84 70%, #5a6a74 100%); border-radius: 2px; opacity:.5; animation: wfs-stripe 20s linear infinite; }
@keyframes wfs-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes wfs-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes wfs-mast { 0% { transform: rotate(-3deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-2deg) } }
@keyframes wfs-billow { 0% { transform: rotate(8deg) scaleX(1) } 50% { transform: rotate(12deg) scaleX(1.05) } 100% { transform: rotate(10deg) scaleX(.98) } }
@keyframes wfs-slack { 0% { transform: rotate(-6deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(.95) } 100% { transform: rotate(-5deg) scaleY(1.02) } }
@keyframes wfs-cluster { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes wfs-lead { 0% { transform: rotate(6deg) translateX(0) } 50% { transform: rotate(10deg) translateX(2px) } 100% { transform: rotate(8deg) translateX(0) } }
@keyframes wfs-stripe { 0% { transform: translateX(-10%) } 100% { transform: translateX(10%) } }

.scn-sailors-license { background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 40%, #2a1a0a 80%), radial-gradient(ellipse at 30% 60%, #6a5a4a 0%, transparent 70%); overflow:hidden; }
.scn-sailors-license .wall-plank { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%); border-bottom: 4px solid #1a1008; }
.scn-sailors-license .table-board { position:absolute; bottom:38%; left:15%; right:15%; height:12px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sl-table 9s ease-in-out infinite alternate; }
.scn-sailors-license .tankard { position:absolute; bottom:42%; left:30%; width:22px; height:28px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 6px 6px 8px 8px; box-shadow: 0 3px 6px rgba(0,0,0,.4); transform-origin: bottom center; animation: sl-tankard 6s ease-in-out infinite; }
.scn-sailors-license .bottle-dark { position:absolute; bottom:43%; left:52%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 6px 6px 4px 4px; box-shadow: 0 3px 8px rgba(0,0,0,.6); transform: rotate(8deg); animation: sl-bottle 8s ease-in-out infinite alternate; }
.scn-sailors-license .smoke-wisp-a { position:absolute; bottom:52%; left:38%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(200,190,180,.4) 0%, rgba(200,190,180,.05) 70%); border-radius: 50%; filter: blur(4px); animation: sl-smoke-a 12s ease-in-out infinite; }
.scn-sailors-license .smoke-wisp-b { position:absolute; bottom:54%; left:42%; width:16px; height:24px; background: radial-gradient(ellipse at 50% 40%, rgba(200,190,180,.3) 0%, rgba(200,190,180,.03) 65%); border-radius: 50%; filter: blur(3px); animation: sl-smoke-b 15s ease-in-out infinite reverse; }
.scn-sailors-license .mariner-hand { position:absolute; bottom:40%; left:28%; width:16px; height:18px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-10deg); animation: sl-hand 7s ease-in-out infinite alternate; }
.scn-sailors-license .pipe-bowl { position:absolute; bottom:48%; left:38%; width:10px; height:12px; background: radial-gradient(circle, #6a4a2a 0%, #3a2a1a 80%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sl-pipe-bowl 4s ease-in-out infinite alternate; }
.scn-sailors-license .pipe-stem { position:absolute; bottom:49%; left:40%; width:20px; height:3px; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(15deg); transform-origin: left center; animation: sl-pipe-stem 4s ease-in-out infinite alternate; }
@keyframes sl-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes sl-tankard { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-3deg) } }
@keyframes sl-bottle { 0% { transform: rotate(6deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(6deg) } }
@keyframes sl-smoke-a { 0% { transform: translateY(0) scale(1); opacity:.4 } 50% { transform: translateY(-6px) scale(1.3); opacity:.2 } 100% { transform: translateY(0) scale(1); opacity:.4 } }
@keyframes sl-smoke-b { 0% { transform: translateY(0) scale(.8); opacity:.3 } 50% { transform: translateY(-4px) scale(1.1); opacity:.15 } 100% { transform: translateY(0) scale(.8); opacity:.3 } }
@keyframes sl-hand { 0% { transform: rotate(-12deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(3px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes sl-pipe-bowl { 0% { box-shadow: 0 2px 4px rgba(0,0,0,.3); opacity:.9 } 50% { box-shadow: 0 2px 12px rgba(180,120,60,.5); opacity:1 } 100% { box-shadow: 0 2px 4px rgba(0,0,0,.3); opacity:.9 } }
@keyframes sl-pipe-stem { 0% { transform: rotate(13deg) } 50% { transform: rotate(17deg) } 100% { transform: rotate(13deg) } }

.scn-depredations-on-spanish { background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 40%, #2a4a5a 80%), radial-gradient(ellipse at 40% 20%, #6a9aaa 0%, transparent 60%); overflow:hidden; }
.scn-depredations-on-spanish .sea-deep { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a4a5a 0%, #1a3a4a 50%, #0a2a3a 100%); border-top: 3px solid #4a6a7a; animation: dos-sea 12s ease-in-out infinite alternate; }
.scn-depredations-on-spanish .sea-swell { position:absolute; bottom:50%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(42,74,90,.6) 0%, transparent 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; animation: dos-swell 8s ease-in-out infinite alternate; }
.scn-depredations-on-spanish .galleon-hull { position:absolute; bottom:48%; left:55%; width:140px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 50% 50% / 40% 40% 50% 50%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: dos-hull 10s ease-in-out infinite alternate; }
.scn-depredations-on-spanish .galleon-flag { position:absolute; bottom:60%; left:50%; width:20px; height:14px; background: linear-gradient(180deg, #8a3030 0%, #5a1a1a 100%); border-radius: 0 60% 60% 0; transform: rotate(-5deg); animation: dos-flag 6s ease-in-out infinite alternate; }
.scn-depredations-on-spanish .spray-burst { position:absolute; bottom:52%; left:58%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(180,200,210,.5) 0%, rgba(180,200,210,.1) 80%); border-radius: 50%; filter: blur(3px); animation: dos-spray 4s ease-in-out infinite; }
.scn-depredations-on-spanish .merchant-ship { position:absolute; bottom:46%; left:25%; width:90px; height:28px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 20% 20% 40% 40%; opacity:.6; transform: scale(.85); animation: dos-merchant 14s ease-in-out infinite alternate; }
.scn-depredations-on-spanish .wake-froth { position:absolute; bottom:49%; left:45%; width:80px; height:8px; background: linear-gradient(90deg, rgba(160,180,190,.5) 0%, rgba(160,180,190,.2) 60%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: dos-wake 6s ease-in-out infinite alternate; }
.scn-depredations-on-spanish .cloud-bank { position:absolute; top:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a9a 0%, #4a6a7a 50%, #3a5a6a 100%); border-radius: 0 0 40% 60% / 0 0 20% 30%; opacity:.6; animation: dos-cloud 20s ease-in-out infinite alternate; }
.scn-depredations-on-spanish .sun-dull { position:absolute; top:15%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #c0c8c0 0%, #8a9a90 60%, transparent 100%); border-radius: 50%; opacity:.4; animation: dos-sun 18s ease-in-out infinite alternate; }
@keyframes dos-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes dos-swell { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(.95) } }
@keyframes dos-hull { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(1deg) } }
@keyframes dos-flag { 0% { transform: rotate(-6deg) scaleX(1) } 50% { transform: rotate(0deg) scaleX(1.1) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes dos-spray { 0% { opacity:.4; transform: translateY(0) } 50% { opacity:.8; transform: translateY(-3px) } 100% { opacity:.4; transform: translateY(0) } }
@keyframes dos-merchant { 0% { transform: translateX(0) scale(.85) } 50% { transform: translateX(-5px) scale(.85) } 100% { transform: translateX(0) scale(.85) } }
@keyframes dos-wake { 0% { width:60px; opacity:.4 } 50% { width:90px; opacity:.7 } 100% { width:70px; opacity:.5 } }
@keyframes dos-cloud { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes dos-sun { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.05) } 100% { opacity:.35; transform: scale(.98) } }

.scn-puritans-smile-on-sailors { background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 40%, #2a3a2a 80%), radial-gradient(ellipse at 50% 30%, #7a8a7a 0%, transparent 60%); overflow:hidden; }
.scn-puritans-smile-on-sailors .ground-dirt { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 60%, #1a2a0a 100%); border-top: 2px solid #5a6a4a; animation: pss-ground 12s ease-in-out infinite alternate; }
.scn-puritans-smile-on-sailors .puritan-row-a { position:absolute; bottom:40%; left:5%; width:90px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: pss-row-a 10s ease-in-out infinite alternate; }
.scn-puritans-smile-on-sailors .puritan-row-b { position:absolute; bottom:38%; left:15%; width:70px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; opacity:.8; transform: scale(.9); animation: pss-row-b 12s ease-in-out infinite alternate; }
.scn-puritans-smile-on-sailors .steeple-hat-1 { position:absolute; bottom:58%; left:8%; width:16px; height:20px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 0 0 4px 4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: pss-hat-1 7s ease-in-out infinite alternate; }
.scn-puritans-smile-on-sailors .steeple-hat-2 { position:absolute; bottom:56%; left:16%; width:14px; height:18px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 0 0 4px 4px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: pss-hat-2 9s ease-in-out infinite alternate; }
.scn-puritans-smile-on-sailors .sailor-group { position:absolute; bottom:36%; right:10%; width:100px; height:65px; background: radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, #2a1a0a 80%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: pss-sailors 8s ease-in-out infinite; }
.scn-puritans-smile-on-sailors .sailor-cap { position:absolute; bottom:55%; right:16%; width:18px; height:14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(8deg); animation: pss-cap 6s ease-in-out infinite alternate; }
.scn-puritans-smile-on-sailors .cloak-fold { position:absolute; bottom:40%; left:10%; width:20px; height:40px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform: rotate(-3deg); opacity:.7; animation: pss-fold 11s ease-in-out infinite alternate; }
.scn-puritans-smile-on-sailors .shadow-pool { position:absolute; bottom:38%; left:20%; width:120px; height:10px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 70%); border-radius: 50%; animation: pss-shadow 14s ease-in-out infinite alternate; }
@keyframes pss-ground { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pss-row-a { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes pss-row-b { 0% { transform: translateX(0) scale(.9) } 50% { transform: translateX(3px) scale(.9) } 100% { transform: translateX(0) scale(.9) } }
@keyframes pss-hat-1 { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes pss-hat-2 { 0% { transform: rotate(-6deg) } 50% { transform: rotate(0) } 100% { transform: rotate(-5deg) } }
@keyframes pss-sailors { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-4px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes pss-cap { 0% { transform: rotate(6deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(8deg) } }
@keyframes pss-fold { 0% { transform: rotate(-4deg) scaleY(1) } 50% { transform: rotate(-2deg) scaleY(1.05) } 100% { transform: rotate(-3deg) scaleY(1) } }
@keyframes pss-shadow { 0% { width:110px; opacity:.3 } 50% { width:130px; opacity:.5 } 100% { width:115px; opacity:.35 } }

/* mistress-hibbins-invites (dark, sunlit) */
.scn-mistress-hibbins-invites {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f5dbb6 40%, #9e7e5e 75%, #3a2a1a 100%),
    radial-gradient(ellipse at 40% 30%, #fff7e6 0%, transparent 60%);
}
.scn-mistress-hibbins-invites .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #a8d8ea 0%, #fce4ba 100%);
  animation: mh-sky 14s ease-in-out infinite alternate;
}
.scn-mistress-hibbins-invites .forest-edge {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2d5a27 0%, #1a3a15 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 4px 20px rgba(0,0,0,.3);
  animation: mh-forest 20s ease-in-out infinite alternate;
}
.scn-mistress-hibbins-invites .house {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 6% 6% 3% 3%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: mh-house 12s ease-in-out infinite;
}
.scn-mistress-hibbins-invites .window-light {
  position: absolute; bottom: 38%; left: 40%; width: 24px; height: 28px;
  background: radial-gradient(circle, #ffe080 0%, #c08040 70%);
  border-radius: 20%;
  box-shadow: 0 0 30px 8px #ffd060, 0 0 60px 16px rgba(255,208,96,.4);
  animation: mh-glow 3s ease-in-out infinite alternate;
}
.scn-mistress-hibbins-invites .mistress-figure {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mh-figure 5s ease-in-out infinite;
}
.scn-mistress-hibbins-invites .shadow-veil {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 55% 60%, rgba(0,0,0,0) 30%, rgba(10,5,0,0.3) 70%);
  pointer-events: none;
  animation: mh-veil 8s ease-in-out infinite alternate;
}
.scn-mistress-hibbins-invites .branch-1 {
  position: absolute; top: 12%; left: 15%; width: 140px; height: 8px;
  background: linear-gradient(90deg, #3a2a1a 0%, transparent 100%);
  transform: rotate(-20deg);
  border-radius: 50%;
  filter: blur(1px);
  animation: mh-branch-a 25s linear infinite;
}
.scn-mistress-hibbins-invites .branch-2 {
  position: absolute; top: 20%; right: 20%; width: 100px; height: 6px;
  background: linear-gradient(270deg, #3a2a1a 0%, transparent 100%);
  transform: rotate(15deg);
  border-radius: 50%;
  filter: blur(1px);
  animation: mh-branch-b 30s linear infinite reverse;
}
.scn-mistress-hibbins-invites .dust-motes {
  position: absolute; inset: 0;
  background-image: radial-gradient(2px 2px at 20% 30%, rgba(255,240,200,0.6) 0%, transparent 100%),
                    radial-gradient(1px 1px at 60% 20%, rgba(255,240,200,0.4) 0%, transparent 100%),
                    radial-gradient(3px 3px at 80% 50%, rgba(255,240,200,0.5) 0%, transparent 100%);
  background-size: 200px 200px;
  background-repeat: no-repeat;
  pointer-events: none;
  animation: mh-dust 20s ease-in-out infinite alternate;
}
@keyframes mh-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes mh-forest { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes mh-house { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes mh-glow { 0% { box-shadow: 0 0 20px 6px #c08040; opacity: 0.85 } 50% { box-shadow: 0 0 40px 14px #ffd060; opacity: 1 } 100% { box-shadow: 0 0 25px 8px #c08040; opacity: 0.9 } }
@keyframes mh-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-1deg) } 75% { transform: translateX(24px) rotate(1deg) } 100% { transform: translateX(32px) rotate(0) } }
@keyframes mh-veil { 0% { opacity: 0.2 } 50% { opacity: 0.4 } 100% { opacity: 0.25 } }
@keyframes mh-branch-a { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-18deg) translateX(10px) } 100% { transform: rotate(-22deg) translateX(0) } }
@keyframes mh-branch-b { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(17deg) translateX(-8px) } 100% { transform: rotate(13deg) translateX(0) } }
@keyframes mh-dust { 0% { background-position: 0 0, 50px 30px, 100px 60px } 50% { background-position: 20px 10px, 70px 20px, 120px 40px } 100% { background-position: 0 0, 50px 30px, 100px 60px } }

/* pearl-saves-mother (warm, sunlit) */
.scn-pearl-saves-mother {
  background:
    linear-gradient(180deg, #ffe4b5 0%, #ffd494 40%, #ffc374 75%, #brown 100%),
    radial-gradient(ellipse at 50% 30%, #fffacd 0%, transparent 60%);
}
.scn-pearl-saves-mother .sun-burst {
  position: absolute; top: 5%; left: 50%; width: 160px; height: 160px;
  background: radial-gradient(circle, #fff9e6 0%, #ffcc80 40%, transparent 70%);
  transform: translateX(-50%);
  clip-path: polygon(50% 0%, 60% 30%, 90% 10%, 70% 40%, 100% 50%, 70% 60%, 90% 90%, 60% 70%, 50% 100%, 40% 70%, 10% 90%, 30% 60%, 0% 50%, 30% 40%, 10% 10%, 40% 30%);
  animation: ps-sun 30s linear infinite;
  pointer-events: none;
}
.scn-pearl-saves-mother .sky-glow {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fff2cc 0%, #ffe599 100%);
  animation: ps-sky 20s ease-in-out infinite alternate;
}
.scn-pearl-saves-mother .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7ec850 0%, #4a9030 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.15);
  animation: ps-meadow 12s ease-in-out infinite alternate;
}
.scn-pearl-saves-mother .mother-figure {
  position: absolute; bottom: 25%; left: 38%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-mother 6s ease-in-out infinite;
}
.scn-pearl-saves-mother .pearl-figure {
  position: absolute; bottom: 20%; left: 46%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-pearl 4s ease-in-out infinite;
}
.scn-pearl-saves-mother .embrace-glow {
  position: absolute; bottom: 22%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,235,180,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: ps-embrace 5s ease-in-out infinite alternate;
}
.scn-pearl-saves-mother .grass-front {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #5a8a30 0%, #3a6a18 100%);
  clip-path: polygon(0% 0%, 5% 100%, 10% 20%, 15% 80%, 20% 30%, 25% 90%, 30% 10%, 35% 70%, 40% 20%, 45% 85%, 50% 15%, 55% 75%, 60% 25%, 65% 95%, 70% 5%, 75% 60%, 80% 30%, 85% 100%, 90% 10%, 95% 50%, 100% 0%);
  animation: ps-grass-f 2s ease-in-out infinite alternate;
}
.scn-pearl-saves-mother .grass-back {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #6a9a40 0%, #4a7a28 100%);
  clip-path: polygon(0% 100%, 8% 40%, 16% 70%, 24% 30%, 32% 80%, 40% 20%, 48% 60%, 56% 10%, 64% 50%, 72% 80%, 80% 30%, 88% 70%, 96% 40%, 100% 100%);
  animation: ps-grass-b 3s ease-in-out infinite alternate-reverse;
}
.scn-pearl-saves-mother .butterfly {
  position: absolute; top: 30%; left: 60%; width: 14px; height: 10px;
  background: linear-gradient(45deg, #e060a0 0%, #c04080 100%);
  border-radius: 50% 0 50% 0;
  box-shadow: -8px 0 0 0 #c04080;
  animation: ps-butterfly 4s ease-in-out infinite;
}
@keyframes ps-sun { 0% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes ps-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ps-meadow { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes ps-mother { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-6px) rotate(2deg) } 50% { transform: translateX(-12px) rotate(-1deg) } 75% { transform: translateX(-6px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ps-pearl { 0% { transform: translateX(0) translateY(0) scale(1) } 25% { transform: translateX(-4px) translateY(-2px) scale(1.05) } 50% { transform: translateX(0) translateY(-1px) scale(1) } 75% { transform: translateX(4px) translateY(-2px) scale(1.05) } 100% { transform: translateX(0) translateY(0) scale(1) } }
@keyframes ps-embrace { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.7; transform: scale(1.2) } 100% { opacity: 0.4; transform: scale(1) } }
@keyframes ps-grass-f { 0% { transform: skewX(0deg) } 50% { transform: skewX(2deg) } 100% { transform: skewX(0deg) } }
@keyframes ps-grass-b { 0% { transform: skewX(0deg) } 50% { transform: skewX(-3deg) } 100% { transform: skewX(0deg) } }
@keyframes ps-butterfly { 0% { transform: translate(0, 0) rotate(0deg) } 25% { transform: translate(20px, -15px) rotate(10deg) } 50% { transform: translate(40px, -5px) rotate(-5deg) } 75% { transform: translate(20px, -20px) rotate(5deg) } 100% { transform: translate(0, 0) rotate(0deg) } }

/* chillingworth-hidden-name (dark, dim-interior) */
.scn-chillingworth-hidden-name {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 60%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 40%, #4a3a3a 0%, transparent 70%);
}
.scn-chillingworth-hidden-name .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a2a3e 0%, #3a3a4e 30%, #2a2a3e 100%);
  animation: ch-wall 10s ease-in-out infinite alternate;
}
.scn-chillingworth-hidden-name .desk {
  position: absolute; bottom: 15%; left: 25%; right: 25%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  animation: ch-desk 14s ease-in-out infinite;
}
.scn-chillingworth-hidden-name .book-open {
  position: absolute; bottom: 30%; left: 32%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #d4c0a0 0%, #b8a080 50%, #a08868 100%);
  border-radius: 4% 4% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  transform: perspective(400px) rotateY(-15deg);
  animation: ch-book 20s ease-in-out infinite alternate;
}
.scn-chillingworth-hidden-name .candle {
  position: absolute; bottom: 38%; left: 28%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d4a060 40%, #8a6020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 6px #ffb040;
  animation: ch-candle 3s ease-in-out infinite alternate;
}
.scn-chillingworth-hidden-name .chillingworth-figure {
  position: absolute; bottom: 10%; right: 20%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ch-figure 9s ease-in-out infinite;
}
.scn-chillingworth-hidden-name .hand-shadow {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  transform: rotate(-20deg);
  animation: ch-hand 5s ease-in-out infinite alternate;
}
.scn-chillingworth-hidden-name .paper-scroll {
  position: absolute; bottom: 32%; left: 38%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #c8b090 0%, #e0c8a8 50%, #c8b090 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  animation: ch-scroll 18s ease-in-out infinite;
}
.scn-chillingworth-hidden-name .inkwell {
  position: absolute; bottom: 36%; left: 35%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ch-inkwell 22s ease-in-out infinite alternate;
}
@keyframes ch-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ch-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ch-book { 0% { transform: perspective(400px) rotateY(-15deg) } 50% { transform: perspective(400px) rotateY(-13deg) } 100% { transform: perspective(400px) rotateY(-15deg) } }
@keyframes ch-candle { 0% { opacity: 0.8; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.1) } 100% { opacity: 0.8; transform: scaleY(1) } }
@keyframes ch-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateY(-8px) rotate(-1deg) } 75% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ch-hand { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-18deg) translateX(3px) } 100% { transform: rotate(-22deg) translateX(0) } }
@keyframes ch-scroll { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes ch-inkwell { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }

/* chillingworth-decides-to-hide (dark, dim-interior) */
.scn-chillingworth-decides-to-hide {
  background:
    linear-gradient(180deg, #0a0a14 0%, #14141e 40%, #1e1a1a 70%, #0a0a0a 100%),
    radial-gradient(ellipse at 70% 40%, #2a2a3a 0%, transparent 70%);
}
.scn-chillingworth-decides-to-hide .dark-corner {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a0a 20%, transparent 50%, #0a0a0a 80%);
  animation: cd-corner 15s ease-in-out infinite alternate;
}
.scn-chillingworth-decides-to-hide .window-slit {
  position: absolute; top: 10%; left: 75%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  box-shadow: 0 0 12px 2px rgba(74,74,106,0.3);
  border-radius: 10%;
  animation: cd-window 8s ease-in-out infinite alternate;
}
.scn-chillingworth-decides-to-hide .figure-silhouette {
  position: absolute; bottom: 10%; left: 35%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-figure 7s ease-in-out infinite;
}
.scn-chillingworth-decides-to-hide .cloak-fold {
  position: absolute; bottom: 5%; left: 45%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%;
  transform: rotate(-10deg);
  animation: cd-cloak 6s ease-in-out infinite alternate;
}
.scn-chillingworth-decides-to-hide .locked-box {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: cd-box 12s ease-in-out infinite;
}
.scn-chillingworth-decides-to-hide .keyhole-glow {
  position: absolute; bottom: 28%; left: 26%; width: 6px; height: 10px;
  background: radial-gradient(ellipse, #ffd060 0%, transparent 100%);
  border-radius: 40%;
  box-shadow: 0 0 16px 4px rgba(255,208,96,0.3);
  animation: cd-keyglow 4s ease-in-out infinite alternate;
}
.scn-chillingworth-decides-to-hide .shadow-web {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 50%, rgba(0,0,0,0) 30%, rgba(0,0,0,0.4) 80%);
  pointer-events: none;
  animation: cd-web 18s ease-in-out infinite alternate;
}
@keyframes cd-corner { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cd-window { 0% { opacity: 0.2; transform: scaleY(1) } 50% { opacity: 0.5; transform: scaleY(1.1) } 100% { opacity: 0.3; transform: scaleY(1) } }
@keyframes cd-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-6px) rotate(2deg) } 50% { transform: translateY(-12px) rotate(-2deg) } 75% { transform: translateY(-6px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cd-cloak { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(4px) } 100% { transform: rotate(-12deg) translateX(0) } }
@keyframes cd-box { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cd-keyglow { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.3) } 100% { opacity: 0.4; transform: scale(1) } }
@keyframes cd-web { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

/* hester-nature-knows */
.scn-hester-nature-knows {
  background: linear-gradient(180deg, #c8d8e0 0%, #a8b8c0 40%, #4a6a5a 70%, #2a3a2a 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 70%);
}
.scn-hester-nature-knows .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #e0f0f8 0%, #b0c8d0 100%);
  animation: hnk-sky 20s ease-in-out infinite alternate;
}
.scn-hester-nature-knows .trees-back {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 50%, #1a3a1a 100%);
  border-radius: 60% 40% 0 0 / 50% 50% 0 0;
  filter: blur(2px);
  animation: hnk-trees 30s ease-in-out infinite alternate;
}
.scn-hester-nature-knows .trees-front {
  position: absolute; bottom: 20%; left: -10%; right: -10%; height: 50%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  clip-path: polygon(0% 100%, 5% 60%, 15% 80%, 25% 40%, 35% 70%, 45% 30%, 55% 60%, 65% 20%, 75% 50%, 85% 35%, 95% 55%, 100% 100%);
  animation: hnk-trees 25s ease-in-out infinite alternate;
}
.scn-hester-nature-knows .sunbeam {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,248,224,0.5) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: hnk-beam 8s ease-in-out infinite alternate;
}
.scn-hester-nature-knows .leaves {
  position: absolute; top: 30%; left: 0; right: 0; height: 10%;
  background: transparent;
  box-shadow: 80px 20px 0 #7a9a5a, 160px 40px 0 #5a7a3a, 240px 10px 0 #9aba6a, 340px 30px 0 #6a8a4a;
  border-radius: 50%;
  filter: blur(6px);
  animation: hnk-leaves 12s ease-in-out infinite alternate;
}
.scn-hester-nature-knows .figure {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hnk-figure 6s ease-in-out infinite;
}
.scn-hester-nature-knows .letter-glow {
  position: absolute; bottom: 50%; left: 43%; width: 12px; height: 16px;
  background: #c07030;
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 6px rgba(192,112,48,0.7), 0 0 40px 12px rgba(192,112,48,0.3);
  animation: hnk-glow 4s ease-in-out infinite alternate;
}
.scn-hester-nature-knows .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 50%, #1a2a0a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
}
@keyframes hnk-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hnk-trees { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(1.02); } 100% { transform: translateX(5px) scale(0.98); } }
@keyframes hnk-beam { 0% { opacity: 0.4; transform: scale(1) rotate(0deg); } 50% { opacity: 0.7; transform: scale(1.1) rotate(2deg); } 100% { opacity: 0.5; transform: scale(1) rotate(-1deg); } }
@keyframes hnk-leaves { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(30px) rotate(10deg); } 100% { transform: translateX(-20px) rotate(-5deg); } }
@keyframes hnk-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(2deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0deg); } }
@keyframes hnk-glow { 0% { opacity: 0.7; box-shadow: 0 0 15px 4px #c07030; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #e09050, 0 0 60px 15px rgba(224,144,80,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 20px 6px #c07030; } }

/* hester-stranger-gaze */
.scn-hester-stranger-gaze {
  background: linear-gradient(180deg, #e0e8e0 0%, #c0c8b0 30%, #8a8a7a 60%, #4a4a3a 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 50%);
}
.scn-hester-stranger-gaze .bg-street {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(200,180,140,0.3) 50%, rgba(120,100,70,0.5) 100%);
}
.scn-hester-stranger-gaze .buildings {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 45%;
  background: linear-gradient(90deg, #7a7a6a 0%, #8a8a7a 20%, #6a6a5a 40%, #9a9a8a 60%, #5a5a4a 80%, #8a8a7a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: hsg-build 30s ease-in-out infinite alternate;
}
.scn-hester-stranger-gaze .crowd-left {
  position: absolute; bottom: 20%; left: 5%; width: 25%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: hsg-crowd 12s ease-in-out infinite;
}
.scn-hester-stranger-gaze .crowd-right {
  position: absolute; bottom: 20%; right: 5%; width: 25%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: hsg-crowd 12s ease-in-out infinite reverse;
}
.scn-hester-stranger-gaze .hester {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  margin-left: -14px;
  animation: hsg-hester 6s ease-in-out infinite;
}
.scn-hester-stranger-gaze .scarlet-letter {
  position: absolute; bottom: 45%; left: 50%; width: 14px; height: 18px;
  background: #a0461a;
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 25px 8px rgba(160,70,26,0.8), 0 0 50px 16px rgba(160,70,26,0.4);
  margin-left: -7px;
  animation: hsg-letter 3s ease-in-out infinite alternate;
}
.scn-hester-stranger-gaze .gaze-rays {
  position: absolute; top: 10%; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 45% 20%, rgba(255,200,100,0.15) 0%, transparent 60%);
  animation: hsg-rays 8s ease-in-out infinite alternate;
}
@keyframes hsg-build { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes hsg-crowd { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.1); } 100% { transform: translateX(-10px) scale(0.95); } }
@keyframes hsg-hester { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hsg-letter { 0% { opacity: 0.8; box-shadow: 0 0 15px 4px #a0461a; } 50% { opacity: 1; box-shadow: 0 0 30px 12px #c86030, 0 0 60px 20px rgba(200,96,48,0.4); } 100% { opacity: 0.9; box-shadow: 0 0 20px 6px #a0461a; } }
@keyframes hsg-rays { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* hester-daily-agony */
.scn-hester-daily-agony {
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #2a2a2a 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a3a 0%, transparent 70%);
}
.scn-hester-daily-agony .interior-wall {
  position: absolute; inset: 0 20% 0 20%;
  background: linear-gradient(90deg, #3a3a3a 0%, #4a4a4a 50%, #3a3a3a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-hester-daily-agony .window {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #e0e8e0 0%, #b0b8b0 100%);
  border: 6px solid #2a2a2a;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: hda-window 10s ease-in-out infinite alternate;
}
.scn-hester-daily-agony .window-light {
  position: absolute; top: 18%; left: 38%; width: 24%; height: 35%;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: hda-light 6s ease-in-out infinite alternate;
}
.scn-hester-daily-agony .hand {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-20deg);
  animation: hda-hand 4s ease-in-out infinite alternate;
}
.scn-hester-daily-agony .letter-a {
  position: absolute; bottom: 40%; left: 46%; width: 16px; height: 22px;
  background: #8a3a1a;
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 6px rgba(138,58,26,0.7), 0 0 40px 12px rgba(138,58,26,0.3);
  animation: hda-letter 5s ease-in-out infinite alternate;
}
.scn-hester-daily-agony .eye-shadow {
  position: absolute; top: 20%; left: 45%; width: 20px; height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: hda-eye 8s ease-in-out infinite;
}
.scn-hester-daily-agony .floor-intense {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
}
@keyframes hda-window { 0% { opacity: 0.7; box-shadow: inset 0 0 10px rgba(255,255,255,0.2); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,255,0.5); } 100% { opacity: 0.8; box-shadow: inset 0 0 15px rgba(255,255,255,0.3); } }
@keyframes hda-light { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes hda-hand { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(5px); } 100% { transform: rotate(-25deg) translateX(-5px); } }
@keyframes hda-letter { 0% { opacity: 0.8; box-shadow: 0 0 12px 4px #8a3a1a; } 50% { opacity: 1; box-shadow: 0 0 30px 10px #b04a1a, 0 0 50px 16px rgba(176,74,26,0.4); } 100% { opacity: 0.9; box-shadow: 0 0 18px 6px #8a3a1a; } }
@keyframes hda-eye { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(5px) scale(1.2); opacity: 0.6; } 100% { transform: translateX(-5px) scale(1); opacity: 0.4; } }

/* hester-shared-agony */
.scn-hester-shared-agony {
  background: linear-gradient(180deg, #1a1a2a 0%, #1a1a1a 30%, #2a1a1a 60%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%);
}
.scn-hester-shared-agony .room-back {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, #2a2a2a 0%, #1a1a1a 100%);
}
.scn-hester-shared-agony .dim-window {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border: 4px solid #3a3a4a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: hsa-window 12s ease-in-out infinite alternate;
}
.scn-hester-shared-agony .figure-hest {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hsa-fig 6s ease-in-out infinite;
}
.scn-hester-shared-agony .figure-stranger {
  position: absolute; bottom: 25%; right: 30%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hsa-fig 6s ease-in-out infinite reverse;
}
.scn-hester-shared-agony .shared-glow {
  position: absolute; bottom: 50%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c07030 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,112,48,0.5), 0 0 60px 20px rgba(192,112,48,0.2);
  animation: hsa-glow 5s ease-in-out infinite alternate;
}
.scn-hester-shared-agony .eye-light {
  position: absolute; top: 35%; left: 55%; width: 16px; height: 8px;
  background: radial-gradient(circle, #e0d0b0 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(3px);
  animation: hsa-eye 8s ease-in-out infinite;
}
.scn-hester-shared-agony .darkness-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.8);
}
@keyframes hsa-window { 0% { opacity: 0.5; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); } 50% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); } 100% { opacity: 0.6; box-shadow: inset 0 0 15px rgba(0,0,0,0.4); } }
@keyframes hsa-fig { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hsa-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); box-shadow: 0 0 40px 15px #e09050, 0 0 80px 30px rgba(224,144,80,0.3); } 100% { opacity: 0.6; transform: scale(0.9); } }
@keyframes hsa-eye { 0% { opacity: 0.2; transform: translateX(0) scale(1); } 50% { opacity: 0.7; transform: translateX(8px) scale(1.3); } 100% { opacity: 0.3; transform: translateX(-8px) scale(0.9); } }

/* Scene: hester-counter-pity */
.scn-hester-counter-pity {
  background: linear-gradient(180deg, #f0d9b5 0%, #d4b483 30%, #9a7b5a 60%, #3a2a1a 100%), radial-gradient(ellipse at 80% 10%, #ffe0a0 0%, transparent 70%);
}
.scn-hester-counter-pity .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c8b088 0%, #a89575 50%, transparent 100%); animation: hcp-sky 14s ease-in-out infinite alternate; }
.scn-hester-counter-pity .sun { position:absolute; top:8%; left:75%; width:60px; height:60px; background: radial-gradient(circle, #ffdd80 0%, #f0c060 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 20px #f0c060, 0 0 160px 40px rgba(240,192,96,.3); animation: hcp-sun 6s ease-in-out infinite alternate; }
.scn-hester-counter-pity .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a6e4d 0%, #4e4028 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); animation: hcp-hills 20s ease-in-out infinite alternate; }
.scn-hester-counter-pity .figure-shadow { position:absolute; bottom:20%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hcp-shadow 5s ease-in-out infinite; }
.scn-hester-counter-pity .hand-reaching { position:absolute; bottom:25%; left:35%; width:24px; height:30px; background: linear-gradient(135deg, #d4b080 0%, #a08060 50%, #806040 100%); border-radius:40% 60% 30% 70% / 50% 50% 40% 40%; transform-origin: bottom left; animation: hcp-hand 4s ease-in-out infinite; }
.scn-hester-counter-pity .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #3a2a1a 0%, #4e4028 60%, transparent 100%); animation: hcp-ground 12s ease-in-out infinite alternate; }
.scn-hester-counter-pity .halo { position:absolute; top:5%; left:70%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,255,200,.4) 0%, transparent 60%); border-radius:50%; animation: hcp-halo 8s ease-in-out infinite alternate; }
@keyframes hcp-sky { 0% { opacity:.8; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.1) } 100% { opacity:.75; filter:brightness(1) } }
@keyframes hcp-sun { 0% { transform:scale(1); opacity:.9 } 50% { transform:scale(1.04); opacity:1 } 100% { transform:scale(.98); opacity:.85 } }
@keyframes hcp-hills { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes hcp-shadow { 0%,100% { transform:translate(0,0) rotate(0) } 25% { transform:translate(2px,-1px) rotate(1deg) } 50% { transform:translate(-1px,1px) rotate(-1deg) } 75% { transform:translate(1px,-2px) rotate(2deg) } }
@keyframes hcp-hand { 0%,100% { transform:translate(0,0) rotate(-5deg) } 50% { transform:translate(6px,2px) rotate(0) } }
@keyframes hcp-ground { 0% { opacity:.8; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.05) } 100% { opacity:.85; filter:brightness(.95) } }
@keyframes hcp-halo { 0% { transform:scale(1); opacity:.3 } 50% { transform:scale(1.3); opacity:.6 } 100% { transform:scale(.9); opacity:.4 } }

/* Scene: chillingworth-refusal */
.scn-chillingworth-refusal {
  background: linear-gradient(180deg, #d6b58a 0%, #b89365 40%, #7a5d3a 80%, #1f140a 100%), radial-gradient(ellipse at 60% 20%, #f5c870 0%, transparent 60%);
}
.scn-chillingworth-refusal .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c4a47c 0%, #a8895f 60%, transparent 100%); animation: cr-sky 15s ease-in-out infinite alternate; }
.scn-chillingworth-refusal .sun-flare { position:absolute; top:5%; left:55%; width:80px; height:80px; background: radial-gradient(circle, #ffe080 0%, #f0c050 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 100px 30px #f0c050; animation: cr-flare 7s ease-in-out infinite alternate; }
.scn-chillingworth-refusal .figure-torso { position:absolute; bottom:15%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; box-shadow: -4px 0 8px rgba(0,0,0,.5); animation: cr-torso 4s ease-in-out infinite; }
.scn-chillingworth-refusal .arm-raised { position:absolute; bottom:40%; left:48%; width:12px; height:32px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:30% 30% 20% 20%; transform-origin: bottom left; animation: cr-arm 5s ease-in-out infinite; }
.scn-chillingworth-refusal .fist { position:absolute; bottom:70%; left:49%; width:14px; height:14px; background: #1a0a00; border-radius:50%; box-shadow: 0 0 4px rgba(0,0,0,.6); animation: cr-fist 5s ease-in-out infinite; }
.scn-chillingworth-refusal .shadow-stripe { position:absolute; bottom:10%; left:42%; width:30px; height:70px; background: linear-gradient(90deg, rgba(0,0,0,.4) 0%, transparent 100%); transform:skewX(-20deg); animation: cr-stripe 10s linear infinite; }
.scn-chillingworth-refusal .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #2a1a0a 0%, #4a3a1a 50%, transparent 100%); animation: cr-ground 11s ease-in-out infinite alternate; }
@keyframes cr-sky { 0% { filter:brightness(.95); opacity:.85 } 50% { filter:brightness(1.05); opacity:1 } 100% { filter:brightness(.9); opacity:.8 } }
@keyframes cr-flare { 0% { transform:scale(1); opacity:.7 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(.95); opacity:.75 } }
@keyframes cr-torso { 0%,100% { transform:translate(0,0) rotate(0) } 30% { transform:translate(1px,-1px) rotate(1deg) } 60% { transform:translate(-1px,0) rotate(-1deg) } }
@keyframes cr-arm { 0%,100% { transform:rotate(-30deg) } 50% { transform:rotate(-40deg) } }
@keyframes cr-fist { 0%,100% { transform:translate(0,0) scale(1) } 50% { transform:translate(-1px,1px) scale(1.05) } }
@keyframes cr-stripe { 0% { opacity:.6 } 50% { opacity:.4 } 100% { opacity:.6 } }
@keyframes cr-ground { 0% { filter:brightness(1) } 50% { filter:brightness(1.03) } 100% { filter:brightness(.97) } }

/* Scene: chillingworth-departs */
.scn-chillingworth-departs {
  background: linear-gradient(180deg, #dcd0b5 0%, #b8a780 40%, #847050 70%, #3a2a1a 100%), radial-gradient(ellipse at 50% 0%, #f5e0a0 0%, transparent 70%);
}
.scn-chillingworth-departs .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #c8b898 0%, #a89a7a 50%, transparent 100%); animation: cd-sky 16s ease-in-out infinite alternate; }
.scn-chillingworth-departs .sun { position:absolute; top:10%; left:30%; width:50px; height:50px; background: radial-gradient(circle, #ffe49e 0%, #f0c860 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 15px #f0c860; animation: cd-sun 8s ease-in-out infinite alternate; }
.scn-chillingworth-departs .path { position:absolute; bottom:30%; left:44%; width:12%; height:40%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:0 0 20% 20% / 0 0 60% 60%; transform-origin: bottom; animation: cd-path 20s linear infinite; }
.scn-chillingworth-departs .figure-stoop { position:absolute; bottom:28%; left:48%; width:22px; height:45px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius:40% 40% 50% 50% / 30% 30% 40% 40%; transform-origin: bottom center; animation: cd-stoop 6s ease-in-out infinite; }
.scn-chillingworth-departs .herb-cluster { position:absolute; bottom:30%; left:42%; width:20px; height:12px; background: radial-gradient(ellipse, #5a6a3a 0%, #3a4a1a 60%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: cd-herb 10s ease-in-out infinite alternate; }
.scn-chillingworth-departs .grass-blade { position:absolute; bottom:25%; left:38%; width:4px; height:24px; background: linear-gradient(0deg, #4a5a2a 0%, #5a6a3a 100%); border-radius:0 0 50% 50%; transform-origin: bottom; animation: cd-grass 3s ease-in-out infinite; }
.scn-chillingworth-departs .clouds { position:absolute; top:12%; left:10%; width:70px; height:14px; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter:blur(4px); animation: cd-cloud 35s linear infinite; }
@keyframes cd-sky { 0% { filter:brightness(1); opacity:.85 } 50% { filter:brightness(1.05); opacity:1 } 100% { filter:brightness(.95); opacity:.8 } }
@keyframes cd-sun { 0% { transform:scale(1); opacity:.8 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(.98); opacity:.75 } }
@keyframes cd-path { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(1) } }
@keyframes cd-stoop { 0%,100% { transform:translate(0,0) rotate(0) } 30% { transform:translate(1px,-2px) rotate(3deg) } 60% { transform:translate(-1px,-1px) rotate(-2deg) } }
@keyframes cd-herb { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-2px) scale(1.1) } 100% { transform:translateY(0) scale(1) } }
@keyframes cd-grass { 0%,100% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } }
@keyframes cd-cloud { 0% { transform:translateX(-30px) } 100% { transform:translateX(120vw) } }

/* Scene: hester-gazing-after */
.scn-hester-gazing-after {
  background: linear-gradient(180deg, #e8d5b0 0%, #c8b48a 40%, #8a7a5a 70%, #2e2210 100%), radial-gradient(ellipse at 40% 0%, #f5d890 0%, transparent 60%);
}
.scn-hester-gazing-after .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 50%, transparent 100%); animation: hga-sky 14s ease-in-out infinite alternate; }
.scn-hester-gazing-after .sun { position:absolute; top:5%; left:20%; width:55px; height:55px; background: radial-gradient(circle, #ffe49e 0%, #f0c860 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 70px 20px #f0c860; animation: hga-sun 9s ease-in-out infinite alternate; }
.scn-hester-gazing-after .foreground-grass { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #4a5a3a 0%, #6a7a4a 40%, transparent 100%); animation: hga-grass 18s ease-in-out infinite alternate; }
.scn-hester-gazing-after .figure-far { position:absolute; bottom:35%; left:55%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hga-figure 8s ease-in-out infinite; }
.scn-hester-gazing-after .hester-hair { position:absolute; bottom:20%; left:10%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom left; animation: hga-hair 5s ease-in-out infinite; }
.scn-hester-gazing-after .tree-silhouette { position:absolute; bottom:10%; left:75%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); border-radius:30% 30% 0 0 / 60% 60% 0 0; transform-origin: bottom center; animation: hga-tree 12s ease-in-out infinite alternate; }
@keyframes hga-sky { 0% { filter:brightness(1); opacity:.85 } 50% { filter:brightness(1.08); opacity:1 } 100% { filter:brightness(.95); opacity:.8 } }
@keyframes hga-sun { 0% { transform:scale(1); opacity:.8 } 50% { transform:scale(1.04); opacity:1 } 100% { transform:scale(.97); opacity:.75 } }
@keyframes hga-grass { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes hga-figure { 0%,100% { transform:translate(0,0) rotate(0) } 25% { transform:translate(2px,-1px) rotate(1deg) } 50% { transform:translate(-1px,1px) rotate(-1deg) } 75% { transform:translate(1px,-2px) rotate(2deg) } }
@keyframes hga-hair { 0%,100% { transform:rotate(0) translate(0,0) } 25% { transform:rotate(2deg) translate(1px,-1px) } 50% { transform:rotate(-1deg) translate(0,0) } 75% { transform:rotate(3deg) translate(-1px,1px) } }
@keyframes hga-tree { 0% { transform:scaleX(1) } 50% { transform:scaleX(.95) } 100% { transform:scaleX(1) } }

.scn-dimmesdale-liberal-fear { background: linear-gradient(180deg, #1a1210 0%, #2d2220 40%, #3a2e2a 100%), radial-gradient(ellipse at 50% 60%, #4a3a32 0%, transparent 70%); }
.scn-dimmesdale-liberal-fear .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2d2220 0%, #1a1210 100%); animation: df-wall 12s ease-in-out infinite alternate; }
.scn-dimmesdale-liberal-fear .desk { position:absolute; bottom:15%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-dimmesdale-liberal-fear .books { position:absolute; bottom:18%; left:18%; width:30%; height:8%; background: linear-gradient(90deg, #7a6a4a, #5a4a2a, #7a6a4a); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: df-books 8s ease-in-out infinite; }
.scn-dimmesdale-liberal-fear .lamp { position:absolute; bottom:22%; left:40%; width:12px; height:20px; background: linear-gradient(180deg, #c0a060 0%, #705030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px #d0b070, 0 0 40px 16px rgba(200,160,80,.3); animation: df-lamp 3s ease-in-out infinite alternate; }
.scn-dimmesdale-liberal-fear .figure { position:absolute; bottom:12%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: df-figure 6s ease-in-out infinite; }
.scn-dimmesdale-liberal-fear .shadow { position:absolute; bottom:10%; left:20%; width:80px; height:12px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(4px); animation: df-shadow 6s ease-in-out infinite; }
@keyframes df-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes df-books { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes df-lamp { 0% { box-shadow: 0 0 16px 6px #d0b070, 0 0 32px 12px rgba(200,160,80,.2); } 50% { box-shadow: 0 0 28px 12px #f0d090, 0 0 48px 20px rgba(240,208,144,.4); } 100% { box-shadow: 0 0 20px 8px #d0b070, 0 0 36px 14px rgba(200,160,80,.25); } }
@keyframes df-figure { 0%, 100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes df-shadow { 0%, 100% { transform: scale(1) } 50% { transform: scale(1.05) } }

.scn-window-freer-air { background: linear-gradient(180deg, #1c1816 0%, #2a2420 40%, #3a322e 100%), radial-gradient(ellipse at 70% 50%, #3a322e 0%, transparent 70%); }
.scn-window-freer-air .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a2420 0%, #1c1816 100%); animation: wf-room 20s ease-in-out infinite alternate; }
.scn-window-freer-air .window-frame { position:absolute; top:12%; left:25%; width:50%; height:50%; border: 6px solid #3a2a1a; border-radius: 6px; background: linear-gradient(180deg, #2a3040 0%, #40506a 100%); box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-window-freer-air .curtain-left { position:absolute; top:10%; left:20%; width:18%; height:54%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 40% 60% 0; transform-origin: left top; animation: wf-curtain-l 4s ease-in-out infinite alternate; }
.scn-window-freer-air .curtain-right { position:absolute; top:10%; right:20%; width:18%; height:54%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 0 0 60%; transform-origin: right top; animation: wf-curtain-r 4.2s ease-in-out infinite alternate; }
.scn-window-freer-air .figure { position:absolute; bottom:10%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #1c1c1c 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wf-figure 5s ease-in-out infinite; }
.scn-window-freer-air .chair { position:absolute; bottom:8%; left:25%; width:28px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; transform: rotate(-5deg); }
.scn-window-freer-air .paper { position:absolute; bottom:30%; left:70%; width:12px; height:8px; background: #c8b898; border-radius: 2px; animation: wf-paper 3.5s ease-in-out infinite; }
@keyframes wf-room { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .75 } }
@keyframes wf-curtain-l { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(-12deg) scaleX(1.1) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes wf-curtain-r { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(12deg) scaleX(1.1) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes wf-figure { 0%, 100% { transform: translateX(0) } 50% { transform: translateX(4px) } }
@keyframes wf-paper { 0% { transform: translate(0, 0) rotate(0deg) } 30% { transform: translate(-10px, -8px) rotate(20deg) } 60% { transform: translate(-5px, -2px) rotate(-10deg) } 100% { transform: translate(0, 0) rotate(0deg) } }

.scn-scaffold-night-encounter { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #2a2a4a 100%), radial-gradient(ellipse at 50% 20%, #2a2a4a 0%, transparent 70%); }
.scn-scaffold-night-encounter .night-sky { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 60%, #2a2a4a 100%); }
.scn-scaffold-night-encounter .moon { position:absolute; top:8%; right:15%; width:40px; height:40px; background: radial-gradient(circle at 40% 40%, #d4c8a0 0%, #b8a880 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 12px rgba(180,160,100,.4); animation: se-moon 10s ease-in-out infinite alternate; }
.scn-scaffold-night-encounter .stars { position:absolute; top:0; left:0; right:0; bottom:70%; background: radial-gradient(2px 2px at 10% 20%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 30% 40%, #fff 0%, transparent 100%), radial-gradient(2px 2px at 70% 15%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 90% 50%, #fff 0%, transparent 100%); animation: se-stars 8s ease-in-out infinite; }
.scn-scaffold-night-encounter .platform { position:absolute; bottom:10%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-scaffold-night-encounter .figure-minister { position:absolute; bottom:18%; left:35%; width:30px; height:65px; background: linear-gradient(180deg, #1c1c2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: se-minister 4s ease-in-out infinite; }
.scn-scaffold-night-encounter .figure-physician { position:absolute; bottom:18%; right:30%; width:26px; height:58px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: se-physician 6s ease-in-out infinite; }
@keyframes se-moon { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes se-stars { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .5 } }
@keyframes se-minister { 0%, 100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes se-physician { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-scaffold-inquiry { background: linear-gradient(180deg, #0e0e1e 0%, #1e1e3e 40%, #2e2e4e 100%), radial-gradient(ellipse at 50% 30%, #2e2e4e 0%, transparent 70%); }
.scn-scaffold-inquiry .bg-sky { position:absolute; inset:0; background: linear-gradient(180deg, #0e0e1e 0%, #1e1e3e 80%); }
.scn-scaffold-inquiry .scaffold-post-left { position:absolute; bottom:0; left:18%; width:8px; height:80%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 2px; }
.scn-scaffold-inquiry .scaffold-post-right { position:absolute; bottom:0; right:18%; width:8px; height:80%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 2px; }
.scn-scaffold-inquiry .railing { position:absolute; bottom:40%; left:16%; right:16%; height:4px; background: #3a3a4a; border-radius: 2px; }
.scn-scaffold-inquiry .figure-hooded { position:absolute; bottom:18%; left:40%; width:24px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 70% 60% 30% 40%; transform-origin: bottom center; animation: si-hooded 5s ease-in-out infinite; }
.scn-scaffold-inquiry .figure-cane { position:absolute; bottom:20%; left:28%; width:5px; height:50px; background: #2a2a3a; border-radius: 2px; transform: rotate(10deg); transform-origin: bottom; animation: si-cane 3s ease-in-out infinite alternate; }
.scn-scaffold-inquiry .shadow-pool { position:absolute; bottom:8%; left:30%; right:30%; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(6px); }
@keyframes si-hooded { 0%, 100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes si-cane { 0% { transform: rotate(8deg) } 100% { transform: rotate(14deg) } }

.scn-birch-bark-boats {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e6c0 60%, #d4c4a8 100%),
    radial-gradient(ellipse at 50% 100%, #d4c4a8 0%, transparent 70%);
}
.scn-birch-bark-boats .sky-glow {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fff4d6 0%, #87ceeb 80%);
  opacity: 0.6;
  animation: bbb-sky 14s ease-in-out infinite alternate;
}
.scn-birch-bark-boats .sea {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5b9bd5 0%, #3a7cb8 80%);
  border-radius: 0 0 40% 50% / 0 0 20% 30%;
  animation: bbb-sea 12s ease-in-out infinite alternate;
}
.scn-birch-bark-boats .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #e8d5a3 0%, #c9b78a 100%);
  border-radius: 30% 20% 0 0 / 60% 40% 0 0;
}
.scn-birch-bark-boats .boat {
  position: absolute; bottom: 38%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #8b6f4e 0%, #a78a6a 50%, #6f5538 100%);
  border-radius: 0 0 60% 60% / 0 0 100% 100%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-birch-bark-boats .boat-1 {
  left: 25%; animation: bbb-boat1 9s ease-in-out infinite;
}
.scn-birch-bark-boats .boat-2 {
  left: 55%; animation: bbb-boat2 11s ease-in-out infinite 2s;
}
.scn-birch-bark-boats .sail {
  position: absolute; bottom: 42%; width: 14px; height: 20px;
  background: linear-gradient(135deg, #f5f0e0 0%, #e8ddc0 100%);
  border-radius: 30% 70% 50% 50% / 40% 80% 20% 60%;
  transform-origin: bottom center;
  box-shadow: 0 1px 4px rgba(0,0,0,0.15);
}
.scn-birch-bark-boats .sail-1 {
  left: 27%; animation: bbb-sway1 6s ease-in-out infinite;
}
.scn-birch-bark-boats .sail-2 {
  left: 57%; animation: bbb-sway2 7s ease-in-out infinite 1.5s;
}
.scn-birch-bark-boats .ripple {
  position: absolute; bottom: 36%; left: 30%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: bbb-ripple 8s ease-in-out infinite;
}
.scn-birch-bark-boats .shell {
  position: absolute; bottom: 12%; left: 45%; width: 12px; height: 10px;
  background: radial-gradient(ellipse at 60% 40%, #e8c8a0 0%, #b8976a 100%);
  border-radius: 50% 50% 40% 60% / 60% 50% 50% 40%;
  transform: rotate(-20deg);
  animation: bbb-gleam 4s ease-in-out infinite;
}
@keyframes bbb-sky {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.55; }
}
@keyframes bbb-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes bbb-boat1 {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(6px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(0deg); }
  75% { transform: translateX(14px) rotate(-1deg); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes bbb-boat2 {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-4px) rotate(-1deg); }
  50% { transform: translateX(-8px) rotate(0deg); }
  75% { transform: translateX(-12px) rotate(1deg); }
  100% { transform: translateX(-16px) rotate(0deg); }
}
@keyframes bbb-sway1 {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes bbb-sway2 {
  0% { transform: rotate(2deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(1deg); }
}
@keyframes bbb-ripple {
  0% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(15px) scaleX(1.3); opacity: 0.7; }
  100% { transform: translateX(30px) scaleX(1); opacity: 0.3; }
}
@keyframes bbb-gleam {
  0% { opacity: 0.6; box-shadow: 0 0 2px rgba(255,215,140,0.3); }
  50% { opacity: 1; box-shadow: 0 0 8px 2px rgba(255,215,140,0.6); }
  100% { opacity: 0.7; box-shadow: 0 0 3px rgba(255,215,140,0.4); }
}

.scn-foam-and-birds {
  background:
    linear-gradient(180deg, #a8d8ea 0%, #cce5f0 30%, #f0e6c0 55%, #d4c4a8 100%),
    radial-gradient(ellipse at 50% 100%, #d4c4a8 0%, transparent 70%);
}
.scn-foam-and-birds .sky-bright {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fff9e6 0%, #a8d8ea 100%);
  opacity: 0.5;
  animation: fab-sky 16s ease-in-out infinite alternate;
}
.scn-foam-and-birds .surf {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #6bb3d9 0%, #3a8fc4 70%);
  border-radius: 0 0 50% 40% / 0 0 30% 25%;
  animation: fab-surf 10s ease-in-out infinite alternate;
}
.scn-foam-and-birds .shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #e8d5a3 0%, #c9b78a 100%);
  border-radius: 40% 30% 0 0 / 50% 40% 0 0;
}
.scn-foam-and-birds .bird {
  position: absolute; background: linear-gradient(135deg, #d0d0d0 0%, #a0a0a0 100%);
  border-radius: 70% 30% 50% 50% / 60% 40% 60% 40%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.scn-foam-and-birds .bird-a {
  bottom: 50%; left: 15%; width: 22px; height: 12px;
  animation: fab-fly-a 7s ease-in-out infinite;
}
.scn-foam-and-birds .bird-b {
  bottom: 55%; left: 40%; width: 18px; height: 10px;
  animation: fab-fly-b 9s ease-in-out infinite 2.5s;
}
.scn-foam-and-birds .bird-c {
  bottom: 48%; right: 20%; width: 16px; height: 9px;
  animation: fab-fly-c 8s ease-in-out infinite 5s;
}
.scn-foam-and-birds .foam {
  position: absolute; background: radial-gradient(ellipse, rgba(255,255,255,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-foam-and-birds .foam-1 {
  bottom: 32%; left: 20%; width: 50px; height: 14px;
  animation: fab-foam1 6s ease-in-out infinite;
}
.scn-foam-and-birds .foam-2 {
  bottom: 34%; right: 25%; width: 40px; height: 10px;
  animation: fab-foam2 7s ease-in-out infinite 3s;
}
.scn-foam-and-birds .spray {
  position: absolute; bottom: 36%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  transform: translateX(-50%);
  animation: fab-spray 5s ease-in-out infinite;
}
@keyframes fab-sky {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.45; }
}
@keyframes fab-surf {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.03); }
  100% { transform: translateY(1px) scaleY(0.97); }
}
@keyframes fab-fly-a {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  25% { transform: translateX(20px) translateY(-4px) rotate(2deg); }
  50% { transform: translateX(40px) translateY(0) rotate(-3deg); }
  75% { transform: translateX(60px) translateY(-5px) rotate(4deg); }
  100% { transform: translateX(80px) translateY(0) rotate(-2deg); }
}
@keyframes fab-fly-b {
  0% { transform: translateX(0) translateY(0) rotate(3deg); }
  25% { transform: translateX(-15px) translateY(-3px) rotate(-2deg); }
  50% { transform: translateX(-30px) translateY(0) rotate(4deg); }
  75% { transform: translateX(-45px) translateY(-4px) rotate(-1deg); }
  100% { transform: translateX(-60px) translateY(0) rotate(2deg); }
}
@keyframes fab-fly-c {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(18px) translateY(-2px) rotate(3deg); }
  50% { transform: translateX(36px) translateY(0) rotate(-4deg); }
  75% { transform: translateX(54px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(72px) translateY(0) rotate(-1deg); }
}
@keyframes fab-foam1 {
  0% { transform: translateX(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(12px) scaleX(1.4); opacity: 0.6; }
  100% { transform: translateX(24px) scaleX(1); opacity: 0.2; }
}
@keyframes fab-foam2 {
  0% { transform: translateX(0) scaleX(1); opacity: 0.25; }
  50% { transform: translateX(-10px) scaleX(1.3); opacity: 0.5; }
  100% { transform: translateX(-20px) scaleX(1); opacity: 0.2; }
}
@keyframes fab-spray {
  0% { transform: translateX(-50%) translateY(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(-50%) translateY(-8px) scale(1.5); opacity: 0.9; }
  100% { transform: translateX(-50%) translateY(2px) scale(0.8); opacity: 0.3; }
}

.scn-broken-wing-sigh {
  background:
    linear-gradient(180deg, #b8d4c4 0%, #d4c8a8 40%, #c8b88a 70%, #a89870 100%),
    radial-gradient(ellipse at 50% 100%, #a89870 0%, transparent 80%);
}
.scn-broken-wing-sigh .bg-dune {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c8a8 0%, #b8a488 100%);
  opacity: 0.3;
  animation: bws-bg 20s ease-in-out infinite alternate;
}
.scn-broken-wing-sigh .sand-mound {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 45%;
  background: linear-gradient(180deg, #c8b88a 0%, #a89870 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.2);
}
.scn-broken-wing-sigh .bird-body {
  position: absolute; bottom: 28%; left: 50%; width: 28px; height: 20px;
  background: linear-gradient(135deg, #909090 0%, #686868 100%);
  border-radius: 60% 40% 50% 50% / 70% 50% 50% 30%;
  transform: translateX(-50%) rotate(10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: bws-body 6s ease-in-out infinite;
}
.scn-broken-wing-sigh .bird-breast {
  position: absolute; bottom: 27%; left: 48%; width: 16px; height: 14px;
  background: radial-gradient(ellipse at 40% 40%, #f0f0f0 0%, #e0e0e0 100%);
  border-radius: 50% 40% 40% 60% / 60% 50% 50% 40%;
  transform: translateX(-50%) rotate(8deg);
  z-index: 1;
}
.scn-broken-wing-sigh .wing-broken {
  position: absolute; bottom: 30%; left: 52%; width: 18px; height: 10px;
  background: linear-gradient(135deg, #787878 0%, #585858 100%);
  border-radius: 30% 70% 40% 60% / 40% 60% 40% 60%;
  transform: rotate(-35deg) scaleY(0.7);
  transform-origin: bottom right;
  animation: bws-break 4s ease-in-out infinite;
  z-index: 2;
}
.scn-broken-wing-sigh .wing-good {
  position: absolute; bottom: 30%; left: 44%; width: 20px; height: 12px;
  background: linear-gradient(225deg, #888888 0%, #606060 100%);
  border-radius: 70% 30% 60% 40% / 60% 40% 60% 40%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: bws-good 5s ease-in-out infinite;
  z-index: 2;
}
.scn-broken-wing-sigh .eye-dot {
  position: absolute; bottom: 34%; left: 48%; width: 3px; height: 3px;
  background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 2px rgba(0,0,0,0.3);
  animation: bws-eye 4s ease-in-out infinite alternate;
  z-index: 3;
}
.scn-broken-wing-sigh .shadow-pool {
  position: absolute; bottom: 18%; left: 42%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.25) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: bws-shadow 6s ease-in-out infinite;
}
@keyframes bws-bg {
  0% { opacity: 0.2; }
  50% { opacity: 0.35; }
  100% { opacity: 0.25; }
}
@keyframes bws-body {
  0% { transform: translateX(-50%) rotate(10deg) translateY(0); }
  25% { transform: translateX(-50%) rotate(8deg) translateY(-1px); }
  50% { transform: translateX(-50%) rotate(12deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(6deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(10deg) translateY(0); }
}
@keyframes bws-break {
  0% { transform: rotate(-35deg) scaleY(0.7); }
  25% { transform: rotate(-40deg) scaleY(0.65); }
  50% { transform: rotate(-30deg) scaleY(0.75); }
  75% { transform: rotate(-42deg) scaleY(0.6); }
  100% { transform: rotate(-35deg) scaleY(0.7); }
}
@keyframes bws-good {
  0% { transform: rotate(20deg) scaleX(1); }
  50% { transform: rotate(22deg) scaleX(1.05); }
  100% { transform: rotate(18deg) scaleX(0.95); }
}
@keyframes bws-eye {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(0.8); opacity: 0.6; }
  100% { transform: scale(1.1); opacity: 0.9; }
}
@keyframes bws-shadow {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.2); opacity: 0.5; }
  100% { transform: scaleX(0.9); opacity: 0.25; }
}

.scn-sea-weed-mermaid {
  background:
    linear-gradient(180deg, #a8d8ea 0%, #cce5f0 30%, #d4c4a8 55%, #c8b88a 100%),
    radial-gradient(ellipse at 50% 100%, #c8b88a 0%, transparent 80%);
}
.scn-sea-weed-mermaid .bg-shore {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4c8a8 0%, #b8a488 100%);
  opacity: 0.25;
  animation: swm-bg 18s ease-in-out infinite alternate;
}
.scn-sea-weed-mermaid .water-edge {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6bb3d9 0%, #4a9ec8 60%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  animation: swm-water 12s ease-in-out infinite alternate;
}
.scn-sea-weed-mermaid .figure {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #e8d0a8 0%, #c8a878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  animation: swm-figure 7s ease-in-out infinite;
}
.scn-sea-weed-mermaid .scarf-seaweed {
  position: absolute; bottom: 34%; left: 48%; width: 30px; height: 8px;
  background: linear-gradient(135deg, #5a7a4a 0%, #3a5a2a 70%);
  border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%;
  transform: translateX(-50%) rotate(-10deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
  animation: swm-sway 6s ease-in-out infinite;
  z-index: 2;
}
.scn-sea-weed-mermaid .mantle {
  position: absolute; bottom: 24%; left: 47%; width: 34px; height: 20px;
  background: linear-gradient(135deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 40% 60% / 60% 50% 50% 40%;
  transform: translateX(-50%) rotate(5deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.15);
  animation: swm-mantle 8s ease-in-out infinite 1s;
  z-index: 2;
}
.scn-sea-weed-mermaid .head-dress {
  position: absolute; bottom: 62%; left: 50%; width: 22px; height: 12px;
  background: linear-gradient(135deg, #5a7a4a 0%, #2a4a1a 100%);
  border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%;
  transform: translateX(-50%) rotate(-5deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
  animation: swm-dress 5s ease-in-out infinite 2s;
  z-index: 3;
}
.scn-sea-weed-mermaid .shell-accent {
  position: absolute; bottom: 32%; left: 44%; width: 8px; height: 6px;
  background: radial-gradient(ellipse at 40% 40%, #f0dcc0 0%, #c8a878 100%);
  border-radius: 50% 50% 40% 60% / 60% 50% 50% 40%;
  transform: rotate(15deg);
  animation: swm-shell 5s ease-in-out infinite alternate;
  z-index: 4;
}
.scn-sea-weed-mermaid .rock {
  position: absolute; bottom: 8%; left: 30%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 40% 50% 30% 40% / 60% 50% 40% 50%;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.3);
}
@keyframes swm-bg {
  0% { opacity: 0.2; }
  50% { opacity: 0.3; }
  100% { opacity: 0.22; }
}
@keyframes swm-water {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes swm-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes swm-sway {
  0% { transform: translateX(-50%) rotate(-10deg) scaleX(1); }
  50% { transform: translateX(-50%) rotate(-6deg) scaleX(1.1); }
  100% { transform: translateX(-50%) rotate(-12deg) scaleX(0.95); }
}
@keyframes swm-mantle {
  0% { transform: translateX(-50%) rotate(5deg) scale(1); }
  50% { transform: translateX(-50%) rotate(8deg) scale(1.03); }
  100% { transform: translateX(-50%) rotate(3deg) scale(0.97); }
}
@keyframes swm-dress {
  0% { transform: translateX(-50%) rotate(-5deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(-2deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-7deg) translateY(0); }
}
@keyframes swm-shell {
  0% { transform: rotate(15deg) scale(1); opacity: 0.8; }
  50% { transform: rotate(20deg) scale(1.1); opacity: 1; }
  100% { transform: rotate(12deg) scale(0.95); opacity: 0.85; }
}

/* severance-from-soil — overcast, tense */
.scn-severance-from-soil {
  background: linear-gradient(180deg, #3c3f47 0%, #5a5c64 40%, #6e7078 100%),
              radial-gradient(ellipse at 50% 100%, #4a4b52 0%, transparent 70%);
}
.scn-severance-from-soil .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4c4f57 0%, transparent 100%);
  animation: sev-sky 14s ease-in-out infinite alternate;
}
.scn-severance-from-soil .soil {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5b4e3a 0%, #3d3224 100%);
  border-radius: 40% 30% 0 0 / 20% 10% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.5);
  animation: sev-soil 6s ease-in-out infinite alternate;
}
.scn-severance-from-soil .plant {
  position: absolute; bottom: 45%; left: 35%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #6b7a3a 0%, #4d5a2a 100%);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom center;
  animation: sev-plant 3s ease-in-out infinite;
}
.scn-severance-from-soil .root {
  position: absolute; bottom: 48%; left: 35%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #8c7040 0%, #5a4628 100%);
  border-radius: 0 0 30% 30%;
  transform-origin: top center;
  animation: sev-root 4s ease-in-out infinite;
}
.scn-severance-from-soil .cut {
  position: absolute; bottom: 45%; left: 32%; width: 40px; height: 2px;
  background: #a0461a; /* rust – no bright red */
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #a0461a;
  animation: sev-cut 0.5s ease-in-out infinite alternate;
}
.scn-severance-from-soil .spark {
  position: absolute; bottom: 44%; left: 36%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffc857 0%, transparent 70%);
  border-radius: 50%;
  animation: sev-spark 0.3s ease-in-out infinite alternate;
}
@keyframes sev-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes sev-soil {
  0% { transform: translateY(0) scaleX(1); }
  25% { transform: translateY(-2px) scaleX(1.02); }
  50% { transform: translateY(0) scaleX(0.98); }
  75% { transform: translateY(-1px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes sev-plant {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-2px); }
  50% { transform: rotate(0deg) translateY(0); }
  75% { transform: rotate(3deg) translateY(-1px); }
}
@keyframes sev-root {
  0%, 100% { transform: rotate(0deg) scaleY(1); }
  33% { transform: rotate(2deg) scaleY(1.05); }
  66% { transform: rotate(-2deg) scaleY(0.95); }
}
@keyframes sev-cut {
  0% { opacity: 1; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.3); }
  100% { opacity: 1; transform: scaleX(0.8); }
}
@keyframes sev-spark {
  0% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.5); opacity: 0.5; }
  100% { transform: scale(0.5); opacity: 0.8; }
}

/* return-to-customhouse — sunlit, calm */
.scn-return-to-customhouse {
  background: linear-gradient(180deg, #e6eefa 0%, #b8c9e0 50%, #8da0b8 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,240,200,.3) 0%, transparent 60%);
}
.scn-return-to-customhouse .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0f5fc 0%, #d6e2f0 100%);
  animation: ret-sky 25s ease-in-out infinite alternate;
}
.scn-return-to-customhouse .sunbeams {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(135deg, transparent 0%, rgba(255,240,180,.25) 40%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ret-sunbeams 12s ease-in-out infinite alternate;
}
.scn-return-to-customhouse .building {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 55%;
  background: linear-gradient(180deg, #b89a7a 0%, #8c6e52 60%, #6a5038 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.3), 0 8px 16px rgba(0,0,0,.2);
  animation: ret-building 30s ease-in-out infinite alternate;
}
.scn-return-to-customhouse .path {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(90deg, #c4b59a 0%, #e3d6bc 50%, #c4b59a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: ret-path 8s ease-in-out infinite alternate;
}
.scn-return-to-customhouse .figure {
  position: absolute; bottom: 16%; left: 40%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ret-figure 6s ease-in-out infinite;
}
.scn-return-to-customhouse .tree {
  position: absolute; bottom: 30%; right: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: ret-tree 20s ease-in-out infinite alternate;
}
@keyframes ret-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ret-sunbeams {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.05) rotate(1deg); }
  100% { opacity: 0.2; transform: scale(0.95) rotate(-1deg); }
}
@keyframes ret-building {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(0.99); }
}
@keyframes ret-path {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.03); opacity: 1; }
  100% { transform: scaleY(0.97); opacity: 0.85; }
}
@keyframes ret-figure {
  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 ret-tree {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(-2deg) translateY(-3px); }
  100% { transform: skewX(2deg) translateY(2px); }
}

/* patriarchal-body-of-veterans — dim interior, calm */
.scn-patriarchal-body-of-veterans {
  background: linear-gradient(180deg, #3a2f24 0%, #2d241c 50%, #1e1813 100%),
              radial-gradient(ellipse at 20% 40%, #523f2f 0%, transparent 70%);
}
.scn-patriarchal-body-of-veterans .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4b3f32 0%, #382d22 100%);
  animation: pat-wall 20s ease-in-out infinite alternate;
}
.scn-patriarchal-body-of-veterans .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3d3226 0%, #241c14 100%);
  border-radius: 10% 10% 0 0;
  animation: pat-floor 30s ease-in-out infinite alternate;
}
.scn-patriarchal-body-of-veterans .window {
  position: absolute; top: 20%; left: 10%; width: 30%; height: 40%;
  background: #6a7a8a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: pat-window 12s ease-in-out infinite alternate;
}
.scn-patriarchal-body-of-veterans .light {
  position: absolute; top: 18%; left: 8%; width: 34%; height: 44%;
  background: linear-gradient(135deg, rgba(200,210,220,0.15) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 20% 100%);
  animation: pat-light 18s ease-in-out infinite alternate;
}
.scn-patriarchal-body-of-veterans .veteran-a {
  position: absolute; bottom: 14%; left: 15%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #2d251d 0%, #1a140f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pat-veteran 16s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-patriarchal-body-of-veterans .veteran-b {
  position: absolute; bottom: 16%; left: 35%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2d251d 0%, #1a140f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pat-veteran 18s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-patriarchal-body-of-veterans .veteran-c {
  position: absolute; bottom: 12%; left: 55%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2d251d 0%, #1a140f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pat-veteran 20s ease-in-out infinite;
  animation-delay: -8s;
}
@keyframes pat-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pat-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(1px); }
}
@keyframes pat-window {
  0% { background: #6a7a8a; }
  50% { background: #7a8a9a; }
  100% { background: #5a6a7a; }
}
@keyframes pat-light {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.05); }
  100% { opacity: 0.1; transform: scale(0.95); }
}
@keyframes pat-veteran {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(2px); }
  75% { transform: rotate(2deg) translateY(-1px); }
}

/* ancient-sea-captains — dim interior, calm */
.scn-ancient-sea-captains {
  background: linear-gradient(180deg, #2b241d 0%, #1f1812 50%, #150f0a 100%),
              radial-gradient(ellipse at 80% 30%, #3d3226 0%, transparent 60%);
}
.scn-ancient-sea-captains .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2f26 0%, #2a2018 100%);
  animation: anc-wall 22s ease-in-out infinite alternate;
}
.scn-ancient-sea-captains .shelf {
  position: absolute; top: 25%; left: 5%; width: 90%; height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: anc-shelf 30s ease-in-out infinite alternate;
}
.scn-ancient-sea-captains .globe {
  position: absolute; top: 18%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle at 30% 30%, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 50%;
  transform-origin: 50% 50%;
  animation: anc-globe 40s linear infinite;
}
.scn-ancient-sea-captains .hat {
  position: absolute; top: 28%; left: 10%; width: 40px; height: 18px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-10deg);
  animation: anc-hat 20s ease-in-out infinite alternate;
}
.scn-ancient-sea-captains .pipe {
  position: absolute; top: 32%; left: 18%; width: 24px; height: 4px;
  background: #5a4a3a;
  border-radius: 50%;
  transform: rotate(20deg);
  animation: anc-pipe 15s ease-in-out infinite alternate;
}
.scn-ancient-sea-captains .ship-model {
  position: absolute; top: 18%; left: 45%; width: 48px; height: 32px;
  background: #4a3a2a;
  clip-path: polygon(10% 100%, 90% 100%, 70% 40%, 50% 0%, 30% 40%);
  animation: anc-ship 16s ease-in-out infinite alternate;
}
.scn-ancient-sea-captains .window {
  position: absolute; top: 10%; right: 5%; width: 25%; height: 30%;
  background: #4a5a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 16px rgba(0,0,0,.5);
  animation: anc-window 24s ease-in-out infinite alternate;
}
@keyframes anc-wall {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes anc-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(1px); }
}
@keyframes anc-globe {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes anc-hat {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(1px); }
}
@keyframes anc-pipe {
  0% { transform: rotate(20deg) scale(1); }
  50% { transform: rotate(22deg) scale(1.05); }
  100% { transform: rotate(18deg) scale(0.95); }
}
@keyframes anc-ship {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes anc-window {
  0% { background: #4a5a6a; }
  50% { background: #5a6a7a; }
  100% { background: #3a4a5a; }
}

/* Scene 1: pearl-reports-message */
.scn-pearl-reports-message {
  background:
    linear-gradient(180deg, #b8d4e8 0%, #f0e6c8 40%, #c4a86b 70%, #7a5a3a 100%),
    radial-gradient(ellipse at 20% 0%, #ffe080 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-pearl-reports-message .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 100%);
  animation: prm-sky 10s ease-in-out infinite alternate;
}
.scn-pearl-reports-message .sun {
  position: absolute; top: 8%; left: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,215,0,0.6);
  animation: prm-sun 8s ease-in-out infinite alternate;
}
.scn-pearl-reports-message .market-building {
  position: absolute; bottom: 30%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 8px 0 15px rgba(0,0,0,0.4);
  animation: prm-shift 15s ease-in-out infinite;
}
.scn-pearl-reports-message .ship {
  position: absolute; bottom: 35%; right: 15%; width: 100px; height: 50px;
  background: linear-gradient(135deg, #5c3a1e 0%, #3a2210 100%);
  clip-path: polygon(0% 80%, 20% 0%, 80% 0%, 100% 80%);
  animation: prm-sway 6s ease-in-out infinite;
}
.scn-pearl-reports-message .mother {
  position: absolute; bottom: 25%; left: 45%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prm-stand 4s ease-in-out infinite;
}
.scn-pearl-reports-message .child {
  position: absolute; bottom: 26%; left: 52%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: prm-run 3s ease-in-out infinite;
}
.scn-pearl-reports-message .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 90% 0 0;
  animation: prm-ground 12s ease-in-out infinite alternate;
}
.scn-pearl-reports-message .shadow-bar {
  position: absolute; bottom: 26%; left: 30%; width: 40%; height: 2px;
  background: rgba(0,0,0,0.3);
  filter: blur(4px);
  animation: prm-shadow 3s ease-in-out infinite;
}
@keyframes prm-sky    { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes prm-sun    { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 60px 30px rgba(255,215,0,0.6) } 50% { transform: scale(1.05) translate(3px,-3px); box-shadow: 0 0 80px 40px rgba(255,215,0,0.8) } 100% { transform: scale(1) translate(0,0); box-shadow: 0 0 60px 30px rgba(255,215,0,0.6) } }
@keyframes prm-shift { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes prm-sway  { 0%,100% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } }
@keyframes prm-stand { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes prm-run   { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) } }
@keyframes prm-ground { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes prm-shadow { 0%,100% { width: 40%; opacity: 0.3 } 50% { width: 50%; opacity: 0.4 } }

/* Scene 2: crowd-surrounds-hester */
.scn-crowd-surrounds-hester {
  background:
    linear-gradient(180deg, #c8d8e8 0%, #ede0c8 35%, #c4a86b 60%, #7a5a3a 100%),
    radial-gradient(ellipse at 30% 0%, #fff0b0 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-crowd-surrounds-hester .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a0c4e8 0%, #f0e6c8 100%);
  animation: csh-sky 12s ease-in-out infinite alternate;
}
.scn-crowd-surrounds-hester .sun-glow {
  position: absolute; top: 5%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe066 0%, #ffb347 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,224,102,0.5);
  animation: csh-glow 7s ease-in-out infinite alternate;
}
.scn-crowd-surrounds-hester .platform {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -5px 15px rgba(0,0,0,0.5);
  animation: csh-shift 14s ease-in-out infinite;
}
.scn-crowd-surrounds-hester .hester-stand {
  position: absolute; bottom: 25%; left: 48%; width: 22px; height: 75px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csh-stand 5s ease-in-out infinite;
}
.scn-crowd-surrounds-hester .crowd-left {
  position: absolute; bottom: 18%; left: 5%; width: 22%; height: 50%;
  background: radial-gradient(ellipse 60% 100% at 30% 100%, rgba(50,30,20,0.8) 0%, transparent 70%);
  clip-path: polygon(0% 100%, 10% 40%, 30% 50%, 50% 20%, 70% 30%, 90% 50%, 100% 100%);
  filter: blur(4px);
  animation: csh-wave 9s ease-in-out infinite;
}
.scn-crowd-surrounds-hester .crowd-right {
  position: absolute; bottom: 18%; right: 5%; width: 22%; height: 50%;
  background: radial-gradient(ellipse 60% 100% at 70% 100%, rgba(50,30,20,0.8) 0%, transparent 70%);
  clip-path: polygon(0% 50%, 20% 20%, 40% 40%, 60% 10%, 80% 30%, 100% 40%, 100% 100%, 0% 100%);
  filter: blur(4px);
  animation: csh-wave-rev 11s ease-in-out infinite;
}
.scn-crowd-surrounds-hester .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-crowd-surrounds-hester .letter-glow {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 16px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px rgba(200,85,61,0.7);
  animation: csh-pulse 2s ease-in-out infinite alternate;
}
@keyframes csh-sky    { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes csh-glow   { 0% { transform: scale(1); box-shadow: 0 0 80px 40px rgba(255,224,102,0.5) } 50% { transform: scale(1.08); box-shadow: 0 0 100px 50px rgba(255,224,102,0.7) } 100% { transform: scale(1); box-shadow: 0 0 80px 40px rgba(255,224,102,0.5) } }
@keyframes csh-shift  { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes csh-stand  { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes csh-wave   { 0% { transform: translateX(0) skewX(0deg) } 50% { transform: translateX(-5px) skewX(2deg) } 100% { transform: translateX(0) skewX(0deg) } }
@keyframes csh-wave-rev { 0% { transform: translateX(0) skewX(0deg) } 50% { transform: translateX(5px) skewX(-2deg) } 100% { transform: translateX(0) skewX(0deg) } }
@keyframes csh-pulse  { 0% { box-shadow: 0 0 20px 5px rgba(200,85,61,0.5); transform: scale(1) } 100% { box-shadow: 0 0 40px 12px rgba(200,85,61,0.8); transform: scale(1.1) } }

/* Scene 3: indian-curiosity */
.scn-indian-curiosity {
  background:
    linear-gradient(180deg, #b0c8e0 0%, #e8dcc8 40%, #b89868 65%, #6a4a2a 100%),
    radial-gradient(ellipse at 60% 0%, #ffe080 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-indian-curiosity .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9ab8d8 0%, #f5e6c8 100%);
  animation: ic-sky 10s ease-in-out infinite alternate;
}
.scn-indian-curiosity .sun-corona {
  position: absolute; top: 5%; right: 20%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 40%, transparent 65%);
  border-radius: 50%;
  box-shadow: 0 0 90px 45px rgba(255,215,0,0.4);
  animation: ic-corona 9s ease-in-out infinite alternate;
}
.scn-indian-curiosity .crowd-blur {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, rgba(40,25,10,0.6) 0%, transparent 80%);
  filter: blur(8px);
  clip-path: polygon(0% 100%, 20% 30%, 40% 50%, 60% 20%, 80% 40%, 100% 100%);
  animation: ic-drift 20s linear infinite;
}
.scn-indian-curiosity .hester-bosom {
  position: absolute; bottom: 28%; left: 42%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ic-hester 6s ease-in-out infinite;
}
.scn-indian-curiosity .indian-left {
  position: absolute; bottom: 24%; left: 20%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: ic-indian 4s ease-in-out infinite;
}
.scn-indian-curiosity .indian-right {
  position: absolute; bottom: 24%; right: 22%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ic-indian-rev 5s ease-in-out infinite;
}
.scn-indian-curiosity .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
}
.scn-indian-curiosity .shadow-veil {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse 60% 40% at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: ic-veil 5s ease-in-out infinite alternate;
}
@keyframes ic-sky    { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ic-corona { 0% { transform: scale(1); box-shadow: 0 0 90px 45px rgba(255,215,0,0.4) } 50% { transform: scale(1.06); box-shadow: 0 0 120px 60px rgba(255,215,0,0.6) } 100% { transform: scale(1); box-shadow: 0 0 90px 45px rgba(255,215,0,0.4) } }
@keyframes ic-drift { 0% { transform: translateX(-10%) } 100% { transform: translateX(10%) } }
@keyframes ic-hester { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes ic-indian { 0% { transform: rotate(5deg) translateX(0) } 25% { transform: rotate(3deg) translateX(-3px) } 50% { transform: rotate(8deg) translateX(0) } 75% { transform: rotate(4deg) translateX(3px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes ic-indian-rev { 0% { transform: rotate(-5deg) translateX(0) } 25% { transform: rotate(-3deg) translateX(3px) } 50% { transform: rotate(-8deg) translateX(0) } 75% { transform: rotate(-4deg) translateX(-3px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes ic-veil  { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.3 } }

/* Scene 4: hester-recognizes-matrons */
.scn-hester-recognizes-matrons {
  background:
    linear-gradient(180deg, #a0b8c8 0%, #d4c8a0 30%, #b89868 55%, #6a4a2a 80%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-hester-recognizes-matrons .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87a8c8 0%, #e8dcc0 100%);
  animation: hrm-sky 14s ease-in-out infinite alternate;
}
.scn-hester-recognizes-matrons .church-spire {
  position: absolute; top: 3%; left: 30%; width: 8px; height: 120px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 0 0 5% 5%;
  transform: rotate(-2deg);
  box-shadow: 2px 0 10px rgba(0,0,0,0.3);
  animation: hrm-spire 20s ease-in-out infinite;
}
.scn-hester-recognizes-matrons .hester-profile {
  position: absolute; bottom: 22%; left: 38%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrm-hester 7s ease-in-out infinite;
}
.scn-hester-recognizes-matrons .matron-group {
  position: absolute; bottom: 20%; right: 15%; width: 35%; height: 50%;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, rgba(70,40,25,0.7) 0%, transparent 80%);
  clip-path: polygon(0% 100%, 10% 40%, 25% 50%, 40% 30%, 55% 45%, 70% 20%, 85% 35%, 100% 100%);
  filter: blur(3px);
  animation: hrm-matron 12s ease-in-out infinite;
}
.scn-hester-recognizes-matrons .missing-matron {
  position: absolute; bottom: 22%; right: 8%; width: 18px; height: 50px;
  background: linear-gradient(180deg, rgba(100,60,40,0.5) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.4;
  animation: hrm-fade 8s ease-in-out infinite alternate;
}
.scn-hester-recognizes-matrons .grave-cross {
  position: absolute; bottom: 18%; left: 25%; width: 8px; height: 40px;
  background: #5a3a1a;
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: hrm-cross 15s ease-in-out infinite;
}
.scn-hester-recognizes-matrons .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
}
.scn-hester-recognizes-matrons .burial-robe {
  position: absolute; bottom: 0; left: 40%; width: 20px; height: 30px;
  background: radial-gradient(ellipse 60% 100% at 50% 0%, rgba(180,160,140,0.4) 0%, transparent 100%);
  filter: blur(2px);
  animation: hrm-robe 10s ease-in-out infinite;
}
@keyframes hrm-sky    { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hrm-spire  { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } }
@keyframes hrm-hester { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes hrm-matron { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-3px) scaleY(1.05) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes hrm-fade   { 0% { opacity: 0.4; transform: scaleY(1) } 100% { opacity: 0.15; transform: scaleY(0.8) } }
@keyframes hrm-cross  { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes hrm-robe   { 0% { opacity: 0.3; transform: scaleX(1) } 50% { opacity: 0.5; transform: scaleX(1.2) } 100% { opacity: 0.3; transform: scaleX(1) } }

.scn-stranger-should-come { background: linear-gradient(180deg, #fff5d6 0%, #87ceeb 60%, #4682b4 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%); }
.scn-stranger-should-come .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fff8dc 0%, #87ceeb 100%); animation: ssc-sky 8s ease-in-out infinite alternate; }
.scn-stranger-should-come .sun { position:absolute; top:8%; left:55%; width:60px; height:60px; background: radial-gradient(circle, #ffd700 0%, #ffb347 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 20px #ffd700, 0 0 120px 40px rgba(255,215,0,0.3); animation: ssc-sun 6s ease-in-out infinite alternate; }
.scn-stranger-should-come .town-skyline { position:absolute; bottom:35%; left:5%; right:5%; height:20%; background: linear-gradient(90deg, #4a4a3a 0%, #3a3a2a 50%, #4a4a3a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: ssc-buildings 12s ease-in-out infinite alternate; }
.scn-stranger-should-come .crowd { position:absolute; bottom:20%; left:10%; right:10%; height:15%; background: repeating-linear-gradient(90deg, #3a3a2a 0px, #3a3a2a 8px, #2a2a1a 8px, #2a2a1a 16px); clip-path: polygon(0% 100%, 0% 30%, 10% 20%, 20% 30%, 30% 15%, 40% 25%, 50% 10%, 60% 25%, 70% 15%, 80% 20%, 90% 30%, 100% 20%, 100% 100%); animation: ssc-crowd 4s ease-in-out infinite alternate; }
.scn-stranger-should-come .stranger { position:absolute; bottom:12%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssc-stranger-walk 5s ease-in-out infinite; }
.scn-stranger-should-come .ground { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); }
@keyframes ssc-sky { 0%{ opacity:0.9 } 50%{ opacity:1 } 100%{ opacity:0.85 } }
@keyframes ssc-sun { 0%{ transform: scale(1); opacity:0.9 } 50%{ transform: scale(1.05); opacity:1 } 100%{ transform: scale(0.95); opacity:0.85 } }
@keyframes ssc-buildings { 0%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } 100%{ transform: translateY(1px) } }
@keyframes ssc-crowd { 0%{ transform: translateX(0) } 50%{ transform: translateX(3px) } 100%{ transform: translateX(-2px) } }
@keyframes ssc-stranger-walk { 0%{ transform: translateX(0) translateY(0) rotate(-1deg) } 25%{ transform: translateX(8px) translateY(-2px) rotate(1deg) } 50%{ transform: translateX(16px) translateY(0) rotate(-1deg) } 75%{ transform: translateX(24px) translateY(-1px) rotate(2deg) } 100%{ transform: translateX(32px) translateY(0) rotate(0) } }

.scn-townsman-sentence { background: linear-gradient(180deg, #fff0c0 0%, #87ceeb 50%, #4682b4 100%), radial-gradient(ellipse at 60% 20%, #fff4d4 0%, transparent 60%); }
.scn-townsman-sentence .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fff8dc 0%, #87ceeb 100%); animation: ts-sky 10s ease-in-out infinite alternate; }
.scn-townsman-sentence .scaffold { position:absolute; bottom:20%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); animation: ts-scaffold 8s ease-in-out infinite; }
.scn-townsman-sentence .hester { position:absolute; bottom:35%; left:50%; width:18px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: ts-hester-stand 4s ease-in-out infinite; }
.scn-townsman-sentence .townsman { position:absolute; bottom:10%; left:40%; width:24px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ts-townsman-speak 3s ease-in-out infinite; }
.scn-townsman-sentence .crowd { position:absolute; bottom:5%; left:10%; right:10%; height:18%; background: repeating-linear-gradient(90deg, #3a3a2a 0px, #3a3a2a 6px, #2a2a1a 6px, #2a2a1a 12px); clip-path: polygon(0% 100%, 5% 40%, 15% 30%, 25% 40%, 35% 20%, 45% 30%, 55% 15%, 65% 25%, 75% 20%, 85% 35%, 95% 25%, 100% 40%, 100% 100%); animation: ts-crowd 6s ease-in-out infinite alternate; }
.scn-townsman-sentence .sun { position:absolute; top:5%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #ffd700 0%, #ffb347 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 15px #ffd700, 0 0 100px 30px rgba(255,215,0,0.25); animation: ts-sun 5s ease-in-out infinite alternate; }
@keyframes ts-sky { 0%{ opacity:0.85 } 50%{ opacity:1 } 100%{ opacity:0.9 } }
@keyframes ts-scaffold { 0%{ transform: translateX(-50%) translateY(0) } 50%{ transform: translateX(-50%) translateY(-3px) } 100%{ transform: translateX(-50%) translateY(0) } }
@keyframes ts-hester-stand { 0%{ transform: translateX(-50%) translateY(0) } 50%{ transform: translateX(-50%) translateY(-1px) } 100%{ transform: translateX(-50%) translateY(0) } }
@keyframes ts-townsman-speak { 0%{ transform: translateY(0) rotate(-2deg) } 25%{ transform: translateY(-5px) rotate(3deg) } 50%{ transform: translateY(-2px) rotate(-1deg) } 75%{ transform: translateY(-6px) rotate(4deg) } 100%{ transform: translateY(0) rotate(0) } }
@keyframes ts-crowd { 0%{ transform: translateX(0) } 50%{ transform: translateX(4px) } 100%{ transform: translateX(-3px) } }
@keyframes ts-sun { 0%{ transform: scale(1); opacity:0.9 } 50%{ transform: scale(1.03); opacity:1 } 100%{ transform: scale(0.97); opacity:0.85 } }

.scn-stranger-wise-sentence { background: linear-gradient(180deg, #fff5d6 0%, #87ceeb 50%, #4682b4 100%), radial-gradient(ellipse at 30% 40%, #fff8dc 0%, transparent 70%); }
.scn-stranger-wise-sentence .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fff8dc 0%, #87ceeb 100%); animation: sws-sky 9s ease-in-out infinite alternate; }
.scn-stranger-wise-sentence .scaffold { position:absolute; bottom:20%; left:50%; width:100px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); animation: sws-scaffold 7s ease-in-out infinite; }
.scn-stranger-wise-sentence .hester { position:absolute; bottom:30%; left:40%; width:16px; height:38px; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: sws-hester 3s ease-in-out infinite; }
.scn-stranger-wise-sentence .stranger { position:absolute; bottom:10%; left:60%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sws-stranger 5s ease-in-out infinite; }
.scn-stranger-wise-sentence .crowd { position:absolute; bottom:5%; left:5%; right:5%; height:15%; background: repeating-linear-gradient(90deg, #3a3a2a 0px, #3a3a2a 5px, #2a2a1a 5px, #2a2a1a 10px); clip-path: polygon(0% 100%, 10% 20%, 20% 40%, 30% 15%, 40% 30%, 50% 10%, 60% 35%, 70% 25%, 80% 20%, 90% 40%, 100% 30%, 100% 100%); animation: sws-crowd 4s ease-in-out infinite alternate; }
.scn-stranger-wise-sentence .letter { position:absolute; bottom:45%; left:38%; width:30px; height:30px; background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); transform: rotate(45deg); border-radius: 4px; box-shadow: 0 0 40px 10px #c8553d, 0 0 80px 20px rgba(200,85,61,0.4); animation: sws-letter 2s ease-in-out infinite alternate; }
@keyframes sws-sky { 0%{ opacity:0.9 } 50%{ opacity:1 } 100%{ opacity:0.85 } }
@keyframes sws-scaffold { 0%{ transform: translateX(-50%) translateY(0) } 50%{ transform: translateX(-50%) translateY(-2px) } 100%{ transform: translateX(-50%) translateY(0) } }
@keyframes sws-hester { 0%{ transform: translateY(0) } 50%{ transform: translateY(-2px) } 100%{ transform: translateY(0) } }
@keyframes sws-stranger { 0%{ transform: translateY(0) rotate(-1deg) } 25%{ transform: translateY(-3px) rotate(2deg) } 50%{ transform: translateY(-1px) rotate(-2deg) } 75%{ transform: translateY(-4px) rotate(3deg) } 100%{ transform: translateY(0) rotate(0) } }
@keyframes sws-crowd { 0%{ transform: translateX(0) } 50%{ transform: translateX(3px) } 100%{ transform: translateX(-2px) } }
@keyframes sws-letter { 0%{ transform: rotate(45deg) scale(1); opacity:0.8 } 50%{ transform: rotate(45deg) scale(1.1); opacity:1 } 100%{ transform: rotate(45deg) scale(0.95); opacity:0.9 } }

.scn-stranger-departs { background: linear-gradient(180deg, #fff5d6 0%, #87ceeb 60%, #4682b4 100%), radial-gradient(ellipse at 50% 20%, #fff8dc 0%, transparent 70%); }
.scn-stranger-departs .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fff8dc 0%, #87ceeb 100%); animation: sd-sky 11s ease-in-out infinite alternate; }
.scn-stranger-departs .scaffold { position:absolute; bottom:25%; left:50%; width:90px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); animation: sd-scaffold 9s ease-in-out infinite; }
.scn-stranger-departs .hester { position:absolute; bottom:35%; left:50%; width:16px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: sd-hester 4s ease-in-out infinite; }
.scn-stranger-departs .stranger { position:absolute; bottom:15%; left:20%; width:20px; height:48px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd-stranger-walk 6s ease-in-out infinite; }
.scn-stranger-departs .attendant { position:absolute; bottom:12%; left:12%; width:18px; height:44px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sd-attendant-walk 6s ease-in-out infinite -1s; }
.scn-stranger-departs .crowd-left { position:absolute; bottom:5%; left:0; width:40%; height:20%; background: repeating-linear-gradient(90deg, #3a3a2a 0px, #3a3a2a 5px, #2a2a1a 5px, #2a2a1a 10px); clip-path: polygon(0% 100%, 0% 30%, 10% 20%, 20% 40%, 30% 15%, 40% 25%, 50% 10%, 60% 20%, 70% 30%, 80% 15%, 90% 25%, 100% 20%, 100% 100%); animation: sd-crowd-left 7s ease-in-out infinite alternate; }
.scn-stranger-departs .crowd-right { position:absolute; bottom:5%; right:0; width:40%; height:20%; background: repeating-linear-gradient(270deg, #3a3a2a 0px, #3a3a2a 5px, #2a2a1a 5px, #2a2a1a 10px); clip-path: polygon(0% 20%, 10% 30%, 20% 15%, 30% 25%, 40% 10%, 50% 20%, 60% 30%, 70% 15%, 80% 40%, 90% 20%, 100% 30%, 100% 100%, 0% 100%); animation: sd-crowd-right 7s ease-in-out infinite alternate -2s; }
@keyframes sd-sky { 0%{ opacity:0.85 } 50%{ opacity:1 } 100%{ opacity:0.9 } }
@keyframes sd-scaffold { 0%{ transform: translateX(-50%) translateY(0) } 50%{ transform: translateX(-50%) translateY(-2px) } 100%{ transform: translateX(-50%) translateY(0) } }
@keyframes sd-hester { 0%{ transform: translateX(-50%) translateY(0) } 50%{ transform: translateX(-50%) translateY(-1px) } 100%{ transform: translateX(-50%) translateY(0) } }
@keyframes sd-stranger-walk { 0%{ transform: translateX(0) translateY(0) rotate(-1deg) } 25%{ transform: translateX(-15px) translateY(-2px) rotate(1deg) } 50%{ transform: translateX(-30px) translateY(0) rotate(-1deg) } 75%{ transform: translateX(-45px) translateY(-1px) rotate(2deg) } 100%{ transform: translateX(-60px) translateY(0) rotate(0) } }
@keyframes sd-attendant-walk { 0%{ transform: translateX(0) translateY(0) rotate(-1deg) } 25%{ transform: translateX(-12px) translateY(-2px) rotate(1deg) } 50%{ transform: translateX(-24px) translateY(0) rotate(-1deg) } 75%{ transform: translateX(-36px) translateY(-1px) rotate(2deg) } 100%{ transform: translateX(-48px) translateY(0) rotate(0) } }
@keyframes sd-crowd-left { 0%{ transform: translateX(0) } 50%{ transform: translateX(3px) } 100%{ transform: translateX(-2px) } }
@keyframes sd-crowd-right { 0%{ transform: translateX(0) } 50%{ transform: translateX(-3px) } 100%{ transform: translateX(2px) } }

.scn-congratulating-on-losing-side {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e16 50%, #1c120c 100%),
              radial-gradient(ellipse at 50% 60%, #3a2820 0%, transparent 70%);
}
.scn-congratulating-on-losing-side .cls-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a1e16 0%, transparent 100%);
  animation: cls-wall 20s ease-in-out infinite alternate;
}
.scn-congratulating-on-losing-side .cls-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1f1712 0%, #120e0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.6);
  animation: cls-floor 15s ease-in-out infinite;
}
.scn-congratulating-on-losing-side .cls-table {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 4%;
  background: linear-gradient(90deg, #3a2a1e 0%, #4a3626 50%, #3a2a1e 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: cls-table 8s ease-in-out infinite;
}
.scn-congratulating-on-losing-side .cls-candle {
  position: absolute; bottom: 24%; left: 48%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #d4b080 0%, #a07040 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.4);
  animation: cls-candle 4s ease-in-out infinite;
}
.scn-congratulating-on-losing-side .cls-flame {
  position: absolute; bottom: 31%; left: 48%; width: 1.5%; height: 3%;
  margin-left: -0.75%;
  background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 16px rgba(255,160,64,.3);
  animation: cls-flame 2s ease-in-out infinite alternate;
}
.scn-congratulating-on-losing-side .cls-figure {
  position: absolute; bottom: 20%; left: 55%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cls-figure 12s ease-in-out infinite;
}
.scn-congratulating-on-losing-side .cls-book {
  position: absolute; bottom: 20.5%; left: 38%; width: 8%; height: 3%;
  background: linear-gradient(135deg, #6a4a30 0%, #4a2e1a 100%);
  border-radius: 1px;
  box-shadow: 0 2px 6px rgba(0,0,0,.7);
  animation: cls-book 14s ease-in-out infinite alternate;
}

@keyframes cls-wall   { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes cls-floor  { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cls-table  { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) translateY(-1px) } }
@keyframes cls-candle { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes cls-flame  { 0% { transform: scale(1) rotate(-2deg); opacity:.9; box-shadow:0 0 18px 6px #ffa040; } 50% { transform: scale(1.15) rotate(2deg); opacity:1; box-shadow:0 0 28px 10px #ffb060; } 100% { transform: scale(.95) rotate(0); opacity:.85; box-shadow:0 0 14px 4px #ff9040; } }
@keyframes cls-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-1px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cls-book   { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0) translateY(0); } }

.scn-decapitation-as-comfort {
  background: linear-gradient(180deg, #1e1612 0%, #2c2018 50%, #18100c 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1e 0%, transparent 60%);
}
.scn-decapitation-as-comfort .dcc-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2c2018 0%, #1a120e 100%);
  animation: dcc-wall 18s ease-in-out infinite alternate;
}
.scn-decapitation-as-comfort .dcc-pedestal {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2e2218 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 6px 14px rgba(0,0,0,.6);
  animation: dcc-pedestal 10s ease-in-out infinite;
}
.scn-decapitation-as-comfort .dcc-head {
  position: absolute; bottom: 25%; left: 44%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #2e2218 0%, #1c1410 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: dcc-head 8s ease-in-out infinite alternate;
}
.scn-decapitation-as-comfort .dcc-shadow {
  position: absolute; bottom: 14%; left: 38%; width: 24%; height: 3%;
  background: rgba(0,0,0,.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: dcc-shadow 8s ease-in-out infinite alternate;
}
.scn-decapitation-as-comfort .dcc-curtain {
  position: absolute; top: 0; left: 0; width: 18%; height: 100%;
  background: linear-gradient(180deg, #3a2820 0%, #221812 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: 2px 0 12px rgba(0,0,0,.4);
  animation: dcc-curtain 30s ease-in-out infinite alternate;
}
.scn-decapitation-as-comfort .dcc-drape {
  position: absolute; top: 0; right: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #1e1612 0%, #2c2018 100%);
  border-radius: 20% 0 0 20%;
  box-shadow: -2px 0 8px rgba(0,0,0,.4);
  animation: dcc-drape 25s ease-in-out infinite alternate;
}

@keyframes dcc-wall    { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes dcc-pedestal{ 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes dcc-head    { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes dcc-shadow  { 0% { transform: scaleX(1); opacity:.3 } 50% { transform: scaleX(1.1); opacity:.5 } 100% { transform: scaleX(1); opacity:.3 } }
@keyframes dcc-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes dcc-drape   { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }

.scn-suicide-by-murder-analogy {
  background: linear-gradient(180deg, #1e1a14 0%, #2a2218 40%, #1a1610 100%),
              radial-gradient(ellipse at 50% 70%, #3a2e20 0%, transparent 80%);
}
.scn-suicide-by-murder-analogy .sma-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2218 0%, transparent 100%);
  animation: sma-wall 22s ease-in-out infinite alternate;
}
.scn-suicide-by-murder-analogy .sma-desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #3a2e20 0%, #221a12 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: sma-desk 15s ease-in-out infinite;
}
.scn-suicide-by-murder-analogy .sma-paper1 {
  position: absolute; bottom: 35%; left: 20%; width: 14%; height: 10%;
  background: linear-gradient(135deg, #d4c8b0 0%, #b8a890 100%);
  border-radius: 1px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: sma-paper1 20s ease-in-out infinite alternate;
}
.scn-suicide-by-murder-analogy .sma-paper2 {
  position: absolute; bottom: 38%; left: 40%; width: 16%; height: 8%;
  background: linear-gradient(135deg, #c8bca0 0%, #a89880 100%);
  border-radius: 1px;
  transform: rotate(3deg);
  box-shadow: 0 3px 8px rgba(0,0,0,.3);
  animation: sma-paper2 18s ease-in-out infinite alternate-reverse;
}
.scn-suicide-by-murder-analogy .sma-paper3 {
  position: absolute; bottom: 34%; left: 62%; width: 12%; height: 12%;
  background: linear-gradient(135deg, #d0c0a8 0%, #b0a088 100%);
  border-radius: 1px;
  transform: rotate(-8deg);
  box-shadow: 0 2px 5px rgba(0,0,0,.25);
  animation: sma-paper3 25s ease-in-out infinite alternate;
}
.scn-suicide-by-murder-analogy .sma-inkwell {
  position: absolute; bottom: 30%; left: 32%; width: 4%; height: 5%;
  background: linear-gradient(180deg, #1a1a20 0%, #0e0e12 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: sma-inkwell 12s ease-in-out infinite;
}
.scn-suicide-by-murder-analogy .sma-quill {
  position: absolute; bottom: 34%; left: 35%; width: 1%; height: 12%;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 1px 1px 40% 40%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: sma-quill 9s ease-in-out infinite alternate;
}
.scn-suicide-by-murder-analogy .sma-lamp {
  position: absolute; bottom: 44%; left: 55%; width: 6%; height: 10%;
  background: radial-gradient(ellipse at 50% 80%, #ffd090 0%, #b07840 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 24px 8px #b07840, 0 0 48px 16px rgba(176,120,64,.3);
  animation: sma-lamp 5s ease-in-out infinite alternate;
}

@keyframes sma-wall    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sma-desk    { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes sma-paper1  { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes sma-paper2  { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes sma-paper3  { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-3px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes sma-inkwell { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes sma-quill   { 0% { transform: rotate(20deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(20deg) } }
@keyframes sma-lamp    { 0% { box-shadow: 0 0 20px 6px #b07840; opacity:.85 } 50% { box-shadow: 0 0 32px 10px #e09c5e; opacity:1 } 100% { box-shadow: 0 0 18px 4px #b07840; opacity:.8 } }

.scn-recognized-as-enemy {
  background: linear-gradient(180deg, #1a1410 0%, #2c1e18 40%, #16100c 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a22 0%, transparent 70%);
}
.scn-recognized-as-enemy .rae-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2c1e18 0%, #16100c 100%);
  animation: rae-wall 20s ease-in-out infinite alternate;
}
.scn-recognized-as-enemy .rae-doorway {
  position: absolute; bottom: 0; left: 38%; right: 38%; height: 80%;
  background: linear-gradient(180deg, #1c1612 0%, #0e0a08 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7);
  animation: rae-doorway 25s ease-in-out infinite;
}
.scn-recognized-as-enemy .rae-figure {
  position: absolute; bottom: 0; left: 45%; width: 10%; height: 60%;
  background: linear-gradient(180deg, #201a16 0%, #0e0a08 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: rae-figure 14s ease-in-out infinite;
}
.scn-recognized-as-enemy .rae-coat {
  position: absolute; bottom: 0; left: 43%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 100%);
  border-radius: 30% 30% 15% 15%;
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: rae-coat 12s ease-in-out infinite alternate;
}
.scn-recognized-as-enemy .rae-hat {
  position: absolute; bottom: 56%; left: 45%; width: 10%; height: 6%;
  background: linear-gradient(180deg, #1c1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,.5);
  animation: rae-hat 10s ease-in-out infinite;
}
.scn-recognized-as-enemy .rae-lantern {
  position: absolute; bottom: 40%; left: 42%; width: 3%; height: 5%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3);
  animation: rae-lantern 6s ease-in-out infinite alternate;
}
.scn-recognized-as-enemy .rae-shadow {
  position: absolute; bottom: 0; left: 35%; width: 30%; height: 4%;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: rae-shadow 14s ease-in-out infinite alternate;
}

@keyframes rae-wall    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rae-doorway { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes rae-figure  { 0% { transform: rotate(0) } 25% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 75% { transform: rotate(-.5deg) } 100% { transform: rotate(0) } }
@keyframes rae-coat    { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rae-hat     { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rae-lantern { 0% { box-shadow: 0 0 16px 4px #c08040; opacity:.8 } 50% { box-shadow: 0 0 28px 8px #e0a060; opacity:1 } 100% { box-shadow: 0 0 14px 3px #c08040; opacity:.85 } }
@keyframes rae-shadow  { 0% { transform: scaleX(1); opacity:.4 } 50% { transform: scaleX(1.15); opacity:.6 } 100% { transform: scaleX(1); opacity:.4 } }

.scn-children-strange { background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 40%, #3a3a4a 100%), radial-gradient(ellipse at 50% 30%, #7a7a8a 0%, transparent 60%); }
.scn-children-strange .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a6a7a 0%, #5a5a6a 100%); animation: cs-sky 15s ease-in-out infinite alternate; }
.scn-children-strange .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0 / 80% 70% 0 0; animation: cs-hills 12s ease-in-out infinite alternate; }
.scn-children-strange .mother { position:absolute; bottom:30%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-figure 6s ease-in-out infinite; }
.scn-children-strange .child { position:absolute; bottom:32%; left:48%; width:25px; height:35px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30%; animation: cs-child 4s ease-in-out infinite; }
.scn-children-strange .embrace { position:absolute; bottom:32%; left:46%; width:20px; height:15px; background: #3a3a4a; border-radius: 50%; transform: rotate(-15deg); animation: cs-embrace 4s ease-in-out infinite; }
.scn-children-strange .cloud-slow { position:absolute; top:15%; left:10%; width:90px; height:25px; background: rgba(255,255,255,0.12); filter: blur(8px); border-radius: 50%; animation: cs-cloud 40s linear infinite; }
.scn-children-strange .light-glimmer { position:absolute; top:45%; left:55%; width:8px; height:8px; background: #b0b0c0; border-radius: 50%; box-shadow: 0 0 20px 6px rgba(180,180,200,0.3); animation: cs-glimmer 2.5s ease-in-out infinite alternate; }

@keyframes cs-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cs-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cs-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-48%) rotate(2deg) } 75% { transform: translateX(-52%) rotate(-2deg) } }
@keyframes cs-child { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(5deg) translateX(2px) } }
@keyframes cs-embrace { 0%,100% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.1) } }
@keyframes cs-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }
@keyframes cs-glimmer { 0% { opacity:0.3; transform: scale(0.8) } 100% { opacity:1; transform: scale(1.2) } }

.scn-pearl-at-brook-margin { background: linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 40%, #3a4a4a 100%), radial-gradient(ellipse at 50% 60%, #6a7a7a 0%, transparent 70%); }
.scn-pearl-at-brook-margin .sky-brook { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 100%); animation: pb-sky 18s ease-in-out infinite alternate; }
.scn-pearl-at-brook-margin .treeline { position:absolute; bottom:40%; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; }
.scn-pearl-at-brook-margin .brook { position:absolute; bottom:25%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 100%); border-radius: 0 0 30% 30%; animation: pb-brook 6s ease-in-out infinite alternate; }
.scn-pearl-at-brook-margin .pearl-figure { position:absolute; bottom:30%; left:50%; width:30px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pb-figure 4s ease-in-out infinite; }
.scn-pearl-at-brook-margin .pearl-reflection { position:absolute; bottom:20%; left:50%; width:30px; height:40px; transform: translateX(-50%) scaleY(-0.8); background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); border-radius: 40% 40% 50% 50% / 40% 40% 60% 60%; opacity:0.6; animation: pb-reflection 4s ease-in-out infinite; }
.scn-pearl-at-brook-margin .water-ripple { position:absolute; bottom:28%; left:45%; width:40px; height:10px; border: 2px solid rgba(255,255,255,0.1); border-radius: 50%; background: transparent; animation: pb-ripple 3s ease-out infinite; }
.scn-pearl-at-brook-margin .flower-wreath { position:absolute; bottom:34%; left:49%; width:18px; height:18px; background: radial-gradient(circle, #b8a878 0%, #8a7a5a 60%, transparent 70%); border-radius: 50%; animation: pb-wreath 5s ease-in-out infinite; }

@keyframes pb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pb-brook { 0% { transform: translateY(0); opacity:0.9 } 50% { transform: translateY(2px); opacity:1 } 100% { transform: translateY(0); opacity:0.9 } }
@keyframes pb-figure { 0%,100% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-49%) rotate(3deg) } 75% { transform: translateX(-51%) rotate(-3deg) } }
@keyframes pb-reflection { 0%,100% { transform: translateX(-50%) scaleY(-0.8) rotate(0deg); opacity:0.5 } 50% { transform: translateX(-50%) scaleY(-0.8) rotate(2deg); opacity:0.7 } }
@keyframes pb-ripple { 0% { transform: scale(0.5); opacity:0.5 } 50% { transform: scale(1.2); opacity:0.2 } 100% { transform: scale(2); opacity:0 } }
@keyframes pb-wreath { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(10deg) } }

.scn-reflected-image { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 50%, #4a4a5a 0%, transparent 70%); }
.scn-reflected-image .forest-gloom { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); animation: ri-gloom 20s ease-in-out infinite alternate; }
.scn-reflected-image .pearl-left { position:absolute; bottom:25%; left:30%; width:35px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ri-p-left 4s ease-in-out infinite; }
.scn-reflected-image .pearl-right { position:absolute; bottom:25%; right:30%; width:35px; height:60px; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: ri-p-right 4s ease-in-out infinite; }
.scn-reflected-image .mirror-line { position:absolute; top:0; bottom:0; left:50%; width:4px; background: rgba(255,255,255,0.1); box-shadow: 0 0 12px rgba(255,255,255,0.2); animation: ri-mirror 3s ease-in-out infinite alternate; }
.scn-reflected-image .ground-rim { position:absolute; bottom:20%; left:0; right:0; height:10%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 20% 80% 0 0; }
.scn-reflected-image .fog-mist { position:absolute; top:30%; left:20%; width:60%; height:40%; background: radial-gradient(ellipse, rgba(200,200,220,0.1) 0%, transparent 70%); filter: blur(10px); animation: ri-fog 15s ease-in-out infinite alternate; }
.scn-reflected-image .shadow-overlay { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, transparent 0%, rgba(0,0,0,0.3) 100%); pointer-events: none; }

@keyframes ri-gloom { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ri-p-left { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(4deg) } 75% { transform: rotate(-4deg) } }
@keyframes ri-p-right { 0%,100% { transform: scaleX(-1) rotate(0deg) } 25% { transform: scaleX(-1) rotate(-4deg) } 75% { transform: scaleX(-1) rotate(4deg) } }
@keyframes ri-mirror { 0% { opacity:0.3; transform: scaleY(1) } 50% { opacity:0.7; transform: scaleY(1.1) } 100% { opacity:0.3; transform: scaleY(1) } }
@keyframes ri-fog { 0% { transform: translateX(-10px) scale(0.95); opacity:0.5 } 50% { transform: translateX(5px) scale(1.05); opacity:0.8 } 100% { transform: translateX(-10px) scale(0.95); opacity:0.5 } }

.scn-estranged-from-pearl { background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 40%, #5a5a6a 0%, transparent 60%); }
.scn-estranged-from-pearl .forest-back { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); animation: ep-forest 25s ease-in-out infinite alternate; }
.scn-estranged-from-pearl .hester-figure { position:absolute; bottom:30%; left:25%; width:40px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ep-hester 6s ease-in-out infinite; }
.scn-estranged-from-pearl .pearl-afar { position:absolute; bottom:30%; right:25%; width:25px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.7; animation: ep-pearl 8s ease-in-out infinite; }
.scn-estranged-from-pearl .void-gap { position:absolute; bottom:30%; left:40%; right:40%; height:30%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); animation: ep-void 3s ease-in-out infinite alternate; }
.scn-estranged-from-pearl .ground-base { position:absolute; bottom:15%; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 70% 0 0; }
.scn-estranged-from-pearl .mote-particle { position:absolute; top:20%; left:45%; width:6px; height:6px; background: rgba(200,200,220,0.3); border-radius: 50%; box-shadow: 0 0 8px rgba(200,200,220,0.2); animation: ep-mote 12s linear infinite; }
.scn-estranged-from-pearl .branch-fore { position:absolute; bottom:45%; left:5%; width:40px; height:8px; background: #2a2a1a; border-radius: 60% 20% 20% 40%; transform: rotate(30deg); animation: ep-branch 10s ease-in-out infinite alternate; }

@keyframes ep-forest { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ep-hester { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-5px) rotate(2deg) } 75% { transform: translateX(5px) rotate(-2deg) } }
@keyframes ep-pearl { 0%,100% { transform: translateX(0) rotate(0deg); opacity:0.7 } 50% { transform: translateX(-8px) rotate(3deg); opacity:0.5 } }
@keyframes ep-void { 0% { opacity:0.6; transform: scaleX(1) } 50% { opacity:0.9; transform: scaleX(1.2) } 100% { opacity:0.6; transform: scaleX(1) } }
@keyframes ep-mote { 0% { transform: translate(0,0); opacity:0.3 } 25% { transform: translate(10px,-20px); opacity:0.7 } 50% { transform: translate(20px,-10px); opacity:0.2 } 75% { transform: translate(30px,-30px); opacity:0.6 } 100% { transform: translate(40px,-20px); opacity:0.3 } }
@keyframes ep-branch { 0% { transform: rotate(30deg) scaleX(1) } 50% { transform: rotate(28deg) scaleX(1.1) } 100% { transform: rotate(30deg) scaleX(1) } }

/* Scene: hester-demand-for-labor (dl) – dim interior, calm */
.scn-hester-demand-for-labor {
  background: linear-gradient(180deg, #2a2028 0%, #1c161c 50%, #140e14 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a30 0%, transparent 70%);
  filter: contrast(0.9) brightness(0.8);
}
.scn-hester-demand-for-labor .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2e242a 0%, #1e161c 100%);
  border-radius: 0; box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-hester-demand-for-labor .window {
  position: absolute; top: 12%; left: 25%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #4a3a3e 0%, #2a1e22 100%);
  border-radius: 4% / 6%; box-shadow: inset 0 0 20px #1a1014, 0 0 10px rgba(0,0,0,0.5);
  animation: dl-window 8s ease-in-out infinite alternate;
}
.scn-hester-demand-for-labor .candle {
  position: absolute; bottom: 35%; left: 55%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c08050 70%, #4a3020 100%);
  border-radius: 30% 30% 10% 10%; transform-origin: bottom center;
  box-shadow: 0 -8px 20px 6px rgba(240,200,120,0.4);
  animation: dl-candle 3s ease-in-out infinite alternate;
}
.scn-hester-demand-for-labor .figure {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1014 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dl-figure 6s ease-in-out infinite;
}
.scn-hester-demand-for-labor .frame {
  position: absolute; bottom: 30%; left: 48%; width: 30px; height: 26px;
  background: radial-gradient(circle at 50% 40%, #3a2a28 0%, #2a1e22 70%);
  border-radius: 40% / 30%; box-shadow: 0 0 8px rgba(0,0,0,0.4);
  animation: dl-frame 7s ease-in-out infinite alternate;
}
.scn-hester-demand-for-labor .table {
  position: absolute; bottom: 18%; left: 35%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #2a1e20 0%, #1a1012 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.5);
  animation: dl-table 10s ease-in-out infinite;
}
.scn-hester-demand-for-labor .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 50%; height: 4px;
  background: radial-gradient(ellipse, #0a0608 0%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
  animation: dl-shadow 8s ease-in-out infinite alternate;
}
@keyframes dl-window {
  0% { opacity: 0.7; transform: scaleY(0.98); }
  50% { opacity: 0.85; transform: scaleY(1); }
  100% { opacity: 0.75; transform: scaleY(0.96); }
}
@keyframes dl-candle {
  0% { transform: scaleY(0.9) rotate(-1deg); opacity: 0.8; box-shadow: 0 -6px 12px 4px rgba(240,200,120,0.3); }
  50% { transform: scaleY(1.1) rotate(0deg); opacity: 1; box-shadow: 0 -10px 24px 8px rgba(240,200,120,0.6); }
  100% { transform: scaleY(0.95) rotate(1deg); opacity: 0.85; box-shadow: 0 -7px 16px 5px rgba(240,200,120,0.4); }
}
@keyframes dl-figure {
  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 dl-frame {
  0% { transform: rotate(-3deg) scale(0.97); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(0.98); }
}
@keyframes dl-table {
  0%, 100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(0.99); }
}
@keyframes dl-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  100% { opacity: 0.8; transform: scaleX(1.1); }
}

/* Scene: hester-funeral-work (fw) – dim interior, dark */
.scn-hester-funeral-work {
  background: linear-gradient(180deg, #0e0a0c 0%, #1a1014 30%, #0e0a0c 70%, #060408 100%),
              radial-gradient(ellipse at 50% 70%, #2a1e22 0%, transparent 60%);
  filter: brightness(0.7) contrast(1.1);
}
.scn-hester-funeral-work .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0c080a 0%, #1a1014 50%, #0c080a 100%);
  border-radius: 0; box-shadow: inset 0 0 100px rgba(0,0,0,0.8);
}
.scn-hester-funeral-work .catafalque {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 35%;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1014 100%);
  border-radius: 8% 8% 0 0 / 10% 10% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.7);
}
.scn-hester-funeral-work .coffin {
  position: absolute; bottom: 20%; left: 32%; width: 36%; height: 20%;
  background: linear-gradient(180deg, #3a2a2e 0%, #1a1014 100%);
  border-radius: 12% 12% 6% 6% / 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8), inset 0 2px 4px rgba(255,255,255,0.05);
  animation: fw-coffin 10s ease-in-out infinite alternate;
}
.scn-hester-funeral-work .drape {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(180deg, #2a1e22 0%, #1a1014 70%, transparent 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,0.6));
  animation: fw-drape 15s ease-in-out infinite alternate;
}
.scn-hester-funeral-work .figure {
  position: absolute; bottom: 18%; left: 48%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1014 0%, #0c080a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fw-figure 8s ease-in-out infinite;
}
.scn-hester-funeral-work .candle {
  position: absolute; bottom: 25%; left: 52%; width: 5px; height: 16px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c08050 60%, #4a3020 100%);
  border-radius: 30% 30% 10% 10%; transform-origin: bottom center;
  box-shadow: 0 -6px 18px 4px rgba(240,200,120,0.3);
  animation: fw-candle 3s ease-in-out infinite alternate;
}
.scn-hester-funeral-work .wreath {
  position: absolute; bottom: 28%; left: 44%; width: 28px; height: 28px;
  background: radial-gradient(circle, #1a1014 0%, #2a1e22 40%, #3a2a2e 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: fw-wreath 9s ease-in-out infinite alternate;
}
@keyframes fw-coffin {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(0.99); }
  100% { transform: translateY(1px) scale(1); }
}
@keyframes fw-drape {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.8; }
  50% { transform: translateY(-3px) rotate(-1deg); opacity: 0.9; }
  100% { transform: translateY(0) rotate(1deg); opacity: 0.85; }
}
@keyframes fw-figure {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(2px) translateY(1px) rotate(2deg); }
}
@keyframes fw-candle {
  0% { transform: scaleY(0.8) rotate(-2deg); opacity: 0.7; box-shadow: 0 -4px 10px 3px rgba(240,200,120,0.2); }
  50% { transform: scaleY(1.2) rotate(0deg); opacity: 1; box-shadow: 0 -8px 20px 6px rgba(240,200,120,0.5); }
  100% { transform: scaleY(0.9) rotate(2deg); opacity: 0.8; box-shadow: 0 -5px 12px 4px rgba(240,200,120,0.3); }
}
@keyframes fw-wreath {
  0% { transform: scale(0.95) rotate(-5deg); }
  50% { transform: scale(1.05) rotate(0deg); }
  100% { transform: scale(0.98) rotate(5deg); }
}

/* Scene: hester-fashionable-handiwork (fh) – bright interior, calm */
.scn-hester-fashionable-handiwork {
  background: linear-gradient(180deg, #f5efe6 0%, #e8dcc8 40%, #d4c4aa 100%),
              radial-gradient(ellipse at 70% 30%, #fff8f0 0%, transparent 60%);
  filter: brightness(1.1) saturate(0.9);
}
.scn-hester-fashionable-handiwork .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f5efe6 0%, #e0d4be 100%);
  box-shadow: inset 0 0 40px rgba(200,180,150,0.3);
}
.scn-hester-fashionable-handiwork .window {
  position: absolute; top: 8%; left: 10%; width: 35%; height: 45%;
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8b0 100%);
  border-radius: 6% / 8%; box-shadow: inset 0 0 30px rgba(255,255,220,0.4), 0 0 40px rgba(255,220,180,0.2);
  animation: fh-window 10s ease-in-out infinite alternate;
}
.scn-hester-fashionable-handiwork .sunbeam {
  position: absolute; top: 10%; left: 15%; width: 50%; height: 60%;
  background: linear-gradient(135deg, rgba(255,250,220,0.3) 0%, transparent 60%);
  border-radius: 20% / 30%; filter: blur(8px);
  animation: fh-sunbeam 12s ease-in-out infinite alternate;
}
.scn-hester-fashionable-handiwork .figure {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #d4c0a6 0%, #b8a48a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fh-figure 6s ease-in-out infinite;
}
.scn-hester-fashionable-handiwork .mannequin {
  position: absolute; bottom: 18%; left: 55%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #c8b898 0%, #a89878 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  animation: fh-mannequin 8s ease-in-out infinite;
}
.scn-hester-fashionable-handiwork .fabric {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #e8d4b8 0%, #c8b098 50%, #b09880 100%);
  border-radius: 60% 40% 40% 60% / 60% 60% 40% 40%;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
  animation: fh-fabric 9s ease-in-out infinite alternate;
}
.scn-hester-fashionable-handiwork .table {
  position: absolute; bottom: 14%; left: 30%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a48a 100%);
  border-radius: 8% 8% 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,0.1);
  animation: fh-table 11s ease-in-out infinite;
}
@keyframes fh-window {
  0% { opacity: 0.8; transform: scaleX(0.98); }
  50% { opacity: 1; transform: scaleX(1); }
  100% { opacity: 0.9; transform: scaleX(0.99); }
}
@keyframes fh-sunbeam {
  0% { opacity: 0.5; transform: translateX(-5px) rotate(-2deg); }
  50% { opacity: 0.8; transform: translateX(5px) rotate(1deg); }
  100% { opacity: 0.6; transform: translateX(-2px) rotate(0deg); }
}
@keyframes fh-figure {
  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 fh-mannequin {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
}
@keyframes fh-fabric {
  0% { transform: rotate(-10deg) scale(0.95); }
  50% { transform: rotate(5deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(0.98); }
}
@keyframes fh-table {
  0%, 100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(0.99); }
}

/* Scene: hester-vanity-mortified (vm) – bright interior, dark mood */
.scn-hester-vanity-mortified {
  background: linear-gradient(180deg, #e8dcc8 0%, #d4c4aa 40%, #c0b098 100%),
              radial-gradient(ellipse at 50% 20%, #fff8f0 0%, transparent 50%);
  filter: brightness(1.0) contrast(1.2) saturate(0.8);
}
.scn-hester-vanity-mortified .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
}
.scn-hester-vanity-mortified .mirror {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, rgba(200,180,150,0.6) 0%, rgba(180,160,130,0.4) 100%),
              radial-gradient(ellipse at 50% 40%, #f0e8d8 0%, transparent 70%);
  border-radius: 6% / 8%; box-shadow: 0 0 30px rgba(0,0,0,0.2), inset 0 0 40px rgba(255,255,240,0.2);
  animation: vm-mirror 8s ease-in-out infinite alternate;
}
.scn-hester-vanity-mortified .figure {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5e4a42 0%, #3a2a24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vm-figure 6s ease-in-out infinite;
}
.scn-hester-vanity-mortified .garment {
  position: absolute; bottom: 25%; left: 42%; width: 34px; height: 36px;
  background: linear-gradient(180deg, #8a6e5a 0%, #6a4e3a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 0 12px rgba(0,0,0,0.3);
  animation: vm-garment 7s ease-in-out infinite alternate;
}
.scn-hester-vanity-mortified .light-ray {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 90%;
  background: linear-gradient(135deg, rgba(255,250,220,0.15) 0%, transparent 50%);
  border-radius: 10% / 20%; filter: blur(12px);
  animation: vm-lightray 10s ease-in-out infinite alternate;
}
.scn-hester-vanity-mortified .shadow {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: vm-shadow 9s ease-in-out infinite alternate;
}
.scn-hester-vanity-mortified .wardrobe {
  position: absolute; bottom: 12%; right: 10%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a3224 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.4);
  animation: vm-wardrobe 12s ease-in-out infinite;
}
@keyframes vm-mirror {
  0% { opacity: 0.8; transform: scaleX(0.98) rotate(-1deg); }
  50% { opacity: 1; transform: scaleX(1) rotate(0deg); }
  100% { opacity: 0.9; transform: scaleX(0.99) rotate(1deg); }
}
@keyframes vm-figure {
  0%, 100% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes vm-garment {
  0% { transform: rotate(-5deg) scale(0.95); }
  50% { transform: rotate(3deg) scale(1.03); }
  100% { transform: rotate(-2deg) scale(0.98); }
}
@keyframes vm-lightray {
  0% { opacity: 0.3; transform: translateX(-10px) rotate(-3deg); }
  50% { opacity: 0.6; transform: translateX(10px) rotate(2deg); }
  100% { opacity: 0.4; transform: translateX(-5px) rotate(-1deg); }
}
@keyframes vm-shadow {
  0% { opacity: 0.5; transform: scaleX(0.9); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.6; transform: scaleX(0.95); }
}
@keyframes vm-wardrobe {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(0.98); }
}

/* scene: dimmesdale-begs-hester */
.scn-dimmesdale-begs-hester {
  background: linear-gradient(180deg, #f7e9c0 0%, #d4c29e 30%, #9c8b7a 70%, #4a3e35 100%), 
              radial-gradient(ellipse at 60% 20%, #fff5d6 0%, transparent 50%);
}
.scn-dimmesdale-begs-hester .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #d6c7a0 60%, #8f7d6a 100%);
  animation: dbh-sky 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-begs-hester .sunlight-beam {
  position: absolute; top: 10%; right: 20%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,245,200,0.15) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 30%, 100% 100%, 0 70%);
  filter: blur(8px);
  animation: dbh-beam 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-begs-hester .scaffold.platform {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5c4a3a 0%, #3d2f23 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-dimmesdale-begs-hester .scaffold.post {
  position: absolute; bottom: 37%; left: 48%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #5c4a3a 0%, #3d2f23 100%);
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-dimmesdale-begs-hester .figure.dimmesdale {
  position: absolute; bottom: 28%; left: 35%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a231c 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dbh-dimmesdale 4s ease-in-out infinite alternate;
  box-shadow: -12px 0 20px rgba(0,0,0,0.3);
}
.scn-dimmesdale-begs-hester .figure.hester {
  position: absolute; bottom: 28%; left: 55%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a2820 0%, #1e1410 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dbh-hester 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-begs-hester .scarlet-letter {
  position: absolute; bottom: 44%; left: 58%; width: 4%; height: 5%;
  background: radial-gradient(circle, #c8553d 0%, #9a3a28 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,85,61,0.4);
  animation: dbh-letter 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-begs-hester .crowd-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, transparent 0%, #2a2219 100%);
  border-radius: 50% 50% 0 0;
  opacity: 0.7;
}
@keyframes dbh-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dbh-beam { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5%) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes dbh-dimmesdale { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(-8%) rotate(-5deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes dbh-hester { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4%) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dbh-letter { 0% { box-shadow: 0 0 8px 2px rgba(200,85,61,0.3); } 50% { box-shadow: 0 0 20px 6px rgba(200,85,61,0.6); } 100% { box-shadow: 0 0 10px 3px rgba(200,85,61,0.4); } }

/* scene: dimmesdale-ascends-scaffold */
.scn-dimmesdale-ascends-scaffold {
  background: linear-gradient(180deg, #f5e3b0 0%, #d2be94 30%, #8f7a5f 70%, #3f3328 100%),
              radial-gradient(ellipse at 30% 20%, #fff5d0 0%, transparent 55%);
}
.scn-dimmesdale-ascends-scaffold .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe4a5 0%, #cbaf7a 60%, #7a654b 100%);
  animation: das-sky 14s ease-in-out infinite alternate;
}
.scn-dimmesdale-ascends-scaffold .sunlight-beam {
  position: absolute; top: 5%; left: 10%; width: 25%; height: 70%;
  background: linear-gradient(135deg, rgba(255,245,220,0.2) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 20%, 100% 100%, 0 80%);
  filter: blur(10px);
  animation: das-beam 10s ease-in-out infinite alternate;
}
.scn-dimmesdale-ascends-scaffold .scaffold.platform {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #5a4735 0%, #392e20 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-dimmesdale-ascends-scaffold .scaffold.stairs {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #5a4735 0%, #392e20 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  box-shadow: -4px 4px 10px rgba(0,0,0,0.4);
}
.scn-dimmesdale-ascends-scaffold .figure.dimmesdale {
  position: absolute; bottom: 28%; left: 38%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #2a231c 0%, #16110d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: das-dimmesdale 6s ease-in-out infinite;
  box-shadow: -12px 0 20px rgba(0,0,0,0.4);
}
.scn-dimmesdale-ascends-scaffold .figure.hester {
  position: absolute; bottom: 26%; left: 50%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a2820 0%, #1a120e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: das-hester 6s ease-in-out infinite;
}
.scn-dimmesdale-ascends-scaffold .figure.pearl {
  position: absolute; bottom: 24%; left: 44%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #4a3528 0%, #261a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: das-pearl 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-ascends-scaffold .figure.chillingworth {
  position: absolute; bottom: 26%; left: 62%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #1e1a16 0%, #0e0c0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  animation: das-chillingworth 8s ease-in-out infinite;
  box-shadow: 0 0 12px 2px rgba(0,0,0,0.3);
}
.scn-dimmesdale-ascends-scaffold .crowd-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #2a2219 100%);
  border-radius: 50% 50% 0 0;
  opacity: 0.8;
}
@keyframes das-sky { 0% { opacity: 0.75; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes das-beam { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(3%) scaleY(1.04); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes das-dimmesdale { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(-6%) rotate(-4deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes das-hester { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5%) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes das-pearl { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8%) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes das-chillingworth { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(3%) rotate(1deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }

/* scene: chillingworth-no-escape */
.scn-chillingworth-no-escape {
  background: linear-gradient(180deg, #ecdbb0 0%, #c4ae7f 30%, #7a664a 70%, #3a2e23 100%),
              radial-gradient(ellipse at 40% 10%, #ffedc0 0%, transparent 60%);
}
.scn-chillingworth-no-escape .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f5dfa0 0%, #c4a870 60%, #7a6040 100%);
  animation: cne-sky 10s ease-in-out infinite alternate;
}
.scn-chillingworth-no-escape .sunlight-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 80%;
  background: linear-gradient(135deg, rgba(255,240,210,0.1) 0%, transparent 50%);
  clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%);
  filter: blur(12px);
  animation: cne-beam 12s ease-in-out infinite alternate;
}
.scn-chillingworth-no-escape .scaffold.platform {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 14%;
  background: linear-gradient(180deg, #594735 0%, #3b2e1f 100%);
  border-radius: 3% 3% 1% 1%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
}
.scn-chillingworth-no-escape .figure.dimmesdale {
  position: absolute; bottom: 26%; left: 30%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #241e18 0%, #14100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cne-dimmesdale 5s ease-in-out infinite;
  box-shadow: -15px 0 25px rgba(0,0,0,0.5);
}
.scn-chillingworth-no-escape .figure.hester {
  position: absolute; bottom: 24%; left: 50%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #35261e 0%, #1c1310 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cne-hester 5s ease-in-out infinite;
}
.scn-chillingworth-no-escape .figure.chillingworth {
  position: absolute; bottom: 26%; left: 15%; width: 12%; height: 34%;
  background: linear-gradient(180deg, #1a1613 0%, #0d0b09 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cne-chillingworth 6s ease-in-out infinite;
  box-shadow: 0 0 20px 4px rgba(0,0,0,0.4);
}
.scn-chillingworth-no-escape .scarlet-letter {
  position: absolute; bottom: 42%; left: 54%; width: 4%; height: 5%;
  background: radial-gradient(circle, #b84842 0%, #8a2e24 70%);
  border-radius: 50%;
  box-shadow: 0 0 14px 5px rgba(184,72,66,0.4);
  animation: cne-letter 3s ease-in-out infinite alternate;
}
.scn-chillingworth-no-escape .shadow-heavy {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #1a1510 100%);
  border-radius: 40% 40% 0 0;
  opacity: 0.9;
}
@keyframes cne-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cne-beam { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-5%) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes cne-dimmesdale { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(-10%) rotate(-6deg) scaleY(1.03); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes cne-hester { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5%) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cne-chillingworth { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(8%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes cne-letter { 0% { box-shadow: 0 0 8px 2px rgba(184,72,66,0.3); } 50% { box-shadow: 0 0 24px 8px rgba(184,72,66,0.6); } 100% { box-shadow: 0 0 12px 3px rgba(184,72,66,0.4); } }

/* scene: dimmesdale-asks-better */
.scn-dimmesdale-asks-better {
  background: linear-gradient(180deg, #f7e9c8 0%, #dac89c 30%, #9c856a 70%, #4a3d30 100%),
              radial-gradient(ellipse at 50% 30%, #fff5d0 0%, transparent 50%);
}
.scn-dimmesdale-asks-better .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe8b8 0%, #d6c098 60%, #8f7354 100%);
  animation: dab-sky 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-asks-better .sunlight-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 90%;
  background: linear-gradient(135deg, rgba(255,250,230,0.2) 0%, transparent 50%);
  clip-path: polygon(40% 0, 60% 0, 100% 100%, 0% 100%);
  filter: blur(15px);
  animation: dab-beam 9s ease-in-out infinite alternate;
}
.scn-dimmesdale-asks-better .scaffold.platform {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #5a4735 0%, #392e20 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-dimmesdale-asks-better .figure.dimmesdale {
  position: absolute; bottom: 26%; left: 36%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #2a231c 0%, #14100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dab-dimmesdale 5s ease-in-out infinite alternate;
  box-shadow: -12px 0 20px rgba(0,0,0,0.4);
}
.scn-dimmesdale-asks-better .figure.hester {
  position: absolute; bottom: 24%; left: 50%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #35261e 0%, #1a120e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dab-hester 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-asks-better .figure.pearl {
  position: absolute; bottom: 22%; left: 44%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #4a3528 0%, #261a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dab-pearl 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-asks-better .scarlet-letter {
  position: absolute; bottom: 42%; left: 54%; width: 4%; height: 5%;
  background: radial-gradient(circle, #c8553d 0%, #9a3a28 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,85,61,0.4);
  animation: dab-letter 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-asks-better .light-rays {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,250,200,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: dab-rays 8s ease-in-out infinite alternate;
}
@keyframes dab-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dab-beam { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(4%) scaleY(1.08); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes dab-dimmesdale { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(-8%) rotate(-4deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes dab-hester { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5%) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dab-pearl { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8%) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes dab-letter { 0% { box-shadow: 0 0 8px 2px rgba(200,85,61,0.3); } 50% { box-shadow: 0 0 20px 6px rgba(200,85,61,0.6); } 100% { box-shadow: 0 0 10px 3px rgba(200,85,61,0.4); } }
@keyframes dab-rays { 0% { transform: scale(0.95); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.6; } }

.scn-ominous-shadow {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%), radial-gradient(circle at 80% 15%, #fff8dc 0%, transparent 60%);
  position:relative; overflow:hidden; height:100vh;
}
.scn-ominous-shadow .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0d8ef 0%, #87ceeb 100%); animation: os-sky 6s ease-in-out infinite alternate; }
.scn-ominous-shadow .sun { position:absolute; top:10%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); animation: os-sun 8s ease-in-out infinite alternate; }
.scn-ominous-shadow .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7c9c6e 0%, #4a6e3a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-ominous-shadow .tree-line { position:absolute; bottom:38%; left:0; right:0; height:12%; background: linear-gradient(180deg, #2d4a2a 0%, #1a3a1a 100%); border-radius: 40% 60% 0 0; filter: blur(2px); animation: os-trees 14s ease-in-out infinite; }
.scn-ominous-shadow .shadow-circle { position:absolute; top:20%; left:-10%; width:120px; height:120px; background: radial-gradient(circle, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.2) 60%, transparent 100%); border-radius:50%; filter: blur(4px); animation: os-shadow 20s ease-in-out infinite; }
.scn-ominous-shadow .sunray { position:absolute; top:15%; right:25%; width:200px; height:200px; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,200,0.2) 0%, transparent 70%); transform: rotate(-20deg); animation: os-ray 8s ease-in-out infinite alternate; }
@keyframes os-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes os-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 15px rgba(255,215,0,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 30px rgba(255,215,0,0.6); } 100% { transform: scale(0.95); box-shadow: 0 0 30px 15px rgba(255,215,0,0.4); } }
@keyframes os-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes os-shadow { 0% { transform: translateX(0) scale(1); opacity:0.2; } 25% { transform: translateX(20vw) scale(1.3); opacity:0.8; } 50% { transform: translateX(40vw) scale(1.1); opacity:0.6; } 75% { transform: translateX(60vw) scale(1.4); opacity:0.9; } 100% { transform: translateX(80vw) scale(1.2); opacity:0.3; } }
@keyframes os-ray { 0% { opacity:0.1; transform: rotate(-20deg) scale(1); } 50% { opacity:0.3; transform: rotate(-15deg) scale(1.2); } 100% { opacity:0.1; transform: rotate(-20deg) scale(1); } }

.scn-bat-wings-flight {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 50%, #f0e68c 100%), radial-gradient(circle at 70% 20%, #fff8dc 0%, transparent 50%);
  position:relative; overflow:hidden; height:100vh;
}
.scn-bat-wings-flight .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #9dd5f0 0%, #87ceeb 100%); animation: bw-sky 7s ease-in-out infinite alternate; }
.scn-bat-wings-flight .sun { position:absolute; top:5%; right:10%; width:50px; height:50px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.4); animation: bw-sun 6s ease-in-out infinite alternate; }
.scn-bat-wings-flight .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b8e5e 0%, #3a5a2a 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; }
.scn-bat-wings-flight .figure-body { position:absolute; bottom:45%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bw-body 5s ease-in-out infinite; }
.scn-bat-wings-flight .wing-left { position:absolute; bottom:47%; left:38%; width:60px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 60% 10% 40% 40% / 80% 10% 30% 30%; transform-origin: right center; animation: bw-wing-l 0.8s ease-in-out infinite alternate; }
.scn-bat-wings-flight .wing-right { position:absolute; bottom:47%; left:52%; width:60px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 10% 60% 40% 40% / 10% 80% 30% 30%; transform-origin: left center; animation: bw-wing-r 0.8s ease-in-out infinite alternate; }
.scn-bat-wings-flight .cloud { position:absolute; top:20%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(5px); animation: bw-cloud 25s linear infinite; }
@keyframes bw-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bw-sun { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes bw-body { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-10px) rotate(2deg); } 50% { transform: translateY(-20px) rotate(-2deg); } 75% { transform: translateY(-30px) rotate(1deg); } 100% { transform: translateY(-40px) rotate(0deg); } }
@keyframes bw-wing-l { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-30deg) scaleX(1.1); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes bw-wing-r { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(30deg) scaleX(1.1); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes bw-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }

.scn-self-upbraiding {
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 40%, #8b7355 100%), radial-gradient(ellipse at 30% 20%, #fff8dc 0%, transparent 60%);
  position:relative; overflow:hidden; height:100vh;
}
.scn-self-upbraiding .sky-evening { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f0c878 0%, #d2a06e 100%); animation: su-sky 9s ease-in-out infinite alternate; }
.scn-self-upbraiding .ground-dark { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); }
.scn-self-upbraiding .house { position:absolute; bottom:35%; left:50%; width:100px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 8px 15px rgba(0,0,0,0.5); }
.scn-self-upbraiding .door { position:absolute; bottom:35%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; animation: su-door 5s ease-in-out infinite alternate; }
.scn-self-upbraiding .window-glow { position:absolute; bottom:43%; left:46%; width:24px; height:28px; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius:8%; box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,208,128,0.4); animation: su-glow 3s ease-in-out infinite alternate; }
.scn-self-upbraiding .figure { position:absolute; bottom:32%; left:42%; width:18px; height:35px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: su-figure 6s ease-in-out infinite; }
.scn-self-upbraiding .path { position:absolute; bottom:10%; left:20%; width:60%; height:5%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% / 100% 100% 0 0; filter: blur(2px); }
@keyframes su-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes su-door { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.2); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes su-glow { 0% { box-shadow: 0 0 20px 5px #ffd080, 0 0 40px 10px rgba(255,208,128,0.3); opacity:0.8; } 50% { box-shadow: 0 0 40px 15px #ffd080, 0 0 80px 30px rgba(255,208,128,0.5); opacity:1; } 100% { box-shadow: 0 0 25px 8px #ffd080, 0 0 50px 15px rgba(255,208,128,0.35); opacity:0.85; } }
@keyframes su-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(15px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(30px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

.scn-ugly-remembrance {
  background: linear-gradient(180deg, #1a0a0a 0%, #3a1a1a 40%, #1a0a0a 100%), radial-gradient(ellipse at 50% 80%, #8b3a3a 0%, transparent 70%);
  position:relative; overflow:hidden; height:100vh;
}
.scn-ugly-remembrance .wall-shadow { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 60%); animation: ur-wall 8s ease-in-out infinite alternate; }
.scn-ugly-remembrance .fireplace { position:absolute; bottom:20%; left:50%; width:120px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.7); }
.scn-ugly-remembrance .fire-glow { position:absolute; bottom:28%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #ff6b35 0%, #c84c1a 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(200,76,26,0.6), 0 0 120px 60px rgba(200,76,26,0.3); animation: ur-fireglow 4s ease-in-out infinite alternate; }
.scn-ugly-remembrance .fire-flame { position:absolute; bottom:30%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #ffaa40 0%, #c84c1a 50%, #8b2a0a 100%); border-radius: 50% 50% 20% 20%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: ur-flame 0.6s ease-in-out infinite alternate; }
.scn-ugly-remembrance .chair { position:absolute; bottom:10%; left:30%; width:30px; height:40px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-ugly-remembrance .figure-silhouette { position:absolute; bottom:15%; left:35%; width:25px; height:50px; background: #0a0a0a; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ur-figure 7s ease-in-out infinite; }
.scn-ugly-remembrance .shadow-giant { position:absolute; top:10%; right:10%; width:60px; height:100px; background: rgba(0,0,0,0.4); border-radius: 40% 40% 20% 20%; filter: blur(6px); transform: rotate(-10deg); animation: ur-shadow 9s ease-in-out infinite alternate; }
@keyframes ur-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ur-fireglow { 0% { transform: translateX(-50%) scale(0.9); opacity:0.7; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(0.9); opacity:0.7; } }
@keyframes ur-flame { 0% { transform: translateX(-50%) skewX(2deg); height:35px; } 50% { transform: translateX(-50%) skewX(-3deg); height:45px; } 100% { transform: translateX(-50%) skewX(2deg); height:35px; } }
@keyframes ur-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ur-shadow { 0% { transform: rotate(-10deg) translateX(0); opacity:0.3; } 50% { transform: rotate(-15deg) translateX(-10px); opacity:0.6; } 100% { transform: rotate(-10deg) translateX(0); opacity:0.3; } }

/* scene: hester-reads-heart */
.scn-hester-reads-heart {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e30 100%),
              radial-gradient(ellipse at 50% 60%, rgba(100,100,140,0.1) 0%, transparent 70%);
}
.scn-hester-reads-heart .bg-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #242440 0%, transparent 100%);
  animation: hrh-sky 14s ease-in-out infinite alternate;
}
.scn-hester-reads-heart .bg-mist {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(0deg, rgba(60,60,80,0.3) 0%, transparent 100%);
  animation: hrh-mist 20s ease-in-out infinite alternate;
}
.scn-hester-reads-heart .figure-silhouette {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0e0e1a 0%, #18182a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: hrh-body 5s ease-in-out infinite;
}
.scn-hester-reads-heart .figure-head {
  position: absolute; bottom: 68%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  animation: hrh-head 5s ease-in-out infinite;
}
.scn-hester-reads-heart .arm-left {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #18182a 0%, #0e0e1a 100%);
  border-radius: 20% 80% 50% 50% / 50% 50% 50% 50%;
  transform-origin: right center;
  animation: hrh-arm-l 4s ease-in-out infinite;
}
.scn-hester-reads-heart .arm-right {
  position: absolute; bottom: 30%; right: 35%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #18182a 0%, #0e0e1a 100%);
  border-radius: 80% 20% 50% 50% / 50% 50% 50% 50%;
  transform-origin: left center;
  animation: hrh-arm-r 4s ease-in-out infinite;
}
.scn-hester-reads-heart .heart {
  position: absolute; bottom: 42%; left: 50%; width: 20px; height: 20px;
  transform: translateX(-50%) rotate(-45deg);
  background: radial-gradient(circle at 50% 50%, #4a2a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 0 0;
  animation: hrh-heart 3s ease-in-out infinite;
}
.scn-hester-reads-heart .heart-glow {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(80,40,60,0.4) 0%, transparent 60%);
  border-radius: 50%;
  animation: hrh-glow 3s ease-in-out infinite alternate;
}
@keyframes hrh-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes hrh-mist { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(-2px); } 100% { opacity: 0.2; transform: translateY(1px); } }
@keyframes hrh-body { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes hrh-head { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes hrh-arm-l { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-15deg); } }
@keyframes hrh-arm-r { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } }
@keyframes hrh-heart { 0%,100% { transform: translateX(-50%) rotate(-45deg) scale(1); } 50% { transform: translateX(-50%) rotate(-45deg) scale(1.1); } }
@keyframes hrh-glow { 0% { opacity: 0.2; box-shadow: 0 0 10px 2px rgba(80,40,60,0.3); } 50% { opacity: 0.6; box-shadow: 0 0 20px 6px rgba(80,40,60,0.5); } 100% { opacity: 0.3; box-shadow: 0 0 12px 3px rgba(80,40,60,0.2); } }

/* scene: ruin-of-the-man */
.scn-ruin-of-the-man {
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a3e 50%, #1a1a28 100%),
              radial-gradient(ellipse at 30% 100%, #2e2e40 0%, transparent 60%);
}
.scn-ruin-of-the-man .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2e2e44 0%, #1e1e30 100%);
  animation: rm-sky 16s ease-in-out infinite alternate;
}
.scn-ruin-of-the-man .ground-ruin {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #0a0a14 0%, #1a1a28 100%);
  border-radius: 20% 30% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: rm-ground 20s ease-in-out infinite alternate;
}
.scn-ruin-of-the-man .broken-pillar {
  position: absolute; bottom: 35%; left: 25%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #2e2e42 0%, #1e1e2e 100%);
  border-radius: 10% 10% 0 0;
  transform: rotate(-5deg);
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: rm-pillar 12s ease-in-out infinite;
}
.scn-ruin-of-the-man .fallen-stone {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #2a2a3c 0%, #161622 100%);
  border-radius: 30% 20% 40% 10%;
  transform: rotate(15deg);
  animation: rm-stone 18s ease-in-out infinite alternate;
}
.scn-ruin-of-the-man .figure-crumpled {
  position: absolute; bottom: 22%; left: 55%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-20deg);
  animation: rm-figure 6s ease-in-out infinite;
}
.scn-ruin-of-the-man .shadow-pool {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: rm-shadow 8s ease-in-out infinite alternate;
}
.scn-ruin-of-the-man .debris-1 {
  position: absolute; bottom: 15%; left: 10%; width: 12px; height: 12px;
  background: #222236;
  border-radius: 30% 50% 20% 40%;
  transform: rotate(30deg);
  animation: rm-debris 25s linear infinite;
}
.scn-ruin-of-the-man .debris-2 {
  position: absolute; bottom: 20%; right: 15%; width: 8px; height: 8px;
  background: #1e1e30;
  border-radius: 40% 30% 50% 20%;
  transform: rotate(-20deg);
  animation: rm-debris2 30s linear infinite reverse;
}
@keyframes rm-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes rm-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rm-pillar { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(-3px); } }
@keyframes rm-stone { 0% { transform: rotate(15deg) translate(0,0); } 50% { transform: rotate(10deg) translate(2px, -2px); } 100% { transform: rotate(20deg) translate(-1px,1px); } }
@keyframes rm-figure { 0%,100% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-18deg) scale(0.95); } }
@keyframes rm-shadow { 0% { opacity:0.4; transform: translateX(-50%) scaleX(1); } 50% { opacity:0.7; transform: translateX(-50%) scaleX(1.1); } 100% { opacity:0.3; transform: translateX(-50%) scaleX(0.9); } }
@keyframes rm-debris { 0% { transform: translateY(0) rotate(30deg); } 50% { transform: translateY(-10px) rotate(50deg); } 100% { transform: translateY(0) rotate(30deg); } }
@keyframes rm-debris2 { 0% { transform: translateY(0) rotate(-20deg); } 50% { transform: translateY(-8px) rotate(-40deg); } 100% { transform: translateY(0) rotate(-20deg); } }

/* scene: hester-plea-forgiveness */
.scn-hester-plea-forgiveness {
  background: linear-gradient(180deg, #1e1e30 0%, #2c2c40 50%, #202038 100%),
              radial-gradient(ellipse at 50% 70%, #3a3a50 0%, transparent 60%);
}
.scn-hester-plea-forgiveness .bg-diffuse {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a44 0%, transparent 100%);
  animation: hpf-bg 18s ease-in-out infinite alternate;
}
.scn-hester-plea-forgiveness .ground-soft {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #141422 0%, #1e1e30 100%);
  border-radius: 30% 20% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: hpf-ground 22s ease-in-out infinite alternate;
}
.scn-hester-plea-forgiveness .figure-kneeling {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #0c0c1a 0%, #16162a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hpf-kneel 5s ease-in-out infinite;
}
.scn-hester-plea-forgiveness .figure-standing {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #121222 0%, #1a1a2e 100%);
  border-radius: 25% 25% 20% 20% / 60% 60% 40% 40%;
  animation: hpf-stand 6s ease-in-out infinite;
}
.scn-hester-plea-forgiveness .arm-reaching {
  position: absolute; bottom: 30%; left: 30%; width: 35px; height: 10px;
  background: linear-gradient(180deg, #16162a 0%, #0e0e1a 100%);
  border-radius: 60% 20% 40% 40% / 50% 50% 50% 50%;
  transform-origin: right center;
  animation: hpf-arm 4s ease-in-out infinite;
}
.scn-hester-plea-forgiveness .tear-drop {
  position: absolute; bottom: 30%; left: 38%; width: 4px; height: 6px;
  background: radial-gradient(circle at 50% 50%, rgba(200,200,220,0.4) 0%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: hpf-tear 3s ease-in-out infinite;
}
.scn-hester-plea-forgiveness .mist-strand {
  position: absolute; top: 15%; left: 20%; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(200,200,220,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: hpf-mist 30s linear infinite;
}
@keyframes hpf-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes hpf-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hpf-kneel { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } }
@keyframes hpf-stand { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes hpf-arm { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(20deg); } }
@keyframes hpf-tear { 0% { opacity:0.2; transform: translateY(0); } 50% { opacity:0.6; transform: translateY(4px); } 100% { opacity:0.1; transform: translateY(0); } }
@keyframes hpf-mist { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

/* scene: initial-anger */
.scn-initial-anger {
  background: linear-gradient(180deg, #14142a 0%, #242438 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a44 0%, transparent 70%);
}
.scn-initial-anger .tempest-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e2e46 0%, #1e1e34 100%);
  animation: ia-sky 12s ease-in-out infinite alternate;
}
.scn-initial-anger .tempest-clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 50%;
  background: radial-gradient(ellipse at 30% 50%, rgba(60,60,80,0.3) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 30%, rgba(50,50,70,0.2) 0%, transparent 50%);
  filter: blur(8px);
  animation: ia-clouds 15s ease-in-out infinite alternate;
}
.scn-initial-anger .figure-profile {
  position: absolute; bottom: 5%; left: 50%; width: 70px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a18 0%, #14142a 100%);
  border-radius: 40% 35% 30% 30% / 60% 55% 40% 40%;
  animation: ia-figure 4s ease-in-out infinite;
}
.scn-initial-anger .figure-clenched-fist {
  position: absolute; bottom: 20%; right: 42%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #1a1a30 0%, #0e0e1c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: ia-fist 3s ease-in-out infinite;
}
.scn-initial-anger .crack-left {
  position: absolute; top: 20%; left: 10%; width: 2px; height: 60px;
  background: linear-gradient(180deg, rgba(200,200,220,0.1) 0%, transparent 100%);
  transform: rotate(-15deg);
  animation: ia-crack 8s ease-in-out infinite alternate;
}
.scn-initial-anger .crack-right {
  position: absolute; top: 25%; right: 15%; width: 3px; height: 40px;
  background: linear-gradient(180deg, rgba(200,200,220,0.08) 0%, transparent 100%);
  transform: rotate(20deg);
  animation: ia-crack2 10s ease-in-out infinite alternate;
}
.scn-initial-anger .shadow-storm {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ia-shadow 6s ease-in-out infinite alternate;
}
@keyframes ia-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ia-clouds { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(3px); } }
@keyframes ia-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ia-fist { 0%,100% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(20deg) scale(1.1); } }
@keyframes ia-crack { 0% { opacity:0.1; transform: rotate(-15deg) scaleY(1); } 50% { opacity:0.4; transform: rotate(-18deg) scaleY(1.2); } 100% { opacity:0.1; transform: rotate(-15deg) scaleY(0.9); } }
@keyframes ia-crack2 { 0% { opacity:0.1; transform: rotate(20deg) scaleY(1); } 50% { opacity:0.3; transform: rotate(25deg) scaleY(1.3); } 100% { opacity:0.08; transform: rotate(20deg) scaleY(0.8); } }
@keyframes ia-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

.scn-children-throw-mud {
  background: linear-gradient(180deg, #ffe5b0 0%, #89c2d9 40%, #5d8aa8 70%, #3a5a6e 100%), radial-gradient(ellipse at 50% 0, #ffd5a0 0%, transparent 60%);
}
.scn-children-throw-mud .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffdbb5 0%, #aac9e0 100%);
  animation: ctm-sky 12s ease-in-out infinite alternate;
}
.scn-children-throw-mud .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,.4);
}
.scn-children-throw-mud .build-left,
.scn-children-throw-mud .build-right {
  position: absolute; bottom: 42%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,.3);
  animation: ctm-build 20s ease-in-out infinite;
}
.scn-children-throw-mud .build-left { left: 15%; }
.scn-children-throw-mud .build-right { right: 15%; width: 60px; height: 90px; }
.scn-children-throw-mud .child-1,
.scn-children-throw-mud .child-2 {
  position: absolute; bottom: 40%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-children-throw-mud .child-1 { left: 30%; animation: ctm-child 3s ease-in-out infinite; }
.scn-children-throw-mud .child-2 { right: 35%; animation: ctm-child 3s ease-in-out infinite 1.5s; }
.scn-children-throw-mud .hester {
  position: absolute; bottom: 35%; left: 50%; width: 22px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: inset 0 -4px 0 #c8553d; /* scarlet letter */
  animation: ctm-hester 6s ease-in-out infinite;
}
.scn-children-throw-mud .mud-splash {
  position: absolute; bottom: 42%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, #8a7a5a 0%, #5a4a2a 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ctm-mud 2s ease-in-out infinite;
}
@keyframes ctm-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ctm-build { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes ctm-child { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(2deg) } 50% { transform: translateY(1px) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ctm-hester { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes ctm-mud { 0% { opacity: .3; transform: translate(0,0) } 50% { opacity: .8; transform: translate(-4px, 6px) } 100% { opacity: .3; transform: translate(-8px, 12px) } }

.scn-pearl-scatters-enemies {
  background: linear-gradient(180deg, #ffe0b0 0%, #7ab0c4 40%, #4a7890 70%, #2a4a5a 100%), radial-gradient(ellipse at 60% 0, #ffd5a0 0%, transparent 60%);
}
.scn-pearl-scatters-enemies .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffdbb5 0%, #a0c8d8 100%);
  animation: pse-sky 15s ease-in-out infinite alternate;
}
.scn-pearl-scatters-enemies .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-pearl-scatters-enemies .pearl {
  position: absolute; bottom: 35%; left: 30%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 6px #c0a060; /* motion aura */
  animation: pse-pearl 1.5s ease-in-out infinite;
}
.scn-pearl-scatters-enemies .enemy-1,
.scn-pearl-scatters-enemies .enemy-2,
.scn-pearl-scatters-enemies .enemy-3 {
  position: absolute; bottom: 38%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-pearl-scatters-enemies .enemy-1 { left: 45%; animation: pse-enemy 0.8s ease-in infinite; }
.scn-pearl-scatters-enemies .enemy-2 { right: 20%; animation: pse-enemy 0.8s ease-in infinite 0.4s; }
.scn-pearl-scatters-enemies .enemy-3 { right: 35%; animation: pse-enemy 0.9s ease-in infinite 0.7s; }
.scn-pearl-scatters-enemies .dust-cloud {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 20px;
  background: linear-gradient(180deg, rgba(200,190,170,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: pse-dust 2s ease-out infinite;
}
@keyframes pse-sky { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes pse-pearl { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 30% { transform: translateX(12px) translateY(-4px) rotate(4deg) } 60% { transform: translateX(24px) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(36px) translateY(0) rotate(2deg) } }
@keyframes pse-enemy { 0% { transform: translateX(0) rotate(0deg); opacity: 1 } 50% { transform: translateX(-15px) rotate(30deg); opacity: .6 } 100% { transform: translateX(-30px) rotate(60deg); opacity: 0 } }
@keyframes pse-dust { 0% { transform: scale(1); opacity: .6 } 50% { transform: scale(1.5); opacity: .2 } 100% { transform: scale(2); opacity: 0 } }

.scn-governor-bellingham-house {
  background: linear-gradient(180deg, #d6c8a8 0%, #87a8b8 40%, #5a7a8a 70%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0, #f0d5a0 0%, transparent 60%);
}
.scn-governor-bellingham-house .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #aac8d8 100%);
  animation: gbh-sky 14s ease-in-out infinite alternate;
}
.scn-governor-bellingham-house .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.4);
}
.scn-governor-bellingham-house .house {
  position: absolute; bottom: 32%; left: 50%; width: 180px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5), inset 0 2px 4px #8a6a4a;
}
.scn-governor-bellingham-house .roof {
  position: absolute; bottom: 65%; left: 50%; width: 200px; height: 40px;
  transform: translateX(-50%) skewX(-5deg);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.3);
}
.scn-governor-bellingham-house .door {
  position: absolute; bottom: 32%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 6px #8a6a4a;
}
.scn-governor-bellingham-house .moss {
  position: absolute; bottom: 43%; left: 35%; width: 40px; height: 20px;
  background: radial-gradient(circle, #5a7a4a 0%, #3a5a2a 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: gbh-moss 8s ease-in-out infinite;
}
.scn-governor-bellingham-house .window-glow {
  position: absolute; bottom: 45%; left: 55%; width: 20px; height: 24px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 70%);
  border-radius: 10%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 12px rgba(192,128,64,.3);
  animation: gbh-window 4s ease-in-out infinite alternate;
}
.scn-governor-bellingham-house .figures {
  position: absolute; bottom: 30%; left: 52%; width: 30px; height: 22px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gbh-figures 12s ease-in-out infinite;
}
@keyframes gbh-sky { 0% { opacity: .7 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes gbh-moss { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes gbh-window { 0% { box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,.3); opacity: .8 } 50% { box-shadow: 0 0 28px 10px #ffd060, 0 0 56px 16px rgba(255,208,96,.5); opacity: 1 } 100% { box-shadow: 0 0 20px 6px #c08040, 0 0 40px 10px rgba(192,128,64,.35); opacity: .85 } }
@keyframes gbh-figures { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }

.scn-house-cheery-aspect {
  background: linear-gradient(180deg, #ffe5c0 0%, #a0c8d8 40%, #6a9ab0 70%, #4a6a7a 100%), radial-gradient(ellipse at 50% 0, #ffddb0 0%, transparent 60%);
}
.scn-house-cheery-aspect .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffdcc0 0%, #b0d0e0 100%);
  animation: hca-sky 16s ease-in-out infinite alternate;
}
.scn-house-cheery-aspect .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.3);
}
.scn-house-cheery-aspect .house-wall {
  position: absolute; bottom: 30%; left: 50%; width: 160px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d6b080 0%, #b09060 100%);
  border-radius: 6% 6% 3% 3%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3), inset 0 2px 4px #e8c8a0;
}
.scn-house-cheery-aspect .roof {
  position: absolute; bottom: 57%; left: 50%; width: 180px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c07040 0%, #a05030 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.2);
}
.scn-house-cheery-aspect .window-1,
.scn-house-cheery-aspect .window-2 {
  position: absolute; bottom: 40%; width: 24px; height: 30px;
  background: radial-gradient(circle, #ffe080 0%, #d0a050 70%);
  border-radius: 10%;
  box-shadow: 0 0 16px 6px #d0a050, 0 0 32px 10px rgba(208,160,80,.3);
  animation: hca-window 5s ease-in-out infinite alternate;
}
.scn-house-cheery-aspect .window-1 { left: 38%; }
.scn-house-cheery-aspect .window-2 { right: 38%; animation-delay: 2.5s; }
.scn-house-cheery-aspect .door {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 8px #b09060;
}
.scn-house-cheery-aspect .flower-1,
.scn-house-cheery-aspect .flower-2 {
  position: absolute; bottom: 32%; width: 14px; height: 14px;
  background: radial-gradient(circle, #e0a0a0 0%, #c08070 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #e0b0a0;
  animation: hca-flower 4s ease-in-out infinite;
}
.scn-house-cheery-aspect .flower-1 { left: 25%; }
.scn-house-cheery-aspect .flower-2 { right: 25%; animation-delay: 2s; }
.scn-house-cheery-aspect .vine {
  position: absolute; bottom: 42%; left: 20%; width: 80px; height: 4px;
  background: linear-gradient(90deg, #4a7a3a 0%, #3a5a2a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: hca-vine 7s ease-in-out infinite;
}
@keyframes hca-sky { 0% { opacity: .75 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes hca-window { 0% { box-shadow: 0 0 12px 4px #d0a050, 0 0 24px 8px rgba(208,160,80,.3); opacity: .8 } 50% { box-shadow: 0 0 24px 10px #ffe080, 0 0 48px 16px rgba(255,224,128,.5); opacity: 1 } 100% { box-shadow: 0 0 16px 6px #d0a050, 0 0 32px 10px rgba(208,160,80,.35); opacity: .85 } }
@keyframes hca-flower { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(0) rotate(-3deg) } 75% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes hca-vine { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.05) translateY(-2px) } 100% { transform: scaleX(1) translateY(0) } }

/* Scene 1: providence-pearl-charge */
.scn-providence-pearl-charge { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 70% 50%, #4a3a3e 0%, transparent 60%); }
.scn-providence-pearl-charge .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #14141a 0%, #2a2a3a 100%); }
.scn-providence-pearl-charge .window { position:absolute; top:8%; right:12%; width:80px; height:100px; background: linear-gradient(180deg, #6a7a8a, #3a4a5a); border-radius:8% 8% 4% 4%; box-shadow: inset 0 0 20px #1a1a2e, 0 0 30px 6px rgba(200,180,150,0.15); animation: pc-window 6s ease-in-out infinite alternate; }
.scn-providence-pearl-charge .beam { position:absolute; top:8%; right:12%; width:120px; height:250px; background: linear-gradient(180deg, rgba(200,180,150,0.2) 0%, rgba(200,180,150,0.02) 100%); transform-origin: top right; clip-path: polygon(0 0, 100% 0, 70% 100%, 0% 100%); animation: pc-beam 9s ease-in-out infinite; }
.scn-providence-pearl-charge .figure-woman { position:absolute; bottom:15%; left:25%; width:40px; height:140px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc-woman 4s ease-in-out infinite; }
.scn-providence-pearl-charge .figure-child { position:absolute; bottom:15%; left:45%; width:30px; 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: pc-child 3s ease-in-out infinite 0.5s; }
.scn-providence-pearl-charge .shadow-hostile { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #0a0a14 0%, transparent 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; animation: pc-shadow 12s ease-in-out infinite alternate; }
@keyframes pc-window { 0% { box-shadow: inset 0 0 20px #1a1a2e, 0 0 30px 6px rgba(200,180,150,0.15); } 50% { box-shadow: inset 0 0 15px #2a2a3a, 0 0 40px 12px rgba(200,180,150,0.25); } 100% { box-shadow: inset 0 0 25px #1a1a2e, 0 0 30px 6px rgba(200,180,150,0.15); } }
@keyframes pc-beam { 0%,100% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.05) rotate(2deg); } }
@keyframes pc-woman { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(1px) rotate(1deg); } }
@keyframes pc-child { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 70% { transform: translateY(1px) rotate(-1deg); } }
@keyframes pc-shadow { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(5px) scaleY(0.9); } 100% { transform: translateY(-3px) scaleY(1.05); } }

/* Scene 2: dark-question-womanhood */
.scn-dark-question-womanhood { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 50%, #2a2a3e 100%), radial-gradient(ellipse at 50% 60%, #2a1e2e 0%, transparent 70%); }
.scn-dark-question-womanhood .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #12121c, #1e1e2a); }
.scn-dark-question-womanhood .desk { position:absolute; bottom:8%; left:20%; right:20%; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-dark-question-womanhood .candle { position:absolute; bottom:18%; left:38%; width:10px; height:30px; background: linear-gradient(180deg, #a08060 0%, #704830 100%); border-radius:4px 4px 2px 2px; animation: dw-candle 3s ease-in-out infinite; }
.scn-dark-question-womanhood .candle::after { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:6px; height:12px; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius:50%; box-shadow: 0 0 16px 6px rgba(255,208,128,0.5); animation: dw-flame 1.5s ease-in-out infinite alternate; }
.scn-dark-question-womanhood .figure-sit { position:absolute; bottom:10%; left:30%; width:50px; height:110px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dw-figure 5s ease-in-out infinite; }
.scn-dark-question-womanhood .mirror-frag { position:absolute; top:12%; right:18%; width:60px; height:80px; background: linear-gradient(135deg, rgba(180,190,200,0.2) 0%, rgba(100,110,120,0.2) 100%); border:2px solid #3a3a4a; border-radius:4px; transform: rotate(5deg); box-shadow: inset 0 0 20px rgba(200,210,220,0.1); animation: dw-mirror 8s ease-in-out infinite alternate; }
.scn-dark-question-womanhood .shadow-mood { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #0a0a14 0%, transparent 100%); border-radius:40% 40% 0 0 / 20% 20% 0 0; animation: dw-shadow 10s ease-in-out infinite alternate; }
@keyframes dw-candle { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-2px); } }
@keyframes dw-flame { 0% { opacity:0.8; transform: translateX(-50%) scaleY(1); } 50% { opacity:1; transform: translateX(-50%) scaleY(1.2) rotate(5deg); } 100% { opacity:0.9; transform: translateX(-50%) scaleY(0.9) rotate(-3deg); } }
@keyframes dw-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(1px) rotate(1deg); } }
@keyframes dw-mirror { 0% { opacity:0.3; box-shadow: inset 0 0 20px rgba(200,210,220,0.1); } 50% { opacity:0.7; box-shadow: inset 0 0 40px rgba(200,210,220,0.25); } 100% { opacity:0.4; box-shadow: inset 0 0 20px rgba(200,210,220,0.1); } }
@keyframes dw-shadow { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(0.9); } 100% { transform: translateY(3px) scaleY(1.05); } }

/* Scene 3: hopeless-task-woman */
.scn-hopeless-task-woman { background: linear-gradient(180deg, #14101a 0%, #221c28 40%, #2e2430 100%), radial-gradient(ellipse at 50% 70%, #3a2a2e 0%, transparent 60%); }
.scn-hopeless-task-woman .bg-ruin { position:absolute; inset:0; background: linear-gradient(135deg, #1a1620, #28222e); }
.scn-hopeless-task-woman .figure-stand { position:absolute; bottom:10%; left:45%; width:44px; height:130px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-figure 6s ease-in-out infinite; }
.scn-hopeless-task-woman .hammer { position:absolute; bottom:40%; left:48%; width:20px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:2px 2px 8px 8px; transform-origin: 50% 0%; animation: ht-hammer 3s ease-in-out infinite; }
.scn-hopeless-task-woman .rubble { position:absolute; bottom:2%; left:10%; width:80px; height:30px; background: #3a2a2a; border-radius:10% 40% 20% 50%; transform: rotate(15deg); box-shadow: 0 2px 6px rgba(0,0,0,0.6); animation: ht-rubble 15s ease-in-out infinite alternate; }
.scn-hopeless-task-woman .chain-broken { position:absolute; bottom:20%; left:20%; width:60px; height:4px; background: #5a5a5a; border-radius:2px; transform: rotate(-20deg); box-shadow: 0 0 0 2px #3a3a3a; animation: ht-chain 8s ease-in-out infinite alternate; }
.scn-hopeless-task-woman .shadow-task { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #0a0a14 0%, transparent 100%); border-radius:30% 70% 0 0 / 40% 60% 0 0; animation: ht-shadow 10s ease-in-out infinite alternate; }
@keyframes ht-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 75% { transform: translateY(2px) rotate(1deg); } }
@keyframes ht-hammer { 0% { transform: rotate(-30deg) translateY(0); } 25% { transform: rotate(20deg) translateY(-10px); } 50% { transform: rotate(-40deg) translateY(5px); } 75% { transform: rotate(10deg) translateY(-5px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes ht-rubble { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(18deg) scale(1.05); } 100% { transform: rotate(12deg) scale(0.95); } }
@keyframes ht-chain { 0% { clip-path: inset(0 0 0 0); } 50% { clip-path: inset(0 20% 0 0); } 100% { clip-path: inset(0 0 0 20%); } }
@keyframes ht-shadow { 0% { opacity:0.4; transform: scaleY(1); } 50% { opacity:0.7; transform: scaleY(1.1); } 100% { opacity:0.5; transform: scaleY(0.9); } }

/* Scene 4: heart-uppermost-vanish */
.scn-heart-uppermost-vanish { background: linear-gradient(180deg, #0a0a12 0%, #16101e 50%, #1e1828 100%), radial-gradient(ellipse at 50% 30%, #2a1a3a 0%, transparent 70%); }
.scn-heart-uppermost-vanish .bg-void { position:absolute; inset:0; background: linear-gradient(135deg, #0e0a16, #1a1420); }
.scn-heart-uppermost-vanish .figure-walk { position:absolute; bottom:15%; left:20%; width:36px; height:120px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hv-figure 8s linear infinite; }
.scn-heart-uppermost-vanish .heart-glow { position:absolute; top:35%; left:55%; width:24px; height:24px; background: radial-gradient(circle, #d07850 0%, #a04830 70%); border-radius:50%; box-shadow: 0 0 40px 12px rgba(208,120,80,0.5), 0 0 80px 24px rgba(160,72,48,0.2); animation: hv-heart 5s ease-in-out infinite alternate; }
.scn-heart-uppermost-vanish .path-wander { position:absolute; bottom:12%; left:10%; width:80%; height:2px; background: linear-gradient(90deg, transparent 0%, rgba(200,180,140,0.3) 20%, rgba(200,180,140,0.1) 80%, transparent 100%); border-radius:1px; transform: rotate(5deg); animation: hv-path 12s linear infinite; }
.scn-heart-uppermost-vanish .fog-drift { position:absolute; top:30%; left:0; width:100%; height:200px; background: radial-gradient(ellipse at 30% 50%, rgba(180,170,200,0.08) 0%, transparent 70%); filter: blur(30px); animation: hv-fog 25s ease-in-out infinite alternate; }
.scn-heart-uppermost-vanish .shadow-trail { position:absolute; bottom:5%; left:18%; width:40px; height:20px; background: radial-gradient(ellipse, #0a0a14 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: hv-shadow 8s linear infinite; }
@keyframes hv-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(40px) translateY(-3px) rotate(1deg); } 50% { transform: translateX(80px) translateY(0) rotate(-1deg); } 75% { transform: translateX(120px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(160px) translateY(0) rotate(0deg); } }
@keyframes hv-heart { 0% { opacity:0.2; transform: scale(0.8) rotate(-5deg); box-shadow: 0 0 20px 6px rgba(208,120,80,0.3); } 50% { opacity:0.9; transform: scale(1.2) rotate(0deg); box-shadow: 0 0 60px 20px rgba(208,120,80,0.7), 0 0 100px 30px rgba(160,72,48,0.4); } 100% { opacity:0.1; transform: scale(0.6) rotate(5deg); box-shadow: 0 0 10px 2px rgba(208,120,80,0.2); } }
@keyframes hv-path { 0% { opacity:0.3; transform: rotate(5deg) translateX(0); } 50% { opacity:0.6; transform: rotate(3deg) translateX(20px); } 100% { opacity:0.3; transform: rotate(7deg) translateX(-20px); } }
@keyframes hv-fog { 0% { opacity:0.3; transform: translateX(0) scaleY(1); } 50% { opacity:0.6; transform: translateX(30px) scaleY(1.1); } 100% { opacity:0.4; transform: translateX(-30px) scaleY(0.9); } }
@keyframes hv-shadow { 0% { opacity:0.3; transform: translateY(0) scaleX(1); } 50% { opacity:0.6; transform: translateY(5px) scaleX(0.8); } 100% { opacity:0.3; transform: translateY(0) scaleX(1); } }

.scn-item-armor-gleaming { background: linear-gradient(180deg, #3a2c1a 0%, #5a4030 30%, #7a5a4a 70%, #4a3a2a 100%), radial-gradient(ellipse at 50% 30%, #8a6a3a 0%, transparent 60%); }
.scn-item-armor-gleaming .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2c1a 0%, #5a4030 100%); opacity:0.7; }
.scn-item-armor-gleaming .pedestal { position:absolute; bottom:8%; left:50%; width:40px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; }
.scn-item-armor-gleaming .armor-body { position:absolute; bottom:15%; left:50%; width:70px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a050 0%, #a08030 40%, #806020 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow:0 0 30px rgba(200,160,80,0.3); animation:iag-body 6s ease-in-out infinite; }
.scn-item-armor-gleaming .armor-helm { position:absolute; bottom:70%; left:50%; width:50px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #d0b060 0%, #b09040 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow:0 -4px 12px rgba(180,140,40,0.5); animation:iag-helm 8s ease-in-out infinite alternate; }
.scn-item-armor-gleaming .visor-gleam { position:absolute; bottom:76%; left:50%; width:24px; height:10px; transform:translateX(-50%) rotate(-5deg); background: radial-gradient(ellipse, #ffecb0 0%, #d0b060 50%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 6px #ffd080; animation:iag-gleam 3s ease-in-out infinite; }
.scn-item-armor-gleaming .highlight-1 { position:absolute; bottom:30%; left:42%; width:6px; height:20px; background: linear-gradient(180deg, #ffe8a0 0%, transparent 100%); border-radius:50%; transform:rotate(-15deg); animation:iag-hi1 5s linear infinite; }
.scn-item-armor-gleaming .highlight-2 { position:absolute; bottom:50%; right:42%; width:5px; height:16px; background: linear-gradient(180deg, #ffe8a0 0%, transparent 100%); border-radius:50%; transform:rotate(10deg); animation:iag-hi2 4s linear infinite; }
.scn-item-armor-gleaming .dust-mote { position:absolute; top:20%; left:30%; width:4px; height:4px; background: rgba(255,220,160,0.6); border-radius:50%; box-shadow:0 0 6px #ffd080; animation:iag-dust 25s linear infinite; }
@keyframes iag-body { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes iag-helm { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes iag-gleam { 0% { opacity:0.6; transform: translateX(-50%) rotate(-5deg) scale(0.9); } 50% { opacity:1; transform: translateX(-50%) rotate(-5deg) scale(1.1); } 100% { opacity:0.7; transform: translateX(-50%) rotate(-5deg) scale(0.95); } }
@keyframes iag-hi1 { 0% { opacity:0.3; transform: rotate(-15deg) translateY(0); } 50% { opacity:0.8; transform: rotate(-15deg) translateY(-3px); } 100% { opacity:0.3; transform: rotate(-15deg) translateY(0); } }
@keyframes iag-hi2 { 0% { opacity:0.4; transform: rotate(10deg) translateY(0); } 50% { opacity:0.9; transform: rotate(10deg) translateY(-2px); } 100% { opacity:0.4; transform: rotate(10deg) translateY(0); } }
@keyframes iag-dust { 0% { transform: translate(0,0); opacity:0; } 20% { opacity:0.6; } 80% { opacity:0.4; } 100% { transform: translate(80px, -40px); opacity:0; } }

.scn-pearl-looks-in-breastplate { background: linear-gradient(180deg, #2a2a3e 0%, #4a3a4e 40%, #6a4a5e 100%), radial-gradient(ellipse at 50% 60%, #7a5a6a 0%, transparent 70%); }
.scn-pearl-looks-in-breastplate .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a4e 0%, #2a1a2e 100%); opacity:0.8; }
.scn-pearl-looks-in-breastplate .mirror-frame { position:absolute; top:8%; left:50%; width:100px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius:20px; box-shadow:0 0 20px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,255,255,0.1); }
.scn-pearl-looks-in-breastplate .mirror-surface { position:absolute; top:10%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #a0a0b0 0%, #d0d0e0 30%, #c0c0d0 70%, #808090 100%); border-radius:10px; box-shadow:inset 0 0 20px rgba(0,0,0,0.3); animation:plb-shimmer 5s ease-in-out infinite alternate; }
.scn-pearl-looks-in-breastplate .child-figure { position:absolute; bottom:20%; left:30%; width:24px; height:40px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:plb-child 4s ease-in-out infinite; }
.scn-pearl-looks-in-breastplate .reflection-child { position:absolute; bottom:18%; left:55%; width:24px; height:38px; background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.7; transform:scaleX(-1); animation:plb-reflect 4s ease-in-out infinite; }
.scn-pearl-looks-in-breastplate .mother-figure { position:absolute; bottom:20%; right:28%; width:30px; height:48px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:plb-mother 5s ease-in-out infinite; }
.scn-pearl-looks-in-breastplate .reflection-mother { position:absolute; bottom:18%; right:52%; width:30px; height:46px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.6; transform:scaleX(-1); animation:plb-reflect-m 5s ease-in-out infinite; }
.scn-pearl-looks-in-breastplate .shimmer { position:absolute; top:15%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 30% 40%, rgba(255,255,255,0.4) 0%, transparent 70%); border-radius:50%; animation:plb-shimmer-spot 3s ease-in-out infinite; }
@keyframes plb-shimmer { 0% { opacity:0.6; filter:brightness(0.9); } 50% { opacity:1; filter:brightness(1.1); } 100% { opacity:0.7; filter:brightness(0.95); } }
@keyframes plb-child { 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 plb-reflect { 0% { transform: scaleX(-1) translateY(0); } 25% { transform: scaleX(-1) translateY(-2px); } 50% { transform: scaleX(-1) translateY(0); } 75% { transform: scaleX(-1) translateY(-1px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes plb-mother { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes plb-reflect-m { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-1px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes plb-shimmer-spot { 0% { opacity:0.2; transform:translateX(-50%) scale(0.8); } 50% { opacity:0.6; transform:translateX(-50%) scale(1.2); } 100% { opacity:0.3; transform:translateX(-50%) scale(0.9); } }

.scn-pearl-elfish-reflection { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a3a5e 100%), radial-gradient(ellipse at 50% 70%, #4a4a6e 0%, transparent 60%); }
.scn-pearl-elfish-reflection .helmet-dome { position:absolute; top:10%; left:50%; width:120px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #b09060 0%, #806040 50%, #604020 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 30px rgba(160,120,80,0.4); animation:per-helm 10s ease-in-out infinite alternate; }
.scn-pearl-elfish-reflection .helmet-visor { position:absolute; top:22%; left:50%; width:80px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #d0b070 0%, #a08050 50%, #806040 100%); border-radius:40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow:inset 0 -2px 6px rgba(0,0,0,0.5); }
.scn-pearl-elfish-reflection .visor-reflection { position:absolute; top:24%; left:50%; width:60px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #a0a0c0 0%, #d0d0e0 40%, #c0c0d0 70%, #8080a0 100%); border-radius:30%; opacity:0.6; animation:per-visor-shine 4s ease-in-out infinite; }
.scn-pearl-elfish-reflection .child-silhouette { position:absolute; top:28%; left:50%; width:30px; height:40px; transform:translateX(-60%); background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:per-child 3s ease-in-out infinite; }
.scn-pearl-elfish-reflection .elfish-point { position:absolute; top:34%; left:46%; width:20px; height:8px; transform:rotate(30deg); background: linear-gradient(90deg, #1a1a2e 0%, transparent 100%); border-radius:50%; animation:per-point 2s ease-in-out infinite alternate; }
.scn-pearl-elfish-reflection .gleam-spark { position:absolute; top:26%; left:55%; width:8px; height:8px; background: radial-gradient(circle, #ffffff 0%, #ffe8a0 60%, transparent 100%); border-radius:50%; box-shadow:0 0 12px 4px #ffd060; animation:per-spark 1.5s ease-in-out infinite; }
.scn-pearl-elfish-reflection .shadow-edge { position:absolute; top:8%; left:50%; width:130px; height:110px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, transparent 30%, rgba(0,0,0,0.4) 80%); border-radius:50%; pointer-events:none; }
@keyframes per-helm { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes per-visor-shine { 0% { opacity:0.3; filter:brightness(0.8); } 50% { opacity:0.8; filter:brightness(1.2); } 100% { opacity:0.4; filter:brightness(0.9); } }
@keyframes per-child { 0% { transform: translateX(-60%) translateY(0) rotate(0deg); } 50% { transform: translateX(-60%) translateY(-2px) rotate(3deg); } 100% { transform: translateX(-60%) translateY(0) rotate(0deg); } }
@keyframes per-point { 0% { opacity:0.5; transform:rotate(25deg) scale(0.9); } 100% { opacity:1; transform:rotate(35deg) scale(1.1); } }
@keyframes per-spark { 0% { opacity:0.2; transform:scale(0.5); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.3; transform:scale(0.6); } }

.scn-hester-turns-to-garden { background: linear-gradient(180deg, #4a5a4a 0%, #6a7a6a 30%, #8a9a8a 70%, #6a7a6a 100%), radial-gradient(ellipse at 50% 30%, #7a8a6a 0%, transparent 70%); }
.scn-hester-turns-to-garden .hall-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a4a3a 0%, #5a6a5a 50%, #3a4a3a 100%); opacity:0.6; }
.scn-hester-turns-to-garden .window-arch { position:absolute; top:5%; left:30%; width:140px; height:180px; background: radial-gradient(ellipse at 50% 50%, #a0b0a0 0%, #708070 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow:inset 0 0 40px rgba(0,0,0,0.2), 0 0 20px rgba(0,0,0,0.3); }
.scn-hester-turns-to-garden .garden-bg { position:absolute; top:6%; left:32%; width:120px; height:160px; background: linear-gradient(180deg, #8aaa7a 0%, #6a8a5a 40%, #4a6a3a 100%); border-radius:40% 40% 10% 10% / 70% 70% 10% 10%; opacity:0.8; animation:htg-garden 20s ease-in-out infinite alternate; }
.scn-hester-turns-to-garden .flowerbed { position:absolute; top:60%; left:35%; width:80px; height:20px; background: linear-gradient(180deg, #c8a060 0%, #a08040 50%, #806020 100%); border-radius:20% 20% 50% 50% / 30% 30% 70% 70%; animation:htg-flowers 12s ease-in-out infinite; }
.scn-hester-turns-to-garden .mother-silhouette { position:absolute; bottom:10%; right:45%; width:32px; height:56px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:htg-mother 8s ease-in-out infinite; }
.scn-hester-turns-to-garden .child-silhouette { position:absolute; bottom:10%; right:45%; width:22px; height:36px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:htg-child 8s ease-in-out infinite; }
.scn-hester-turns-to-garden .curtain-left { position:absolute; top:5%; left:28%; width:20px; height:190px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:30% 0 0 30% / 20% 0 0 20%; box-shadow:4px 0 8px rgba(0,0,0,0.3); animation:htg-curtain-l 15s ease-in-out infinite alternate; }
.scn-hester-turns-to-garden .curtain-right { position:absolute; top:5%; right:28%; width:20px; height:190px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:0 30% 30% 0 / 0 20% 20% 0; box-shadow:-4px 0 8px rgba(0,0,0,0.3); animation:htg-curtain-r 15s ease-in-out infinite alternate; }
.scn-hester-turns-to-garden .butterfly { position:absolute; top:30%; left:50%; width:12px; height:8px; background: radial-gradient(ellipse, #e8a060 0%, #c08040 100%); border-radius:50%; filter:blur(1px); animation:htg-butterfly 8s linear infinite; }
@keyframes htg-garden { 0% { opacity:0.7; filter:brightness(0.9); } 50% { opacity:0.9; filter:brightness(1.1); } 100% { opacity:0.75; filter:brightness(0.95); } }
@keyframes htg-flowers { 0% { opacity:0.6; transform:translateY(0); } 50% { opacity:0.9; transform:translateY(-2px); } 100% { opacity:0.7; transform:translateY(0); } }
@keyframes htg-mother { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes htg-child { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes htg-curtain-l { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1); } }
@keyframes htg-curtain-r { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1); } }
@keyframes htg-butterfly { 0% { transform: translate(0,0) rotate(0deg); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translate(60px, -30px) rotate(20deg); opacity:0; } }

/* hester-failed-control */
.scn-hester-failed-control {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 50%, #1e1e32 100%),
    radial-gradient(ellipse at 30% 70%, #3a2a2a 0%, transparent 70%);
}
.scn-hester-failed-control .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2a42 0%, #1a1a2e 100%);
  animation: hfc-wall 20s ease-in-out infinite alternate;
}
.scn-hester-failed-control .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2e2e1e 0%, #1a1a0e 100%);
  animation: hfc-floor 15s ease-in-out infinite alternate;
}
.scn-hester-failed-control .window {
  position:absolute; top:18%; left:10%; width:35%; height:45%;
  background: linear-gradient(135deg, #3a4a5a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: hfc-window 12s ease-in-out infinite alternate;
}
.scn-hester-failed-control .hester {
  position:absolute; bottom:22%; left:28%; width:20%; height:40%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hfc-hester 6s ease-in-out infinite alternate;
}
.scn-hester-failed-control .infant {
  position:absolute; bottom:18%; left:22%; width:12%; height:18%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hfc-infant 4s ease-in-out infinite alternate;
}
.scn-hester-failed-control .candle {
  position:absolute; bottom:26%; left:15%; width:4%; height:10%;
  background: linear-gradient(180deg, #ffd080 0%, #b08040 60%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 15px rgba(255,210,128,.6), 0 0 80px 30px rgba(255,210,128,.2);
  animation: hfc-candle 3s ease-in-out infinite alternate;
}
.scn-hester-failed-control .shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: radial-gradient(ellipse at 30% 80%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: hfc-shadow 10s ease-in-out infinite alternate;
}
.scn-hester-failed-control .dust {
  position:absolute; top:20%; left:10%; width:8%; height:8%;
  background: radial-gradient(circle, rgba(255,255,200,.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: hfc-dust 30s linear infinite;
}
@keyframes hfc-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hfc-floor { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }
@keyframes hfc-window { 0% { transform: scaleX(1) } 50% { transform: scaleX(.95) } 100% { transform: scaleX(1) } }
@keyframes hfc-hester { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2%) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes hfc-infant { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-5%) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hfc-candle { 0% { box-shadow: 0 0 30px 10px rgba(255,210,128,.5), 0 0 60px 20px rgba(255,210,128,.2); opacity:.8 } 50% { box-shadow: 0 0 50px 20px rgba(255,210,128,.7), 0 0 100px 40px rgba(255,210,128,.4); opacity:1 } 100% { box-shadow: 0 0 35px 12px rgba(255,210,128,.5), 0 0 70px 25px rgba(255,210,128,.2); opacity:.9 } }
@keyframes hfc-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes hfc-dust { 0% { transform: translate(0,0) scale(1); opacity:.3 } 50% { transform: translate(10vw, -5vh) scale(1.2); opacity:.6 } 100% { transform: translate(20vw, -10vh) scale(.8); opacity:.2 } }

/* pearl-caprice */
.scn-pearl-caprice {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #e0d0b0 50%, #c8b890 100%),
    radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 60%);
}
.scn-pearl-caprice .sunbeam-left {
  position:absolute; top:0; left:15%; width:20%; height:100%;
  background: linear-gradient(135deg, rgba(255,255,230,.6) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: pcp-sunbeam 8s ease-in-out infinite alternate;
}
.scn-pearl-caprice .sunbeam-right {
  position:absolute; top:0; right:20%; width:25%; height:100%;
  background: linear-gradient(225deg, rgba(255,255,230,.4) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 20% 100%);
  animation: pcp-sunbeam 10s ease-in-out infinite alternate-reverse;
}
.scn-pearl-caprice .floor-bright {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a880 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.1);
  animation: pcp-floor 6s ease-in-out infinite alternate;
}
.scn-pearl-caprice .pearl-dance {
  position:absolute; bottom:22%; left:40%; width:15%; height:35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: pcp-dance 3s ease-in-out infinite;
}
.scn-pearl-caprice .chair {
  position:absolute; bottom:20%; right:25%; width:18%; height:30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 5px 0 10px rgba(0,0,0,.2);
  animation: pcp-chair 12s ease-in-out infinite alternate;
}
.scn-pearl-caprice .shadow-chair {
  position:absolute; bottom:18%; right:20%; width:20%; height:5%;
  background: rgba(0,0,0,.15);
  border-radius: 50%;
  filter: blur(8px);
  animation: pcp-shade 8s ease-in-out infinite alternate;
}
.scn-pearl-caprice .scarf {
  position:absolute; bottom:28%; left:48%; width:20%; height:2%;
  background: #a07050;
  border-radius: 10% 50% 50% 10%;
  filter: blur(1px);
  animation: pcp-scarf 2s ease-in-out infinite;
}
@keyframes pcp-sunbeam { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.05) } 100% { opacity:.6; transform: scaleY(1) } }
@keyframes pcp-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2%) } 100% { transform: translateY(0) } }
@keyframes pcp-dance { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(8%) rotate(3deg) } 50% { transform: translateX(15%) rotate(-2deg) } 75% { transform: translateX(8%) rotate(4deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes pcp-chair { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes pcp-shade { 0% { width:20%; opacity:.5 } 50% { width:22%; opacity:.7 } 100% { width:20%; opacity:.5 } }
@keyframes pcp-scarf { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5%) rotate(20deg) } 100% { transform: translateX(0) rotate(0) } }

/* pearl-airy-sprite */
.scn-pearl-airy-sprite {
  background:
    linear-gradient(180deg, #e8ecf0 0%, #d0d8e0 50%, #b8c0c8 100%),
    radial-gradient(ellipse at 50% 40%, #ffffff 0%, transparent 60%);
}
.scn-pearl-airy-sprite .ceiling {
  position:absolute; top:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #c8d0d8 0%, #e0e4e8 100%);
  animation: pas-ceil 20s ease-in-out infinite alternate;
}
.scn-pearl-airy-sprite .wall-bright {
  position:absolute; top:15%; bottom:20%; left:0; right:0;
  background: linear-gradient(180deg, #f0f4f8 0%, #d8e0e8 100%);
  animation: pas-wall 12s ease-in-out infinite alternate;
}
.scn-pearl-airy-sprite .pearl-sprite {
  position:absolute; top:20%; left:35%; width:12%; height:20%;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(200,200,255,.3);
  animation: pas-sprite 4s ease-in-out infinite;
}
.scn-pearl-airy-sprite .afterimage-1 {
  position:absolute; top:20%; left:35%; width:12%; height:20%;
  background: rgba(74,74,106,.2);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(8px);
  animation: pas-after1 3s ease-in-out infinite;
}
.scn-pearl-airy-sprite .afterimage-2 {
  position:absolute; top:20%; left:35%; width:12%; height:20%;
  background: rgba(74,74,106,.1);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(12px);
  animation: pas-after2 5s ease-in-out infinite;
}
.scn-pearl-airy-sprite .window-arch {
  position:absolute; top:8%; right:10%; width:20%; height:50%;
  background: linear-gradient(135deg, #a0b0c0 0%, #8090a0 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
  animation: pas-arch 15s ease-in-out infinite alternate;
}
.scn-pearl-airy-sprite .motes {
  position:absolute; top:10%; left:20%; width:5%; height:5%;
  background: radial-gradient(circle, rgba(255,255,255,.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: pas-motes 30s linear infinite;
}
.scn-pearl-airy-sprite .shadow-float {
  position:absolute; bottom:18%; left:30%; width:30%; height:4%;
  background: rgba(0,0,0,.1);
  border-radius: 50%;
  filter: blur(10px);
  animation: pas-shade 6s ease-in-out infinite alternate;
}
@keyframes pas-ceil { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pas-wall { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }
@keyframes pas-sprite { 0% { transform: translate(0,0) scale(1) rotate(-5deg); opacity:1 } 25% { transform: translate(10%,-8%) scale(1.1) rotate(3deg); opacity:.9 } 50% { transform: translate(20%,-15%) scale(1.2) rotate(-2deg); opacity:.8 } 75% { transform: translate(10%,-8%) scale(1.1) rotate(4deg); opacity:.9 } 100% { transform: translate(0,0) scale(1) rotate(-5deg); opacity:1 } }
@keyframes pas-after1 { 0% { transform: translate(0,0); opacity:.2 } 50% { transform: translate(-8%,5%); opacity:.1 } 100% { transform: translate(8%,-5%); opacity:.2 } }
@keyframes pas-after2 { 0% { transform: translate(0,0); opacity:.1 } 50% { transform: translate(12%,-10%); opacity:.05 } 100% { transform: translate(-10%,8%); opacity:.1 } }
@keyframes pas-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes pas-motes { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(20vw,-10vh) rotate(180deg) } 100% { transform: translate(40vw,-20vh) rotate(360deg) } }
@keyframes pas-shade { 0% { width:30%; opacity:.3 } 50% { width:35%; opacity:.5 } 100% { width:30%; opacity:.3 } }

/* hester-tears-and-rage */
.scn-hester-tears-and-rage {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 70%);
}
.scn-hester-tears-and-rage .wall-dark {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 100%);
  animation: htr-wall 18s ease-in-out infinite alternate;
}
.scn-hester-tears-and-rage .floor-dark {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1e1212 0%, #0e0a0a 100%);
  animation: htr-floor 14s ease-in-out infinite alternate;
}
.scn-hester-tears-and-rage .hester-rage {
  position:absolute; bottom:20%; left:35%; width:22%; height:45%;
  background: linear-gradient(180deg, #3a2020 0%, #1a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: htr-hester 3s ease-in-out infinite;
}
.scn-hester-tears-and-rage .arms {
  position:absolute; bottom:55%; left:30%; width:8%; height:12%;
  background: linear-gradient(180deg, #3a2020 0%, #2a1010 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: htr-arms 2s ease-in-out infinite alternate;
}
.scn-hester-tears-and-rage .tear-drop {
  position:absolute; bottom:38%; left:40%; width:3%; height:5%;
  background: radial-gradient(circle, #a0a0b0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: htr-tear 1.5s ease-in infinite;
}
.scn-hester-tears-and-rage .broken-cup {
  position:absolute; bottom:18%; left:20%; width:10%; height:6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  clip-path: polygon(0% 0%, 70% 0%, 100% 100%, 0% 80%);
  animation: htr-cup 10s ease-in-out infinite;
}
.scn-hester-tears-and-rage .candle-flicker {
  position:absolute; bottom:24%; left:15%; width:4%; height:12%;
  background: linear-gradient(180deg, #ffd080 0%, #b07040 60%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 40px 15px rgba(255,208,128,.6), 0 0 80px 30px rgba(255,208,128,.2);
  animation: htr-candle 0.5s ease-in-out infinite alternate;
}
.scn-hester-tears-and-rage .shadow-rage {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 80%);
  animation: htr-shadow 6s ease-in-out infinite alternate;
}
@keyframes htr-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes htr-floor { 0% { background-position: 0% 0% } 50% { background-position: 50% 0% } 100% { background-position: 100% 0% } }
@keyframes htr-hester { 0% { transform: translateX(0) rotate(-3deg) scaleY(1) } 25% { transform: translateX(3%) rotate(2deg) scaleY(1.02) } 50% { transform: translateX(6%) rotate(-4deg) scaleY(1.05) } 75% { transform: translateX(3%) rotate(3deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(-3deg) scaleY(1) } }
@keyframes htr-arms { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(30deg) translateY(-5%) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes htr-tear { 0% { transform: translateY(0); opacity:.8 } 50% { transform: translateY(20%); opacity:.4 } 100% { transform: translateY(40%); opacity:0 } }
@keyframes htr-cup { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes htr-candle { 0% { box-shadow: 0 0 30px 10px rgba(255,208,128,.4), 0 0 60px 20px rgba(255,208,128,.1); opacity:.7 } 50% { box-shadow: 0 0 50px 20px rgba(255,208,128,.8), 0 0 100px 40px rgba(255,208,128,.3); opacity:1 } 100% { box-shadow: 0 0 35px 12px rgba(255,208,128,.5), 0 0 70px 25px rgba(255,208,128,.2); opacity:.8 } }
@keyframes htr-shadow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-pearl-slow-approach {
  background:
    linear-gradient(180deg, #5a6b6d 0%, #3a4b4d 40%, #2a3a3c 100%),
    radial-gradient(ellipse at 50% 100%, #3a4b4d 0%, transparent 70%);
}
.scn-pearl-slow-approach .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a7b7d 0%, #4a5b5d 60%, transparent 100%);
  animation: si1-sky 14s ease-in-out infinite alternate;
}
.scn-pearl-slow-approach .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a3a2c 0%, #1a2a1c 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
  animation: si1-ground 8s ease-in-out infinite alternate;
}
.scn-pearl-slow-approach .trees-left {
  position: absolute; bottom: 30%; left: 0; width: 30%; height: 70%;
  background: radial-gradient(ellipse at 50% 100%, #1a3a1a 0%, transparent 70%);
  border-radius: 60% 40% 0 0;
  filter: blur(3px);
  animation: si1-trees 20s ease-in-out infinite;
}
.scn-pearl-slow-approach .trees-right {
  position: absolute; bottom: 30%; right: 0; width: 25%; height: 75%;
  background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, transparent 60%);
  border-radius: 40% 60% 0 0;
  filter: blur(4px);
  animation: si1-trees 22s ease-in-out infinite reverse;
}
.scn-pearl-slow-approach .figure-adult {
  position: absolute; bottom: 48%; left: 20%; 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: si1-adult 6s ease-in-out infinite;
}
.scn-pearl-slow-approach .figure-child {
  position: absolute; bottom: 45%; right: 30%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: si1-child 10s ease-in-out infinite;
}
.scn-pearl-slow-approach .flowers {
  position: absolute; bottom: 46%; right: 28%; width: 20px; height: 10px;
  background: radial-gradient(circle, #c8a07a 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 10px 5px rgba(200,160,122,0.6);
  animation: si1-flowers 5s ease-in-out infinite alternate;
}
@keyframes si1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes si1-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes si1-trees { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-3px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes si1-adult { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-2deg); } 50% { transform: translateX(10px) rotate(2deg); } 75% { transform: translateX(5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes si1-child { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(-8px) translateY(-2px) rotate(3deg); } 66% { transform: translateX(-16px) translateY(0) rotate(-2deg); } 100% { transform: translateX(-24px) translateY(0) rotate(0deg); } }
@keyframes si1-flowers { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }

.scn-mostly-thine {
  background:
    linear-gradient(180deg, #7a6b5d 0%, #5a4b3d 50%, #3a2b1d 100%),
    radial-gradient(ellipse at 50% 100%, #5a4b3d 0%, transparent 70%);
}
.scn-mostly-thine .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #7a6b5d 0%, #5a4b3d 100%);
  animation: mt-wall 15s ease-in-out infinite alternate;
}
.scn-mostly-thine .window {
  position: absolute; top: 15%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #9a8b7d 0%, #8a7b6d 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px rgba(255,230,200,0.3);
  animation: mt-window 12s ease-in-out infinite alternate;
}
.scn-mostly-thine .mother {
  position: absolute; bottom: 10%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: mt-mother 7s ease-in-out infinite;
}
.scn-mostly-thine .child {
  position: absolute; bottom: 18%; left: 40%; width: 15px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: mt-child 7s ease-in-out infinite;
}
.scn-mostly-thine .crown {
  position: absolute; top: 55%; left: 42%; width: 18px; height: 10px;
  background: radial-gradient(circle, #b89878 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 12px 4px rgba(184,152,120,0.5);
  animation: mt-crown 6s ease-in-out infinite alternate;
}
.scn-mostly-thine .table {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
  animation: mt-table 9s ease-in-out infinite;
}
@keyframes mt-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mt-window { 0% { box-shadow: inset 0 0 20px rgba(255,230,200,0.2); } 50% { box-shadow: inset 0 0 40px rgba(255,230,200,0.4); } 100% { box-shadow: inset 0 0 25px rgba(255,230,200,0.25); } }
@keyframes mt-mother { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } }
@keyframes mt-child { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes mt-crown { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes mt-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-living-hieroglyphic {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, transparent 70%);
}
.scn-living-hieroglyphic .bg-deep {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 70%);
  animation: lh-deep 20s ease-in-out infinite alternate;
}
.scn-living-hieroglyphic .bg-mid {
  position: absolute; inset: 10%;
  background: radial-gradient(ellipse at 50% 50%, #3a2a2a 0%, transparent 80%);
  animation: lh-mid 15s ease-in-out infinite alternate;
}
.scn-living-hieroglyphic .symbol {
  position: absolute; top: 50%; left: 50%; width: 60px; height: 80px;
  transform: translate(-50%, -50%) rotate(5deg);
  background: linear-gradient(180deg, #702243 0%, #5e1a1d 50%, #4a0f12 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(112,34,67,0.5);
  animation: lh-symbol 8s ease-in-out infinite alternate;
}
.scn-living-hieroglyphic .glow {
  position: absolute; top: 50%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(112,34,67,0.3) 0%, transparent 70%);
  animation: lh-glow 10s ease-in-out infinite alternate;
}
.scn-living-hieroglyphic .flame {
  position: absolute; top: 45%; left: 50%; width: 20px; height: 30px;
  transform: translate(-50%, 0);
  background: linear-gradient(180deg, #c8a080 0%, #a06040 50%, #702243 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  filter: blur(3px);
  animation: lh-flame 0.5s ease-in-out infinite alternate;
}
.scn-living-hieroglyphic .particle-a {
  position: absolute; top: 30%; left: 30%; width: 4px; height: 4px;
  background: #c8a080;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,160,128,0.5);
  animation: lh-particle-a 30s linear infinite;
}
.scn-living-hieroglyphic .particle-b {
  position: absolute; top: 70%; left: 70%; width: 4px; height: 4px;
  background: #a06040;
  border-radius: 50%;
  box-shadow: 0 0 6px 1px rgba(160,96,64,0.4);
  animation: lh-particle-b 25s linear infinite reverse;
}
@keyframes lh-deep { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes lh-mid { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes lh-symbol { 0% { transform: translate(-50%, -50%) rotate(5deg) scale(1); } 50% { transform: translate(-50%, -50%) rotate(8deg) scale(1.05); } 100% { transform: translate(-50%, -50%) rotate(3deg) scale(0.95); } }
@keyframes lh-glow { 0% { opacity: 0.4; transform: translate(-50%, -50%) scale(0.9); } 50% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.1); } 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.85); } }
@keyframes lh-flame { 0% { transform: translate(-50%, 0) scaleY(0.9) rotate(-2deg); } 50% { transform: translate(-50%, -2px) scaleY(1.1) rotate(2deg); } 100% { transform: translate(-50%, 0) scaleY(1) rotate(0deg); } }
@keyframes lh-particle-a { 0% { transform: translate(0, 0); } 100% { transform: translate(200px, -100px); } }
@keyframes lh-particle-b { 0% { transform: translate(0, 0); } 100% { transform: translate(-150px, 100px); } }

.scn-no-passion-in-accosting {
  background:
    linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 50%, #1a1a1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a2a 0%, transparent 70%);
}
.scn-no-passion-in-accosting .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a3a3a 0%, #2a2a2a 100%);
  animation: np-bg 12s ease-in-out infinite alternate;
}
.scn-no-passion-in-accosting .doorway {
  position: absolute; top: 10%; left: 50%; width: 40%; height: 80%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: np-doorway 18s ease-in-out infinite alternate;
}
.scn-no-passion-in-accosting .figure-adult {
  position: absolute; bottom: 10%; left: 30%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: np-adult 5s ease-in-out infinite;
}
.scn-no-passion-in-accosting .figure-child {
  position: absolute; bottom: 15%; right: 35%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: np-child 5s ease-in-out infinite reverse;
}
.scn-no-passion-in-accosting .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.4);
  animation: np-ground 10s ease-in-out infinite alternate;
}
.scn-no-passion-in-accosting .lantern {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8a080 0%, #a06040 70%);
  border-radius: 40%;
  box-shadow: 0 0 20px 6px rgba(192,160,128,0.5);
  animation: np-lantern 4s ease-in-out infinite alternate;
}
.scn-no-passion-in-accosting .step {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 4%;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 10%;
  animation: np-step 8s ease-in-out infinite;
}
@keyframes np-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes np-doorway { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.98); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes np-adult { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(-2deg); } 50% { transform: translateX(12px) rotate(2deg); } 75% { transform: translateX(6px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes np-child { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-5px) rotate(2deg); } 50% { transform: translateX(-10px) rotate(-2deg); } 75% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes np-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes np-lantern { 0% { box-shadow: 0 0 15px 4px rgba(192,160,128,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 30px 10px rgba(192,160,128,0.7); opacity: 1; } 100% { box-shadow: 0 0 20px 6px rgba(192,160,128,0.5); opacity: 0.9; } }
@keyframes np-step { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* women-in-the-crowd – tense, sunlit */
.scn-women-in-the-crowd { background: linear-gradient(180deg, #f8e8c0 0%, #d4b87a 40%, #8a6a40 70%), radial-gradient(ellipse at 50% 100%, #b89660 0%, transparent 60%); }
.scn-women-in-the-crowd .sky        { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fef4d6 0%, #e6c68a 100%); animation: wic-sky 8s ease-in-out infinite alternate; }
.scn-women-in-the-crowd .scaffold   { position:absolute; bottom:20%; left:50%; width:140px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a28 0%, #3a2210 100%); border-radius:4px 4px 8px 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); animation: wic-scaffold 4s ease-in-out infinite; }
.scn-women-in-the-crowd .crowd-back { position:absolute; bottom:18%; left:10%; right:10%; height:35%; background: linear-gradient(0deg, #6a4a2a 0%, #8a6a3a 50%, #7a5a30 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; filter: blur(2px); animation: wic-crowd 3s ease-in-out infinite alternate; }
.scn-women-in-the-crowd .crowd-fore { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: radial-gradient(ellipse at 30% 50%, #5a3a20 0%, #4a2a18 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4); animation: wic-crowd 2.5s ease-in-out infinite alternate-reverse; }
.scn-women-in-the-crowd .figure     { position:absolute; bottom:32%; left:50%; width:30px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: wic-figure 6s ease-in-out infinite; }
.scn-women-in-the-crowd .sun-haze   { position:absolute; top:10%; left:30%; width:120px; height:80px; background: radial-gradient(circle, rgba(255,230,160,0.6) 0%, transparent 70%); border-radius:50%; filter: blur(20px); animation: wic-haze 12s ease-in-out infinite alternate; }
.scn-women-in-the-crowd .banner     { position:absolute; bottom:55%; left:50%; width:60px; height:30px; transform:translateX(-50%); background: linear-gradient(135deg, #c8553d 0%, #a0461a 100%); border-radius:2px 2px 8px 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: wic-banner 5s ease-in-out infinite; }
@keyframes wic-sky      { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes wic-scaffold { 0%,100% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-3px) } }
@keyframes wic-crowd    { 0% { transform:translateX(-2px) scale(1) } 50% { transform:translateX(2px) scale(1.005) } 100% { transform:translateX(-1px) scale(1) } }
@keyframes wic-figure   { 0%,100% { transform:translateX(-50%) rotate(0) } 25% { transform:translateX(-52%) rotate(-2deg) } 75% { transform:translateX(-48%) rotate(2deg) } }
@keyframes wic-haze     { 0% { opacity:0.3; transform:scale(1) } 50% { opacity:0.6; transform:scale(1.1) } 100% { opacity:0.4; transform:scale(0.95) } }
@keyframes wic-banner   { 0%,100% { transform:translateX(-50%) rotate(-3deg) } 50% { transform:translateX(-50%) rotate(3deg) } }

/* coarse-fibre-of-women – calm, sunlit */
.scn-coarse-fibre-of-women { background: linear-gradient(180deg, #f2e3c6 0%, #cbb696 40%, #9a8060 70%), radial-gradient(ellipse at 50% 100%, #b8a080 0%, transparent 60%); }
.scn-coarse-fibre-of-women .sky         { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fef8e8 0%, #e8d4b0 100%); animation: cfw-sky 10s ease-in-out infinite alternate; }
.scn-coarse-fibre-of-women .field       { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #7a8a5a 0%, #a8b878 50%, #c0d090 100%); border-radius:60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.15); animation: cfw-field 18s ease-in-out infinite alternate; }
.scn-coarse-fibre-of-women .fence       { position:absolute; bottom:40%; left:20%; width:4px; height:40px; background:#6a4a28; border-radius:2px; box-shadow: 20px 0 0 #6a4a28, 40px 0 0 #6a4a28, 60px 0 0 #6a4a28, 80px 0 0 #6a4a28, -20px 0 0 #6a4a28; animation: cfw-fence 20s ease-in-out infinite; }
.scn-coarse-fibre-of-women .women-back  { position:absolute; bottom:25%; left:15%; width:40px; height:50px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4020 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: cfw-women 12s ease-in-out infinite; }
.scn-coarse-fibre-of-women .women-fore  { position:absolute; bottom:20%; left:55%; width:50px; height:65px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: cfw-figure 8s ease-in-out infinite; }
.scn-coarse-fibre-of-women .basket      { position:absolute; bottom:22%; left:70%; width:30px; height:20px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:0 0 40% 40% / 0 0 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: cfw-basket 6s ease-in-out infinite; }
.scn-coarse-fibre-of-women .sunbeam     { position:absolute; top:15%; left:70%; width:60px; height:200px; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%); transform:rotate(-15deg); filter: blur(8px); animation: cfw-beam 14s ease-in-out infinite alternate; }
@keyframes cfw-sky    { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cfw-field  { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes cfw-fence  { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes cfw-women  { 0% { transform:translateX(0) rotate(0) } 50% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes cfw-figure { 0%,100% { transform:rotate(0) } 50% { transform:rotate(-3deg) } }
@keyframes cfw-basket { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes cfw-beam   { 0% { opacity:0.3; transform:rotate(-15deg) scaleY(1) } 50% { opacity:0.6; transform:rotate(-12deg) scaleY(1.1) } 100% { opacity:0.4; transform:rotate(-18deg) scaleY(0.95) } }

/* bold-speech-of-matrons – tense, sunlit */
.scn-bold-speech-of-matrons { background: linear-gradient(180deg, #eee0c8 0%, #c0a880 40%, #605038 70%), radial-gradient(ellipse at 30% 50%, #d0b890 0%, transparent 60%); }
.scn-bold-speech-of-matrons .wall           { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius:0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: bsm-wall 10s ease-in-out infinite alternate; }
.scn-bold-speech-of-matrons .shadow         { position:absolute; bottom:30%; left:50%; width:100px; height:80px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); transform:translateX(-50%); animation: bsm-shadow 3s ease-in-out infinite alternate; }
.scn-bold-speech-of-matrons .matron-left    { position:absolute; bottom:20%; left:20%; width:40px; height:60px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bsm-left 2s ease-in-out infinite; }
.scn-bold-speech-of-matrons .matron-right   { position:absolute; bottom:20%; right:20%; width:40px; height:60px; background: linear-gradient(180deg, #5a3a28 0%, #3a2010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bsm-right 2.5s ease-in-out infinite reverse; }
.scn-bold-speech-of-matrons .matron-center  { position:absolute; bottom:18%; left:50%; width:45px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; box-shadow: -4px 0 10px rgba(0,0,0,0.5); animation: bsm-center 1.8s ease-in-out infinite; }
.scn-bold-speech-of-matrons .table          { position:absolute; bottom:15%; left:40%; right:40%; height:15px; background: linear-gradient(0deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: bsm-table 4s ease-in-out infinite; }
.scn-bold-speech-of-matrons .cup            { position:absolute; bottom:28%; left:48%; width:12px; height:16px; background: linear-gradient(180deg, #c09678 0%, #a07858 100%); border-radius:0 0 30% 30% / 0 0 50% 50%; transform:rotate(10deg); animation: bsm-cup 3s ease-in-out infinite alternate; }
@keyframes bsm-wall    { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bsm-shadow  { 0% { transform:translateX(-50%) scaleX(1) } 50% { transform:translateX(-50%) scaleX(1.2) } 100% { transform:translateX(-50%) scaleX(0.9) } }
@keyframes bsm-left    { 0%,100% { transform:rotate(0) } 50% { transform:rotate(5deg) } }
@keyframes bsm-right   { 0%,100% { transform:rotate(0) } 50% { transform:rotate(-5deg) } }
@keyframes bsm-center  { 0%,100% { transform:translateX(-50%) rotate(-2deg) } 25% { transform:translateX(-50%) rotate(3deg) } 75% { transform:translateX(-50%) rotate(-4deg) } }
@keyframes bsm-table   { 0%,100% { transform:translateY(0) } 50% { transform:translateY(1px) } }
@keyframes bsm-cup     { 0% { transform:rotate(10deg) translateY(0) } 100% { transform:rotate(5deg) translateY(-2px) } }

/* goodwife-hard-featured – tense, sunlit */
.scn-goodwife-hard-featured { background: linear-gradient(180deg, #e8d8b8 0%, #b09870 40%, #584838 70%), radial-gradient(ellipse at 60% 50%, #c8b090 0%, transparent 60%); }
.scn-goodwife-hard-featured .wall             { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #a88c6c 0%, #7a6040 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.4); animation: ghf-wall 8s ease-in-out infinite alternate; }
.scn-goodwife-hard-featured .shadow           { position:absolute; bottom:30%; left:40%; width:120px; height:100px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); transform:rotate(-5deg); animation: ghf-shadow 2.5s ease-in-out infinite alternate; }
.scn-goodwife-hard-featured .figure           { position:absolute; bottom:15%; left:50%; width:50px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 40% 40% 50% 50%; box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: ghf-figure 2s ease-in-out infinite; }
.scn-goodwife-hard-featured .bonnet           { position:absolute; bottom:68%; left:47%; width:30px; height:20px; background: linear-gradient(180deg, #604838 0%, #402820 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:translateX(-50%) rotate(-10deg); animation: ghf-bonnet 3s ease-in-out infinite alternate; }
.scn-goodwife-hard-featured .jaw-shadow       { position:absolute; bottom:55%; left:48%; width:20px; height:4px; background: rgba(0,0,0,0.4); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: ghf-jaw 1.5s ease-in-out infinite alternate; }
.scn-goodwife-hard-featured .crowd-silhouette { position:absolute; bottom:10%; left:15%; right:15%; height:25%; background: radial-gradient(ellipse at 40% 50%, #2a1a0a 0%, transparent 60%); filter: blur(3px); animation: ghf-crowd 4s ease-in-out infinite alternate; }
.scn-goodwife-hard-featured .ground           { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(0deg, #4a3828 0%, #5a4838 100%); border-radius:20% 20% 0 0 / 50% 50% 0 0; animation: ghf-ground 6s ease-in-out infinite; }
@keyframes ghf-wall    { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ghf-shadow  { 0% { transform:rotate(-5deg) scaleX(1) } 50% { transform:rotate(-8deg) scaleX(1.15) } 100% { transform:rotate(-3deg) scaleX(0.95) } }
@keyframes ghf-figure  { 0%,100% { transform:translateX(-50%) rotate(0) } 25% { transform:translateX(-50%) rotate(2deg) } 75% { transform:translateX(-50%) rotate(-3deg) } }
@keyframes ghf-bonnet  { 0% { transform:translateX(-50%) rotate(-10deg) } 100% { transform:translateX(-50%) rotate(-15deg) } }
@keyframes ghf-jaw     { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes ghf-crowd   { 0% { transform:translateX(-3px) } 50% { transform:translateX(3px) } 100% { transform:translateX(0) } }
@keyframes ghf-ground  { 0%,100% { transform:translateY(0) } 50% { transform:translateY(1px) } }

/* hester-maiden-glance (tense, dim-interior) */
.scn-hester-maiden-glance {
  background: linear-gradient(180deg, #1a1412 0%, #2a1e18 40%, #3a2820 100%),
              radial-gradient(ellipse at 30% 60%, #3a2820 0%, transparent 70%);
}
.scn-hester-maiden-glance .back-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1612 100%);
  border-bottom: 2px solid #4a3430;
}
.scn-hester-maiden-glance .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
}
.scn-hester-maiden-glance .window-frame {
  position: absolute; top: 15%; left: 60%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a20 100%);
  border-radius: 4% 4% 6% 6%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-hester-maiden-glance .figure {
  position: absolute; bottom: 25%; left: 45%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hmg-figure 4s ease-in-out infinite alternate;
}
.scn-hester-maiden-glance .scarlet-letter {
  position: absolute; bottom: 35%; left: 48%; width: 6%; height: 8%;
  background: radial-gradient(circle, #a0461a 0%, #7a2a12 70%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 8px #a0461a, 0 0 60px 16px rgba(160,70,26,0.4);
  animation: hmg-letter 1.5s ease-in-out infinite alternate;
}
.scn-hester-maiden-glance .light {
  position: absolute; top: 12%; left: 58%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, rgba(180,140,80,0.15) 0%, transparent 60%);
  animation: hmg-light 3s ease-in-out infinite alternate;
}
@keyframes hmg-figure {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-1deg) translateX(-1px); }
}
@keyframes hmg-letter {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes hmg-light {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

/* legend-scarlet-letter (dark, dark) */
.scn-legend-scarlet-letter {
  background: linear-gradient(180deg, #0a0a12 0%, #12101a 50%, #1a1622 100%),
              radial-gradient(ellipse at 50% 100%, #1a1622 0%, transparent 70%);
}
.scn-legend-scarlet-letter .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0e0c1a 0%, #141020 40%, transparent 100%);
  animation: lsl-sky 12s ease-in-out infinite alternate;
}
.scn-legend-scarlet-letter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1418 0%, #0e0a0e 100%);
  border-radius: 30% 70% 0 0 / 20% 60% 0 0;
}
.scn-legend-scarlet-letter .tree {
  position: absolute; bottom: 30%; left: 25%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #1a1418 0%, #0e0a0e 100%);
  border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: lsl-tree 8s ease-in-out infinite alternate;
}
.scn-legend-scarlet-letter .figure {
  position: absolute; bottom: 28%; left: 55%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #0e0c12 0%, #060408 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lsl-figure 6s ease-in-out infinite alternate;
}
.scn-legend-scarlet-letter .symbol {
  position: absolute; top: 12%; right: 25%; width: 15%; height: 15%;
  background: radial-gradient(circle, #7a3a2a 0%, #4a1a0e 70%);
  border-radius: 10%; box-shadow: 0 0 40px 12px #7a3a2a, 0 0 80px 24px rgba(122,58,42,0.3);
  animation: lsl-symbol 3s ease-in-out infinite alternate;
}
.scn-legend-scarlet-letter .cloud {
  position: absolute; top: 8%; left: 10%; width: 20%; height: 6%;
  background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 100%);
  border-radius: 50%; filter: blur(5px);
  animation: lsl-drift 50s linear infinite;
}
@keyframes lsl-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes lsl-tree { 0% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(0) scaleY(0.98); } 100% { transform: rotate(2deg) scaleY(1); } }
@keyframes lsl-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(0); } }
@keyframes lsl-symbol { 0% { opacity: 0.6; transform: scale(0.95) rotate(-3deg); } 50% { opacity: 1; transform: scale(1.05) rotate(3deg); } 100% { opacity: 0.7; transform: scale(1) rotate(0); } }
@keyframes lsl-drift { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* pearl-introduction (warm, dim-interior) */
.scn-pearl-introduction {
  background: linear-gradient(180deg, #2a1e16 0%, #3a2a1e 50%, #4a3424 100%),
              radial-gradient(ellipse at 50% 50%, #4a3424 0%, transparent 70%);
}
.scn-pearl-introduction .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%);
}
.scn-pearl-introduction .cradle {
  position: absolute; bottom: 25%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 15px rgba(0,0,0,0.6);
  animation: pin-cradle 5s ease-in-out infinite alternate;
}
.scn-pearl-introduction .mother {
  position: absolute; bottom: 30%; left: 40%; width: 22%; height: 45%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pin-mother 4s ease-in-out infinite alternate;
}
.scn-pearl-introduction .infant {
  position: absolute; bottom: 28%; left: 45%; width: 8%; height: 10%;
  background: radial-gradient(circle, #8a6a50 0%, #5a4030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(138,106,80,0.3);
  animation: pin-infant 3s ease-in-out infinite alternate;
}
.scn-pearl-introduction .candle {
  position: absolute; bottom: 35%; left: 30%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 60%, #4a3020 100%);
  border-radius: 10% 10% 20% 20%;
  animation: pin-candle 2s ease-in-out infinite alternate;
}
.scn-pearl-introduction .glow {
  position: absolute; bottom: 30%; left: 24%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,96,0.3) 0%, transparent 60%);
  animation: pin-glow 3s ease-in-out infinite alternate;
}
@keyframes pin-cradle {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(0); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes pin-mother {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(1deg) scale(0.98); }
  100% { transform: rotate(-1deg) scale(1); }
}
@keyframes pin-infant {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-1px) scale(0.98); }
}
@keyframes pin-candle {
  0% { opacity: 0.7; transform: scaleY(0.95); }
  50% { opacity: 1; transform: scaleY(1); }
  100% { opacity: 0.8; transform: scaleY(0.97); }
}
@keyframes pin-glow {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.5; transform: scale(1); }
}

/* pearl-name-meaning (warm, dim-interior) */
.scn-pearl-name-meaning {
  background: linear-gradient(180deg, #2a1a12 0%, #3a241c 40%, #4a3024 100%),
              radial-gradient(ellipse at 50% 30%, #4a3024 0%, transparent 70%);
}
.scn-pearl-name-meaning .desk {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #4a3428 0%, #2a1e14 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,0.5);
}
.scn-pearl-name-meaning .pearl {
  position: absolute; bottom: 28%; left: 48%; width: 8%; height: 8%;
  background: radial-gradient(circle, #e8d8c0 0%, #a09080 70%);
  border-radius: 50%; box-shadow: 0 0 30px 8px #e8d8c0, 0 0 60px 16px rgba(232,216,192,0.4);
  animation: pnm-pearl 4s ease-in-out infinite alternate;
}
.scn-pearl-name-meaning .hand {
  position: absolute; bottom: 32%; left: 44%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border-radius: 40% 20% 20% 40% / 60% 30% 30% 60%;
  transform-origin: bottom right;
  animation: pnm-hand 5s ease-in-out infinite alternate;
}
.scn-pearl-name-meaning .cloth {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3428 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-pearl-name-meaning .light-source {
  position: absolute; top: 10%; left: 45%; width: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,96,0.2) 0%, transparent 60%);
  animation: pnm-light 3s ease-in-out infinite alternate;
}
.scn-pearl-name-meaning .shadow {
  position: absolute; bottom: 32%; left: 48%; width: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: pnm-shadow 4s ease-in-out infinite alternate;
}
@keyframes pnm-pearl {
  0% { transform: scale(0.98) rotate(-5deg); opacity: 0.8; }
  50% { transform: scale(1.02) rotate(5deg); opacity: 1; }
  100% { transform: scale(1) rotate(0); opacity: 0.9; }
}
@keyframes pnm-hand {
  0% { transform: rotate(0) translateY(0); }
  50% { transform: rotate(8deg) translateY(-4px); }
  100% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes pnm-light {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes pnm-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(0.95); }
}

.scn-brook-mystery {
  background:
    linear-gradient(180deg, #6b7d7e 0%, #4f5e5a 40%, #3b4a45 100%),
    radial-gradient(ellipse at 30% 60%, #5d706c 0%, transparent 60%);
}
.scn-brook-mystery .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8a9b98 0%, #6b7d7e 100%);
  animation: bmy-sky 20s ease-in-out infinite alternate;
}
.scn-brook-mystery .distant-trees {
  position: absolute;
  bottom: 45%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, #3b4a45 0%, #4f5e5a 60%, transparent 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: bmy-trees 12s ease-in-out infinite alternate;
}
.scn-brook-mystery .underbrush {
  position: absolute;
  bottom: 25%;
  left: 0;
  right: 0;
  height: 20%;
  background: radial-gradient(ellipse at 40% 100%, #2a3a32 0%, transparent 100%);
  filter: blur(2px);
  animation: bmy-brush 8s ease-in-out infinite alternate;
}
.scn-brook-mystery .rock {
  position: absolute;
  bottom: 22%;
  left: 35%;
  width: 50px;
  height: 40px;
  background: linear-gradient(135deg, #5c6b64 0%, #3a4742 100%);
  border-radius: 30% 50% 40% 40%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: bmy-rock 15s ease-in-out infinite alternate;
}
.scn-brook-mystery .stream {
  position: absolute;
  bottom: 15%;
  left: 20%;
  right: 40%;
  height: 12%;
  background: linear-gradient(90deg, #4f6b64 0%, #3e5953 20%, #6a8a80 50%, #3e5953 80%, #4f6b64 100%);
  border-radius: 40% 60% 50% 50% / 80% 80% 20% 20%;
  filter: blur(1px);
  animation: bmy-stream 6s ease-in-out infinite alternate;
}
.scn-brook-mystery .shimmer {
  position: absolute;
  bottom: 18%;
  left: 28%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #b6d4cc 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(182, 212, 204, 0.4);
  animation: bmy-shimmer 3s ease-in-out infinite alternate;
}
.scn-brook-mystery .hoverfly {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 6px;
  height: 6px;
  background: #c0d0c8;
  border-radius: 50%;
  animation: bmy-fly 8s linear infinite;
}
@keyframes bmy-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes bmy-trees {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes bmy-brush {
  0% { opacity: 0.6; transform: translateX(-2px); }
  50% { opacity: 1; transform: translateX(2px); }
  100% { opacity: 0.7; transform: translateX(0); }
}
@keyframes bmy-rock {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes bmy-stream {
  0% { transform: scaleX(1) translateX(-2px); }
  50% { transform: scaleX(1.03) translateX(2px); }
  100% { transform: scaleX(1) translateX(-1px); }
}
@keyframes bmy-shimmer {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes bmy-fly {
  0% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(20px, -10px) scale(1.2); }
  50% { transform: translate(40px, -5px) scale(0.9); }
  75% { transform: translate(60px, -15px) scale(1.1); }
  100% { transform: translate(80px, 0) scale(1); }
}

.scn-brook-audible {
  background:
    linear-gradient(180deg, #6f7e7a 0%, #52615c 40%, #3a4944 100%),
    radial-gradient(ellipse at 50% 30%, #7e908a 0%, transparent 70%);
}
.scn-brook-audible .water {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #5a7a72 0%, #3d5951 100%);
  border-radius: 0 0 20% 20%;
  animation: bau-water 10s ease-in-out infinite alternate;
}
.scn-brook-audible .ripples {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 5%;
  background: repeating-linear-gradient(90deg, transparent 0%, #7aa29a 5%, transparent 10%);
  animation: bau-ripple 4s ease-in-out infinite alternate;
}
.scn-brook-audible .pebbles {
  position: absolute;
  bottom: 5%;
  left: 25%;
  width: 30px;
  height: 20px;
  background: radial-gradient(circle at 30% 40%, #7a7168 0%, #4f4842 100%);
  border-radius: 50% 40% 40% 50%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: bau-pebble 8s ease-in-out infinite alternate;
}
.scn-brook-audible .child-figure {
  position: absolute;
  bottom: 35%;
  left: 60%;
  width: 16px;
  height: 32px;
  background: linear-gradient(180deg, #3a4242 0%, #1e2525 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bau-child 5s ease-in-out infinite;
}
.scn-brook-audible .reeds {
  position: absolute;
  bottom: 40%;
  left: 15%;
  width: 4px;
  height: 40px;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(10deg);
  animation: bau-reed 9s ease-in-out infinite alternate;
}
.scn-brook-audible .shadow {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 30px;
  height: 10px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: bau-shadow 5s ease-in-out infinite;
}
.scn-brook-audible .leaf {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 10px;
  height: 6px;
  background: #6a7a4a;
  border-radius: 50% 0 50% 0;
  transform: rotate(30deg);
  animation: bau-leaf 12s linear infinite;
}
@keyframes bau-water {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(0.99); }
}
@keyframes bau-ripple {
  0% { background-position: 0 0; opacity: 0.6; }
  50% { background-position: 10px 0; opacity: 1; }
  100% { background-position: 0 0; opacity: 0.7; }
}
@keyframes bau-pebble {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bau-child {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes bau-reed {
  0% { transform: rotate(8deg) scaleY(1); }
  50% { transform: rotate(12deg) scaleY(1.05); }
  100% { transform: rotate(8deg) scaleY(1); }
}
@keyframes bau-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.3; transform: scaleX(1); }
}
@keyframes bau-leaf {
  0% { transform: rotate(30deg) translateY(0) scale(1); }
  25% { transform: rotate(45deg) translateY(-5px) scale(1.1); }
  50% { transform: rotate(60deg) translateY(0) scale(1); }
  75% { transform: rotate(75deg) translateY(-5px) scale(1.1); }
  100% { transform: rotate(90deg) translateY(0) scale(1); }
}

.scn-brook-reflection {
  background:
    linear-gradient(180deg, #5e6f6a 0%, #40524c 100%),
    radial-gradient(ellipse at 50% 80%, #4b6059 0%, transparent 60%);
}
.scn-brook-reflection .water {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 70%;
  background: linear-gradient(180deg, #456158 0%, #2b423b 100%);
  border-radius: 0 0 10% 10%;
  animation: bre-water 14s ease-in-out infinite alternate;
}
.scn-brook-reflection .reflection-figure {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 14px;
  height: 30px;
  background: linear-gradient(180deg, #4a5350 0%, #2c3532 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scaleY(-1);
  opacity: 0.4;
  animation: bre-reflect 8s ease-in-out infinite alternate;
}
.scn-brook-reflection .ripples {
  position: absolute;
  bottom: 40%;
  left: 20%;
  right: 20%;
  height: 4%;
  background: repeating-linear-gradient(90deg, transparent 0%, #6a8a80 3%, transparent 6%);
  animation: bre-ripple 5s ease-in-out infinite alternate;
}
.scn-brook-reflection .leaves {
  position: absolute;
  top: 15%;
  left: 10%;
  width: 12px;
  height: 8px;
  background: #4a5a3a;
  border-radius: 50% 0 50% 0;
  transform: rotate(20deg);
  animation: bre-leaf 18s linear infinite;
}
.scn-brook-reflection .bank {
  position: absolute;
  bottom: 65%;
  left: 0;
  right: 0;
  height: 10%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
  animation: bre-bank 12s ease-in-out infinite alternate;
}
.scn-brook-reflection .bird {
  position: absolute;
  top: 10%;
  right: 20%;
  width: 8px;
  height: 4px;
  background: #5a6a5a;
  border-radius: 50% 50% 0 0;
  animation: bre-bird 7s ease-in-out infinite;
}
@keyframes bre-water {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.02) translateY(-1px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes bre-reflect {
  0% { opacity: 0.3; transform: translateX(-50%) scaleY(-1) rotate(0deg); }
  50% { opacity: 0.5; transform: translateX(-50%) scaleY(-1) rotate(2deg); }
  100% { opacity: 0.4; transform: translateX(-50%) scaleY(-1) rotate(0deg); }
}
@keyframes bre-ripple {
  0% { background-position: 0 0; opacity: 0.4; }
  50% { background-position: 10px 0; opacity: 0.8; }
  100% { background-position: 0 0; opacity: 0.5; }
}
@keyframes bre-leaf {
  0% { transform: rotate(20deg) translateY(0) scale(1); }
  33% { transform: rotate(35deg) translateY(-3px) scale(1.1); }
  66% { transform: rotate(25deg) translateY(2px) scale(0.9); }
  100% { transform: rotate(20deg) translateY(0) scale(1); }
}
@keyframes bre-bank {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes bre-bird {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  25% { transform: translateX(10px) translateY(-2px) rotate(5deg); }
  50% { transform: translateX(20px) translateY(0) rotate(0deg); }
  75% { transform: translateX(10px) translateY(-2px) rotate(5deg); }
  100% { transform: translateX(0) translateY(0) rotate(-5deg); }
}

.scn-brook-mirror-sorrow {
  background:
    linear-gradient(180deg, #4a5452 0%, #2f3a37 40%, #1d2825 100%),
    radial-gradient(ellipse at 70% 40%, #3e4d48 0%, transparent 70%);
}
.scn-brook-mirror-sorrow .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5b6a66 0%, #3f4d49 100%);
  animation: bms-sky 25s ease-in-out infinite alternate;
}
.scn-brook-mirror-sorrow .path {
  position: absolute;
  bottom: 20%;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(90deg, #2e3c38 0%, #3c4c47 20%, #2e3c38 100%);
  border-radius: 20% 20% 0 0;
  animation: bms-path 10s ease-in-out infinite alternate;
}
.scn-brook-mirror-sorrow .branches-left {
  position: absolute;
  top: 5%;
  left: 0;
  width: 30%;
  height: 60%;
  background: linear-gradient(180deg, #2b3a32 0%, #1a2722 100%);
  border-radius: 0 30% 30% 0;
  filter: blur(2px);
  animation: bms-branch-l 18s ease-in-out infinite alternate;
}
.scn-brook-mirror-sorrow .branches-right {
  position: absolute;
  top: 10%;
  right: 0;
  width: 35%;
  height: 50%;
  background: linear-gradient(180deg, #2b3a32 0%, #1a2722 100%);
  border-radius: 30% 0 0 30%;
  filter: blur(2px);
  animation: bms-branch-r 18s ease-in-out infinite alternate reverse;
}
.scn-brook-mirror-sorrow .figure-mother {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 18px;
  height: 38px;
  background: linear-gradient(180deg, #222d2a 0%, #101a17 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bms-mother 5s ease-in-out infinite;
}
.scn-brook-mirror-sorrow .figure-child {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 14px;
  height: 28px;
  background: linear-gradient(180deg, #2a3632 0%, #182220 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bms-child 4s ease-in-out infinite alternate;
}
.scn-brook-mirror-sorrow .shadow-footstep {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 12px;
  height: 4px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: bms-step 2s ease-in-out infinite alternate;
}
@keyframes bms-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes bms-path {
  0% { transform: translateX(-2px) scaleY(1); }
  50% { transform: translateX(2px) scaleY(1.03); }
  100% { transform: translateX(-2px) scaleY(1); }
}
@keyframes bms-branch-l {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bms-branch-r {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bms-mother {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-2px) translateY(1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes bms-child {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes bms-step {
  0% { opacity: 0.1; transform: scaleX(1) translateX(-2px); }
  50% { opacity: 0.5; transform: scaleX(1.2) translateX(2px); }
  100% { opacity: 0.1; transform: scaleX(1) translateX(-2px); }
}

/* demon-origin-argument – tense sunlit silhouette argument */
.scn-demon-origin-argument {
  background:
    radial-gradient(ellipse at 70% 30%, #ffdd88 0%, #ffaa44 30%, #d48a3a 70%, transparent 100%),
    linear-gradient(180deg, #87ceeb 0%, #e0f0ff 40%, #fff8e0 100%);
}
.scn-demon-origin-argument .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,240,.15) 0%, transparent 100%); animation: da-sky 10s ease-in-out infinite alternate; }
.scn-demon-origin-argument .sun { position:absolute; top:12%; left:65%; width:80px; height:80px; background: radial-gradient(circle, #fffbe0 0%, #ffd080 40%, transparent 70%); box-shadow: 0 0 60px 30px rgba(255,200,80,.5); border-radius:50%; animation: da-sun 8s ease-in-out infinite alternate; }
.scn-demon-origin-argument .mother { position:absolute; bottom:28%; left:30%; width:36px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da-figure 3s ease-in-out infinite; }
.scn-demon-origin-argument .child { position:absolute; bottom:28%; left:35%; width:20px; 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: da-child 3.5s ease-in-out infinite; }
.scn-demon-origin-argument .accuser-a { position:absolute; bottom:26%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: da-point 2.8s ease-in-out infinite; }
.scn-demon-origin-argument .accuser-b { position:absolute; bottom:26%; right:10%; width:28px; height:65px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: da-point 3.2s ease-in-out infinite reverse; }
.scn-demon-origin-argument .shadow-ground { position:absolute; bottom:25%; left:0; right:0; height:5%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); filter: blur(4px); animation: da-shadow 4s ease-in-out infinite alternate; }
@keyframes da-sky { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes da-sun { 0% { transform: scale(.9); opacity:.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(.95); opacity:.9; } }
@keyframes da-figure { 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(0); } }
@keyframes da-child { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-1px) rotate(-2deg); } 60% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-2px) rotate(1deg); } }
@keyframes da-point { 0% { transform: rotate(0) translateY(0); } 20% { transform: rotate(15deg) translateY(-3px); } 40% { transform: rotate(5deg) translateY(0); } 60% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes da-shadow { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.5; transform: scaleY(1.2); } 100% { opacity:.4; transform: scaleY(.9); } }

/* governor-leads-design – tense sunlit building with scaffolding */
.scn-governor-leads-design {
  background:
    radial-gradient(ellipse at 50% 20%, #ffe090 0%, #c08040 40%, transparent 70%),
    linear-gradient(180deg, #b0d4f0 0%, #e8f0ff 50%, #fff5e0 100%);
}
.scn-governor-leads-design .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,240,.2) 0%, transparent 100%); animation: gl-sky 12s ease-in-out infinite alternate; }
.scn-governor-leads-design .sun { position:absolute; top:8%; left:50%; width:100px; height:100px; background: radial-gradient(circle, #fffbe0 0%, #ffd080 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,200,80,.4); animation: gl-sun 9s ease-in-out infinite alternate; }
.scn-governor-leads-design .facade { position:absolute; bottom:20%; left:25%; width:50%; height:55%; background: linear-gradient(180deg, #d4b88a 0%, #b89870 40%, #a07850 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,.3); animation: gl-facade 15s ease-in-out infinite alternate; }
.scn-governor-leads-design .column { position:absolute; bottom:20%; width:6%; height:55%; background: linear-gradient(90deg, #c8a878 0%, #e0c898 30%, #c8a878 70%); border-radius:10% 10% 0 0; animation: gl-column 6s ease-in-out infinite alternate; }
.scn-governor-leads-design .col-left { left:30%; }
.scn-governor-leads-design .col-right { left:64%; }
.scn-governor-leads-design .scaffold { position:absolute; bottom:45%; left:30%; width:40%; height:10%; background: repeating-linear-gradient(90deg, #6a4a2a 0px, #6a4a2a 8px, transparent 8px, transparent 16px), linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: gl-scaffold 4s ease-in-out infinite; }
.scn-governor-leads-design .governor { position:absolute; bottom:20%; left:48%; 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: gl-gov 3.5s ease-in-out infinite; }
.scn-governor-leads-design .plan { position:absolute; bottom:25%; left:58%; width:30px; height:20px; background: #f0e8d0; border-radius:4px; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: gl-plan 5s ease-in-out infinite alternate; }
@keyframes gl-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes gl-sun { 0% { transform: scale(.95); opacity:.9; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(1); opacity:.95; } }
@keyframes gl-facade { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes gl-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes gl-scaffold { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-.5deg); } 75% { transform: translateX(1px) rotate(.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes gl-gov { 0% { transform: rotate(-3deg) translateY(0); } 30% { transform: rotate(3deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(0) translateY(-1px); } }
@keyframes gl-plan { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(4px); } 100% { transform: rotate(10deg) translateX(-2px); } }

/* pristine-simplicity-era – calm sunlit landscape with soft drift */
.scn-pristine-simplicity-era {
  background:
    radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, #f0d090 30%, transparent 70%),
    linear-gradient(180deg, #a0c8e0 0%, #d8ecf8 40%, #f0f8e0 100%);
}
.scn-pristine-simplicity-era .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, rgba(255,255,240,.15) 0%, transparent 100%); animation: ps-sky 20s ease-in-out infinite alternate; }
.scn-pristine-simplicity-era .sun { position:absolute; top:10%; left:20%; width:60px; height:60px; background: radial-gradient(circle, #fffbe0 0%, #ffd080 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,200,80,.3); animation: ps-sun 15s ease-in-out infinite alternate; }
.scn-pristine-simplicity-era .fields { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #8cb87a 0%, #6a9a5a 40%, #4a7a3a 100%); border-radius: 30% 70% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 30px rgba(0,0,0,.15); animation: ps-fields 25s ease-in-out infinite alternate; }
.scn-pristine-simplicity-era .cottage { position:absolute; bottom:25%; left:45%; width:70px; height:50px; background: linear-gradient(180deg, #c8a878 0%, #a8885a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,.2); animation: ps-cottage 12s ease-in-out infinite alternate; }
.scn-pristine-simplicity-era .tree-a { position:absolute; bottom:22%; left:30%; width:30px; height:70px; background: linear-gradient(180deg, #5a8a3a 0%, #3a6a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-tree 8s ease-in-out infinite; }
.scn-pristine-simplicity-era .tree-b { position:absolute; bottom:20%; right:25%; width:35px; height:80px; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ps-tree 10s ease-in-out infinite reverse; }
.scn-pristine-simplicity-era .cloud-a { position:absolute; top:15%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(6px); animation: ps-drift-a 40s linear infinite; }
.scn-pristine-simplicity-era .cloud-b { position:absolute; top:22%; right:8%; width:60px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.05) 100%); border-radius:50%; filter: blur(5px); animation: ps-drift-b 50s linear infinite reverse; }
@keyframes ps-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ps-sun { 0% { transform: scale(.95); opacity:.85; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(1); opacity:.9; } }
@keyframes ps-fields { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(1px) scaleY(.98); } }
@keyframes ps-cottage { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(1px) rotate(-.5deg); } }
@keyframes ps-tree { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-3px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes ps-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes ps-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* hester-sets-forth – tense sunlit departure from cottage */
.scn-hester-sets-forth {
  background:
    radial-gradient(ellipse at 40% 30%, #ffe090 0%, #d48a3a 40%, transparent 70%),
    linear-gradient(180deg, #b0d0e8 0%, #e8f0ff 50%, #fff8e0 100%);
}
.scn-hester-sets-forth .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,240,.15) 0%, transparent 100%); animation: hf-sky 9s ease-in-out infinite alternate; }
.scn-hester-sets-forth .sun { position:absolute; top:10%; left:35%; width:90px; height:90px; background: radial-gradient(circle, #fffbe0 0%, #ffd080 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 70px 35px rgba(255,200,80,.5); animation: hf-sun 7s ease-in-out infinite alternate; }
.scn-hester-sets-forth .cottage-wall { position:absolute; bottom:20%; left:25%; width:45%; height:60%; background: linear-gradient(180deg, #c8a878 0%, #a8885a 50%, #8a7050 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,.4); animation: hf-wall 12s ease-in-out infinite alternate; }
.scn-hester-sets-forth .door { position:absolute; bottom:20%; left:44%; width:12%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 2px 8px rgba(0,0,0,.6); animation: hf-door 4s ease-in-out infinite alternate; }
.scn-hester-sets-forth .threshold { position:absolute; bottom:18%; left:42%; width:16%; height:3%; background: #7a6040; border-radius:4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: hf-thresh 6s ease-in-out infinite alternate; }
.scn-hester-sets-forth .fig-hester { position:absolute; bottom:20%; left:48%; width:22px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hf-walk 3s ease-in-out infinite; }
.scn-hester-sets-forth .fig-pearl { position:absolute; bottom:20%; left:53%; 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: hf-walk 3.5s ease-in-out infinite; }
.scn-hester-sets-forth .dust { position:absolute; bottom:18%; left:42%; width:20%; height:8%; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,.5) 0%, transparent 70%); filter: blur(8px); animation: hf-dust 2.5s ease-in-out infinite; }
@keyframes hf-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes hf-sun { 0% { transform: scale(.9); opacity:.85; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(.95); opacity:.9; } }
@keyframes hf-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes hf-door { 0% { transform: rotateY(0deg); } 30% { transform: rotateY(15deg); } 60% { transform: rotateY(-5deg); } 100% { transform: rotateY(0deg); } }
@keyframes hf-thresh { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes hf-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes hf-dust { 0% { opacity:.3; transform: translateY(0) scale(1); } 50% { opacity:.6; transform: translateY(-4px) scale(1.2); } 100% { opacity:.2; transform: translateY(0) scale(.8); } }

.scn-wilson-questions-pearl {
  background: linear-gradient(180deg, #f9e6c7 0%, #cfa76a 40%, #8a6520 100%), radial-gradient(ellipse at 60% 40%, rgba(255,215,0,0.3) 0%, transparent 60%);
}
.scn-wilson-questions-pearl .window-frame {
  position:absolute; top:8%; left:20%; width:200px; height:160px;
  background: #5a3e1a;
  border-radius: 8px;
  box-shadow: inset 0 0 0 6px #3e2a10, 0 4px 12px rgba(0,0,0,0.4);
}
.scn-wilson-questions-pearl .stained-glass {
  position:absolute; top:12%; left:24%; width:130px; height:120px;
  background: linear-gradient(135deg, #c8553d 20%, #f0b040 40%, #6a8f3a 60%, #3a7fbf 80%);
  border-radius: 4px;
  box-shadow: inset 0 2px 6px rgba(255,255,255,0.6);
  animation: ws-stain 4s ease-in-out infinite alternate;
}
.scn-wilson-questions-pearl .sunbeam {
  position:absolute; top:18%; left:30%; width:240px; height:12px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,235,160,0.6) 30%, rgba(255,235,160,0.2) 100%);
  transform-origin: left center;
  transform: rotate(25deg);
  filter: blur(3px);
  animation: ws-beam 8s ease-in-out infinite;
}
.scn-wilson-questions-pearl .floor-light {
  position:absolute; bottom:15%; left:15%; width:280px; height:60px;
  background: radial-gradient(ellipse at 50% 50%, #f0b040 0%, #c8553d 30%, transparent 60%);
  opacity:0.7;
  filter: blur(10px);
  animation: ws-floorlight 6s ease-in-out infinite alternate;
}
.scn-wilson-questions-pearl .wilson-figure {
  position:absolute; bottom:20%; left:10%; width:70px; height:130px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 40% 40%;
  transform: scaleX(0.85);
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: ws-wilson 5s ease-in-out infinite;
}
.scn-wilson-questions-pearl .pearl-figure {
  position:absolute; bottom:20%; left:60%; width:30px; height:80px;
  background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scaleX(0.7);
  box-shadow: -2px 0 6px rgba(160,70,26,0.6);
  animation: ws-pearl 3s ease-in-out infinite alternate;
}
@keyframes ws-stain { 0%{opacity:0.7;transform:scale(1)} 50%{opacity:1;transform:scale(1.05)} 100%{opacity:0.8;transform:scale(0.98)} }
@keyframes ws-beam { 0%{opacity:0.4;transform:rotate(20deg)} 50%{opacity:0.9;transform:rotate(28deg)} 100%{opacity:0.5;transform:rotate(22deg)} }
@keyframes ws-floorlight { 0%{opacity:0.5;transform:scaleY(1)} 50%{opacity:0.85;transform:scaleY(1.15)} 100%{opacity:0.6;transform:scaleY(0.95)} }
@keyframes ws-wilson { 0%{transform:scaleX(0.85) translateY(0)} 50%{transform:scaleX(0.85) translateY(-2px)} 100%{transform:scaleX(0.85) translateY(1px)} }
@keyframes ws-pearl { 0%{transform:scaleX(0.7) rotate(-3deg)} 50%{transform:scaleX(0.7) rotate(3deg) translateY(-1px)} 100%{transform:scaleX(0.7) rotate(0)} }

.scn-pearl-answers-name {
  background: linear-gradient(180deg, #f8e5c0 0%, #d9b285 40%, #b08060 100%), radial-gradient(ellipse at 50% 30%, rgba(255,190,80,0.4) 0%, transparent 70%);
}
.scn-pearl-answers-name .bg-warm {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 60% 50%, #f5d4a0 0%, transparent 60%);
  opacity:0.5;
  animation: pr-bg 12s ease-in-out infinite alternate;
}
.scn-pearl-answers-name .pearl-figure {
  position:absolute; bottom:20%; left:35%; width:40px; height:100px;
  background: linear-gradient(180deg, #b87878 0%, #a0461a 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 6px rgba(184,120,120,0.5);
  animation: pr-pearl 4s ease-in-out infinite;
}
.scn-pearl-answers-name .minister-hand {
  position:absolute; bottom:45%; left:8%; width:50px; height:60px;
  background: linear-gradient(180deg, #d4b18c 0%, #b08b6a 100%);
  border-radius: 40% 20% 10% 30% / 60% 20% 10% 40%;
  transform: rotate(-15deg);
  transform-origin: right bottom;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.2);
  animation: pr-hand 3s ease-in-out infinite;
}
.scn-pearl-answers-name .rose-petal-1 {
  position:absolute; bottom:30%; left:70%; width:14px; height:18px;
  background: #b87878;
  border-radius: 50% 0 50% 0;
  filter: blur(1px);
  animation: pr-petal1 8s linear infinite;
}
.scn-pearl-answers-name .rose-petal-2 {
  position:absolute; bottom:50%; left:75%; width:10px; height:14px;
  background: #c8553d;
  border-radius: 0 50% 0 50%;
  filter: blur(1px);
  animation: pr-petal2 9s linear infinite reverse;
}
.scn-pearl-answers-name .halo-glow {
  position:absolute; bottom:40%; left:30%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(255,215,0,0.3) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(10px);
  animation: pr-halo 5s ease-in-out infinite alternate;
}
@keyframes pr-bg { 0%{opacity:0.3} 50%{opacity:0.7} 100%{opacity:0.4} }
@keyframes pr-pearl { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes pr-hand { 0%{transform:rotate(-15deg) translateY(0)} 50%{transform:rotate(-10deg) translateY(-2px)} 100%{transform:rotate(-18deg) translateY(1px)} }
@keyframes pr-petal1 { 0%{transform:translate(0,0) rotate(0deg);opacity:1} 50%{transform:translate(-20px,-10px) rotate(60deg);opacity:0.7} 100%{transform:translate(-40px,-20px) rotate(120deg);opacity:0} }
@keyframes pr-petal2 { 0%{transform:translate(0,0) rotate(0deg);opacity:0.8} 50%{transform:translate(-15px,-8px) rotate(-40deg);opacity:0.5} 100%{transform:translate(-30px,-15px) rotate(-80deg);opacity:0} }
@keyframes pr-halo { 0%{transform:scale(0.8);opacity:0.3} 50%{transform:scale(1.2);opacity:0.6} 100%{transform:scale(0.9);opacity:0.4} }

.scn-governor-decrees-exam {
  background: linear-gradient(180deg, #f2e3c6 0%, #c49a6a 40%, #6d4a1f 100%), radial-gradient(ellipse at 70% 60%, rgba(200,120,40,0.3) 0%, transparent 50%);
}
.scn-governor-decrees-exam .doorway {
  position:absolute; bottom:10%; left:35%; width:120px; height:200px;
  background: #3a2a10;
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 0 8px #6d4a1f, 0 4px 12px rgba(0,0,0,0.5);
}
.scn-governor-decrees-exam .gov-figure {
  position:absolute; bottom:12%; left:30%; width:50px; height:120px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  transform: scaleX(0.8);
  box-shadow: 6px 0 10px rgba(0,0,0,0.4);
  animation: gv-gov 6s ease-in-out infinite;
}
.scn-governor-decrees-exam .hester-silhouette {
  position:absolute; bottom:12%; left:55%; width:40px; height:110px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
  border-radius: 25% 25% 30% 30% / 50% 50% 30% 30%;
  transform: scaleX(0.7);
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: gv-hester 7s ease-in-out infinite;
}
.scn-governor-decrees-exam .scarlet-letter {
  position:absolute; bottom:35%; left:58%; width:16px; height:20px;
  background: #8b0000;
  border-radius: 10% 10% 10% 10%;
  box-shadow: 0 0 10px 3px rgba(139,0,0,0.6);
  animation: gv-letter 4s ease-in-out infinite alternate;
}
.scn-governor-decrees-exam .floor-shadow {
  position:absolute; bottom:0; left:25%; width:200px; height:20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: gv-shadow 10s ease-in-out infinite;
}
.scn-governor-decrees-exam .sunlight-shaft {
  position:absolute; top:5%; left:45%; width:40px; height:300px;
  background: linear-gradient(180deg, rgba(255,235,160,0.5) 0%, transparent 100%);
  transform: rotate(-10deg);
  transform-origin: top center;
  filter: blur(4px);
  animation: gv-shaft 9s ease-in-out infinite alternate;
}
@keyframes gv-gov { 0%{transform:scaleX(0.8) translateX(0)} 50%{transform:scaleX(0.8) translateX(3px)} 100%{transform:scaleX(0.8) translateX(-1px)} }
@keyframes gv-hester { 0%{transform:scaleX(0.7) translateX(0)} 50%{transform:scaleX(0.7) translateX(-2px)} 100%{transform:scaleX(0.7) translateX(1px)} }
@keyframes gv-letter { 0%{opacity:0.7;transform:scale(0.9)} 50%{opacity:1;transform:scale(1.1)} 100%{opacity:0.8;transform:scale(1)} }
@keyframes gv-shadow { 0%{opacity:0.3;transform:scaleX(1)} 50%{opacity:0.6;transform:scaleX(0.8)} 100%{opacity:0.4;transform:scaleX(1.1)} }
@keyframes gv-shaft { 0%{opacity:0.2;transform:rotate(-12deg)} 50%{opacity:0.6;transform:rotate(-5deg)} 100%{opacity:0.3;transform:rotate(-8deg)} }

.scn-hester-teaches-from-letter {
  background: linear-gradient(180deg, #e8d2b0 0%, #c49a6a 40%, #7a5a30 100%), radial-gradient(ellipse at 40% 30%, rgba(255,200,100,0.4) 0%, transparent 60%);
}
.scn-hester-teaches-from-letter .interior-wall {
  position:absolute; inset:0;
  background: linear-gradient(90deg, transparent 30%, rgba(0,0,0,0.05) 70%);
  animation: ht-wall 8s ease-in-out infinite alternate;
}
.scn-hester-teaches-from-letter .hester-hand {
  position:absolute; bottom:30%; left:15%; width:60px; height:80px;
  background: linear-gradient(180deg, #e0c8a8 0%, #c8a884 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform: rotate(10deg);
  transform-origin: left bottom;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: ht-hand 4s ease-in-out infinite;
}
.scn-hester-teaches-from-letter .scarlet-letter-large {
  position:absolute; bottom:35%; left:45%; width:50px; height:60px;
  background: #8b0000;
  border-radius: 8% 8% 8% 8%;
  box-shadow: 0 0 24px 8px rgba(139,0,0,0.5), inset 0 0 12px #5e0000;
  animation: ht-letter 5s ease-in-out infinite alternate;
}
.scn-hester-teaches-from-letter .badge-glow {
  position:absolute; bottom:33%; left:43%; width:70px; height:70px;
  background: radial-gradient(circle, rgba(200,50,50,0.3) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(12px);
  animation: ht-glow 3s ease-in-out infinite alternate;
}
.scn-hester-teaches-from-letter .magistrate-figure {
  position:absolute; bottom:20%; right:10%; width:50px; height:140px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: scaleX(0.75);
  box-shadow: -4px 0 10px rgba(0,0,0,0.3);
  animation: ht-magistrate 6s ease-in-out infinite;
}
.scn-hester-teaches-from-letter .shadow-stripe {
  position:absolute; bottom:10%; left:20%; width:200px; height:6px;
  background: rgba(0,0,0,0.2);
  filter: blur(4px);
  transform: rotate(-5deg);
  animation: ht-stripe 7s ease-in-out infinite alternate;
}
@keyframes ht-wall { 0%{opacity:0.5} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes ht-hand { 0%{transform:rotate(10deg) translateY(0)} 50%{transform:rotate(8deg) translateY(-2px)} 100%{transform:rotate(12deg) translateY(1px)} }
@keyframes ht-letter { 0%{transform:scale(0.95);box-shadow:0 0 18px 6px rgba(139,0,0,0.4)} 50%{transform:scale(1.05);box-shadow:0 0 32px 10px rgba(139,0,0,0.6)} 100%{transform:scale(1);box-shadow:0 0 22px 8px rgba(139,0,0,0.5)} }
@keyframes ht-glow { 0%{opacity:0.3;transform:scale(0.8)} 50%{opacity:0.7;transform:scale(1.1)} 100%{opacity:0.4;transform:scale(0.9)} }
@keyframes ht-magistrate { 0%{transform:scaleX(0.75) translateY(0)} 50%{transform:scaleX(0.75) translateY(-2px)} 100%{transform:scaleX(0.75) translateY(1px)} }
@keyframes ht-stripe { 0%{opacity:0.2;transform:rotate(-5deg) scaleX(1)} 50%{opacity:0.4;transform:rotate(-2deg) scaleX(0.8)} 100%{opacity:0.3;transform:rotate(-7deg) scaleX(1.1)} }

/* Scene: dimmesdale-turns-to-rulers (dt) */
.scn-dimmesdale-turns-to-rulers {
  background: linear-gradient(180deg, #8faabc 0%, #c2d6df 40%, #e6eec0 100%);
  overflow: hidden;
}
.scn-dimmesdale-turns-to-rulers .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a4c4d6 0%, #d4e6ef 70%);
  animation: dt-sky 20s ease-in-out infinite alternate;
}
.scn-dimmesdale-turns-to-rulers .sun {
  position: absolute; top: 8%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff9d6 0%, #f5e0a0 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,249,214,0.4);
  animation: dt-sun 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-turns-to-rulers .platform {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #8b7355 0%, #5c4833 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: dt-platform 8s ease-in-out infinite;
}
.scn-dimmesdale-turns-to-rulers .trio {
  position: absolute; bottom: 30%; height: 80px;
  background: linear-gradient(180deg, #3a2e24 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-dimmesdale-turns-to-rulers .hester {
  left: 18%; width: 30px;
  transform-origin: bottom center;
  filter: drop-shadow(2px 0 4px rgba(0,0,0,0.3));
  animation: dt-hester 4s ease-in-out infinite;
}
.scn-dimmesdale-turns-to-rulers .dimmesdale {
  left: 28%; width: 28px; height: 85px;
  background: linear-gradient(180deg, #2a221c 0%, #0e0a08 100%);
  animation: dt-dimmes 5s ease-in-out infinite;
}
.scn-dimmesdale-turns-to-rulers .pearl {
  left: 22%; width: 18px; height: 55px;
  bottom: 30%;
  background: linear-gradient(180deg, #4a3b30 0%, #2a1e16 100%);
  animation: dt-pearl 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-turns-to-rulers .rulers {
  position: absolute; bottom: 48%; right: 10%; width: 120px; height: 140px;
  background: linear-gradient(180deg, #3a2e24 0%, #1a1410 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  filter: blur(1px);
  animation: dt-rulers 15s ease-in-out infinite;
}
.scn-dimmesdale-turns-to-rulers .shadow-crowd {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.2) 0%, transparent 60%);
  filter: blur(4px);
  animation: dt-crowd 10s ease-in-out infinite alternate;
}
.scn-dimmesdale-turns-to-rulers .dust {
  position: absolute; top: 50%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,255,230,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dt-dust 8s ease-in-out infinite;
}

@keyframes dt-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes dt-sun { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 60px 20px rgba(255,249,214,0.3); } 50% { transform: translateX(8px) scale(1.03); box-shadow: 0 0 100px 40px rgba(255,249,214,0.5); } 100% { transform: translateX(-4px) scale(0.98); box-shadow: 0 0 70px 25px rgba(255,249,214,0.35); } }
@keyframes dt-platform { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes dt-hester { 0% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 100% { transform: rotate(1deg); } }
@keyframes dt-dimmes { 0% { transform: rotate(0deg) translateY(1px); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes dt-pearl { 0% { transform: rotate(-5deg) translateX(2px); } 50% { transform: rotate(5deg) translateX(-2px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes dt-rulers { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.02) translateX(-3px); } 100% { transform: scale(0.98) translateX(2px); } }
@keyframes dt-crowd { 0% { opacity:0.4; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(0.95); } 100% { opacity:0.45; transform: scaleY(1); } }
@keyframes dt-dust { 0% { transform: translate(0,0) scale(1); opacity:0.3; } 50% { transform: translate(15px,-10px) scale(1.2); opacity:0.7; } 100% { transform: translate(-10px,5px) scale(0.8); opacity:0.2; } }

/* Scene: sun-shines-on-minister (ss) */
.scn-sun-shines-on-minister {
  background: linear-gradient(180deg, #6b7f8a 0%, #9ebcc3 40%, #d2e0d0 100%);
  overflow: hidden;
}
.scn-sun-shines-on-minister .sky-ray {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b4ced6 0%, #e6f0ea 100%);
  animation: ss-sky 18s ease-in-out infinite alternate;
}
.scn-sun-shines-on-minister .sun-disk {
  position: absolute; top: 5%; left: 42%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fffae0 0%, #f5e0a0 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 120px 50px rgba(255,250,224,0.5);
  animation: ss-sun 10s ease-in-out infinite alternate;
}
.scn-sun-shines-on-minister .figure-minister {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #2a221c 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: drop-shadow(0 0 20px rgba(255,250,224,0.3));
  animation: ss-figure 6s ease-in-out infinite;
}
.scn-sun-shines-on-minister .ground-shadow {
  position: absolute; bottom: 22%; left: 35%; right: 35%; height: 6%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 80%);
  filter: blur(4px);
  animation: ss-ground 8s ease-in-out infinite alternate;
}
.scn-sun-shines-on-minister .halo {
  position: absolute; bottom: 60%; left: 38%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,250,224,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: ss-halo 7s ease-in-out infinite;
}
.scn-sun-shines-on-minister .dust-motes {
  position: absolute; top: 20%; left: 10%; width: 70px; height: 70px;
  background: radial-gradient(circle at 30% 40%, rgba(255,255,240,0.4) 0%, transparent 60%);
  filter: blur(10px);
  animation: ss-dust 30s linear infinite;
}
.scn-sun-shines-on-minister .pulpit {
  position: absolute; bottom: 22%; left: 42%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #6b5740 0%, #3a2e20 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ss-pulpit 12s ease-in-out infinite alternate;
}

@keyframes ss-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes ss-sun { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.05) translateX(5px); box-shadow: 0 0 150px 60px rgba(255,250,224,0.6); } 100% { transform: scale(0.96) translateX(-3px); } }
@keyframes ss-figure { 0% { transform: rotate(1deg) translateY(1px); } 50% { transform: rotate(-4deg) translateY(-4px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ss-ground { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.1); } 100% { opacity:0.35; transform: scaleX(0.95); } }
@keyframes ss-halo { 0% { transform: scale(1) rotate(0deg); opacity:0.3; } 50% { transform: scale(1.2) rotate(10deg); opacity:0.5; } 100% { transform: scale(0.9) rotate(-5deg); opacity:0.25; } }
@keyframes ss-dust { 0% { transform: translateX(-50px) scale(1); opacity:0; } 20% { opacity:0.4; } 50% { transform: translateX(30px) scale(1.3); opacity:0.6; } 80% { opacity:0.2; } 100% { transform: translateX(100vw) scale(0.8); opacity:0; } }
@keyframes ss-pulpit { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); box-shadow: 0 6px 12px rgba(0,0,0,0.4); } 100% { transform: translateY(1px); } }

/* Scene: dimmesdale-confesses-1 (d1) */
.scn-dimmesdale-confesses-1 {
  background: linear-gradient(180deg, #1f2a30 0%, #2d3d44 50%, #4e5f63 100%);
  overflow: hidden;
}
.scn-dimmesdale-confesses-1 .scaffold-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a4b52 0%, #1c262b 100%);
  animation: d1-bg 15s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses-1 .scaffold-floor {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #5c4a3a 0%, #30261e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.4);
  animation: d1-floor 9s ease-in-out infinite;
}
.scn-dimmesdale-confesses-1 .beam-left {
  position: absolute; bottom: 25%; left: 15%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1410 100%);
  border-radius: 5%;
  transform-origin: bottom center;
  animation: d1-beam 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses-1 .beam-right {
  position: absolute; bottom: 25%; right: 15%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1410 100%);
  border-radius: 5%;
  transform-origin: bottom center;
  animation: d1-beam 12s ease-in-out infinite alternate-reverse;
}
.scn-dimmesdale-confesses-1 .trio-group {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a221c 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 40% 40%;
  filter: drop-shadow(0 0 15px rgba(0,0,0,0.3));
  animation: d1-trio 4s ease-in-out infinite;
}
.scn-dimmesdale-confesses-1 .crowd-shadow {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: d1-crowd 15s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses-1 .scarlet-glow {
  position: absolute; bottom: 40%; left: 47%; width: 20px; height: 20px;
  background: radial-gradient(circle, #a0461a 0%, #702243 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(160,70,26,0.5);
  animation: d1-scarlet 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses-1 .dust-swirl {
  position: absolute; top: 50%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,190,170,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: d1-dust 20s linear infinite;
}

@keyframes d1-bg { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes d1-floor { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(0.98); } 100% { transform: translateY(2px) scaleX(1.02); } }
@keyframes d1-beam { 0% { transform: rotate(2deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes d1-trio { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-4px); } 100% { transform: rotate(0deg) translateY(2px); } }
@keyframes d1-crowd { 0% { opacity:0.3; transform: scaleY(1); } 50% { opacity:0.5; transform: scaleY(0.9); } 100% { opacity:0.35; transform: scaleY(1); } }
@keyframes d1-scarlet { 0% { box-shadow: 0 0 30px 10px rgba(160,70,26,0.4); opacity:0.7; } 50% { box-shadow: 0 0 60px 20px rgba(160,70,26,0.7); opacity:1; } 100% { box-shadow: 0 0 40px 12px rgba(160,70,26,0.5); opacity:0.85; } }
@keyframes d1-dust { 0% { transform: translateX(-30px) translateY(10px) scale(0.5); opacity:0; } 20% { opacity:0.4; } 50% { transform: translateX(20px) translateY(-30px) scale(1.2); opacity:0.6; } 80% { opacity:0.3; } 100% { transform: translateX(60px) translateY(10px) scale(0.7); opacity:0; } }

/* Scene: dimmesdale-confesses-2 (d2) */
.scn-dimmesdale-confesses-2 {
  background: linear-gradient(180deg, #0d1114 0%, #1f2a2e 50%, #2c3a3f 100%);
  overflow: hidden;
}
.scn-dimmesdale-confesses-2 .dark-crowd {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 20%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: d2-crowd 20s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses-2 .figure-alone {
  position: absolute; bottom: 25%; right: 30%; width: 28px; height: 100px;
  background: linear-gradient(180deg, #1a1410 0%, #050302 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: drop-shadow(0 0 20px rgba(255,250,200,0.2));
  animation: d2-figure 5s ease-in-out infinite;
}
.scn-dimmesdale-confesses-2 .brand-glow {
  position: absolute; bottom: 55%; right: 37%; width: 30px; height: 30px;
  background: radial-gradient(circle, #a0461a 0%, #5e1a1d 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(160,70,26,0.5), 0 0 100px 40px rgba(160,70,26,0.2);
  animation: d2-brand 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses-2 .chest {
  position: absolute; bottom: 50%; right: 30%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #2a221c 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  filter: blur(1px);
  animation: d2-chest 6s ease-in-out infinite;
}
.scn-dimmesdale-confesses-2 .arm {
  position: absolute; bottom: 52%; right: 22%; width: 8px; height: 35px;
  background: linear-gradient(180deg, #1a1410 0%, #050302 100%);
  border-radius: 30%;
  transform-origin: top center;
  animation: d2-arm 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses-2 .tear {
  position: absolute; bottom: 42%; right: 32%; width: 4px; height: 6px;
  background: radial-gradient(circle, rgba(200,210,220,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: d2-tear 2s ease-in-out infinite;
}
.scn-dimmesdale-confesses-2 .light-shaft {
  position: absolute; top: 0; left: 35%; right: 35%; height: 100%;
  background: linear-gradient(180deg, rgba(255,250,220,0.1) 0%, rgba(255,250,220,0.02) 80%);
  animation: d2-shaft 15s ease-in-out infinite alternate;
}

@keyframes d2-crowd { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes d2-figure { 0% { transform: rotate(2deg) translateY(2px); } 50% { transform: rotate(-3deg) translateY(-5px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes d2-brand { 0% { box-shadow: 0 0 40px 15px rgba(160,70,26,0.4); transform: scale(1); opacity:0.8; } 50% { box-shadow: 0 0 80px 30px rgba(160,70,26,0.7); transform: scale(1.1); opacity:1; } 100% { box-shadow: 0 0 50px 20px rgba(160,70,26,0.5); transform: scale(0.95); opacity:0.85; } }
@keyframes d2-chest { 0% { transform: translateX(0); } 50% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(1px) rotate(-1deg); } }
@keyframes d2-arm { 0% { transform: rotate(5deg); } 50% { transform: rotate(-8deg); } 100% { transform: rotate(2deg); } }
@keyframes d2-tear { 0% { transform: translateY(0) scale(1); opacity:0; } 30% { opacity:0.6; } 60% { transform: translateY(15px) scale(0.7); opacity:0.3; } 100% { transform: translateY(30px) scale(0.4); opacity:0; } }
@keyframes d2-shaft { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.35; } }

.scn-self-deception {
  background: linear-gradient(180deg, #3a3d42 0%, #2a2c30 50%, #1e2024 100%), radial-gradient(ellipse at 50% 80%, #4a4e54 0%, transparent 60%);
}
.scn-self-deception .sd-sky {
  position: absolute; top: 0; left: 20%; width: 50%; height: 35%;
  background: linear-gradient(180deg, #7a7d82 0%, #b0b3b8 40%, #9a9da2 100%);
  border-radius: 0 0 60% 60% / 0 0 40% 40%;
  filter: blur(2px);
  animation: sd-sky 14s ease-in-out infinite alternate;
}
.scn-self-deception .sd-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2e3136 0%, #1e2125 50%, #3a3d42 100%);
  opacity: 0.6;
}
.scn-self-deception .sd-mirror {
  position: absolute; top: 20%; left: 38%; width: 24%; height: 50%;
  background: linear-gradient(135deg, #b0b3b8 0%, #8a8d92 50%, #6a6d72 100%);
  border-radius: 4% / 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 4px 12px rgba(0,0,0,0.4);
  animation: sd-mirror 8s ease-in-out infinite;
}
.scn-self-deception .sd-figure {
  position: absolute; bottom: 10%; left: 42%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #2a2c30 0%, #1a1c20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: sd-walk 6s ease-in-out infinite;
}
.scn-self-deception .sd-reflection {
  position: absolute; top: 22%; left: 40%; width: 20%; height: 46%;
  background: linear-gradient(180deg, #6a6d72 0%, #4a4c50 100%);
  border-radius: 4% / 2%;
  opacity: 0.5;
  filter: blur(3px);
  animation: sd-reflect 8s ease-in-out infinite alternate;
}
.scn-self-deception .sd-candle {
  position: absolute; bottom: 12%; left: 28%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #d4b87a 0%, #a08050 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(200,160,80,0.6);
  animation: sd-candle 3s ease-in-out infinite alternate;
}
.scn-self-deception .sd-glow {
  position: absolute; bottom: 14%; left: 26%; width: 10%; height: 12%;
  background: radial-gradient(circle, #d4b87a 0%, transparent 70%);
  opacity: 0.4;
  animation: sd-glow 3s ease-in-out infinite alternate;
}
.scn-self-deception .sd-dust {
  position: absolute; top: 30%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(circle at 30% 40%, #b0b3b8 0%, transparent 60%);
  opacity: 0.2;
  filter: blur(8px);
  animation: sd-dust 20s linear infinite;
}
@keyframes sd-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes sd-mirror { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } }
@keyframes sd-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(6px) translateY(0) rotate(-0.5deg); } 75% { transform: translateX(3px) translateY(1px) rotate(0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sd-reflect { 0% { opacity: 0.4; filter: blur(4px); } 50% { opacity: 0.6; filter: blur(2px); } 100% { opacity: 0.5; filter: blur(3px); } }
@keyframes sd-candle { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.05) scaleX(0.95); } 100% { transform: scaleY(0.95) scaleX(1.05); } }
@keyframes sd-glow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes sd-dust { 0% { transform: translateX(0); } 50% { transform: translateX(20px) translateY(-10px); } 100% { transform: translateX(40px) translateY(5px); } }

.scn-rapid-return {
  background: linear-gradient(180deg, #4a4d52 0%, #3a3d42 50%, #2a2c30 100%), radial-gradient(ellipse at 50% 0%, #5a5d62 0%, transparent 40%);
}
.scn-rapid-return .rr-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a6d72 0%, #babdc2 30%, #8a8d92 60%, #5a5d62 100%);
  opacity: 0.7;
  animation: rr-sky 20s ease-in-out infinite alternate;
}
.scn-rapid-return .rr-path {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4e5142 0%, #3a3c2e 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
  animation: rr-path 18s ease-in-out infinite;
}
.scn-rapid-return .rr-tree-l {
  position: absolute; bottom: 30%; left: 5%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a342a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  transform-origin: bottom center;
  animation: rr-tree 12s ease-in-out infinite alternate;
}
.scn-rapid-return .rr-tree-r {
  position: absolute; bottom: 25%; right: 10%; width: 12%; height: 55%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a342a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  transform-origin: bottom center;
  animation: rr-tree 15s ease-in-out infinite alternate-reverse;
}
.scn-rapid-return .rr-figure {
  position: absolute; bottom: 20%; left: 40%; width: 6%; height: 30%;
  background: linear-gradient(180deg, #1a1c20 0%, #0e1014 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: rr-walk 4s ease-in-out infinite;
}
.scn-rapid-return .rr-leaf-left {
  position: absolute; top: 20%; left: 8%; width: 3%; height: 3%;
  background: #5a6a4a;
  border-radius: 50% 0 50% 0;
  opacity: 0.8;
  animation: rr-leaf 6s ease-in-out infinite;
}
.scn-rapid-return .rr-leaf-right {
  position: absolute; top: 30%; right: 15%; width: 2.5%; height: 2.5%;
  background: #6a7a5a;
  border-radius: 0 50% 0 50%;
  opacity: 0.7;
  animation: rr-leaf 8s ease-in-out infinite 2s;
}
@keyframes rr-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes rr-path { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes rr-tree { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(0.98); } 100% { transform: rotate(-1deg) scaleX(1.02); } }
@keyframes rr-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes rr-leaf { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(20px) translateY(30px) rotate(180deg); } 100% { transform: translateX(40px) translateY(60px) rotate(360deg); opacity: 0; } }

.scn-comparison-to-before {
  background: linear-gradient(180deg, #4a4d52 0%, #3a3d42 40%, #2a2c30 100%), radial-gradient(ellipse at 30% 70%, #5a5d62 0%, transparent 50%);
}
.scn-comparison-to-before .cb-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a6d72 0%, #9a9da2 30%, #7a7d82 60%, #4a4d52 100%);
  opacity: 0.8;
  animation: cb-sky 22s ease-in-out infinite alternate;
}
.scn-comparison-to-before .cb-path {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #4e5142 0%, #3a3c2e 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
  animation: cb-path 20s ease-in-out infinite;
}
.scn-comparison-to-before .cb-tree-l {
  position: absolute; bottom: 25%; left: 8%; width: 14%; height: 55%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a342a 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  transform-origin: bottom center;
  animation: cb-tree 14s ease-in-out infinite alternate;
}
.scn-comparison-to-before .cb-tree-r {
  position: absolute; bottom: 20%; right: 10%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a342a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  transform-origin: bottom center;
  animation: cb-tree 18s ease-in-out infinite alternate-reverse;
}
.scn-comparison-to-before .cb-figure-now {
  position: absolute; bottom: 15%; left: 30%; width: 6%; height: 32%;
  background: linear-gradient(180deg, #1a1c20 0%, #0e1014 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: cb-walk-now 4s ease-in-out infinite;
}
.scn-comparison-to-before .cb-figure-before {
  position: absolute; bottom: 15%; left: 20%; width: 6%; height: 28%;
  background: linear-gradient(180deg, #5a5d62 0%, #4a4d52 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  opacity: 0.4;
  filter: blur(4px);
  transform-origin: bottom center;
  animation: cb-walk-before 6s ease-in-out infinite;
}
.scn-comparison-to-before .cb-dust {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 10%;
  background: radial-gradient(circle at 20% 50%, #9a9da2 0%, transparent 60%);
  opacity: 0.15;
  filter: blur(10px);
  animation: cb-dust 30s linear infinite;
}
@keyframes cb-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes cb-path { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes cb-tree { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(1.5deg) scaleX(0.97); } 100% { transform: rotate(-1.5deg) scaleX(1.03); } }
@keyframes cb-walk-now { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(10px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(20px) translateY(0) rotate(-0.5deg); } 75% { transform: translateX(30px) translateY(-1px) rotate(0.5deg); } 100% { transform: translateX(40px) translateY(0) rotate(0deg); } }
@keyframes cb-walk-before { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.4; } 25% { transform: translateX(5px) translateY(1px) rotate(-0.5deg); opacity: 0.3; } 50% { transform: translateX(10px) translateY(-1px) rotate(0.5deg); opacity: 0.5; } 75% { transform: translateX(15px) translateY(2px) rotate(-0.3deg); opacity: 0.3; } 100% { transform: translateX(20px) translateY(0) rotate(0deg); opacity: 0.4; } }
@keyframes cb-dust { 0% { transform: translateX(-20%); } 50% { transform: translateX(10%); } 100% { transform: translateX(30%); } }

.scn-obtrusive-change {
  background: linear-gradient(180deg, #3a3d42 0%, #4a4d52 30%, #2a2c30 60%, #1e2024 100%), radial-gradient(ellipse at 50% 50%, #5a5d62 0%, transparent 50%);
}
.scn-obtrusive-change .oc-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a5d62 0%, #8a8d92 40%, #6a6d72 70%, #4a4d52 100%);
  opacity: 0.8;
  animation: oc-sky 25s ease-in-out infinite alternate;
}
.scn-obtrusive-change .oc-street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a3c2e 0%, #2a2c1e 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
  animation: oc-street 16s ease-in-out infinite;
}
.scn-obtrusive-change .oc-house-l {
  position: absolute; bottom: 15%; left: 5%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #4e5142 0%, #3a3c2e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: oc-house 12s ease-in-out infinite alternate;
}
.scn-obtrusive-change .oc-house-r {
  position: absolute; bottom: 10%; right: 8%; width: 20%; height: 65%;
  background: linear-gradient(180deg, #4e5142 0%, #3a3c2e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: oc-house 15s ease-in-out infinite alternate-reverse;
}
.scn-obtrusive-change .oc-window {
  position: absolute; top: 20%; left: 12%; width: 8%; height: 15%;
  background: linear-gradient(180deg, #6a6d72 0%, #4a4d52 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: oc-window 10s ease-in-out infinite;
}
.scn-obtrusive-change .oc-door {
  position: absolute; bottom: 12%; left: 15%; width: 6%; height: 30%;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a2e1e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 8px rgba(0,0,0,0.4);
  animation: oc-door 18s ease-in-out infinite;
}
.scn-obtrusive-change .oc-figure {
  position: absolute; bottom: 5%; left: 35%; width: 5%; height: 25%;
  background: linear-gradient(180deg, #1a1c20 0%, #0e1014 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: oc-walk 5s ease-in-out infinite;
}
.scn-obtrusive-change .oc-clock {
  position: absolute; top: 8%; left: 45%; width: 10%; height: 15%;
  background: radial-gradient(circle at 50% 50%, #8a8d92 30%, #5a5d62 60%, #3a3d42 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(0,0,0,0.3);
  animation: oc-clock 12s linear infinite;
}
@keyframes oc-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes oc-street { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes oc-house { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.01) scaleX(0.99); } 100% { transform: scaleY(0.99) scaleX(1.01); } }
@keyframes oc-window { 0% { transform: skewX(0deg); } 25% { transform: skewX(2deg) skewY(1deg); } 50% { transform: skewX(-1deg) skewY(-2deg); } 75% { transform: skewX(1deg) skewY(-1deg); } 100% { transform: skewX(0deg); } }
@keyframes oc-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes oc-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(12px) translateY(0) rotate(-0.5deg); } 75% { transform: translateX(18px) translateY(-1px) rotate(0.5deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }
@keyframes oc-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* garden-disappoints */
.scn-garden-disappoints {
  background: linear-gradient(180deg, #b8d4e8 0%, #f0e8c0 40%, #8aa07a 100%), radial-gradient(ellipse at 50% 20%, #fef8d0 0%, transparent 60%);
}
.scn-garden-disappoints .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0d0e0 0%, transparent 100%);
  animation: gd-sky 12s ease-in-out infinite alternate;
}
.scn-garden-disappoints .sun {
  position: absolute; top: 10%; left: 55%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5c0 0%, #f0d090 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,208,144,0.4);
  animation: gd-sun 8s ease-in-out infinite alternate;
}
.scn-garden-disappoints .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #6a7a5a 0%, #3a4a2a 100%);
  border-radius: 70% 30% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: gd-ground 9s ease-in-out infinite;
}
.scn-garden-disappoints .fence-left {
  position: absolute; bottom: 40%; left: 20%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  box-shadow: 4px 0 0 #4a3a1a;
  animation: gd-fence 15s ease-in-out infinite;
}
.scn-garden-disappoints .fence-right {
  position: absolute; bottom: 40%; right: 25%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 2px;
  box-shadow: -4px 0 0 #4a3a1a;
  animation: gd-fence 15s ease-in-out infinite reverse;
}
.scn-garden-disappoints .weed-one {
  position: absolute; bottom: 38%; left: 35%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: gd-weed 5s ease-in-out infinite;
}
.scn-garden-disappoints .weed-two {
  position: absolute; bottom: 38%; left: 65%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: gd-weed 5.3s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-garden-disappoints .dust-mote {
  position: absolute; top: 30%; left: 50%; width: 4px; height: 4px;
  background: rgba(255,248,220,0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: gd-dust 18s linear infinite;
}
@keyframes gd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gd-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.85; } }
@keyframes gd-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes gd-fence { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes gd-weed { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes gd-dust { 0% { transform: translateX(0) translateY(0); opacity: 0.6; } 50% { transform: translateX(20px) translateY(-15px); opacity: 0.3; } 100% { transform: translateX(40px) translateY(-30px); opacity: 0; } }

/* rose-bushes-apples */
.scn-rose-bushes-apples {
  background: linear-gradient(180deg, #b8d4e8 0%, #f5ecc0 30%, #8aa07a 100%), radial-gradient(ellipse at 50% 15%, #fff8e0 0%, transparent 50%);
}
.scn-rose-bushes-apples .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d0e0 0%, transparent 100%);
  animation: rb-sky 14s ease-in-out infinite alternate;
}
.scn-rose-bushes-apples .sun {
  position: absolute; top: 8%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5c0 0%, #f0d090 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(240,208,144,0.4);
  animation: rb-sun 10s ease-in-out infinite alternate;
}
.scn-rose-bushes-apples .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6a7a5a 0%, #3a4a2a 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
  animation: rb-ground 12s ease-in-out infinite;
}
.scn-rose-bushes-apples .tree-1 {
  position: absolute; bottom: 35%; left: 15%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: inset 0 4px 10px #1a2a0a;
  animation: rb-tree 18s ease-in-out infinite;
}
.scn-rose-bushes-apples .tree-2 {
  position: absolute; bottom: 35%; right: 20%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: inset 0 4px 10px #1a2a0a;
  animation: rb-tree 18s ease-in-out infinite reverse;
  animation-delay: -9s;
}
.scn-rose-bushes-apples .rose-bush {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 80%, #c8553d 0%, #2a4a1a 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: rb-bush 6s ease-in-out infinite;
}
.scn-rose-bushes-apples .bull {
  position: absolute; bottom: 25%; left: 70%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: rb-bull 7s ease-in-out infinite;
}
.scn-rose-bushes-apples .apple-fall {
  position: absolute; bottom: 45%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c06530 0%, #8a4420 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(192,101,48,0.6);
  animation: rb-apple 4s ease-in infinite;
}
@keyframes rb-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rb-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.03); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.85; } }
@keyframes rb-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes rb-tree { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes rb-bush { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes rb-bull { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes rb-apple { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(12px) scale(0.9); opacity: 0.8; } 100% { transform: translateY(24px) scale(0.8); opacity: 0; } }

/* pearl-cries-for-rose */
.scn-pearl-cries-for-rose {
  background: linear-gradient(180deg, #b0c8d8 0%, #f0e8c0 35%, #7a8a6a 100%), radial-gradient(ellipse at 50% 20%, #fff5d0 0%, transparent 55%);
}
.scn-pearl-cries-for-rose .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0b8c8 0%, transparent 100%);
  animation: pc-sky 10s ease-in-out infinite alternate;
}
.scn-pearl-cries-for-rose .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a6a4a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.4);
  animation: pc-ground 4s ease-in-out infinite;
}
.scn-pearl-cries-for-rose .rose-bush {
  position: absolute; bottom: 35%; left: 40%; width: 60px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #b84830 0%, #2a4a1a 70%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 -4px 10px #1a2a0a;
  animation: pc-rose 2s ease-in-out infinite;
}
.scn-pearl-cries-for-rose .pearl {
  position: absolute; bottom: 32%; left: 30%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-pearl 3s ease-in-out infinite;
}
.scn-pearl-cries-for-rose .mother {
  position: absolute; bottom: 30%; left: 50%; width: 28px; height: 42px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 0 #4a4a5a;
  animation: pc-mother 3.5s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-pearl-cries-for-rose .shadow-1 {
  position: absolute; bottom: 28%; left: 60%; width: 30px; height: 40px;
  background: linear-gradient(180deg, rgba(20,20,30,0.8) 0%, rgba(10,10,20,0.9) 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  filter: blur(2px);
  animation: pc-shadow 4s ease-in-out infinite;
}
.scn-pearl-cries-for-rose .shadow-2 {
  position: absolute; bottom: 28%; left: 70%; width: 35px; height: 45px;
  background: linear-gradient(180deg, rgba(20,20,30,0.7) 0%, rgba(10,10,20,0.8) 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  filter: blur(3px);
  animation: pc-shadow 4.5s ease-in-out infinite;
  animation-delay: -2s;
}
@keyframes pc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pc-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes pc-rose { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pc-pearl { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(4px) translateY(-4px) rotate(0deg); } 60% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(12px) translateY(0) rotate(-1deg); } }
@keyframes pc-mother { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes pc-shadow { 0% { transform: translateX(0) scale(1); opacity: 0.8; } 50% { transform: translateX(8px) scale(0.95); opacity: 0.9; } 100% { transform: translateX(0) scale(1); opacity: 0.8; } }

/* governor-in-gown */
.scn-governor-in-gown {
  background: linear-gradient(180deg, #b8d4e8 0%, #f5ecc0 25%, #8aa07a 100%), radial-gradient(ellipse at 50% 10%, #fff8e0 0%, transparent 50%);
}
.scn-governor-in-gown .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d0e0 0%, transparent 100%);
  animation: gb-sky 16s ease-in-out infinite alternate;
}
.scn-governor-in-gown .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
  animation: gb-ground 20s ease-in-out infinite;
}
.scn-governor-in-gown .mansion {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 80px;
  background: linear-gradient(180deg, #b0a080 0%, #7a6a5a 100%);
  border-radius: 8% 8% 4% 4% / 10% 10% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5), inset 0 4px 8px rgba(255,248,220,0.3);
  animation: gb-house 14s ease-in-out infinite;
}
.scn-governor-in-gown .path {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a6a 100%);
  border-radius: 30% 30% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gb-path 18s ease-in-out infinite;
}
.scn-governor-in-gown .governor {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 45px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 0 #3a3a2a;
  animation: gb-walk 8s ease-in-out infinite;
}
.scn-governor-in-gown .tree-left {
  position: absolute; bottom: 25%; left: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 10px #1a2a0a;
  animation: gb-tree 22s ease-in-out infinite;
}
.scn-governor-in-gown .tree-right {
  position: absolute; bottom: 25%; right: 12%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 10px #1a2a0a;
  animation: gb-tree 22s ease-in-out infinite reverse;
  animation-delay: -11s;
}
.scn-governor-in-gown .fountain {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, #a0b8c8 0%, #607080 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(96,112,128,0.5);
  animation: gb-fountain 6s ease-in-out infinite;
}
@keyframes gb-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes gb-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes gb-house { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes gb-path { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes gb-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0); } }
@keyframes gb-tree { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gb-fountain { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }

.scn-hester-remembers-forest {
  background: linear-gradient(180deg, #3a5a3a 0%, #1e3a1e 40%, #0f2a0f 100%),
              radial-gradient(ellipse at 50% 0%, #c8b060 0%, transparent 70%);
}
.scn-hester-remembers-forest .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #6b8e6b 0%, #4a6e4a 40%, transparent 100%);
  animation: hrf-sky 10s ease-in-out infinite alternate;
}
.scn-hester-remembers-forest .sunrays {
  position: absolute; top: 0; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,176,96,0.3) 0%, transparent 70%);
  animation: hrf-rays 14s ease-in-out infinite;
}
.scn-hester-remembers-forest .canopy {
  position: absolute; top: 5%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2e4a2e 0%, #1a3a1a 60%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  filter: blur(4px); opacity: 0.7;
  animation: hrf-canopy 18s ease-in-out infinite alternate;
}
.scn-hester-remembers-forest .trunk {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  animation: hrf-trunk 20s ease-in-out infinite alternate;
}
.scn-hester-remembers-forest .figure1 {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrf-fig1 4s ease-in-out infinite;
}
.scn-hester-remembers-forest .figure2 {
  position: absolute; bottom: 22%; left: 50%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrf-fig2 4s ease-in-out infinite 0.5s;
}
.scn-hester-remembers-forest .moss {
  position: absolute; bottom: 18%; left: 35%; right: 35%; height: 6%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(3px);
  animation: hrf-moss 20s ease-in-out infinite alternate;
}
.scn-hester-remembers-forest .light-drops {
  position: absolute; top: 20%; left: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(200,176,96,0.8) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,176,96,0.3);
  animation: hrf-drops 6s ease-in-out infinite;
}
@keyframes hrf-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes hrf-rays { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }
@keyframes hrf-canopy { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.05) } 100% { transform: translateY(2px) scaleY(0.95) } }
@keyframes hrf-trunk { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.02) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes hrf-fig1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes hrf-fig2 { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(0) rotate(1deg) } 75% { transform: translateX(-9px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(-12px) translateY(0) rotate(0deg) } }
@keyframes hrf-moss { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes hrf-drops { 0% { transform: translate(0,0) scale(1); opacity:0.6 } 50% { transform: translate(10px,20px) scale(0.8); opacity:1 } 100% { transform: translate(20px,40px) scale(1.2); opacity:0.4 } }

.scn-pearl-uneasy {
  background: linear-gradient(180deg, #f5e6c0 0%, #d4b88a 40%, #a08060 100%),
              radial-gradient(ellipse at 70% 30%, #f0d090 0%, transparent 60%);
}
.scn-pearl-uneasy .bg-market {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #b89878 0%, #8a7050 100%);
  clip-path: polygon(0 0, 100% 0, 100% 70%, 70% 100%, 30% 100%, 0 70%);
  animation: peu-bg 12s ease-in-out infinite alternate;
}
.scn-pearl-uneasy .shadow-arch {
  position: absolute; bottom: 15%; left: 10%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: peu-shadow 8s ease-in-out infinite alternate;
}
.scn-pearl-uneasy .mother {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: peu-mother 3s ease-in-out infinite;
}
.scn-pearl-uneasy .pearl {
  position: absolute; bottom: 18%; left: 45%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: peu-pearl 2.5s ease-in-out infinite 0.3s;
}
.scn-pearl-uneasy .minister-silhouette {
  position: absolute; bottom: 18%; left: 60%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  opacity: 0.8;
  animation: peu-minister 6s ease-in-out infinite;
}
.scn-pearl-uneasy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #b89878 0%, #9a7a5a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-pearl-uneasy .sun-burst {
  position: absolute; top: 5%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffe080;
  animation: peu-sun 5s ease-in-out infinite alternate;
}
@keyframes peu-bg { 0% { filter: brightness(0.9) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.95) } }
@keyframes peu-shadow { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10px) scaleY(0.8) } 100% { transform: translateX(-10px) scaleY(1.1) } }
@keyframes peu-mother { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes peu-pearl { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-3px) rotate(-3deg) } 60% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes peu-minister { 0% { transform: rotate(5deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(0.95) } 100% { transform: rotate(7deg) scaleX(1) } }
@keyframes peu-sun { 0% { transform: scale(1); opacity:0.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.9); opacity:0.8 } }

.scn-mistress-hibbins-appears {
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 40%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 0%, #f0d8a0 0%, transparent 70%);
}
.scn-mistress-hibbins-appears .sky-glow {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 60%, transparent 100%);
  animation: mha-sky 16s ease-in-out infinite alternate;
}
.scn-mistress-hibbins-appears .sun {
  position: absolute; top: 5%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #e0a060 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #e0a060;
  animation: mha-sun 8s ease-in-out infinite;
}
.scn-mistress-hibbins-appears .crowd-figures {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 50%;
  background: 
    radial-gradient(ellipse at 20% 100%, rgba(20,20,30,0.6) 0%, transparent 100%),
    radial-gradient(ellipse at 50% 100%, rgba(20,20,30,0.5) 0%, transparent 100%),
    radial-gradient(ellipse at 80% 100%, rgba(20,20,30,0.6) 0%, transparent 100%);
  filter: blur(2px);
  animation: mha-crowd 20s ease-in-out infinite alternate;
}
.scn-mistress-hibbins-appears .mistress-figure {
  position: absolute; bottom: 15%; left: 50%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  transform: translateX(-50%) scaleY(0.9);
  box-shadow: 0 0 20px 8px rgba(0,0,0,0.5);
  animation: mha-mistress 5s ease-in-out infinite;
}
.scn-mistress-hibbins-appears .ground-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-mistress-hibbins-appears .light-ray {
  position: absolute; top: 10%; left: 42%; width: 16%; height: 60%;
  background: linear-gradient(180deg, rgba(240,216,160,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: mha-ray 12s ease-in-out infinite;
}
.scn-mistress-hibbins-appears .dust-motes {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: rgba(240,216,160,0.6);
  border-radius: 50%;
  box-shadow: 20px 40px 6px rgba(240,216,160,0.4), 40px 80px 8px rgba(240,216,160,0.2), 60px 120px 10px rgba(240,216,160,0.1);
  animation: mha-dust 30s linear infinite;
}
@keyframes mha-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes mha-sun { 0% { transform: scale(1); opacity:0.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.7 } }
@keyframes mha-crowd { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-6px) scaleX(1.03) } 100% { transform: translateY(3px) scaleX(0.97) } }
@keyframes mha-mistress { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes mha-ray { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }
@keyframes mha-dust { 0% { transform: translateY(0) } 100% { transform: translateY(200px) } }

.scn-mistress-hibbins-speaks {
  background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 40%, #3a4a3a 100%),
              radial-gradient(ellipse at 30% 20%, #e0c090 0%, transparent 70%);
}
.scn-mistress-hibbins-speaks .procession-bg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  animation: mhs-procession 30s ease-in-out infinite alternate;
}
.scn-mistress-hibbins-speaks .hester-figure {
  position: absolute; bottom: 18%; left: 38%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mhs-hester 6s ease-in-out infinite;
}
.scn-mistress-hibbins-speaks .old-lady-figure {
  position: absolute; bottom: 18%; left: 48%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(0.95);
  animation: mhs-oldlady 5s ease-in-out infinite 0.5s;
}
.scn-mistress-hibbins-speaks .speech-shape {
  position: absolute; bottom: 38%; left: 45%; width: 30px; height: 16px;
  background: radial-gradient(ellipse at 40% 50%, rgba(200,180,140,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mhs-speech 8s ease-in-out infinite;
}
.scn-mistress-hibbins-speaks .sun-beam {
  position: absolute; top: 8%; left: 25%; width: 8%; height: 70%;
  background: linear-gradient(180deg, rgba(224,192,144,0.2) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: mhs-beam 14s ease-in-out infinite alternate;
}
.scn-mistress-hibbins-speaks .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-mistress-hibbins-speaks .shadow-pool {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: mhs-pool 9s ease-in-out infinite alternate;
}
@keyframes mhs-procession { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes mhs-hester { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(2px) rotate(2deg) } 60% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mhs-oldlady { 0% { transform: scaleX(0.95) translateY(0) } 25% { transform: scaleX(0.97) translateY(-2px) } 50% { transform: scaleX(0.93) translateY(0) } 75% { transform: scaleX(0.96) translateY(-1px) } 100% { transform: scaleX(0.95) translateY(0) } }
@keyframes mhs-speech { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(0.9) } }
@keyframes mhs-beam { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes mhs-pool { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(0.8) } }

/* ===== pearl-traits-emerging ===== */
.scn-pearl-traits-emerging {
  background: 
    linear-gradient(180deg, #fce4a8 0%, #f5d08c 40%, #d4a46a 100%),
    radial-gradient(ellipse at 50% 80%, #f0c060 0%, transparent 60%);
}
.scn-pearl-traits-emerging .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f8e8b0 0%, #f5d08c 40%, transparent 100%);
  animation: pt1-sky 8s ease-in-out infinite alternate;
}
.scn-pearl-traits-emerging .hills {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b8a5a 0%, #3a5a2a 100%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: pt1-hills 12s ease-in-out infinite alternate;
}
.scn-pearl-traits-emerging .sun {
  position: absolute; top: 12%; left: 55%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #e8b040 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,224,128,.5);
  animation: pt1-sun 10s ease-in-out infinite;
}
.scn-pearl-traits-emerging .tree {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 100px;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 30% 30%;
  transform-origin: bottom center;
  animation: pt1-tree 7s ease-in-out infinite alternate;
}
.scn-pearl-traits-emerging .figure {
  position: absolute; bottom: 33%; left: 45%; width: 22px; 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: pt1-figure 4s ease-in-out infinite;
}
.scn-pearl-traits-emerging .butterfly {
  position: absolute; bottom: 40%; left: 60%; width: 14px; height: 10px;
  background: #e8a060;
  border-radius: 50% 0 50% 0;
  filter: blur(1px);
  animation: pt1-butterfly 3s ease-in-out infinite;
}
.scn-pearl-traits-emerging .cloud {
  position: absolute; top: 8%; left: -10%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: pt1-cloud 45s linear infinite;
}
@keyframes pt1-sky { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes pt1-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(.98) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes pt1-sun { 0%,100% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,224,128,.5) } 50% { transform: scale(1.05); box-shadow: 0 0 60px 30px rgba(255,224,128,.7) } }
@keyframes pt1-tree { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes pt1-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(.5deg) } 50% { transform: translateX(8px) translateY(0) rotate(-.5deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes pt1-butterfly { 0% { transform: translate(0,0) rotate(-10deg) scale(1) } 25% { transform: translate(12px,-8px) rotate(5deg) scale(1.2) } 50% { transform: translate(24px,-4px) rotate(15deg) scale(1) } 75% { transform: translate(36px,-12px) rotate(-5deg) scale(1.1) } 100% { transform: translate(48px,0) rotate(0) scale(1) } }
@keyframes pt1-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

/* ===== noble-woman-hope ===== */
.scn-noble-woman-hope {
  background: 
    linear-gradient(180deg, #f8e8b0 0%, #f0d088 50%, #d4a46a 100%),
    radial-gradient(ellipse at 50% 70%, #fce4a8 0%, transparent 60%);
}
.scn-noble-woman-hope .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
}
.scn-noble-woman-hope .window-frame {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 60%;
  border: 8px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  background: transparent;
  animation: nw-f 6s ease-in-out infinite alternate;
}
.scn-noble-woman-hope .window-glass {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 30% 40%, #ffe8c0 0%, #e8b860 60%, transparent 100%);
  animation: nw-glass 8s ease-in-out infinite;
}
.scn-noble-woman-hope .hester-silhouette {
  position: absolute; bottom: 12%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nw-hester 5s ease-in-out infinite;
}
.scn-noble-woman-hope .vision-figure {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #f0d088 0%, #d4a46a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  opacity: .7;
  animation: nw-vision 9s ease-in-out infinite alternate;
}
.scn-noble-woman-hope .sunbeam {
  position: absolute; top: 10%; left: 50%; width: 200px; height: 4px;
  background: linear-gradient(90deg, transparent, #ffe8c0 40%, transparent);
  transform-origin: left center;
  animation: nw-beam 7s ease-in-out infinite alternate;
}
.scn-noble-woman-hope .light-glow {
  position: absolute; top: 30%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffe8c0 0%, transparent 70%);
  animation: nw-glow 5s ease-in-out infinite;
}
@keyframes nw-f { 0% { box-shadow: inset 0 0 15px rgba(0,0,0,.3) } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,.5) } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,.3) } }
@keyframes nw-glass { 0% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: .8; transform: scale(1) } }
@keyframes nw-hester { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(-4px) rotate(.5deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(4px) rotate(-.5deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes nw-vision { 0% { opacity: .5; transform: scale(.95) translateY(0) } 50% { opacity: .9; transform: scale(1.05) translateY(-4px) } 100% { opacity: .6; transform: scale(1) translateY(0) } }
@keyframes nw-beam { 0% { transform: rotate(-8deg) scaleX(.8) } 50% { transform: rotate(0deg) scaleX(1.2) } 100% { transform: rotate(8deg) scaleX(.9) } }
@keyframes nw-glow { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .8; transform: scale(1.15) } 100% { opacity: .5; transform: scale(1) } }

/* ===== design-of-justice ===== */
.scn-design-of-justice {
  background: 
    linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 50%, #3a2a1a 100%),
    radial-gradient(ellipse at 30% 60%, #a08050 0%, transparent 70%);
}
.scn-design-of-justice .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.05) 0%, transparent 100%);
}
.scn-design-of-justice .shadow-wall {
  position: absolute; top: 10%; right: 5%; width: 30%; height: 80%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 0 0 20%;
  filter: blur(2px);
  animation: dj-wall 10s ease-in-out infinite alternate;
}
.scn-design-of-justice .window {
  position: absolute; top: 20%; left: 10%; width: 50%; height: 60%;
  background: radial-gradient(ellipse at 30% 40%, #ffe0a0 0%, transparent 80%);
  border: 6px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
  animation: dj-win 7s ease-in-out infinite;
}
.scn-design-of-justice .ray {
  position: absolute; top: 15%; left: 0; width: 100%; height: 200px;
  background: linear-gradient(180deg, transparent 0%, #ffe8c0 20%, transparent 60%);
  opacity: .3;
  animation: dj-ray 6s ease-in-out infinite alternate;
}
.scn-design-of-justice .letter {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 50px;
  background: #8a3a2a; /* muted burgundy */
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,.6), 0 0 20px 6px rgba(180,80,60,.3);
  transform-origin: center;
  animation: dj-letter 4s ease-in-out infinite;
}
.scn-design-of-justice .hands {
  position: absolute; bottom: 28%; left: 18%; width: 30px; height: 20px;
  background: #4a3a2a;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(10deg);
  animation: dj-hands 5s ease-in-out infinite;
}
.scn-design-of-justice .shadow-figure {
  position: absolute; bottom: 20%; right: 10%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: dj-shadow 8s ease-in-out infinite alternate;
}
@keyframes dj-wall { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-6px) scaleX(1.02) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes dj-win { 0%,100% { opacity: .6; box-shadow: inset 0 0 20px rgba(0,0,0,.4) } 50% { opacity: 1; box-shadow: inset 0 0 40px rgba(0,0,0,.6) } }
@keyframes dj-ray { 0% { transform: translateX(-10px) skewX(-5deg); opacity: .2 } 50% { transform: translateX(0) skewX(0); opacity: .4 } 100% { transform: translateX(10px) skewX(5deg); opacity: .25 } }
@keyframes dj-letter { 0% { transform: scale(1) rotate(-3deg) } 25% { transform: scale(1.03) rotate(2deg) } 50% { transform: scale(.98) rotate(-1deg) } 75% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes dj-hands { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes dj-shadow { 0% { transform: translateX(0) scale(1); opacity: .5 } 50% { transform: translateX(-4px) scale(1.04); opacity: .7 } 100% { transform: translateX(0) scale(1); opacity: .55 } }

/* ===== thoughts-murmured ===== */
.scn-thoughts-murmured {
  background: 
    linear-gradient(180deg, #fce4a8 0%, #f0c880 50%, #d4a46a 100%),
    radial-gradient(ellipse at 50% 100%, #e8b860 0%, transparent 60%);
}
.scn-thoughts-murmured .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f8e8b0 0%, #f0d088 40%, transparent 100%);
  animation: tm-sky 9s ease-in-out infinite alternate;
}
.scn-thoughts-murmured .sun {
  position: absolute; top: 15%; left: 45%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe8a0 0%, #e8b040 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(255,232,160,.6);
  animation: tm-sun 11s ease-in-out infinite;
}
.scn-thoughts-murmured .tree-arch {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #4a6a3a 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0 100%, 100% 100%, 100% 40%, 0 40%);
  filter: blur(2px);
  animation: tm-arch 8s ease-in-out infinite alternate;
}
.scn-thoughts-murmured .hester-silhouette {
  position: absolute; bottom: 28%; left: 40%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tm-hester 5s ease-in-out infinite;
}
.scn-thoughts-murmured .pearl-silhouette {
  position: absolute; bottom: 28%; left: 44%; width: 18px; 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: tm-pearl 4s ease-in-out infinite alternate;
}
.scn-thoughts-murmured .hands-clasped {
  position: absolute; bottom: 32%; left: 42%; width: 16px; height: 12px;
  background: #3a2a1a;
  border-radius: 30%;
  animation: tm-hands 3s ease-in-out infinite;
}
.scn-thoughts-murmured .leaf {
  position: absolute; top: 35%; left: 25%; width: 12px; height: 8px;
  background: #6a8a4a;
  border-radius: 50% 0;
  transform: rotate(20deg);
  animation: tm-leaf 6s ease-in-out infinite;
}
@keyframes tm-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes tm-sun { 0%,100% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,232,160,.5) } 50% { transform: scale(1.06); box-shadow: 0 0 60px 30px rgba(255,232,160,.7) } }
@keyframes tm-arch { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes tm-hester { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(-2px) rotate(.5deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(-.5deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes tm-pearl { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) scale(1.05) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tm-hands { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes tm-leaf { 0% { transform: rotate(15deg) translate(0,0); opacity: .6 } 25% { transform: rotate(30deg) translate(8px,-4px); opacity: .8 } 50% { transform: rotate(45deg) translate(16px,-8px); opacity: .9 } 75% { transform: rotate(30deg) translate(8px,-4px); opacity: .8 } 100% { transform: rotate(15deg) translate(0,0); opacity: .6 } }

/* Scene: alternative-tasks */
.scn-alternative-tasks { background: linear-gradient(180deg, #2b211a 0%, #3d2f25 40%, #1e1611 100%), radial-gradient(ellipse at 60% 50%, #4a382a 0%, transparent 70%); }
.scn-alternative-tasks .bg-wall { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #3d2f25 0%, #2b211a 100%); animation: at-wall 20s ease-in-out infinite alternate; }
.scn-alternative-tasks .desk   { position:absolute; bottom:0; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #5c4033 0%, #3b2b21 40%, #1f1410 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6), 0 -4px 12px rgba(0,0,0,.4); animation: at-desk 12s ease-in-out infinite; }
.scn-alternative-tasks .paper  { position:absolute; bottom:25%; left:32%; width:26%; height:20%; background: linear-gradient(135deg, #e8dcc4 0%, #c4b49c 50%, #a8947c 100%); border-radius: 2% 4% 6% 3%; box-shadow: 0 2px 8px rgba(0,0,0,.4), inset 0 1px 4px rgba(255,255,240,.2); animation: at-paper 8s ease-in-out infinite alternate; }
.scn-alternative-tasks .inkwell{ position:absolute; bottom:35%; left:58%; width:6%; height:8%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 3px 6px rgba(0,0,0,.5); animation: at-ink 10s ease-in-out infinite; }
.scn-alternative-tasks .quill  { position:absolute; bottom:38%; left:55%; width:2%; height:25%; background: linear-gradient(180deg, #d4c4a4 0%, #8a7a62 60%, #3a2a1a 100%); border-radius: 50% 50% 10% 10%; transform: rotate(-15deg); transform-origin: bottom center; animation: at-quill 4s ease-in-out infinite alternate; }
.scn-alternative-tasks .candle { position:absolute; bottom:30%; left:74%; width:3.5%; height:15%; background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 60%, #8a7050 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 2px 8px rgba(255,200,100,.3); animation: at-candle 7s ease-in-out infinite; }
.scn-alternative-tasks .glow   { position:absolute; bottom:42%; left:73%; width:8%; height:10%; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,.4) 40%, transparent 70%); border-radius: 50%; animation: at-glow 3s ease-in-out infinite alternate; }
.scn-alternative-tasks .book-spine { position:absolute; bottom:15%; left:18%; width:4%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: at-book 20s linear infinite; }
@keyframes at-wall   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes at-desk   { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes at-paper  { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.02) rotate(.5deg) } 100% { transform: scale(1) rotate(-.3deg) } }
@keyframes at-ink    { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes at-quill  { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-18deg) } }
@keyframes at-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes at-glow   { 0% { opacity:.6; box-shadow: 0 0 20px 6px #ffd080; } 50% { opacity:1; box-shadow: 0 0 40px 12px #ffd080; } 100% { opacity:.7; box-shadow: 0 0 24px 8px #ffd080; } }
@keyframes at-book   { 0% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-1px) rotate(2deg) } 80% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }

/* Scene: folly-of-flinging-back */
.scn-folly-of-flinging-back { background: linear-gradient(180deg, #1e1a16 0%, #2a241e 40%, #14100c 100%), radial-gradient(ellipse at 50% 80%, #342c24 0%, transparent 60%); }
.scn-folly-of-flinging-back .bg-dark { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a241e 0%, #1e1a16 100%); animation: ff-bg 25s ease-in-out infinite alternate; }
.scn-folly-of-flinging-back .bookshelf { position:absolute; top:8%; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #3a2e22 0%, #1f1711 100%); border-radius: 4% 4% 0 0; display:flex; gap:10%; padding:4% 2%; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); animation: ff-shelf 18s ease-in-out infinite; }
.scn-folly-of-flinging-back .chair-back { position:absolute; bottom:30%; left:35%; width:30%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 30% 30% 8% 8%; box-shadow: 0 6px 12px rgba(0,0,0,.6); transform: rotate(-2deg); animation: ff-chair 6s ease-in-out infinite alternate; }
.scn-folly-of-flinging-back .figure-sil { position:absolute; bottom:24%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 40% 50% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: ff-figure 9s ease-in-out infinite; }
.scn-folly-of-flinging-back .desk-small { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #5c4033 0%, #3b2b21 80%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); animation: ff-desk 12s ease-in-out infinite; }
.scn-folly-of-flinging-back .lamp { position:absolute; bottom:25%; left:65%; width:4%; height:18%; background: linear-gradient(180deg, #c8b090 0%, #8a7050 100%); border-radius: 10% 10% 30% 30%/ 20% 20% 40% 40%; animation: ff-lamp 10s ease-in-out infinite; }
.scn-folly-of-flinging-back .lamp-glow { position:absolute; bottom:38%; left:63%; width:10%; height:12%; background: radial-gradient(circle, #ffc080 0%, rgba(255,192,128,.4) 40%, transparent 70%); border-radius:50%; animation: ff-glow 4s ease-in-out infinite alternate; }
.scn-folly-of-flinging-back .paper-sheet { position:absolute; bottom:12%; left:38%; width:24%; height:16%; background: linear-gradient(135deg, #e8dcc4 0%, #c4b49c 60%); border-radius: 2% 4% 6% 3%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ff-paper 8s ease-in-out infinite alternate; }
@keyframes ff-bg   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ff-shelf { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ff-chair { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes ff-figure { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) translateX(2px) } 75% { transform: rotate(-1deg) translateX(-2px) } 100% { transform: rotate(0deg) } }
@keyframes ff-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ff-lamp { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ff-glow { 0% { opacity:.5; box-shadow: 0 0 16px 4px #ffc080; } 50% { opacity:.9; box-shadow: 0 0 36px 10px #ffc080; } 100% { opacity:.6; box-shadow: 0 0 20px 6px #ffc080; } }
@keyframes ff-paper { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.01) rotate(.5deg) } 100% { transform: scale(1) rotate(-.5deg) } }

/* Scene: fault-in-self */
.scn-fault-in-self { background: linear-gradient(180deg, #1e1814 0%, #2a221c 40%, #14100c 100%), radial-gradient(ellipse at 40% 50%, #3d2f25 0%, transparent 70%); }
.scn-fault-in-self .bg-shadow { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #2a221c 0%, #1e1814 100%); animation: fi-bg 22s ease-in-out infinite alternate; }
.scn-fault-in-self .book-left { position:absolute; bottom:20%; left:25%; width:22%; height:30%; background: linear-gradient(135deg, #e8dcc4 0%, #d0c0a8 50%, #b8a890 100%); border-radius: 4% 0 0 4%; box-shadow: -4px 0 12px rgba(0,0,0,.4); transform: skewY(3deg) rotate(-2deg); animation: fi-bookl 10s ease-in-out infinite alternate; }
.scn-fault-in-self .book-right { position:absolute; bottom:20%; left:47%; width:22%; height:30%; background: linear-gradient(225deg, #e8dcc4 0%, #d0c0a8 50%, #b8a890 100%); border-radius: 0 4% 4% 0; box-shadow: 4px 0 12px rgba(0,0,0,.4); transform: skewY(-3deg) rotate(2deg); animation: fi-bookr 10s ease-in-out infinite alternate; }
.scn-fault-in-self .book-spine-mid { position:absolute; bottom:20%; left:47%; width:6%; height:30%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: inset 0 0 6px rgba(0,0,0,.5); transform: translateX(-50%); z-index:2; animation: fi-spine 12s ease-in-out infinite; }
.scn-fault-in-self .candle-stick { position:absolute; bottom:38%; left:38%; width:3%; height:12%; background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 60%, #8a7050 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 2px 6px rgba(255,200,100,.3); animation: fi-candle 8s ease-in-out infinite; }
.scn-fault-in-self .candle-flame { position:absolute; bottom:49%; left:37.5%; width:4%; height:6%; background: radial-gradient(circle, #ffd080 0%, #ffb840 60%, transparent 100%); border-radius: 50%; animation: fi-flame 3s ease-in-out infinite alternate; }
.scn-fault-in-self .glow-book { position:absolute; bottom:25%; left:30%; width:40%; height:35%; background: radial-gradient(ellipse, rgba(255,208,128,.3) 0%, transparent 70%); border-radius: 30%; animation: fi-glow 5s ease-in-out infinite alternate; }
.scn-fault-in-self .hand-left { position:absolute; bottom:22%; left:30%; width:6%; height:8%; background: linear-gradient(180deg, #c4a890 0%, #a89078 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: fi-handl 6s ease-in-out infinite alternate; }
.scn-fault-in-self .hand-right { position:absolute; bottom:22%; right:30%; width:6%; height:8%; background: linear-gradient(180deg, #c4a890 0%, #a89078 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: fi-handr 6s ease-in-out infinite alternate; }
@keyframes fi-bg   { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fi-bookl { 0% { transform: skewY(3deg) rotate(-2deg) translateY(0) } 50% { transform: skewY(4deg) rotate(-1deg) translateY(-2px) } 100% { transform: skewY(2deg) rotate(-3deg) translateY(0) } }
@keyframes fi-bookr { 0% { transform: skewY(-3deg) rotate(2deg) translateY(0) } 50% { transform: skewY(-4deg) rotate(1deg) translateY(-2px) } 100% { transform: skewY(-2deg) rotate(3deg) translateY(0) } }
@keyframes fi-spine { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes fi-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes fi-flame { 0% { opacity:.8; transform: scale(1) translateY(0) } 50% { opacity:1; transform: scale(1.1) translateY(-2px) } 100% { opacity:.9; transform: scale(1) translateY(1px) } }
@keyframes fi-glow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes fi-handl { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-2px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes fi-handr { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(8deg) translateY(0) } }

/* Scene: perceptions-come-too-late */
.scn-perceptions-come-too-late { background: linear-gradient(180deg, #1c1814 0%, #28221c 40%, #14100c 100%), radial-gradient(ellipse at 50% 60%, #3a2e22 0%, transparent 70%); }
.scn-perceptions-come-too-late .bg-deep { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #28221c 0%, #1c1814 100%); animation: pc-bg 24s ease-in-out infinite alternate; }
.scn-perceptions-come-too-late .desk-wide { position:absolute; bottom:0; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #5c4033 0%, #3b2b21 80%); border-radius: 20% 20% 0 0; box-shadow: 0 -6px 18px rgba(0,0,0,.7); animation: pc-desk 14s ease-in-out infinite; }
.scn-perceptions-come-too-late .chair-back { position:absolute; bottom:20%; left:40%; width:20%; height:35%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 30% 30% 8% 8%; box-shadow: 0 6px 14px rgba(0,0,0,.5); transform: rotate(2deg); animation: pc-chair 7s ease-in-out infinite alternate; }
.scn-perceptions-come-too-late .figure-hunched { position:absolute; bottom:15%; left:42%; width:16%; height:35%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 50%; transform-origin: bottom center; animation: pc-figure 12s ease-in-out infinite; }
.scn-perceptions-come-too-late .candle-low { position:absolute; bottom:28%; left:68%; width:3%; height:10%; background: linear-gradient(180deg, #e8d0b0 0%, #b8a080 60%, #806040 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 2px 6px rgba(255,200,100,.2); animation: pc-candle 9s ease-in-out infinite; }
.scn-perceptions-come-too-late .candle-glow-dim { position:absolute; bottom:36%; left:66%; width:8%; height:10%; background: radial-gradient(circle, #c09050 0%, rgba(192,144,80,.3) 40%, transparent 70%); border-radius: 50%; animation: pc-glowdim 5s ease-in-out infinite alternate; }
.scn-perceptions-come-too-late .inkwell-small { position:absolute; bottom:22%; left:64%; width:5%; height:7%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: pc-ink 11s ease-in-out infinite; }
.scn-perceptions-come-too-late .paper-scroll { position:absolute; bottom:10%; left:30%; width:30%; height:18%; background: linear-gradient(135deg, #e8dcc4 0%, #c4b49c 60%); border-radius: 2% 4% 6% 3%; box-shadow: 0 2px 8px rgba(0,0,0,.3); animation: pc-paper 8s ease-in-out infinite alternate; }
.scn-perceptions-come-too-late .clock { position:absolute; top:10%; right:10%; width:10%; height:12%; background: radial-gradient(circle, #c4b49c 0%, #8a7a62 40%, #5a4a3a 100%); border-radius: 50%; border: 2px solid #3a2a1a; box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: pc-clock 60s linear infinite; }
@keyframes pc-bg   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes pc-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pc-chair { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes pc-figure { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) translateX(2px) } 75% { transform: rotate(-2deg) translateX(-2px) } 100% { transform: rotate(0deg) } }
@keyframes pc-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes pc-glowdim { 0% { opacity:.4; box-shadow: 0 0 12px 3px #c09050; } 50% { opacity:.7; box-shadow: 0 0 24px 6px #c09050; } 100% { opacity:.5; box-shadow: 0 0 16px 4px #c09050; } }
@keyframes pc-ink { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes pc-paper { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.01) rotate(.3deg) } 100% { transform: scale(1) rotate(-.3deg) } }
@keyframes pc-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

/* pearl-walks-with-mother (pw) */
.scn-pearl-walks-with-mother {
  background: 
    linear-gradient(180deg, #cbe3f0 0%, #e6dcc8 40%, #f2e5c0 70%, #d4b88a 100%),
    radial-gradient(ellipse at 50% 80%, #fff7e0 0%, transparent 60%);
}
.scn-pearl-walks-with-mother .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #a2c4e0 0%, #cfe0f0 100%);
  animation: pw-sky 20s ease-in-out infinite alternate;
}
.scn-pearl-walks-with-mother .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #7a9a5a 0%, #5d7a3a 100%);
  border-radius: 60% 40% 0 0 / 20% 30% 0 0;
}
.scn-pearl-walks-with-mother .path {
  position:absolute; bottom:20%; left:10%; width:80%; height:8%;
  background: linear-gradient(180deg, #c4a87a 0%, #a88a5a 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.15);
  animation: pw-path 8s ease-in-out infinite alternate;
}
.scn-pearl-walks-with-mother .mother {
  position:absolute; bottom:22%; left:30%; width:30px; height:90px;
  background: linear-gradient(180deg, #6a4e3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: pw-walk 6s ease-in-out infinite;
}
.scn-pearl-walks-with-mother .pearl {
  position:absolute; bottom:22%; left:44%; width:18px; height:50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: pw-walk 6s ease-in-out infinite -1s;
}
.scn-pearl-walks-with-mother .flower {
  position:absolute; bottom:18%; left:55%; width:14px; height:14px;
  background: radial-gradient(circle, #e8d0a0 0%, #c8a870 100%);
  border-radius: 50%; filter: blur(1px);
  animation: pw-sway 4s ease-in-out infinite;
}
.scn-pearl-walks-with-mother .shadow {
  position:absolute; bottom:20%; left:28%; width:50px; height:6px;
  background: rgba(0,0,0,.2); border-radius: 50%; filter: blur(3px);
  animation: pw-shadow 6s ease-in-out infinite;
}
@keyframes pw-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes pw-path { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes pw-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes pw-sway { 0%,100% { transform: rotate(-5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.1) } }
@keyframes pw-shadow { 0%,100% { transform: scaleX(1); opacity:.2 } 50% { transform: scaleX(1.1); opacity:.3 } }

/* pearl-scorns-play (ps) */
.scn-pearl-scorns-play {
  background: 
    linear-gradient(180deg, #b8cce0 0%, #d4e2f0 50%, #e8d4b0 100%),
    radial-gradient(ellipse at 30% 70%, #ffe8b0 0%, transparent 60%);
}
.scn-pearl-scorns-play .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #8db0d0 0%, #b8cce0 100%);
  animation: ps-sky 15s ease-in-out infinite alternate;
}
.scn-pearl-scorns-play .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-pearl-scorns-play .fence {
  position:absolute; bottom:15%; left:10%; width:80%; height:12%;
  background: linear-gradient(90deg, #5a4a2a 0%, #7a6a4a 20%, #5a4a2a 40%, #7a6a4a 60%, #5a4a2a 80%, #7a6a4a 100%);
  border-radius: 4px; box-shadow: 0 3px 6px rgba(0,0,0,.3);
  background-size: 20% 100%;
  animation: ps-fence 8s ease-in-out infinite alternate;
}
.scn-pearl-scorns-play .children {
  position:absolute; bottom:18%; left:50%; width:80px; height:40px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(90deg, #2a1a1a 0px, #2a1a1a 6px, transparent 6px, transparent 12px);
  background-size: 12px 100%;
  mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 100%);
  animation: ps-children-sway 12s ease-in-out infinite;
}
.scn-pearl-scorns-play .pearl {
  position:absolute; bottom:20%; left:30%; width:20px; height:55px;
  background: linear-gradient(180deg, #8a5a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: 30% bottom;
  animation: ps-pearl 4s ease-in-out infinite;
}
.scn-pearl-scorns-play .stone {
  position:absolute; bottom:22%; left:35%; width:8px; height:8px;
  background: #5a4a3a; border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0,0,0,.4);
  animation: ps-stone 4s ease-in-out infinite;
}
.scn-pearl-scorns-play .dust {
  position:absolute; bottom:20%; left:28%; width:30px; height:15px;
  background: rgba(200,180,140,.3);
  border-radius: 50%; filter: blur(6px);
  animation: ps-dust 3s ease-in-out infinite alternate;
}
@keyframes ps-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes ps-fence { 0% { background-position: 0 0 } 50% { background-position: 10% 0 } 100% { background-position: 0 0 } }
@keyframes ps-children-sway { 0%,100% { transform: translateX(-50%) skewX(0deg) } 25% { transform: translateX(-48%) skewX(3deg) } 50% { transform: translateX(-50%) skewX(0deg) } 75% { transform: translateX(-52%) skewX(-3deg) } }
@keyframes ps-pearl { 0%,100% { transform: rotate(0deg) translateY(0) } 20% { transform: rotate(-10deg) translateY(-3px) } 40% { transform: rotate(5deg) translateY(0) } 60% { transform: rotate(-15deg) translateY(-4px) } 80% { transform: rotate(10deg) translateY(-1px) } }
@keyframes ps-stone { 0%,100% { transform: translate(0,0) rotate(0) } 30% { transform: translate(10px,-8px) rotate(180deg) } 60% { transform: translate(20px,-12px) rotate(360deg) } 80% { transform: translate(30px,-4px) rotate(390deg) } }
@keyframes ps-dust { 0% { transform: translateX(0) scale(1); opacity:.4 } 100% { transform: translateX(15px) scale(1.3); opacity:.1 } }

/* pearl-hatred-from-puritans (ph) */
.scn-pearl-hatred-from-puritans {
  background: 
    linear-gradient(180deg, #8a90a0 0%, #a0a8b8 30%, #b8a890 60%, #9a7a5a 100%),
    radial-gradient(ellipse at 60% 50%, #d0c8b0 0%, transparent 70%);
}
.scn-pearl-hatred-from-puritans .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #6a7890 0%, #8a90a0 100%);
  animation: ph-sky 18s ease-in-out infinite alternate;
}
.scn-pearl-hatred-from-puritans .wall {
  position:absolute; bottom:30%; left:20%; width:60%; height:50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3);
  animation: ph-wall 20s ease-in-out infinite alternate;
}
.scn-pearl-hatred-from-puritans .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%);
  border-radius: 30% 70% 0 0 / 10% 20% 0 0;
}
.scn-pearl-hatred-from-puritans .crowd {
  position:absolute; bottom:25%; left:15%; width:70%; height:30%;
  background: repeating-linear-gradient(90deg, #2a2a2a 0px, #2a2a2a 8px, transparent 8px, transparent 16px);
  background-size: 16px 100%;
  mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 100%, black 0%, transparent 80%);
  animation: ph-crowd 14s ease-in-out infinite;
}
.scn-pearl-hatred-from-puritans .hester {
  position:absolute; bottom:22%; left:35%; width:28px; height:80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ph-walk 10s ease-in-out infinite;
}
.scn-pearl-hatred-from-puritans .pearl {
  position:absolute; bottom:22%; left:48%; width:16px; height:45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ph-walk 10s ease-in-out infinite -2s;
}
.scn-pearl-hatred-from-puritans .shadow {
  position:absolute; bottom:20%; left:30%; width:60px; height:10px;
  background: rgba(0,0,0,.25); border-radius: 50%; filter: blur(5px);
  animation: ph-shadow 10s ease-in-out infinite;
}
@keyframes ph-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes ph-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ph-crowd { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-2px) } 60% { transform: translateY(1px) } }
@keyframes ph-walk { 0% { transform: translateX(0) translateY(0) } 20% { transform: translateX(6px) translateY(-1px) } 40% { transform: translateX(12px) translateY(0) } 60% { transform: translateX(18px) translateY(-1px) } 80% { transform: translateX(24px) translateY(0) } 100% { transform: translateX(30px) translateY(0) } }
@keyframes ph-shadow { 0%,100% { transform: scaleX(1); opacity:.25 } 50% { transform: scaleX(1.2); opacity:.35 } }

/* pearl-temper-comforts (pt) */
.scn-pearl-temper-comforts {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 30%, #7a6a4a 60%, #9a8a6a 100%),
    radial-gradient(ellipse at 70% 30%, #d0c8a0 0%, transparent 70%);
}
.scn-pearl-temper-comforts .wall {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.4);
}
.scn-pearl-temper-comforts .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 80% 0 0 / 10% 20% 0 0;
}
.scn-pearl-temper-comforts .window {
  position:absolute; top:15%; right:15%; width:60px; height:80px;
  background: radial-gradient(circle at center, #d0c8a0 0%, #a09070 70%);
  border-radius: 10% 10% 4% 4%; box-shadow: 0 0 30px 10px rgba(200,180,140,.3);
  animation: pt-window 12s ease-in-out infinite alternate;
}
.scn-pearl-temper-comforts .sunbeam {
  position:absolute; top:15%; right:15%; width:60px; height:250px;
  background: linear-gradient(180deg, rgba(220,200,160,.3) 0%, transparent 100%);
  transform-origin: top center;
  animation: pt-sunbeam 8s ease-in-out infinite alternate;
}
.scn-pearl-temper-comforts .hester {
  position:absolute; bottom:15%; left:25%; width:35px; height:70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: pt-hester 6s ease-in-out infinite;
}
.scn-pearl-temper-comforts .pearl {
  position:absolute; bottom:12%; left:45%; width:18px; height:40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: pt-pearl 3s ease-in-out infinite;
}
.scn-pearl-temper-comforts .shadow {
  position:absolute; bottom:12%; left:22%; width:60px; height:8px;
  background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(4px);
  animation: pt-shadow 6s ease-in-out infinite;
}
@keyframes pt-window { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pt-sunbeam { 0% { transform: rotate(-5deg) scaleY(.8) } 50% { transform: rotate(0deg) scaleY(1) } 100% { transform: rotate(5deg) scaleY(.8) } }
@keyframes pt-hester { 0%,100% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } }
@keyframes pt-pearl { 0%,100% { transform: translateX(0) rotate(0deg) } 15% { transform: translateX(6px) rotate(-15deg) } 30% { transform: translateX(12px) rotate(10deg) } 45% { transform: translateX(18px) rotate(-20deg) } 60% { transform: translateX(24px) rotate(15deg) } 75% { transform: translateX(30px) rotate(-10deg) } }
@keyframes pt-shadow { 0%,100% { transform: scaleX(1); opacity:.3 } 50% { transform: scaleX(1.1); opacity:.5 } }

/* ---------- her-heart-complaint ---------- */
.scn-her-heart-complaint {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #3d2c26 30%, #1f1410 100%),
    radial-gradient(ellipse at 50% 40%, #4c3a32 0%, transparent 70%);
}
.scn-her-heart-complaint .wall-left {
  position: absolute; left: 0; top: 0; bottom: 35%; width: 30%;
  background: linear-gradient(90deg, #1a110e 0%, transparent 100%);
  border-radius: 0 0 8% 0;
  animation: hhc-wall 15s ease-in-out infinite alternate;
}
.scn-her-heart-complaint .wall-right {
  position: absolute; right: 0; top: 0; bottom: 35%; width: 30%;
  background: linear-gradient(-90deg, #1a110e 0%, transparent 100%);
  border-radius: 0 0 0 8%;
  animation: hhc-wall 15s ease-in-out infinite alternate-reverse;
}
.scn-her-heart-complaint .floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 35%;
  background: linear-gradient(180deg, #2b1f1a 0%, #0f0a08 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-her-heart-complaint .window-light {
  position: absolute; top: 12%; left: 38%; width: 24%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(220,200,180,0.15) 0%, transparent 70%);
  border: 2px solid rgba(180,150,120,0.2);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 30px rgba(220,200,180,0.1);
  animation: hhc-window 8s ease-in-out infinite alternate;
}
.scn-her-heart-complaint .figure-seat {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1410 0%, #0d0907 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: hhc-figure 5s ease-in-out infinite;
}
.scn-her-heart-complaint .heart-lantern {
  position: absolute; bottom: 38%; left: 50%; width: 20px; height: 18px;
  transform: translateX(-50%) rotate(-5deg);
  background: radial-gradient(circle at 50% 40%, #e8a050 0%, #b85c30 50%, #702215 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 
    0 0 20px 6px #d07a40,
    0 0 40px 12px rgba(208,122,64,0.4);
  animation: hhc-heart 3s ease-in-out infinite alternate;
}
.scn-her-heart-complaint .sorrow-shadow {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: hhc-shadow 6s ease-in-out infinite alternate;
}
@keyframes hhc-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes hhc-window { 0% { box-shadow: inset 0 0 20px rgba(220,200,180,0.05); } 50% { box-shadow: inset 0 0 40px rgba(220,200,180,0.15); } 100% { box-shadow: inset 0 0 25px rgba(220,200,180,0.08); } }
@keyframes hhc-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes hhc-heart { 0% { transform: translateX(-50%) rotate(-5deg) scale(1); box-shadow: 0 0 20px 6px #d07a40, 0 0 40px 12px rgba(208,122,64,0.4); } 50% { transform: translateX(-50%) rotate(-5deg) scale(1.1); box-shadow: 0 0 30px 10px #e8a050, 0 0 60px 20px rgba(208,122,64,0.6); } 100% { transform: translateX(-50%) rotate(-5deg) scale(0.95); box-shadow: 0 0 18px 4px #d07a40, 0 0 35px 8px rgba(208,122,64,0.35); } }
@keyframes hhc-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* ---------- hester-scaffold-magnetism ---------- */
.scn-hester-scaffold-magnetism {
  background: 
    linear-gradient(180deg, #b0c8d8 0%, #e0e8f0 40%, #ffffff 100%),
    radial-gradient(ellipse at 50% 0%, #d8e4ec 0%, transparent 80%);
}
.scn-hester-scaffold-magnetism .sky-bright {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #a8c0d8 0%, transparent 50%);
  animation: hsm-sky 10s ease-in-out infinite alternate;
}
.scn-hester-scaffold-magnetism .scaffold-beam {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 6px;
  background: linear-gradient(90deg, #5a4a3a, #7a6a5a, #5a4a3a);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: hsm-beam 12s ease-in-out infinite alternate;
}
.scn-hester-scaffold-magnetism .scaffold-post {
  position: absolute; bottom: 25%; left: 50%; width: 8px; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a, #3a2a1a);
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
  animation: hsm-post 8s ease-in-out infinite alternate;
}
.scn-hester-scaffold-magnetism .figure-hester {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: hsm-figure 4s ease-in-out infinite;
}
.scn-hester-scaffold-magnetism .fetter-chain {
  position: absolute; bottom: 28%; left: 50%; width: 12px; height: 8px;
  transform: translateX(-50%) translateY(10px);
  background: radial-gradient(ellipse, #8a7a6a 0%, #5a4a3a 70%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: hsm-chain 2s ease-in-out infinite;
}
.scn-hester-scaffold-magnetism .shadow-hard {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: hsm-shadow 5s ease-in-out infinite alternate;
}
.scn-hester-scaffold-magnetism .sun-ring {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: hsm-sun 15s ease-in-out infinite alternate;
}
@keyframes hsm-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hsm-beam { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.9) translateY(-1px); } 100% { transform: scaleY(1); } }
@keyframes hsm-post { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes hsm-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes hsm-chain { 0% { transform: translateX(-50%) translateY(10px) rotate(-5deg); } 50% { transform: translateX(-50%) translateY(10px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(10px) rotate(-5deg); } }
@keyframes hsm-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes hsm-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(5px, -5px) scale(1.05); } 100% { transform: translate(0, 0) scale(1); } }

/* ---------- pearl-plays-market ---------- */
.scn-pearl-plays-market {
  background: 
    linear-gradient(180deg, #d4c8a0 0%, #f0e8d0 40%, #fcf8e8 100%),
    radial-gradient(ellipse at 50% 100%, #e8dcc0 0%, transparent 70%);
}
.scn-pearl-plays-market .market-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c4d8e8 0%, transparent 50%);
  animation: ppm-sky 20s ease-in-out infinite alternate;
}
.scn-pearl-plays-market .ground-dust {
  position: absolute; left: 0; right: 0; bottom: 0; height: 30%;
  background: linear-gradient(180deg, #b8a88a 0%, #8a7a5a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-pearl-plays-market .stall-left {
  position: absolute; bottom: 28%; left: 10%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a402a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: ppm-stall 8s ease-in-out infinite alternate;
}
.scn-pearl-plays-market .stall-right {
  position: absolute; bottom: 28%; right: 8%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  animation: ppm-stall 8s ease-in-out infinite alternate-reverse;
}
.scn-pearl-plays-market .awning-left {
  position: absolute; bottom: 48%; left: 10%; width: 18%; height: 8%;
  background: linear-gradient(180deg, #d0a060 0%, #b07a40 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ppm-awning 12s ease-in-out infinite alternate;
}
.scn-pearl-plays-market .awning-right {
  position: absolute; bottom: 50%; right: 8%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #c09050 0%, #a07030 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ppm-awning 12s ease-in-out infinite alternate-reverse;
}
.scn-pearl-plays-market .figure-pearl {
  position: absolute; bottom: 28%; left: 55%; width: 16px; height: 35px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0a880 0%, #a07850 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: ppm-pearl 3s ease-in-out infinite;
}
.scn-pearl-plays-market .bird-bright {
  position: absolute; bottom: 50%; left: 40%; width: 10px; height: 6px;
  background: radial-gradient(ellipse, #e0b060 0%, #c08030 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(15deg);
  animation: ppm-bird 5s ease-in-out infinite;
}
@keyframes ppm-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ppm-stall { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ppm-awning { 0% { transform: skewX(0deg); } 50% { transform: skewX(4deg); } 100% { transform: skewX(0deg); } }
@keyframes ppm-pearl { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) scale(1); } 25% { transform: translateX(-40%) translateY(-5px) rotate(3deg) scale(1.05); } 50% { transform: translateX(-30%) translateY(0) rotate(-1deg) scale(1); } 75% { transform: translateX(-45%) translateY(-3px) rotate(2deg) scale(0.98); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) scale(1); } }
@keyframes ppm-bird { 0% { transform: translate(0,0) rotate(15deg); } 50% { transform: translate(20px, -10px) rotate(25deg); } 100% { transform: translate(0,0) rotate(15deg); } }

/* ---------- pearl-looked-wild ---------- */
.scn-pearl-looked-wild {
  background: 
    linear-gradient(180deg, #b8c8a0 0%, #8a9a6a 40%, #5a6a3a 100%),
    radial-gradient(ellipse at 50% 100%, #6a7a4a 0%, transparent 80%);
}
.scn-pearl-looked-wild .wild-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #a0b8d0 0%, transparent 50%);
  animation: plw-sky 18s ease-in-out infinite alternate;
}
.scn-pearl-looked-wild .forest-floor {
  position: absolute; left: 0; right: 0; bottom: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}
.scn-pearl-looked-wild .tree-left {
  position: absolute; bottom: 20%; left: 8%; width: 12%; height: 70%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: plw-tree 10s ease-in-out infinite alternate;
}
.scn-pearl-looked-wild .tree-right {
  position: absolute; bottom: 20%; right: 12%; width: 10%; height: 65%;
  background: linear-gradient(180deg, #4a3a22 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
  animation: plw-tree 12s ease-in-out infinite alternate-reverse;
}
.scn-pearl-looked-wild .bush-clump {
  position: absolute; bottom: 18%; left: 35%; width: 20%; height: 12%;
  background: radial-gradient(ellipse, #3a5a2a 0%, #1a3a10 100%);
  border-radius: 50%;
  animation: plw-bush 7s ease-in-out infinite alternate;
}
.scn-pearl-looked-wild .figure-wild {
  position: absolute; bottom: 22%; left: 60%; width: 15px; height: 32px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c09a70 0%, #906040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: plw-figure 4s ease-in-out infinite;
}
.scn-pearl-looked-wild .deer-shadow {
  position: absolute; bottom: 20%; right: 30%; width: 12px; height: 20px;
  background: radial-gradient(ellipse, #2a2a2a 0%, transparent 100%);
  filter: blur(3px);
  animation: plw-deer 6s ease-in-out infinite alternate;
}
@keyframes plw-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes plw-tree { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes plw-bush { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes plw-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-3deg); } 25% { transform: translateX(-40%) translateY(-4px) rotate(2deg); } 50% { transform: translateX(-30%) translateY(0) rotate(-2deg); } 75% { transform: translateX(-45%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-3deg); } }
@keyframes plw-deer { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }

.scn-pearl-spell-broken {
  background: 
    linear-gradient(180deg, #ffe0b0 0%, #ffcc88 40%, #87ceeb 70%),
    radial-gradient(ellipse at 50% 100%, #ffaa55 0%, transparent 60%);
}
.scn-pearl-spell-broken .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, transparent 100%);
  animation: psb-sky 12s ease-in-out infinite alternate;
}
.scn-pearl-spell-broken .sun-glow {
  position: absolute; top: 8%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffdd44, 0 0 120px 40px rgba(255, 221, 68, 0.4);
  animation: psb-sun 6s ease-in-out infinite;
}
.scn-pearl-spell-broken .clouds {
  position: absolute; top: 15%; left: -10%; width: 120%; height: 20px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6) 20%, rgba(255,255,255,0.2) 80%, transparent);
  filter: blur(8px);
  animation: psb-clouds 30s linear infinite;
}
.scn-pearl-spell-broken .father {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2215 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: psb-father 8s ease-in-out infinite;
}
.scn-pearl-spell-broken .child {
  position: absolute; bottom: 26%; left: 22%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: psb-child 8s ease-in-out infinite;
}
.scn-pearl-spell-broken .tear {
  position: absolute; bottom: 28%; left: 24%; width: 4px; height: 6px;
  background: radial-gradient(circle, #b0d0ff 0%, #7090c0 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(112,144,192,0.5);
  animation: psb-tear 4s ease-in-out infinite;
}
@keyframes psb-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes psb-sun {
  0% { transform: scale(1); box-shadow: 0 0 60px 20px #ffdd44; }
  50% { transform: scale(1.08); box-shadow: 0 0 80px 30px #ffe055; }
  100% { transform: scale(1); box-shadow: 0 0 60px 20px #ffdd44; }
}
@keyframes psb-clouds {
  0% { transform: translateX(0); }
  100% { transform: translateX(100%); }
}
@keyframes psb-father {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
}
@keyframes psb-child {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-1px); }
}
@keyframes psb-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(8px) scale(1.1); opacity: 0.5; }
  100% { transform: translateY(16px) scale(0.9); opacity: 0; }
}

.scn-hester-asks-meeting {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2c2244 40%, #6d3a3a 100%),
    radial-gradient(ellipse at 30% 50%, #c08040 0%, transparent 70%);
}
.scn-hester-asks-meeting .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a2a3e 0%, #1a1a2e 50%, #2a2a3e 100%);
  animation: ham-wall 10s ease-in-out infinite alternate;
}
.scn-hester-asks-meeting .window {
  position: absolute; top: 15%; left: 25%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #ffdd99 0%, #ffaa44 100%);
  border: 6px solid #3a2a1a; border-radius: 4px;
  box-shadow: 0 0 30px 10px #c08040, 0 0 80px 20px rgba(192,128,64,0.3);
  animation: ham-window 5s ease-in-out infinite;
}
.scn-hester-asks-meeting .light-beam {
  position: absolute; top: 15%; left: 28%; width: 40px; height: 70%;
  background: linear-gradient(180deg, rgba(255,204,136,0.6) 0%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%);
  transform-origin: top center;
  animation: ham-beam 8s ease-in-out infinite alternate;
}
.scn-hester-asks-meeting .hester {
  position: absolute; bottom: 15%; left: 20%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ham-hester 6s ease-in-out infinite;
}
.scn-hester-asks-meeting .dimmesdale {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ham-dimmesdale 6s ease-in-out infinite reverse;
}
.scn-hester-asks-meeting .hand {
  position: absolute; bottom: 22%; left: 28%; width: 12px; height: 18px;
  background: #3a2a2a; border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ham-hand 4s ease-in-out infinite;
}
@keyframes ham-wall {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.6; }
}
@keyframes ham-window {
  0% { box-shadow: 0 0 20px 8px #c08040; }
  50% { box-shadow: 0 0 40px 15px #ffaa44; }
  100% { box-shadow: 0 0 20px 8px #c08040; }
}
@keyframes ham-beam {
  0% { transform: scaleY(0.9) skewX(-2deg); opacity: 0.6; }
  50% { transform: scaleY(1) skewX(0deg); opacity: 0.8; }
  100% { transform: scaleY(0.9) skewX(2deg); opacity: 0.6; }
}
@keyframes ham-hester {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-3px); }
}
@keyframes ham-dimmesdale {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
}
@keyframes ham-hand {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(-10deg); }
}

.scn-dimmesdale-last-words {
  background: 
    linear-gradient(180deg, #2c1a3a 0%, #4a2a4a 40%, #8a6a5a 100%),
    radial-gradient(ellipse at 50% 20%, #ffcc88 0%, transparent 60%);
}
.scn-dimmesdale-last-words .sky-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #3a2a4a 50%, transparent 100%);
  animation: dlw-sky 15s ease-in-out infinite alternate;
}
.scn-dimmesdale-last-words .sun-rays {
  position: absolute; top: 0; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, rgba(255,204,136,0.3) 0%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: dlw-rays 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-last-words .scaffold {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 50%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.6);
  animation: dlw-scaffold 6s ease-in-out infinite;
}
.scn-dimmesdale-last-words .dimmesdale {
  position: absolute; bottom: 22%; left: 45%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dlw-dimmesdale 8s ease-in-out infinite;
}
.scn-dimmesdale-last-words .hester-pearl {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: dlw-hester-pearl 10s ease-in-out infinite alternate;
}
.scn-dimmesdale-last-words .crowd-silhouette {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, transparent 100%);
  clip-path: polygon(0% 100%, 0% 50%, 10% 60%, 20% 40%, 30% 55%, 40% 35%, 50% 50%, 60% 30%, 70% 45%, 80% 35%, 90% 50%, 100% 55%, 100% 100%);
  animation: dlw-crowd 5s ease-in-out infinite alternate;
}
@keyframes dlw-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes dlw-rays {
  0% { transform: translateX(-2%) skewX(-3deg); opacity: 0.4; }
  50% { transform: translateX(2%) skewX(0deg); opacity: 0.7; }
  100% { transform: translateX(-2%) skewX(3deg); opacity: 0.4; }
}
@keyframes dlw-scaffold {
  0%, 100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(2px) scaleX(0.98); }
}
@keyframes dlw-dimmesdale {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes dlw-hester-pearl {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dlw-crowd {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}

.scn-after-scaffold-reports {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #4a3a3a 100%),
    radial-gradient(ellipse at 50% 0%, #6a5a4a 0%, transparent 70%);
}
.scn-after-scaffold-reports .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: asr-ground 12s ease-in-out infinite alternate;
}
.scn-after-scaffold-reports .scaffold-base {
  position: absolute; bottom: 35%; left: 40%; width: 20%; height: 12px;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a5a4a 50%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: asr-scaffold 8s ease-in-out infinite;
}
.scn-after-scaffold-reports .dimmesdale-body {
  position: absolute; bottom: 38%; left: 46%; width: 24px; height: 45px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: asr-body 6s ease-in-out infinite;
}
.scn-after-scaffold-reports .crowd-left {
  position: absolute; bottom: 10%; left: 0; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 100% 100%, #1a1a1a 0%, transparent 80%);
  clip-path: polygon(0% 100%, 0% 60%, 10% 70%, 20% 55%, 30% 65%, 40% 50%, 50% 60%, 50% 100%);
  animation: asr-crowd-left 10s ease-in-out infinite alternate;
}
.scn-after-scaffold-reports .crowd-right {
  position: absolute; bottom: 10%; right: 0; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 0% 100%, #1a1a1a 0%, transparent 80%);
  clip-path: polygon(50% 100%, 50% 60%, 60% 50%, 70% 65%, 80% 55%, 90% 70%, 100% 60%, 100% 100%);
  animation: asr-crowd-right 12s ease-in-out infinite alternate;
}
.scn-after-scaffold-reports .clouds-grey {
  position: absolute; top: 10%; left: -20%; width: 140%; height: 30px;
  background: linear-gradient(90deg, transparent, rgba(100,100,100,0.4) 30%, rgba(80,80,80,0.6) 50%, rgba(100,100,100,0.4) 70%, transparent);
  filter: blur(10px);
  animation: asr-clouds 40s linear infinite;
}
.scn-after-scaffold-reports .scarlet-mark {
  position: absolute; bottom: 38%; left: 47.5%; width: 10px; height: 10px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px #a0461a, 0 0 24px 12px rgba(160,70,26,0.3);
  animation: asr-mark 3s ease-in-out infinite alternate;
}
@keyframes asr-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes asr-scaffold {
  0%, 100% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(2px) scaleX(0.97); }
}
@keyframes asr-body {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-1px); }
}
@keyframes asr-crowd-left {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(3px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes asr-crowd-right {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-3px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes asr-clouds {
  0% { transform: translateX(0); }
  100% { transform: translateX(50%); }
}
@keyframes asr-mark {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); box-shadow: 0 0 16px 8px #a0461a; }
  100% { opacity: 0.8; transform: scale(1); }
}

.scn-pearl-laugh-or-grief {
  background: linear-gradient(180deg, #1a1a3e 0%, #0d0d1a 100%), radial-gradient(ellipse at 50% 80%, #2a2a5e 0%, transparent 70%);
}
.scn-pearl-laugh-or-grief .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a2a4e 0%, #14142a 100%);
  border-radius: 0 0 20% 20%;
  animation: plg-wall 20s ease-in-out infinite;
}
.scn-pearl-laugh-or-grief .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,.6);
}
.scn-pearl-laugh-or-grief .window {
  position: absolute; top: 15%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4a7a 0%, #2a2a5a 40%, #1a1a3a 100%);
  border: 4px solid #1a1a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(80,80,140,.3);
  animation: plg-window 8s ease-in-out infinite alternate;
}
.scn-pearl-laugh-or-grief .curtain {
  position: absolute; top: 12%; left: 52%; width: 40%; height: 50%;
  background: linear-gradient(90deg, #3a2a3a 0%, #4a3a4a 50%, #3a2a3a 100%);
  border-radius: 0 0 40% 40%;
  transform-origin: top center;
  animation: plg-curtain 12s ease-in-out infinite alternate;
}
.scn-pearl-laugh-or-grief .mother {
  position: absolute; bottom: 25%; left: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: plg-mother 6s ease-in-out infinite;
}
.scn-pearl-laugh-or-grief .child {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: plg-child 4s ease-in-out infinite alternate;
}
.scn-pearl-laugh-or-grief .candle {
  position: absolute; bottom: 22%; left: 70%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #b08040 0%, #6a4020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 18px 6px rgba(200,140,60,.6), 0 0 40px 12px rgba(200,140,60,.2);
  animation: plg-candle 3s ease-in-out infinite alternate;
}
@keyframes plg-wall { 0% { opacity: .9; } 50% { opacity: .7; } 100% { opacity: .9; } }
@keyframes plg-window { 0% { box-shadow: inset 0 0 10px rgba(80,80,140,.2); } 50% { box-shadow: inset 0 0 30px rgba(80,80,140,.5); } 100% { box-shadow: inset 0 0 15px rgba(80,80,140,.3); } }
@keyframes plg-curtain { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.05) translateX(-5px); } 100% { transform: scaleX(0.95) translateX(5px); } }
@keyframes plg-mother { 0% { transform: translateX(0) translateY(0) rotate(0); } 33% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 66% { transform: translateX(2px) translateY(0) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes plg-child { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(5deg); } 75% { transform: translateX(-4px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes plg-candle { 0% { transform: scaleY(1) scaleX(1); opacity: .8; box-shadow: 0 0 12px 4px rgba(200,140,60,.4); } 50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; box-shadow: 0 0 24px 8px rgba(200,140,60,.7); } 100% { transform: scaleY(0.95) scaleX(1.05); opacity: .85; box-shadow: 0 0 16px 5px rgba(200,140,60,.5); } }

.scn-hester-conjured-spirit {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a3a 60%, #2a2a4e 100%), radial-gradient(ellipse at 50% 40%, #3a3a6e 0%, transparent 60%);
}
.scn-hester-conjured-spirit .bg-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, #0a0a1a 100%);
  animation: hcs-shadow 15s ease-in-out infinite alternate;
}
.scn-hester-conjured-spirit .circle-light {
  position: absolute; top: 25%; left: 50%; width: 50%; height: 50%;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, #4a4a8e 0%, #2a2a5e 40%, transparent 70%);
  border-radius: 50%;
  animation: hcs-circle 10s ease-in-out infinite alternate;
}
.scn-hester-conjured-spirit .mother-figure {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hcs-mother 8s ease-in-out infinite;
}
.scn-hester-conjured-spirit .child-spirit {
  position: absolute; top: 25%; left: 45%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, rgba(140,160,255,.6) 0%, rgba(100,120,220,.3) 60%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  filter: blur(1px);
  box-shadow: 0 0 30px 10px rgba(140,160,255,.3);
  animation: hcs-spirit 6s ease-in-out infinite alternate;
}
.scn-hester-conjured-spirit .sparkle-1 {
  position: absolute; top: 20%; left: 35%; width: 4px; height: 4px;
  background: #aabbff;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #aabbff;
  animation: hcs-sparkle 5s linear infinite;
}
.scn-hester-conjured-spirit .sparkle-2 {
  position: absolute; top: 30%; left: 55%; width: 3px; height: 3px;
  background: #8899dd;
  border-radius: 50%;
  box-shadow: 0 0 6px 1px #8899dd;
  animation: hcs-sparkle 7s linear infinite reverse;
  animation-delay: 2s;
}
.scn-hester-conjured-spirit .floor-line {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 2px;
  background: linear-gradient(90deg, transparent, #3a3a5e 30%, #3a3a5e 70%, transparent);
  opacity: .5;
}
@keyframes hcs-shadow { 0% { opacity: .8; } 50% { opacity: .6; } 100% { opacity: .9; } }
@keyframes hcs-circle { 0% { transform: translate(-50%, 0) scale(1); opacity: .7; } 50% { transform: translate(-50%, -5px) scale(1.05); opacity: 1; } 100% { transform: translate(-50%, 0) scale(0.95); opacity: .8; } }
@keyframes hcs-mother { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(-3px) translateY(-2px) rotate(-3deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(3px) translateY(-1px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hcs-spirit { 0% { transform: translateY(0) scale(1); opacity: .6; } 33% { transform: translateY(-10px) scale(1.1); opacity: 1; } 66% { transform: translateY(-5px) scale(0.9); opacity: .8; } 100% { transform: translateY(0) scale(1); opacity: .6; } }
@keyframes hcs-sparkle { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 50% { transform: translate(8px, -12px) scale(1.5); opacity: 1; } 100% { transform: translate(16px, -24px) scale(0); opacity: 0; } }

.scn-pearl-arrives-at-speech {
  background: linear-gradient(180deg, #fce4c4 0%, #f5d4a8 40%, #ead3a0 100%), radial-gradient(ellipse at 50% 20%, #fff7e0 0%, transparent 70%);
}
.scn-pearl-arrives-at-speech .sun-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #f7e8cc 0%, #eddfc4 100%);
  border-radius: 0 0 10% 10%;
}
.scn-pearl-arrives-at-speech .sun-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #e8d6b8 0%, #d4c4a8 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.1);
}
.scn-pearl-arrives-at-speech .sun-window {
  position: absolute; top: 10%; left: 40%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #fffaee 0%, #e8f0ff 60%, #c8ddf0 100%);
  border: 6px solid #d4c4a8;
  border-radius: 8px;
  box-shadow: 0 0 30px rgba(255,240,200,.5);
  animation: pas-window 10s ease-in-out infinite alternate;
}
.scn-pearl-arrives-at-speech .sunbeam {
  position: absolute; top: 10%; left: 42%; width: 20%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,200,.4) 0%, rgba(255,255,200,.1) 100%);
  transform: rotate(-10deg);
  transform-origin: top left;
  filter: blur(4px);
  animation: pas-beam 12s ease-in-out infinite alternate;
}
.scn-pearl-arrives-at-speech .mother-happy {
  position: absolute; bottom: 18%; left: 25%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #d4b896 0%, #b8a080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pas-mother 7s ease-in-out infinite;
}
.scn-pearl-arrives-at-speech .child-speaking {
  position: absolute; bottom: 18%; left: 55%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #e0c8a8 0%, #c0a888 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pas-child 4s ease-in-out infinite alternate;
}
.scn-pearl-arrives-at-speech .bird {
  position: absolute; top: 8%; left: 65%; width: 16px; height: 12px;
  background: radial-gradient(ellipse at 30% 50%, #8a6a4a 0%, #6a5030 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: pas-bird 5s ease-in-out infinite alternate;
}
@keyframes pas-window { 0% { box-shadow: 0 0 10px rgba(255,240,200,.3); } 50% { box-shadow: 0 0 40px rgba(255,240,200,.7); } 100% { box-shadow: 0 0 20px rgba(255,240,200,.4); } }
@keyframes pas-beam { 0% { opacity: .3; transform: rotate(-10deg) scaleY(1); } 50% { opacity: .7; transform: rotate(-8deg) scaleY(1.05); } 100% { opacity: .4; transform: rotate(-12deg) scaleY(0.95); } }
@keyframes pas-mother { 0% { transform: translateX(0) translateY(0) rotate(0); } 33% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); } 66% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes pas-child { 0% { transform: translateY(0) rotate(0) scaleY(1); } 25% { transform: translateY(-4px) rotate(5deg) scaleY(1.05); } 50% { transform: translateY(0) rotate(0) scaleY(1); } 75% { transform: translateY(-2px) rotate(-5deg) scaleY(0.95); } 100% { transform: translateY(0) rotate(0) scaleY(1); } }
@keyframes pas-bird { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(8px); } 100% { transform: rotate(-15deg) translateX(0); } }

.scn-pearl-born-outcast {
  background: linear-gradient(180deg, #e8e8f0 0%, #d0d0e0 50%, #b8b8c8 100%), radial-gradient(ellipse at 50% 30%, #f0f0ff 0%, transparent 70%);
}
.scn-pearl-born-outcast .cold-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #e0e0ee 0%, #c8c8d8 100%);
  border-radius: 0 0 15% 15%;
}
.scn-pearl-born-outcast .cold-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #d0d0dc 0%, #b0b0c0 100%);
  border-radius: 30% 30% 0 0;
}
.scn-pearl-born-outcast .crib {
  position: absolute; bottom: 12%; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #a0a0b0 0%, #808090 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: pbo-crib 15s ease-in-out infinite alternate;
}
.scn-pearl-born-outcast .child-outcast {
  position: absolute; bottom: 16%; left: 43%; width: 12%; height: 14%;
  background: linear-gradient(180deg, #c8c8d8 0%, #a8a8b8 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.2);
  animation: pbo-child 6s ease-in-out infinite alternate;
}
.scn-pearl-born-outcast .shadow-figure {
  position: absolute; bottom: 8%; left: 55%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #404050 0%, #202030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbo-shadow 10s ease-in-out infinite;
}
.scn-pearl-born-outcast .other-children {
  position: absolute; bottom: 8%; left: 10%; width: 15%; height: 20%;
  background: linear-gradient(180deg, #d0d0dc 0%, #b0b0c0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: .6;
  animation: pbo-others 8s ease-in-out infinite alternate;
}
.scn-pearl-born-outcast .light-source {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 15%;
  background: radial-gradient(circle, #ffffff 0%, #e0e0f0 40%, transparent 100%);
  border-radius: 50%;
  animation: pbo-light 5s ease-in-out infinite alternate;
}
@keyframes pbo-crib { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pbo-child { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-2px) rotate(5deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes pbo-shadow { 0% { transform: translateX(0) scaleY(1); } 33% { transform: translateX(3px) scaleY(1.02); } 66% { transform: translateX(-3px) scaleY(0.98); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes pbo-others { 0% { opacity: .4; transform: translateY(0); } 50% { opacity: .7; transform: translateY(-3px); } 100% { opacity: .5; transform: translateY(0); } }
@keyframes pbo-light { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .7; transform: scale(0.95); } }

/* ---- Scene: relief-of-recognition ---- */
.scn-relief-of-recognition {
  background: linear-gradient(180deg, #1e212e 0%, #2b3042 40%, #3a4056 100%),
              radial-gradient(ellipse at 50% 35%, #3a4056 0%, transparent 65%);
}
.scn-relief-of-recognition .sky-ror {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #262b3d 0%, transparent 100%);
  animation: ror-sky 15s ease-in-out infinite alternate;
}
.scn-relief-of-recognition .ground-ror {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a1e2a 0%, #0f121c 100%);
  border-radius: 20% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-relief-of-recognition .fig-left-ror {
  position: absolute; bottom: 25%; left: 22%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1b1f2b 0%, #121621 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: ror-fig-l 5s ease-in-out infinite;
}
.scn-relief-of-recognition .fig-right-ror {
  position: absolute; bottom: 25%; right: 22%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1b1f2b 0%, #121621 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: ror-fig-r 5s ease-in-out infinite;
}
.scn-relief-of-recognition .eye-glow-ror {
  position: absolute; bottom: 42%; left: 50%; width: 8px; height: 8px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, #b8b8c8 0%, #5a6072 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px #5a6072;
  animation: ror-glow 4s ease-in-out infinite alternate;
}
.scn-relief-of-recognition .fog-ror {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(180,190,210,0.08) 0%, transparent 70%);
  filter: blur(12px);
  animation: ror-fog 20s ease-in-out infinite;
}
.scn-relief-of-recognition .shadow-ror {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: ror-shadow 6s ease-in-out infinite;
}
@keyframes ror-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ror-fig-l { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ror-fig-r { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ror-glow { 0% { opacity:0.4; box-shadow: 0 0 12px 4px #5a6072 } 50% { opacity:0.9; box-shadow: 0 0 24px 8px #7a82a0 } 100% { opacity:0.5; box-shadow: 0 0 14px 5px #5a6072 } }
@keyframes ror-fog { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.3; transform: scale(1) } }
@keyframes ror-shadow { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }

/* ---- Scene: hester-intervenes ---- */
.scn-hester-intervenes {
  background: linear-gradient(180deg, #1f2433 0%, #2d334a 50%, #3c435e 100%),
              radial-gradient(ellipse at 50% 60%, #3c435e 0%, transparent 60%);
}
.scn-hester-intervenes .bg-wall-hi {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #1b202e 0%, #2d334a 60%, #10141f 100%);
  animation: hi-wall 12s ease-in-out infinite alternate;
}
.scn-hester-intervenes .floor-hi {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #151a28 0%, #0c101a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-hester-intervenes .fig-hester-hi {
  position: absolute; bottom: 20%; left: 40%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #2d334a 0%, #1b202e 100%);
  border-radius: 40% 40% 25% 25% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: hi-fig-h 4s ease-in-out infinite;
}
.scn-hester-intervenes .fig-dim-hi {
  position: absolute; bottom: 20%; right: 35%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #20253a 0%, #15192a 100%);
  border-radius: 45% 40% 30% 30% / 55% 50% 25% 25%;
  transform-origin: bottom center;
  animation: hi-fig-d 4.5s ease-in-out infinite;
}
.scn-hester-intervenes .roof-hi {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(180deg, #3c435e 0%, #2d334a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-hester-intervenes .door-hi {
  position: absolute; bottom: 20%; right: 15%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2d334a 0%, #1b202e 100%);
  border-radius: 6% 6% 0 0;
  animation: hi-door 8s ease-in-out infinite;
}
.scn-hester-intervenes .shadow-creep-hi {
  position: absolute; bottom: 20%; left: 30%; width: 70px; height: 50px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform: skewX(-15deg);
  animation: hi-shadow 6s ease-in-out infinite alternate;
}
@keyframes hi-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hi-fig-h { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hi-fig-d { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes hi-door { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) translateY(1px) } }
@keyframes hi-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

/* ---- Scene: revelation-shock ---- */
.scn-revelation-shock {
  background: linear-gradient(180deg, #171b28 0%, #252b40 45%, #333a52 100%),
              radial-gradient(ellipse at 50% 30%, #333a52 0%, transparent 60%);
}
.scn-revelation-shock .bg-shock-rs {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1d2230 0%, transparent 100%);
  animation: rs-bg 8s ease-in-out infinite alternate;
}
.scn-revelation-shock .figure-rs {
  position: absolute; bottom: 20%; left: 50%; width: 32px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #262b3d 0%, #1b1f2b 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 20% 20%;
  transform-origin: bottom center;
  animation: rs-fig 3s ease-in-out infinite;
}
.scn-revelation-shock .hand-rs {
  position: absolute; bottom: 45%; left: 50%; width: 10px; height: 16px;
  transform: translate(-50%, -50%);
  background: linear-gradient(180deg, #2d334a 0%, #1b202e 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: rs-hand 2.5s ease-in-out infinite;
}
.scn-revelation-shock .burst-rs {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, rgba(200,200,220,0.1) 0%, transparent 70%);
  filter: blur(3px);
  animation: rs-burst 4s ease-in-out infinite alternate;
}
.scn-revelation-shock .shadow-rs {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: rs-shadow 3s ease-in-out infinite;
}
.scn-revelation-shock .pillar-rs {
  position: absolute; bottom: 0; left: 5%; width: 15px; height: 100%;
  background: linear-gradient(180deg, #2d334a 0%, #1b202e 100%);
  opacity: 0.4;
  animation: rs-pillar 10s ease-in-out infinite;
}
@keyframes rs-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rs-fig { 0% { transform: translateX(-50%) rotate(0deg) } 30% { transform: translateX(-50%) rotate(-5deg) translateY(-5px) } 60% { transform: translateX(-50%) rotate(2deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes rs-hand { 0%,100% { transform: translate(-50%, -50%) scale(1) } 50% { transform: translate(-48%, -52%) scale(1.2) } }
@keyframes rs-burst { 0% { opacity:0.2; transform: translateX(-50%) scale(1) } 50% { opacity:0.5; transform: translateX(-50%) scale(1.3) } 100% { opacity:0.2; transform: translateX(-50%) scale(1) } }
@keyframes rs-shadow { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes rs-pillar { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.3 } }

/* ---- Scene: contiguity-disturbance ---- */
.scn-contiguity-disturbance {
  background: linear-gradient(180deg, #1a1e2e 0%, #262c40 50%, #343b52 100%),
              radial-gradient(ellipse at 50% 50%, #343b52 0%, transparent 70%);
}
.scn-contiguity-disturbance .bg-cd {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1f2436 0%, #111522 100%);
  animation: cd-bg 14s ease-in-out infinite alternate;
}
.scn-contiguity-disturbance .figure-cd {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2d334a 0%, #1b202e 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 20% 20%;
  animation: cd-fig 6s ease-in-out infinite;
}
.scn-contiguity-disturbance .mask-cd {
  position: absolute; top: 35%; left: 50%; width: 18px; height: 22px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #3c4360 0%, #212640 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cd-mask 5s ease-in-out infinite alternate;
}
.scn-contiguity-disturbance .sphere-cd {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(200,210,240,0.06) 0%, transparent 70%);
  border-radius: 50%;
  animation: cd-sphere 10s linear infinite;
}
.scn-contiguity-disturbance .rift-cd {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 4px;
  background: linear-gradient(90deg, transparent, #1b1f2b 20%, #3c435e 50%, #1b1f2b 80%, transparent);
  animation: cd-rift 8s ease-in-out infinite;
}
.scn-contiguity-disturbance .shadow-long-cd {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 80%);
  transform: skewX(-10deg);
  animation: cd-shadow 7s ease-in-out infinite;
}
@keyframes cd-bg { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cd-fig { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) scale(1.02) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes cd-mask { 0% { transform: translateX(-50%) scale(1) opacity:0.5 } 50% { transform: translateX(-50%) scale(1.15) opacity:0.8 } 100% { transform: translateX(-50%) scale(0.9) opacity:0.3 } }
@keyframes cd-sphere { 0% { transform: translate(-50%, -50%) scale(1) rotate(0deg) } 50% { transform: translate(-50%, -50%) scale(1.8) rotate(180deg) } 100% { transform: translate(-50%, -50%) scale(1) rotate(360deg) } }
@keyframes cd-rift { 0% { transform: scaleX(0.5); opacity:0.3 } 50% { transform: scaleX(1.2); opacity:0.8 } 100% { transform: scaleX(0.5); opacity:0.3 } }
@keyframes cd-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-prophecy-new-england {
  background: linear-gradient(180deg, #c8a06a 0%, #b8884a 25%, #a07038 50%, #8a5e2a 75%, #6e4620 100%),
              radial-gradient(ellipse at 50% 0%, #d4b07a 0%, transparent 60%);
}
.scn-prophecy-new-england .warm-wash {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(200,160,100,0.3) 0%, rgba(160,120,60,0.1) 50%, rgba(110,70,30,0.2) 100%);
  animation: pne-wash 12s ease-in-out infinite alternate;
}
.scn-prophecy-new-england .window-arch {
  position: absolute; top: 5%; left: 50%; width: 140px; height: 200px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #e8d0a0 0%, #c8a870 40%, #9a7a4a 70%, #6a4a2a 100%);
  border-radius: 70% 70% 20% 20% / 90% 90% 10% 10%;
  box-shadow: 0 0 60px 20px rgba(200,160,80,0.5), inset 0 0 40px 10px rgba(180,140,60,0.3);
  opacity: 0.7; animation: pne-window 8s ease-in-out infinite alternate;
}
.scn-prophecy-new-england .sunbeam {
  position: absolute; top: 5%; width: 60px; height: 240px;
  background: linear-gradient(180deg, rgba(240,220,160,0.4) 0%, rgba(240,220,160,0.1) 50%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%);
  filter: blur(3px); animation: pne-beam 6s ease-in-out infinite alternate;
}
.scn-prophecy-new-england .sunbeam-a { left: 42%; animation-delay: 0s; }
.scn-prophecy-new-england .sunbeam-b { left: 52%; width: 40px; animation-delay: 1.5s; }
.scn-prophecy-new-england .pulpit {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 90px; transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 50%, #3a2210 100%);
  border-radius: 10% 10% 6% 6% / 20% 20% 6% 6%;
  box-shadow: 4px 0 8px rgba(0,0,0,0.4), -2px 0 4px rgba(0,0,0,0.2);
}
.scn-prophecy-new-england .figure-prophet {
  position: absolute; bottom: 22%; left: 50%; width: 28px; height: 52px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pne-figure 5s ease-in-out infinite;
}
.scn-prophecy-new-england .open-book {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 18px; transform: translateX(-50%) translateY(-4px);
  background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 50%, #a89878 100%);
  border-radius: 4% 4% 20% 20% / 6% 6% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pne-book 9s ease-in-out infinite alternate;
}
.scn-prophecy-new-england .shadow-pew {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(180deg, rgba(50,30,10,0.3) 0%, rgba(30,18,6,0.5) 100%);
  border-radius: 40% 40% 0 0; filter: blur(6px);
}
@keyframes pne-wash { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes pne-window { 0% { opacity: 0.6; transform: translateX(-50%) scaleY(0.98); } 50% { opacity: 0.85; transform: translateX(-50%) scaleY(1); } 100% { opacity: 0.65; transform: translateX(-50%) scaleY(0.96); } }
@keyframes pne-beam { 0% { opacity: 0.2; transform: translate(0, 0) rotate(-1deg); } 50% { opacity: 0.6; transform: translate(4px, -6px) rotate(1deg); } 100% { opacity: 0.25; transform: translate(-2px, 4px) rotate(0deg); } }
@keyframes pne-figure { 0% { transform: translateX(-50%) rotate(-1deg) scaleY(1); } 30% { transform: translateX(-50%) rotate(1.5deg) scaleY(1.02); } 60% { transform: translateX(-50%) rotate(-0.5deg) scaleY(0.98); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes pne-book { 0% { transform: translateX(-50%) translateY(-4px) scaleX(0.95); } 50% { transform: translateX(-50%) translateY(-7px) scaleX(1); } 100% { transform: translateX(-50%) translateY(-3px) scaleX(0.97); } }

.scn-pathos-untimely-death {
  background: linear-gradient(180deg, #b0a898 0%, #9a8e7e 20%, #7a7062 50%, #4a423a 80%, #2a2420 100%),
              radial-gradient(ellipse at 50% 100%, #6a6258 0%, transparent 70%);
}
.scn-pathos-untimely-death .pale-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d0c8b8 0%, #b8b0a0 40%, #9a8e7e 100%);
  animation: pud-sky 14s ease-in-out infinite alternate;
}
.scn-pathos-untimely-death .sun-disk {
  position: absolute; top: 18%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e8ddd0 0%, #c8b8a8 40%, #a09080 70%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: pud-sun 20s ease-in-out infinite alternate;
}
.scn-pathos-untimely-death .horizon-line {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #7a7062 30%, #8a7e72 50%, #7a7062 70%, transparent 100%);
}
.scn-pathos-untimely-death .figure-pathos {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2420 0%, #1a1614 60%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 55% 40% 45%;
  transform-origin: bottom center;
  animation: pud-figure 8s ease-in-out infinite;
}
.scn-pathos-untimely-death .cloak-shadow {
  position: absolute; bottom: 22%; left: 34%; width: 40px; height: 50px;
  background: linear-gradient(135deg, rgba(30,26,22,0.6) 0%, rgba(20,18,16,0.4) 50%, transparent 100%);
  border-radius: 40% 60% 30% 50% / 50% 60% 40% 50%;
  filter: blur(5px);
  animation: pud-cloak 8s ease-in-out infinite alternate;
}
.scn-pathos-untimely-death .grass-blades {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a4e42 0%, #3a3228 30%, #2a241e 100%);
  border-radius: 80% 70% 0 0 / 60% 50% 0 0;
  animation: pud-grass 18s ease-in-out infinite alternate;
}
.scn-pathos-untimely-death .bird-dark {
  position: absolute; width: 20px; height: 8px;
  background: linear-gradient(180deg, #1a1614 0%, #0e0c0a 100%);
  border-radius: 50%; filter: blur(1px);
  animation: pud-bird 25s linear infinite;
}
.scn-pathos-untimely-death .bird-dark-a { top: 15%; left: 20%; animation-delay: 0s; }
.scn-pathos-untimely-death .bird-dark-b { top: 22%; left: 60%; width: 14px; height: 6px; animation-delay: 8s; animation-duration: 30s; }
@keyframes pud-sky { 0% { opacity: 0.7; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes pud-sun { 0% { transform: translate(0, 0) scale(0.95); opacity: 0.6; } 50% { transform: translate(-6px, 4px) scale(1.05); opacity: 0.85; } 100% { transform: translate(3px, -2px) scale(0.98); opacity: 0.65; } }
@keyframes pud-figure { 0% { transform: translateX(0) rotate(1deg) scaleY(1); } 25% { transform: translateX(-4px) rotate(-1deg) scaleY(0.98); } 50% { transform: translateX(2px) rotate(0.5deg) scaleY(1.01); } 75% { transform: translateX(-2px) rotate(-0.5deg) scaleY(0.99); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes pud-cloak { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0.5; } 50% { transform: translate(-3px, 2px) rotate(2deg); opacity: 0.7; } 100% { transform: translate(2px, -1px) rotate(-1deg); opacity: 0.55; } }
@keyframes pud-grass { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes pud-bird { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(40px) translateY(-8px); } 50% { transform: translateX(80px) translateY(2px); } 75% { transform: translateX(120px) translateY(-6px); } 100% { transform: translateX(200px) translateY(0); } }

.scn-dimmesdale-proud-eminence {
  background: linear-gradient(180deg, #2a2622 0%, #3a3430 20%, #4a423c 50%, #3a322e 80%, #1a1614 100%),
              radial-gradient(ellipse at 50% 0%, #5a524a 0%, transparent 70%);
}
.scn-dimmesdale-proud-eminence .nave-dark {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #1a1614 0%, #2a2420 40%, #3a322c 70%, #2a2420 100%);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
  animation: dpe-nave 16s ease-in-out infinite alternate;
}
.scn-dimmesdale-proud-eminence .pillar {
  position: absolute; top: 0; bottom: 15%; width: 18px;
  background: linear-gradient(90deg, #4a4038 0%, #5a5048 30%, #4a4038 60%, #332e28 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-dimmesdale-proud-eminence .pillar-l { left: 22%; }
.scn-dimmesdale-proud-eminence .pillar-r { right: 22%; }
.scn-dimmesdale-proud-eminence .light-shaft {
  position: absolute; top: 2%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(200,190,170,0.15) 0%, rgba(200,190,170,0.05) 40%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%);
  filter: blur(6px);
  animation: dpe-light 9s ease-in-out infinite alternate;
}
.scn-dimmesdale-proud-eminence .pulpit-high {
  position: absolute; bottom: 18%; left: 50%; width: 50px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1e 50%, #2a1a12 100%);
  border-radius: 8% 8% 4% 4% / 16% 16% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6), inset 0 2px 4px rgba(100,80,60,0.2);
}
.scn-dimmesdale-proud-eminence .figure-dimmesdale {
  position: absolute; bottom: 25%; left: 50%; width: 22px; height: 56px; transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1614 0%, #0e0c0a 60%, #060504 100%);
  border-radius: 50% 50% 40% 40% / 65% 60% 35% 40%;
  transform-origin: bottom center;
  animation: dpe-figure 6s ease-in-out infinite;
}
.scn-dimmesdale-proud-eminence .medallion {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 10px; transform: translateX(-50%);
  background: radial-gradient(circle, #b89870 0%, #8a7050 60%, #5a4a32 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(180,150,110,0.3);
  animation: dpe-medallion 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-proud-eminence .shadow-cross {
  position: absolute; bottom: 14%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(20,16,14,0.4) 0%, transparent 100%);
  clip-path: polygon(45% 0%, 55% 0%, 55% 40%, 100% 40%, 100% 50%, 55% 50%, 55% 100%, 45% 100%, 45% 50%, 0% 50%, 0% 40%, 45% 40%);
  filter: blur(3px);
  animation: dpe-cross 12s ease-in-out infinite alternate;
}
@keyframes dpe-nave { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dpe-light { 0% { opacity: 0.15; transform: translateX(0) scaleX(0.95); } 50% { opacity: 0.5; transform: translateX(8px) scaleX(1.05); } 100% { opacity: 0.2; transform: translateX(-4px) scaleX(0.98); } }
@keyframes dpe-figure { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 35% { transform: translateX(-50%) rotate(2deg) scaleY(1.03); } 65% { transform: translateX(-50%) rotate(-1.5deg) scaleY(0.97); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes dpe-medallion { 0% { transform: translateX(-50%) rotate(-2deg); opacity: 0.7; } 50% { transform: translateX(-50%) rotate(2deg) scale(1.1); opacity: 1; } 100% { transform: translateX(-50%) rotate(-1deg) scale(0.95); opacity: 0.75; } }
@keyframes dpe-cross { 0% { opacity: 0.3; transform: translateX(-50%) scaleY(0.9); } 50% { opacity: 0.6; transform: translateX(-50%) scaleY(1.1); } 100% { opacity: 0.35; transform: translateX(-50%) scaleY(0.95); } }

.scn-hester-stands-scaffold {
  background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 20%, #4a5a6a 50%, #3a4a5a 80%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 0%, #aabcce 0%, transparent 70%);
}
.scn-hester-stands-scaffold .sky-hard {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #aabcce 0%, #8a9aaa 50%, #6a7a8a 100%);
  animation: hss-sky 10s ease-in-out infinite alternate;
}
.scn-hester-stands-scaffold .sun-glare {
  position: absolute; top: 8%; left: 45%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(220,210,190,0.3) 0%, rgba(200,190,170,0.1) 40%, transparent 70%);
  border-radius: 50%; filter: blur(12px);
  animation: hss-glare 14s ease-in-out infinite alternate;
}
.scn-hester-stands-scaffold .scaffold-base {
  position: absolute; bottom: 18%; left: 50%; width: 100px; height: 16px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-hester-stands-scaffold .scaffold-post {
  position: absolute; bottom: 22%; left: 47.5%; width: 10px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 3px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-hester-stands-scaffold .figure-hester {
  position: absolute; bottom: 25%; left: 50%; width: 26px; height: 58px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2024 0%, #1a1216 50%, #0e0a0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hss-figure 5s ease-in-out infinite;
}
.scn-hester-stands-scaffold .scarlet-letter {
  position: absolute; bottom: 40%; left: 50%; width: 14px; height: 18px; transform: translateX(-50%);
  background: linear-gradient(135deg, #c8553d 0%, #a0461a 50%, #702243 100%);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  box-shadow: 0 0 20px 4px rgba(200,85,61,0.5), 0 0 40px 8px rgba(160,70,26,0.3);
  animation: hss-letter 3s ease-in-out infinite alternate;
}
.scn-hester-stands-scaffold .crowd-shadow {
  position: absolute; bottom: 8%; left: 5%; width: 90%; height: 18%;
  background: linear-gradient(180deg, rgba(30,40,50,0.5) 0%, rgba(20,30,40,0.7) 100%);
  border-radius: 50% 50% 0 0; filter: blur(8px);
  animation: hss-crowd 12s ease-in-out infinite alternate;
}
.scn-hester-stands-scaffold .soldier-spear {
  position: absolute; bottom: 22%; left: 26%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  transform: rotate(8deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: hss-spear 6s ease-in-out infinite alternate;
}
@keyframes hss-sky { 0% { opacity: 0.7; } 50% { opacity: 0.95; } 100% { opacity: 0.75; } }
@keyframes hss-glare { 0% { transform: translate(0, 0) scale(0.9); opacity: 0.3; } 50% { transform: translate(6px, -4px) scale(1.1); opacity: 0.7; } 100% { transform: translate(-3px, 2px) scale(0.95); opacity: 0.4; } }
@keyframes hss-figure { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 30% { transform: translateX(-50%) rotate(-1deg) scaleY(1.02); } 60% { transform: translateX(-50%) rotate(1.5deg) scaleY(0.98); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes hss-letter { 0% { transform: translateX(-50%) rotate(-2deg) scale(0.95); opacity: 0.8; } 50% { transform: translateX(-50%) rotate(2deg) scale(1.05); opacity: 1; box-shadow: 0 0 30px 6px rgba(200,85,61,0.6), 0 0 50px 12px rgba(160,70,26,0.4); } 100% { transform: translateX(-50%) rotate(0deg) scale(0.98); opacity: 0.85; } }
@keyframes hss-crowd { 0% { opacity: 0.5; transform: translateY(0) scaleY(0.95); } 50% { opacity: 0.8; transform: translateY(-2px) scaleY(1.05); } 100% { opacity: 0.6; transform: translateY(1px) scaleY(0.98); } }
@keyframes hss-spear { 0% { transform: rotate(6deg) translateX(0); } 50% { transform: rotate(10deg) translateX(2px); } 100% { transform: rotate(7deg) translateX(-1px); } }

/* scene 1: stranger-explains-captivity */
.scn-stranger-explains-captivity {
  background: linear-gradient(180deg, #ffe0b0 0%, #f8d090 40%, #c09570 100%), radial-gradient(ellipse at 80% 20%, #fff0d0 0%, transparent 50%);
}
.scn-stranger-explains-captivity .scn-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fffae0 0%, #f8d8a0 100%);
  animation: s1-sky 12s ease-in-out infinite alternate;
}
.scn-stranger-explains-captivity .scn-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a8db0 0%, #2c6a8a 50%, #1a4a6a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: s1-sea 8s ease-in-out infinite alternate;
}
.scn-stranger-explains-captivity .scn-sun {
  position: absolute; top: 20%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,192,64,0.6);
  animation: s1-sunpulse 4s ease-in-out infinite;
}
.scn-stranger-explains-captivity .scn-figure {
  position: absolute; bottom: 40%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s1-figure 3s ease-in-out infinite alternate;
}
.scn-stranger-explains-captivity .scn-chains {
  position: absolute; bottom: 38%; left: 35%; width: 12px; height: 40px;
  background: repeating-linear-gradient(0deg, #6a5a4a 0px, #6a5a4a 4px, transparent 4px, transparent 8px);
  transform-origin: top center;
  animation: s1-chains 2s ease-in-out infinite;
}
.scn-stranger-explains-captivity .scn-rocks {
  position: absolute; bottom: 42%; left: 20%; width: 80px; height: 30px;
  background: #5a4a3a; border-radius: 40% 60% 50% 50% / 80% 70% 60% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: s1-rocks 10s ease-in-out infinite;
}
.scn-stranger-explains-captivity .scn-cloud-a {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,0.8) 0%, rgba(255,255,240,0.2) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: s1-drift-a 40s linear infinite;
}
.scn-stranger-explains-captivity .scn-cloud-b {
  position: absolute; top: 8%; right: 15%; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: s1-drift-b 50s linear infinite reverse;
}
@keyframes s1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes s1-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes s1-sunpulse { 0% { transform: scale(1); box-shadow: 0 0 40px 15px rgba(255,192,64,0.5); } 50% { transform: scale(1.08); box-shadow: 0 0 80px 30px rgba(255,192,64,0.8); } 100% { transform: scale(1); box-shadow: 0 0 50px 20px rgba(255,192,64,0.6); } }
@keyframes s1-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(-3px) rotate(2deg); } }
@keyframes s1-chains { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes s1-rocks { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(1px); } 100% { transform: scale(1); } }
@keyframes s1-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes s1-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* scene 2: townsman-describes-offence */
.scn-townsman-describes-offence {
  background: linear-gradient(180deg, #ffe8c0 0%, #f0d0a0 40%, #c0a080 100%), radial-gradient(ellipse at 50% 100%, #fce0b0 0%, transparent 60%);
}
.scn-townsman-describes-offence .scn-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #fff2d0 0%, #ffe0b0 100%);
  animation: s2-sky 15s ease-in-out infinite alternate;
}
.scn-townsman-describes-offence .scn-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #7a6a5a 0%, #9a8a6a 100%);
  border-radius: 30% 70% 0 0 / 40% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-townsman-describes-offence .scn-building {
  position: absolute; bottom: 25%; left: 10%; width: 50%; height: 55%;
  background: linear-gradient(180deg, #c0a070 0%, #9a7a5a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
}
.scn-townsman-describes-offence .scn-platform {
  position: absolute; bottom: 15%; left: 45%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: s2-platform 6s ease-in-out infinite;
}
.scn-townsman-describes-offence .scn-townsman {
  position: absolute; bottom: 20%; left: 48%; width: 22px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-point 2.5s ease-in-out infinite;
}
.scn-townsman-describes-offence .scn-shadow {
  position: absolute; bottom: 15%; left: 46%; width: 40px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: s2-shadow 4s ease-in-out infinite;
}
.scn-townsman-describes-offence .scn-flag {
  position: absolute; bottom: 65%; left: 55%; width: 6px; height: 30px;
  background: #4a3a2a;
  transform-origin: bottom center;
  animation: s2-flag 3s ease-in-out infinite;
}
.scn-townsman-describes-offence .scn-flag::after {
  content: ''; position: absolute; top: 0; left: 5px; width: 20px; height: 12px;
  background: linear-gradient(180deg, #b02020 0%, #601010 100%);
  border-radius: 0 40% 40% 0;
  animation: s2-flagwave 3s ease-in-out infinite;
}
@keyframes s2-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s2-platform { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes s2-point { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-10px) rotate(-15deg); } 60% { transform: translateX(-10px) rotate(-15deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes s2-shadow { 0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(0.9); opacity: 0.6; } 100% { transform: scale(1); opacity: 0.4; } }
@keyframes s2-flag { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes s2-flagwave { 0% { transform: skewX(0deg); } 50% { transform: skewX(10deg); } 100% { transform: skewX(0deg); } }

/* scene 3: stranger-bitter-smile */
.scn-stranger-bitter-smile {
  background: linear-gradient(180deg, #d0b090 0%, #b09070 50%, #806050 100%), radial-gradient(ellipse at 60% 40%, #ffe0b0 0%, transparent 50%);
}
.scn-stranger-bitter-smile .scn-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b09880 0%, #907060 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.2);
}
.scn-stranger-bitter-smile .scn-window {
  position: absolute; top: 20%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #ffe0b0 0%, #f0c080 100%);
  border: 8px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(255,224,176,0.4), inset 0 0 20px rgba(255,224,176,0.3);
  animation: s3-window 5s ease-in-out infinite;
}
.scn-stranger-bitter-smile .scn-lightbeam {
  position: absolute; top: 25%; left: 22%; width: 60px; height: 180px;
  background: linear-gradient(180deg, rgba(255,224,176,0.3) 0%, rgba(255,224,176,0.05) 100%);
  transform: rotate(-5deg);
  filter: blur(8px);
  animation: s3-beam 7s ease-in-out infinite alternate;
}
.scn-stranger-bitter-smile .scn-profile {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
  transform: rotate(5deg);
  animation: s3-profile 4s ease-in-out infinite;
}
.scn-stranger-bitter-smile .scn-eye {
  position: absolute; bottom: 58%; left: 32%; width: 4px; height: 4px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.3);
  animation: s3-eye 3s ease-in-out infinite;
}
.scn-stranger-bitter-smile .scn-mouth {
  position: absolute; bottom: 42%; left: 30%; width: 12px; height: 4px;
  background: transparent;
  border-bottom: 3px solid #2a1a1a;
  border-radius: 0 0 50% 50%;
  transform: rotate(-10deg);
  animation: s3-mouth 2s ease-in-out infinite alternate;
}
.scn-stranger-bitter-smile .scn-shoulder {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: s3-shoulder 6s ease-in-out infinite;
}
@keyframes s3-window { 0% { box-shadow: 0 0 20px rgba(255,224,176,0.3); } 50% { box-shadow: 0 0 50px rgba(255,224,176,0.6); } 100% { box-shadow: 0 0 20px rgba(255,224,176,0.3); } }
@keyframes s3-beam { 0% { opacity: 0.4; transform: rotate(-5deg); } 50% { opacity: 0.7; transform: rotate(-8deg); } 100% { opacity: 0.4; transform: rotate(-5deg); } }
@keyframes s3-profile { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes s3-eye { 0% { opacity: 0.8; transform: scale(1); } 25% { opacity: 0.2; transform: scale(0.5); } 50% { opacity: 0.8; transform: scale(1); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes s3-mouth { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-5deg) scaleY(1.2); } 100% { transform: rotate(-10deg) scaleY(1); } }
@keyframes s3-shoulder { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }

/* scene 4: townsman-riddle */
.scn-townsman-riddle {
  background: linear-gradient(180deg, #ffe8c0 0%, #f0d0a0 30%, #c0a080 70%, #8a7050 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%);
}
.scn-townsman-riddle .scn-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fff5d0 0%, #ffe0b0 100%);
  animation: s4-sky 10s ease-in-out infinite alternate;
}
.scn-townsman-riddle .scn-scaffold {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: s4-scaffold 4s ease-in-out infinite;
}
.scn-townsman-riddle .scn-hester {
  position: absolute; bottom: 38%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: s4-hester 6s ease-in-out infinite alternate;
}
.scn-townsman-riddle .scn-crowd-a {
  position: absolute; bottom: 25%; left: 10%; width: 150px; height: 60px;
  background: repeating-linear-gradient(90deg, #2a1a1a 0px, #2a1a1a 12px, transparent 12px, transparent 18px);
  border-radius: 30% 30% 0 0;
  mask-image: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 70%);
  animation: s4-crowd-sway 8s ease-in-out infinite;
}
.scn-townsman-riddle .scn-crowd-b {
  position: absolute; bottom: 22%; right: 10%; width: 120px; height: 50px;
  background: repeating-linear-gradient(90deg, #1a1a1a 0px, #1a1a1a 10px, transparent 10px, transparent 16px);
  border-radius: 30% 30% 0 0;
  mask-image: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 70%);
  animation: s4-crowd-sway 10s ease-in-out infinite reverse;
}
.scn-townsman-riddle .scn-sun {
  position: absolute; top: 15%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(255,192,64,0.5);
  animation: s4-sunpulse 5s ease-in-out infinite;
}
.scn-townsman-riddle .scn-cloud {
  position: absolute; top: 10%; left: 5%; width: 90px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,240,0.7) 0%, rgba(255,255,240,0.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: s4-drift 45s linear infinite;
}
@keyframes s4-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes s4-scaffold { 0% { transform: translateX(-50%) skewX(0deg); } 50% { transform: translateX(-50%) skewX(1deg); } 100% { transform: translateX(-50%) skewX(0deg); } }
@keyframes s4-hester { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes s4-crowd-sway { 0% { transform: translateX(0); } 25% { transform: translateX(5px); } 50% { transform: translateX(0); } 75% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes s4-sunpulse { 0% { transform: scale(1); box-shadow: 0 0 40px 15px rgba(255,192,64,0.4); } 50% { transform: scale(1.06); box-shadow: 0 0 70px 25px rgba(255,192,64,0.7); } 100% { transform: scale(1); box-shadow: 0 0 50px 20px rgba(255,192,64,0.5); } }
@keyframes s4-drift { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

.scn-strangers-gaze {
  background: linear-gradient(180deg, #f5e6c8 0%, #c8a87c 40%, #8b6914 100%), radial-gradient(ellipse at 70% 30%, #fce9b6 0%, transparent 60%);
}
.scn-strangers-gaze .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b4d0e8 0%, #f5e6c8 100%); animation: sg-sky 10s ease-in-out infinite alternate; }
.scn-strangers-gaze .buildings { position:absolute; bottom:40%; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); animation: sg-buildings 15s ease-in-out infinite alternate; }
.scn-strangers-gaze .crowd-heads { position:absolute; bottom:20%; left:5%; right:5%; height:20%; display:flex; justify-content:space-around; flex-wrap:wrap; gap:4px; }
.scn-strangers-gaze .crowd-heads::before { content:''; display:block; width:100%; height:100%; background: radial-gradient(circle, #4a3a2a 0%, transparent 70%) repeat; background-size: 20px 20px; opacity:0.8; animation: sg-crowd 4s ease-in-out infinite; }
.scn-strangers-gaze .scaffold { position:absolute; bottom:25%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-strangers-gaze .hester-glow { position:absolute; bottom:35%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #fce9b6 0%, #c8a87c 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(252,233,182,0.6); animation: sg-glow 6s ease-in-out infinite alternate; }
.scn-strangers-gaze .stranger { position:absolute; bottom:10%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom; animation: sg-stranger 12s ease-in-out infinite; }
.scn-strangers-gaze .stranger-eyes { position:absolute; bottom:60%; left:22%; width:4px; height:4px; background: #fff; border-radius: 50%; box-shadow: 0 0 6px 2px #fff; animation: sg-eyes 4s ease-in-out infinite alternate; }
.scn-strangers-gaze .ground-shadow { position:absolute; bottom:0; left:10%; width:80%; height:5%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius: 50%; animation: sg-shadow 5s ease-in-out infinite; }

@keyframes sg-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sg-buildings { 0% { transform: scaleY(0.98); } 50% { transform: scaleY(1); } 100% { transform: scaleY(0.96); } }
@keyframes sg-crowd { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes sg-glow { 0% { opacity:0.7; box-shadow: 0 0 20px 8px rgba(252,233,182,0.5); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(252,233,182,0.8); } 100% { opacity:0.8; box-shadow: 0 0 25px 10px rgba(252,233,182,0.6); } }
@keyframes sg-stranger { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sg-eyes { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 50% { transform: translate(2px,-1px) scale(1.3); opacity:1; } 100% { transform: translate(-1px,1px) scale(0.8); opacity:0.6; } }
@keyframes sg-shadow { 0% { transform:scaleX(1); opacity:0.5; } 50% { transform:scaleX(0.95); opacity:0.7; } 100% { transform:scaleX(1); opacity:0.4; } }

.scn-gesture-to-lips {
  background: linear-gradient(180deg, #b4d0e8 0%, #e8d4b0 50%, #c8a87c 100%), radial-gradient(ellipse at 50% 30%, #fce9b6 0%, transparent 70%);
}
.scn-gesture-to-lips .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0daf0 0%, transparent 100%); animation: gl-sky 12s ease-in-out infinite alternate; }
.scn-gesture-to-lips .head-bg { position:absolute; top:15%; left:25%; width:50%; height:50%; background: radial-gradient(ellipse, #d4b894 0%, #a08060 100%); border-radius: 50%; filter: blur(8px); animation: gl-breath 6s ease-in-out infinite; }
.scn-gesture-to-lips .head { position:absolute; top:20%; left:30%; width:40%; height:45%; background: linear-gradient(180deg, #c8a87c 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); }
.scn-gesture-to-lips .hair { position:absolute; top:15%; left:28%; width:44%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 60% 60% 20% 20%; transform: rotate(-5deg); animation: gl-hair 8s ease-in-out infinite alternate; }
.scn-gesture-to-lips .arm { position:absolute; top:45%; left:50%; width:30%; height:10%; background: linear-gradient(180deg, #c8a87c 0%, #a08060 100%); border-radius: 30% 30% 10% 10%; transform-origin: left center; transform: rotate(-30deg); animation: gl-arm 4s ease-in-out infinite; }
.scn-gesture-to-lips .hand { position:absolute; top:45%; left:75%; width:12%; height:8%; background: radial-gradient(circle, #c8a87c 0%, #8b6914 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 8px 2px rgba(0,0,0,0.3); animation: gl-hand 4s ease-in-out infinite; }
.scn-gesture-to-lips .lips { position:absolute; top:55%; left:55%; width:6%; height:3%; background: #a0461a; border-radius: 50%; animation: gl-lips 2s ease-in-out infinite; }
.scn-gesture-to-lips .eyes { position:absolute; top:30%; left:40%; width:8%; height:4%; background: #2a1a0a; border-radius: 50% 50% 30% 30%; box-shadow: 0 0 4px 1px rgba(42,26,10,0.5); animation: gl-eyes 3s ease-in-out infinite alternate; }
.scn-gesture-to-lips .shadow { position:absolute; bottom:5%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); border-radius: 50%; animation: gl-shadow 5s ease-in-out infinite; }

@keyframes gl-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes gl-breath { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(0.97); } }
@keyframes gl-hair { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes gl-arm { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-25deg) translateX(2px); } 100% { transform: rotate(-32deg) translateX(-1px); } }
@keyframes gl-hand { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,-1px) rotate(5deg); } 100% { transform: translate(-1px,1px) rotate(-3deg); } }
@keyframes gl-lips { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(0.9); opacity:0.8; } }
@keyframes gl-eyes { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px,-1px) scale(1.1); } 100% { transform: translate(0,0) scale(0.9); } }
@keyframes gl-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(0.9); } 100% { opacity:0.4; transform: scaleX(1.05); } }

.scn-stranger-asks-identity {
  background: linear-gradient(180deg, #b4d0e8 0%, #d4b894 30%, #a08060 70%, #5a4a3a 100%), radial-gradient(ellipse at 60% 40%, #fce9b6 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-stranger-asks-identity .bg-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b4d0e8 0%, #e8d4b0 100%); animation: sa-sky 14s ease-in-out infinite alternate; }
.scn-stranger-asks-identity .street { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0; animation: sa-street 8s ease-in-out infinite; }
.scn-stranger-asks-identity .building-left { position:absolute; bottom:30%; left:0; width:30%; height:50%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 10% 40% 0 10%; box-shadow: inset -8px 0 15px rgba(0,0,0,0.4); }
.scn-stranger-asks-identity .building-right { position:absolute; bottom:30%; right:0; width:35%; height:60%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 40% 10% 10% 0; box-shadow: inset 8px 0 15px rgba(0,0,0,0.4); }
.scn-stranger-asks-identity .stranger { position:absolute; bottom:15%; left:25%; width:35px; height:75px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(5deg); animation: sa-stand 10s ease-in-out infinite; }
.scn-stranger-asks-identity .townsman { position:absolute; bottom:12%; right:30%; width:40px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-3deg); animation: sa-stand2 11s ease-in-out infinite; }
.scn-stranger-asks-identity .hand-on-shoulder { position:absolute; bottom:55%; left:38%; width:12px; height:6px; background: #2a1a0a; border-radius: 30% 30% 10% 10%; transform: rotate(20deg); animation: sa-hand 4s ease-in-out infinite; }
.scn-stranger-asks-identity .stranger-arm { position:absolute; bottom:50%; left:35%; width:30%; height:6px; background: linear-gradient(90deg, #2a1a0a 0%, #1a0a0a 100%); border-radius: 10%; transform: rotate(-10deg); animation: sa-arm 5s ease-in-out infinite; }
.scn-stranger-asks-identity .shadows { position:absolute; bottom:5%; left:15%; width:70%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%); animation: sa-shadows 7s ease-in-out infinite; }

@keyframes sa-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes sa-street { 0% { transform: scaleY(0.98); } 50% { transform: scaleY(1); } 100% { transform: scaleY(0.96); } }
@keyframes sa-stand { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(4deg) translateY(1px); } }
@keyframes sa-stand2 { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-4deg) translateY(2px); } }
@keyframes sa-hand { 0% { transform: rotate(20deg) translate(0,0); } 50% { transform: rotate(25deg) translate(2px,-1px); } 100% { transform: rotate(18deg) translate(-1px,1px); } }
@keyframes sa-arm { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-8deg) scaleX(1.1); } 100% { transform: rotate(-12deg) scaleX(0.9); } }
@keyframes sa-shadows { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-townsman-replies {
  background: linear-gradient(180deg, #b4d0e8 0%, #d4b894 40%, #8b6914 80%, #5a4a3a 100%), radial-gradient(ellipse at 30% 50%, #fce9b6 0%, transparent 70%);
}
.scn-townsman-replies .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c0daf0 0%, #e8d4b0 100%); animation: tr-sky 16s ease-in-out infinite alternate; }
.scn-townsman-replies .church-bg { position:absolute; bottom:30%; left:10%; width:30%; height:60%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset -4px 0 10px rgba(0,0,0,0.4); }
.scn-townsman-replies .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0; animation: tr-ground 10s ease-in-out infinite; }
.scn-townsman-replies .townsman { position:absolute; bottom:12%; left:20%; width:45px; height:85px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20%; transform: rotate(-2deg); animation: tr-stand 9s ease-in-out infinite; }
.scn-townsman-replies .stranger { position:absolute; bottom:14%; left:45%; width:38px; height:78px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(3deg); animation: tr-stranger 12s ease-in-out infinite; }
.scn-townsman-replies .savage-companion { position:absolute; bottom:10%; left:68%; width:35px; height:70px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 15% 15%; transform: rotate(-4deg); animation: tr-companion 14s ease-in-out infinite; }
.scn-townsman-replies .shadows { position:absolute; bottom:3%; left:10%; right:10%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%); animation: tr-shadows 6s ease-in-out infinite; }
.scn-townsman-replies .townsman-arm { position:absolute; bottom:55%; left:25%; width:25%; height:5%; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10%; transform: rotate(-20deg); animation: tr-arm 5s ease-in-out infinite; }
.scn-townsman-replies .curiosity-gaze { position:absolute; bottom:65%; left:22%; width:6px; height:6px; background: #fff; border-radius: 50%; box-shadow: 0 0 8px 3px #fff; animation: tr-gaze 3s ease-in-out infinite alternate; }

@keyframes tr-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes tr-ground { 0% { transform: scaleY(0.98); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.96); } }
@keyframes tr-stand { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(1px); } }
@keyframes tr-stranger { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(4deg) translateY(2px); } }
@keyframes tr-companion { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(2px); } }
@keyframes tr-shadows { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes tr-arm { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.2); } 100% { transform: rotate(-22deg) scaleX(0.9); } }
@keyframes tr-gaze { 0% { transform: translate(0,0) scale(1); opacity:0.6; } 50% { transform: translate(3px,-2px) scale(1.3); opacity:1; } 100% { transform: translate(-2px,1px) scale(0.8); opacity:0.7; } }

.scn-pearl-demands-answer {
  background: linear-gradient(180deg, #87CEEB 0%, #FFEFD5 50%, #FFD700 100%),
              radial-gradient(ellipse at 50% 90%, #FFD700 0%, transparent 70%);
}
.scn-pearl-demands-answer .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%); animation: pda-sky 12s ease-in-out infinite alternate; }
.scn-pearl-demands-answer .sun { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.4); animation: pda-sun 4s ease-in-out infinite; }
.scn-pearl-demands-answer .cloud-a { position:absolute; top:12%; left:10%; width:90px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(5px); animation: pda-drift 30s linear infinite; }
.scn-pearl-demands-answer .cloud-b { position:absolute; top:20%; right:5%; width:70px; height:16px; 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: pda-drift 40s linear infinite reverse; }
.scn-pearl-demands-answer .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7CFC00 0%, #228B22 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; animation: pda-ground 10s ease-in-out infinite; }
.scn-pearl-demands-answer .pearl { position:absolute; bottom:32%; left:40%; width:22px; height:38px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pda-pearl 3s ease-in-out infinite; }
.scn-pearl-demands-answer .hester { position:absolute; bottom:30%; left:55%; width:24px; height:40px; background: linear-gradient(180deg, #C8553D 0%, #A0461A 100%); border-radius: 45% 55% 45% 45% / 50% 50% 50% 50%; transform-origin: bottom center; animation: pda-hester 5s ease-in-out infinite; }
.scn-pearl-demands-answer .question { position:absolute; top:30%; left:48%; width:14px; height:14px; background: radial-gradient(circle, #FFF 0%, #FFD700 70%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,215,0,0.3); animation: pda-question 2s ease-in-out infinite; }
@keyframes pda-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pda-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes pda-drift { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes pda-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pda-pearl { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(3deg) } 60% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes pda-hester { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes pda-question { 0%,100% { transform: scale(1) rotate(0) } 25% { transform: scale(1.2) rotate(10deg) } 50% { transform: scale(1) rotate(-10deg) } 75% { transform: scale(1.1) rotate(5deg) } }

.scn-pearl-demon-offspring {
  background: linear-gradient(180deg, #1a1a2e 0%, #2d1b3e 40%, #3a1a2a 100%),
              radial-gradient(ellipse at 50% 80%, #2d1b3e 0%, transparent 70%);
}
.scn-pearl-demon-offspring .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); animation: pdo-wall 15s ease-in-out infinite alternate; }
.scn-pearl-demon-offspring .window { position:absolute; top:15%; left:60%; width:40px; height:50px; background: #3a4a6a; border:2px solid #5a4a3a; border-radius:4px; box-shadow: inset 0 0 20px rgba(100,150,200,0.3); animation: pdo-window 6s ease-in-out infinite; }
.scn-pearl-demon-offspring .candle { position:absolute; top:50%; left:30%; width:8px; height:20px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); border-radius: 2px 2px 4px 4px; animation: pdo-candle 2s ease-in-out infinite; }
.scn-pearl-demon-offspring .candle-glow { position:absolute; top:45%; left:28%; width:20px; height:20px; background: radial-gradient(circle, #FFD700 0%, rgba(255,215,0,0.2) 70%); border-radius:50%; filter: blur(6px); animation: pdo-glow 1.5s ease-in-out infinite alternate; }
.scn-pearl-demon-offspring .shadow-pearl { position:absolute; bottom:25%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.4) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pdo-shadow 8s ease-in-out infinite; }
.scn-pearl-demon-offspring .shadow-hester { position:absolute; bottom:28%; left:55%; width:34px; height:65px; background: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 100%); border-radius: 45% 55% 45% 45% / 50% 50% 50% 50%; transform-origin: bottom center; animation: pdo-shadow 9s ease-in-out infinite reverse; }
.scn-pearl-demon-offspring .rat { position:absolute; bottom:15%; left:20%; width:12px; height:8px; background: #5e4a3a; border-radius: 50% 50% 40% 40%; animation: pdo-rat 4s ease-in-out infinite; }
@keyframes pdo-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pdo-window { 0% { box-shadow: inset 0 0 10px rgba(100,150,200,0.2) } 50% { box-shadow: inset 0 0 30px rgba(100,150,200,0.5) } 100% { box-shadow: inset 0 0 15px rgba(100,150,200,0.3) } }
@keyframes pdo-candle { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } }
@keyframes pdo-glow { 0% { transform: scale(1); opacity:0.6 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(0.9); opacity:0.7 } }
@keyframes pdo-shadow { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes pdo-rat { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }

.scn-governor-hall-arrival {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #90EE90 100%),
              radial-gradient(ellipse at 50% 100%, #90EE90 0%, transparent 80%);
}
.scn-governor-hall-arrival .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #ADD8E6 0%, transparent 100%); animation: gha-sky 20s ease-in-out infinite alternate; }
.scn-governor-hall-arrival .mansion { position:absolute; bottom:35%; left:20%; width:200px; height:130px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.2); animation: gha-mansion 15s ease-in-out infinite; }
.scn-governor-hall-arrival .door { position:absolute; bottom:35%; left:42%; width:30px; height:50px; background: #6B4226; border-radius: 4px 4px 2px 2px; animation: gha-door 10s ease-in-out infinite; }
.scn-governor-hall-arrival .path { position:absolute; bottom:20%; left:25%; width:80px; height:40px; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 20% 20% 0 0; transform: skewX(-10deg); animation: gha-path 12s ease-in-out infinite; }
.scn-governor-hall-arrival .tree-l { position:absolute; bottom:40%; left:8%; width:30px; height:80px; background: linear-gradient(180deg, #228B22 0%, #006400 100%); border-radius: 20% 20% 0 0; animation: gha-tree 6s ease-in-out infinite; }
.scn-governor-hall-arrival .tree-r { position:absolute; bottom:40%; right:8%; width:30px; height:80px; background: linear-gradient(180deg, #2E8B57 0%, #006400 100%); border-radius: 20% 20% 0 0; animation: gha-tree 7s ease-in-out infinite reverse; }
.scn-governor-hall-arrival .hester { position:absolute; bottom:28%; left:35%; width:20px; height:34px; background: linear-gradient(180deg, #C8553D 0%, #A0461A 100%); border-radius: 45% 55% 45% 45% / 50% 50% 50% 50%; transform-origin: bottom center; animation: gha-walk 4s ease-in-out infinite; }
.scn-governor-hall-arrival .gloves { position:absolute; bottom:30%; left:39%; width:6px; height:10px; background: #FFF8DC; border-radius: 4px; box-shadow: 0 0 4px rgba(255,248,220,0.5); animation: gha-gloves 4s ease-in-out infinite; }
@keyframes gha-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gha-mansion { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gha-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes gha-path { 0% { transform: skewX(-10deg) translateY(0) } 50% { transform: skewX(-12deg) translateY(-1px) } 100% { transform: skewX(-10deg) translateY(0) } }
@keyframes gha-tree { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes gha-walk { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(4px) translateY(0) rotate(0) } 75% { transform: translateX(6px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(8px) translateY(0) rotate(0) } }
@keyframes gha-gloves { 0% { transform: translate(0,0) } 50% { transform: translate(1px, -2px) } 100% { transform: translate(0,0) } }

.scn-hester-fears-taking-pearl {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 50%, #FFD700 100%),
              radial-gradient(ellipse at 50% 90%, #FFD700 0%, transparent 60%);
}
.scn-hester-fears-taking-pearl .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #A2D9CE 0%, transparent 100%); animation: hft-sky 3s ease-in-out infinite alternate; }
.scn-hester-fears-taking-pearl .harsh-sun { position:absolute; top:10%; left:75%; width:50px; height:50px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 60%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,215,0,0.6); animation: hft-sun 1s ease-in-out infinite; }
.scn-hester-fears-taking-pearl .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7CFC00 0%, #228B22 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; animation: hft-ground 0.8s ease-in-out infinite; }
.scn-hester-fears-taking-pearl .hester { position:absolute; bottom:30%; left:45%; width:22px; height:40px; background: linear-gradient(180deg, #C8553D 0%, #A0461A 100%); border-radius: 45% 55% 45% 45% / 50% 50% 50% 50%; transform-origin: bottom center; animation: hft-tremble 0.3s ease-in-out infinite; }
.scn-hester-fears-taking-pearl .pearl { position:absolute; bottom:32%; left:40%; width:18px; height:34px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hft-tremble 0.25s ease-in-out infinite reverse; }
.scn-hester-fears-taking-pearl .door { position:absolute; bottom:30%; left:55%; width:24px; height:50px; background: #6B4226; border-radius:4px; transform-origin: left center; animation: hft-door 2s ease-in-out infinite; }
.scn-hester-fears-taking-pearl .shadow { position:absolute; bottom:0; left:30%; width:100px; height:50px; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.2) 100%); filter: blur(8px); animation: hft-shadow 1s ease-in-out infinite alternate; }
.scn-hester-fears-taking-pearl .fear-tremor { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(255,0,0,0.1) 0%, transparent 70%); pointer-events:none; animation: hft-tremor 0.4s ease-in-out infinite; }
@keyframes hft-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes hft-sun { 0% { transform: scale(1) } 50% { transform: scale(1.15) } 100% { transform: scale(0.95) } }
@keyframes hft-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hft-tremble { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(1px,-1px) rotate(1deg) } 50% { transform: translate(-1px,1px) rotate(-1deg) } 75% { transform: translate(0,0) rotate(0) } 100% { transform: translate(1px,-1px) rotate(1deg) } }
@keyframes hft-door { 0% { transform: rotate(0) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(0) } }
@keyframes hft-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(2px) scaleX(0.9) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes hft-tremor { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* ===== flickering-sunshine ===== */
.scn-flickering-sunshine {
  background: linear-gradient(180deg, #3a3a4a 0%, #5a5a6a 40%, #7a7a8a 100%), radial-gradient(ellipse at 50% 100%, #6a6a7a 0%, transparent 60%);
}
.scn-flickering-sunshine .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a4a5a 0%, #8a8a9a 100%); animation: flk-sky 15s ease-in-out infinite alternate; }
.scn-flickering-sunshine .cloud-a { position:absolute; top:12%; left:-10%; width:120px; height:28px; background: linear-gradient(180deg, rgba(200,200,210,.4) 0%, rgba(200,200,210,.05) 100%); border-radius:50%; filter:blur(8px); animation: flk-drift-a 40s linear infinite; }
.scn-flickering-sunshine .cloud-b { position:absolute; top:25%; right:-8%; width:90px; height:20px; background: linear-gradient(180deg, rgba(200,200,210,.3) 0%, rgba(200,200,210,.02) 100%); border-radius:50%; filter:blur(6px); animation: flk-drift-b 55s linear infinite reverse; }
.scn-flickering-sunshine .sunbeam { position:absolute; top:10%; left:30%; width:180px; height:80%; background: linear-gradient(135deg, rgba(255,240,200,.6) 0%, rgba(255,240,200,.1) 40%, transparent 70%); clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%); animation: flk-beam 5s ease-in-out infinite alternate; }
.scn-flickering-sunshine .path { position:absolute; bottom:15%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: flk-path 8s ease-in-out infinite; }
.scn-flickering-sunshine .trees { position:absolute; bottom:35%; left:5%; right:5%; height:18%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; clip-path: polygon(0% 100%, 8% 20%, 16% 100%, 28% 30%, 38% 100%, 50% 10%, 62% 100%, 74% 25%, 84% 100%, 100% 20%); animation: flk-trees 12s ease-in-out infinite alternate; }
.scn-flickering-sunshine .figure-distant { position:absolute; bottom:15%; left:45%; width:10px; height:20px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: flk-walk 4s ease-in-out infinite; }

@keyframes flk-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes flk-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(130vw) } }
@keyframes flk-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-140vw) } }
@keyframes flk-beam { 0% { opacity:.3; transform: scale(1) translateX(0) } 50% { opacity:.8; transform: scale(1.1) translateX(20px) } 100% { opacity:.4; transform: scale(0.9) translateX(-10px) } }
@keyframes flk-path { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes flk-trees { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes flk-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(15px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(30px) translateY(0) rotate(-2deg) } 75% { transform: translateX(45px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(60px) translateY(0) rotate(0) } }

/* ===== sunshine-runs-away ===== */
.scn-sunshine-runs-away {
  background: linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 50%, #6a6a7a 100%), radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 70%);
}
.scn-sunshine-runs-away .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4a 0%, #7a7a8a 100%); animation: sra-sky 20s ease-in-out infinite alternate; }
.scn-sunshine-runs-away .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-sunshine-runs-away .mother { position:absolute; bottom:18%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sra-mother 6s ease-in-out infinite; }
.scn-sunshine-runs-away .child { position:absolute; bottom:20%; left:60%; width:24px; height:42px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sra-child 3s ease-in-out infinite; }
.scn-sunshine-runs-away .sunbeam-patch { position:absolute; bottom:22%; left:70%; width:40px; height:20px; background: radial-gradient(circle at 50% 50%, rgba(255,240,200,.7) 0%, rgba(255,240,200,.2) 60%, transparent 100%); border-radius:50%; animation: sra-patch 4s ease-in-out infinite alternate; }
.scn-sunshine-runs-away .shadow { position:absolute; bottom:20%; left:30%; width:60px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: sra-shadow 6s ease-in-out infinite; }
.scn-sunshine-runs-away .tree-back { position:absolute; bottom:35%; left:10%; width:50px; height:100px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; clip-path: polygon(50% 0%, 60% 20%, 100% 100%, 0% 100%); filter: blur(2px); animation: sra-tree 15s ease-in-out infinite alternate; }

@keyframes sra-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.65 } }
@keyframes sra-mother { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sra-child { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(16px) translateY(0) rotate(-3deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(3deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes sra-patch { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.8; transform: translateX(20px) } 100% { opacity:0.4; transform: translateX(40px) } }
@keyframes sra-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes sra-tree { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }

/* ===== will-it-come-of-itself ===== */
.scn-will-it-come-of-itself {
  background: linear-gradient(180deg, #2e2e3e 0%, #4e4e5e 45%, #6e6e7e 100%), radial-gradient(ellipse at 50% 100%, #5e5e6e 0%, transparent 65%);
}
.scn-will-it-come-of-itself .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3e3e4e 0%, #7e7e8e 100%); animation: wco-sky 18s ease-in-out infinite alternate; }
.scn-will-it-come-of-itself .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4e4e3e 0%, #2e2e1e 100%); border-radius: 20% 80% 0 0 / 40% 90% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.5); }
.scn-will-it-come-of-itself .mother { position:absolute; bottom:20%; left:30%; width:38px; height:76px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wco-mother 8s ease-in-out infinite; }
.scn-will-it-come-of-itself .child-still { position:absolute; bottom:22%; left:55%; width:22px; 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: wco-child 6s ease-in-out infinite; }
.scn-will-it-come-of-itself .sunbeam-distant { position:absolute; top:15%; left:70%; width:60px; height:200px; background: linear-gradient(135deg, rgba(255,240,200,.5) 0%, rgba(255,240,200,.05) 100%); clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%); animation: wco-beam 7s ease-in-out infinite alternate; }
.scn-will-it-come-of-itself .path { position:absolute; bottom:15%; left:40%; width:20%; height:15%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; box-shadow: inset 0 6px 15px rgba(0,0,0,.4); animation: wco-path 10s ease-in-out infinite; }
.scn-will-it-come-of-itself .cloud-c { position:absolute; top:20%; left:-5%; width:100px; height:24px; background: linear-gradient(180deg, rgba(200,200,210,.35) 0%, rgba(200,200,210,.02) 100%); border-radius:50%; filter:blur(7px); animation: wco-drift-c 50s linear infinite; }

@keyframes wco-sky { 0% { opacity:0.65 } 50% { opacity:0.95 } 100% { opacity:0.7 } }
@keyframes wco-mother { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes wco-child { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 50% { transform: translateX(0) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes wco-beam { 0% { opacity:0.2; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.3; transform: scale(0.95) } }
@keyframes wco-path { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes wco-drift-c { 0% { transform: translateX(-50px) } 100% { transform: translateX(130vw) } }

/* ===== light-lingers-playmate ===== */
.scn-light-lingers-playmate {
  background: linear-gradient(180deg, #2a2a3a 0%, #5a5a6a 50%, #8a8a9a 100%), radial-gradient(ellipse at 50% 100%, #6a6a7a 0%, transparent 60%);
}
.scn-light-lingers-playmate .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4a 0%, #8a8a9a 100%); animation: llp-sky 25s ease-in-out infinite alternate; }
.scn-light-lingers-playmate .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-light-lingers-playmate .circle-of-light { position:absolute; bottom:22%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: radial-gradient(circle at 50% 50%, rgba(255,245,210,.6) 0%, rgba(255,245,210,.1) 50%, transparent 70%); border-radius:50%; animation: llp-circle 12s ease-in-out infinite alternate; }
.scn-light-lingers-playmate .child-in-circle { position:absolute; bottom:22%; left:50%; width:22px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: llp-child 8s ease-in-out infinite; }
.scn-light-lingers-playmate .mother-approach { position:absolute; bottom:20%; left:30%; width:36px; height:72px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: llp-mother 15s ease-in-out infinite; }
.scn-light-lingers-playmate .gleam-a { position:absolute; bottom:40%; left:45%; width:4px; height:4px; background:#f0e0c0; border-radius:50%; box-shadow: 0 0 8px 2px rgba(240,224,192,.6); animation: llp-gleam 4s ease-in-out infinite; }
.scn-light-lingers-playmate .gleam-b { position:absolute; bottom:50%; left:55%; width:3px; height:3px; background:#f0e0c0; border-radius:50%; box-shadow: 0 0 6px 2px rgba(240,224,192,.5); animation: llp-gleam 5s ease-in-out infinite reverse; }
.scn-light-lingers-playmate .cloud-d { position:absolute; top:15%; left:-8%; width:110px; height:25px; background: linear-gradient(180deg, rgba(200,200,210,.4) 0%, rgba(200,200,210,.02) 100%); border-radius:50%; filter:blur(7px); animation: llp-drift-d 60s linear infinite; }

@keyframes llp-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.65 } }
@keyframes llp-circle { 0% { opacity:0.5; transform: translateX(-50%) scale(1) } 50% { opacity:0.8; transform: translateX(-50%) scale(1.05) } 100% { opacity:0.55; transform: translateX(-50%) scale(0.95) } }
@keyframes llp-child { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes llp-mother { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(10px) translateY(-1px) } 100% { transform: translateX(20px) translateY(0) } }
@keyframes llp-gleam { 0% { opacity:0; transform: translateY(10px) } 50% { opacity:1; transform: translateY(-5px) } 100% { opacity:0; transform: translateY(10px) } }
@keyframes llp-drift-d { 0% { transform: translateX(-50px) } 100% { transform: translateX(140vw) } }

.scn-mistress-hibbins-forest-hint {
  background:
    linear-gradient(180deg, #3a5a3a 0%, #5a7a4a 30%, #8a9a5a 60%, #4a5a2a 100%),
    radial-gradient(ellipse at 50% 0%, #c8b88a 0%, transparent 60%);
  filter: contrast(1.1);
}
.scn-mistress-hibbins-forest-hint .forest-floor {
  position: absolute; inset: 55% 0 0 0;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 70% 30% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.6);
}
.scn-mistress-hibbins-forest-hint .dappled-light {
  position: absolute; inset: 0 0 0 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(255,230,180,.25) 0%, transparent 50%),
              radial-gradient(ellipse at 70% 30%, rgba(255,230,150,.15) 0%, transparent 40%);
  animation: mhf-dapple 8s ease-in-out infinite alternate;
}
.scn-mistress-hibbins-forest-hint .tree-a {
  position: absolute; bottom: 20%; left: 5%;
  width: 30px; height: 90%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10%;
  transform: skewX(-5deg);
  box-shadow: -10px 0 20px rgba(0,0,0,.5);
  animation: mhf-sway 12s ease-in-out infinite;
}
.scn-mistress-hibbins-forest-hint .tree-b {
  position: absolute; bottom: 15%; right: 10%;
  width: 25px; height: 85%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 10% 10% 5% 5%;
  transform: skewX(8deg);
  box-shadow: 10px 0 15px rgba(0,0,0,.4);
  animation: mhf-sway 15s ease-in-out infinite reverse;
}
.scn-mistress-hibbins-forest-hint .fiddler {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: mhf-fiddle 2s ease-in-out infinite;
}
.scn-mistress-hibbins-forest-hint .fiddler::after {
  content: ''; position: absolute; top: 30%; left: 60%;
  width: 8px; height: 20px;
  background: #2a1a0a;
  border-radius: 20% 50% 20% 50%;
  transform: rotate(15deg);
  animation: mhf-bow 1s ease-in-out infinite alternate;
}
.scn-mistress-hibbins-forest-hint .dancer-1 {
  position: absolute; bottom: 35%; left: 30%;
  width: 18px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: mhf-dance 3s ease-in-out infinite;
}
.scn-mistress-hibbins-forest-hint .dancer-2 {
  position: absolute; bottom: 38%; right: 25%;
  width: 16px; height: 36px;
  background: radial-gradient(ellipse at 50% 30%, #3a4a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: mhf-dance 3.7s ease-in-out infinite 0.5s;
}
.scn-mistress-hibbins-forest-hint .leaf-1 {
  position: absolute; top: 15%; left: 20%;
  width: 12px; height: 8px;
  background: #6a8a3a;
  border-radius: 50% 0% 50% 0%;
  filter: blur(1px);
  animation: mhf-leaf-fall 6s linear infinite;
}
.scn-mistress-hibbins-forest-hint .leaf-2 {
  position: absolute; top: 10%; right: 30%;
  width: 10px; height: 6px;
  background: #8a6a2a;
  border-radius: 0% 50% 0% 50%;
  filter: blur(1px);
  animation: mhf-leaf-fall 8s linear infinite 2s;
}
@keyframes mhf-dapple {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: .7; transform: scale(.98); }
}
@keyframes mhf-sway {
  0%, 100% { transform: skewX(-5deg) rotate(0deg); }
  50% { transform: skewX(-3deg) rotate(1deg); }
}
@keyframes mhf-fiddle {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
}
@keyframes mhf-bow {
  0% { transform: rotate(10deg); }
  100% { transform: rotate(25deg); }
}
@keyframes mhf-dance {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-8px) rotate(5deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
  75% { transform: translateY(-10px) rotate(8deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mhf-leaf-fall {
  0% { transform: translateY(0) rotate(0deg) translateX(0); opacity: 1; }
  50% { transform: translateY(40vh) rotate(180deg) translateX(20px); opacity: .7; }
  100% { transform: translateY(80vh) rotate(360deg) translateX(-10px); opacity: 0; }
}

.scn-hester-replies-hibbins {
  background:
    linear-gradient(180deg, #6a7a4a 0%, #8a9a5a 40%, #5a6a3a 100%),
    radial-gradient(ellipse at 50% 0%, #e8d8a8 0%, transparent 70%);
}
.scn-hester-replies-hibbins .sun-burst {
  position: absolute; inset: 0 0 0 0;
  background: radial-gradient(ellipse at 70% 20%, rgba(255,230,160,.5) 0%, transparent 60%);
  animation: hrh-flash 6s ease-in-out infinite alternate;
}
.scn-hester-replies-hibbins .shadow-veil {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, rgba(20,15,10,.4) 0%, transparent 40%, rgba(20,15,10,.3) 100%);
  animation: hrh-veil 9s ease-in-out infinite;
}
.scn-hester-replies-hibbins .hester-hands {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #d4c4a4 0%, #9a8a6a 60%, #4a3a2a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: hrh-clasp 3s ease-in-out infinite alternate;
}
.scn-hester-replies-hibbins .hester-hands::before {
  content: ''; position: absolute; top: 20%; left: 20%;
  width: 8px; height: 18px;
  background: #8a7a5a;
  border-radius: 30%;
  transform: rotate(-20deg);
  animation: hrh-finger 2s ease-in-out infinite alternate;
}
.scn-hester-replies-hibbins .hester-hands::after {
  content: ''; position: absolute; top: 25%; right: 20%;
  width: 8px; height: 16px;
  background: #8a7a5a;
  border-radius: 30%;
  transform: rotate(20deg);
  animation: hrh-finger 2.3s ease-in-out infinite alternate 0.3s;
}
.scn-hester-replies-hibbins .hester-shoulder {
  position: absolute; bottom: 35%; left: 40%;
  width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  filter: blur(2px);
  animation: hrh-breathe 4s ease-in-out infinite;
}
.scn-hester-replies-hibbins .pearl-peek {
  position: absolute; bottom: 30%; right: 25%;
  width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #c8b88a 0%, #7a6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: hrh-peek 5s ease-in-out infinite;
}
.scn-hester-replies-hibbins .branch-a {
  position: absolute; top: 10%; left: 0%;
  width: 60%; height: 8px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 20% 20% 40%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: hrh-branch 7s ease-in-out infinite alternate;
}
.scn-hester-replies-hibbins .branch-b {
  position: absolute; top: 5%; right: 0%;
  width: 50%; height: 6px;
  background: linear-gradient(270deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 40% 40% 20%;
  transform: rotate(10deg);
  box-shadow: 0 3px 6px rgba(0,0,0,.3);
  animation: hrh-branch 9s ease-in-out infinite alternate 1s;
}
.scn-hester-replies-hibbins .dust-mote {
  position: absolute; top: 40%; left: 60%;
  width: 4px; height: 4px;
  background: rgba(255,230,180,.8);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,230,180,.4);
  animation: hrh-dust 8s linear infinite;
}
@keyframes hrh-flash {
  0% { opacity: .7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: .8; transform: scale(.98); }
}
@keyframes hrh-veil {
  0%, 100% { opacity: .5; }
  50% { opacity: .8; }
}
@keyframes hrh-clasp {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-3px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0) scale(.98); }
}
@keyframes hrh-finger {
  0% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(-15deg) translateY(-3px); }
}
@keyframes hrh-breathe {
  0%, 100% { transform: scale(1); opacity: .9; }
  50% { transform: scale(1.02); opacity: 1; }
}
@keyframes hrh-peek {
  0%, 100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-5px) translateY(-2px); }
}
@keyframes hrh-branch {
  0% { transform: rotate(-15deg) scaleX(1); }
  50% { transform: rotate(-12deg) scaleX(1.02); }
  100% { transform: rotate(-18deg) scaleX(.98); }
}
@keyframes hrh-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translate(-30px, -50px) scale(0); opacity: 0; }
}

.scn-hibbins-black-man {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 30%, #8a7a4a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #c8a860 0%, transparent 60%);
}
.scn-hibbins-black-man .clearing-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a7a4a 0%, #c8b860 40%, #e8d880 100%);
  clip-path: ellipse(80% 60% at 50% 40%);
  animation: hbm-sky 12s ease-in-out infinite alternate;
}
.scn-hibbins-black-man .dark-woods {
  position: absolute; inset: 0 0 0 0;
  background:
    linear-gradient(180deg, transparent 0%, rgba(30,20,10,.6) 100%),
    repeating-linear-gradient(90deg, #1a0a00 0px, #1a0a00 15px, transparent 15px, transparent 30px);
  opacity: .7;
  animation: hbm-woods 20s ease-in-out infinite;
}
.scn-hibbins-black-man .black-figure {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 90px;
  background: radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, #050505 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: 0 10px 30px rgba(0,0,0,.8), 0 0 60px rgba(0,0,0,.4);
  animation: hbm-figure 5s ease-in-out infinite;
}
.scn-hibbins-black-man .black-figure::after {
  content: ''; position: absolute; top: -15%; left: 50%; transform: translateX(-50%);
  width: 0; height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-bottom: 30px solid #0a0a0a;
  filter: drop-shadow(0 -4px 6px rgba(0,0,0,.5));
}
.scn-hibbins-black-man .garland-left {
  position: absolute; bottom: 45%; left: 35%;
  width: 30px; height: 15px;
  background: linear-gradient(90deg, #4a6a2a, #6a8a3a, #4a6a2a);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(-30deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: hbm-garland 4s ease-in-out infinite alternate;
}
.scn-hibbins-black-man .garland-right {
  position: absolute; bottom: 42%; right: 35%;
  width: 35px; height: 15px;
  background: linear-gradient(270deg, #4a6a2a, #8a6a2a, #4a6a2a);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(25deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: hbm-garland 5s ease-in-out infinite alternate 0.5s;
}
.scn-hibbins-black-man .ground-shadow {
  position: absolute; bottom: 18%; left: 30%; right: 30%;
  height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%);
  animation: hbm-shadow 6s ease-in-out infinite;
}
.scn-hibbins-black-man .ember-1 {
  position: absolute; bottom: 25%; left: 45%;
  width: 4px; height: 4px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,208,128,.8);
  animation: hbm-ember 3s ease-in-out infinite;
}
.scn-hibbins-black-man .ember-2 {
  position: absolute; bottom: 28%; right: 40%;
  width: 3px; height: 3px;
  background: #ffb060;
  border-radius: 50%;
  box-shadow: 0 0 6px 1px rgba(255,176,96,.8);
  animation: hbm-ember 4s ease-in-out infinite 1s;
}
@keyframes hbm-sky {
  0% { opacity: .8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: .9; transform: scaleY(.98); }
}
@keyframes hbm-woods {
  0%, 100% { opacity: .6; }
  50% { opacity: .8; }
}
@keyframes hbm-figure {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-6px) rotate(3deg); }
}
@keyframes hbm-garland {
  0% { transform: rotate(-30deg) scaleY(1); }
  50% { transform: rotate(-25deg) scaleY(1.1); }
  100% { transform: rotate(-35deg) scaleY(.9); }
}
@keyframes hbm-shadow {
  0%, 100% { transform: scaleX(1); opacity: .6; }
  50% { transform: scaleX(1.1); opacity: .8; }
}
@keyframes hbm-ember {
  0%, 100% { transform: translateY(0) scale(1); opacity: .5; }
  50% { transform: translateY(-10px) scale(1.5); opacity: 1; }
}

.scn-pearl-asks-hibbins {
  background:
    linear-gradient(180deg, #5a6a3a 0%, #7a8a4a 40%, #4a5a2a 100%),
    radial-gradient(ellipse at 50% 0%, #d8c888 0%, transparent 70%);
}
.scn-pearl-asks-hibbins .sun-shaft {
  position: absolute; inset: 0 0 0 0;
  background:
    linear-gradient(135deg, rgba(255,230,160,.4) 0%, transparent 40%),
    linear-gradient(225deg, rgba(255,230,160,.2) 0%, transparent 50%);
  animation: paq-shaft 8s ease-in-out infinite alternate;
}
.scn-pearl-asks-hibbins .hibbins-robes {
  position: absolute; bottom: 20%; left: 60%; right: 5%;
  height: 90%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 30% 20% 10% 10% / 50% 30% 10% 10%;
  box-shadow: -20px 0 40px rgba(0,0,0,.6);
  clip-path: polygon(30% 0%, 100% 0%, 100% 100%, 20% 100%);
  animation: paq-robes 6s ease-in-out infinite;
}
.scn-pearl-asks-hibbins .hibbins-robes::after {
  content: ''; position: absolute; top: 10%; left: 20%;
  width: 30%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, #1a1a1a 0%, transparent 100%);
  border-radius: 50%;
}
.scn-pearl-asks-hibbins .pearl-figure {
  position: absolute; bottom: 30%; left: 25%;
  width: 25px; height: 45px;
  background: radial-gradient(ellipse at 50% 40%, #b8a878 0%, #7a6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: paq-pearl 4s ease-in-out infinite;
}
.scn-pearl-asks-hibbins .pearl-figure::before {
  content: ''; position: absolute; top: -10%; left: 50%; transform: translateX(-50%);
  width: 60%; height: 25%;
  background: #c8a868;
  border-radius: 50% 50% 30% 30%;
  animation: paq-hair 5s ease-in-out infinite;
}
.scn-pearl-asks-hibbins .pearl-hand {
  position: absolute; bottom: 38%; left: 32%;
  width: 12px; height: 16px;
  background: radial-gradient(ellipse at 50% 50%, #c8b888 0%, #9a8a6a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-30deg);
  transform-origin: bottom right;
  animation: paq-reach 3s ease-in-out infinite alternate;
}
.scn-pearl-asks-hibbins .ground-path {
  position: absolute; bottom: 18%; left: 15%; right: 15%;
  height: 8%;
  background: linear-gradient(90deg, #4a3a1a, #6a5a2a, #4a3a1a);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: paq-path 7s ease-in-out infinite;
}
.scn-pearl-asks-hibbins .shadow-stripe {
  position: absolute; bottom: 25%; left: 0; right: 50%;
  height: 40%;
  background: linear-gradient(90deg, rgba(10,10,5,.5) 0%, transparent 100%);
  animation: paq-stripe 9s ease-in-out infinite alternate;
}
.scn-pearl-asks-hibbins .sparkle-1 {
  position: absolute; top: 45%; left: 40%;
  width: 5px; height: 5px;
  background: #ffe8a0;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,232,160,.6);
  animation: paq-sparkle 3s ease-in-out infinite;
}
.scn-pearl-asks-hibbins .sparkle-2 {
  position: absolute; top: 35%; left: 55%;
  width: 3px; height: 3px;
  background: #ffe8a0;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,232,160,.5);
  animation: paq-sparkle 4s ease-in-out infinite 1s;
}
@keyframes paq-shaft {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .8; transform: scale(1.02); }
  100% { opacity: .6; transform: scale(.98); }
}
@keyframes paq-robes {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(1deg); }
}
@keyframes paq-pearl {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(3deg); }
  50% { transform: translateY(-1px) rotate(-2deg); }
  75% { transform: translateY(-5px) rotate(5deg); }
}
@keyframes paq-hair {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
}
@keyframes paq-reach {
  0% { transform: rotate(-30deg) translateY(0); }
  50% { transform: rotate(-20deg) translateY(-4px); }
  100% { transform: rotate(-35deg) translateY(-2px); }
}
@keyframes paq-path {
  0%, 100% { opacity: .6; }
  50% { opacity: .9; }
}
@keyframes paq-stripe {
  0% { opacity: .4; transform: scaleY(1); }
  50% { opacity: .7; transform: scaleY(1.05); }
  100% { opacity: .5; transform: scaleY(.95); }
}
@keyframes paq-sparkle {
  0%, 100% { transform: scale(1) rotate(0deg); opacity: .6; }
  50% { transform: scale(1.8) rotate(180deg); opacity: 1; }
}

/* draught-administered */
.scn-draught-administered {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #1a1410 100%), radial-gradient(ellipse at 60% 70%, #3a2a1e 0%, transparent 70%);
}
.scn-draught-administered .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0d0a08 0%, #2a1e18 100%);
  animation: da-bg 20s ease-in-out infinite alternate;
}
.scn-draught-administered .crib {
  position: absolute; bottom: 30%; left: 10%; width: 30%; height: 20%;
  background: linear-gradient(135deg, #4a3020, #2e1e12);
  border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.6);
  animation: da-breath 3s ease-in-out infinite;
}
.scn-draught-administered .infant {
  position: absolute; bottom: 35%; left: 20%; width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 40%, #8a7a6a, #5a4a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3);
  animation: da-sleep 4s ease-in-out infinite;
}
.scn-draught-administered .physician {
  position: absolute; bottom: 30%; right: 15%; width: 18%; height: 40%;
  background: linear-gradient(135deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 40% 40%;
  transform: skewX(-5deg) rotate(2deg);
  animation: da-lean 5s ease-in-out infinite alternate;
}
.scn-draught-administered .hand-bottle {
  position: absolute; bottom: 37%; right: 28%; width: 4%; height: 6%;
  background: linear-gradient(135deg, #785a3a, #4a3020);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-15deg);
  animation: da-hand 4s ease-in-out infinite alternate;
}
.scn-draught-administered .mother {
  position: absolute; bottom: 30%; left: 2%; width: 14%; height: 35%;
  background: linear-gradient(135deg, #1a1412, #0e0a08);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(5deg);
  animation: da-reach 6s ease-in-out infinite;
}
.scn-draught-administered .candle {
  position: absolute; bottom: 20%; left: 50%; width: 2.5%; height: 8%;
  background: linear-gradient(180deg, #c8a060, #8a6a3a);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  animation: da-candle-flicker 0.5s steps(3) infinite;
}
.scn-draught-administered .glow {
  position: absolute; bottom: 20%; left: 50%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(200,160,96,0.35) 0%, transparent 70%);
  transform: translate(-50%, 0);
  animation: da-glow-pulse 2s ease-in-out infinite alternate;
}
.scn-draught-administered .dust {
  position: absolute; top: 20%; left: 40%; width: 0.8%; height: 0.8%;
  background: #c8b8a8;
  border-radius: 50%;
  opacity: 0.6;
  animation: da-dust 15s linear infinite, da-dust2 25s linear infinite;
}

@keyframes da-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes da-breath { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes da-sleep { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } }
@keyframes da-lean { 0% { transform: skewX(-5deg) rotate(2deg) translateY(0); } 50% { transform: skewX(-4deg) rotate(1deg) translateY(-3px); } 100% { transform: skewX(-6deg) rotate(3deg) translateY(0); } }
@keyframes da-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } 100% { transform: rotate(-18deg) translateY(0); } }
@keyframes da-reach { 0%, 100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(4deg) translateX(3px); } }
@keyframes da-candle-flicker { 0% { height: 8%; opacity: 1; } 33% { height: 7.5%; opacity: 0.9; } 66% { height: 8.5%; opacity: 1; } 100% { height: 7.8%; opacity: 0.95; } }
@keyframes da-glow-pulse { 0% { opacity: 0.3; transform: translate(-50%,0) scale(1); } 100% { opacity: 0.6; transform: translate(-50%,0) scale(1.1); } }
@keyframes da-dust { 0% { transform: translateY(0) translateX(0); } 100% { transform: translateY(-120vh) translateX(30vw); } }
@keyframes da-dust2 { 0% { opacity: 0.6; } 50% { opacity: 0.2; } 100% { opacity: 0.5; } }

/* chillingworth-attends-mother */
.scn-chillingworth-attends-mother {
  background: linear-gradient(180deg, #151210 0%, #2a2018 50%, #151210 100%), radial-gradient(ellipse at 40% 60%, #3a2a20 0%, transparent 70%);
}
.scn-chillingworth-attends-mother .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e0c0a, #1e1814);
  animation: ca-bg 18s ease-in-out infinite alternate;
}
.scn-chillingworth-attends-mother .bed {
  position: absolute; bottom: 25%; left: 5%; width: 60%; height: 18%;
  background: linear-gradient(135deg, #4a3828, #2e1e14);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ca-lift 4s ease-in-out infinite;
}
.scn-chillingworth-attends-mother .mother {
  position: absolute; bottom: 28%; left: 18%; width: 22%; height: 30%;
  background: linear-gradient(135deg, #1e1814, #100c0a);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  animation: ca-recline 6s ease-in-out infinite alternate;
}
.scn-chillingworth-attends-mother .physician {
  position: absolute; bottom: 30%; right: 10%; width: 20%; height: 40%;
  background: linear-gradient(135deg, #1c1612, #0e0a08);
  border-radius: 45% 45% 30% 30% / 80% 80% 40% 40%;
  transform: skewX(3deg) rotate(-2deg);
  animation: ca-lean-forward 7s ease-in-out infinite alternate;
}
.scn-chillingworth-attends-mother .examining-hand {
  position: absolute; bottom: 36%; right: 24%; width: 6%; height: 4%;
  background: linear-gradient(135deg, #8a7a6a, #4a3a2a);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: ca-touch 3s ease-in-out infinite;
}
.scn-chillingworth-attends-mother .child {
  position: absolute; bottom: 32%; left: 36%; width: 10%; height: 8%;
  background: radial-gradient(ellipse, #7a6a5a, #3a2a1e);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ca-slumber 5s ease-in-out infinite;
}
.scn-chillingworth-attends-mother .candle {
  position: absolute; bottom: 22%; right: 40%; width: 2%; height: 7%;
  background: linear-gradient(180deg, #c8a060, #7a5a30);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-3deg);
  animation: ca-flicker 0.6s steps(3) infinite;
}
.scn-chillingworth-attends-mother .glow {
  position: absolute; bottom: 22%; right: 40%; width: 25%; height: 25%;
  background: radial-gradient(circle, rgba(200,160,96,0.3) 0%, transparent 70%);
  transform: translate(30%, -10%);
  animation: ca-glow-pulse 2.5s ease-in-out infinite alternate;
}
.scn-chillingworth-attends-mother .dust {
  position: absolute; top: 30%; left: 50%; width: 1%; height: 1%;
  background: #b8a898;
  border-radius: 50%;
  animation: ca-dust 20s linear infinite, ca-dust-opacity 10s ease-in-out infinite;
}

@keyframes ca-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ca-lift { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ca-recline { 0% { transform: rotate(2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(3deg) translateX(0); } }
@keyframes ca-lean-forward { 0% { transform: skewX(3deg) rotate(-2deg) translateY(0); } 50% { transform: skewX(2deg) rotate(-1deg) translateY(-4px); } 100% { transform: skewX(4deg) rotate(-3deg) translateY(0); } }
@keyframes ca-touch { 0%, 100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } }
@keyframes ca-slumber { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.95) translateY(1px); } }
@keyframes ca-flicker { 0% { height: 7%; opacity: 1; } 33% { height: 6.5%; opacity: 0.9; } 66% { height: 7.5%; opacity: 1; } 100% { height: 6.8%; opacity: 0.92; } }
@keyframes ca-glow-pulse { 0% { opacity: 0.25; transform: translate(30%, -10%) scale(1); } 100% { opacity: 0.45; transform: translate(30%, -10%) scale(1.15); } }
@keyframes ca-dust { 0% { transform: translateY(0) translateX(0); } 100% { transform: translateY(-130vh) translateX(20vw); } }
@keyframes ca-dust-opacity { 0%, 100% { opacity: 0.5; } 50% { opacity: 0.2; } }

/* secret-recipe */
.scn-secret-recipe {
  background: linear-gradient(180deg, #12100e 0%, #1e1814 40%, #0e0c0a 100%), radial-gradient(ellipse at 50% 60%, #3a2a1e 0%, transparent 70%);
}
.scn-secret-recipe .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0806, #1a1410);
  animation: sr-bg 22s ease-in-out infinite alternate;
}
.scn-secret-recipe .table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(135deg, #4a3828, #2e1e14);
  border-radius: 5% 5% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: sr-table 6s ease-in-out infinite;
}
.scn-secret-recipe .cup {
  position: absolute; bottom: 25%; left: 38%; width: 10%; height: 14%;
  background: linear-gradient(135deg, #a08060, #6a4e32);
  border-radius: 20% 20% 15% 15% / 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 -4px 8px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: sr-cup 4s ease-in-out infinite alternate;
}
.scn-secret-recipe .hand-left {
  position: absolute; bottom: 28%; left: 30%; width: 6%; height: 10%;
  background: linear-gradient(135deg, #8a7a6a, #4a3a2a);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: sr-hand-left 5s ease-in-out infinite alternate;
}
.scn-secret-recipe .hand-right {
  position: absolute; bottom: 28%; right: 30%; width: 6%; height: 10%;
  background: linear-gradient(135deg, #8a7a6a, #4a3a2a);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: sr-hand-right 5s ease-in-out infinite alternate;
}
.scn-secret-recipe .liquid {
  position: absolute; bottom: 28%; left: 41%; width: 4%; height: 4%;
  background: radial-gradient(circle, #8a6a3a, #4a3020);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(138,106,58,0.4);
  animation: sr-liquid 3s ease-in-out infinite;
}
.scn-secret-recipe .shadow-cup {
  position: absolute; bottom: 20%; left: 37%; width: 12%; height: 2%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 80%);
  border-radius: 50%;
  transform: rotateX(60deg);
  animation: sr-shadow 4s ease-in-out infinite alternate;
}
.scn-secret-recipe .particles {
  position: absolute; top: 30%; left: 40%; width: 0.6%; height: 0.6%;
  background: #a09890;
  border-radius: 50%;
  box-shadow: 2vw 5vh 0 0 #a09890, -1vw 8vh 0 0 #a09890, 3vw 2vh 0 0 #a09890;
  animation: sr-particles 20s linear infinite;
}
.scn-secret-recipe .light-spot {
  position: absolute; bottom: 30%; left: 42%; width: 15%; height: 15%;
  background: radial-gradient(circle, rgba(180,140,80,0.15) 0%, transparent 70%);
  transform: translate(-10%, 0);
  animation: sr-light 3s ease-in-out infinite alternate;
}

@keyframes sr-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sr-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sr-cup { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes sr-hand-left { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-3px); } 100% { transform: rotate(18deg) translateY(0); } }
@keyframes sr-hand-right { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-3px); } 100% { transform: rotate(-18deg) translateY(0); } }
@keyframes sr-liquid { 0%, 100% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } }
@keyframes sr-shadow { 0% { opacity: 0.4; transform: rotateX(60deg) scaleY(1); } 100% { opacity: 0.7; transform: rotateX(60deg) scaleY(1.1); } }
@keyframes sr-particles { 0% { transform: translateY(0) translateX(0); } 100% { transform: translateY(-120vh) translateX(20vw); } }
@keyframes sr-light { 0% { opacity: 0.2; transform: translate(-10%,0) scale(1); } 100% { opacity: 0.4; transform: translate(-10%,0) scale(1.2); } }

/* hester-takes-cup */
.scn-hester-takes-cup {
  background: linear-gradient(180deg, #141210 0%, #221c18 40%, #141210 100%), radial-gradient(ellipse at 50% 50%, #2a1e18 0%, transparent 70%);
}
.scn-hester-takes-cup .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0c0a08, #1a1612);
  animation: hc-bg 20s ease-in-out infinite alternate;
}
.scn-hester-takes-cup .table {
  position: absolute; bottom: 20%; left: 8%; width: 84%; height: 12%;
  background: linear-gradient(135deg, #4a3828, #2e1e14);
  border-radius: 5% 5% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
  animation: hc-table 7s ease-in-out infinite;
}
.scn-hester-takes-cup .cup {
  position: absolute; bottom: 26%; left: 40%; width: 10%; height: 14%;
  background: linear-gradient(135deg, #b09070, #7a5a3a);
  border-radius: 20% 20% 15% 15% / 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 -4px 8px rgba(0,0,0,0.2);
  transform: rotate(1deg);
  animation: hc-cup 4s ease-in-out infinite alternate;
}
.scn-hester-takes-cup .hand-receiving {
  position: absolute; bottom: 28%; left: 35%; width: 6%; height: 12%;
  background: linear-gradient(135deg, #8a7a6a, #4a3a2a);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: hc-receive 5s ease-in-out infinite alternate;
}
.scn-hester-takes-cup .hand-offering {
  position: absolute; bottom: 28%; right: 32%; width: 6%; height: 12%;
  background: linear-gradient(135deg, #8a7a6a, #4a3a2a);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: hc-offer 5s ease-in-out infinite alternate;
}
.scn-hester-takes-cup .infant {
  position: absolute; bottom: 30%; left: 20%; width: 10%; height: 8%;
  background: radial-gradient(ellipse, #7a6a5a, #3a2a1e);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hc-infant 6s ease-in-out infinite;
}
.scn-hester-takes-cup .lantern {
  position: absolute; bottom: 25%; right: 18%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #c8a060, #8a6a3a);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 6px rgba(200,160,96,0.2);
  animation: hc-lantern 0.7s steps(3) infinite;
}
.scn-hester-takes-cup .glow {
  position: absolute; bottom: 25%; right: 18%; width: 30%; height: 30%;
  background: radial-gradient(circle, rgba(200,160,96,0.2) 0%, transparent 60%);
  transform: translate(20%, -10%);
  animation: hc-glow-pulse 3s ease-in-out infinite alternate;
}
.scn-hester-takes-cup .dust {
  position: absolute; top: 20%; left: 60%; width: 0.8%; height: 0.8%;
  background: #b8a898;
  border-radius: 50%;
  animation: hc-dust 18s linear infinite, hc-dust-opacity 8s ease-in-out infinite;
}

@keyframes hc-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hc-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hc-cup { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes hc-receive { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-5px); } 100% { transform: rotate(-22deg) translateY(0); } }
@keyframes hc-offer { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-5px); } 100% { transform: rotate(22deg) translateY(0); } }
@keyframes hc-infant { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.96) translateY(1px); } }
@keyframes hc-lantern { 0% { height: 10%; opacity: 1; } 33% { height: 9.5%; opacity: 0.9; } 66% { height: 10.5%; opacity: 1; } 100% { height: 9.8%; opacity: 0.95; } }
@keyframes hc-glow-pulse { 0% { opacity: 0.15; transform: translate(20%, -10%) scale(1); } 100% { opacity: 0.35; transform: translate(20%, -10%) scale(1.2); } }
@keyframes hc-dust { 0% { transform: translateY(0) translateX(0); } 100% { transform: translateY(-130vh) translateX(-20vw); } }
@keyframes hc-dust-opacity { 0%, 100% { opacity: 0.4; } 50% { opacity: 0.1; } }

/* scene: symbol-of-sin */
.scn-symbol-of-sin {
  background: linear-gradient(180deg, #f9d976 0%, #e8a34a 50%, #c47a32 100%), radial-gradient(ellipse at 50% 15%, #ffd080 0%, transparent 60%);
  overflow: hidden;
}
.scn-symbol-of-sin .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #fce4b5 0%, #e8a34a 100%); animation: sos-sky 12s ease-in-out infinite alternate; }
.scn-symbol-of-sin .sun { position: absolute; top: 8%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%); background: radial-gradient(circle, #ffe180 0%, #ffc040 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,200,60,0.4); animation: sos-sun 6s ease-in-out infinite alternate; }
.scn-symbol-of-sin .scaffold { position: absolute; bottom: 20%; left: 10%; width: 80%; height: 6%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 -6px 12px rgba(0,0,0,0.6); transform-origin: bottom center; animation: sos-scaffold 18s ease-in-out infinite; }
.scn-symbol-of-sin .figure { position: absolute; bottom: 26%; left: 50%; width: 40px; height: 90px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; animation: sos-figure 4s ease-in-out infinite; }
.scn-symbol-of-sin .letter { position: absolute; bottom: 46%; left: 50%; width: 20px; height: 24px; transform: translateX(-50%); background: linear-gradient(135deg, #a03a2a 0%, #6a1a0a 100%); border-radius: 2px; box-shadow: 0 0 10px 2px rgba(160,58,42,0.6); animation: sos-letter 3s ease-in-out infinite alternate; }
.scn-symbol-of-sin .hand-left { position: absolute; bottom: 30%; left: 8%; width: 30px; height: 50px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sos-hand 5s ease-in-out infinite; }
.scn-symbol-of-sin .hand-right { position: absolute; bottom: 30%; right: 8%; width: 30px; height: 50px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sos-hand 5s ease-in-out 2.5s infinite; }
.scn-symbol-of-sin .crowd { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; animation: sos-crowd 8s ease-in-out infinite; }
@keyframes sos-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sos-sun { 0% { transform: translateX(-50%) scale(0.95); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes sos-scaffold { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sos-figure { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes sos-letter { 0% { opacity: 0.7; box-shadow: 0 0 5px 1px rgba(160,58,42,0.3); } 100% { opacity: 1; box-shadow: 0 0 15px 5px rgba(160,58,42,0.8); } }
@keyframes sos-hand { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes sos-crowd { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }

/* scene: hester-lingers-at-home */
.scn-hester-lingers-at-home {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #0a0500 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
  overflow: hidden;
}
.scn-hester-lingers-at-home .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); opacity: 0.8; }
.scn-hester-lingers-at-home .window { position: absolute; top: 12%; left: 30%; width: 40%; height: 50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border: 4px solid #2a1a0a; border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-hester-lingers-at-home .figure { position: absolute; bottom: 10%; left: 50%; width: 50px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; animation: hel-figure 15s ease-in-out infinite; }
.scn-hester-lingers-at-home .chair { position: absolute; bottom: 6%; left: 50%; width: 60px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: hel-chair 12s ease-in-out infinite; }
.scn-hester-lingers-at-home .candle { position: absolute; bottom: 20%; left: 20%; width: 8px; height: 14px; background: linear-gradient(180deg, #e8d0a0 0%, #c8a070 100%); border-radius: 2px; animation: hel-candle 4s ease-in-out infinite alternate; }
.scn-hester-lingers-at-home .glow { position: absolute; bottom: 18%; left: 18%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(232,208,160,0.6) 0%, transparent 70%); border-radius: 50%; animation: hel-glow 4s ease-in-out infinite alternate; }
.scn-hester-lingers-at-home .rug { position: absolute; bottom: 2%; left: 20%; width: 60%; height: 8%; background: linear-gradient(90deg, #2a1a0a, #1a0a00, #2a1a0a); border-radius: 4px; opacity: 0.6; animation: hel-rug 20s ease-in-out infinite; }
@keyframes hel-figure { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes hel-chair { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes hel-candle { 0% { transform: scaleY(0.9); opacity: 0.8; } 100% { transform: scaleY(1.1); opacity: 1; } }
@keyframes hel-glow { 0% { transform: scale(0.8); opacity: 0.5; } 100% { transform: scale(1.2); opacity: 0.8; } }
@keyframes hel-rug { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }

/* scene: hester-fatal-attachment */
.scn-hester-fatal-attachment {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #020210 100%), radial-gradient(ellipse at 80% 20%, #1a2a3a 0%, transparent 70%);
  overflow: hidden;
}
.scn-hester-fatal-attachment .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); opacity: 0.9; }
.scn-hester-fatal-attachment .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-hester-fatal-attachment .figure { position: absolute; bottom: 20%; left: 50%; width: 45px; height: 95px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; animation: hfa-figure 3s ease-in-out infinite; }
.scn-hester-fatal-attachment .chair { position: absolute; bottom: 15%; left: 50%; width: 70px; height: 35px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.7); animation: hfa-chair 2s ease-in-out infinite alternate; }
.scn-hester-fatal-attachment .lamp { position: absolute; top: 20%; left: 10%; width: 10px; height: 18px; background: linear-gradient(180deg, #a0a0b0 0%, #606070 100%); border-radius: 2px; animation: hfa-lamp 5s ease-in-out infinite; }
.scn-hester-fatal-attachment .lamp-glow { position: absolute; top: 18%; left: 8%; width: 40px; height: 40px; background: radial-gradient(circle, rgba(200,200,220,0.3) 0%, transparent 70%); border-radius: 50%; animation: hfa-glow 3s ease-in-out infinite alternate; }
.scn-hester-fatal-attachment .pendulum { position: absolute; top: 2%; left: 50%; width: 4px; height: 60px; transform: translateX(-50%) rotate(0deg); background: linear-gradient(180deg, #a0a0b0 0%, #606070 100%); border-radius: 2px; transform-origin: top center; animation: hfa-pendulum 2s ease-in-out infinite; }
.scn-hester-fatal-attachment .shadow { position: absolute; bottom: 18%; left: 40%; width: 40px; height: 50px; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: hfa-shadow 3s ease-in-out infinite; }
@keyframes hfa-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-40%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(0deg); } 75% { transform: translateX(-60%) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes hfa-chair { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes hfa-lamp { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }
@keyframes hfa-glow { 0% { transform: scale(0.8); opacity: 0.3; } 100% { transform: scale(1.2); opacity: 0.6; } }
@keyframes hfa-pendulum { 0% { transform: translateX(-50%) rotate(-15deg); } 50% { transform: translateX(-50%) rotate(15deg); } 100% { transform: translateX(-50%) rotate(-15deg); } }
@keyframes hfa-shadow { 0%,100% { transform: translateX(0); } 50% { transform: translateX(10px); } }

/* scene: hester-self-delusion */
.scn-hester-self-delusion {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a0a00 50%, #050500 100%), radial-gradient(ellipse at 30% 50%, #1a1a0a 0%, transparent 70%);
  overflow: hidden;
}
.scn-hester-self-delusion .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a0a 0%, #1a0a00 100%); opacity: 0.9; }
.scn-hester-self-delusion .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); }
.scn-hester-self-delusion .figure { position: absolute; bottom: 15%; left: 50%; width: 50px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; animation: hsd-figure 10s ease-in-out infinite; }
.scn-hester-self-delusion .chain-left { position: absolute; bottom: 30%; left: 30%; width: 60px; height: 6px; background: linear-gradient(90deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 2px; transform-origin: right center; animation: hsd-chain 8s ease-in-out infinite; }
.scn-hester-self-delusion .chain-right { position: absolute; bottom: 30%; right: 30%; width: 60px; height: 6px; background: linear-gradient(90deg, #2a2a2a 0%, #4a4a4a 100%); border-radius: 2px; transform-origin: left center; animation: hsd-chain 8s ease-in-out 4s infinite; }
.scn-hester-self-delusion .shackle { position: absolute; bottom: 27%; left: 50%; width: 16px; height: 16px; transform: translateX(-50%); background: radial-gradient(circle, #5a5a5a 0%, #2a2a2a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(0,0,0,0.8); animation: hsd-shackle 6s ease-in-out infinite; }
.scn-hester-self-delusion .light-beam { position: absolute; top: 0; left: 40%; width: 20%; height: 100%; background: linear-gradient(180deg, rgba(255,255,200,0.15) 0%, transparent 80%); filter: blur(8px); animation: hsd-beam 12s ease-in-out infinite alternate; }
.scn-hester-self-delusion .dust { position: absolute; top: 20%; left: 45%; width: 8px; height: 8px; background: radial-gradient(circle, rgba(200,200,180,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: hsd-dust 15s linear infinite; }
@keyframes hsd-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } }
@keyframes hsd-chain { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes hsd-shackle { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(15deg); } }
@keyframes hsd-beam { 0% { transform: translateX(0); opacity: 0.8; } 100% { transform: translateY(20px); opacity: 0.4; } }
@keyframes hsd-dust { 0% { transform: translate(0, 0) scale(1); opacity: 0.5; } 100% { transform: translate(30px, -60px) scale(0.5); opacity: 0; } }

/* brand-of-hot-iron */
.scn-brand-of-hot-iron {
  background:
    linear-gradient(180deg, #4a90d9 0%, #87ceeb 40%, #fff5cc 100%),
    linear-gradient(0deg, rgba(255,245,204,.3) 0%, transparent 60%);
}
.scn-brand-of-hot-iron .sky { position:absolute; inset:0; background:linear-gradient(180deg, rgba(135,206,235,.4) 0%, transparent 60%); animation:hi-sky 10s ease-in-out infinite alternate; }
.scn-brand-of-hot-iron .sun { position:absolute; top:8%; right:18%; width:70px; height:70px; border-radius:50%; background:radial-gradient(circle, #ffd700 0%, #ffb347 60%, transparent 80%); box-shadow:0 0 50px 20px rgba(255,215,0,.5); animation:hi-sun 8s ease-in-out infinite alternate; }
.scn-brand-of-hot-iron .post { position:absolute; bottom:28%; left:40%; width:12px; height:140px; background:linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:4px; transform:rotate(2deg); }
.scn-brand-of-hot-iron .hand { position:absolute; bottom:24%; left:36%; width:50px; height:60px; background:radial-gradient(ellipse at 50% 30%, #1c1c1c 0%, #0a0a0a 100%); border-radius:50% 50% 45% 45%; transform:rotate(-10deg); animation:hi-hand 3s ease-in-out infinite alternate; }
.scn-brand-of-hot-iron .iron { position:absolute; bottom:26%; left:39%; width:80px; height:14px; background:linear-gradient(90deg, #6a6a6a 0%, #3a3a3a 100%); border-radius:4px; transform:rotate(-5deg); animation:hi-iron 4s ease-in-out infinite alternate; }
.scn-brand-of-hot-iron .iron-head { position:absolute; bottom:26%; left:44%; width:24px; height:24px; background:radial-gradient(circle at 50% 50%, #ff6b35 0%, #c04020 60%, #8a1a0a 100%); border-radius:50%; box-shadow:0 0 20px 8px rgba(255,107,53,.6); animation:hi-glow 2s ease-in-out infinite alternate; }
.scn-brand-of-hot-iron .glow { position:absolute; bottom:24%; left:42%; width:80px; height:80px; background:radial-gradient(circle, rgba(255,107,53,.3) 0%, transparent 70%); animation:hi-glow2 3s ease-in-out infinite alternate; }
.scn-brand-of-hot-iron .silhouettes { position:absolute; bottom:18%; left:10%; right:10%; height:80px; background:radial-gradient(ellipse at 30% 50%, #1a1a1a 30%, transparent 70%), radial-gradient(ellipse at 70% 50%, #1a1a1a 30%, transparent 70%); filter:blur(2px); animation:hi-crowd 7s ease-in-out infinite alternate; }
.scn-brand-of-hot-iron .smoke { position:absolute; bottom:30%; left:44%; width:40px; height:60px; background:radial-gradient(ellipse at 50% 0%, rgba(200,200,200,.4) 0%, transparent 80%); animation:hi-smoke 6s ease-out infinite; }
@keyframes hi-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.75} }
@keyframes hi-sun { 0%{transform:scale(1);box-shadow:0 0 40px 15px rgba(255,215,0,.4)} 50%{transform:scale(1.08);box-shadow:0 0 60px 25px rgba(255,215,0,.6)} 100%{transform:scale(.95);box-shadow:0 0 30px 10px rgba(255,215,0,.3)} }
@keyframes hi-hand { 0%{transform:rotate(-12deg) translateY(0)} 50%{transform:rotate(-8deg) translateY(-2px)} 100%{transform:rotate(-10deg) translateY(0)} }
@keyframes hi-iron { 0%{transform:rotate(-7deg) translateX(0)} 50%{transform:rotate(-4deg) translateX(3px)} 100%{transform:rotate(-5deg) translateX(0)} }
@keyframes hi-glow { 0%{box-shadow:0 0 15px 5px rgba(255,107,53,.5);opacity:.8} 50%{box-shadow:0 0 30px 12px rgba(255,107,53,.8);opacity:1} 100%{box-shadow:0 0 20px 8px rgba(255,107,53,.6);opacity:.9} }
@keyframes hi-glow2 { 0%{transform:scale(1);opacity:.6} 50%{transform:scale(1.3);opacity:.9} 100%{transform:scale(1.1);opacity:.7} }
@keyframes hi-crowd { 0%{transform:translateY(0);filter:blur(2px)} 50%{transform:translateY(-2px);filter:blur(1px)} 100%{transform:translateY(0);filter:blur(2px)} }
@keyframes hi-smoke { 0%{transform:translateY(0) scale(1);opacity:.5} 50%{transform:translateY(-40px) scale(1.4);opacity:.2} 100%{transform:translateY(-80px) scale(1.8);opacity:0} }

/* pitiless-female */
.scn-pitiless-female {
  background:
    linear-gradient(180deg, #6a9edb 0%, #b0d4f1 40%, #fce4b3 100%),
    linear-gradient(0deg, rgba(100,100,100,.2) 0%, transparent 50%);
}
.scn-pitiless-female .sky { position:absolute; inset:0; background:linear-gradient(180deg, rgba(176,212,241,.4) 0%, transparent 70%); animation:pf-sky 12s ease-in-out infinite alternate; }
.scn-pitiless-female .sun { position:absolute; top:5%; left:20%; width:60px; height:60px; border-radius:50%; background:radial-gradient(circle, #fff5cc 0%, #ffe066 60%, transparent 80%); box-shadow:0 0 60px 30px rgba(255,224,102,.5); animation:pf-sun 9s ease-in-out infinite alternate; }
.scn-pitiless-female .pointing-figure { position:absolute; bottom:22%; left:35%; width:40px; height:120px; background:linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; clip-path:polygon(0 0,100% 0,80% 30%,80% 100%,20% 100%,20% 30%); transform:rotate(5deg); animation:pf-point 3s ease-in-out infinite alternate; }
.scn-pitiless-female .crowd { position:absolute; bottom:18%; left:5%; right:5%; height:120px; background:radial-gradient(ellipse at 15% 50%, #111 35%, transparent 70%), radial-gradient(ellipse at 50% 50%, #111 30%, transparent 70%), radial-gradient(ellipse at 85% 50%, #111 35%, transparent 70%); filter:blur(3px); animation:pf-crowd 8s ease-in-out infinite alternate; }
.scn-pitiless-female .shadow { position:absolute; bottom:15%; left:30%; width:100px; height:20px; background:linear-gradient(90deg, rgba(0,0,0,.6) 0%, transparent 100%); transform:skewX(-20deg); animation:pf-shadow 5s ease-in-out infinite alternate; }
.scn-pitiless-female .dust { position:absolute; bottom:30%; left:20%; width:30px; height:30px; background:radial-gradient(circle, rgba(200,180,150,.5) 0%, transparent 80%); animation:pf-dust 4s linear infinite; }
.scn-pitiless-female .glint { position:absolute; top:15%; left:25%; width:15px; height:15px; background:white; border-radius:50%; box-shadow:0 0 20px 10px rgba(255,255,255,.6); animation:pf-glint 6s ease-in-out infinite; }
@keyframes pf-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes pf-sun { 0%{transform:scale(1);opacity:.8} 50%{transform:scale(1.06);opacity:1} 100%{transform:scale(.97);opacity:.85} }
@keyframes pf-point { 0%{transform:rotate(3deg) translateY(0)} 50%{transform:rotate(7deg) translateY(-3px)} 100%{transform:rotate(5deg) translateY(0)} }
@keyframes pf-crowd { 0%{transform:translateX(0)} 50%{transform:translateX(-5px)} 100%{transform:translateX(5px)} }
@keyframes pf-shadow { 0%{transform:skewX(-18deg) scaleX(1)} 50%{transform:skewX(-22deg) scaleX(1.1)} 100%{transform:skewX(-20deg) scaleX(1)} }
@keyframes pf-dust { 0%{transform:translate(0,0) scale(1);opacity:.4} 50%{transform:translate(15px,-20px) scale(1.5);opacity:.1} 100%{transform:translate(30px,-40px) scale(2);opacity:0} }
@keyframes pf-glint { 0%{opacity:0;transform:scale(.5)} 50%{opacity:1;transform:scale(1.2)} 100%{opacity:0;transform:scale(.8)} }

/* beadle-emerges */
.scn-beadle-emerges {
  background:
    linear-gradient(180deg, #3a75b0 0%, #7db4e0 40%, #fceabb 100%),
    radial-gradient(ellipse at 50% 100%, rgba(255,235,180,.3) 0%, transparent 70%);
}
.scn-beadle-emerges .sky { position:absolute; inset:0; background:linear-gradient(180deg, rgba(125,180,224,.3) 0%, transparent 60%); animation:be-sky 11s ease-in-out infinite alternate; }
.scn-beadle-emerges .sun { position:absolute; top:12%; left:60%; width:80px; height:80px; border-radius:50%; background:radial-gradient(circle, #ffe680 0%, #ffb347 50%, transparent 80%); box-shadow:0 0 70px 30px rgba(255,224,128,.4); animation:be-sun 7s ease-in-out infinite alternate; }
.scn-beadle-emerges .jail-wall { position:absolute; bottom:0; left:0; width:45%; height:100%; background:linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 30%, #5a4a3a 100%); border-radius:0 10% 0 0; box-shadow:inset 0 0 30px rgba(0,0,0,.5); }
.scn-beadle-emerges .door-frame { position:absolute; bottom:0; left:30%; width:120px; height:100%; background:radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, #0a0a0a 100%); clip-path:polygon(20% 0,80% 0,100% 100%,0% 100%); animation:be-door 5s ease-in-out infinite alternate; }
.scn-beadle-emerges .beadle { position:absolute; bottom:28%; left:32%; width:50px; height:140px; background:linear-gradient(180deg, #0d0d0d 0%, #1c1c1c 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; clip-path:polygon(40% 0,60% 0,70% 30%,70% 70%,60% 100%,40% 100%,30% 70%,30% 30%); transform:translateX(0); animation:be-walk 6s ease-in-out infinite alternate; }
.scn-beadle-emerges .steps { position:absolute; bottom:20%; left:25%; right:35%; height:30px; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:20% 20% 0 0; box-shadow:0 -4px 8px rgba(0,0,0,.3); }
.scn-beadle-emerges .shadow { position:absolute; bottom:18%; left:30%; width:120px; height:20px; background:linear-gradient(90deg, rgba(0,0,0,.7) 0%, transparent 100%); transform:skewX(-15deg); animation:be-shadow 6s ease-in-out infinite alternate; }
.scn-beadle-emerges .lightbeam { position:absolute; top:0; left:35%; width:200px; height:100%; background:linear-gradient(135deg, rgba(255,255,200,.2) 0%, transparent 70%); clip-path:polygon(0 0,100% 0,80% 100%,20% 100%); animation:be-beam 8s ease-in-out infinite alternate; }
@keyframes be-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.75} }
@keyframes be-sun { 0%{transform:scale(1);box-shadow:0 0 50px 20px rgba(255,224,128,.3)} 50%{transform:scale(1.05);box-shadow:0 0 80px 30px rgba(255,224,128,.6)} 100%{transform:scale(.98);box-shadow:0 0 40px 15px rgba(255,224,128,.4)} }
@keyframes be-door { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes be-walk { 0%{transform:translateX(0) rotate(0deg)} 50%{transform:translateX(15px) rotate(1deg)} 100%{transform:translateX(30px) rotate(0deg)} }
@keyframes be-shadow { 0%{transform:skewX(-13deg) scaleX(1)} 50%{transform:skewX(-17deg) scaleX(1.2)} 100%{transform:skewX(-15deg) scaleX(1.1)} }
@keyframes be-beam { 0%{opacity:.2;transform:rotate(-2deg)} 50%{opacity:.4;transform:rotate(2deg)} 100%{opacity:.25;transform:rotate(-1deg)} }

/* hester-emerges */
.scn-hester-emerges {
  background:
    linear-gradient(180deg, #4d85c4 0%, #9ac0e8 40%, #fee6b0 100%),
    radial-gradient(ellipse at 30% 50%, rgba(255,230,176,.2) 0%, transparent 70%);
}
.scn-hester-emerges .sky { position:absolute; inset:0; background:linear-gradient(180deg, rgba(154,192,232,.3) 0%, transparent 60%); animation:he-sky 13s ease-in-out infinite alternate; }
.scn-hester-emerges .sun { position:absolute; top:8%; left:70%; width:75px; height:75px; border-radius:50%; background:radial-gradient(circle, #ffeb99 0%, #ffc657 50%, transparent 80%); box-shadow:0 0 80px 40px rgba(255,198,87,.4); animation:he-sun 8s ease-in-out infinite alternate; }
.scn-hester-emerges .jail-wall { position:absolute; bottom:0; left:0; width:50%; height:100%; background:linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius:0 8% 0 0; box-shadow:inset 0 0 30px rgba(0,0,0,.5); }
.scn-hester-emerges .door { position:absolute; bottom:0; left:35%; width:130px; height:100%; background:radial-gradient(ellipse at 50% 100%, #1a1a1a 0%, #0a0a0a 100%); clip-path:polygon(10% 0,90% 0,100% 100%,0% 100%); animation:he-door 4s ease-in-out infinite alternate; }
.scn-hester-emerges .beadle { position:absolute; bottom:25%; left:30%; width:45px; height:130px; background:linear-gradient(180deg, #111 0%, #222 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; clip-path:polygon(35% 0,65% 0,75% 40%,75% 70%,65% 100%,35% 100%,25% 70%,25% 40%); animation:he-beadle 5s ease-in-out infinite alternate; }
.scn-hester-emerges .hester { position:absolute; bottom:22%; left:45%; width:55px; height:150px; background:linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:45% 45% 30% 30% / 70% 70% 30% 30%; clip-path:polygon(40% 0,60% 0,70% 35%,70% 60%,80% 100%,20% 100%,30% 60%,30% 35%); transform:rotate(3deg); animation:he-hester 4s ease-in-out infinite alternate; }
.scn-hester-emerges .hand-beadle { position:absolute; bottom:42%; left:37%; width:25px; height:30px; background:radial-gradient(ellipse at 50% 50%, #1a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 30% 30%; transform:rotate(30deg); animation:he-hand 3s ease-in-out infinite alternate; }
.scn-hester-emerges .steps { position:absolute; bottom:18%; left:28%; right:28%; height:25px; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:15% 15% 0 0; box-shadow:0 -4px 8px rgba(0,0,0,.3); }
.scn-hester-emerges .crowd { position:absolute; bottom:15%; left:5%; right:5%; height:100px; background:radial-gradient(ellipse at 10% 50%, #111 20%, transparent 70%), radial-gradient(ellipse at 90% 50%, #111 20%, transparent 70%); filter:blur(4px); animation:he-crowd 10s ease-in-out infinite alternate; }
@keyframes he-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes he-sun { 0%{transform:scale(1);box-shadow:0 0 60px 30px rgba(255,198,87,.3)} 50%{transform:scale(1.07);box-shadow:0 0 90px 40px rgba(255,198,87,.6)} 100%{transform:scale(.96);box-shadow:0 0 50px 20px rgba(255,198,87,.35)} }
@keyframes he-door { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.03)} 100%{transform:scaleX(.98)} }
@keyframes he-beadle { 0%{transform:translateX(0) rotate(0deg)} 50%{transform:translateX(-8px) rotate(-1deg)} 100%{transform:translateX(0) rotate(0deg)} }
@keyframes he-hester { 0%{transform:translateX(0) rotate(2deg)} 50%{transform:translateX(15px) rotate(5deg)} 100%{transform:translateX(30px) rotate(3deg)} }
@keyframes he-hand { 0%{transform:rotate(25deg) translateY(0)} 50%{transform:rotate(35deg) translateY(-4px)} 100%{transform:rotate(30deg) translateY(0)} }
@keyframes he-crowd { 0%{transform:translateY(0);filter:blur(4px)} 50%{transform:translateY(-3px);filter:blur(2px)} 100%{transform:translateY(0);filter:blur(4px)} }

.scn-scaffold-chillingworth-response {
  background: linear-gradient(180deg, #0a0e1a 0%, #1a2030 50%, #0a0e1a 100%),
              radial-gradient(ellipse at 50% 30%, #3a4a6e 0%, transparent 60%);
}
.scn-scaffold-chillingworth-response .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1e2e 0%, transparent 100%);
  animation: sch-sky 12s ease-in-out infinite alternate;
}
.scn-scaffold-chillingworth-response .moon {
  position: absolute; top: 10%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c0d0e8 0%, #8090b0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(192,208,232,0.3), 0 0 80px 40px rgba(192,208,232,0.1);
  animation: sch-moon 6s ease-in-out infinite alternate;
}
.scn-scaffold-chillingworth-response .scaffold-beam {
  position: absolute; bottom: 35%; left: 30%; right: 30%; height: 4px;
  background: #2a2e3e;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-scaffold-chillingworth-response .scaffold-post {
  position: absolute; bottom: 35%; left: 32%; width: 4px; height: 30%;
  background: #2a2e3e;
  box-shadow: 2px 0 6px rgba(0,0,0,0.5);
}
.scn-scaffold-chillingworth-response .scaffold-post {
  left: 65%;
}
.scn-scaffold-chillingworth-response .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1e2e 0%, #0a0e1a 100%);
}
.scn-scaffold-chillingworth-response .figure {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0a0e1a 0%, #1a1e2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sch-figure 4s ease-in-out infinite alternate;
}
.scn-scaffold-chillingworth-response .shadow {
  position: absolute; bottom: 18%; left: 45%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  transform: translateX(-50%) scaleX(1.2);
  animation: sch-shadow 4s ease-in-out infinite alternate;
}
@keyframes sch-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes sch-moon {
  0% { box-shadow: 0 0 30px 15px rgba(192,208,232,0.2), 0 0 60px 30px rgba(192,208,232,0.05); }
  50% { box-shadow: 0 0 50px 25px rgba(192,208,232,0.4), 0 0 100px 50px rgba(192,208,232,0.15); }
  100% { box-shadow: 0 0 40px 20px rgba(192,208,232,0.3), 0 0 80px 40px rgba(192,208,232,0.1); }
}
@keyframes sch-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes sch-shadow {
  0% { transform: translateX(-50%) scaleX(1.2) scaleY(1); }
  50% { transform: translateX(-50%) scaleX(1.15) scaleY(1.05); }
  100% { transform: translateX(-50%) scaleX(1.2) scaleY(1); }
}

.scn-scaffold-books-temptation {
  background: linear-gradient(180deg, #0e1220 0%, #1c2440 50%, #0e1220 100%),
              radial-gradient(ellipse at 60% 40%, #2c3450 0%, transparent 70%);
}
.scn-scaffold-books-temptation .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1c2440 0%, transparent 100%);
  animation: sbo-sky 10s ease-in-out infinite alternate;
}
.scn-scaffold-books-temptation .moon {
  position: absolute; top: 12%; right: 20%; width: 28px; height: 28px;
  background: radial-gradient(circle, #b8c8e0 0%, #7890b0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 35px 18px rgba(184,200,224,0.3);
  animation: sbo-moon 7s ease-in-out infinite alternate;
}
.scn-scaffold-books-temptation .scaffold-base {
  position: absolute; bottom: 30%; left: 25%; right: 25%; height: 6px;
  background: #242a3a;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-scaffold-books-temptation .books {
  position: absolute; bottom: 32%; left: 40%; width: 30px; height: 20px;
  display: flex; flex-direction: column;
  justify-content: flex-end;
}
.scn-scaffold-books-temptation .books::before {
  content: ''; display: block; width: 30px; height: 6px;
  background: #5a4a3a; margin-bottom: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-scaffold-books-temptation .books::after {
  content: ''; display: block; width: 24px; height: 5px;
  background: #4a3a2a; margin-bottom: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-scaffold-books-temptation .figure1 {
  position: absolute; bottom: 22%; left: 40%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #0e1220 0%, #1c2440 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sbo-fig1 5s ease-in-out infinite alternate;
}
.scn-scaffold-books-temptation .figure2 {
  position: absolute; bottom: 22%; left: 58%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #0e1220 0%, #1c2440 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sbo-fig2 5s ease-in-out infinite alternate;
  animation-delay: -1.5s;
}
.scn-scaffold-books-temptation .shadow {
  position: absolute; bottom: 20%; left: 40%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  transform: translateX(-10%);
  animation: sbo-shadow 5s ease-in-out infinite alternate;
}
@keyframes sbo-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes sbo-moon {
  0% { box-shadow: 0 0 25px 12px rgba(184,200,224,0.2); }
  50% { box-shadow: 0 0 45px 22px rgba(184,200,224,0.4); }
  100% { box-shadow: 0 0 30px 15px rgba(184,200,224,0.25); }
}
@keyframes sbo-fig1 {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes sbo-fig2 {
  0% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(1deg); }
}
@keyframes sbo-shadow {
  0% { transform: translateX(-10%) scaleX(1) scaleY(1); }
  50% { transform: translateX(-10%) scaleX(0.95) scaleY(1.1); }
  100% { transform: translateX(-10%) scaleX(1) scaleY(1); }
}

.scn-sabbath-sermon-success {
  background: linear-gradient(180deg, #f5e6c8 0%, #e6d4b0 50%, #d4c09a 100%),
              radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 60%);
}
.scn-sabbath-sermon-success .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e6d4b0 0%, #c4ae8a 100%);
}
.scn-sabbath-sermon-success .window {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 50%, #fff5e0 0%, #d4c09a 70%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 60px 20px rgba(255,245,224,0.3);
  animation: sss-window 12s ease-in-out infinite alternate;
}
.scn-sabbath-sermon-success .pulpit {
  position: absolute; bottom: 20%; left: 45%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  transform: translateX(-50%);
}
.scn-sabbath-sermon-success .minister {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sss-minister 8s ease-in-out infinite alternate;
}
.scn-sabbath-sermon-success .congregation {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(
    90deg,
    transparent 0px,
    transparent 12px,
    #4a3a2a 12px,
    #4a3a2a 16px,
    transparent 16px,
    transparent 28px
  );
  background-size: 28px 100%;
  animation: sss-cong 18s linear infinite;
}
.scn-sabbath-sermon-success .rays {
  position: absolute; top: 15%; left: 35%; width: 30%; height: 70%;
  background: linear-gradient(135deg, rgba(255,245,224,0.3) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: sss-rays 10s ease-in-out infinite alternate;
}
.scn-sabbath-sermon-success .candle {
  position: absolute; bottom: 25%; left: 48%; width: 4px; height: 14px;
  background: #e6d4b0;
  border-radius: 10%;
  box-shadow: 0 0 12px 4px #ffb040;
}
@keyframes sss-window {
  0% { opacity: 0.9; box-shadow: inset 0 0 40px 15px rgba(255,245,224,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 80px 30px rgba(255,245,224,0.5); }
  100% { opacity: 0.95; box-shadow: inset 0 0 50px 20px rgba(255,245,224,0.3); }
}
@keyframes sss-minister {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes sss-cong {
  0% { background-position: 0 0; }
  100% { background-position: 28px 0; }
}
@keyframes sss-rays {
  0% { opacity: 0.3; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}

.scn-black-glove-return {
  background: linear-gradient(180deg, #f0e6d0 0%, #d8c8a8 50%, #c0ae8a 100%),
              radial-gradient(ellipse at 50% 40%, #fff8ec 0%, transparent 80%);
}
.scn-black-glove-return .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8c8a8 0%, #a89878 100%);
}
.scn-black-glove-return .pulpit {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #8a7050 0%, #5a4030 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4), inset 0 -5px 10px rgba(0,0,0,0.3);
}
.scn-black-glove-return .minister {
  position: absolute; bottom: 30%; left: 38%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: bgr-minister 6s ease-in-out infinite alternate;
}
.scn-black-glove-return .sexton {
  position: absolute; bottom: 10%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: bgr-sexton 6s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-black-glove-return .glove {
  position: absolute; bottom: 18%; left: 58%; width: 12px; height: 16px;
  background: #0a0a0a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%) rotate(15deg);
  box-shadow: 3px 3px 6px rgba(0,0,0,0.5);
  animation: bgr-glove 3s ease-in-out infinite alternate;
}
.scn-black-glove-return .step {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #705a4a 0%, #4a3828 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-black-glove-return .shadow {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: bgr-shadow 8s ease-in-out infinite alternate;
}
@keyframes bgr-minister {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes bgr-sexton {
  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 bgr-glove {
  0% { transform: translateX(-50%) rotate(10deg) scaleY(1); }
  50% { transform: translateX(-50%) rotate(25deg) scaleY(0.95); }
  100% { transform: translateX(-50%) rotate(15deg) scaleY(1); }
}
@keyframes bgr-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

/* dimmesdale-conference – tense, dim-interior */
.scn-dimmesdale-conference {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a2238 40%, #1a1430 100%),
              radial-gradient(circle at 40% 60%, #3a2a1e 0%, transparent 80%);
}
.scn-dimmesdale-conference .bg-wall {
  position: absolute; inset: 20% 10% 10% 5%;
  background: linear-gradient(135deg, #2c2440 0%, #1a1430 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: dc-wall 15s ease-in-out infinite;
}
.scn-dimmesdale-conference .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 6px 6px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-dimmesdale-conference .lamp {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #d0a060 0%, #a07040 100%);
  border-radius: 4px; box-shadow: 0 0 30px 8px rgba(208,160,96,.4);
  animation: dc-lampglow 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-conference .figure-left {
  position: absolute; bottom: 12%; left: 25%; 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: dc-figure-a 5s ease-in-out infinite;
}
.scn-dimmesdale-conference .figure-right {
  position: absolute; bottom: 12%; right: 25%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-figure-b 5s ease-in-out infinite 1s;
}
.scn-dimmesdale-conference .window-glow {
  position: absolute; top: 12%; right: 15%; width: 30px; height: 40px;
  background: radial-gradient(circle, #8a7a5a 0%, transparent 70%);
  border-radius: 8px; box-shadow: 0 0 40px 12px rgba(138,122,90,.3);
  animation: dc-windowfade 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-conference .shadow {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: dc-shadowmove 8s ease-in-out infinite;
}
.scn-dimmesdale-conference .books {
  position: absolute; bottom: 25%; left: 5%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 8px 0 0 #4a3a2a, 16px 0 0 #5a4a3a;
  animation: dc-books 10s ease-in-out infinite alternate;
}
@keyframes dc-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes dc-lampglow { 0% { box-shadow: 0 0 20px 4px rgba(208,160,96,.3); } 50% { box-shadow: 0 0 40px 12px rgba(208,160,96,.6); } 100% { box-shadow: 0 0 20px 4px rgba(208,160,96,.3); } }
@keyframes dc-figure-a { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dc-figure-b { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes dc-windowfade { 0% { opacity: .2; box-shadow: 0 0 20px 4px rgba(138,122,90,.1); } 50% { opacity: .6; box-shadow: 0 0 60px 20px rgba(138,122,90,.4); } 100% { opacity: .3; box-shadow: 0 0 30px 8px rgba(138,122,90,.2); } }
@keyframes dc-shadowmove { 0% { transform: translateX(-2px) scaleY(.95); } 50% { transform: translateX(2px) scaleY(1.05); } 100% { transform: translateX(-2px) scaleY(.95); } }
@keyframes dc-books { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* dimmesdale-confesses-unworthiness – dark, dim-interior */
.scn-dimmesdale-confesses-unworthiness {
  background: linear-gradient(180deg, #0d0b1e 0%, #1a1228 50%, #0a0815 100%),
              radial-gradient(circle at 50% 70%, #3a2a1e 0%, transparent 80%);
}
.scn-dimmesdale-confesses-unworthiness .bg-night {
  position: absolute; inset: 10%;
  background: linear-gradient(135deg, #151120 0%, #0a0815 100%);
  border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,.7);
  animation: dwu-bg 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses-unworthiness .candle {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 10px; height: 30px;
  background: linear-gradient(180deg, #d8b88a 0%, #a87840 100%);
  border-radius: 4px; box-shadow: 0 0 10px 2px rgba(216,184,138,.5);
  animation: dwu-candle 4s ease-in-out infinite;
}
.scn-dimmesdale-confesses-unworthiness .flame {
  position: absolute; bottom: 58%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 16px;
  background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #e8a040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,208,128,.6);
  animation: dwu-flame 0.8s steps(3) infinite;
}
.scn-dimmesdale-confesses-unworthiness .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.8);
}
.scn-dimmesdale-confesses-unworthiness .figure-bowed {
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dwu-bow 6s ease-in-out infinite;
}
.scn-dimmesdale-confesses-unworthiness .chair {
  position: absolute; bottom: 18%; left: 35%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: dwu-chair 10s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses-unworthiness .shadow-dark {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 12%;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%);
  filter: blur(6px);
  animation: dwu-shadow 8s ease-in-out infinite;
}
@keyframes dwu-bg { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes dwu-candle { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes dwu-flame { 0% { opacity: .8; transform: translateX(-50%) scaleY(1); } 33% { opacity: 1; transform: translateX(-50%) scaleY(1.1); } 66% { opacity: .7; transform: translateX(-50%) scaleY(.9); } 100% { opacity: .9; transform: translateX(-50%) scaleY(1.05); } }
@keyframes dwu-bow { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(-4deg) translateY(1px); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes dwu-chair { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dwu-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(1); } }

/* friends-together-walks – calm, sunlit */
.scn-friends-together-walks {
  background: linear-gradient(180deg, #8ecae6 0%, #d4e8d0 40%, #7a9e6b 100%),
              radial-gradient(ellipse at 60% 80%, #fdf0d5 0%, transparent 70%);
}
.scn-friends-together-walks .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #bee3f0 0%, transparent 100%);
  animation: ftw-sky 20s ease-in-out infinite alternate;
}
.scn-friends-together-walks .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a9e5b 0%, #4a7e3b 100%);
  border-radius: 40% 60% 0 0 / 30% 30% 0 0;
  animation: ftw-grass 12s ease-in-out infinite;
}
.scn-friends-together-walks .path {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #d4b48a 0%, #b8945a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.2);
}
.scn-friends-together-walks .figure-walk-a {
  position: absolute; bottom: 22%; left: 20%; width: 18px; 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: ftw-walk-a 4s ease-in-out infinite;
}
.scn-friends-together-walks .figure-walk-b {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ftw-walk-b 4s ease-in-out infinite 0.5s;
}
.scn-friends-together-walks .tree-left {
  position: absolute; bottom: 28%; left: 8%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 60% 60% 30% 30% / 80% 80% 20% 20%;
  animation: ftw-tree 15s ease-in-out infinite alternate;
}
.scn-friends-together-walks .tree-right {
  position: absolute; bottom: 30%; right: 12%; width: 16px; height: 70px;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ftw-tree 15s ease-in-out infinite alternate-reverse;
}
.scn-friends-together-walks .cloud {
  position: absolute; top: 12%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: ftw-cloud 40s linear infinite;
}
@keyframes ftw-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes ftw-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ftw-walk-a { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 25% { transform: translateX(8px) rotate(2deg) scaleY(1.02); } 50% { transform: translateX(16px) rotate(-1deg) scaleY(1); } 75% { transform: translateX(24px) rotate(1deg) scaleY(1.01); } 100% { transform: translateX(32px) rotate(0) scaleY(1); } }
@keyframes ftw-walk-b { 0% { transform: translateX(0) rotate(2deg) scaleY(1); } 25% { transform: translateX(-8px) rotate(-2deg) scaleY(1.01); } 50% { transform: translateX(-16px) rotate(1deg) scaleY(1); } 75% { transform: translateX(-24px) rotate(-1deg) scaleY(1.02); } 100% { transform: translateX(-32px) rotate(0) scaleY(1); } }
@keyframes ftw-tree { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes ftw-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }

/* mutual-visits – calm, dim-interior */
.scn-mutual-visits {
  background: linear-gradient(180deg, #1c1826 0%, #2a2238 50%, #161220 100%),
              radial-gradient(circle at 60% 50%, #3a2a1e 0%, transparent 70%);
}
.scn-mutual-visits .wall-study {
  position: absolute; inset: 5% 8% 5% 8%;
  background: linear-gradient(135deg, #2a2440 0%, #1a1630 100%);
  border-radius: 8px; box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: mv-wall 18s ease-in-out infinite alternate;
}
.scn-mutual-visits .bookshelf {
  position: absolute; top: 10%; left: 5%; width: 12%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: inset 0 0 8px rgba(0,0,0,.8);
  animation: mv-shelf 15s ease-in-out infinite;
}
.scn-mutual-visits .desk-visit {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%);
  border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,.7);
}
.scn-mutual-visits .chair-visit-left {
  position: absolute; bottom: 15%; left: 15%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: mv-chair-l 8s ease-in-out infinite alternate;
}
.scn-mutual-visits .chair-visit-right {
  position: absolute; bottom: 15%; right: 15%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: mv-chair-r 8s ease-in-out infinite alternate 1s;
}
.scn-mutual-visits .lamp-visit {
  position: absolute; bottom: 30%; left: 48%; width: 12px; height: 22px;
  background: radial-gradient(circle at 50% 30%, #c8a060 0%, #a07040 100%);
  border-radius: 4px; box-shadow: 0 0 30px 8px rgba(200,160,96,.4);
  animation: mv-lampglow 3s ease-in-out infinite alternate;
}
.scn-mutual-visits .window-moon {
  position: absolute; top: 12%; right: 10%; width: 30px; height: 40px;
  background: radial-gradient(circle, #5a6a8a 0%, transparent 80%);
  border-radius: 8px; box-shadow: 0 0 20px 4px rgba(90,106,138,.3);
  animation: mv-moon 10s ease-in-out infinite alternate;
}
.scn-mutual-visits .rug {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #5a3a4a 0%, #3a1a2a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
  animation: mv-rug 12s ease-in-out infinite;
}
@keyframes mv-wall { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes mv-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes mv-chair-l { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes mv-chair-r { 0% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 100% { transform: rotate(1deg); } }
@keyframes mv-lampglow { 0% { box-shadow: 0 0 20px 4px rgba(200,160,96,.3); } 50% { box-shadow: 0 0 40px 12px rgba(200,160,96,.6); } 100% { box-shadow: 0 0 20px 4px rgba(200,160,96,.3); } }
@keyframes mv-moon { 0% { opacity: .3; box-shadow: 0 0 10px 2px rgba(90,106,138,.2); } 50% { opacity: .7; box-shadow: 0 0 30px 8px rgba(90,106,138,.5); } 100% { opacity: .4; box-shadow: 0 0 15px 3px rgba(90,106,138,.25); } }
@keyframes mv-rug { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-phantasmagoric-relief { background: linear-gradient(180deg, #d4b88c 0%, #9a7a5a 30%, #3a2a1a 60%, #1a0a0a 100%), radial-gradient(ellipse at 30% 20%, #eed8b0 0%, transparent 50%); }
.scn-phantasmagoric-relief .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(135deg, #f5e6c8 0%, #c4a070 40%, #8a6a3a 100%); animation: pr-sky 14s ease-in-out infinite alternate; }
.scn-phantasmagoric-relief .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.6); }
.scn-phantasmagoric-relief .phantom { position:absolute; border-radius:50%; filter: blur(3px); opacity:.45; mix-blend-mode: screen; }
.scn-phantasmagoric-relief .phantom-a { width:120px; height:90px; top:18%; left:12%; background: radial-gradient(circle, #ffe8c0 0%, #c8a060 70%, transparent 100%); animation: pr-drift-a 22s ease-in-out infinite alternate; }
.scn-phantasmagoric-relief .phantom-b { width:80px; height:140px; top:30%; right:20%; background: radial-gradient(circle, #e0c8a0 0%, #a08050 50%, transparent 100%); animation: pr-drift-b 28s ease-in-out infinite alternate; }
.scn-phantasmagoric-relief .phantom-c { width:100px; height:70px; top:40%; left:45%; background: radial-gradient(circle, #f0d8b0 0%, #b09060 60%, transparent 100%); animation: pr-drift-c 18s ease-in-out infinite alternate; }
.scn-phantasmagoric-relief .figure { position:absolute; bottom:38%; left:50%; width:22px; height:44px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: pr-figure 6s ease-in-out infinite alternate; }
.scn-phantasmagoric-relief .light-beam { position:absolute; top:0; left:20%; width:60%; height:50%; background: linear-gradient(135deg, rgba(255,240,200,.25) 0%, transparent 60%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: pr-beam 10s ease-in-out infinite alternate; }
@keyframes pr-sky { 0% { opacity:.8 } 50% { opacity:1; filter:brightness(1.05) } 100% { opacity:.75; filter:brightness(.95) } }
@keyframes pr-drift-a { 0% { transform:translate(0,0) scale(1) rotate(0deg); opacity:.35 } 50% { transform:translate(20px,-12px) scale(1.15) rotate(4deg); opacity:.55 } 100% { transform:translate(-10px,8px) scale(.95) rotate(-2deg); opacity:.4 } }
@keyframes pr-drift-b { 0% { transform:translate(0,0) scale(1) rotate(0deg); opacity:.3 } 50% { transform:translate(-15px,18px) scale(1.2) rotate(-6deg); opacity:.5 } 100% { transform:translate(12px,-8px) scale(.9) rotate(3deg); opacity:.35 } }
@keyframes pr-drift-c { 0% { transform:translate(0,0) scale(1) rotate(0deg); opacity:.4 } 50% { transform:translate(10px,10px) scale(1.1) rotate(3deg); opacity:.6 } 100% { transform:translate(-8px,-6px) scale(1.05) rotate(-1deg); opacity:.45 } }
@keyframes pr-figure { 0% { transform:translateX(-50%) translateY(0) rotate(0deg) } 50% { transform:translateX(-50%) translateY(-4px) rotate(2deg) } 100% { transform:translateX(-50%) translateY(2px) rotate(-1deg) } }
@keyframes pr-beam { 0% { opacity:.15; transform:skewX(-2deg) } 50% { opacity:.3; transform:skewX(2deg) } 100% { opacity:.1; transform:skewX(-1deg) } }

.scn-native-village-in-memory { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #98d8c8 60%, #6abf8a 100%), radial-gradient(ellipse at 70% 30%, #ffe8a0 0%, transparent 40%); }
.scn-native-village-in-memory .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6db3d4 0%, #a8d8e8 40%, #d4e8b0 100%); animation: nv-sky 20s ease-in-out infinite alternate; }
.scn-native-village-in-memory .sun-glow { position:absolute; top:8%; right:28%; width:60px; height:60px; background: radial-gradient(circle, #fff4d4 0%, #ffe080 40%, transparent 70%); border-radius:50%; animation: nv-sun 16s ease-in-out infinite alternate; }
.scn-native-village-in-memory .hills { position:absolute; bottom:35%; left:0; right:0; height:22%; background: linear-gradient(180deg, #7ab87a 0%, #4a8a4a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 6px 16px rgba(0,40,0,.3); animation: nv-hills 24s ease-in-out infinite alternate; }
.scn-native-village-in-memory .cottage { position:absolute; bottom:22%; background: linear-gradient(180deg, #c8a870 0%, #a08050 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,.2); }
.scn-native-village-in-memory .cottage-1 { left:22%; width:60px; height:42px; animation: nv-cottage1 12s ease-in-out infinite alternate; }
.scn-native-village-in-memory .cottage-2 { left:48%; width:70px; height:48px; animation: nv-cottage2 14s ease-in-out infinite alternate; }
.scn-native-village-in-memory .church { position:absolute; bottom:20%; left:68%; width:30px; height:60px; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius:2% 2% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.15); animation: nv-church 10s ease-in-out infinite alternate; }
.scn-native-village-in-memory .tree { position:absolute; bottom:28%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 60%, #3a7a3a 0%, #1a5a1a 80%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-native-village-in-memory .tree-1 { left:10%; animation: nv-tree1 30s ease-in-out infinite alternate; }
.scn-native-village-in-memory .tree-2 { right:12%; width:50px; height:56px; animation: nv-tree2 34s ease-in-out infinite alternate; }
.scn-native-village-in-memory .path { position:absolute; bottom:8%; left:30%; width:40%; height:16%; background: linear-gradient(135deg, #c8b888 0%, #a89868 50%, #887858 100%); border-radius:40% 40% 20% 20% / 80% 80% 40% 40%; clip-path: polygon(20% 0, 80% 0, 70% 100%, 30% 100%); filter: blur(1px); animation: nv-path 20s ease-in-out infinite alternate; }
@keyframes nv-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes nv-sun { 0% { opacity:.7; transform:scale(.95) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:.8; transform:scale(1) } }
@keyframes nv-hills { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-4px) scaleY(1.02) } 100% { transform:translateY(2px) scaleY(.98) } }
@keyframes nv-cottage1 { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(1px) } }
@keyframes nv-cottage2 { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(2px) } }
@keyframes nv-church { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-5px) scaleY(1.02) } 100% { transform:translateY(1px) scaleY(.99) } }
@keyframes nv-tree1 { 0% { transform:rotate(0deg) scale(1) } 50% { transform:rotate(2deg) scale(1.03) } 100% { transform:rotate(-1deg) scale(.98) } }
@keyframes nv-tree2 { 0% { transform:rotate(0deg) scale(1) } 50% { transform:rotate(-3deg) scale(1.04) } 100% { transform:rotate(1deg) scale(.99) } }
@keyframes nv-path { 0% { opacity:.4 } 50% { opacity:.55 } 100% { opacity:.45 } }

.scn-her-own-face-and-scholar { background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 30%, #0a0a0a 60%, #000000 100%), radial-gradient(ellipse at 50% 40%, #4a2a1a 0%, transparent 60%); }
.scn-her-own-face-and-scholar .darkness { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a0a 0%, #1a1210 50%, #0a0a0a 100%); animation: fs-dark 20s ease-in-out infinite alternate; }
.scn-her-own-face-and-scholar .mirror-frame { position:absolute; top:15%; left:50%; width:180px; height:240px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 50%, #6a4a3a 100%); border-radius:4% 4% 8% 8% / 6% 6% 10% 10%; box-shadow: 0 8px 24px rgba(0,0,0,.7), inset 0 2px 6px rgba(160,120,80,.3); }
.scn-her-own-face-and-scholar .mirror-deep { position:absolute; top:20%; left:50%; width:140px; height:190px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #2a1a0a 100%), radial-gradient(circle at 50% 40%, #6a3a1a 0%, transparent 70%); border-radius:2% 2% 6% 6%; box-shadow: inset 0 0 30px rgba(160,80,30,.3); animation: fs-mirror 18s ease-in-out infinite alternate; }
.scn-her-own-face-and-scholar .face-young { position:absolute; top:26%; left:42%; width:30px; height:48px; background: linear-gradient(135deg, #d4a878 0%, #b8885a 60%, #8a6040 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; box-shadow: 0 0 20px rgba(200,160,100,.3); animation: fs-young 8s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-her-own-face-and-scholar .face-scholar { position:absolute; top:28%; right:38%; width:28px; height:44px; background: linear-gradient(135deg, #8a7050 0%, #5a4a3a 60%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 16px rgba(100,70,40,.2); animation: fs-scholar 10s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-her-own-face-and-scholar .glow { position:absolute; top:18%; left:38%; width:80px; height:100px; background: radial-gradient(circle, rgba(200,160,100,.2) 0%, rgba(200,160,100,.05) 50%, transparent 100%); border-radius:50%; animation: fs-glow 6s ease-in-out infinite alternate; }
@keyframes fs-dark { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fs-mirror { 0% { box-shadow: inset 0 0 20px rgba(160,80,30,.2) } 50% { box-shadow: inset 0 0 40px rgba(200,120,50,.4) } 100% { box-shadow: inset 0 0 25px rgba(160,80,30,.25) } }
@keyframes fs-young { 0% { transform:translateX(0) rotate(0deg); opacity:.7 } 50% { transform:translateX(4px) rotate(2deg); opacity:.9 } 100% { transform:translateX(-2px) rotate(-1deg); opacity:.75 } }
@keyframes fs-scholar { 0% { transform:translateX(0) rotate(0deg); opacity:.5 } 50% { transform:translateX(-3px) rotate(-2deg); opacity:.7 } 100% { transform:translateX(2px) rotate(1deg); opacity:.55 } }
@keyframes fs-glow { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.6; transform:scale(1.15) } 100% { opacity:.35; transform:scale(.95) } }

.scn-continental-city-memory { background: linear-gradient(180deg, #87b8d4 0%, #b0c8d8 30%, #c8b898 60%, #a88868 100%), radial-gradient(ellipse at 50% 30%, #d4e0e8 0%, transparent 50%); }
.scn-continental-city-memory .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #7ab0d4 0%, #a8cce0 40%, #d4d8c8 100%); animation: cc-sky 24s ease-in-out infinite alternate; }
.scn-continental-city-memory .street { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a89878 0%, #887858 50%, #6a5a3a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.3); animation: cc-street 18s ease-in-out infinite alternate; }
.scn-continental-city-memory .building-left { position:absolute; bottom:20%; left:5%; width:20%; height:55%; background: linear-gradient(180deg, #b8a888 0%, #a09078 50%, #8a7a62 100%); border-radius:4% 4% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,.2); animation: cc-build-l 30s ease-in-out infinite alternate; }
.scn-continental-city-memory .building-right { position:absolute; bottom:18%; right:5%; width:22%; height:60%; background: linear-gradient(180deg, #c0b098 0%, #a89880 50%, #8a7a68 100%); border-radius:4% 4% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,.2); animation: cc-build-r 32s ease-in-out infinite alternate; }
.scn-continental-city-memory .cathedral { position:absolute; bottom:15%; left:40%; width:20%; height:70%; background: linear-gradient(180deg, #c8b898 0%, #b0a088 50%, #8a7a62 100%); border-radius:2% 2% 0 0; clip-path: polygon(30% 0, 70% 0, 70% 2%, 60% 2%, 60% 100%, 40% 100%, 40% 2%, 30% 2%); box-shadow: 0 4px 16px rgba(0,0,0,.25); animation: cc-cath 28s ease-in-out infinite alternate; }
.scn-continental-city-memory .window { position:absolute; width:14px; height:20px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b080 100%); border-radius:6% 6% 10% 10%; box-shadow: 0 0 8px rgba(200,180,120,.3); }
.scn-continental-city-memory .window-1 { bottom:44%; left:12%; animation: cc-win1 5s ease-in-out infinite alternate; }
.scn-continental-city-memory .window-2 { bottom:36%; right:14%; width:12px; height:18px; animation: cc-win2 7s ease-in-out infinite alternate; animation-delay: 2s; }
.scn-continental-city-memory .arch { position:absolute; bottom:20%; left:45%; width:10%; height:18%; background: linear-gradient(180deg, #b0a088 0%, #8a7a62 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 2px 8px rgba(0,0,0,.2); }
@keyframes cc-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cc-street { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-2px) scaleY(1.01) } 100% { transform:translateY(1px) scaleY(.99) } }
@keyframes cc-build-l { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-3px) scaleY(1.005) } 100% { transform:translateY(2px) scaleY(.995) } }
@keyframes cc-build-r { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-4px) scaleY(1.005) } 100% { transform:translateY(2px) scaleY(.995) } }
@keyframes cc-cath { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-6px) scaleY(1.01) } 100% { transform:translateY(3px) scaleY(.99) } }
@keyframes cc-win1 { 0% { opacity:.6; box-shadow: 0 0 6px rgba(200,180,120,.2) } 50% { opacity:1; box-shadow: 0 0 14px rgba(230,210,150,.4) } 100% { opacity:.7; box-shadow: 0 0 8px rgba(200,180,120,.25) } }
@keyframes cc-win2 { 0% { opacity:.5; box-shadow: 0 0 4px rgba(200,180,120,.15) } 50% { opacity:.9; box-shadow: 0 0 12px rgba(230,210,150,.35) } 100% { opacity:.6; box-shadow: 0 0 6px rgba(200,180,120,.2) } }

/* Scene: chillingworth-indian-herbs */
.scn-chillingworth-indian-herbs {
  background: linear-gradient(180deg, #2b1f1a 0%, #1f1511 50%, #14100c 100%),
              radial-gradient(ellipse at 30% 70%, #3a2a22 0%, transparent 70%);
}
.scn-chillingworth-indian-herbs .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, rgba(60,45,35,.6) 0%, rgba(30,20,15,.8) 100%);
  animation: chih-wall 20s ease-in-out infinite alternate;
}
.scn-chillingworth-indian-herbs .shelf {
  position: absolute; bottom: 55%; left: 10%; right: 10%; height: 4%;
  background: linear-gradient(180deg, #4a3528 0%, #2e1f16 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: chih-shelf 12s ease-in-out infinite;
}
.scn-chillingworth-indian-herbs .jar { 
  position: absolute; bottom: 58%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 30% 30%, #6b5a44 0%, #3d2e1f 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5);
  animation: chih-jar-bob 8s ease-in-out infinite;
}
.scn-chillingworth-indian-herbs .jar-a { left: 22%; animation-delay: 0s; }
.scn-chillingworth-indian-herbs .jar-b { left: 60%; animation-delay: 4s; }
.scn-chillingworth-indian-herbs .mortar {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 14%;
  background: linear-gradient(180deg, #5a4030 0%, #2d1f16 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: chih-mortar 10s ease-in-out infinite;
}
.scn-chillingworth-indian-herbs .candle {
  position: absolute; bottom: 52%; left: 34%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #a07850 0%, #704828 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 0 20px 8px rgba(200,150,80,.3);
  animation: chih-candle 3s ease-in-out infinite alternate;
}
.scn-chillingworth-indian-herbs .figure {
  position: absolute; bottom: 12%; left: 26%; width: 14%; height: 34%;
  background: linear-gradient(180deg, #1f1510 0%, #0a0705 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chih-figure 6s ease-in-out infinite;
}
.scn-chillingworth-indian-herbs .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: chih-shadow 14s ease-in-out infinite alternate;
}
@keyframes chih-wall { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .75 } }
@keyframes chih-shelf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes chih-jar-bob { 0%,100% { transform: translateY(0) scale(1) } 25% { transform: translateY(-1px) scale(1.005) } 75% { transform: translateY(1px) scale(.995) } }
@keyframes chih-mortar { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.005) rotate(.3deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes chih-candle { 0% { box-shadow: 0 0 16px 6px rgba(200,150,80,.2); opacity: .8 } 50% { box-shadow: 0 0 28px 12px rgba(220,170,90,.5); opacity: 1 } 100% { box-shadow: 0 0 20px 8px rgba(200,150,80,.3); opacity: .9 } }
@keyframes chih-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } }
@keyframes chih-shadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1.05) } }

/* Scene: chillingworth-chooses-dimmesdale */
.scn-chillingworth-chooses-dimmesdale {
  background: linear-gradient(180deg, #2b1f1d 0%, #1f1412 50%, #140b0a 100%),
              radial-gradient(ellipse at 50% 80%, #3f2b26 0%, transparent 70%);
}
.scn-chillingworth-chooses-dimmesdale .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 40%, rgba(60,35,30,.3) 0%, transparent 80%);
  animation: chch-bg 25s ease-in-out infinite alternate;
}
.scn-chillingworth-chooses-dimmesdale .window {
  position: absolute; top: 10%; right: 15%; width: 16%; height: 20%;
  background: linear-gradient(135deg, rgba(140,180,200,.6) 0%, rgba(80,120,150,.4) 100%);
  border-radius: 6% 6% 8% 8%; box-shadow: inset 0 0 12px rgba(255,255,240,.2);
  animation: chch-window 15s ease-in-out infinite alternate;
}
.scn-chillingworth-chooses-dimmesdale .desk {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #442e24 0%, #2c1a12 100%);
  border-radius: 4px; box-shadow: 0 3px 8px rgba(0,0,0,.5);
}
.scn-chillingworth-chooses-dimmesdale .figure-ch {
  position: absolute; bottom: 10%; left: 30%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #1e1410 0%, #0a0605 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: chch-figure-ch 8s ease-in-out infinite;
}
.scn-chillingworth-chooses-dimmesdale .figure-dim {
  position: absolute; bottom: 10%; right: 30%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0706 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: chch-figure-dim 10s ease-in-out infinite;
}
.scn-chillingworth-chooses-dimmesdale .book {
  position: absolute; bottom: 32%; left: 46%; width: 8%; height: 5%;
  background: linear-gradient(135deg, #5a3a2a 0%, #38241a 100%);
  border-radius: 4px; box-shadow: 0 2px 5px rgba(0,0,0,.4);
  animation: chch-book 14s ease-in-out infinite;
}
.scn-chillingworth-chooses-dimmesdale .candle {
  position: absolute; bottom: 36%; left: 50%; width: 5%; height: 12%;
  background: linear-gradient(180deg, #a08050 0%, #704828 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 0 18px 6px rgba(200,150,80,.3);
  animation: chch-candle 3.5s ease-in-out infinite alternate;
}
@keyframes chch-bg { 0% { opacity: .6 } 50% { opacity: .8 } 100% { opacity: .65 } }
@keyframes chch-window { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .55 } }
@keyframes chch-figure-ch { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(-.5deg) } 75% { transform: translateX(-1px) rotate(.5deg) } }
@keyframes chch-figure-dim { 0%,100% { transform: translateX(0) rotate(0deg) scale(1) } 30% { transform: translateX(2px) rotate(1deg) scale(1.005) } 70% { transform: translateX(-1px) rotate(-1deg) scale(.995) } }
@keyframes chch-book { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes chch-candle { 0% { box-shadow: 0 0 14px 5px rgba(200,150,80,.2); opacity: .85 } 50% { box-shadow: 0 0 26px 10px rgba(220,170,90,.5); opacity: 1 } 100% { box-shadow: 0 0 18px 6px rgba(200,150,80,.3); opacity: .9 } }

/* Scene: dimmesdale-health-failing */
.scn-dimmesdale-health-failing {
  background: linear-gradient(180deg, #0f1418 0%, #080c10 50%, #040608 100%),
              radial-gradient(ellipse at 30% 60%, #19222a 0%, transparent 70%);
}
.scn-dimmesdale-health-failing .room {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(20,30,40,.4) 0%, transparent 80%);
  animation: dhf-room 30s ease-in-out infinite alternate;
}
.scn-dimmesdale-health-failing .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #182228 0%, #0e1418 100%);
  border-radius: 6px; box-shadow: 0 4px 10px rgba(0,0,0,.7);
}
.scn-dimmesdale-health-failing .figure {
  position: absolute; bottom: 16%; left: 35%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #0a0e10 0%, #020304 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dhf-figure 6s ease-in-out infinite;
}
.scn-dimmesdale-health-failing .candle {
  position: absolute; bottom: 34%; left: 44%; width: 5%; height: 14%;
  background: linear-gradient(180deg, #806040 0%, #5a3a22 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 0 14px 4px rgba(180,140,80,.3);
  animation: dhf-candle 2.5s ease-in-out infinite alternate;
}
.scn-dimmesdale-health-failing .scroll {
  position: absolute; bottom: 28%; left: 48%; width: 10%; height: 6%;
  background: linear-gradient(135deg, #a08860 0%, #7a5c38 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: dhf-scroll 8s ease-in-out infinite;
}
.scn-dimmesdale-health-failing .shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: dhf-shadow 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-health-failing .shadow-a { left: 5%; right: auto; width: 40%; animation-delay: 0s; }
.scn-dimmesdale-health-failing .shadow-b { left: auto; right: 5%; width: 40%; animation-delay: 6s; }
@keyframes dhf-room { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .6 } }
@keyframes dhf-figure { 0%,100% { transform: translateX(0) rotate(0deg) scale(1) } 25% { transform: translateX(1px) rotate(-2deg) scale(1.01) } 50% { transform: translateX(0) rotate(0deg) scale(.99) } 75% { transform: translateX(-1px) rotate(2deg) scale(1.005) } }
@keyframes dhf-candle { 0% { box-shadow: 0 0 10px 3px rgba(180,140,80,.15); opacity: .7 } 50% { box-shadow: 0 0 20px 8px rgba(200,160,90,.4); opacity: .95 } 100% { box-shadow: 0 0 12px 4px rgba(180,140,80,.2); opacity: .8 } }
@keyframes dhf-scroll { 0%,100% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(1.02) rotate(.5deg) } }
@keyframes dhf-shadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(.9) } 100% { transform: scaleY(1.1) } }

/* Scene: dimmesdale-unworthy */
.scn-dimmesdale-unworthy {
  background: linear-gradient(180deg, #0a0807 0%, #0c0a09 50%, #050403 100%),
              radial-gradient(ellipse at 50% 90%, #1f1815 0%, transparent 70%);
}
.scn-dimmesdale-unworthy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0807 0%, #060504 100%);
  animation: dw-floor 25s ease-in-out infinite alternate;
}
.scn-dimmesdale-unworthy .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #14100e 0%, #0b0908 100%);
}
.scn-dimmesdale-unworthy .window {
  position: absolute; top: 20%; left: 50%; width: 20%; height: 30%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, rgba(180,200,220,.4) 0%, rgba(100,130,160,.2) 100%);
  border-radius: 30% 30% 4% 4% / 50% 50% 10% 10%;
  box-shadow: inset 0 0 20px rgba(200,210,230,.1);
  animation: dw-window 20s ease-in-out infinite alternate;
}
.scn-dimmesdale-unworthy .figure {
  position: absolute; bottom: 10%; left: 42%; width: 16%; height: 44%;
  background: linear-gradient(180deg, #0e0c0b 0%, #030202 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: dw-figure 8s ease-in-out infinite;
}
.scn-dimmesdale-unworthy .cross {
  position: absolute; bottom: 50%; left: 50%; width: 4%; height: 20%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px 2px rgba(0,0,0,.5);
  animation: dw-cross 14s ease-in-out infinite;
}
.scn-dimmesdale-unworthy .light-beam {
  position: absolute; top: 10%; left: 45%; width: 10%; height: 60%;
  background: linear-gradient(180deg, rgba(200,210,230,.08) 0%, transparent 100%);
  transform: skewX(-5deg);
  animation: dw-beam 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-unworthy .dust {
  position: absolute; top: 20%; left: 30%; width: 6px; height: 6px;
  background: rgba(220,230,240,.3);
  border-radius: 50%;
  filter: blur(1px);
  box-shadow: 20px 40px 8px rgba(220,230,240,.2), 50px 80px 12px rgba(220,230,240,.15), 80px 20px 6px rgba(220,230,240,.1);
  animation: dw-dust 30s linear infinite;
}
@keyframes dw-floor { 0% { opacity: .4 } 50% { opacity: .6 } 100% { opacity: .45 } }
@keyframes dw-window { 0% { opacity: .2 } 50% { opacity: .4 } 100% { opacity: .25 } }
@keyframes dw-figure { 0%,100% { transform: translateX(0) rotate(0deg) scale(1) } 20% { transform: translateX(1px) rotate(-1deg) scale(1.005) } 40% { transform: translateX(0) rotate(0deg) scale(.995) } 60% { transform: translateX(-2px) rotate(1deg) scale(1.002) } 80% { transform: translateX(1px) rotate(-.5deg) scale(.998) } }
@keyframes dw-cross { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } }
@keyframes dw-beam { 0% { opacity: .1 } 50% { opacity: .25 } 100% { opacity: .15 } }
@keyframes dw-dust { 0% { transform: translateY(0) translateX(0) } 25% { transform: translateY(-20px) translateX(10px) } 50% { transform: translateY(-40px) translateX(-5px) } 75% { transform: translateY(-60px) translateX(8px) } 100% { transform: translateY(-80px) translateX(0) } }

.scn-moral-wilderness {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1e 100%), radial-gradient(ellipse at 50% 0%, #3a3a4a 0%, transparent 60%);
}
.scn-moral-wilderness .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, transparent 100%);
  animation: mw-sky 14s ease-in-out infinite alternate;
}
.scn-moral-wilderness .trees-back {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: mw-trees-back 20s ease-in-out infinite alternate;
}
.scn-moral-wilderness .trees-left {
  position: absolute; bottom: 30%; left: 5%; width: 12px; height: 160px;
  background: #1a1a2a;
  border-radius: 0 0 4px 4px;
  box-shadow: 30px 0 0 #1a1a2a, 60px 0 0 #1a1a2a, 90px 0 0 #1a1a2a, 120px 0 0 #1a1a2a, 150px 0 0 #1a1a2a;
  animation: mw-trees-sway 8s ease-in-out infinite;
}
.scn-moral-wilderness .trees-right {
  position: absolute; bottom: 30%; right: 10%; width: 14px; height: 180px;
  background: #13131f;
  border-radius: 0 0 4px 4px;
  box-shadow: -25px 0 0 #13131f, -50px 0 0 #13131f, -75px 0 0 #13131f;
  animation: mw-trees-sway 10s ease-in-out infinite reverse;
}
.scn-moral-wilderness .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #151520 0%, #0a0a10 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-moral-wilderness .figure {
  position: absolute; bottom: 28%; left: 40%; width: 14px; 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: mw-figure-walk 6s ease-in-out infinite;
}
.scn-moral-wilderness .path {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 16%;
  background: linear-gradient(180deg, rgba(60,60,70,0.4) 0%, rgba(40,40,50,0.2) 100%);
  border-radius: 0 80% 80% 0 / 0 60% 60% 0;
  filter: blur(2px);
  animation: mw-path-shift 15s ease-in-out infinite alternate;
}
@keyframes mw-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes mw-trees-back { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes mw-trees-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes mw-figure-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes mw-path-shift { 0% { transform: skewX(-5deg); } 50% { transform: skewX(5deg); } 100% { transform: skewX(-3deg); } }

.scn-scarlet-letter-passport {
  background: linear-gradient(180deg, #1e1e2e 0%, #14141e 40%, #0a0a12 100%), radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-scarlet-letter-passport .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1e1e2e 50%, transparent 100%);
  animation: sl-sky 18s ease-in-out infinite alternate;
}
.scn-scarlet-letter-passport .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #10101a 0%, #05050c 100%);
  border-radius: 70% 30% 0 0 / 60% 40% 0 0;
}
.scn-scarlet-letter-passport .figure {
  position: absolute; bottom: 25%; left: 50%; width: 22px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e1e2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
}
.scn-scarlet-letter-passport .letter {
  position: absolute; bottom: 53%; left: 50%; width: 14px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px rgba(200,85,61,0.6), 0 0 40px 12px rgba(200,85,61,0.3);
  animation: sl-letter-glow 4s ease-in-out infinite alternate;
}
.scn-scarlet-letter-passport .path {
  position: absolute; bottom: 12%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, rgba(60,60,70,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: sl-path-move 20s ease-in-out infinite alternate;
}
.scn-scarlet-letter-passport .cloud-a {
  position: absolute; top: 15%; left: 10%; width: 90px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sl-cloud-drift 40s linear infinite;
}
.scn-scarlet-letter-passport .cloud-b {
  position: absolute; top: 25%; right: 5%; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.03) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sl-cloud-drift 55s linear infinite reverse;
}
@keyframes sl-sky { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.7; } }
@keyframes sl-letter-glow { 0% { box-shadow: 0 0 14px 4px rgba(200,85,61,0.5), 0 0 28px 8px rgba(200,85,61,0.2); opacity: 0.9; } 50% { box-shadow: 0 0 28px 10px rgba(200,85,61,0.8), 0 0 50px 16px rgba(200,85,61,0.4); opacity: 1; } 100% { box-shadow: 0 0 18px 5px rgba(200,85,61,0.6), 0 0 34px 10px rgba(200,85,61,0.3); opacity: 0.95; } }
@keyframes sl-path-move { 0% { transform: translateX(-10px) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.05); } 100% { transform: translateX(-5px) scaleX(0.95); } }
@keyframes sl-cloud-drift { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }

.scn-sin-of-passion {
  background: linear-gradient(180deg, #1a1a2a 0%, #12121e 50%, #0a0a12 100%), radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, transparent 60%);
}
.scn-sin-of-passion .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1e30 0%, #141428 100%);
  animation: sp-wall-pulse 15s ease-in-out infinite alternate;
}
.scn-sin-of-passion .window {
  position: absolute; bottom: 45%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 30% 40%, #3a3a4a 0%, #1a1a2a 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-sin-of-passion .curtain-left {
  position: absolute; bottom: 45%; left: calc(50% - 80px); width: 40px; height: 110px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  animation: sp-curtain-sway 6s ease-in-out infinite;
}
.scn-sin-of-passion .curtain-right {
  position: absolute; bottom: 45%; right: calc(50% - 80px); width: 40px; height: 110px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 0 0 40% / 60% 0 0 60%;
  animation: sp-curtain-sway 6s ease-in-out infinite reverse;
}
.scn-sin-of-passion .figure {
  position: absolute; bottom: 15%; left: 50%; width: 24px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: sp-figure-breathe 4s ease-in-out infinite alternate;
}
.scn-sin-of-passion .hand {
  position: absolute; bottom: 30%; left: 50%; width: 10px; height: 14px;
  transform: translateX(50%);
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40%;
  animation: sp-hand-tremble 2s ease-in-out infinite;
}
.scn-sin-of-passion .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: sp-shadow-grow 12s ease-in-out infinite alternate;
}
@keyframes sp-wall-pulse { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.75; } }
@keyframes sp-curtain-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-2deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes sp-figure-breathe { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } 100% { transform: translateX(-50%) scaleY(0.97); } }
@keyframes sp-hand-tremble { 0% { transform: translateX(50%) translateY(0) rotate(0deg); } 25% { transform: translateX(50%) translateY(-1px) rotate(2deg); } 50% { transform: translateX(50%) translateY(0) rotate(-2deg); } 75% { transform: translateX(50%) translateY(1px) rotate(1deg); } 100% { transform: translateX(50%) translateY(0) rotate(0deg); } }
@keyframes sp-shadow-grow { 0% { transform: scaleY(0.8); } 50% { transform: scaleY(1.2); } 100% { transform: scaleY(0.9); } }

.scn-safer-within-virtue {
  background: linear-gradient(180deg, #1e1e2e 0%, #14141e 50%, #0a0a12 100%), radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-safer-within-virtue .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #12121c 100%);
  animation: sv-bg-fade 20s ease-in-out infinite alternate;
}
.scn-safer-within-virtue .path-left {
  position: absolute; bottom: 20%; left: 0; width: 45%; height: 30%;
  background: linear-gradient(180deg, rgba(50,50,60,0.4) 0%, rgba(30,30,40,0.2) 100%);
  border-radius: 0 80% 80% 0 / 0 60% 60% 0;
  filter: blur(4px);
  animation: sv-path-shift 18s ease-in-out infinite alternate;
}
.scn-safer-within-virtue .path-right {
  position: absolute; bottom: 20%; right: 0; width: 45%; height: 30%;
  background: linear-gradient(180deg, rgba(60,60,70,0.3) 0%, rgba(40,40,50,0.1) 100%);
  border-radius: 80% 0 0 80% / 60% 0 0 60%;
  filter: blur(4px);
  animation: sv-path-shift 18s ease-in-out infinite alternate-reverse;
}
.scn-safer-within-virtue .figure {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e1e2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: sv-figure-stand 6s ease-in-out infinite alternate;
}
.scn-safer-within-virtue .wound {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #702243 0%, #5e1a1d 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(112,34,67,0.6), 0 0 24px 8px rgba(112,34,67,0.3);
  animation: sv-wound-pulse 3s ease-in-out infinite alternate;
}
.scn-safer-within-virtue .divider {
  position: absolute; bottom: 30%; left: 50%; width: 2px; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(60,60,70,0.4) 0%, rgba(30,30,40,0.2) 100%);
  filter: blur(1px);
  animation: sv-divider-throb 8s ease-in-out infinite alternate;
}
@keyframes sv-bg-fade { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.7; } }
@keyframes sv-path-shift { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(8px) scaleY(1.05); } 100% { transform: translateX(-4px) scaleY(0.95); } }
@keyframes sv-figure-stand { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sv-wound-pulse { 0% { box-shadow: 0 0 8px 2px rgba(112,34,67,0.5), 0 0 16px 4px rgba(112,34,67,0.2); } 50% { box-shadow: 0 0 16px 6px rgba(112,34,67,0.8), 0 0 32px 10px rgba(112,34,67,0.4); } 100% { box-shadow: 0 0 10px 3px rgba(112,34,67,0.6), 0 0 20px 6px rgba(112,34,67,0.3); } }
@keyframes sv-divider-throb { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.5); } 100% { transform: translateX(-50%) scaleX(0.8); } }

.scn-letter-on-breast-burning {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 50%, #0e0e1a 100%), radial-gradient(ellipse at 50% 60%, #3a2040 0%, transparent 70%);
}
.scn-letter-on-breast-burning .bg-shadow {
  position:absolute; inset:0; background: #0d0d1a; opacity:0.8; animation: lob-bg 12s ease-in-out infinite alternate;
}
.scn-letter-on-breast-burning .body {
  position:absolute; bottom:20%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 40%, #3a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:translateX(-50%); animation: lob-body 8s ease-in-out infinite;
}
.scn-letter-on-breast-burning .hands {
  position:absolute; bottom:25%; left:30%; width:30%; height:20%; background: #2a1a2a; border-radius: 40% 60% 30% 50%; transform:translateX(-50%); animation: lob-hands 6s ease-in-out infinite;
}
.scn-letter-on-breast-burning .letter {
  position:absolute; bottom:35%; left:50%; width:20px; height:30px; background: #8b3a3a; border-radius: 4px; transform:translateX(-50%) rotate(5deg); box-shadow: 0 0 10px #8b3a3a; animation: lob-letter 4s ease-in-out infinite alternate;
}
.scn-letter-on-breast-burning .glow {
  position:absolute; bottom:34%; left:50%; width:40px; height:40px; background: radial-gradient(circle, #8b3a3a 0%, transparent 70%); border-radius:50%; transform:translateX(-50%); opacity:0.5; animation: lob-glow 3s ease-in-out infinite alternate;
}
.scn-letter-on-breast-burning .sparkle {
  position:absolute; bottom:36%; left:45%; width:4px; height:4px; background: #ffd700; border-radius:50%; box-shadow: 0 0 8px #ffd700; animation: lob-sparkle 2s ease-in-out infinite;
}
@keyframes lob-bg { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes lob-body { 0%,100% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-2px); } }
@keyframes lob-hands { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0deg); } 33% { transform:translateX(-48%) translateY(-1px) rotate(4deg); } 66% { transform:translateX(-52%) translateY(1px) rotate(-3deg); } }
@keyframes lob-letter { 0% { transform:translateX(-50%) rotate(3deg) scale(1); } 50% { transform:translateX(-50%) rotate(-3deg) scale(1.1); } 100% { transform:translateX(-50%) rotate(5deg) scale(1); } }
@keyframes lob-glow { 0% { opacity:0.3; transform:translateX(-50%) scale(0.8); } 50% { opacity:0.7; transform:translateX(-50%) scale(1.2); } 100% { opacity:0.5; transform:translateX(-50%) scale(0.9); } }
@keyframes lob-sparkle { 0%,100% { opacity:0; } 50% { opacity:1; } }

.scn-explanation-manuscript {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 50%, #0d0805 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-explanation-manuscript .bg-wall {
  position:absolute; inset:0; background: #1a120a; opacity:0.7; animation: exp-bg 15s ease-in-out infinite alternate;
}
.scn-explanation-manuscript .desk {
  position:absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #4a3220 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: exp-desk 20s ease-in-out infinite;
}
.scn-explanation-manuscript .manuscript {
  position:absolute; bottom:18%; left:25%; width:50%; height:15%; background: #e0d0a0; border-radius: 2px; transform:rotate(-2deg); animation: exp-manuscript 8s ease-in-out infinite;
}
.scn-explanation-manuscript .candle {
  position:absolute; bottom:25%; left:70%; width:8px; height:30px; background: linear-gradient(180deg, #d4b86a 0%, #a0814a 100%); border-radius: 4px 4px 0 0; animation: exp-candle 6s ease-in-out infinite;
}
.scn-explanation-manuscript .hand-writing {
  position:absolute; bottom:20%; left:30%; width:15px; height:25px; background: #2a1a10; border-radius: 40% 60% 30% 50%; transform:rotate(-10deg); animation: exp-hand 4s ease-in-out infinite;
}
.scn-explanation-manuscript .glow-candle {
  position:absolute; bottom:25%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius:50%; opacity:0.4; animation: exp-glow 3s ease-in-out infinite alternate;
}
@keyframes exp-bg { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes exp-desk { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes exp-manuscript { 0%,100% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(0deg) translateY(-1px); } }
@keyframes exp-candle { 0%,100% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.05); } }
@keyframes exp-hand { 0% { transform:rotate(-10deg) translate(0,0); } 25% { transform:rotate(-8deg) translate(2px, -1px); } 50% { transform:rotate(-12deg) translate(-1px, 1px); } 75% { transform:rotate(-7deg) translate(1px, -2px); } 100% { transform:rotate(-10deg) translate(0,0); } }
@keyframes exp-glow { 0% { opacity:0.3; transform:scale(0.8); } 50% { opacity:0.6; transform:scale(1.3); } 100% { opacity:0.4; transform:scale(1); } }

.scn-hester-as-voluntary-nurse {
  background: linear-gradient(180deg, #1a221a 0%, #0e150e 50%, #070a07 100%), radial-gradient(ellipse at 50% 50%, #2a3a2a 0%, transparent 70%);
}
.scn-hester-as-voluntary-nurse .bg-room {
  position:absolute; inset:0; background: #0e150e; animation: nur-bg 18s ease-in-out infinite alternate;
}
.scn-hester-as-voluntary-nurse .bed {
  position:absolute; bottom:10%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #3a2a20 0%, #1a120a 100%); border-radius: 8px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); animation: nur-bed 12s ease-in-out infinite;
}
.scn-hester-as-voluntary-nurse .patient {
  position:absolute; bottom:15%; left:30%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 40%, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nur-patient 10s ease-in-out infinite;
}
.scn-hester-as-voluntary-nurse .nurse {
  position:absolute; bottom:15%; left:60%; width:18%; height:40%; background: radial-gradient(ellipse at 50% 30%, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nur-nurse 8s ease-in-out infinite;
}
.scn-hester-as-voluntary-nurse .lamp {
  position:absolute; bottom:35%; left:70%; width:12px; height:20px; background: #c0a060; border-radius: 4px; box-shadow: 0 0 10px #c0a060; animation: nur-lamp 5s ease-in-out infinite;
}
.scn-hester-as-voluntary-nurse .glow-lamp {
  position:absolute; bottom:35%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffe0a0 0%, transparent 70%); border-radius:50%; opacity:0.3; animation: nur-glow 4s ease-in-out infinite alternate;
}
@keyframes nur-bg { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes nur-bed { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes nur-patient { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1px); } }
@keyframes nur-nurse { 0%,100% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-2px) rotate(2deg); } 75% { transform:translateY(1px) rotate(-1deg); } }
@keyframes nur-lamp { 0%,100% { transform:scale(1); } 50% { transform:scale(1.05); } }
@keyframes nur-glow { 0% { opacity:0.2; transform:scale(0.8); } 50% { opacity:0.5; transform:scale(1.4); } 100% { opacity:0.3; transform:scale(1.1); } }

.scn-reference-to-scarlet-letter-story {
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 50%, #050508 100%), radial-gradient(ellipse at 50% 60%, #2a2a34 0%, transparent 70%);
}
.scn-reference-to-scarlet-letter-story .bg-shelf {
  position:absolute; inset:0; background: #0e0e14; animation: ref-bg 20s ease-in-out infinite alternate;
}
.scn-reference-to-scarlet-letter-story .book {
  position:absolute; bottom:20%; left:25%; width:50%; height:30%; background: linear-gradient(180deg, #4a3a20 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ref-book 15s ease-in-out infinite;
}
.scn-reference-to-scarlet-letter-story .letter-page {
  position:absolute; bottom:25%; left:35%; width:10%; height:12%; background: #8b3a3a; border-radius: 2px; transform:rotate(45deg); box-shadow: 0 0 6px #8b3a3a; animation: ref-letter 6s ease-in-out infinite alternate;
}
.scn-reference-to-scarlet-letter-story .hands {
  position:absolute; bottom:25%; left:30%; width:15%; height:20%; background: #2a1a10; border-radius: 40% 60% 30% 50%; transform:rotate(10deg); animation: ref-hands 8s ease-in-out infinite;
}
.scn-reference-to-scarlet-letter-story .candle {
  position:absolute; bottom:35%; left:70%; width:8px; height:30px; background: linear-gradient(180deg, #d4b86a 0%, #a0814a 100%); border-radius: 4px 4px 0 0; animation: ref-candle 7s ease-in-out infinite;
}
.scn-reference-to-scarlet-letter-story .glow-candle {
  position:absolute; bottom:35%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius:50%; opacity:0.4; animation: ref-glow 3s ease-in-out infinite alternate;
}
@keyframes ref-bg { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes ref-book { 0%,100% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(1deg); } }
@keyframes ref-letter { 0% { transform:rotate(45deg) scale(1); } 50% { transform:rotate(35deg) scale(1.1); } 100% { transform:rotate(55deg) scale(0.9); } }
@keyframes ref-hands { 0%,100% { transform:rotate(10deg) translate(0,0); } 25% { transform:rotate(8deg) translate(2px,-1px); } 75% { transform:rotate(12deg) translate(-1px,1px); } }
@keyframes ref-candle { 0%,100% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(-2px) scaleY(1.05); } }
@keyframes ref-glow { 0% { opacity:0.3; transform:scale(0.8); } 50% { opacity:0.6; transform:scale(1.3); } 100% { opacity:0.4; transform:scale(1); } }

.scn-joy-again {
  background: linear-gradient(180deg, #a8a090 0%, #958a7a 40%, #7a6e5e 100%),
              radial-gradient(ellipse at 50% 80%, #6a5e4e 0%, transparent 70%);
}
.scn-joy-again .sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #c0b098 0%, #a09484 100%); animation: ja-sky 12s ease-in-out infinite alternate; }
.scn-joy-again .tree-left { position: absolute; left: 5%; bottom: 40%; width: 30%; height: 70%; background: linear-gradient(180deg, #3a2e1c 0%, #2a1e0c 100%); border-radius: 0 40% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.3); animation: ja-tree-l 20s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-joy-again .tree-right { position: absolute; right: 5%; bottom: 40%; width: 30%; height: 70%; background: linear-gradient(180deg, #3a2e1c 0%, #2a1e0c 100%); border-radius: 40% 0 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.3); animation: ja-tree-r 20s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-joy-again .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #6b5e4a 0%, #4a3e2e 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; }
.scn-joy-again .figure { position: absolute; bottom: 18%; left: 50%; width: 40px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ja-figure 4s ease-in-out infinite; transform-origin: bottom center; }
.scn-joy-again .leaf { position: absolute; width: 20px; height: 10px; background: linear-gradient(180deg, #b78a4a 0%, #8a6a3a 100%); border-radius: 50% 50% 0 0; filter: blur(1px); }
.scn-joy-again .leaf-1 { top: 10%; left: 20%; animation: ja-leaf-fall 8s linear infinite; }
.scn-joy-again .leaf-2 { top: 5%; left: 60%; animation: ja-leaf-fall 10s linear infinite 2s; }
.scn-joy-again .leaf-3 { top: 15%; left: 40%; animation: ja-leaf-fall 9s linear infinite 4s; }
.scn-joy-again .glow { position: absolute; bottom: 28%; left: 50%; width: 70px; height: 70px; transform: translateX(-50%); background: radial-gradient(circle, rgba(200,160,80,0.3) 0%, transparent 70%); animation: ja-glow 3s ease-in-out infinite alternate; }

@keyframes ja-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes ja-tree-l { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1.5deg); } }
@keyframes ja-tree-r { 0% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 100% { transform: rotate(1.5deg); } }
@keyframes ja-figure { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02) translateY(-2px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ja-leaf-fall { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 50% { transform: translateY(40vh) rotate(180deg); opacity: .8; } 100% { transform: translateY(80vh) rotate(360deg); opacity: .4; } }
@keyframes ja-glow { 0% { opacity: .2; transform: translateX(-50%) scale(.8); } 50% { opacity: .5; transform: translateX(-50%) scale(1.2); } 100% { opacity: .3; transform: translateX(-50%) scale(.9); } }

.scn-she-throws-away-letter {
  background: linear-gradient(180deg, #9a8e7e 0%, #807264 50%, #5a4e40 100%),
              radial-gradient(ellipse at 50% 90%, #4a3e30 0%, transparent 60%);
}
.scn-she-throws-away-letter .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%); animation: st-sky 14s ease-in-out infinite alternate; }
.scn-she-throws-away-letter .tree-left { position: absolute; left: 3%; bottom: 50%; width: 35%; height: 60%; background: linear-gradient(180deg, #3a2e1c 0%, #1e1408 100%); border-radius: 0 40% 0 0; animation: st-tree-l 18s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-she-throws-away-letter .tree-right { position: absolute; right: 3%; bottom: 50%; width: 35%; height: 60%; background: linear-gradient(180deg, #3a2e1c 0%, #1e1408 100%); border-radius: 40% 0 0 0; animation: st-tree-r 18s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-she-throws-away-letter .stream { position: absolute; bottom: 30%; left: 0; right: 0; height: 8%; background: linear-gradient(180deg, #5a6a62 0%, #3a4a42 100%); border-radius: 20%; animation: st-stream 4s ease-in-out infinite alternate; }
.scn-she-throws-away-letter .figure { position: absolute; bottom: 25%; left: 60%; width: 35px; height: 70px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: st-figure 3s ease-in-out infinite; transform-origin: bottom center; }
.scn-she-throws-away-letter .letter { position: absolute; bottom: 38%; left: 40%; width: 14px; height: 18px; background: linear-gradient(135deg, #a0461a 0%, #6a2a0c 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(160,70,26,.5); animation: st-letter 2s ease-in-out infinite; }
.scn-she-throws-away-letter .leaf { position: absolute; width: 16px; height: 8px; background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%); border-radius: 50% 50% 0 0; filter: blur(1px); }
.scn-she-throws-away-letter .leaf-1 { top: 12%; left: 30%; animation: st-leaf-fall 9s linear infinite; }
.scn-she-throws-away-letter .leaf-2 { top: 8%; left: 70%; animation: st-leaf-fall 11s linear infinite 3s; }
.scn-she-throws-away-letter .leaf-3 { top: 18%; left: 10%; animation: st-leaf-fall 8s linear infinite 5s; }

@keyframes st-sky { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes st-tree-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(1.5deg); } 100% { transform: rotate(-1deg); } }
@keyframes st-tree-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(-1.5deg); } 100% { transform: rotate(1deg); } }
@keyframes st-stream { 0% { transform: translateX(0); background-position: 0 0; } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes st-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes st-letter { 0% { transform: translate(0, 0) rotate(0deg) scale(1); } 50% { transform: translate(20px, -20px) rotate(90deg) scale(1.3); opacity: .9; } 100% { transform: translate(40px, -40px) rotate(180deg) scale(1); opacity: .6; } }
@keyframes st-leaf-fall { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 50% { transform: translateY(50vh) rotate(200deg); opacity: .8; } 100% { transform: translateY(100vh) rotate(400deg); opacity: .3; } }

.scn-exquitsite-relief {
  background: linear-gradient(180deg, #a89a88 0%, #8a7a68 40%, #6a5a4a 100%),
              radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 60%);
}
.scn-exquitsite-relief .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #b8a898 0%, #90806e 100%); animation: er-sky 10s ease-in-out infinite alternate; }
.scn-exquitsite-relief .tree-left { position: absolute; left: 2%; bottom: 55%; width: 30%; height: 55%; background: linear-gradient(180deg, #3a2e1c 0%, #1e1408 100%); border-radius: 0 50% 0 0; animation: er-tree-l 22s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-exquitsite-relief .tree-right { position: absolute; right: 2%; bottom: 55%; width: 30%; height: 55%; background: linear-gradient(180deg, #3a2e1c 0%, #1e1408 100%); border-radius: 50% 0 0 0; animation: er-tree-r 22s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-exquitsite-relief .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #6b5e4a 0%, #4a3e2e 100%); border-radius: 50% 30% 0 0 / 30% 20% 0 0; }
.scn-exquitsite-relief .figure { position: absolute; bottom: 22%; left: 50%; width: 38px; height: 75px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: er-figure 3s ease-in-out infinite; transform-origin: bottom center; }
.scn-exquitsite-relief .hair { position: absolute; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0; filter: blur(1px); }
.scn-exquitsite-relief .hair-1 { bottom: 40%; left: 46%; width: 20px; height: 30px; transform: rotate(-15deg); animation: er-hair-1 3s ease-in-out infinite; transform-origin: top center; }
.scn-exquitsite-relief .hair-2 { bottom: 38%; left: 52%; width: 18px; height: 28px; transform: rotate(10deg); animation: er-hair-2 3.5s ease-in-out infinite; transform-origin: top center; }
.scn-exquitsite-relief .cap { position: absolute; bottom: 50%; left: 48%; width: 20px; height: 12px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a2a 100%); border-radius: 50% 50% 0 0; animation: er-cap 2s ease-in-out infinite; }
.scn-exquitsite-relief .leaf { position: absolute; top: 10%; left: 20%; width: 14px; height: 7px; background: linear-gradient(180deg, #b78a4a 0%, #8a6a3a 100%); border-radius: 50% 50% 0 0; filter: blur(1px); animation: er-leaf 8s linear infinite; }

@keyframes er-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes er-tree-l { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1.5deg); } 100% { transform: rotate(-2deg); } }
@keyframes er-tree-r { 0% { transform: rotate(1deg); } 50% { transform: rotate(-1.5deg); } 100% { transform: rotate(2deg); } }
@keyframes er-figure { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03) translateY(-2px); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes er-hair-1 { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-18deg) translateY(0); } }
@keyframes er-hair-2 { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes er-cap { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(15px, -15px) rotate(45deg); opacity: .8; } 100% { transform: translate(30px, -30px) rotate(90deg); opacity: 0; } }
@keyframes er-leaf { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 50% { transform: translateY(50vh) rotate(200deg); opacity: .7; } 100% { transform: translateY(100vh) rotate(400deg); opacity: .2; } }

.scn-beauty-returns {
  background: linear-gradient(180deg, #a0907e 0%, #807060 40%, #605040 100%),
              radial-gradient(ellipse at 50% 60%, #605040 0%, transparent 60%);
}
.scn-beauty-returns .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b8a898 0%, #90806e 100%); animation: br-sky 12s ease-in-out infinite alternate; }
.scn-beauty-returns .tree-left { position: absolute; left: 2%; bottom: 60%; width: 28%; height: 50%; background: linear-gradient(180deg, #3a2e1c 0%, #1e1408 100%); border-radius: 0 50% 0 0; animation: br-tree-l 20s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-beauty-returns .tree-right { position: absolute; right: 2%; bottom: 60%; width: 28%; height: 50%; background: linear-gradient(180deg, #3a2e1c 0%, #1e1408 100%); border-radius: 50% 0 0 0; animation: br-tree-r 20s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-beauty-returns .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #6b5e4a 0%, #4a3e2e 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-beauty-returns .head { position: absolute; bottom: 30%; left: 50%; width: 50px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: br-head 4s ease-in-out infinite; }
.scn-beauty-returns .hair { position: absolute; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0; filter: blur(1px); }
.scn-beauty-returns .hair-1 { bottom: 48%; left: 46%; width: 24px; height: 36px; transform: rotate(-20deg); animation: br-hair-1 3s ease-in-out infinite; transform-origin: top center; }
.scn-beauty-returns .hair-2 { bottom: 46%; left: 52%; width: 20px; height: 32px; transform: rotate(15deg); animation: br-hair-2 3.5s ease-in-out infinite; transform-origin: top center; }
.scn-beauty-returns .cheek-glow { position: absolute; bottom: 32%; left: 48%; width: 10px; height: 10px; background: radial-gradient(circle, #c8553d 0%, #e87858 30%, transparent 70%); border-radius: 50%; animation: br-cheek 2s ease-in-out infinite alternate; }
.scn-beauty-returns .butterfly { position: absolute; top: 20%; right: 25%; width: 18px; height: 12px; background: radial-gradient(ellipse at 50% 50%, #b78a4a 0%, #8a6a3a 100%); border-radius: 50%; clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); animation: br-butterfly 6s ease-in-out infinite; }

@keyframes br-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes br-tree-l { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1.5deg); } 100% { transform: rotate(-1.5deg); } }
@keyframes br-tree-r { 0% { transform: rotate(1deg); } 50% { transform: rotate(-1.5deg); } 100% { transform: rotate(1.5deg); } }
@keyframes br-head { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-1px); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes br-hair-1 { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-22deg) translateY(0); } }
@keyframes br-hair-2 { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(18deg) translateY(0); } }
@keyframes br-cheek { 0% { opacity: .5; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: .7; transform: scale(.9); } }
@keyframes br-butterfly { 0% { transform: translate(0, 0) rotate(0deg) scaleX(1); } 50% { transform: translate(-20px, -10px) rotate(10deg) scaleX(-1); } 100% { transform: translate(10px, -20px) rotate(-5deg) scaleX(1); } }

.scn-item-engraved-escutcheon {
  background: linear-gradient(135deg, #f0d9b5 0%, #d9b382 70%, #a67c52 100%),
              radial-gradient(circle at 20% 20%, #fce4c8 0%, transparent 50%);
}

.scn-item-engraved-escutcheon .light-shaft {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, rgba(255,235,200,0.35) 0%, transparent 50%);
  clip-path: polygon(0% 0%, 30% 0%, 70% 100%, 40% 100%);
  animation: ie-light 6s ease-in-out infinite alternate;
}

.scn-item-engraved-escutcheon .shield {
  position: absolute;
  left: 35%;
  top: 25%;
  width: 30%;
  height: 45%;
  background: #1a1a1a;
  clip-path: polygon(50% 0%, 100% 10%, 100% 75%, 50% 100%, 0% 75%, 0% 10%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 10px 30px rgba(0,0,0,0.7);
  animation: ie-shield 8s ease-in-out infinite;
}

.scn-item-engraved-escutcheon .letter-triangle {
  position: absolute;
  left: 45%;
  top: 35%;
  width: 10%;
  height: 20%;
  background: #a0461a;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  transform: translateX(-50%);
  animation: ie-triangle 4s ease-in-out infinite;
}

.scn-item-engraved-escutcheon .letter-bar {
  position: absolute;
  left: 44%;
  top: 48%;
  width: 12%;
  height: 4%;
  background: #a0461a;
  animation: ie-bar 4s ease-in-out infinite;
}

.scn-item-engraved-escutcheon .glow {
  position: absolute;
  left: 40%;
  top: 35%;
  width: 20%;
  height: 30%;
  background: radial-gradient(circle, rgba(160,70,26,0.6) 0%, transparent 70%);
  animation: ie-glow 3s ease-in-out infinite alternate;
  pointer-events: none;
}

.scn-item-engraved-escutcheon .shadow {
  position: absolute;
  left: 30%;
  top: 70%;
  width: 40%;
  height: 10%;
  background: rgba(10,10,10,0.7);
  filter: blur(8px);
  animation: ie-shadow 8s ease-in-out infinite;
}

.scn-item-engraved-escutcheon .dust {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  box-shadow:
    15% 20% 0 1px rgba(255,240,210,0.3),
    25% 45% 0 2px rgba(255,240,210,0.2),
    60% 15% 0 1px rgba(255,240,210,0.25),
    75% 60% 0 1.5px rgba(255,240,210,0.15),
    85% 30% 0 0.5px rgba(255,240,210,0.2);
  animation: ie-dust 20s linear infinite;
}

@keyframes ie-light {
  0% { transform: rotate(-2deg) scaleX(1); opacity: 0.8; }
  50% { transform: rotate(1deg) scaleX(1.02); opacity: 1; }
  100% { transform: rotate(-1deg) scaleX(0.98); opacity: 0.85; }
}

@keyframes ie-shield {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

@keyframes ie-triangle {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05); }
  100% { transform: translateX(-50%) scale(0.98); }
}

@keyframes ie-bar {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

@keyframes ie-glow {
  0% { opacity: 0.5; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1.1); }
}

@keyframes ie-shadow {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(1.1); opacity: 0.85; }
  100% { transform: scaleX(1); opacity: 0.7; }
}

@keyframes ie-dust {
  0% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 0.9; transform: translateY(-2px); }
  100% { opacity: 0.6; transform: translateY(0); }
}

/* pearl-demands-to-be-carried */
.scn-pearl-demands-to-be-carried {
  background: linear-gradient(180deg, #b8d4e8 0%, #f0dcc0 40%, #ffc857 70%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-pearl-demands-to-be-carried .pdc-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #aad0f0 0%, transparent 100%); animation: pdc-sky 8s ease-in-out infinite alternate; }
.scn-pearl-demands-to-be-carried .pdc-sun { position:absolute; top:8%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #fff8a0 0%, #ffc857 50%, transparent 70%); border-radius:50%; box-shadow:0 0 60px 20px #ffc857; animation: pdc-sun 6s ease-in-out infinite; }
.scn-pearl-demands-to-be-carried .pdc-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #9cb87a 0%, #6a8a4a 100%); border-radius:60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.15); animation: pdc-ground 12s ease-in-out infinite alternate; }
.scn-pearl-demands-to-be-carried .pdc-child-body { position:absolute; bottom:32%; left:45%; width:30px; height:45px; background: linear-gradient(180deg, #b87878 0%, #a06050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: pdc-child-body 4s ease-in-out infinite; }
.scn-pearl-demands-to-be-carried .pdc-child-arm-left { position:absolute; bottom:50%; left:42%; width:8px; height:30px; background: #b87878; border-radius:40% 40% 20% 20%; transform-origin: bottom center; animation: pdc-arm-left 2s ease-in-out infinite; }
.scn-pearl-demands-to-be-carried .pdc-child-arm-right { position:absolute; bottom:50%; left:50%; width:8px; height:30px; background: #b87878; border-radius:40% 40% 20% 20%; transform-origin: bottom center; animation: pdc-arm-right 2s ease-in-out infinite 0.3s; }
.scn-pearl-demands-to-be-carried .pdc-adult-body { position:absolute; bottom:28%; left:30%; width:45px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(0.9); box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: pdc-adult-body 5s ease-in-out infinite; }
.scn-pearl-demands-to-be-carried .pdc-adult-arm { position:absolute; bottom:38%; left:28%; width:10px; height:35px; background: #3a2a1a; border-radius:30% 30% 20% 20%; transform-origin: top center; transform: rotate(-20deg); animation: pdc-adult-arm 3s ease-in-out infinite; }
.scn-pearl-demands-to-be-carried .pdc-cloud { position:absolute; top:12%; left:10%; width:80px; height:20px; background: linear-gradient(90deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%); border-radius:50%; filter: blur(6px); animation: pdc-cloud 25s linear infinite; }
@keyframes pdc-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pdc-sun { 0%,100% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px,-2px) scale(1.05) } }
@keyframes pdc-ground { 0% { transform: translateY(0) } 100% { transform: translateY(-2px) } }
@keyframes pdc-child-body { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes pdc-arm-left { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } }
@keyframes pdc-arm-right { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(-30deg) } }
@keyframes pdc-adult-body { 0%,100% { transform: scaleX(0.9) translateY(0) } 50% { transform: scaleX(0.9) translateY(-2px) } }
@keyframes pdc-adult-arm { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-10deg) } }
@keyframes pdc-cloud { 0% { transform: translateX(-100px) } 100% { transform: translateX(120vw) } }

/* pearl-fire-in-her */
.scn-pearl-fire-in-her {
  background: linear-gradient(180deg, #ffb347 0%, #ffd080 30%, #ffe0a0 70%, #c8a060 100%), radial-gradient(ellipse at 30% 20%, #fff4d0 0%, transparent 60%);
}
.scn-pearl-fire-in-her .pfi-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffaa55 0%, #ffe0a0 100%); animation: pfi-sky 7s ease-in-out infinite alternate; }
.scn-pearl-fire-in-her .pfi-sun { position:absolute; top:5%; left:72%; width:60px; height:60px; background: radial-gradient(circle, #fff8c0 0%, #ffb040 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px #ffb040; animation: pfi-sun 4s ease-in-out infinite; }
.scn-pearl-fire-in-her .pfi-rays { position:absolute; top:3%; left:69%; width:80px; height:80px; background: repeating-conic-gradient(rgba(255,200,100,0.3) 0deg 20deg, transparent 20deg 40deg); border-radius:50%; filter: blur(2px); animation: pfi-rays 12s linear infinite; }
.scn-pearl-fire-in-her .pfi-figure-body { position:absolute; bottom:30%; left:50%; width:40px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px 10px rgba(200,80,50,0.4); animation: pfi-body 5s ease-in-out infinite; }
.scn-pearl-fire-in-her .pfi-figure-hair { position:absolute; bottom:65%; left:50%; width:38px; height:20px; transform: translateX(-50%); background: linear-gradient(180deg, #5e3a2a 0%, #3a2212 100%); border-radius:50% 50% 40% 40% / 80% 80% 40% 40%; animation: pfi-hair 6s ease-in-out infinite; }
.scn-pearl-fire-in-her .pfi-figure-dress { position:absolute; bottom:25%; left:50%; width:45px; height:50px; transform: translateX(-50%); background: linear-gradient(180deg, #b04030 0%, #7a2010 100%); border-radius:20% 20% 0 0 / 30% 30% 0 0; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); animation: pfi-dress 4s ease-in-out infinite alternate; }
.scn-pearl-fire-in-her .pfi-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 55%, rgba(255,200,100,0.15) 0%, transparent 70%); animation: pfi-glow 3s ease-in-out infinite alternate; }
@keyframes pfi-sky { 0% { opacity:0.85 } 100% { opacity:1 } }
@keyframes pfi-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.08) } }
@keyframes pfi-rays { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes pfi-body { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes pfi-hair { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } }
@keyframes pfi-dress { 0% { clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%) } 100% { clip-path: polygon(2% 0%, 98% 0%, 80% 100%, 20% 100%) } }
@keyframes pfi-glow { 0% { opacity:0.5 } 100% { opacity:1 } }

/* item-scarlet-letter-in-pearl */
.scn-item-scarlet-letter-in-pearl {
  background: linear-gradient(135deg, #f5e6c8 0%, #d9b88a 40%, #b8956a 70%, #8a6a4a 100%), radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 50%);
}
.scn-item-scarlet-letter-in-pearl .slp-background { position:absolute; inset:0; background: linear-gradient(180deg, #fff4d0 0%, #d9b88a 100%); }
.scn-item-scarlet-letter-in-pearl .slp-shadow-cast { position:absolute; bottom:0; left:20%; right:20%; height:60%; background: linear-gradient(180deg, transparent 0%, rgba(40,30,20,0.6) 100%); }
.scn-item-scarlet-letter-in-pearl .slp-figure-head { position:absolute; bottom:55%; left:50%; width:28px; height:28px; transform: translateX(-50%); background: radial-gradient(circle, #2a1a0a 0%, #0a0502 100%); border-radius:50%; box-shadow: 0 0 20px 5px rgba(0,0,0,0.4); animation: slp-head 3s ease-in-out infinite; }
.scn-item-scarlet-letter-in-pearl .slp-figure-body { position:absolute; bottom:30%; left:50%; width:45px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: slp-body 5s ease-in-out infinite; }
.scn-item-scarlet-letter-in-pearl .slp-figure-left-arm { position:absolute; bottom:48%; left:40%; width:8px; height:35px; background: #1a1a2a; border-radius:30%; transform-origin: top center; transform: rotate(-30deg); animation: slp-arm-l 4s ease-in-out infinite; }
.scn-item-scarlet-letter-in-pearl .slp-figure-right-arm { position:absolute; bottom:48%; left:52%; width:8px; height:35px; background: #1a1a2a; border-radius:30%; transform-origin: top center; transform: rotate(30deg); animation: slp-arm-r 4s ease-in-out infinite 0.5s; }
.scn-item-scarlet-letter-in-pearl .slp-figure-legs { position:absolute; bottom:18%; left:50%; width:20px; height:30px; transform: translateX(-50%); background: #1a1a2a; border-radius:20% 20% 0 0 / 40% 40% 0 0; }
.scn-item-scarlet-letter-in-pearl .slp-letter-a { position:absolute; bottom:35%; left:50%; width:30px; height:40px; transform: translateX(-50%); background: transparent; border: 3px solid rgba(180,60,40,0.8); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: slp-a 6s ease-in-out infinite; }
.scn-item-scarlet-letter-in-pearl .slp-light-ray { position:absolute; top:0; left:45%; width:10%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 60%); filter: blur(8px); animation: slp-ray 8s ease-in-out infinite alternate; }
@keyframes slp-head { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes slp-body { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) rotate(1deg) } }
@keyframes slp-arm-l { 0%,100% { transform: rotate(-30deg) } 50% { transform: rotate(-10deg) } }
@keyframes slp-arm-r { 0%,100% { transform: rotate(30deg) } 50% { transform: rotate(10deg) } }
@keyframes slp-a { 0%,100% { opacity:0.6; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } }
@keyframes slp-ray { 0% { opacity:0.2; transform: skewX(-5deg) } 100% { opacity:0.6; transform: skewX(5deg) } }

/* pearl-is-the-scarlet-letter */
.scn-pearl-is-the-scarlet-letter {
  background: linear-gradient(180deg, #4a2a1a 0%, #3a1a0a 30%, #5a3a2a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #8a4a2a 0%, transparent 60%);
}
.scn-pearl-is-the-scarlet-letter .pis-background { position:absolute; inset:0; background: linear-gradient(135deg, #5a3a2a 0%, #2a1a0a 100%); }
.scn-pearl-is-the-scarlet-letter .pis-letter-outline { position:absolute; bottom:20%; left:50%; width:80px; height:120px; transform: translateX(-50%); background: transparent; border: 4px solid #c8553d; clip-path: polygon(50% 0%, 0% 100%, 100% 100%); box-shadow: 0 0 40px 10px rgba(200,80,50,0.5); animation: pis-outline 8s ease-in-out infinite; }
.scn-pearl-is-the-scarlet-letter .pis-child-head { position:absolute; bottom:75%; left:50%; width:30px; height:30px; transform: translateX(-50%); background: radial-gradient(circle, #b87878 0%, #9a5a4a 100%); border-radius:50%; box-shadow: 0 0 20px 5px rgba(200,80,50,0.3); animation: pis-head 6s ease-in-out infinite alternate; }
.scn-pearl-is-the-scarlet-letter .pis-child-body { position:absolute; bottom:35%; left:50%; width:40px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pis-body 5s ease-in-out infinite; }
.scn-pearl-is-the-scarlet-letter .pis-child-arms { position:absolute; bottom:55%; left:50%; width:70px; height:8px; transform: translateX(-50%); background: #a0461a; border-radius:20% 20% 20% 20%; box-shadow: 0 0 10px 2px rgba(200,80,50,0.2); animation: pis-arms 4s ease-in-out infinite; }
.scn-pearl-is-the-scarlet-letter .pis-child-legs { position:absolute; bottom:18%; left:50%; width:20px; height:30px; transform: translateX(-50%); background: #5a2a1a; border-radius:20% 20% 0 0 / 40% 40% 0 0; animation: pis-legs 6s ease-in-out infinite; }
.scn-pearl-is-the-scarlet-letter .pis-accent { position:absolute; bottom:50%; left:50%; width:10px; height:60px; transform: translateX(-50%) rotate(20deg); background: #c8553d; border-radius:30%; box-shadow: 0 0 20px 5px rgba(200,80,50,0.6); animation: pis-accent 3s ease-in-out infinite alternate; }
@keyframes pis-outline { 0%,100% { opacity:0.6; transform: translateX(-50%) rotate(0deg) } 50% { opacity:1; transform: translateX(-50%) rotate(2deg) } }
@keyframes pis-head { 0% { transform: translateX(-50%) translateY(0) } 100% { transform: translateX(-50%) translateY(-3px) } }
@keyframes pis-body { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) rotate(1deg) } }
@keyframes pis-arms { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(5deg) } }
@keyframes pis-legs { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scaleY(0.95) } }
@keyframes pis-accent { 0% { transform: translateX(-50%) rotate(20deg) scaleY(1) } 100% { transform: translateX(-50%) rotate(30deg) scaleY(1.1) } }

.scn-jailer-skeptical { background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%); }
.scn-jailer-skeptical .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a1a 0%, #1a1a2a 50%, #0f0f0f 100%); animation: ja-wall 12s ease-in-out infinite alternate; }
.scn-jailer-skeptical .bars { position:absolute; left:10%; right:10%; top:0; bottom:0; background: repeating-linear-gradient(0deg, #4a3a3a 0px, #4a3a3a 4px, transparent 4px, transparent 8px); opacity:0.2; animation: ja-bars 3s ease-in-out infinite alternate; }
.scn-jailer-skeptical .lantern { position:absolute; top:10%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(circle at 50% 50%, #aa7a3a 0%, #6a4a1a 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 40px 10px rgba(170,122,58,0.6), 0 0 80px 20px rgba(170,122,58,0.3); animation: ja-lantern 2s ease-in-out infinite alternate; }
.scn-jailer-skeptical .jailer { position:absolute; bottom:20%; left:30%; width:24px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ja-figure 4s ease-in-out infinite; }
.scn-jailer-skeptical .woman { position:absolute; bottom:22%; right:30%; width:20px; height:40px; background: linear-gradient(180deg, #4a2a2a 0%, #2a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ja-woman 5s ease-in-out infinite; }
.scn-jailer-skeptical .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(0,0,0,0.8) 0%, transparent 100%); animation: ja-shadow 6s ease-in-out infinite alternate; }
@keyframes ja-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ja-bars { 0% { opacity:0.15; transform: scaleY(0.98) } 50% { opacity:0.25; transform: scaleY(1) } 100% { opacity:0.2; transform: scaleY(0.99) } }
@keyframes ja-lantern { 0% { box-shadow: 0 0 30px 8px rgba(170,122,58,0.5), 0 0 60px 15px rgba(170,122,58,0.2); } 50% { box-shadow: 0 0 50px 15px rgba(200,150,70,0.7), 0 0 100px 25px rgba(200,150,70,0.4); } 100% { box-shadow: 0 0 35px 10px rgba(170,122,58,0.5), 0 0 70px 18px rgba(170,122,58,0.2); } }
@keyframes ja-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ja-woman { 0% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(-4px) rotate(0deg); } 66% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ja-shadow { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }

.scn-chillingworth-examines-child { background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #2a1a1a 100%), radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%); }
.scn-chillingworth-examines-child .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a1a 0%, #1a1a2a 50%, #0f0f0f 100%); animation: ce-room 12s ease-in-out infinite alternate; }
.scn-chillingworth-examines-child .table { position:absolute; bottom:20%; left:25%; right:25%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); animation: ce-table 8s ease-in-out infinite alternate; }
.scn-chillingworth-examines-child .lamp { position:absolute; top:10%; left:40%; width:15px; height:25px; background: radial-gradient(circle at 50% 30%, #aa7a3a 0%, #6a4a1a 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 30px 8px rgba(170,122,58,0.5); animation: ce-lamp 2s ease-in-out infinite alternate; }
.scn-chillingworth-examines-child .chillingworth { position:absolute; bottom:22%; left:35%; width:22px; height:46px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ce-figure 4s ease-in-out infinite; }
.scn-chillingworth-examines-child .infant { position:absolute; bottom:28%; left:50%; width:16px; height:20px; background: radial-gradient(circle at 50% 40%, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; animation: ce-infant 3s ease-in-out infinite alternate; }
.scn-chillingworth-examines-child .chair { position:absolute; bottom:19%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; transform: rotate(5deg); animation: ce-chair 6s ease-in-out infinite alternate; }
@keyframes ce-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ce-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ce-lamp { 0% { box-shadow: 0 0 20px 5px rgba(170,122,58,0.4); } 50% { box-shadow: 0 0 40px 10px rgba(200,150,70,0.6); } 100% { box-shadow: 0 0 25px 6px rgba(170,122,58,0.4); } }
@keyframes ce-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ce-infant { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes ce-chair { 0% { transform: rotate(4deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(4deg) } }

.scn-alchemy-and-simples { background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 50%, #2a2a1a 100%), radial-gradient(ellipse at 50% 90%, #3a3a1a 0%, transparent 70%); }
.scn-alchemy-and-simples .bg-shelf { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a2a 50%, #0f0f0f 100%); animation: as-shelf 12s ease-in-out infinite alternate; }
.scn-alchemy-and-simples .table { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); animation: as-table 8s ease-in-out infinite alternate; }
.scn-alchemy-and-simples .flask { position:absolute; bottom:30%; left:45%; width:20px; height:30px; background: radial-gradient(circle at 50% 40%, rgba(100,200,150,0.4) 0%, rgba(50,150,100,0.6) 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; border: 1px solid rgba(100,200,150,0.3); animation: as-flask 5s ease-in-out infinite alternate; }
.scn-alchemy-and-simples .vapor { position:absolute; bottom:55%; left:45%; width:15px; height:20px; background: radial-gradient(circle, rgba(200,200,255,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(4px); animation: as-vapor 4s ease-in-out infinite; }
.scn-alchemy-and-simples .figure { position:absolute; bottom:22%; right:15%; width:24px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as-figure 4s ease-in-out infinite; }
.scn-alchemy-and-simples .book { position:absolute; bottom:20%; left:25%; width:20px; height:14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10%; animation: as-book 6s ease-in-out infinite alternate; }
.scn-alchemy-and-simples .light { position:absolute; top:15%; left:50%; width:10px; height:10px; background: radial-gradient(circle, #ddaa55 0%, transparent 70%); animation: as-light 2s ease-in-out infinite alternate; }
@keyframes as-shelf { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes as-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes as-flask { 0% { transform: scale(1) } 50% { transform: scale(1.03) rotate(2deg) } 100% { transform: scale(1) } }
@keyframes as-vapor { 0% { transform: translateY(0) scale(1); opacity:0.3 } 50% { transform: translateY(-10px) scale(1.5); opacity:0.5 } 100% { transform: translateY(0) scale(1); opacity:0.3 } }
@keyframes as-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(-3px) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes as-book { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes as-light { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }

.scn-chillingworth-reassures { background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #2a1a1a 100%), radial-gradient(ellipse at 60% 60%, #3a2a1a 0%, transparent 60%); }
.scn-chillingworth-reassures .bg-shadow { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2a 0%, #0f0f1a 50%, #2a1a1a 100%); animation: cr-shadow 12s ease-in-out infinite alternate; }
.scn-chillingworth-reassures .figure { position:absolute; bottom:20%; left:20%; width:28px; height:52px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-figure 4s ease-in-out infinite; }
.scn-chillingworth-reassures .babe { position:absolute; bottom:25%; left:35%; width:18px; height:22px; background: radial-gradient(circle at 50% 40%, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; animation: cr-babe 3s ease-in-out infinite alternate; }
.scn-chillingworth-reassures .hand { position:absolute; bottom:30%; left:30%; width:10px; height:16px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 40% 40% 60%; transform: rotate(-20deg); animation: cr-hand 2s ease-in-out infinite alternate; }
.scn-chillingworth-reassures .cup { position:absolute; bottom:32%; left:28%; width:12px; height:10px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 30% 30%; animation: cr-cup 4s ease-in-out infinite alternate; }
.scn-chillingworth-reassures .glow { position:absolute; top:10%; left:50%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,150,70,0.2) 0%, transparent 70%); animation: cr-glow 3s ease-in-out infinite alternate; }
@keyframes cr-shadow { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cr-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cr-babe { 0% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-1px) } 100% { transform: scale(1) } }
@keyframes cr-hand { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes cr-cup { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes cr-glow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-old-dame-tale { background: linear-gradient(180deg, #2c2c3a 0%, #1a1a24 50%, #3a2a2a 100%), radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 70%); }
.scn-old-dame-tale .room-bg { position:absolute; inset:0; background:#1e1e28; opacity:.8; animation: od-room 12s ease-in-out infinite alternate; }
.scn-old-dame-tale .chimney { position:absolute; bottom:0; left:20%; right:20%; height:60%; background:#3a2a2a; border-radius: 10% 10% 0 0; }
.scn-old-dame-tale .fire-glow { position:absolute; bottom:5%; left:35%; width:30%; height:20%; background: radial-gradient(circle, #c8553d 0%, #a0461a 50%, transparent 100%); box-shadow: 0 0 60px 20px #a0461a; animation: od-fire 3s ease-in-out infinite alternate; }
.scn-old-dame-tale .dame { position:absolute; bottom:10%; left:40%; width:20%; height:40%; background:#15151e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: od-dame 4s ease-in-out infinite; }
.scn-old-dame-tale .book { position:absolute; bottom:8%; left:45%; width:8%; height:4%; background:#5e1a1d; border-radius:2px; animation: od-book 5s ease-in-out infinite; }
.scn-old-dame-tale .window { position:absolute; top:10%; right:10%; width:20%; height:30%; background:#4a5a6a; border:2px solid #2a2a3a; box-shadow: inset 0 0 10px #6a8a9a; animation: od-window 8s ease-in-out infinite alternate; }
.scn-old-dame-tale .rain { position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(100,120,140,0.1) 10px, rgba(100,120,140,0.1) 20px); animation: od-rain 0.5s linear infinite; }
@keyframes od-room { 0% { opacity:.8; filter:brightness(1) } 50% { opacity:.9; filter:brightness(.95) } 100% { opacity:.75; filter:brightness(1.05) } }
@keyframes od-fire { 0% { transform:scale(.95); opacity:.7 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(.9); opacity:.8 } }
@keyframes od-dame { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(5px) rotate(2deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes od-book { 0% { transform:rotate(0deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-5deg) } }
@keyframes od-window { 0% { opacity:.6; box-shadow:inset 0 0 5px #4a6a7a } 50% { opacity:1; box-shadow:inset 0 0 20px #8a9aaa } 100% { opacity:.7; box-shadow:inset 0 0 10px #5a7a8a } }
@keyframes od-rain { 0% { background-position:0 0 } 100% { background-position:20px 20px } }

.scn-hester-evasive-black-man { background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 50%, #2a2a1a 100%), radial-gradient(ellipse at 30% 80%, #2a3a2a 0%, transparent 60%); }
.scn-hester-evasive-black-man .forest-bg { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #1a2a1a 0px, #2a3a2a 10px, #1a2a1a 20px); animation: he-forest 15s linear infinite; }
.scn-hester-evasive-black-man .cottage { position:absolute; bottom:10%; left:5%; width:40%; height:50%; background:#2a2a1a; border-radius:5% 5% 0 0; box-shadow: 0 0 20px rgba(0,0,0,.8); }
.scn-hester-evasive-black-man .mother { position:absolute; bottom:5%; left:20%; width:15%; height:40%; background:#1a1a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: he-figure 6s ease-in-out infinite; }
.scn-hester-evasive-black-man .child { position:absolute; bottom:5%; left:35%; width:10%; height:25%; background:#1a1a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: he-figure 6s ease-in-out infinite 1s; }
.scn-hester-evasive-black-man .path { position:absolute; bottom:0; left:10%; right:10%; height:10%; background:#3a3a2a; border-radius:50% 50% 0 0 / 100% 100% 0 0; opacity:.5; }
.scn-hester-evasive-black-man .shadow { position:absolute; bottom:0; right:10%; width:30%; height:60%; background:linear-gradient(180deg, transparent 0%, #000000 100%); opacity:.4; animation: he-shadow 8s ease-in-out infinite alternate; }
@keyframes he-forest { 0% { background-position:0 0 } 100% { background-position:0 100px } }
@keyframes he-figure { 0% { transform:translateY(0) } 50% { transform:translateY(-5px) } 100% { transform:translateY(0) } }
@keyframes he-shadow { 0% { transform:scaleY(.9); opacity:.3 } 50% { transform:scaleY(1.1); opacity:.5 } 100% { transform:scaleY(.95); opacity:.4 } }

.scn-hester-confession-black-man { background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%), radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 80%); }
.scn-hester-confession-black-man .wood-bg { position:absolute; inset:0; background:#1a2a1a; animation: hc-deep 20s ease-in-out infinite alternate; }
.scn-hester-confession-black-man .trees-left { position:absolute; left:0; top:0; width:30%; height:100%; background:linear-gradient(180deg, #0a1a0a 0%, #1a2a1a 50%, #0a1a0a 100%); border-radius:0 50% 0 0; animation: hc-trees 15s ease-in-out infinite alternate; }
.scn-hester-confession-black-man .trees-right { position:absolute; right:0; top:0; width:30%; height:100%; background:linear-gradient(180deg, #0a1a0a 0%, #2a3a2a 50%, #0a1a0a 100%); border-radius:50% 0 0 0; animation: hc-trees 15s ease-in-out infinite alternate 1s; }
.scn-hester-confession-black-man .hester { position:absolute; bottom:15%; left:25%; width:15%; height:45%; background:#1a1a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hc-figure 8s ease-in-out infinite; }
.scn-hester-confession-black-man .pearl { position:absolute; bottom:15%; right:25%; width:10%; height:30%; background:#1a1a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hc-figure 8s ease-in-out infinite 2s; }
.scn-hester-confession-black-man .letter { position:absolute; bottom:40%; left:25%; width:8%; height:10%; background:#c8553d; border-radius:2px; box-shadow: 0 0 20px 5px #c8553d; animation: hc-letter 5s ease-in-out infinite; }
.scn-hester-confession-black-man .brook { position:absolute; bottom:5%; left:10%; right:10%; height:15%; background:#2a3a3a; border-radius:50% 50% 0 0 / 100% 100% 0 0; animation: hc-brook 6s ease-in-out infinite alternate; }
@keyframes hc-deep { 0% { opacity:.8; filter:brightness(.9) } 50% { opacity:1; filter:brightness(1) } 100% { opacity:.85; filter:brightness(.95) } }
@keyframes hc-trees { 0% { transform:scaleY(.95) } 50% { transform:scaleY(1.05) } 100% { transform:scaleY(.98) } }
@keyframes hc-figure { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-10px) rotate(2deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes hc-letter { 0% { opacity:.7; box-shadow:0 0 10px 2px #c8553d } 50% { opacity:1; box-shadow:0 0 30px 10px #c8553d } 100% { opacity:.8; box-shadow:0 0 15px 5px #c8553d } }
@keyframes hc-brook { 0% { transform:translateX(0) } 50% { transform:translateX(5px) } 100% { transform:translateX(-5px) } }

.scn-dell-and-brook { background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 50%, #4a5a4a 100%), radial-gradient(ellipse at 50% 100%, #5a6a5a 0%, transparent 70%); }
.scn-dell-and-brook .sky { position:absolute; inset:0; background:linear-gradient(180deg, #9aaa9a 0%, #7a8a7a 100%); animation: db-sky 20s ease-in-out infinite alternate; }
.scn-dell-and-brook .bank-left { position:absolute; bottom:10%; left:0; width:40%; height:40%; background:linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius:0 50% 0 0; box-shadow:inset 0 10px 15px rgba(0,0,0,.2); }
.scn-dell-and-brook .bank-right { position:absolute; bottom:10%; right:0; width:40%; height:40%; background:linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius:50% 0 0 0; box-shadow:inset 0 10px 15px rgba(0,0,0,.2); }
.scn-dell-and-brook .brook { position:absolute; bottom:5%; left:20%; right:20%; height:20%; background:linear-gradient(180deg, #6a8a7a 0%, #4a6a5a 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; animation: db-brook 8s ease-in-out infinite alternate; }
.scn-dell-and-brook .leaves { position:absolute; bottom:5%; left:10%; right:10%; height:10%; background: radial-gradient(circle at 20% 50%, #8a7a3a 0%, transparent 20%), radial-gradient(circle at 50% 50%, #7a6a2a 0%, transparent 30%), radial-gradient(circle at 80% 50%, #9a8a4a 0%, transparent 20%); animation: db-leaves 12s ease-in-out infinite alternate; }
.scn-dell-and-brook .branches { position:absolute; top:0; left:10%; right:10%; height:30%; background:linear-gradient(180deg, #3a4a3a 0%, transparent 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; opacity:.6; animation: db-branches 15s ease-in-out infinite alternate; }
.scn-dell-and-brook .mist { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, rgba(150,160,150,.3) 0%, transparent 70%); animation: db-mist 25s ease-in-out infinite alternate; }
@keyframes db-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes db-brook { 0% { transform:scaleY(1) translateX(0) } 50% { transform:scaleY(1.05) translateX(5px) } 100% { transform:scaleY(.95) translateX(-5px) } }
@keyframes db-leaves { 0% { opacity:.7; transform:translateY(0) } 50% { opacity:1; transform:translateY(-5px) } 100% { opacity:.8; transform:translateY(2px) } }
@keyframes db-branches { 0% { transform:scaleY(.95) } 50% { transform:scaleY(1.05) } 100% { transform:scaleY(.98) } }
@keyframes db-mist { 0% { opacity:.4; transform:scale(.95) } 50% { opacity:.7; transform:scale(1.05) } 100% { opacity:.5; transform:scale(.98) } }

/* pearl-evasive: tense + sunlit forest, Pearl turns away */
.scn-pearl-evasive {
  background:
    linear-gradient(180deg, #5b8cb8 0%, #b0d4e8 35%, #ffe8b0 65%, #8b7355 100%),
    radial-gradient(ellipse at 50% 70%, #f0c868 0%, transparent 60%);
}
.scn-pearl-evasive .bg-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #ffe8b0 100%);
  animation: pe-sky 10s ease-in-out infinite alternate;
}
.scn-pearl-evasive .bg-trees {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a6b4a 0%, #2d4a2d 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: pe-trees 15s ease-in-out infinite;
}
.scn-pearl-evasive .sunbeam {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,232,176,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: pe-beam 8s ease-in-out infinite alternate;
}
.scn-pearl-evasive .shadow-branch {
  position: absolute; top: 12%; left: 10%; width: 40%; height: 20%;
  background: rgba(0,0,0,0.15);
  border-radius: 60% 40% 50% 50%;
  filter: blur(5px);
  animation: pe-branch 6s ease-in-out infinite alternate;
}
.scn-pearl-evasive .hester-silhouette {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-hester 4s ease-in-out infinite;
}
.scn-pearl-evasive .pearl-silhouette {
  position: absolute; bottom: 30%; left: 52%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-pearl 5s ease-in-out infinite;
}
.scn-pearl-evasive .scarlet-letter {
  position: absolute; bottom: 50%; left: 36%; width: 14px; height: 18px;
  background: radial-gradient(circle, #c8553d 0%, #8b2a1a 100%);
  border-radius: 20%;
  box-shadow: 0 0 12px 3px rgba(200,85,61,0.6);
  animation: pe-letter 3s ease-in-out infinite alternate;
}
.scn-pearl-evasive .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  animation: pe-ground 12s ease-in-out infinite alternate;
}
@keyframes pe-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pe-trees { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes pe-beam { 0% { opacity:0.5; transform:rotate(-3deg) scaleY(0.95); } 50% { opacity:0.9; transform:rotate(0deg) scaleY(1); } 100% { opacity:0.6; transform:rotate(2deg) scaleY(0.98); } }
@keyframes pe-branch { 0% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(5px) rotate(1deg); } 100% { transform:translateX(-3px) rotate(0deg); } }
@keyframes pe-hester { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes pe-pearl { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(8px) rotate(3deg) scale(0.98); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes pe-letter { 0% { box-shadow:0 0 8px 2px rgba(200,85,61,0.4); } 50% { box-shadow:0 0 20px 6px rgba(200,85,61,0.8); transform:scale(1.05); } 100% { box-shadow:0 0 10px 3px rgba(200,85,61,0.5); } }
@keyframes pe-ground { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }

/* earnest-gaze: close-up two profiles, hands clasped, eye contact */
.scn-earnest-gaze {
  background:
    linear-gradient(180deg, #ffe8c0 0%, #f0d8a0 50%, #d4b080 100%),
    radial-gradient(ellipse at 40% 50%, #fff0d0 0%, transparent 60%);
}
.scn-earnest-gaze .bg-soft {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #fff5e0 0%, #e8d4b0 100%);
  animation: eg-bg 8s ease-in-out infinite alternate;
}
.scn-earnest-gaze .face-hester {
  position: absolute; bottom: 20%; left: 5%; width: 35%; height: 55%;
  background: linear-gradient(180deg, #d4a878 0%, #b89060 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 50% 40%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,0.1), inset 4px 4px 8px rgba(255,255,255,0.2);
  animation: eg-face-hester 4s ease-in-out infinite;
}
.scn-earnest-gaze .face-pearl {
  position: absolute; bottom: 20%; right: 5%; width: 25%; height: 45%;
  background: linear-gradient(180deg, #e0c898 0%, #c8a878 100%);
  border-radius: 40% 50% 40% 30% / 50% 60% 40% 50%;
  box-shadow: inset -3px -3px 6px rgba(0,0,0,0.1), inset 3px 3px 6px rgba(255,255,255,0.2);
  animation: eg-face-pearl 4s ease-in-out infinite reverse;
}
.scn-earnest-gaze .hands-clasp {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #b89060 0%, #a07848 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: eg-hands 3s ease-in-out infinite alternate;
}
.scn-earnest-gaze .eye-sparkle {
  position: absolute; bottom: 48%; left: 22%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffffff 0%, #ffe8c0 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(255,255,255,0.6);
  animation: eg-eye 2s ease-in-out infinite alternate;
}
.scn-earnest-gaze .sunlight-wash {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,232,176,0.25), transparent);
  filter: blur(10px);
  animation: eg-wash 6s ease-in-out infinite alternate;
}
.scn-earnest-gaze .shadow-hair {
  position: absolute; bottom: 70%; left: 8%; width: 30%; height: 12%;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(4px);
  animation: eg-hair 7s ease-in-out infinite alternate;
}
@keyframes eg-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes eg-face-hester { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(-1deg) scale(1.01); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes eg-face-pearl { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(1deg) scale(1.01); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes eg-hands { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(1); } }
@keyframes eg-eye { 0% { opacity:0.7; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.8; transform:scale(0.9); } }
@keyframes eg-wash { 0% { opacity:0.3; transform:translateX(-5%); } 50% { opacity:0.6; transform:translateX(0%); } 100% { opacity:0.3; transform:translateX(5%); } }
@keyframes eg-hair { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-2px) rotate(0deg); } 100% { transform:translateY(0) rotate(2deg); } }

/* mother-reflection: Hester contemplates in forest, pool reflection of Pearl */
.scn-mother-reflection {
  background:
    linear-gradient(180deg, #3a6b3a 0%, #5a8b5a 40%, #c4b88a 70%, #8b7a5a 100%),
    radial-gradient(ellipse at 30% 50%, #f0e0b0 0%, transparent 70%);
}
.scn-mother-reflection .bg-forest {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a7a4a 0%, #6b9a6b 50%, #8b7a5a 100%);
  animation: mr-forest 12s ease-in-out infinite alternate;
}
.scn-mother-reflection .hester-think {
  position: absolute; bottom: 30%; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-hester 5s ease-in-out infinite;
}
.scn-mother-reflection .pool-mirror {
  position: absolute; bottom: 5%; left: 10%; width: 35%; height: 25%;
  background: linear-gradient(180deg, #6b7a8a 0%, #4a5a6a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: mr-pool 8s ease-in-out infinite alternate;
}
.scn-mother-reflection .pearl-reflection {
  position: absolute; bottom: 8%; left: 18%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8b7a5a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: mr-reflection 6s ease-in-out infinite;
}
.scn-mother-reflection .wind-leaves {
  position: absolute; top: 20%; left: 40%; width: 30%; height: 15%;
  background: linear-gradient(135deg, #6b8a3a 0%, transparent 70%);
  filter: blur(4px);
  animation: mr-leaves 20s linear infinite;
}
.scn-mother-reflection .sun-rays {
  position: absolute; top: 0; left: 30%; width: 30%; height: 70%;
  background: linear-gradient(180deg, rgba(240,224,176,0.4) 0%, transparent 80%);
  filter: blur(8px);
  animation: mr-rays 10s ease-in-out infinite alternate;
}
.scn-mother-reflection .ripple {
  position: absolute; bottom: 15%; left: 15%; width: 12%; height: 8%;
  border-radius: 50%;
  background: transparent;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,0.2);
  animation: mr-ripple 2s ease-in-out infinite;
}
.scn-mother-reflection .shadow-thought {
  position: absolute; top: 30%; left: 5%; width: 10%; height: 20%;
  background: rgba(0,0,0,0.1);
  border-radius: 50%;
  filter: blur(6px);
  animation: mr-shadow 7s ease-in-out infinite alternate;
}
@keyframes mr-forest { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes mr-hester { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes mr-pool { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(0.98) translateY(-2px); } 100% { transform:scaleY(1) translateY(0); } }
@keyframes mr-reflection { 0% { transform:translateY(0) rotate(0deg) scale(1); } 50% { transform:translateY(-3px) rotate(2deg) scale(0.95); } 100% { transform:translateY(0) rotate(0deg) scale(1); } }
@keyframes mr-leaves { 0% { transform:translateX(0); } 100% { transform:translateX(80vw); } }
@keyframes mr-rays { 0% { opacity:0.3; transform:rotate(-2deg); } 50% { opacity:0.6; transform:rotate(0deg); } 100% { opacity:0.3; transform:rotate(2deg); } }
@keyframes mr-ripple { 0% { transform:scale(0.8); opacity:0.6; } 50% { transform:scale(1.2); opacity:0; } 100% { transform:scale(0.8); opacity:0.6; } }
@keyframes mr-shadow { 0% { opacity:0.3; transform:translateX(0); } 50% { opacity:0.5; transform:translateX(5px); } 100% { opacity:0.3; transform:translateX(0); } }

/* mother-estimate: interior cutaway, Hester judges Pearl's dual nature */
.scn-mother-estimate {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #8b7a5a 30%, #c4a878 60%, #e8d4b0 100%),
    radial-gradient(ellipse at 60% 30%, #f0d8a0 0%, transparent 70%);
}
.scn-mother-estimate .vertical-beam {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(240,216,160,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: me-beam 5s ease-in-out infinite alternate;
}
.scn-mother-estimate .pearl-left {
  position: absolute; top: 20%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #f0d8a0 0%, #c8b080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 3px rgba(240,216,160,0.5);
  animation: me-left 4s ease-in-out infinite alternate;
}
.scn-mother-estimate .pearl-right {
  position: absolute; top: 20%; right: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(0,0,0,0.5);
  animation: me-right 4s ease-in-out infinite alternate;
}
.scn-mother-estimate .hester-eyes {
  position: absolute; top: 15%; left: 45%; width: 10%; height: 10%;
  background: radial-gradient(circle, #4a3a2a 0%, #2a1a0a 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: me-eyes 3s ease-in-out infinite alternate;
}
.scn-mother-estimate .window-frame {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 80%;
  border: 4px solid #5a4a3a;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: me-frame 10s ease-in-out infinite alternate;
}
.scn-mother-estimate .sunlight-glow {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 40%;
  background: radial-gradient(ellipse, rgba(240,216,160,0.3) 0%, transparent 80%);
  animation: me-glow 6s ease-in-out infinite alternate;
}
.scn-mother-estimate .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  opacity: 0.7;
  animation: me-floor 8s ease-in-out infinite;
}
.scn-mother-estimate .scale-hand {
  position: absolute; bottom: 20%; left: 48%; width: 4%; height: 15%;
  background: #6b5a4a;
  border-radius: 20%;
  transform-origin: bottom center;
  animation: me-hand 4s ease-in-out infinite alternate;
}
@keyframes me-beam { 0% { opacity:0.4; transform:scaleY(0.9); } 50% { opacity:0.7; transform:scaleY(1.1); } 100% { opacity:0.5; transform:scaleY(0.95); } }
@keyframes me-left { 0% { transform:translateY(0) scale(1) rotate(0deg); } 50% { transform:translateY(-5px) scale(1.05) rotate(2deg); } 100% { transform:translateY(0) scale(1) rotate(0deg); } }
@keyframes me-right { 0% { transform:translateY(0) scale(1) rotate(0deg); } 50% { transform:translateY(5px) scale(0.95) rotate(-2deg); } 100% { transform:translateY(0) scale(1) rotate(0deg); } }
@keyframes me-eyes { 0% { opacity:0.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(0.2); } 100% { opacity:0.8; transform:scaleY(1); } }
@keyframes me-frame { 0% { box-shadow:inset 0 0 10px rgba(0,0,0,0.1); } 50% { box-shadow:inset 0 0 30px rgba(0,0,0,0.3); } 100% { box-shadow:inset 0 0 10px rgba(0,0,0,0.1); } }
@keyframes me-glow { 0% { opacity:0.3; transform:translateX(-5%); } 50% { opacity:0.6; transform:translateX(0%); } 100% { opacity:0.3; transform:translateX(5%); } }
@keyframes me-floor { 0% { opacity:0.7; } 50% { opacity:0.8; } 100% { opacity:0.7; } }
@keyframes me-hand { 0% { transform:rotate(-5deg); } 50% { transform:rotate(0deg); } 100% { transform:rotate(5deg); } }

/* john-wilson-voice */
.scn-john-wilson-voice {
  background: linear-gradient(180deg, #3a2e2a 0%, #5a4a3e 40%, #c8b4a0 100%),
              radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 60%);
}
.scn-john-wilson-voice .window-arch {
  position: absolute;
  top: 5%; left: 25%;
  width: 50%; height: 55%;
  background: linear-gradient(180deg, #8bb7d0 0%, #d4e8f0 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -40px 30px rgba(0,0,0,0.3);
  animation: jw-window 12s ease-in-out infinite alternate;
}
.scn-john-wilson-voice .light-beam {
  position: absolute;
  bottom: 15%; left: 30%;
  width: 3%; height: 70%;
  background: linear-gradient(0deg, rgba(255,248,231,0.6) 0%, transparent 100%);
  transform: skewX(-10deg);
  animation: jw-sunray 6s ease-in-out infinite alternate;
}
.scn-john-wilson-voice .pulpit {
  position: absolute;
  bottom: 15%; left: 40%;
  width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2e 0%, #2c1f18 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-john-wilson-voice .figure-jw {
  position: absolute;
  bottom: 18%; left: 45%;
  width: 12%; height: 38%;
  background: #1a1514;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: jw-figure 4s ease-in-out infinite;
}
.scn-john-wilson-voice .halo-jw {
  position: absolute;
  bottom: 35%; left: 44%;
  width: 16%; height: 16%;
  background: radial-gradient(circle, rgba(255,248,231,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: jw-halo 3s ease-in-out infinite alternate;
}
.scn-john-wilson-voice .book-jw {
  position: absolute;
  bottom: 16%; left: 47%;
  width: 4%; height: 5%;
  background: #3a2e2a;
  border-radius: 2px;
  transform: rotate(-5deg);
}
.scn-john-wilson-voice .shadow-line {
  position: absolute;
  bottom: 15%; left: 0; right: 0;
  height: 2%;
  background: linear-gradient(90deg, transparent, #1a1514, transparent);
  opacity: 0.8;
}
@keyframes jw-window {
  0% { transform: scaleY(1); opacity:0.8; }
  50% { transform: scaleY(1.02); opacity:1; }
  100% { transform: scaleY(1); opacity:0.85; }
}
@keyframes jw-sunray {
  0% { opacity:0.5; transform: skewX(-10deg) scaleY(0.95); }
  50% { opacity:1; transform: skewX(-5deg) scaleY(1); }
  100% { opacity:0.6; transform: skewX(-10deg) scaleY(0.95); }
}
@keyframes jw-figure {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes jw-halo {
  0% { box-shadow: 0 0 10px 5px rgba(255,248,231,0.3); opacity:0.7; }
  50% { box-shadow: 0 0 20px 10px rgba(255,248,231,0.6); opacity:1; }
  100% { box-shadow: 0 0 10px 5px rgba(255,248,231,0.3); opacity:0.7; }
}

/* wilson-addresses-hester */
.scn-wilson-addresses-hester {
  background: linear-gradient(180deg, #4a3e3a 0%, #7a6a5a 50%, #eddbc0 100%),
              radial-gradient(ellipse at 50% 10%, #fff8e7 0%, transparent 60%);
}
.scn-wilson-addresses-hester .scaffold {
  position: absolute;
  bottom: 20%; left: 10%; right: 10%;
  height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2c1f18 100%);
  border-radius: 4px;
  animation: wah-scaffold 8s ease-in-out infinite alternate;
}
.scn-wilson-addresses-hester .hester {
  position: absolute;
  bottom: 22%; left: 30%;
  width: 15%; height: 40%;
  background: #2c2221;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wah-hester 4s ease-in-out infinite;
}
.scn-wilson-addresses-hester .wilson {
  position: absolute;
  bottom: 22%; left: 50%;
  width: 12%; height: 45%;
  background: #1a1514;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wah-wilson 5s ease-in-out infinite;
}
.scn-wilson-addresses-hester .arm-wilson {
  position: absolute;
  bottom: 45%; left: 55%;
  width: 10%; height: 4%;
  background: #1a1514;
  border-radius: 0 40% 40% 0;
  transform-origin: left center;
  animation: wah-arm 5s ease-in-out infinite;
}
.scn-wilson-addresses-hester .dimmesdale-wah {
  position: absolute;
  bottom: 22%; left: 58%;
  width: 10%; height: 38%;
  background: #3a3a3a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wah-dimmesdale 6s ease-in-out infinite;
}
.scn-wilson-addresses-hester .sunburst-wah {
  position: absolute;
  top: 0; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,248,231,0.4) 0%, transparent 70%);
  animation: wah-sunburst 4s ease-in-out infinite alternate;
}
.scn-wilson-addresses-hester .crowd-wah {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 18%;
  background: repeating-linear-gradient(90deg, #1a1514 0px, #1a1514 4px, transparent 4px, transparent 8px);
  opacity: 0.5;
  animation: wah-crowd 12s linear infinite;
}
@keyframes wah-scaffold {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes wah-hester {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(0.97) translateY(-1px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes wah-wilson {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes wah-arm {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes wah-dimmesdale {
  0% { transform: translateY(0) scaleY(1); opacity:0.9; }
  50% { transform: translateY(-3px) scaleY(1.03); opacity:1; }
  100% { transform: translateY(0) scaleY(1); opacity:0.9; }
}
@keyframes wah-sunburst {
  0% { opacity:0.3; transform: scale(0.95); }
  50% { opacity:0.7; transform: scale(1.05); }
  100% { opacity:0.4; transform: scale(0.95); }
}
@keyframes wah-crowd {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}

/* governor-appeals-to-dimmesdale */
.scn-governor-appeals-to-dimmesdale {
  background: linear-gradient(180deg, #5a4a3e 0%, #8a7a6a 50%, #c8b8a8 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 50%);
}
.scn-governor-appeals-to-dimmesdale .balcony {
  position: absolute;
  bottom: 20%; left: 10%; right: 10%;
  height: 35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-governor-appeals-to-dimmesdale .column-left {
  position: absolute;
  bottom: 20%; left: 12%;
  width: 6%; height: 50%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3e 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: gad-column 15s ease-in-out infinite alternate;
}
.scn-governor-appeals-to-dimmesdale .column-right {
  position: absolute;
  bottom: 20%; right: 12%;
  width: 6%; height: 50%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3e 100%);
  border-radius: 4px;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  animation: gad-column 15s ease-in-out infinite alternate-reverse;
}
.scn-governor-appeals-to-dimmesdale .governor {
  position: absolute;
  bottom: 25%; left: 38%;
  width: 14%; height: 48%;
  background: #2c2221;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gad-governor 5s ease-in-out infinite;
}
.scn-governor-appeals-to-dimmesdale .dimmesdale-gad {
  position: absolute;
  bottom: 25%; left: 55%;
  width: 12%; height: 42%;
  background: #3a3a3a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gad-dimmesdale 6s ease-in-out infinite alternate;
}
.scn-governor-appeals-to-dimmesdale .crowd-gad {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 20%;
  background: repeating-linear-gradient(90deg, #1a1514 0px, #1a1514 3px, transparent 3px, transparent 6px);
  opacity: 0.6;
  animation: gad-crowd 10s linear infinite;
}
.scn-governor-appeals-to-dimmesdale .sunlight-beam-gad {
  position: absolute;
  top: 0; left: 30%;
  width: 40%; height: 80%;
  background: linear-gradient(0deg, transparent 0%, rgba(255,248,231,0.2) 50%, transparent 100%);
  transform: skewX(-8deg);
  animation: gad-beam 7s ease-in-out infinite alternate;
}
@keyframes gad-column {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.01) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes gad-governor {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gad-dimmesdale {
  0% { transform: translateY(0) scaleY(1); opacity:0.9; }
  50% { transform: translateY(-2px) scaleY(1.02); opacity:1; }
  100% { transform: translateY(0) scaleY(1); opacity:0.9; }
}
@keyframes gad-crowd {
  0% { transform: translateX(0); }
  50% { transform: translateX(-3px); }
  100% { transform: translateX(0); }
}
@keyframes gad-beam {
  0% { opacity:0.2; transform: skewX(-8deg) scaleY(0.95); }
  50% { opacity:0.6; transform: skewX(-4deg) scaleY(1.05); }
  100% { opacity:0.3; transform: skewX(-8deg) scaleY(0.95); }
}

/* dimmesdale-introduction */
.scn-dimmesdale-introduction {
  background: linear-gradient(180deg, #4a3e3a 0%, #7a6a5a 40%, #c8b8a8 100%),
              radial-gradient(ellipse at 50% 20%, #fff8e7 0%, transparent 60%);
}
.scn-dimmesdale-introduction .figure-dmt {
  position: absolute;
  bottom: 15%; left: 44%;
  width: 14%; height: 45%;
  background: #2c2221;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dmt-figure 4s ease-in-out infinite;
}
.scn-dimmesdale-introduction .pulpit-dmt {
  position: absolute;
  bottom: 12%; left: 38%;
  width: 24%; height: 35%;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-dimmesdale-introduction .book-dmt {
  position: absolute;
  bottom: 14%; left: 47%;
  width: 6%; height: 7%;
  background: #3a2e2a;
  border-radius: 2px;
  transform: rotate(-3deg);
}
.scn-dimmesdale-introduction .halo-dmt {
  position: absolute;
  bottom: 38%; left: 43%;
  width: 18%; height: 18%;
  background: radial-gradient(circle, rgba(255,248,231,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: dmt-halo 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-introduction .sunrays-dmt {
  position: absolute;
  top: 0; left: 20%; width: 60%; height: 100%;
  background: repeating-linear-gradient(0deg, transparent, transparent 8%, rgba(255,248,231,0.15) 8%, rgba(255,248,231,0.15) 10%);
  animation: dmt-sunrays 20s linear infinite;
}
.scn-dimmesdale-introduction .crowd-dmt {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 15%;
  background: repeating-linear-gradient(90deg, #1a1514 0px, #1a1514 3px, transparent 3px, transparent 6px);
  opacity: 0.4;
  animation: dmt-crowd 12s linear infinite;
}
.scn-dimmesdale-introduction .shadow-dmt {
  position: absolute;
  bottom: 14%; left: 44%;
  width: 14%; height: 3%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: dmt-shadow 4s ease-in-out infinite;
}
@keyframes dmt-figure {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.03); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes dmt-halo {
  0% { box-shadow: 0 0 8px 4px rgba(255,248,231,0.2); opacity:0.6; }
  50% { box-shadow: 0 0 20px 10px rgba(255,248,231,0.5); opacity:1; }
  100% { box-shadow: 0 0 8px 4px rgba(255,248,231,0.2); opacity:0.6; }
}
@keyframes dmt-sunrays {
  0% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0); }
}
@keyframes dmt-crowd {
  0% { transform: translateX(0); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}
@keyframes dmt-shadow {
  0% { opacity:0.6; transform: scaleX(1); }
  50% { opacity:1; transform: scaleX(1.2); }
  100% { opacity:0.6; transform: scaleX(1); }
}

/* ---------- hibbins-departs (tag: hd) ---------- */
.scn-hibbins-departs {
  background: linear-gradient(180deg, #5c7a9c 0%, #c4a56a 50%, #e8c87a 100%), radial-gradient(ellipse at 40% 20%, #fce4a0 0%, transparent 60%);
}
.scn-hibbins-departs .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a6b8a 0%, transparent 100%);
  animation: hd-sky 14s ease-in-out infinite alternate;
}
.scn-hibbins-departs .sun {
  position: absolute; top: 18%; left: 35%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe080 0%, #f0b040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,176,64,0.5);
  animation: hd-sun 16s ease-in-out infinite alternate;
}
.scn-hibbins-departs .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 50% 0 0 / 10% 30% 0 0;
  animation: hd-ground 20s ease-in-out infinite alternate;
}
.scn-hibbins-departs .church-body {
  position: absolute; bottom: 28%; left: 18%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2810 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: hd-church 8s ease-in-out infinite;
}
.scn-hibbins-departs .church-steeple {
  position: absolute; bottom: calc(28% + 80px); left: calc(18% + 22px); width: 16px; height: 40px;
  background: linear-gradient(180deg, #7a6040 0%, #4a3020 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: hd-church 8s ease-in-out infinite;
}
.scn-hibbins-departs .church-window {
  position: absolute; bottom: 35%; left: calc(18% + 14px); width: 10px; height: 18px;
  background: radial-gradient(circle, #d4b06a 0%, #8a6a3a 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 12px 3px rgba(212,176,106,0.4);
  animation: hd-window 3s ease-in-out infinite alternate;
}
.scn-hibbins-departs .figure {
  position: absolute; bottom: 24%; right: 25%; 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: hd-walk 6s ease-in-out infinite;
}
.scn-hibbins-departs .shadow {
  position: absolute; bottom: 24%; right: 22%; width: 60px; height: 6px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: hd-shadow 6s ease-in-out infinite;
}
.scn-hibbins-departs .path {
  position: absolute; bottom: 24%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40%;
  filter: blur(2px);
  animation: hd-path 20s ease-in-out infinite alternate;
}
@keyframes hd-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes hd-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 hd-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes hd-church { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hd-window { 0% { box-shadow: 0 0 8px 2px rgba(212,176,106,0.3); opacity:0.7; } 50% { box-shadow: 0 0 20px 6px rgba(212,176,106,0.6); opacity:1; } 100% { box-shadow: 0 0 12px 3px rgba(212,176,106,0.4); opacity:0.8; } }
@keyframes hd-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(20px) translateY(0) rotate(0); } }
@keyframes hd-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(0.8); opacity:0.3; } 100% { transform: scaleX(1); opacity:0.5; } }
@keyframes hd-path { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }

/* ---------- hester-listens-sermon (tag: hs) ---------- */
.scn-hester-listens-sermon {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5030 40%, #8a6a40 100%), radial-gradient(ellipse at 50% 60%, #c8a86a 0%, transparent 70%);
}
.scn-hester-listens-sermon .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 100%);
  animation: hs-wall 12s ease-in-out infinite alternate;
}
.scn-hester-listens-sermon .window {
  position: absolute; top: 15%; left: 20%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #b09050 0%, #705030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: hs-window 6s ease-in-out infinite alternate;
}
.scn-hester-listens-sermon .light-beam {
  position: absolute; top: 15%; left: 20%; width: 80px; height: 100%;
  background: linear-gradient(135deg, rgba(240,220,160,0.4) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: hs-beam 8s ease-in-out infinite alternate;
}
.scn-hester-listens-sermon .pew {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: hs-pew 4s ease-in-out infinite;
}
.scn-hester-listens-sermon .pulpit {
  position: absolute; bottom: 25%; right: 15%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2810 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: -4px 0 12px rgba(0,0,0,0.4);
  animation: hs-pulpit 6s ease-in-out infinite alternate;
}
.scn-hester-listens-sermon .figure-hester {
  position: absolute; bottom: 15%; left: 35%; 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: hs-figure 5s ease-in-out infinite;
}
.scn-hester-listens-sermon .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 80px; height: 8px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(6px);
  animation: hs-shadow 8s ease-in-out infinite;
}
@keyframes hs-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes hs-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.3), 0 0 30px rgba(200,168,106,0.3); } 100% { box-shadow: inset 0 0 25px rgba(0,0,0,0.4); } }
@keyframes hs-beam { 0% { opacity:0.3; transform: translateX(-5px); } 50% { opacity:0.7; transform: translateX(5px); } 100% { opacity:0.4; transform: translateX(0); } }
@keyframes hs-pew { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } }
@keyframes hs-pulpit { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes hs-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hs-shadow { 0% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(0.9); opacity:0.4; } 100% { transform: scaleX(1); opacity:0.6; } }

/* ---------- hester-hears-undertone (tag: hu) ---------- */
.scn-hester-hears-undertone {
  background: linear-gradient(180deg, #2a2a3e 0%, #4a3a5a 50%, #6a4a6a 100%), radial-gradient(ellipse at 50% 70%, #8a6a7a 0%, transparent 60%);
}
.scn-hester-hears-undertone .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #3a2a4a 100%);
  animation: hu-bg 10s ease-in-out infinite alternate;
}
.scn-hester-hears-undertone .window {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, #b09070 0%, #705050 80%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(176,144,112,0.3);
  animation: hu-window 7s ease-in-out infinite alternate;
}
.scn-hester-hears-undertone .figure {
  position: absolute; bottom: 18%; left: 25%; 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: hu-figure 8s ease-in-out infinite;
}
.scn-hester-hears-undertone .wave {
  position: absolute; bottom: 35%; left: 20%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(200,180,200,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-hester-hears-undertone .wave-1 {
  animation: hu-wave 9s ease-in-out infinite;
}
.scn-hester-hears-undertone .wave-2 {
  bottom: 40%; left: 15%; width: 100px; height: 16px;
  animation: hu-wave 9s ease-in-out infinite 3s;
}
.scn-hester-hears-undertone .wave-3 {
  bottom: 45%; left: 25%; width: 80px; height: 12px;
  animation: hu-wave 9s ease-in-out infinite 6s;
}
.scn-hester-hears-undertone .glow {
  position: absolute; bottom: 18%; left: 25%; width: 60px; height: 80px;
  background: radial-gradient(ellipse, rgba(200,180,200,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: hu-glow 5s ease-in-out infinite alternate;
}
@keyframes hu-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes hu-window { 0% { opacity:0.6; box-shadow: 0 0 20px 5px rgba(176,144,112,0.2); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(176,144,112,0.5); } 100% { opacity:0.7; box-shadow: 0 0 25px 8px rgba(176,144,112,0.3); } }
@keyframes hu-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(6px) rotate(1deg); } 75% { transform: translateX(3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes hu-wave { 0% { transform: translateY(0) scaleX(1); opacity:0; } 25% { opacity:0.5; } 50% { transform: translateY(-10px) scaleX(1.2); opacity:0.8; } 75% { opacity:0.5; } 100% { transform: translateY(0) scaleX(1); opacity:0; } }
@keyframes hu-glow { 0% { opacity:0.2; transform: scale(0.9); } 50% { opacity:0.5; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(1); } }

/* ---------- hester-hears-anguish (tag: ha) ---------- */
.scn-hester-hears-anguish {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 50%, #3a2a3a 100%), radial-gradient(ellipse at 70% 40%, #5a3a4a 0%, transparent 60%);
}
.scn-hester-hears-anguish .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a 0%, #2a1a2a 50%, #1a1a2a 100%);
  animation: ha-bg 10s ease-in-out infinite alternate;
}
.scn-hester-hears-anguish .face {
  position: absolute; bottom: 20%; left: 15%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ha-face 4s ease-in-out infinite;
}
.scn-hester-hears-anguish .hand {
  position: absolute; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-hester-hears-anguish .hand-left {
  bottom: 25%; left: 8%; 
  animation: ha-hand-left 3s ease-in-out infinite;
}
.scn-hester-hears-anguish .hand-right {
  bottom: 30%; right: 15%; 
  animation: ha-hand-right 3.5s ease-in-out infinite reverse;
}
.scn-hester-hears-anguish .tear {
  position: absolute; width: 4px; height: 8px;
  background: rgba(200,200,220,0.6);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-hester-hears-anguish .tear-1 {
  bottom: 30%; left: 30%;
  animation: ha-tear 3s ease-in infinite;
}
.scn-hester-hears-anguish .tear-2 {
  bottom: 28%; left: 22%;
  animation: ha-tear 4s ease-in infinite 1.5s;
}
.scn-hester-hears-anguish .light {
  position: absolute; top: 0; right: 0; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(200,180,200,0.1) 0%, transparent 80%);
  clip-path: polygon(30% 0, 100% 0, 100% 100%, 0% 100%);
  animation: ha-light 6s ease-in-out infinite alternate;
}
@keyframes ha-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ha-face { 0% { transform: translateX(0) rotate(-3deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes ha-hand-left { 0% { transform: translate(0,0) rotate(10deg); } 25% { transform: translate(-5px, 5px) rotate(15deg); } 50% { transform: translate(-10px, 10px) rotate(20deg); } 75% { transform: translate(-5px, 5px) rotate(15deg); } 100% { transform: translate(0,0) rotate(10deg); } }
@keyframes ha-hand-right { 0% { transform: translate(0,0) rotate(-15deg); } 25% { transform: translate(5px, -5px) rotate(-20deg); } 50% { transform: translate(10px, -10px) rotate(-25deg); } 75% { transform: translate(5px, -5px) rotate(-20deg); } 100% { transform: translate(0,0) rotate(-15deg); } }
@keyframes ha-tear { 0% { opacity:0; transform: translateY(0) scaleY(1); } 50% { opacity:0.8; transform: translateY(20px) scaleY(1.5); } 100% { opacity:0; transform: translateY(40px) scaleY(0.5); } }
@keyframes ha-light { 0% { opacity:0.2; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.05); } 100% { opacity:0.3; transform: scaleX(1); } }

.scn-green-letter-curiosity {
  background:
    linear-gradient(180deg, #fef7e0 0%, #f5e4b0 40%, #d6b87a 100%),
    radial-gradient(ellipse at 30% 80%, #fff6d0 0%, transparent 60%);
}
.scn-green-letter-curiosity .glc-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #84bce0 0%, #b8d8f0 40%, transparent 100%);
  animation: glc-sky 15s ease-in-out infinite alternate;
}
.scn-green-letter-curiosity .glc-sunrays {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(45deg, rgba(255,250,200,0.15) 0px, rgba(255,250,200,0.15) 40px, transparent 40px, transparent 80px);
  animation: glc-sunrays 20s linear infinite;
}
.scn-green-letter-curiosity .glc-mother-chest {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 60%, #b08060 0%, #5e3a2a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.4);
  animation: glc-chest 4s ease-in-out infinite alternate;
}
.scn-green-letter-curiosity .glc-letter-a {
  position: absolute; bottom: 32%; left: 45%; width: 10%; height: 14%;
  background: #6ba86b;
  clip-path: polygon(50% 0%, 0% 100%, 20% 100%, 30% 70%, 70% 70%, 80% 100%, 100% 100%);
  box-shadow: 0 0 20px 6px #90c890, 0 0 40px 12px rgba(100,180,100,0.3);
  animation: glc-glow 3s ease-in-out infinite alternate;
}
.scn-green-letter-curiosity .glc-child-silhouette {
  position: absolute; bottom: 22%; left: 35%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: glc-bob 6s ease-in-out infinite;
}
@keyframes glc-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes glc-sunrays { 0% { transform: translateX(-10px); opacity: 0.4 } 50% { transform: translateX(10px); opacity: 0.6 } 100% { transform: translateX(-10px); opacity: 0.4 } }
@keyframes glc-chest { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.015) } 100% { transform: scaleY(1) } }
@keyframes glc-glow { 0% { box-shadow: 0 0 10px 2px #90c890, 0 0 20px 6px rgba(100,180,100,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 25px 8px #b0e0b0, 0 0 50px 15px rgba(100,180,100,0.5); opacity: 1 } 100% { box-shadow: 0 0 12px 3px #90c890, 0 0 25px 7px rgba(100,180,100,0.25); opacity: 0.85 } }
@keyframes glc-bob { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }

.scn-pearl-displays-green-letter {
  background:
    linear-gradient(180deg, #fcf4d4 0%, #e8c88a 40%, #c89a5c 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 50%);
}
.scn-pearl-displays-green-letter .pdl-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7cb0d0 0%, #a0c8e8 50%, transparent 100%);
  animation: pdl-sky 12s ease-in-out infinite alternate;
}
.scn-pearl-displays-green-letter .pdl-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: pdl-ground 8s ease-in-out infinite;
}
.scn-pearl-displays-green-letter .pdl-tree-shadow {
  position: absolute; bottom: 35%; left: 10%; width: 25%; height: 50%;
  background: rgba(0,0,0,0.25);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(4px);
  animation: pdl-shadow 10s linear infinite;
}
.scn-pearl-displays-green-letter .pdl-mother-figure {
  position: absolute; bottom: 20%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: pdl-mother 5s ease-in-out infinite;
}
.scn-pearl-displays-green-letter .pdl-pearl-figure {
  position: absolute; bottom: 20%; left: 50%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pdl-dance 0.8s ease-in-out infinite;
}
.scn-pearl-displays-green-letter .pdl-letter-a {
  position: absolute; bottom: 32%; left: 23%; width: 5%; height: 8%;
  background: #6ba86b;
  clip-path: polygon(50% 0%, 0% 100%, 20% 100%, 30% 70%, 70% 70%, 80% 100%, 100% 100%);
  box-shadow: 0 0 10px 3px #80c080, 0 0 20px 6px rgba(100,180,100,0.4);
  animation: pdl-glow 1s ease-in-out infinite alternate;
}
.scn-pearl-displays-green-letter .pdl-sun {
  position: absolute; top: 10%; right: 20%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffe680 0%, rgba(255,230,128,0.2) 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,230,128,0.3);
  animation: pdl-sun 6s ease-in-out infinite;
}
@keyframes pdl-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pdl-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes pdl-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(20px) scaleX(1.1) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes pdl-mother { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pdl-dance { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-12px) rotate(8deg) } 50% { transform: translateY(0) rotate(-8deg) } 75% { transform: translateY(-10px) rotate(10deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pdl-glow { 0% { box-shadow: 0 0 8px 2px #80c080, 0 0 16px 4px rgba(100,180,100,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 20px 6px #b0e0b0, 0 0 40px 12px rgba(100,180,100,0.6); opacity: 1 } 100% { box-shadow: 0 0 10px 3px #80c080, 0 0 20px 5px rgba(100,180,100,0.35); opacity: 0.85 } }
@keyframes pdl-sun { 0% { transform: scale(0.9); opacity: 0.6 } 50% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(0.9); opacity: 0.6 } }

.scn-horn-book-lesson {
  background:
    linear-gradient(180deg, #fef5e0 0%, #f0d8a8 50%, #d4b878 100%),
    radial-gradient(ellipse at 50% 80%, #fff0c0 0%, transparent 60%);
}
.scn-horn-book-lesson .hbk-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f5e4c0 0%, #e8d0a0 50%, #d4b878 100%);
  animation: hbk-bg 20s ease-in-out infinite alternate;
}
.scn-horn-book-lesson .hbk-hornbook {
  position: absolute; bottom: 30%; left: 35%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #c8a070 0%, #a08050 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3), inset 0 -4px 8px rgba(0,0,0,0.2);
  transform-origin: bottom center;
  animation: hbk-float 7s ease-in-out infinite;
}
.scn-horn-book-lesson .hbk-letter-a {
  position: absolute; bottom: 38%; left: 43%; width: 9%; height: 12%;
  background: #6ba86b;
  clip-path: polygon(50% 0%, 0% 100%, 20% 100%, 30% 70%, 70% 70%, 80% 100%, 100% 100%);
  box-shadow: 0 0 12px 4px #80c080;
  animation: hbk-glow 5s ease-in-out infinite;
}
.scn-horn-book-lesson .hbk-child-hand {
  position: absolute; bottom: 28%; left: 30%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #c89070 0%, #a06848 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hbk-hand 8s ease-in-out infinite;
}
.scn-horn-book-lesson .hbk-mother-hand {
  position: absolute; bottom: 32%; right: 30%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #c89070 0%, #a06848 100%);
  border-radius: 30% 30% 30% 30% / 40% 40% 60% 60%;
  transform-origin: top center;
  animation: hbk-point 6s ease-in-out infinite;
}
.scn-horn-book-lesson .hbk-sun-glint {
  position: absolute; top: 20%; left: 60%; width: 4%; height: 4%;
  background: radial-gradient(circle, #fff8c0 0%, rgba(255,248,192,0) 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,248,192,0.4);
  animation: hbk-glint 3s ease-in-out infinite;
}
@keyframes hbk-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hbk-float { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes hbk-glow { 0% { opacity: 0.7; box-shadow: 0 0 8px 2px #80c080 } 50% { opacity: 1; box-shadow: 0 0 18px 6px #a0d0a0 } 100% { opacity: 0.8; box-shadow: 0 0 10px 3px #80c080 } }
@keyframes hbk-hand { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes hbk-point { 0% { transform: rotate(0deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(0deg) } }
@keyframes hbk-glint { 0% { opacity: 0.2; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.2; transform: scale(0.8) } }

.scn-minister-heart-connection {
  background:
    linear-gradient(180deg, #fcf4d4 0%, #e8c88a 40%, #c89a5c 100%),
    radial-gradient(ellipse at 50% 100%, #b89868 0%, transparent 70%);
}
.scn-minister-heart-connection .mhc-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d0a0 0%, #d4b878 50%, #b89a60 100%);
  animation: mhc-bg 8s ease-in-out infinite alternate;
}
.scn-minister-heart-connection .mhc-minister-figure {
  position: absolute; bottom: 15%; left: 20%; width: 14%; height: 50%;
  background: linear-gradient(180deg, #2a2a3a 0%, #14141e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: mhc-minister 2s ease-in-out infinite;
}
.scn-minister-heart-connection .mhc-pearl-figure {
  position: absolute; bottom: 15%; left: 50%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: mhc-pearl 1.5s ease-in-out infinite;
}
.scn-minister-heart-connection .mhc-hester-figure {
  position: absolute; bottom: 15%; right: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: mhc-hester 4s ease-in-out infinite;
}
.scn-minister-heart-connection .mhc-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: rgba(0,0,0,0.2);
  clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%);
  filter: blur(6px);
  animation: mhc-shadow 3s linear infinite;
}
.scn-minister-heart-connection .mhc-light-beam {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(45deg, rgba(255,250,200,0.1) 0px, rgba(255,250,200,0.1) 30px, transparent 30px, transparent 60px);
  animation: mhc-beam 8s ease-in-out infinite alternate;
}
@keyframes mhc-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes mhc-minister { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) scaleX(1.02) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mhc-pearl { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-8px) rotate(12deg) } 50% { transform: translateY(0) rotate(-6deg) } 75% { transform: translateY(-6px) rotate(10deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mhc-hester { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes mhc-shadow { 0% { transform: scaleY(1); opacity: 0.4 } 50% { transform: scaleY(0.95); opacity: 0.6 } 100% { transform: scaleY(1); opacity: 0.4 } }
@keyframes mhc-beam { 0% { opacity: 0.3; transform: translateX(-5px) } 50% { opacity: 0.6; transform: translateX(5px) } 100% { opacity: 0.3; transform: translateX(-5px) } }

/* Scene 1: clerical-decorum-prevails */
.scn-clerical-decorum-prevails {
  background: linear-gradient(180deg, #4a4a5e 0%, #2c2c3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 70%);
}
.scn-clerical-decorum-prevails .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #5a5a6e 0%, #3a3a4e 100%);
  animation: cdp-sky 12s ease-in-out infinite alternate;
}
.scn-clerical-decorum-prevails .mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, rgba(200,200,220,0.15) 0%, transparent 60%);
  animation: cdp-mist 20s ease-in-out infinite alternate;
}
.scn-clerical-decorum-prevails .trees-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 30% 70% 0 0 / 100% 80% 0 0;
  animation: cdp-trees 15s ease-in-out infinite alternate;
}
.scn-clerical-decorum-prevails .trees-fg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1e 100%);
  border-radius: 40% 60% 0 0 / 90% 70% 0 0;
  animation: cdp-trees 18s ease-in-out infinite alternate-reverse;
}
.scn-clerical-decorum-prevails .path {
  position: absolute; bottom: 10%; left: 35%; right: 35%; height: 12%;
  background: #2a2a2e;
  border-radius: 50% / 100% 100% 0 0;
}
.scn-clerical-decorum-prevails .figure {
  position: absolute; bottom: 15%; left: 50%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cdp-figure 4s ease-in-out infinite;
}
.scn-clerical-decorum-prevails .shadow {
  position: absolute; bottom: 12%; left: 48%; width: 30px; height: 6px;
  background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(2px);
  animation: cdp-shadow 4s ease-in-out infinite;
}
@keyframes cdp-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cdp-mist { 0% { transform: translateX(-20px) } 50% { transform: translateX(20px) } 100% { transform: translateX(-20px) } }
@keyframes cdp-trees { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cdp-figure { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(15px) rotate(0deg) } 50% { transform: translateX(30px) rotate(3deg) } 75% { transform: translateX(15px) rotate(0deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes cdp-shadow { 0% { transform: scaleX(1); opacity:0.3 } 25% { transform: scaleX(0.8); opacity:0.2 } 50% { transform: scaleX(1.2); opacity:0.4 } 75% { transform: scaleX(0.9); opacity:0.25 } 100% { transform: scaleX(1); opacity:0.3 } }

/* Scene 2: witch-lady-encounter */
.scn-witch-lady-encounter {
  background: linear-gradient(180deg, #3e3e52 0%, #262636 50%, #161626 100%), radial-gradient(ellipse at 50% 80%, #2e2e42 0%, transparent 60%);
}
.scn-witch-lady-encounter .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4e4e62 0%, #2e2e42 100%);
  animation: wle-sky 14s ease-in-out infinite alternate;
}
.scn-witch-lady-encounter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: #1a1a1e;
  border-radius: 30% 30% 0 0;
}
.scn-witch-lady-encounter .tree {
  position: absolute; bottom: 18%; right: 15%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #2e2e3e 0%, #0e0e1e 100%);
  border-radius: 6px 6px 0 0;
  transform-origin: bottom center;
  animation: wle-tree 6s ease-in-out infinite alternate;
}
.scn-witch-lady-encounter .minister {
  position: absolute; bottom: 18%; left: 25%; 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: wle-fig 5s ease-in-out infinite;
}
.scn-witch-lady-encounter .witch-body {
  position: absolute; bottom: 18%; right: 30%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #2a2a3e 0%, #121226 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wle-witch 7s ease-in-out infinite alternate;
}
.scn-witch-lady-encounter .witch-head {
  position: absolute; bottom: 62px; right: 32%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 70% 70% 30% 30% / 90% 90% 40% 40%;
  transform-origin: bottom center;
  animation: wle-head 5s ease-in-out infinite alternate;
}
.scn-witch-lady-encounter .witch-train {
  position: absolute; bottom: 18%; right: 18%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: top center;
  animation: wle-train 8s ease-in-out infinite alternate;
}
@keyframes wle-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes wle-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes wle-fig { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes wle-witch { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes wle-head { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }
@keyframes wle-train { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }

/* Scene 3: witch-taunt */
.scn-witch-taunt {
  background: linear-gradient(180deg, #2e2e42 0%, #1a1a2e 40%, #0e0e1e 100%), radial-gradient(ellipse at 80% 30%, #3a3a4e 0%, transparent 60%);
}
.scn-witch-taunt .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3e3e52 0%, #1e1e32 100%);
  animation: wta-sky 10s ease-in-out infinite alternate;
}
.scn-witch-taunt .shoulder {
  position: absolute; left: 0; bottom: 0; width: 45%; height: 65%;
  background: linear-gradient(180deg, #121226 0%, #0a0a1a 100%);
  border-radius: 0 40% 0 0;
}
.scn-witch-taunt .minister-head {
  position: absolute; left: 18%; top: 25%; width: 28px; height: 28px;
  background: #0a0a1a;
  border-radius: 50%;
  animation: wta-mhead 5s ease-in-out infinite alternate;
}
.scn-witch-taunt .witch-face {
  position: absolute; right: 12%; top: 18%; width: 36px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%);
  border-radius: 50% 10% 40% 10% / 60% 10% 50% 20%;
  transform-origin: left center;
  animation: wta-face 6s ease-in-out infinite alternate;
}
.scn-witch-taunt .witch-hat {
  position: absolute; right: 20%; top: 3%; width: 24px; height: 35px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 70% 70% 0 0;
  transform: rotate(15deg);
  animation: wta-hat 7s ease-in-out infinite alternate;
}
.scn-witch-taunt .witch-hand {
  position: absolute; right: 0%; bottom: 40%; width: 20px; height: 10px;
  background: #121226;
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: right center;
  animation: wta-hand 4s ease-in-out infinite alternate;
}
.scn-witch-taunt .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.4) 100%);
  animation: wta-shadow 3s ease-in-out infinite alternate;
}
@keyframes wta-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes wta-mhead { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wta-face { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(-8px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes wta-hat { 0% { transform: rotate(13deg) } 50% { transform: rotate(18deg) } 100% { transform: rotate(13deg) } }
@keyframes wta-hand { 0% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(1.1) rotate(10deg) } 100% { transform: scaleY(1) rotate(0deg) } }
@keyframes wta-shadow { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.5 } }

/* Scene 4: apostle-eliot-pretext */
.scn-apostle-eliot-pretext {
  background: linear-gradient(180deg, #3a3a4e 0%, #1e1e2e 40%, #10101a 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 60%);
}
.scn-apostle-eliot-pretext .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  animation: aep-sky 15s ease-in-out infinite alternate;
}
.scn-apostle-eliot-pretext .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: #14141a;
  border-radius: 20% 20% 0 0;
}
.scn-apostle-eliot-pretext .spire-tower {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 14px; height: 100px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 2px 2px 0 0;
  animation: aep-spire 8s ease-in-out infinite alternate;
}
.scn-apostle-eliot-pretext .spire-roof {
  position: absolute; bottom: 120px; left: 50%; transform: translateX(-50%);
  width: 0; height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-bottom: 30px solid #2a2a3e;
  filter: drop-shadow(0 0 4px rgba(0,0,0,0.5));
  animation: aep-roof 10s ease-in-out infinite alternate;
}
.scn-apostle-eliot-pretext .cross {
  position: absolute; bottom: 140px; left: 50%; transform: translateX(-50%);
  width: 4px; height: 20px;
  background: #3a3a4e;
  border-radius: 2px;
  box-shadow: -8px 0 0 0 #3a3a4e, 0 0 0 4px rgba(0,0,0,0.2);
  animation: aep-cross 12s ease-in-out infinite alternate;
}
.scn-apostle-eliot-pretext .witch-figure {
  position: absolute; bottom: 20%; left: 18%; width: 34px; height: 80px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: aep-witch 6s ease-in-out infinite alternate;
}
.scn-apostle-eliot-pretext .minister-figure {
  position: absolute; bottom: 20%; right: 20%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #121226 0%, #06060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aep-min 5s ease-in-out infinite alternate;
}
.scn-apostle-eliot-pretext .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: aep-shade 4s ease-in-out infinite alternate;
}
@keyframes aep-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes aep-spire { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes aep-roof { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes aep-cross { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes aep-witch { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes aep-min { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-3px) scaleY(0.95) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes aep-shade { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }

/* Scene: doubt-pearl-death */
.scn-doubt-pearl-death {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #1a0a1a 100%), radial-gradient(ellipse at 50% 20%, #3a2a3e 0%, transparent 70%);
}
.scn-doubt-pearl-death .bg-shadow {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); animation: dpd-shadow 8s ease-in-out infinite alternate;
}
.scn-doubt-pearl-death .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius: 10% 10% 0 0; animation: dpd-floor 12s ease-in-out infinite;
}
.scn-doubt-pearl-death .wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); animation: dpd-wall 15s ease-in-out infinite alternate;
}
.scn-doubt-pearl-death .window {
  position: absolute; top: 20%; left: 60%; width: 40px; height: 50px; background: linear-gradient(180deg, #4a3a4a 0%, #2a2a2a 100%); border: 2px solid #5a4a5a; border-radius: 4px; box-shadow: inset 0 0 10px #0a0a0a; animation: dpd-window 6s ease-in-out infinite alternate;
}
.scn-doubt-pearl-death .hester-figure {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 40px; background: linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dpd-hester 4s ease-in-out infinite;
}
.scn-doubt-pearl-death .pearl-figure {
  position: absolute; bottom: 28%; left: 50%; width: 14px; height: 28px; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dpd-pearl 4s ease-in-out infinite 0.5s;
}
.scn-doubt-pearl-death .scarlet-glow {
  position: absolute; bottom: 35%; left: 32%; width: 8px; height: 8px; background: radial-gradient(circle, #c8553d 0%, #8a2a1a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px #a0461a; animation: dpd-glow 3s ease-in-out infinite alternate;
}
@keyframes dpd-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes dpd-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dpd-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dpd-window { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes dpd-hester { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dpd-pearl { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-1px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dpd-glow { 0% { box-shadow: 0 0 15px #8a2a1a; opacity: 0.7; } 50% { box-shadow: 0 0 25px #c8553d; opacity: 1; } 100% { box-shadow: 0 0 10px #5e1a1d; opacity: 0.6; } }

/* Scene: new-reflection-interview */
.scn-new-reflection-interview {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 60%);
}
.scn-new-reflection-interview .bg-darkness {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%); animation: nri-dark 10s ease-in-out infinite alternate;
}
.scn-new-reflection-interview .moonbeam {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 200px; background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, transparent 100%); transform: translateX(-50%); border-radius: 10%; filter: blur(4px); animation: nri-moon 12s ease-in-out infinite alternate;
}
.scn-new-reflection-interview .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0; animation: nri-floor 8s ease-in-out infinite;
}
.scn-new-reflection-interview .hester-figure {
  position: absolute; bottom: 20%; left: 35%; width: 18px; height: 36px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nri-hester 5s ease-in-out infinite;
}
.scn-new-reflection-interview .dimmesdale-figure {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 38px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nri-dimmesdale 5s ease-in-out infinite 0.3s;
}
.scn-new-reflection-interview .shadow-pool {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); border-radius: 50%; animation: nri-shadow 6s ease-in-out infinite alternate;
}
@keyframes nri-dark { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes nri-moon { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); opacity: 0.8; } 100% { transform: translateX(-50%) scale(0.95); opacity: 1; } }
@keyframes nri-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes nri-hester { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nri-dimmesdale { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-1px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nri-shadow { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.1); opacity: 0.7; } 100% { transform: scale(0.9); opacity: 0.4; } }

/* Scene: deadlier-venom-infused */
.scn-deadlier-venom-infused {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 40%, #1a1a0a 100%), radial-gradient(ellipse at 50% 20%, #3a3a2a 0%, transparent 70%);
}
.scn-deadlier-venom-infused .bg-cave {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%); animation: dvi-cave 9s ease-in-out infinite alternate;
}
.scn-deadlier-venom-infused .fire-glow {
  position: absolute; bottom: 40%; left: 20%; width: 40px; height: 60px; background: radial-gradient(ellipse at 50% 100%, #a0461a 0%, transparent 70%); border-radius: 50%; animation: dvi-fire 4s ease-in-out infinite alternate;
}
.scn-deadlier-venom-infused .table {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 10px; background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 2px; animation: dvi-table 10s ease-in-out infinite;
}
.scn-deadlier-venom-infused .dimmesdale-figure {
  position: absolute; bottom: 25%; left: 35%; width: 22px; height: 42px; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dvi-dimmesdale 5s ease-in-out infinite;
}
.scn-deadlier-venom-infused .chillingworth-figure {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dvi-chillingworth 5s ease-in-out infinite 0.4s;
}
.scn-deadlier-venom-infused .vial-hand {
  position: absolute; bottom: 30%; left: 48%; width: 10px; height: 14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20%; transform: rotate(15deg); animation: dvi-hand 3s ease-in-out infinite;
}
.scn-deadlier-venom-infused .venom-drip {
  position: absolute; bottom: 28%; left: 49%; width: 4px; height: 8px; background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 100%); border-radius: 50% 50% 20% 20%; opacity: 0.8; animation: dvi-drip 2s ease-in-out infinite;
}
@keyframes dvi-cave { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes dvi-fire { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.1) translateY(-2px); opacity: 1; } 100% { transform: scale(0.9) translateY(2px); opacity: 0.7; } }
@keyframes dvi-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes dvi-dimmesdale { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dvi-chillingworth { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-1px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dvi-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes dvi-drip { 0% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(4px); opacity: 0.4; } 100% { transform: translateY(0); opacity: 0.8; } }

/* Scene: hester-self-blame */
.scn-hester-self-blame {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, transparent 70%);
}
.scn-hester-self-blame .bg-void {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.8) 100%); animation: hsb-void 10s ease-in-out infinite alternate;
}
.scn-hester-self-blame .floor-board {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 2px 4px rgba(0,0,0,0.5); animation: hsb-floor 8s ease-in-out infinite;
}
.scn-hester-self-blame .mirror-frame {
  position: absolute; top: 20%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border: 4px solid #4a4a5a; border-radius: 4px; box-shadow: inset 0 0 6px #0a0a0a; animation: hsb-mirror 6s ease-in-out infinite alternate;
}
.scn-hester-self-blame .hester-figure {
  position: absolute; bottom: 22%; left: 40%; width: 18px; height: 36px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hsb-hester 4s ease-in-out infinite;
}
.scn-hester-self-blame .reflection-shape {
  position: absolute; top: 35%; left: 50%; width: 18px; height: 36px; transform: translateX(-50%) scaleY(-0.8); background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity: 0.6; animation: hsb-reflection 4s ease-in-out infinite 2s;
}
.scn-hester-self-blame .letter-a-glow {
  position: absolute; bottom: 30%; left: 42%; width: 6px; height: 6px; background: radial-gradient(circle, #b87878 0%, #5e1a1d 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 12px #702243; animation: hsb-a-glow 3s ease-in-out infinite alternate;
}
.scn-hester-self-blame .shadow-bar {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 2px; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 50%, transparent 100%); animation: hsb-bar 9s ease-in-out infinite;
}
@keyframes hsb-void { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes hsb-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hsb-mirror { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes hsb-hester { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hsb-reflection { 0% { transform: translateX(-50%) scaleY(-0.8) translateY(0); } 25% { transform: translateX(-50%) scaleY(-0.8) translateY(2px); } 50% { transform: translateX(-50%) scaleY(-0.8) translateY(0); } 75% { transform: translateX(-50%) scaleY(-0.8) translateY(-2px); } 100% { transform: translateX(-50%) scaleY(-0.8) translateY(0); } }
@keyframes hsb-a-glow { 0% { box-shadow: 0 0 10px #5e1a1d; opacity: 0.6; } 50% { box-shadow: 0 0 20px #b87878; opacity: 1; } 100% { box-shadow: 0 0 8px #702243; opacity: 0.5; } }
@keyframes hsb-bar { 0% { transform: translateX(-10%); opacity: 0.2; } 50% { transform: translateX(10%); opacity: 0.6; } 100% { transform: translateX(-10%); opacity: 0.2; } }

.scn-governor-severe-aspect {
  background: linear-gradient(180deg, #f5e6d0 0%, #d4b896 100%), radial-gradient(ellipse at 60% 20%, #fffbe6 0%, transparent 60%);
}
.scn-governor-severe-aspect .wall-shadow {
  position: absolute; inset:0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(0,0,0,0.08) 20px, rgba(0,0,0,0.08) 22px);
  animation: gsa-shadow 5s ease-in-out infinite;
}
.scn-governor-severe-aspect .window {
  position: absolute; top:10%; left:20%; width:100px; height:140px;
  border:3px solid #8b7355; background: transparent; border-radius:4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.5);
}
.scn-governor-severe-aspect .window-light {
  position: absolute; top:10%; left:20%; width:100px; height:140px;
  background: linear-gradient(135deg, rgba(255,255,200,0.6) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: gsa-light 8s ease-in-out infinite alternate;
}
.scn-governor-severe-aspect .governor-figure {
  position: absolute; bottom:10%; left:45%; width:40px; height:100px;
  background: linear-gradient(180deg, #2a1f15 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 0 2px #5a4030;
  animation: gsa-figure 3s ease-in-out infinite;
}
.scn-governor-severe-aspect .armchair {
  position: absolute; bottom:8%; left:40%; width:60px; height:80px;
  background: #5a3d2b;
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: gsa-chair 10s ease-in-out infinite;
}
.scn-governor-severe-aspect .shadow-stripe {
  position: absolute; top:0; left:35%; width:5px; height:100%;
  background: rgba(0,0,0,0.2);
  transform: skewX(-10deg);
  animation: gsa-stripe 2s ease-in-out infinite alternate;
}
@keyframes gsa-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes gsa-light { 0% { opacity:0.6; transform: scale(1) rotate(0deg); } 50% { opacity:1; transform: scale(1.05) rotate(2deg); } 100% { opacity:0.7; transform: scale(0.98) rotate(-1deg); } }
@keyframes gsa-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gsa-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes gsa-stripe { 0% { transform: skewX(-10deg) scaleX(1); } 50% { transform: skewX(-12deg) scaleX(1.2); } 100% { transform: skewX(-10deg) scaleX(1); } }

.scn-john-wilson-behind {
  background: linear-gradient(180deg, #fef5e7 0%, #fce4c8 50%, #e8cba0 100%), radial-gradient(ellipse at 30% 40%, #fff8e7 0%, transparent 60%);
}
.scn-john-wilson-behind .figure-front {
  position: absolute; bottom:10%; left:30%; width:50px; height:120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e2218 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: jwb-front 6s ease-in-out infinite;
}
.scn-john-wilson-behind .figure-back {
  position: absolute; bottom:10%; left:35%; width:40px; height:110px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e20 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  z-index: -1;
  animation: jwb-back 7s ease-in-out infinite;
}
.scn-john-wilson-behind .beard {
  position: absolute; bottom:24%; left:36%; width:24px; height:30px;
  background: #ffffff;
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 10px rgba(255,255,255,0.7);
  animation: jwb-beard 4s ease-in-out infinite alternate;
}
.scn-john-wilson-behind .window-light {
  position: absolute; top:15%; right:20%; width:60px; height:80px;
  background: linear-gradient(135deg, rgba(255,255,200,0.5) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: jwb-light 10s ease-in-out infinite alternate;
}
.scn-john-wilson-behind .shadow-soft {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%);
  animation: jwb-shadow 12s ease-in-out infinite;
}
@keyframes jwb-front { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jwb-back { 0% { transform: translateY(0) rotate(0deg) scale(1); } 50% { transform: translateY(-1px) rotate(-0.5deg) scale(1.01); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes jwb-beard { 0% { transform: scale(1) rotate(0deg); opacity:0.8; } 50% { transform: scale(1.05) rotate(2deg); opacity:1; } 100% { transform: scale(1) rotate(0deg); opacity:0.9; } }
@keyframes jwb-light { 0% { opacity:0.4; transform: scale(0.95); } 50% { opacity:0.8; transform: scale(1.05) rotate(3deg); } 100% { opacity:0.5; transform: scale(0.95) rotate(-1deg); } }
@keyframes jwb-shadow { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

.scn-dimmesdale-and-chillingworth {
  background: linear-gradient(180deg, #e8d5b0 0%, #c9ad8a 50%, #a68a6a 100%), radial-gradient(ellipse at 60% 30%, #fffbe6 0%, transparent 50%);
}
.scn-dimmesdale-and-chillingworth .door-frame {
  position: absolute; top:5%; left:20%; width:60%; height:90%;
  border:4px solid #7a614a; border-radius:4px; background:transparent;
  box-shadow: inset 0 0 50px rgba(0,0,0,0.3);
  animation: dac-frame 15s ease-in-out infinite;
}
.scn-dimmesdale-and-chillingworth .shadow-stripe {
  position: absolute; top:0; left:40%; width:8px; height:100%;
  background: rgba(0,0,0,0.3);
  transform: skewX(-15deg);
  animation: dac-stripe 2s ease-in-out infinite alternate;
}
.scn-dimmesdale-and-chillingworth .figure-dim {
  position: absolute; bottom:20%; left:30%; width:30px; height:100px;
  background: linear-gradient(180deg, #3a3028 0%, #1e1812 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: dac-dim 3s ease-in-out infinite;
}
.scn-dimmesdale-and-chillingworth .figure-chil {
  position: absolute; bottom:20%; left:38%; width:35px; height:90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f15 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: dac-chil 4s ease-in-out infinite;
}
.scn-dimmesdale-and-chillingworth .hand-chil {
  position: absolute; bottom:55%; left:42%; width:15px; height:10px;
  background: #3a2e20;
  border-radius: 50% 50% 0 0;
  transform: rotate(-30deg);
  animation: dac-hand 2s ease-in-out infinite alternate;
}
.scn-dimmesdale-and-chillingworth .glimmer {
  position: absolute; top:10%; left:25%; width:30px; height:40px;
  background: radial-gradient(circle, rgba(255,255,200,0.8) 0%, transparent 70%);
  animation: dac-glimmer 3s ease-in-out infinite alternate;
}
@keyframes dac-frame { 0% { box-shadow: inset 0 0 50px rgba(0,0,0,0.3); } 50% { box-shadow: inset 0 0 80px rgba(0,0,0,0.5); } 100% { box-shadow: inset 0 0 50px rgba(0,0,0,0.3); } }
@keyframes dac-stripe { 0% { transform: skewX(-15deg) scaleX(1); opacity:0.5; } 50% { transform: skewX(-20deg) scaleX(1.2); opacity:1; } 100% { transform: skewX(-15deg) scaleX(1); opacity:0.5; } }
@keyframes dac-dim { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dac-chil { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dac-hand { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-2px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes dac-glimmer { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.9; transform: scale(1.3); } 100% { opacity:0.4; transform: scale(0.9); } }

.scn-governor-steps-to-window {
  background: linear-gradient(180deg, #f6ede0 0%, #e6d6bc 100%), radial-gradient(ellipse at 50% 30%, #fffbe6 0%, transparent 70%);
}
.scn-governor-steps-to-window .window-frame {
  position: absolute; top:10%; left:30%; width:40%; height:70%;
  border:6px solid #7a614a; border-radius:4px; background:transparent;
  animation: gsw-frame 20s ease-in-out infinite;
}
.scn-governor-steps-to-window .window-glass {
  position: absolute; top:10%; left:30%; width:40%; height:70%;
  background: linear-gradient(135deg, rgba(255,255,220,0.5) 0%, transparent 60%);
  clip-path: polygon(10% 0, 90% 0, 80% 100%, 20% 100%);
  animation: gsw-glass 8s ease-in-out infinite alternate;
}
.scn-governor-steps-to-window .curtain-left {
  position: absolute; top:0; left:25%; width:10%; height:100%;
  background: linear-gradient(180deg, #c8a882 0%, #a8845c 100%);
  border-radius: 0 20px 20px 0;
  box-shadow: 4px 0 10px rgba(0,0,0,0.3);
  transform-origin: left center;
  animation: gsw-curtain 10s ease-in-out infinite alternate;
}
.scn-governor-steps-to-window .governor-arm {
  position: absolute; bottom:25%; left:40%; width:30px; height:60px;
  background: linear-gradient(180deg, #3d2b1f 0%, #2a1f15 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: bottom center;
  animation: gsw-arm 6s ease-in-out infinite;
}
.scn-governor-steps-to-window .pearl-figure {
  position: absolute; bottom:12%; left:45%; width:20px; height:40px;
  background: linear-gradient(180deg, #f0d8c0 0%, #d4b896 100%);
  border-radius: 50% 50% 30% 30%;
  animation: gsw-pearl 4s ease-in-out infinite alternate;
}
.scn-governor-steps-to-window .hesters-shadow {
  position: absolute; top:10%; right:20%; width:60px; height:150px;
  background: rgba(0,0,0,0.2);
  border-radius: 30% 30% 20% 20%;
  animation: gsw-hester 12s ease-in-out infinite;
}
.scn-governor-steps-to-window .steps {
  position: absolute; bottom:0; left:35%; width:30%; height:10%;
  background: #8b7355;
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -2px 5px rgba(0,0,0,0.2);
  animation: gsw-steps 15s ease-in-out infinite;
}
@keyframes gsw-frame { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.1); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.2); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.1); } }
@keyframes gsw-glass { 0% { opacity:0.4; transform: scale(1) rotate(0deg); } 50% { opacity:0.8; transform: scale(1.02) rotate(1deg); } 100% { opacity:0.5; transform: scale(0.98) rotate(-0.5deg); } }
@keyframes gsw-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes gsw-arm { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes gsw-pearl { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes gsw-hester { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.02); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes gsw-steps { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }

.scn-tokens-from-pearl {
  background: linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 50%,#1a0a00 100%), radial-gradient(circle at 30% 70%,#4a3a2a 0%,transparent 70%);
}
.scn-tokens-from-pearl .bg-curtain {
  position:absolute; inset:0 0 70% 0; background:linear-gradient(90deg,#4a3a2a,#2a1a0a,#4a3a2a); border-radius:0 0 30% 30%; animation:tp-curtain 8s ease-in-out infinite;
}
.scn-tokens-from-pearl .table {
  position:absolute; bottom:15%; left:5%; right:5%; height:5%; background:#3a2a1a; border-radius:4px;
}
.scn-tokens-from-pearl .candle {
  position:absolute; bottom:15%; left:25%; width:2%; height:20%; background:linear-gradient(180deg,#f0e0c0,#c8b090); border-radius:2px 2px 4px 4px;
}
.scn-tokens-from-pearl .flame {
  position:absolute; bottom:calc(15% + 20%); left:calc(25% + 0.5%); width:1.5%; height:4%; background:radial-gradient(circle,#ffd680 0%,#f0a040 50%,transparent 70%); border-radius:50%; animation:tp-flame 1s ease-in-out infinite;
}
.scn-tokens-from-pearl .letter {
  position:absolute; bottom:20%; left:50%; width:15%; height:10%; background:#e8d0a0; border:1px solid #b09070; transform:rotate(-5deg); animation:tp-letter 6s ease-in-out infinite;
}
.scn-tokens-from-pearl .seal {
  position:absolute; bottom:22%; left:calc(50% + 5%); width:4%; height:4%; background:#c8553d; border-radius:50%; box-shadow:0 0 4px 2px #c8553d; animation:tp-seal 3s ease-in-out infinite;
}
.scn-tokens-from-pearl .inkpot {
  position:absolute; bottom:18%; left:70%; width:4%; height:6%; background:#1a1a2a; border-radius:50% 50% 30% 30% / 60% 60% 40% 40%;
}
@keyframes tp-curtain { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes tp-flame { 0%{transform:scaleY(1) scaleX(1) translateY(0);opacity:0.9} 25%{transform:scaleY(1.1) scaleX(0.9) translateY(-2px);opacity:1} 50%{transform:scaleY(0.95) scaleX(1.05) translateY(1px);opacity:0.8} 75%{transform:scaleY(1.05) scaleX(0.95) translateY(-1px);opacity:0.95} 100%{transform:scaleY(1) scaleX(1) translateY(0);opacity:0.9} }
@keyframes tp-letter { 0%{transform:rotate(-5deg) translateX(0)} 50%{transform:rotate(-3deg) translateX(4px)} 100%{transform:rotate(-5deg) translateX(0)} }
@keyframes tp-seal { 0%{box-shadow:0 0 4px 2px #c8553d;opacity:0.8} 50%{box-shadow:0 0 8px 4px #c8553d;opacity:1} 100%{box-shadow:0 0 4px 2px #c8553d;opacity:0.8} }

.scn-item-baby-garment {
  background: linear-gradient(180deg,#4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(circle at 30% 40%, #6a5a4a 0%, transparent 70%);
}
.scn-item-baby-garment .window {
  position:absolute; left:5%; top:10%; width:30%; height:50%; background:radial-gradient(ellipse at center, #f0e0c0, #c8b090); border-radius:10px; animation:bg-window 4s ease-in-out infinite alternate;
}
.scn-item-baby-garment .figure {
  position:absolute; bottom:10%; right:25%; width:10%; height:30%; background:linear-gradient(180deg,#2a1a0a,#1a0a00); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation:bg-figure 6s ease-in-out infinite;
}
.scn-item-baby-garment .hoop {
  position:absolute; bottom:25%; left:35%; width:20%; height:20%; border:2px solid #6a5a4a; border-radius:50%; background:transparent; animation:bg-hoop 8s ease-in-out infinite;
}
.scn-item-baby-garment .garment {
  position:absolute; bottom:30%; left:38%; width:12%; height:8%; background:#e8c8a0; border-radius:4px; box-shadow:inset 0 0 4px #c8a080; animation:bg-garment 5s ease-in-out infinite;
}
.scn-item-baby-garment .thread {
  position:absolute; bottom:31%; left:32%; width:8%; height:1%; background:#d4a373; transform:rotate(45deg) scaleX(1); animation:bg-thread 4s ease-in-out infinite;
}
.scn-item-baby-garment .chair {
  position:absolute; bottom:5%; left:35%; width:20%; height:10%; background:linear-gradient(180deg,#3a2a1a,#2a1a0a); border-radius:4px;
}
@keyframes bg-window { 0%{opacity:0.7} 100%{opacity:1} }
@keyframes bg-figure { 0%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-3deg) translateY(-2px)} 100%{transform:rotate(-5deg) translateY(0)} }
@keyframes bg-hoop { 0%{transform:rotate(0deg)} 50%{transform:rotate(3deg)} 100%{transform:rotate(0deg)} }
@keyframes bg-garment { 0%{transform:scale(1)} 50%{transform:scale(1.02)} 100%{transform:scale(1)} }
@keyframes bg-thread { 0%{transform:rotate(45deg) scaleX(1)} 50%{transform:rotate(48deg) scaleX(1.1)} 100%{transform:rotate(45deg) scaleX(1)} }

.scn-pearl-believed-happy {
  background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 40%, #b0a080 100%), radial-gradient(circle at 80% 20%, #ffd080 0%, transparent 60%);
}
.scn-pearl-believed-happy .sky {
  position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #e0d0b0, #c0b090); animation:ph-sky 8s ease-in-out infinite alternate;
}
.scn-pearl-believed-happy .sun {
  position:absolute; top:10%; right:15%; width:10%; height:10%; background:radial-gradient(circle, #ffd080, #e8b060); border-radius:50%; animation:ph-sun 6s ease-in-out infinite;
}
.scn-pearl-believed-happy .figure-a {
  position:absolute; bottom:20%; left:20%; width:12%; height:30%; background:linear-gradient(180deg,#6a5a4a,#4a3a2a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-3deg); animation:ph-figures 5s ease-in-out infinite;
}
.scn-pearl-believed-happy .figure-b {
  position:absolute; bottom:20%; right:20%; width:8%; height:20%; background:linear-gradient(180deg,#6a5a4a,#4a3a2a); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(3deg) scale(0.8); animation:ph-figures 5s ease-in-out infinite reverse;
}
.scn-pearl-believed-happy .flowers {
  position:absolute; bottom:5%; left:10%; right:10%; height:5%; background:radial-gradient(circle at 20% 50%, #f0a080 10%, transparent 10%), radial-gradient(circle at 50% 50%, #f0c080 10%, transparent 10%), radial-gradient(circle at 80% 50%, #f0a080 10%, transparent 10%); animation:ph-flowers 7s ease-in-out infinite alternate;
}
.scn-pearl-believed-happy .grass {
  position:absolute; bottom:0; left:0; right:0; height:5%; background:linear-gradient(180deg, #8a7a6a, #6a5a4a);
}
@keyframes ph-sky { 0%{opacity:0.8} 100%{opacity:1} }
@keyframes ph-sun { 0%{transform:scale(1);opacity:0.9} 50%{transform:scale(1.05);opacity:1} 100%{transform:scale(1);opacity:0.9} }
@keyframes ph-figures { 0%{transform:rotate(-3deg) translateY(0)} 50%{transform:rotate(-1deg) translateY(-2px)} 100%{transform:rotate(-3deg) translateY(0)} }
@keyframes ph-flowers { 0%{transform:translateY(0)} 100%{transform:translateY(-3px)} }

.scn-hester-resumes-letter {
  background: linear-gradient(180deg, #f0e0c0 0%, #b0a080 30%, #6a5a4a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 10%, #ffd080 0%, transparent 80%);
}
.scn-hester-resumes-letter .light-burst {
  position:absolute; top:0; left:30%; width:40%; height:30%; background:radial-gradient(circle, #fff0d0 0%, #f0e0c0 40%, transparent 70%); animation:rl-light 8s ease-in-out infinite;
}
.scn-hester-resumes-letter .figure {
  position:absolute; bottom:20%; left:40%; width:20%; height:40%; background:linear-gradient(180deg,#1a0a00,#0a0000); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:inset 0 0 10px #0a0000; animation:rl-figure 5s ease-in-out infinite;
}
.scn-hester-resumes-letter .letter-a {
  position:absolute; bottom:35%; left:46%; width:6%; height:8%; background:#c8553d; clip-path:polygon(50% 0%, 0% 100%, 100% 100%); animation:rl-letter 4s ease-in-out infinite;
}
.scn-hester-resumes-letter .ground {
  position:absolute; bottom:0; left:0; right:0; height:15%; background:#4a3a2a;
}
.scn-hester-resumes-letter .shadow {
  position:absolute; bottom:15%; left:40%; width:25%; height:5%; background:rgba(0,0,0,0.4); border-radius:50%; filter:blur(1px); animation:rl-shadow 6s ease-in-out infinite;
}
.scn-hester-resumes-letter .pillar {
  position:absolute; bottom:15%; left:10%; width:8%; height:70%; background:linear-gradient(180deg,#6a5a4a,#3a2a1a); border-radius:4px;
}
@keyframes rl-light { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes rl-figure { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes rl-letter { 0%{transform:scale(1)} 50%{transform:scale(1.1)} 100%{transform:scale(1)} }
@keyframes rl-shadow { 0%{transform:translateX(0) scaleX(1)} 50%{transform:translateX(5px) scaleX(1.1)} 100%{transform:translateX(0) scaleX(1)} }

.scn-comparision-to-descendants {
  background:
    linear-gradient(180deg, #8c9ea8 0%, #b0bec5 50%, #d6dbdf 100%),
    radial-gradient(ellipse at 50% 0%, #d6dbdf 0%, transparent 60%);
}

.scn-comparision-to-descendants .sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #a0b2bc 0%, transparent 100%);
  animation: cd-sky 12s ease-in-out infinite alternate;
}

.scn-comparision-to-descendants .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #6b7b6b 0%, #4a5a4a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
}

.scn-comparision-to-descendants .tree {
  position: absolute;
  bottom: 32%;
  width: 36px;
  height: 90px;
  background: linear-gradient(180deg, #4a6b3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-comparision-to-descendants .tree-left {
  left: 18%;
  animation: cd-tree 10s ease-in-out infinite;
}
.scn-comparision-to-descendants .tree-right {
  right: 22%;
  animation: cd-tree 10s ease-in-out infinite 3s;
}

.scn-comparision-to-descendants .cloud {
  position: absolute;
  background: rgba(255,255,255,0.25);
  border-radius: 50%;
  filter: blur(6px);
  animation: cd-cloud 30s ease-in-out infinite;
}
.scn-comparision-to-descendants .cloud-a {
  top: 12%;
  left: -10%;
  width: 80px;
  height: 20px;
}
.scn-comparision-to-descendants .cloud-b {
  top: 22%;
  right: -10%;
  width: 60px;
  height: 16px;
  animation-duration: 20s;
  animation-delay: 8s;
}

.scn-comparision-to-descendants .figure {
  position: absolute;
  bottom: 26%;
  width: 20px;
  height: 52px;
  background: #2c2c2c;
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform-origin: bottom center;
}
.scn-comparision-to-descendants .figure-adult {
  left: 40%;
  animation: cd-figure 4s ease-in-out infinite;
}
.scn-comparision-to-descendants .figure-child {
  left: 52%;
  width: 15px;
  height: 34px;
  bottom: 26.5%;
  animation: cd-figure 4s ease-in-out infinite 1.5s;
}

@keyframes cd-sky {
  0% { opacity: .88; }
  50% { opacity: 1; }
  100% { opacity: .92; }
}
@keyframes cd-tree {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cd-cloud {
  0% { transform: translateX(-120px) scale(1); opacity: .5; }
  50% { transform: translateX(60px) scale(1.1); opacity: .7; }
  100% { transform: translateX(200px) scale(1); opacity: .5; }
}
@keyframes cd-figure {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}

.scn-self-upbraiding {
  background: linear-gradient(180deg, #9e8a74 0%, #6a5a4a 50%), radial-gradient(ellipse at 75% 80%, #ff9933 0%, transparent 60%);
}
.scn-self-upbraiding .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #c4a882 0%, #7a6450 100%);
  animation: su-wall 12s ease-in-out infinite alternate;
}
.scn-self-upbraiding .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-self-upbraiding .window {
  position: absolute; top: 18%; left: 8%; width: 70px; height: 80px;
  background: linear-gradient(135deg, #c8e0f0 0%, #8ab4d0 100%);
  border: 4px solid #5c4a3a; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,230,180,0.3);
  animation: su-window 8s ease-in-out infinite;
}
.scn-self-upbraiding .sunbeam {
  position: absolute; top: 25%; left: 10%; width: 160px; height: 40px;
  background: linear-gradient(90deg, rgba(255,230,180,0.4) 0%, rgba(255,230,180,0) 100%);
  transform: skewY(-6deg) rotate(-8deg);
  transform-origin: left center;
  filter: blur(2px);
  animation: su-sunbeam 14s ease-in-out infinite alternate;
}
.scn-self-upbraiding .fireplace {
  position: absolute; bottom: 10%; right: 8%; width: 90px; height: 110px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-self-upbraiding .fireglow {
  position: absolute; bottom: 12%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle at 50% 60%, #ffb84d 0%, #ff7030 40%, transparent 70%);
  transform: translate(-10%, 10%);
  animation: su-fireglow 3s ease-in-out infinite alternate;
}
.scn-self-upbraiding .figure {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1e1e1e 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: su-figure 5s ease-in-out infinite;
}
.scn-self-upbraiding .shadow {
  position: absolute; bottom: 0%; left: 38%; width: 60px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  transform: scaleX(0.8);
  animation: su-shadow 5s ease-in-out infinite;
}
@keyframes su-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes su-window {
  0%,100% { box-shadow: inset 0 0 30px rgba(255,230,180,0.3); }
  50% { box-shadow: inset 0 0 50px rgba(255,230,180,0.6); }
}
@keyframes su-sunbeam {
  0% { transform: skewY(-6deg) rotate(-8deg) scaleY(1); }
  50% { transform: skewY(-4deg) rotate(-5deg) scaleY(1.1); }
  100% { transform: skewY(-8deg) rotate(-11deg) scaleY(0.95); }
}
@keyframes su-fireglow {
  0% { opacity: 0.8; transform: translate(-10%,10%) scale(0.9); }
  50% { opacity: 1; transform: translate(-8%,8%) scale(1.1); }
  100% { opacity: 0.85; transform: translate(-12%,12%) scale(0.95); }
}
@keyframes su-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes su-shadow {
  0%,100% { transform: scaleX(0.8) translateX(0); opacity: 0.7; }
  50% { transform: scaleX(0.9) translateX(4px); opacity: 0.9; }
}

.scn-young-maiden-encounter {
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 40%, #3a4a5a 100%), radial-gradient(ellipse at 50% 100%, #4a5a6a 0%, transparent 60%);
}
.scn-young-maiden-encounter .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6b7b8a 0%, #4a5a6a 100%);
  animation: yme-sky 20s linear infinite alternate;
}
.scn-young-maiden-encounter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
}
.scn-young-maiden-encounter .spire {
  position: absolute; bottom: 38%; left: 50%; width: 14px; height: 120px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  clip-path: polygon(40% 0, 60% 0, 70% 20%, 70% 100%, 30% 100%, 30% 20%);
  transform: translateX(-50%);
  animation: yme-spire 6s ease-in-out infinite;
}
.scn-young-maiden-encounter .tree-left {
  position: absolute; bottom: 35%; left: 10%; width: 80px; height: 130px;
  background: radial-gradient(circle at 50% 20%, #1a2a1a 35%, transparent 35.5%), linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  background-size: 100% 60%, 20% 100%;
  background-repeat: no-repeat;
  background-position: 0 0, 40% 60%;
  filter: blur(1px);
  animation: yme-trees 8s ease-in-out infinite alternate;
}
.scn-young-maiden-encounter .tree-right {
  position: absolute; bottom: 38%; right: 8%; width: 70px; height: 110px;
  background: radial-gradient(circle at 50% 20%, #1a2a1a 30%, transparent 30.5%), linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  background-size: 100% 55%, 18% 100%;
  background-repeat: no-repeat;
  background-position: 0 0, 45% 55%;
  filter: blur(1px);
  animation: yme-trees 9s ease-in-out infinite alternate reverse;
}
.scn-young-maiden-encounter .figure1 {
  position: absolute; bottom: 30%; left: 40%; width: 22px; 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: yme-figures 4s ease-in-out infinite;
}
.scn-young-maiden-encounter .figure2 {
  position: absolute; bottom: 32%; left: 50%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: yme-figures 4.2s ease-in-out infinite reverse;
}
.scn-young-maiden-encounter .fog {
  position: absolute; inset: 10% 0 0 0; height: 80%;
  background: linear-gradient(180deg, rgba(200,200,210,0.15) 0%, rgba(200,200,210,0.05) 100%);
  filter: blur(12px);
  animation: yme-fog 10s ease-in-out infinite alternate;
}
@keyframes yme-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 5% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes yme-spire {
  0%,100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
}
@keyframes yme-trees {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(1deg) scaleY(1.02); }
  100% { transform: rotate(-1deg) scaleY(0.98); }
}
@keyframes yme-figures {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes yme-fog {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-4px); }
  100% { opacity: 0.2; transform: translateY(2px); }
}

.scn-self-upbraiding {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2c1a10 30%, #4a2a18 60%, #2c1a10 80%, #1a0f0a 100%),
    radial-gradient(ellipse at 60% 60%, #4a2a18 0%, transparent 70%);
}
.scn-self-upbraiding .bg-room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0d0805 0%, #1a0f0a 40%, #2c1a10 70%, #0d0805 100%); animation: si2-room 30s ease-in-out infinite alternate;
}
.scn-self-upbraiding .fireplace {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 220px; transform: translateX(-60%); background: linear-gradient(180deg, #4a3020 0%, #2c1a10 30%, #1a0f0a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow: inset 0 -20px 40px rgba(0,0,0,.8), inset 0 20px 30px rgba(180,90,30,.2); animation: si2-fireplace 12s ease-in-out infinite;
}
.scn-self-upbraiding .fire-glow {
  position: absolute; bottom: 25%; left: 47%; width: 70px; height: 100px; background: radial-gradient(circle at 50% 60%, #ffa040 0%, #c06020 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(200,100,30,.6), 0 0 120px 60px rgba(150,70,15,.3); animation: si2-glow 3s ease-in-out infinite alternate;
}
.scn-self-upbraiding .study-door {
  position: absolute; bottom: 20%; right: 25%; width: 80px; height: 180px; background: linear-gradient(180deg, #1a0f0a 0%, #0d0805 100%); border-radius: 40% 0 0 0 / 60% 0 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.9), 0 0 10px rgba(255,160,60,.1); transform-origin: bottom right; animation: si2-door 15s ease-in-out infinite;
}
.scn-self-upbraiding .figure-him {
  position: absolute; bottom: 20%; right: 28%; width: 30px; height: 120px; background: linear-gradient(180deg, #1a100a 0%, #0d0805 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si2-him 8s ease-in-out infinite;
}
.scn-self-upbraiding .figure-her {
  position: absolute; bottom: 20%; left: 30%; width: 28px; height: 110px; background: linear-gradient(180deg, #2c1a10 0%, #1a0f0a 100%); border-radius: 45% 45% 35% 35% / 65% 65% 40% 40%; transform-origin: bottom center; animation: si2-her 6s ease-in-out infinite;
}
.scn-self-upbraiding .hearth-shadow {
  position: absolute; bottom: 18%; left: 30%; right: 20%; height: 60px; background: linear-gradient(180deg, rgba(0,0,0,.0) 0%, rgba(10,5,3,.6) 100%); border-radius: 50% 70% 0 0 / 100% 100% 0 0; animation: si2-shadow 4s ease-in-out infinite alternate;
}
@keyframes si2-room { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes si2-fireplace { 0%,100% { transform: translateX(-60%) scaleY(1) } 50% { transform: translateX(-58%) scaleY(1.02) } }
@keyframes si2-glow { 0% { opacity: .7; box-shadow: 0 0 40px 20px rgba(200,100,30,.4), 0 0 80px 40px rgba(150,70,15,.2) } 50% { opacity: 1; box-shadow: 0 0 80px 40px rgba(255,160,60,.8), 0 0 160px 80px rgba(200,100,30,.4) } 100% { opacity: .8; box-shadow: 0 0 50px 25px rgba(200,100,30,.5), 0 0 100px 50px rgba(150,70,15,.3) } }
@keyframes si2-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes si2-him { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(-1px) rotate(1deg) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes si2-her { 0% { transform: translateX(0) translateY(0) } 33% { transform: translateX(1px) translateY(-1px) } 66% { transform: translateX(-1px) translateY(0) } 100% { transform: translateX(0) translateY(0) } }
@keyframes si2-shadow { 0% { opacity: .4 } 50% { opacity: .8 } 100% { opacity: .5 } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.blossom { position: absolute; pointer-events: none; }
.dancer { position: absolute; pointer-events: none; }
.garland { position: absolute; pointer-events: none; }
.gem { position: absolute; pointer-events: none; }
.herb { position: absolute; pointer-events: none; }
.mote { position: absolute; pointer-events: none; }
.puff { position: absolute; pointer-events: none; }
.scn-crowd { position: absolute; pointer-events: none; }
.wing { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
/* pearl-examined - dim interior, tense examination */
.scn-pearl-examined {
  background: linear-gradient(180deg, #3b2a1a 0%, #2a1e12 40%, #1f140e 100%),
              radial-gradient(ellipse at 30% 60%, #4d3624 0%, transparent 70%);
}
.scn-pearl-examined .wall { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #4a3525 0%, #2e1f12 100%); }
.scn-pearl-examined .floor { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a2a1a 0%, #1f140e 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.6); }
.scn-pearl-examined .desk { position:absolute; bottom:30%; left:20%; width:45%; height:18%; background: linear-gradient(180deg, #6a4a32 0%, #4a3120 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 12px rgba(0,0,0,.5); }
.scn-pearl-examined .minister { position:absolute; bottom:36%; left:35%; width:24%; height:46%; background: linear-gradient(180deg, #2d1f12 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: pe-minister 5s ease-in-out infinite; }
.scn-pearl-examined .pearl-figure { position:absolute; bottom:36%; left:58%; width:12%; height:28%; background: linear-gradient(180deg, #4a3520 0%, #2e1f10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pe-pearl 4s ease-in-out infinite; }
.scn-pearl-examined .lamp-glow { position:absolute; bottom:40%; left:48%; width:8%; height:12%; background: radial-gradient(circle, #f0c070 0%, #b08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(192,128,64,0.4); animation: pe-lamp 3s ease-in-out infinite alternate; }
.scn-pearl-examined .shadow-desk { position:absolute; bottom:28%; left:20%; width:45%; height:6%; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%); border-radius: 20% 20% 0 0; }
@keyframes pe-minister { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pe-pearl { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(1px) scaleY(0.95); } 70% { transform: translateX(-1px) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes pe-lamp { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.98); } }

/* pearl-catechism - sunlit, tense questioning */
.scn-pearl-catechism {
  background: linear-gradient(180deg, #b8d0e0 0%, #8aadc4 50%, #5e7a8c 100%),
              radial-gradient(ellipse at 50% 20%, #e0f0ff 0%, transparent 60%);
}
.scn-pearl-catechism .sky-bright { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4e6f5 0%, #aac4d8 100%); }
.scn-pearl-catechism .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #8b8a5c 0%, #5e5a38 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-pearl-catechism .bench { position:absolute; bottom:32%; left:15%; width:70%; height:12%; background: linear-gradient(180deg, #7a6b4a 0%, #54482e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-pearl-catechism .clergy { position:absolute; bottom:40%; left:30%; width:18%; height:40%; background: linear-gradient(180deg, #2a2a2a 0%, #161616 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pc-clergy 6s ease-in-out infinite; }
.scn-pearl-catechism .pearl-child { position:absolute; bottom:40%; left:56%; width:10%; height:24%; background: linear-gradient(180deg, #6a4a32 0%, #4a3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc-child 4s ease-in-out infinite; }
.scn-pearl-catechism .sunbeam { position:absolute; top:10%; left:45%; width:10%; height:50%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%); filter: blur(8px); animation: pc-sunbeam 12s ease-in-out infinite alternate; }
.scn-pearl-catechism .rose-bush { position:absolute; bottom:32%; left:10%; width:16%; height:30%; background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, #8a3020 50%, transparent 100%); filter: blur(2px); animation: pc-rose 8s ease-in-out infinite; }
@keyframes pc-clergy { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pc-child { 0% { transform: translateX(0) scaleY(1); } 40% { transform: translateX(-1px) scaleY(0.95); } 80% { transform: translateX(1px) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes pc-sunbeam { 0% { opacity: 0.4; transform: translateX(0); } 50% { opacity: 0.7; transform: translateX(5px); } 100% { opacity: 0.3; transform: translateX(-5px); } }
@keyframes pc-rose { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }

/* pearl-answer - sunlit, tense with roses and Chillingworth */
.scn-pearl-answer {
  background: linear-gradient(180deg, #c4a882 0%, #9a7a5c 40%, #6a5038 100%),
              radial-gradient(ellipse at 50% 100%, #b89060 0%, transparent 70%);
}
.scn-pearl-answer .floor-sun { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a7a5a 0%, #5e4e32 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,0.3); }
.scn-pearl-answer .wall-warm { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4b896 0%, #b09070 100%); }
.scn-pearl-answer .governor-chair { position:absolute; bottom:34%; left:30%; width:20%; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%); border-radius: 10% 10% 0 0; box-shadow: 0 6px 10px rgba(0,0,0,0.5); }
.scn-pearl-answer .chillingworth { position:absolute; bottom:34%; left:18%; width:14%; height:36%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pa-chilling 7s ease-in-out infinite; }
.scn-pearl-answer .hester { position:absolute; bottom:34%; left:52%; width:16%; height:40%; background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: pa-hester 5s ease-in-out infinite; }
.scn-pearl-answer .pearl-rose { position:absolute; bottom:40%; left:45%; width:8%; height:16%; background: radial-gradient(circle at 50% 50%, #c8553d 0%, #8a3020 70%, transparent 100%); filter: blur(1px); animation: pa-rose 4s ease-in-out infinite; }
.scn-pearl-answer .rose-glow { position:absolute; bottom:38%; left:43%; width:12%; height:12%; background: radial-gradient(circle, rgba(200,80,60,0.3) 0%, transparent 100%); animation: pa-glow 3s ease-in-out infinite alternate; }
.scn-pearl-answer .whisper-motes { position:absolute; top:30%; left:20%; width:30%; height:8%; background: linear-gradient(180deg, rgba(200,180,150,0.2) 0%, transparent 100%); filter: blur(4px); animation: pa-motes 10s linear infinite; }
@keyframes pa-chilling { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pa-hester { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(1px) scaleY(0.97); } 70% { transform: translateX(-1px) scaleY(1.03); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes pa-rose { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(0.9); } }
@keyframes pa-glow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes pa-motes { 0% { transform: translateX(0); opacity: 0; } 10% { opacity: 0.3; } 90% { opacity: 0.3; } 100% { transform: translateX(30px); opacity: 0; } }

/* dimmesdale-silent - dim interior, tense confrontation */
.scn-dimmesdale-silent {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e14 50%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 60%, #4a3520 0%, transparent 70%);
}
.scn-dimmesdale-silent .ceiling { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%); }
.scn-dimmesdale-silent .wall-dark { position:absolute; inset:30% 0 25% 0; background: linear-gradient(180deg, #3a281a 0%, #1f140e 100%); }
.scn-dimmesdale-silent .hester-figure { position:absolute; bottom:30%; left:35%; width:18%; height:50%; background: linear-gradient(180deg, #4a3520 0%, #2e1f10 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ds-hester 6s ease-in-out infinite; }
.scn-dimmesdale-silent .pearl-small { position:absolute; bottom:32%; left:52%; width:8%; height:20%; background: linear-gradient(180deg, #6a4a32 0%, #4a3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-pearl 4s ease-in-out infinite; }
.scn-dimmesdale-silent .dimmesdale { position:absolute; bottom:30%; left:18%; width:16%; height:48%; background: linear-gradient(180deg, #2a2a2a 0%, #121212 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ds-dimmesdale 5s ease-in-out infinite; }
.scn-dimmesdale-silent .candle { position:absolute; bottom:50%; left:45%; width:4%; height:12%; background: linear-gradient(180deg, #f0d080 0%, #b08040 100%); border-radius: 20% 20% 10% 10%; }
.scn-dimmesdale-silent .candle-halo { position:absolute; bottom:50%; left:43%; width:8%; height:8%; background: radial-gradient(circle, rgba(240,208,128,0.4) 0%, transparent 100%); animation: ds-halo 3s ease-in-out infinite alternate; }
@keyframes ds-hester { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ds-pearl { 0% { transform: translateX(0) scaleY(1); } 30% { transform: translateX(-1px) scaleY(0.95); } 70% { transform: translateX(1px) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes ds-dimmesdale { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ds-halo { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } 100% { opacity: 0.7; transform: scale(0.95); } }

/* Scene 1: custom-house-introduction */
.scn-custom-house-introduction { background: linear-gradient(180deg, #2a2420 0%, #1e1814 50%, #14100e 100%), radial-gradient(ellipse at 35% 60%, #4a3e34 0%, transparent 70%); }
.scn-custom-house-introduction .wall { position:absolute; inset:0; background: linear-gradient(135deg, #3b332c 0%, #2b231c 100%); opacity:0.5; }
.scn-custom-house-introduction .desk-slab { position:absolute; bottom:18%; left:15%; right:15%; height:6%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px 4px 0 0; box-shadow:0 4px 12px rgba(0,0,0,0.6); }
.scn-custom-house-introduction .lamp { position:absolute; bottom:26%; left:30%; width:28px; height:36px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius:8px 8px 4px 4px; box-shadow:0 0 20px 6px #d4b878, 0 0 40px 12px rgba(212,184,120,0.3); animation: ch1-lamp 6s ease-in-out infinite alternate; }
.scn-custom-house-introduction .paper-stack { position:absolute; bottom:20.5%; left:40%; right:55%; height:5%; background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a0 100%); border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,0.4); animation: ch1-paper 9s ease-in-out infinite; }
.scn-custom-house-introduction .inkwell { position:absolute; bottom:24%; left:52%; width:14px; height:16px; background: radial-gradient(circle at 50% 30%, #2a2a3a 0%, #0a0a1a 100%); border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,0.7); }
.scn-custom-house-introduction .quill { position:absolute; bottom:30%; left:56%; width:4px; height:40px; background: linear-gradient(180deg, #e8e0d0 0%, #b0a090 100%); border-radius:2px; transform:rotate(20deg); transform-origin:bottom; animation: ch1-quill 4s ease-in-out infinite alternate; }
.scn-custom-house-introduction .window-out { position:absolute; top:15%; right:8%; width:28%; height:35%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,0.6); animation: ch1-window 12s ease-in-out infinite alternate; }
.scn-custom-house-introduction .candle { position:absolute; bottom:26%; left:62%; width:8px; height:28px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 100%); border-radius:2px; }
.scn-custom-house-introduction .flicker { box-shadow:0 0 16px 6px #f0c860, 0 0 32px 12px rgba(240,200,96,0.3); animation: ch1-flicker 2s ease-in-out infinite alternate; }
@keyframes ch1-lamp { 0% { opacity:0.8; box-shadow:0 0 12px 4px #d4b878, 0 0 24px 8px rgba(212,184,120,0.2); } 50% { opacity:1; box-shadow:0 0 20px 6px #f0d090, 0 0 40px 12px rgba(240,208,144,0.4); } 100% { opacity:0.85; box-shadow:0 0 14px 5px #d4b878, 0 0 28px 10px rgba(212,184,120,0.25); } }
@keyframes ch1-paper { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes ch1-quill { 0% { transform: rotate(18deg) translateX(0); } 50% { transform: rotate(22deg) translateX(2px); } 100% { transform: rotate(18deg) translateX(0); } }
@keyframes ch1-window { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes ch1-flicker { 0% { opacity:0.9; box-shadow:0 0 12px 4px #f0c860, 0 0 24px 8px rgba(240,200,96,0.2); } 50% { opacity:1; box-shadow:0 0 20px 6px #ffd878, 0 0 40px 12px rgba(255,216,120,0.4); } 100% { opacity:0.9; box-shadow:0 0 14px 5px #f0c860, 0 0 28px 10px rgba(240,200,96,0.25); } }

/* Scene 2: custom-house-building */
.scn-custom-house-building { background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 30%, #3a4a3a 60%, #2a3a2a 100%), radial-gradient(ellipse at 50% 10%, #8a9a7a 0%, transparent 80%); }
.scn-custom-house-building .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a8a7a 0%, #5a6a5a 100%); animation: ch2-sky 15s ease-in-out infinite alternate; }
.scn-custom-house-building .building-body { position:absolute; bottom:30%; left:20%; right:20%; height:50%; background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%); border-radius:4px 4px 0 0; box-shadow:0 6px 20px rgba(0,0,0,0.5); }
.scn-custom-house-building .portico { position:absolute; bottom:45%; left:25%; right:25%; height:18%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:6px 6px 0 0; box-shadow:0 -4px 8px rgba(0,0,0,0.3); }
.scn-custom-house-building .steps { position:absolute; bottom:30%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%); border-radius:0; box-shadow:0 2px 6px rgba(0,0,0,0.4); }
.scn-custom-house-building .eagle { position:absolute; bottom:62%; left:45%; width:10%; height:8%; background: radial-gradient(ellipse at 50% 60%, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40%; transform: scaleX(1.2); animation: ch2-eagle 20s ease-in-out infinite alternate; }
.scn-custom-house-building .grass-left { position:absolute; bottom:25%; left:5%; right:75%; height:10%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius:50% 50% 0 0; filter: blur(2px); animation: ch2-grass 8s ease-in-out infinite alternate; }
.scn-custom-house-building .grass-right { position:absolute; bottom:25%; left:75%; right:5%; height:12%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius:50% 50% 0 0; filter: blur(2px); animation: ch2-grass 10s ease-in-out infinite alternate-reverse; }
@keyframes ch2-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes ch2-eagle { 0% { transform: scaleX(1.2) translateY(0); } 50% { transform: scaleX(1.15) translateY(-2px); } 100% { transform: scaleX(1.2) translateY(0); } }
@keyframes ch2-grass { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }

/* Scene 3: custom-house-officers */
.scn-custom-house-officers { background: linear-gradient(180deg, #1e1a16 0%, #2a2420 40%, #1a1612 100%), radial-gradient(ellipse at 50% 80%, #3a322a 0%, transparent 70%); }
.scn-custom-house-officers .back-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a322a 0%, #2a221a 100%); box-shadow:inset 0 0 40px rgba(0,0,0,0.5); }
.scn-custom-house-officers .counter { position:absolute; bottom:35%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; box-shadow:0 -4px 8px rgba(0,0,0,0.4); }
.scn-custom-house-officers .officer-left { position:absolute; bottom:38%; left:12%; width:14%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ch3-seated 6s ease-in-out infinite; }
.scn-custom-house-officers .officer-cent { position:absolute; bottom:38%; left:40%; width:16%; height:24%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,0.3); animation: ch3-seated 8s ease-in-out infinite 1s; }
.scn-custom-house-officers .officer-right { position:absolute; bottom:38%; left:68%; width:13%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ch3-seated 7s ease-in-out infinite 0.5s; }
.scn-custom-house-officers .sailor-figure { position:absolute; bottom:38%; left:28%; width:8%; height:26%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: ch3-stand 5s ease-in-out infinite alternate; }
.scn-custom-house-officers .captain-figure { position:absolute; bottom:38%; left:58%; width:10%; height:28%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: ch3-stand 6s ease-in-out infinite alternate-reverse; }
.scn-custom-house-officers .light-dust { position:absolute; top:20%; left:30%; right:30%; height:50%; background: radial-gradient(ellipse at 50% 0%, rgba(220,200,160,0.08) 0%, transparent 70%); filter:blur(8px); animation: ch3-dust 20s linear infinite; }
@keyframes ch3-seated { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ch3-stand { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ch3-dust { 0% { opacity:0.3; transform: translateX(0); } 50% { opacity:0.6; transform: translateX(20px); } 100% { opacity:0.3; transform: translateX(0); } }

/* Scene 4: family-history */
.scn-family-history { background: linear-gradient(180deg, #1a1612 0%, #2a221a 40%, #1e1814 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%); }
.scn-family-history .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #14100e 0%, #2a221a 100%); opacity:0.8; animation: ch4-bg 10s ease-in-out infinite alternate; }
.scn-family-history .portrait-frame { position:absolute; bottom:30%; left:25%; right:25%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 6px 20px rgba(0,0,0,0.6), inset 0 0 30px rgba(0,0,0,0.3); }
.scn-family-history .figure-silhouette { position:absolute; bottom:32%; left:35%; right:35%; height:36%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(0.8); animation: ch4-figure 9s ease-in-out infinite; }
.scn-family-history .candle-glow { position:absolute; bottom:25%; left:48%; width:30px; height:30px; background: radial-gradient(circle, #ffd878 0%, #d4a040 40%, transparent 70%); border-radius:50%; animation: ch4-glow 4s ease-in-out infinite alternate; }
.scn-family-history .candle-wax { position:absolute; bottom:25%; left:52%; width:8px; height:20px; background: linear-gradient(180deg, #f5e6c8 0%, #c0a880 100%); border-radius:2px 2px 0 0; box-shadow:0 0 12px 4px #f0c860; }
.scn-family-history .shadow-stain { position:absolute; bottom:28%; left:30%; right:30%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 100%); filter:blur(6px); animation: ch4-stain 12s ease-in-out infinite alternate; }
@keyframes ch4-bg { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes ch4-figure { 0%,100% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.78) translateY(-4px); } }
@keyframes ch4-glow { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(0.9); } }
@keyframes ch4-stain { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-glove-found {
  background:
    linear-gradient(180deg, #fde8c4 0%, #f5d6a0 30%, #e8b870 100%),
    radial-gradient(ellipse at 50% 80%, #fce4b8 0%, transparent 70%);
}
.scn-glove-found .sunlight { position:absolute; inset:0; background: linear-gradient(135deg, #fff8e0 0%, transparent 50%); mix-blend-mode: overlay; animation: gf-sun 8s ease-in-out infinite alternate; }
.scn-glove-found .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b89a6a 0%, #8a7048 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-glove-found .hand { position:absolute; bottom:25%; left:50%; width:60px; height:90px; transform:translateX(-50%) rotate(-10deg); background: linear-gradient(180deg, #d4a574 0%, #b8845a 100%); border-radius: 40% 30% 50% 50% / 60% 40% 60% 40%; box-shadow: -8px 0 12px rgba(0,0,0,.4); animation: gf-hand 4s ease-in-out infinite; }
.scn-glove-found .glove { position:absolute; bottom:30%; left:44%; width:40px; height:50px; transform:rotate(5deg); background: linear-gradient(180deg, #e8d5b0 0%, #c4a87a 100%); border-radius: 30% 30% 40% 40%; box-shadow: 2px 2px 6px rgba(0,0,0,.5); animation: gf-glove 4s ease-in-out infinite; }
.scn-glove-found .shadow-hand { position:absolute; bottom:22%; left:54%; width:70px; height:80px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.15) 0%, transparent 70%); transform:rotate(8deg); animation: gf-shadow 4s ease-in-out infinite; }
.scn-glove-found .dust { position:absolute; top:20%; left:0; right:0; height:100%; background: radial-gradient(circle at 30% 40%, rgba(255,255,200,.2) 0%, transparent 30%), radial-gradient(circle at 70% 60%, rgba(255,255,200,.15) 0%, transparent 30%); filter: blur(4px); animation: gf-dust 12s linear infinite; }
@keyframes gf-sun { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes gf-hand { 0% { transform: translateX(-50%) rotate(-12deg) } 50% { transform: translateX(-50%) rotate(-8deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(-12deg) } }
@keyframes gf-glove { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(7deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes gf-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes gf-dust { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-20px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }

.scn-hester-resolves {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1f3a 40%, #1e1428 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a4e 0%, transparent 70%);
}
.scn-hester-resolves .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #2a1f3a 0%, #1e1428 100%); box-shadow: inset -5px 0 15px rgba(0,0,0,.5); }
.scn-hester-resolves .wall-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(270deg, #2a1f3a 0%, #1e1428 100%); box-shadow: inset 5px 0 15px rgba(0,0,0,.5); }
.scn-hester-resolves .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1e141e 0%, #0e0a12 100%); border-radius: 20% 20% 0 0 / 5% 5% 0 0; }
.scn-hester-resolves .table { position:absolute; bottom:20%; left:45%; width:80px; height:60px; background: linear-gradient(180deg, #3a2a1e 0%, #1e1412 100%); border-radius: 4%; transform: perspective(200px) rotateX(10deg); box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-hester-resolves .candle { position:absolute; bottom:28%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #e0c080 0%, #c8a060 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 20px 6px rgba(255,200,100,.4); animation: hr-candle 3s ease-in-out infinite alternate; }
.scn-hester-resolves .figure-hester { position:absolute; bottom:20%; left:35%; width:40px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hr-hester 5s ease-in-out infinite; }
.scn-hester-resolves .figure-dimmesdale { position:absolute; bottom:18%; left:55%; width:38px; height:85px; background: linear-gradient(180deg, #3a2a1e 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hr-dimmesdale 4.5s ease-in-out infinite; }
.scn-hester-resolves .shadow { position:absolute; bottom:12%; left:30%; width:120px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 80%); filter: blur(6px); animation: hr-shadow 6s ease-in-out infinite alternate; }
@keyframes hr-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(.95) } }
@keyframes hr-hester { 0% { transform: translateX(0) rotation(0) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hr-dimmesdale { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-3deg) scale(1.01) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hr-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-hester-charity {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 40%, #2e2e42 100%),
    radial-gradient(ellipse at 50% 100%, #4a4a5e 0%, transparent 70%);
}
.scn-hester-charity .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #3a3a4e 0%, #2e2e42 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.2); }
.scn-hester-charity .doorway { position:absolute; bottom:0; left:30%; width:40%; height:70%; background: linear-gradient(180deg, #4a4a5e 0%, #1e1e2e 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-hester-charity .figure-hester { position:absolute; bottom:20%; left:35%; width:45px; height:95px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-hester 6s ease-in-out infinite; }
.scn-hester-charity .figure-child { position:absolute; bottom:18%; left:50%; width:30px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-child 7s ease-in-out infinite; }
.scn-hester-charity .basket { position:absolute; bottom:22%; left:55%; width:30px; height:20px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: hc-basket 5s ease-in-out infinite; }
.scn-hester-charity .lightbeam { position:absolute; top:0; left:20%; width:60%; height:100%; background: linear-gradient(180deg, rgba(255,255,240,.1) 0%, transparent 50%); filter: blur(8px); animation: hc-light 10s ease-in-out infinite alternate; }
.scn-hester-charity .dust { position:absolute; top:10%; left:0; right:0; height:90%; background: radial-gradient(circle at 30% 20%, rgba(255,255,240,.15) 0%, transparent 40%), radial-gradient(circle at 70% 40%, rgba(255,255,240,.1) 0%, transparent 40%); filter: blur(3px); animation: hc-dust 15s linear infinite; }
@keyframes hc-hester { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(1deg) scale(1.01) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hc-child { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes hc-basket { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes hc-light { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes hc-dust { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-15px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }

.scn-public-forgiveness {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #c4b498 30%, #b4a488 100%),
    radial-gradient(ellipse at 50% 100%, #e0d0b0 0%, transparent 70%);
}
.scn-public-forgiveness .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c4b8a0 0%, #b4a890 100%); animation: pf-sky 15s ease-in-out infinite alternate; }
.scn-public-forgiveness .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-public-forgiveness .crowd { position:absolute; bottom:25%; left:10%; width:80%; height:20%; background: linear-gradient(90deg, rgba(100,80,60,.2) 0%, rgba(120,100,80,.4) 20%, rgba(100,80,60,.2) 40%, rgba(120,100,80,.3) 60%, rgba(100,80,60,.2) 80%, rgba(120,100,80,.4) 100%); filter: blur(6px); animation: pf-crowd 12s ease-in-out infinite alternate; }
.scn-public-forgiveness .figure-hester { position:absolute; bottom:20%; left:50%; width:50px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pf-hester 6s ease-in-out infinite; }
.scn-public-forgiveness .scarlet-a { position:absolute; bottom:28%; left:50%; width:20px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #b87878 0%, #a06060 100%); clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); box-shadow: 0 0 12px 3px rgba(184,120,120,.5); animation: pf-a 4s ease-in-out infinite alternate; }
.scn-public-forgiveness .light-rays { position:absolute; top:10%; left:30%; width:40%; height:60%; background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,.15) 0%, transparent 70%); filter: blur(10px); animation: pf-rays 10s ease-in-out infinite alternate; }
.scn-public-forgiveness .leaf { position:absolute; top:15%; right:20%; width:10px; height:8px; background: #8a7a5a; border-radius: 50% 0 50% 0; animation: pf-leaf 8s linear infinite; }
@keyframes pf-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes pf-crowd { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(2px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes pf-hester { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes pf-a { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.1) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes pf-rays { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes pf-leaf { 0% { transform: translate(0, 0) rotate(0) } 50% { transform: translate(-20px, 30px) rotate(180deg) } 100% { transform: translate(-40px, 60px) rotate(360deg) } }

/* office-ruin – dark mood, dim interior, abandoned office */
.scn-office-ruin {
  background:
    linear-gradient(180deg, #2a1f1a 0%, #1a1210 40%, #0f0a08 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a22 0%, transparent 60%);
}
.scn-office-ruin .floor     { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3a2a1f 0%, #1f1510 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-office-ruin .wall-back { position: absolute; top: 0; left: 0; right: 0; height: 70%; background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 100%); }
.scn-office-ruin .window    { position: absolute; top: 15%; left: 55%; width: 120px; height: 160px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f1a 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 0 10px rgba(200,150,100,.3); animation: or-window 6s ease-in-out infinite alternate; }
.scn-office-ruin .desk      { position: absolute; bottom: 28%; left: 25%; width: 200px; height: 20px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: or-desk 8s ease-in-out infinite; }
.scn-office-ruin .figure    { position: absolute; bottom: 20%; left: 40%; width: 30px; height: 80px; background: linear-gradient(180deg, #1a1210 0%, #0f0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: or-figure 4s ease-in-out infinite; }
.scn-office-ruin .lantern   { position: absolute; bottom: 32%; left: 35%; width: 8px; height: 8px; background: radial-gradient(circle, #d09a50 0%, #b07030 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(180,110,40,.5), 0 0 40px 12px rgba(180,110,40,.3); animation: or-lantern 3s ease-in-out infinite alternate; }
.scn-office-ruin .shadow    { position: absolute; bottom: 10%; left: 38%; width: 80px; height: 30px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(8px); animation: or-shadow 5s ease-in-out infinite; }
@keyframes or-window   { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 5px rgba(200,150,100,.2); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,.4), 0 0 20px rgba(200,150,100,.5); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 0 10px rgba(200,150,100,.3); } }
@keyframes or-desk     { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes or-figure   { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(3deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes or-lantern  { 0% { opacity: .7; box-shadow: 0 0 10px 4px rgba(180,110,40,.4); } 50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(180,110,40,.7); } 100% { opacity: .8; box-shadow: 0 0 15px 5px rgba(180,110,40,.5); } }
@keyframes or-shadow   { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.2) translateX(5px); } }

/* money-curse – dark mood, dim interior, cursed treasure */
.scn-money-curse {
  background:
    linear-gradient(180deg, #1a1513 0%, #0e0b0a 40%, #070504 100%),
    radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, transparent 70%);
}
.scn-money-curse .bg-curse   { position: absolute; inset: 0; background: linear-gradient(135deg, #1a1513 50%, #120e0c 100%); }
.scn-money-curse .chest      { position: absolute; bottom: 30%; left: 30%; width: 120px; height: 70px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,.6), inset 0 2px 0 #7a4a3a; animation: mc-chest 10s ease-in-out infinite; }
.scn-money-curse .coins-glow { position: absolute; bottom: 35%; left: 35%; width: 60px; height: 40px; background: radial-gradient(ellipse, #c08040 0%, #a06030 40%, transparent 80%); border-radius: 50%; filter: blur(12px); animation: mc-coins 4s ease-in-out infinite alternate; }
.scn-money-curse .figure-mc  { position: absolute; bottom: 20%; left: 50%; width: 40px; height: 90px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom center; animation: mc-figure 6s ease-in-out infinite; }
.scn-money-curse .hand-ghost { position: absolute; bottom: 32%; left: 25%; width: 20px; height: 30px; background: linear-gradient(180deg, rgba(200,180,140,.15) 0%, transparent 100%); border-radius: 50% 50% 40% 40%; filter: blur(4px); animation: mc-hand 8s ease-in-out infinite; }
.scn-money-curse .vignette   { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,.6) 100%); pointer-events: none; }
@keyframes mc-chest   { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-1deg) translateY(-3px); } }
@keyframes mc-coins   { 0% { opacity: .3; transform: scale(1); } 50% { opacity: .8; transform: scale(1.4); } 100% { opacity: .5; transform: scale(1.1); } }
@keyframes mc-figure  { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(-2deg) translateY(-5px); } 75% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mc-hand    { 0% { transform: translateX(0) scaleY(1); opacity: .2; } 50% { transform: translateX(10px) scaleY(1.2); opacity: .5; } 100% { transform: translateX(0) scaleY(1); opacity: .2; } }

/* political-removal – tense mood, dim interior, guillotine / beheading */
.scn-political-removal {
  background:
    linear-gradient(180deg, #1f1a1a 0%, #120e0e 40%, #080606 100%),
    radial-gradient(ellipse at 40% 50%, #2a2020 0%, transparent 60%);
}
.scn-political-removal .wall-pr     { position: absolute; top: 0; left: 0; right: 0; height: 75%; background: linear-gradient(100deg, #1f1a1a 0%, #2a2020 30%, #1f1a1a 100%); }
.scn-political-removal .desk-pr     { position: absolute; bottom: 25%; left: 20%; width: 180px; height: 15px; background: linear-gradient(180deg, #3a2a22 0%, #1f1510 100%); border-radius: 2px; box-shadow: 0 5px 10px rgba(0,0,0,.5); }
.scn-political-removal .figure-pr   { position: absolute; bottom: 20%; left: 35%; width: 35px; height: 85px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pr-figure 3s ease-in-out infinite; }
.scn-political-removal .blade       { position: absolute; top: 5%; left: 42%; width: 60px; height: 70px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); animation: pr-blade 4s ease-in-out infinite; }
.scn-political-removal .shadow-blade{ position: absolute; top: 10%; left: 40%; width: 80px; height: 200px; background: rgba(0,0,0,.4); filter: blur(10px); clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); animation: pr-shadow-blade 4s ease-in-out infinite; }
.scn-political-removal .pool        { position: absolute; bottom: 10%; left: 30%; width: 100px; height: 20px; background: radial-gradient(ellipse, #3a1a1a 0%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: pr-pool 6s ease-in-out infinite; }
.scn-political-removal .chain       { position: absolute; top: 0; left: 44%; width: 4px; height: 60px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius: 2px; animation: pr-chain 2s ease-in-out infinite; }
@keyframes pr-figure     { 0%,100% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(5px) rotate(-3deg) scaleY(1.02); } }
@keyframes pr-blade      { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(30px) rotate(0deg); } 50% { transform: translateY(60px) rotate(5deg); } 75% { transform: translateY(30px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes pr-shadow-blade { 0% { opacity: .2; transform: translateY(0); } 50% { opacity: .6; transform: translateY(20px); } 100% { opacity: .2; transform: translateY(0); } }
@keyframes pr-pool       { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.3) scaleY(1.1); } }
@keyframes pr-chain      { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } }

/* return-to-writing – calm mood, dim interior, writer's desk */
.scn-return-to-writing {
  background:
    linear-gradient(180deg, #1c1a18 0%, #141210 40%, #0e0c0a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2622 0%, transparent 60%);
}
.scn-return-to-writing .wall-rw   { position: absolute; top: 0; left: 0; right: 0; height: 70%; background: linear-gradient(135deg, #1c1a18 0%, #141210 100%); }
.scn-return-to-writing .desk-rw   { position: absolute; bottom: 25%; left: 25%; width: 200px; height: 15px; background: linear-gradient(180deg, #3a3028 0%, #241e1a 100%); border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,.4); }
.scn-return-to-writing .papers    { position: absolute; bottom: 32%; left: 28%; width: 100px; height: 60px; background: linear-gradient(180deg, #d4c8b0 0%, #c0b090 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: rw-papers 12s ease-in-out infinite alternate; }
.scn-return-to-writing .candle    { position: absolute; bottom: 30%; left: 55%; width: 12px; height: 40px; background: linear-gradient(180deg, #d4c090 0%, #b0a080 100%); border-radius: 4px; }
.scn-return-to-writing .flame     { position: absolute; bottom: 48%; left: 56%; width: 10px; height: 16px; background: radial-gradient(ellipse, #ffd080 0%, #c08030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(200,140,60,.5), 0 0 40px 12px rgba(200,140,60,.2); animation: rw-flame 3s ease-in-out infinite alternate; }
.scn-return-to-writing .inkwell   { position: absolute; bottom: 26%; left: 40%; width: 20px; height: 20px; background: radial-gradient(ellipse, #2a1a10 0%, #1a0e08 100%); border-radius: 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,.5); }
.scn-return-to-writing .figure-rw { position: absolute; bottom: 20%; left: 35%; width: 35px; height: 85px; background: linear-gradient(180deg, #1a1614 0%, #0e0c0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rw-figure 5s ease-in-out infinite; }
.scn-return-to-writing .quill     { position: absolute; bottom: 32%; left: 38%; width: 30px; height: 4px; background: linear-gradient(90deg, #c0b090 0%, #a09070 100%); border-radius: 2px; transform-origin: left center; animation: rw-quill 6s ease-in-out infinite; }
@keyframes rw-papers  { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); } }
@keyframes rw-flame   { 0% { transform: scaleY(1) rotate(-3deg); opacity: .8; } 50% { transform: scaleY(1.3) rotate(2deg); opacity: 1; } 100% { transform: scaleY(0.9) rotate(-1deg); opacity: .7; } }
@keyframes rw-figure  { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(-4px); } 75% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes rw-quill   { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }

.scn-hester-plea { background: linear-gradient(180deg, #1a1822 0%, #2a2430 30%, #3a2e3e 60%, #1c1620 100%), radial-gradient(ellipse at 30% 40%, #4a3a4e 0%, transparent 70%); }
.scn-hester-plea .bg-deep { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #121016 0%, #1e1a26 100%); }
.scn-hester-plea .bg-mid { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a2430 0%, #16121c 100%); }
.scn-hester-plea .window-light { position:absolute; top:12%; left:8%; width:50px; height:80px; background: linear-gradient(135deg, rgba(200,180,140,.6) 0%, transparent 100%); filter: blur(8px); transform: skewX(-10deg); animation: hp-light 6s ease-in-out infinite alternate; }
.scn-hester-plea .figure-hester { position:absolute; bottom:32%; left:38%; width:22px; height:60px; background: linear-gradient(180deg, #3a2a32 0%, #1e141c 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-hester 5s ease-in-out infinite; }
.scn-hester-plea .figure-pearl { position:absolute; bottom:30%; left:48%; width:14px; height:36px; background: linear-gradient(180deg, #4a3a3e 0%, #2a1c22 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-pearl 4s ease-in-out infinite; }
.scn-hester-plea .governor-platform { position:absolute; bottom:30%; right:12%; width:70px; height:40px; background: linear-gradient(180deg, #3a2e3e 0%, #221c2a 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4); animation: hp-platform 7s ease-in-out infinite; }
.scn-hester-plea .shadow-beam { position:absolute; top:15%; left:12%; width:120px; height:200px; background: linear-gradient(135deg, rgba(30,24,36,.5) 0%, transparent 80%); filter: blur(10px); transform: skewX(-8deg); animation: hp-beam 8s ease-in-out infinite alternate; }
@keyframes hp-light { 0% { opacity:.3; transform: skewX(-10deg) scaleX(1); } 50% { opacity:.7; transform: skewX(-12deg) scaleX(1.1); } 100% { opacity:.4; transform: skewX(-10deg) scaleX(.95); } }
@keyframes hp-hester { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); } 60% { transform: translateX(1px) translateY(0) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hp-pearl { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(-1px) translateY(1px) rotate(-1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hp-platform { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); box-shadow: 0 -6px 16px rgba(0,0,0,.5); } 100% { transform: translateY(0); } }
@keyframes hp-beam { 0% { opacity:.2; transform: skewX(-8deg) scaleY(1); } 50% { opacity:.5; transform: skewX(-10deg) scaleY(1.05); } 100% { opacity:.3; transform: skewX(-8deg) scaleY(.98); } }

.scn-hester-appeals-dimmesdale { background: linear-gradient(180deg, #16141e 0%, #2a2434 40%, #1c1826 100%), radial-gradient(ellipse at 50% 60%, #3a2e44 0%, transparent 70%); }
.scn-hester-appeals-dimmesdale .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1624 0%, #2a2436 100%); }
.scn-hester-appeals-dimmesdale .bg-floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2434 0%, #12101a 100%); }
.scn-hester-appeals-dimmesdale .figure-hester { position:absolute; bottom:34%; left:35%; width:20px; height:56px; background: linear-gradient(180deg, #3a2e3a 0%, #1e1620 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-hester 4s ease-in-out infinite; }
.scn-hester-appeals-dimmesdale .figure-dimmesdale { position:absolute; bottom:36%; left:58%; width:18px; height:58px; background: linear-gradient(180deg, #2a2a3a 0%, #161620 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ha-dimmesdale 5s ease-in-out infinite; }
.scn-hester-appeals-dimmesdale .light-source { position:absolute; top:8%; right:20%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(220,200,160,.5) 0%, transparent 70%); filter: blur(10px); animation: ha-light 6s ease-in-out infinite alternate; }
.scn-hester-appeals-dimmesdale .shadow-pool { position:absolute; bottom:30%; left:30%; width:120px; height:50px; background: radial-gradient(ellipse, rgba(10,8,14,.6) 0%, transparent 70%); filter: blur(8px); animation: ha-pool 7s ease-in-out infinite alternate; }
@keyframes ha-hester { 0% { transform: translateX(0) translateY(0) rotate(0); } 33% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 66% { transform: translateX(-1px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ha-dimmesdale { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(-1px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(1px) translateY(0) rotate(1deg); } 75% { transform: translateX(-1px) translateY(-1px) rotate(0); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ha-light { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.15); } 100% { opacity:.4; transform: scale(.95); } }
@keyframes ha-pool { 0% { transform: scaleX(1) scaleY(1); opacity:.5; } 50% { transform: scaleX(1.05) scaleY(.95); opacity:.7; } 100% { transform: scaleX(.98) scaleY(1.02); opacity:.5; } }

.scn-dimmesdale-speaks { background: linear-gradient(180deg, #1c1a28 0%, #2e2840 40%, #1a1624 100%), radial-gradient(ellipse at 50% 30%, #3a3250 0%, transparent 70%); }
.scn-dimmesdale-speaks .bg-arch { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #201c2e 0%, #2e2840 100%); border-radius:2% 2% 0 0; }
.scn-dimmesdale-speaks .pulpit { position:absolute; bottom:30%; left:50%; width:60px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2e44 0%, #221c2e 100%); border-radius:5% 5% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: ds-pulpit 8s ease-in-out infinite; }
.scn-dimmesdale-speaks .figure-dimmesdale { position:absolute; bottom:42%; left:50%; width:18px; height:56px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3e 0%, #141420 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-figure 5s ease-in-out infinite; }
.scn-dimmesdale-speaks .shadow-figures { position:absolute; bottom:30%; left:10%; right:10%; height:40px; background: linear-gradient(180deg, rgba(20,16,26,.6) 0%, transparent 100%); filter: blur(6px); animation: ds-shadows 6s ease-in-out infinite alternate; }
.scn-dimmesdale-speaks .light-beam { position:absolute; top:0; left:40%; width:60px; height:100%; background: linear-gradient(180deg, rgba(220,200,160,.3) 0%, rgba(220,200,160,.05) 60%, transparent 100%); filter: blur(12px); transform: skewX(-4deg); animation: ds-beam 7s ease-in-out infinite alternate; }
.scn-dimmesdale-speaks .balustrade { position:absolute; bottom:35%; left:15%; right:15%; height:4px; background: linear-gradient(90deg, transparent 0%, #3a2e44 20%, #3a2e44 80%, transparent 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
@keyframes ds-pulpit { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.6); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ds-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 30% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 60% { transform: translateX(-50%) translateY(0) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes ds-shadows { 0% { opacity:.4; transform: scaleY(1); } 50% { opacity:.7; transform: scaleY(1.05); } 100% { opacity:.5; transform: scaleY(.98); } }
@keyframes ds-beam { 0% { opacity:.2; transform: skewX(-4deg) scaleY(1); } 50% { opacity:.5; transform: skewX(-6deg) scaleY(1.1); } 100% { opacity:.3; transform: skewX(-4deg) scaleY(.95); } }

.scn-dimmesdale-argues { background: linear-gradient(180deg, #1a1a26 0%, #2a2a3c 35%, #161620 100%), radial-gradient(ellipse at 40% 50%, #3a2e4a 0%, transparent 70%); }
.scn-dimmesdale-argues .bg-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1e1a2a 0%, #2a2438 100%); }
.scn-dimmesdale-argues .figure-hester { position:absolute; bottom:32%; left:30%; width:20px; height:54px; background: linear-gradient(180deg, #3a2a36 0%, #1e1420 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da-hester 5s ease-in-out infinite; }
.scn-dimmesdale-argues .figure-dimmesdale { position:absolute; bottom:34%; left:58%; width:18px; height:56px; background: linear-gradient(180deg, #2a2a3c 0%, #141420 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da-dimmesdale 4s ease-in-out infinite; }
.scn-dimmesdale-argues .figure-pearl { position:absolute; bottom:30%; left:42%; width:12px; height:32px; background: linear-gradient(180deg, #4a3a42 0%, #2a1c26 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: da-pearl 3.5s ease-in-out infinite; }
.scn-dimmesdale-argues .light-source { position:absolute; top:10%; left:20%; width:40px; height:50px; background: radial-gradient(ellipse, rgba(200,180,150,.4) 0%, transparent 70%); filter: blur(12px); animation: da-light 7s ease-in-out infinite alternate; }
.scn-dimmesdale-argues .shadow-stripe { position:absolute; top:0; left:50%; width:2px; height:100%; background: linear-gradient(180deg, rgba(10,8,14,.3) 0%, rgba(10,8,14,.6) 50%, rgba(10,8,14,.3) 100%); filter: blur(3px); transform: translateX(-50%); animation: da-stripe 8s ease-in-out infinite alternate; }
@keyframes da-hester { 0% { transform: translateX(0) translateY(0) rotate(0); } 33% { transform: translateX(1px) translateY(-1px) rotate(1deg); } 66% { transform: translateX(-1px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes da-dimmesdale { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(-2px) translateY(-2px) rotate(-2deg); } 50% { transform: translateX(1px) translateY(0) rotate(1deg); } 75% { transform: translateX(-1px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes da-pearl { 0% { transform: translateX(0) translateY(0) rotate(0); } 30% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 60% { transform: translateX(-1px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes da-light { 0% { opacity:.2; transform: scale(1); } 50% { opacity:.5; transform: scale(1.1); } 100% { opacity:.3; transform: scale(.95); } }
@keyframes da-stripe { 0% { opacity:.3; transform: translateX(-50%) scaleY(1); } 50% { opacity:.6; transform: translateX(-50%) scaleY(1.05); } 100% { opacity:.4; transform: translateX(-50%) scaleY(.98); } }

/* Scene 1: chillingworth-vows */
.scn-chillingworth-vows {
  background: linear-gradient(180deg, #f9e8c8 0%, #d4b97a 40%, #b08a4a 70%, #7a5a2a 100%),
              radial-gradient(ellipse at 50% 20%, #fde5a0, transparent 60%);
}
.scn-chillingworth-vows .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #e8d5a0 0%, #d4b97a 100%); animation: sv-sky 12s ease-in-out infinite alternate; }
.scn-chillingworth-vows .sun { position:absolute; top:8%; left:55%; width:60px; height:60px; background: radial-gradient(circle, #fff5d0 0%, #fde5a0 40%, #d4b97a 80%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px #fde5a0; animation: sv-sun 8s ease-in-out infinite alternate; }
.scn-chillingworth-vows .pedestal { position:absolute; bottom:20%; left:50%; width:100px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #b09060 0%, #8a6a3a 100%); border-radius:4px; box-shadow: 0 -6px 12px rgba(0,0,0,0.3); }
.scn-chillingworth-vows .hester { position:absolute; bottom:30%; left:50%; width:16px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a880 0%, #8a6a40 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sv-hester 6s ease-in-out infinite; }
.scn-chillingworth-vows .stranger { position:absolute; bottom:22%; left:30%; width:20px; height:52px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sv-stranger 10s ease-in-out infinite; }
.scn-chillingworth-vows .attendant { position:absolute; bottom:22%; left:22%; width:14px; height:44px; background: #2a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sv-attendant 10s ease-in-out infinite alternate; }
.scn-chillingworth-vows .crowd { position:absolute; bottom:16%; left:10%; right:10%; height:30%; background: repeating-linear-gradient(90deg, #7a5a2a 0px, #7a5a2a 6px, #6a4a1a 6px, #6a4a1a 12px); border-radius: 50% 50% 0 0 / 80% 80% 0 0; filter: blur(1px); animation: sv-crowd 5s ease-in-out infinite alternate; }
.scn-chillingworth-vows .shadow-long { position:absolute; bottom:0; left:20%; right:20%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent); animation: sv-shadow 8s ease-in-out infinite alternate; }
@keyframes sv-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sv-sun { 0% { transform:scale(0.95) translateY(0); box-shadow: 0 0 60px 20px #fde5a0; } 50% { transform:scale(1.05) translateY(-3px); box-shadow: 0 0 100px 40px #fde5a0; } 100% { transform:scale(0.95) translateY(0); } }
@keyframes sv-hester { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0); } 50% { transform:translateX(-50%) translateY(-3px) rotate(2deg); } }
@keyframes sv-stranger { 0% { transform:translateX(0) translateY(0) rotate(0); } 50% { transform:translateX(-4px) translateY(-2px) rotate(-3deg); } 100% { transform:translateX(0) translateY(0) rotate(0); } }
@keyframes sv-attendant { 0% { transform:scale(1) translateY(0); } 100% { transform:scale(0.95) translateY(2px); } }
@keyframes sv-crowd { 0% { opacity:0.6; background-position:0 0; } 100% { opacity:0.8; background-position:12px 0; } }
@keyframes sv-shadow { 0% { opacity:0.3; } 100% { opacity:0.6; } }

/* Scene 2: governor-speaks */
.scn-governor-speaks {
  background: linear-gradient(180deg, #cbb88a 0%, #a88a5a 50%, #7a5a2a 100%),
              radial-gradient(ellipse at 50% 40%, #e8d5a0, transparent 70%);
}
.scn-governor-speaks .wall { position:absolute; inset:0; background: linear-gradient(90deg, #9a7a4a 0%, #b09060 50%, #9a7a4a 100%); animation: gs-wall 10s ease-in-out infinite alternate; }
.scn-governor-speaks .balcony { position:absolute; top:20%; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #6a4a2a 0%, #5a3a1a 100%); border-radius: 10px 10px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-governor-speaks .bellingham { position:absolute; top:22%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gs-bellingham 5s ease-in-out infinite; }
.scn-governor-speaks .wilson { position:absolute; top:22%; left:50%; width:18px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(5deg); animation: gs-wilson 6s ease-in-out infinite alternate; }
.scn-governor-speaks .magistrate { position:absolute; top:22%; left:60%; width:16px; height:28px; background: #2a1a0a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: gs-magistrate 7s ease-in-out infinite; }
.scn-governor-speaks .hester-below { position:absolute; bottom:25%; left:50%; width:14px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a880 0%, #8a6a40 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gs-hester-below 4s ease-in-out infinite; }
.scn-governor-speaks .chain { position:absolute; bottom:25%; left:calc(50% - 30px); width:60px; height:4px; background: repeating-linear-gradient(90deg, #8a6a40 0px, #8a6a40 4px, #6a4a2a 4px, #6a4a2a 8px); animation: gs-chain 3s ease-in-out infinite; }
@keyframes gs-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes gs-bellingham { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes gs-wilson { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(8deg) translateY(-3px); } 100% { transform:rotate(5deg) translateY(0); } }
@keyframes gs-magistrate { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes gs-hester-below { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(0.95) translateY(2px); } }
@keyframes gs-chain { 0% { transform:translateY(0); } 50% { transform:translateY(2px); } 100% { transform:translateY(0); } }

/* Scene 3: dimmesdale-called */
.scn-dimmesdale-called {
  background: linear-gradient(180deg, #d4c3a0 0%, #b8a080 40%, #8a7050 100%),
              radial-gradient(ellipse at 50% 30%, #e8d5a0, transparent 60%);
}
.scn-dimmesdale-called .window-light { position:absolute; top:5%; left:30%; width:100px; height:140px; background: radial-gradient(ellipse at 50% 50%, #fde5a0 0%, #d4b97a 40%, transparent 70%); animation: dc-window-light 8s ease-in-out infinite alternate; }
.scn-dimmesdale-called .pulpit { position:absolute; bottom:15%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a2a 0%, #5a3a1a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-dimmesdale-called .dimmesdale-back { position:absolute; bottom:25%; left:58%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: dc-dimmesdale-back 9s ease-in-out infinite; }
.scn-dimmesdale-called .hand { position:absolute; bottom:30%; left:60%; width:8px; height:14px; background: #c8a880; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: dc-hand 4s ease-in-out infinite; }
.scn-dimmesdale-called .bible { position:absolute; bottom:32%; left:56%; width:14px; height:20px; background: #4a3a1a; border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,0.5); animation: dc-bible 6s ease-in-out infinite alternate; }
.scn-dimmesdale-called .shadow-pew { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; }
@keyframes dc-window-light { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:0.8; transform:scale(0.95); } }
@keyframes dc-dimmesdale-back { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-8deg) translateY(-3px); } }
@keyframes dc-hand { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(2px) translateY(-2px); } 100% { transform:translateX(0) translateY(0); } }
@keyframes dc-bible { 0% { transform:rotate(0) translateY(0); } 100% { transform:rotate(3deg) translateY(-1px); } }

/* Scene 4: dimmesdale-plea */
.scn-dimmesdale-plea {
  background: linear-gradient(180deg, #d4b97a 0%, #b09060 40%, #8a6a3a 100%),
              radial-gradient(ellipse at 50% 40%, #fde5a0, transparent 60%);
}
.scn-dimmesdale-plea .balcony-rail { position:absolute; top:30%; left:20%; right:20%; height:4px; background: #5a3a1a; box-shadow: 0 -4px 8px rgba(0,0,0,0.3); }
.scn-dimmesdale-plea .minister-torso { position:absolute; top:20%; left:40%; width:22px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(10deg); animation: dp-minister-torso 7s ease-in-out infinite; }
.scn-dimmesdale-plea .arm-extend { position:absolute; top:26%; left:45%; width:6px; height:30px; background: #3a2a1a; border-radius: 4px; transform:rotate(30deg); transform-origin: top center; animation: dp-arm 5s ease-in-out infinite alternate; }
.scn-dimmesdale-plea .hester-below2 { position:absolute; bottom:25%; left:50%; width:14px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a880 0%, #8a6a40 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dp-hester-below2 4s ease-in-out infinite; }
.scn-dimmesdale-plea .crowd-below { position:absolute; bottom:15%; left:10%; right:10%; height:20%; background: repeating-linear-gradient(90deg, #7a5a2a 0px, #7a5a2a 4px, #6a4a1a 4px, #6a4a1a 8px); border-radius: 50% 50% 0 0 / 80% 80% 0 0; filter: blur(1px); animation: dp-crowd-below 6s ease-in-out infinite alternate; }
.scn-dimmesdale-plea .sunbeam { position:absolute; top:0; left:60%; width:30px; height:100%; background: linear-gradient(180deg, rgba(253,229,160,0.3) 0%, transparent 80%); filter: blur(2px); animation: dp-sunbeam 10s ease-in-out infinite alternate; }
@keyframes dp-minister-torso { 0%,100% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(15deg) translateY(-4px); } }
@keyframes dp-arm { 0% { transform:rotate(25deg); } 100% { transform:rotate(35deg); } }
@keyframes dp-hester-below2 { 0%,100% { transform:translateX(-50%) scale(1); } 50% { transform:translateX(-50%) scale(0.95) translateY(3px); } }
@keyframes dp-crowd-below { 0% { opacity:0.5; background-position:0 0; } 100% { opacity:0.8; background-position:8px 0; } }
@keyframes dp-sunbeam { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

/* dimmesdale-approaches */
.scn-dimmesdale-approaches {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a3a 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
  overflow: hidden;
}
.scn-dimmesdale-approaches .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 40%, transparent 100%);
  animation: da-sky 15s ease-in-out infinite alternate;
}
.scn-dimmesdale-approaches .trees-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 50%;
  background: repeating-linear-gradient(90deg,
    #2a2a2a 0%, #2a2a2a 8px, transparent 8px, transparent 30px);
  mask-image: linear-gradient(0deg, #000 0%, #000 60%, transparent 100%);
  -webkit-mask-image: linear-gradient(0deg, #000 0%, #000 60%, transparent 100%);
  animation: da-trees 20s ease-in-out infinite alternate;
}
.scn-dimmesdale-approaches .path {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.4);
}
.scn-dimmesdale-approaches .figure {
  position: absolute; bottom: 10%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: da-walk 4s ease-in-out infinite;
}
.scn-dimmesdale-approaches .staff {
  position: absolute; bottom: 10%; left: 42%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a0a);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: da-staff 4s ease-in-out infinite;
}
.scn-dimmesdale-approaches .leaf-a {
  position: absolute; top: 20%; left: 10%; width: 12px; height: 6px;
  background: #5a4a3a;
  border-radius: 100% 0 100% 0 / 100% 0 100% 0;
  filter: blur(1px);
  animation: da-leaf 30s linear infinite;
}
.scn-dimmesdale-approaches .leaf-b {
  position: absolute; top: 35%; right: 15%; width: 10px; height: 5px;
  background: #4a3a2a;
  border-radius: 0 100% 0 100% / 0 100% 0 100%;
  filter: blur(1px);
  animation: da-leaf 38s linear infinite reverse;
}
@keyframes da-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes da-trees { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes da-walk {
  0% { transform: translateY(0) rotate(-2deg) }
  25% { transform: translateY(-3px) rotate(1deg) }
  50% { transform: translateY(0) rotate(2deg) }
  75% { transform: translateY(-2px) rotate(-1deg) }
  100% { transform: translateY(0) rotate(-2deg) }
}
@keyframes da-staff {
  0% { transform: rotate(-2deg) }
  50% { transform: rotate(2deg) }
  100% { transform: rotate(-2deg) }
}
@keyframes da-leaf {
  0% { transform: translate(0, 0) rotate(0deg) scale(1) }
  25% { transform: translate(20px, 30px) rotate(90deg) scale(0.8) }
  50% { transform: translate(40px, 15px) rotate(180deg) scale(1) }
  75% { transform: translate(60px, 45px) rotate(270deg) scale(0.9) }
  100% { transform: translate(80vw, 60px) rotate(360deg) scale(0.7) }
}

/* dimmesdale-recognizes */
.scn-dimmesdale-recognizes {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
  overflow: hidden;
}
.scn-dimmesdale-recognizes .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, transparent 100%);
  animation: dr-sky 18s ease-in-out infinite alternate;
}
.scn-dimmesdale-recognizes .branches {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background:
    linear-gradient(135deg, #1a1a1a 0%, transparent 20%),
    linear-gradient(225deg, #1a1a1a 0%, transparent 20%);
  opacity: 0.4;
  animation: dr-branches 25s ease-in-out infinite alternate;
}
.scn-dimmesdale-recognizes .figure-left {
  position: absolute; bottom: 15%; left: 35%; width: 22px; 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: dr-figure 3s ease-in-out infinite;
}
.scn-dimmesdale-recognizes .figure-right {
  position: absolute; bottom: 15%; left: 48%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dr-figure 3.5s ease-in-out infinite reverse;
}
.scn-dimmesdale-recognizes .scarlet-letter {
  position: absolute; bottom: 30%; left: 49%; width: 12px; height: 14px;
  background: #803030;
  border-radius: 2px;
  transform: rotate(45deg);
  box-shadow: 0 0 10px 2px rgba(128,48,48,0.3);
  animation: dr-letter 4s ease-in-out infinite;
}
.scn-dimmesdale-recognizes .mottled-light {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.08) 0%, transparent 70%);
  animation: dr-light 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-recognizes .leaf-a, .dimmesdale-recognizes .leaf-b {
  position: absolute; width: 10px; height: 5px;
  background: #5a4a3a;
  border-radius: 100% 0 100% 0 / 100% 0 100% 0;
  filter: blur(1px);
}
.scn-dimmesdale-recognizes .leaf-a { top: 20%; left: 10%; animation: dr-leaf 25s linear infinite; }
.scn-dimmesdale-recognizes .leaf-b { top: 35%; right: 15%; animation: dr-leaf 32s linear infinite reverse; }
@keyframes dr-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes dr-branches { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes dr-figure { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dr-letter { 0% { transform: rotate(40deg) } 50% { transform: rotate(50deg) } 100% { transform: rotate(40deg) } }
@keyframes dr-light { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.3 } }
@keyframes dr-leaf {
  0% { transform: translate(0, 0) rotate(0deg) scale(1) }
  25% { transform: translate(15px, 25px) rotate(90deg) scale(0.8) }
  50% { transform: translate(30px, 10px) rotate(180deg) scale(1) }
  75% { transform: translate(45px, 35px) rotate(270deg) scale(0.9) }
  100% { transform: translate(80vw, 50px) rotate(360deg) scale(0.6) }
}

/* forest-meeting */
.scn-forest-meeting {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
  overflow: hidden;
}
.scn-forest-meeting .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, transparent 100%);
  animation: fm-sky 20s ease-in-out infinite alternate;
}
.scn-forest-meeting .trees-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 60%;
  background: repeating-linear-gradient(90deg,
    #1a1a1a 0%, #1a1a1a 6px, transparent 6px, transparent 25px);
  mask-image: linear-gradient(0deg, #000 0%, #000 50%, transparent 100%);
  -webkit-mask-image: linear-gradient(0deg, #000 0%, #000 50%, transparent 100%);
  opacity: 0.5;
}
.scn-forest-meeting .ground-moss {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: fm-moss 25s ease-in-out infinite alternate;
}
.scn-forest-meeting .figure-left {
  position: absolute; bottom: 8%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fm-figures 5s ease-in-out infinite;
}
.scn-forest-meeting .figure-right {
  position: absolute; bottom: 8%; left: 52%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fm-figures 5.5s ease-in-out infinite reverse;
}
.scn-forest-meeting .moss-bump {
  position: absolute; bottom: 8%; left: 40%; width: 25%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #4a5a3a 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0.4;
  animation: fm-bump 15s ease-in-out infinite alternate;
}
@keyframes fm-sky { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.75 } }
@keyframes fm-moss { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fm-figures { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes fm-bump { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

/* dimmesdale-laments */
.scn-dimmesdale-laments {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
  overflow: hidden;
}
.scn-dimmesdale-laments .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, transparent 100%);
  animation: dl-sky 16s ease-in-out infinite alternate;
}
.scn-dimmesdale-laments .tree-trunk {
  position: absolute; bottom: 0; left: 20%; width: 15%; height: 100%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 40% 0 0 / 30% 50% 0 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.5);
  transform: skewX(-5deg);
  animation: dl-trunk 20s ease-in-out infinite alternate;
}
.scn-dimmesdale-laments .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 100% 100%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-dimmesdale-laments .figure {
  position: absolute; bottom: 10%; left: 40%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dl-figure 6s ease-in-out infinite;
}
.scn-dimmesdale-laments .hand-heart {
  position: absolute; bottom: 35%; left: 42%; width: 8px; height: 10px;
  background: #2a1a1a;
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: dl-hand 4s ease-in-out infinite;
}
.scn-dimmesdale-laments .shadow-pool {
  position: absolute; bottom: 5%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: dl-pool 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-laments .leaf-a, .dimmesdale-laments .leaf-b {
  position: absolute; width: 10px; height: 5px;
  background: #4a3a2a;
  border-radius: 100% 0 100% 0 / 100% 0 100% 0;
  filter: blur(1px);
}
.scn-dimmesdale-laments .leaf-a { top: 15%; left: 5%; animation: dl-leaf 40s linear infinite; }
.scn-dimmesdale-laments .leaf-b { top: 30%; right: 10%; animation: dl-leaf 50s linear infinite reverse; }
@keyframes dl-sky { 0% { opacity: 0.85 } 50% { opacity: 0.95 } 100% { opacity: 0.8 } }
@keyframes dl-trunk { 0% { transform: skewX(-5deg) scaleX(1) } 50% { transform: skewX(-4deg) scaleX(0.98) } 100% { transform: skewX(-5deg) scaleX(1) } }
@keyframes dl-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dl-hand { 0% { transform: rotate(0deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(2px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes dl-pool { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes dl-leaf {
  0% { transform: translate(0, 0) rotate(0deg) scale(1) }
  25% { transform: translate(10px, 20px) rotate(90deg) scale(0.9) }
  50% { transform: translate(20px, 5px) rotate(180deg) scale(1) }
  75% { transform: translate(30px, 25px) rotate(270deg) scale(0.8) }
  100% { transform: translate(80vw, 40px) rotate(360deg) scale(0.5) }
}

.scn-pearl-birth { background: linear-gradient(180deg, #2a1e12 0%, #3d2a1a 40%, #4a3220 70%, #332214 100%), radial-gradient(ellipse at 50% 60%, #5a3a22 0%, transparent 70%); }
.scn-pearl-birth .room-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #4a3220 0%, #2a1e12 100%); }
.scn-pearl-birth .window-frame { position:absolute; top:8%; left:30%; width:40%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: inset 0 0 0 8px #4a3422; }
.scn-pearl-birth .cradle { position:absolute; bottom:18%; left:40%; width:25%; height:30%; background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 -4px 12px rgba(0,0,0,0.4); }
.scn-pearl-birth .baby { position:absolute; bottom:25%; left:48%; width:6%; height:10%; background: radial-gradient(ellipse at 50% 60%, #d1a080 0%, #a07050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pb-baby 6s ease-in-out infinite; }
.scn-pearl-birth .mother-silhouette { position:absolute; bottom:20%; right:25%; width:10%; height:45%; background: linear-gradient(180deg, #1a1208 0%, #0e0a04 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(1px); animation: pb-mother 8s ease-in-out infinite alternate; }
.scn-pearl-birth .candle-glow { position:absolute; top:35%; left:20%; width:2%; height:3%; background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 15px rgba(255,208,128,0.3); animation: pb-candle 4s ease-in-out infinite alternate; }
.scn-pearl-birth .dust-mote1 { position:absolute; top:15%; left:10%; width:1.5%; height:1.5%; background: radial-gradient(circle, rgba(255,220,180,0.8) 0%, transparent 80%); border-radius: 50%; animation: pb-dust1 20s linear infinite; }
.scn-pearl-birth .dust-mote2 { position:absolute; top:25%; right:15%; width:1%; height:1%; background: radial-gradient(circle, rgba(255,200,160,0.6) 0%, transparent 80%); border-radius: 50%; animation: pb-dust2 25s linear infinite reverse; }
@keyframes pb-baby { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(3%) translateY(-1%) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes pb-mother { 0% { transform: translateY(0); opacity: 0.7; } 50% { transform: translateY(-2%); opacity: 1; } 100% { transform: translateY(0); opacity: 0.7; } }
@keyframes pb-candle { 0% { opacity: 0.7; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes pb-dust1 { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(20vw,-5vh) scale(0.8); } 100% { transform: translate(40vw,-10vh) scale(1.2); } }
@keyframes pb-dust2 { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-15vw,-8vh) scale(1.1); } 100% { transform: translate(-30vw,-16vh) scale(0.9); } }

.scn-pearl-nature { background: linear-gradient(180deg, #6b8a6b 0%, #4a6a4a 30%, #3a5a3a 60%, #2a4a2a 100%), radial-gradient(ellipse at 50% 100%, #5a7a5a 0%, transparent 80%); }
.scn-pearl-nature .sky-wide { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #aac8aa 0%, #7aaa7a 100%); animation: pn-sky 12s ease-in-out infinite alternate; }
.scn-pearl-nature .tree-line { position:absolute; bottom:40%; left:0; right:0; height:15%; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-pearl-nature .meadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-pearl-nature .child-figure { position:absolute; bottom:25%; left:45%; width:8%; height:20%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pn-child 5s ease-in-out infinite; }
.scn-pearl-nature .wildflower-cluster { position:absolute; bottom:32%; left:55%; width:5%; height:8%; background: radial-gradient(circle at 50% 100%, #d4b87a 0%, #b09860 50%, transparent 100%); border-radius: 50%; animation: pn-flower 7s ease-in-out infinite alternate; }
.scn-pearl-nature .butterfly1 { position:absolute; top:40%; left:20%; width:3%; height:3%; background: radial-gradient(circle, #e8c860 0%, #b08040 80%); border-radius: 50%; animation: pn-bfly1 15s linear infinite; }
.scn-pearl-nature .butterfly2 { position:absolute; top:35%; right:30%; width:2.5%; height:2.5%; background: radial-gradient(circle, #c8a060 0%, #907030 80%); border-radius: 50%; animation: pn-bfly2 18s linear infinite reverse; }
.scn-pearl-nature .sunray { position:absolute; top:15%; left:40%; width:20%; height:5%; background: linear-gradient(90deg, transparent, rgba(255,240,200,0.3), transparent); filter: blur(4px); animation: pn-sunray 8s ease-in-out infinite alternate; }
@keyframes pn-sky { 0% { background: linear-gradient(180deg, #aac8aa 0%, #7aaa7a 100%); } 50% { background: linear-gradient(180deg, #bbd8bb 0%, #8aba8a 100%); } 100% { background: linear-gradient(180deg, #aac8aa 0%, #7aaa7a 100%); } }
@keyframes pn-child { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(5%) translateY(-2%) rotate(2deg); } 50% { transform: translateX(10%) translateY(0) rotate(-1deg); } 75% { transform: translateX(5%) translateY(-2%) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes pn-flower { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.2) rotate(10deg); } 100% { transform: scale(0.9) rotate(-5deg); } }
@keyframes pn-bfly1 { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(15vw,-10vh) scale(1.2); } 50% { transform: translate(30vw,-5vh) scale(0.8); } 75% { transform: translate(45vw,-15vh) scale(1.1); } 100% { transform: translate(60vw,0) scale(1); } }
@keyframes pn-bfly2 { 0% { transform: translate(0,0) scale(1); } 33% { transform: translate(-10vw,-8vh) scale(1.1); } 66% { transform: translate(-20vw,-4vh) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }
@keyframes pn-sunray { 0% { opacity: 0.2; transform: rotate(-5deg); } 50% { opacity: 0.5; transform: rotate(0deg); } 100% { opacity: 0.2; transform: rotate(5deg); } }

.scn-pearl-elfish { background: linear-gradient(180deg, #1a1020 0%, #2a1a30 30%, #1a0820 70%, #0a0010 100%), radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, transparent 80%); }
.scn-pearl-elfish .abyss { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #2a1a3a 0%, #0a0010 100%); }
.scn-pearl-elfish .shadow-ring { position:absolute; top:30%; left:30%; width:40%; height:40%; background: radial-gradient(circle, transparent 30%, rgba(0,0,0,0.6) 70%); border-radius: 50%; animation: pe-ring 10s ease-in-out infinite alternate; }
.scn-pearl-elfish .child-sprite { position:absolute; bottom:25%; left:45%; width:10%; height:25%; background: linear-gradient(180deg, #6a5a7a 0%, #3a2a4a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(1px); transform-origin: bottom; animation: pe-sprite 4s ease-in-out infinite; }
.scn-pearl-elfish .eye-glow-left { position:absolute; bottom:42%; left:46%; width:2%; height:2%; background: radial-gradient(circle, #b0a0d0 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 14px 6px rgba(176,160,208,0.7); animation: pe-eye 3s ease-in-out infinite alternate; }
.scn-pearl-elfish .eye-glow-right { position:absolute; bottom:42%; right:44%; width:2%; height:2%; background: radial-gradient(circle, #b0a0d0 0%, transparent 80%); border-radius: 50%; box-shadow: 0 0 14px 6px rgba(176,160,208,0.7); animation: pe-eye 3s ease-in-out infinite alternate-reverse; }
.scn-pearl-elfish .wisps { position:absolute; border-radius: 50%; filter: blur(3px); opacity: 0.5; background: radial-gradient(circle, rgba(200,180,220,0.4) 0%, transparent 80%); }
.scn-pearl-elfish .wisp-a { top:15%; left:20%; width:8%; height:8%; animation: pe-wispA 18s linear infinite; }
.scn-pearl-elfish .wisp-b { top:50%; right:25%; width:6%; height:6%; animation: pe-wispB 22s linear infinite reverse; }
.scn-pearl-elfish .wisp-c { bottom:50%; left:10%; width:4%; height:4%; animation: pe-wispC 14s linear infinite; }
@keyframes pe-ring { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(0.9); opacity: 0.5; } }
@keyframes pe-sprite { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-5%) rotate(1deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes pe-eye { 0% { opacity: 0.6; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.8); } }
@keyframes pe-wispA { 0% { transform: translate(0,0) scale(1); } 33% { transform: translate(15vw,-5vh) scale(1.3); } 66% { transform: translate(5vw,-10vh) scale(0.8); } 100% { transform: translate(-10vw,5vh) scale(1); } }
@keyframes pe-wispB { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-20vw,10vh) scale(1.2); } 100% { transform: translate(0,0) scale(1); } }
@keyframes pe-wispC { 0% { transform: translate(0,0) scale(1); } 40% { transform: translate(10vw,-15vh) scale(1.1); } 80% { transform: translate(-5vw,-5vh) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }

.scn-pearl-outcast { background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 30%, #2a2a3a 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #5a5a6a 0%, transparent 80%); }
.scn-pearl-outcast .sky-overcast { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); animation: po-sky 15s ease-in-out infinite alternate; }
.scn-pearl-outcast .ground-gravel { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); clip-path: polygon(0 20%, 100% 10%, 100% 100%, 0 100%); }
.scn-pearl-outcast .child-back { position:absolute; bottom:25%; left:38%; width:10%; height:30%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(1px); animation: po-child 5s ease-in-out infinite; }
.scn-pearl-outcast .raised-arm { position:absolute; bottom:45%; left:38%; width:3%; height:15%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 20% 20% 40% 40%; transform-origin: bottom left; animation: po-arm 2s ease-in-out infinite alternate; }
.scn-pearl-outcast .stone1 { position:absolute; bottom:40%; left:55%; width:3%; height:2%; background: #5a5a4a; border-radius: 40% 60% 40% 60%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: po-stone1 3s ease-in-out infinite; }
.scn-pearl-outcast .stone2 { position:absolute; bottom:45%; left:65%; width:2.5%; height:1.5%; background: #4a4a3a; border-radius: 50% 40% 50% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: po-stone2 3.5s ease-in-out infinite 0.5s; }
.scn-pearl-outcast .shadow-figure { position:absolute; bottom:0; left:70%; width:15%; height:50%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; filter: blur(2px); animation: po-shadow 10s ease-in-out infinite alternate; }
@keyframes po-sky { 0% { background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); } 50% { background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); } 100% { background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); } }
@keyframes po-child { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3%) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes po-arm { 0% { transform: rotate(-30deg); } 100% { transform: rotate(30deg); } }
@keyframes po-stone1 { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(10vw, -2vh) rotate(90deg); opacity: 0.8; } 100% { transform: translate(0,0) rotate(0deg); opacity: 1; } }
@keyframes po-stone2 { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(8vw, -3vh) rotate(-60deg); opacity: 0.7; } 100% { transform: translate(0,0) rotate(0deg); opacity: 1; } }
@keyframes po-shadow { 0% { transform: translateY(0); opacity: 0.3; } 50% { transform: translateY(-5%); opacity: 0.6; } 100% { transform: translateY(0); opacity: 0.3; } }

.scn-villain-reflection {
  background: 
    linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #0d0d0d 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a3a 0%, transparent 70%);
}
.scn-villain-reflection .mirror-frame {
  position: absolute; top: 10%; left: 50%; width: 40%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #4a4a4a 0%, #2a2a2a 50%, #1a1a1a 100%);
  border: 3px solid #555;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: vrf-pulse 8s ease-in-out infinite alternate;
}
.scn-villain-reflection .mirror-face {
  position: absolute; top: 18%; left: 53%; width: 30%; height: 36%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6b6b6b 0%, #3a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(0,0,0,.8);
  animation: vrf-haunt 6s ease-in-out infinite;
}
.scn-villain-reflection .figure-body {
  position: absolute; bottom: 5%; left: 38%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: vrf-breathe 4s ease-in-out infinite alternate;
}
.scn-villain-reflection .figure-head {
  position: absolute; bottom: 38%; left: 40%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 10px rgba(0,0,0,.5);
  animation: vrf-turn 10s ease-in-out infinite;
}
.scn-villain-reflection .reflection-body {
  position: absolute; bottom: 5%; left: 52%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: scaleX(-1);
  animation: vrf-flicker 1.5s steps(2) infinite;
}
.scn-villain-reflection .reflection-head {
  position: absolute; bottom: 38%; left: 54%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #5a5a5a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vrf-distort 3s ease-in-out infinite alternate;
}
.scn-villain-reflection .shadow {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 70%);
  opacity: .4;
  animation: vrf-grow 12s ease-in-out infinite;
}
.scn-villain-reflection .candle {
  position: absolute; top: 5%; left: 20%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #8a5a2a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px #ffa040;
  animation: vrf-flicker 0.3s infinite alternate;
}
@keyframes vrf-pulse { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes vrf-haunt { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) translateY(-5px) } }
@keyframes vrf-breathe { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.02) } }
@keyframes vrf-turn { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 75% { transform: rotate(-5deg) } }
@keyframes vrf-flicker { 0% { opacity:1 } 100% { opacity:0.6 } }
@keyframes vrf-distort { 0% { clip-path: none } 50% { clip-path: inset(0 20% 0 0) } 100% { clip-path: inset(0 0 0 20%) } }
@keyframes vrf-grow { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.5) } 100% { transform: scaleY(1) } }

.scn-chillingworth-damned {
  background:
    linear-gradient(180deg, #1e202b 0%, #2c2f3a 30%, #1a1c26 100%),
    radial-gradient(ellipse at 50% 100%, #3a3d4a 0%, transparent 70%);
}
.scn-chillingworth-damned .bg-horizon {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a3d4a 0%, #2a2d3a 100%);
  animation: cld-drift 20s ease-in-out infinite alternate;
}
.scn-chillingworth-damned .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #151720 0%, #1e212b 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-chillingworth-damned .figure-left {
  position: absolute; bottom: 10%; left: 20%; width: 22%; height: 50%;
  background: linear-gradient(180deg, #2a2d3a 0%, #1a1c26 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cld-sway 6s ease-in-out infinite;
}
.scn-chillingworth-damned .figure-right {
  position: absolute; bottom: 12%; right: 18%; width: 20%; height: 48%;
  background: linear-gradient(180deg, #3a3d4a 0%, #2a2d3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cld-sway 6s ease-in-out infinite reverse;
}
.scn-chillingworth-damned .shadow-monster {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 80%);
  opacity: .5;
  animation: cld-loom 10s ease-in-out infinite alternate;
}
.scn-chillingworth-damned .mist {
  position: absolute; top: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(58,61,74,.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: cld-dissolve 15s ease-in-out infinite;
}
.scn-chillingworth-damned .scarlet-glow {
  position: absolute; bottom: 30%; right: 25%; width: 12px; height: 18px;
  background: radial-gradient(circle, #a0461a 0%, #5e1a1d 70%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px #5e1a1d, 0 0 40px 12px rgba(94,26,29,.4);
  animation: cld-pulse 3s ease-in-out infinite alternate;
}
@keyframes cld-drift { 0% { background-position: 0% 0% } 100% { background-position: 5% 5% } }
@keyframes cld-sway { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(3deg) translateY(-2px) } 75% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes cld-loom { 0% { transform: scaleY(1) scaleX(1) } 100% { transform: scaleY(1.3) scaleX(1.1) } }
@keyframes cld-dissolve { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.2 } }
@keyframes cld-pulse { 0% { box-shadow: 0 0 15px 4px #5e1a1d } 100% { box-shadow: 0 0 30px 10px #a0461a } }

.scn-hester-demands-truth {
  background:
    linear-gradient(90deg, #1a1c23 0%, #2c2f3a 50%, #1a1c23 100%),
    radial-gradient(ellipse at 50% 80%, #3a3d4a 0%, transparent 70%);
}
.scn-hester-demands-truth .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2c2f3a 0%, #1a1c23 100%);
}
.scn-hester-demands-truth .door {
  position: absolute; bottom: 10%; left: 50%; width: 30%; height: 70%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3d4a 0%, #252833 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}
.scn-hester-demands-truth .figure-kneeling {
  position: absolute; bottom: 8%; left: 30%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #3a3d4a 0%, #1a1c23 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: hdt-kneel 4s ease-in-out infinite alternate;
}
.scn-hester-demands-truth .figure-standing {
  position: absolute; bottom: 8%; right: 28%; width: 20%; height: 55%;
  background: linear-gradient(180deg, #4a4d5a 0%, #2a2d3a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: hdt-tower 6s ease-in-out infinite;
}
.scn-hester-demands-truth .arm-pointing {
  position: absolute; bottom: 35%; right: 38%; width: 10%; height: 6%;
  background: linear-gradient(90deg, #4a4d5a 0%, #2a2d3a 100%);
  border-radius: 20%;
  transform-origin: right center;
  animation: hdt-point 2s ease-in-out infinite alternate;
}
.scn-hester-demands-truth .shadow-spear {
  position: absolute; bottom: 0; left: 28%; width: 4px; height: 40%;
  background: #000;
  opacity: .3;
  transform-origin: bottom center;
  animation: hdt-spear 5s ease-in-out infinite alternate;
}
.scn-hester-demands-truth .light-shaft {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, rgba(200,180,150,.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: hdt-ray 12s ease-in-out infinite alternate;
}
@keyframes hdt-kneel { 0% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(-5px) rotate(2deg) } }
@keyframes hdt-tower { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes hdt-point { 0% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes hdt-spear { 0% { transform: scaleY(1) translateX(0) } 100% { transform: scaleY(1.2) translateX(5px) } }
@keyframes hdt-ray { 0% { opacity:.2 } 50% { opacity:.5 } 100% { opacity:.1 } }

.scn-chillingworth-pities {
  background:
    linear-gradient(180deg, #1e202b 0%, #2c2f3a 40%, #1a1c26 100%),
    radial-gradient(ellipse at 50% 50%, #3a3d4a 0%, transparent 80%);
}
.scn-chillingworth-pities .sky-back {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a3d4a 0%, #2a2d3a 100%);
  animation: cwp-breathe 12s ease-in-out infinite alternate;
}
.scn-chillingworth-pities .ground-front {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2d3a 0%, #1a1c26 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-chillingworth-pities .figure-hester {
  position: absolute; bottom: 15%; left: 25%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #3a3d4a 0%, #1a1c26 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: cwp-implore 4s ease-in-out infinite;
}
.scn-chillingworth-pities .figure-chilling {
  position: absolute; bottom: 15%; right: 25%; width: 22%; height: 48%;
  background: linear-gradient(180deg, #4a4d5a 0%, #2a2d3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: cwp-recoil 5s ease-in-out infinite alternate;
}
.scn-chillingworth-pities .scarlet-letter {
  position: absolute; bottom: 30%; left: 30%; width: 10px; height: 14px;
  background: #a0461a;
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 15px 3px #5e1a1d;
  animation: cwp-glow 2s ease-in-out infinite alternate;
}
.scn-chillingworth-pities .hand-extended {
  position: absolute; bottom: 38%; right: 36%; width: 12%; height: 4%;
  background: linear-gradient(90deg, #4a4d5a 0%, #2a2d3a 100%);
  border-radius: 30%;
  transform-origin: right center;
  animation: cwp-reach 3s ease-in-out infinite;
}
.scn-chillingworth-pities .hatred-mist {
  position: absolute; top: 30%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(30,32,43,.6) 0%, transparent 70%);
  filter: blur(12px);
  animation: cwp-curl 20s ease-in-out infinite;
}
@keyframes cwp-breathe { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes cwp-implore { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(3deg) } }
@keyframes cwp-recoil { 0% { transform: translateX(0) } 100% { transform: translateX(10px) } }
@keyframes cwp-glow { 0% { opacity:.8; box-shadow: 0 0 10px 2px #5e1a1d } 100% { opacity:1; box-shadow: 0 0 25px 6px #a0461a } }
@keyframes cwp-reach { 0% { transform: rotate(0deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(0deg) } }
@keyframes cwp-curl { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.1) rotate(5deg) } 100% { transform: scale(1) rotate(0) } }

/* Scene: inspector-personality (funny, dim-interior) */
.scn-inspector-personality {
  background:
    linear-gradient(180deg, #3e2e1e 0%, #2a1e14 40%, #1a120a 100%),
    radial-gradient(ellipse at 30% 70%, #4a3622 0%, transparent 60%);
}
.scn-inspector-personality .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a3622 0%, #3e2e1e 50%, #4a3622 100%);
  border-bottom: 4px solid #1a120a;
}
.scn-inspector-personality .floor {
  position: absolute; inset: auto 0 0 0; height: 30%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
}
.scn-inspector-personality .lantern {
  position: absolute; bottom: 45%; left: 20%; width: 10px; height: 16px;
  background: radial-gradient(circle at 50% 60%, #f0c060 0%, #b08030 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #b08030, 0 0 40px 12px rgba(176,128,48,0.4);
  animation: ip1-lantern 4s ease-in-out infinite alternate;
}
.scn-inspector-personality .figure-a,
.scn-inspector-personality .figure-b,
.scn-inspector-personality .figure-c {
  position: absolute; bottom: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-inspector-personality .figure-a { left: 30%; animation: ip1-fig-a 6s ease-in-out infinite; }
.scn-inspector-personality .figure-b { left: 45%; animation: ip1-fig-b 5s ease-in-out infinite 0.5s; }
.scn-inspector-personality .figure-c { left: 60%; animation: ip1-fig-c 7s ease-in-out infinite 1s; }
.scn-inspector-personality .speech-1,
.scn-inspector-personality .speech-2 {
  position: absolute; bottom: 45%; width: 30px; height: 6px;
  background: rgba(255,255,200,0.4);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-inspector-personality .speech-1 { left: 35%; animation: ip1-speech 3s ease-in-out infinite; }
.scn-inspector-personality .speech-2 { left: 55%; animation: ip1-speech 3.5s ease-in-out infinite 1s; }
@keyframes ip1-lantern {
  0% { box-shadow: 0 0 15px 4px #b08030, 0 0 30px 8px rgba(176,128,48,0.3); }
  50% { box-shadow: 0 0 25px 8px #f0c060, 0 0 50px 16px rgba(240,192,96,0.5); }
  100% { box-shadow: 0 0 18px 5px #b08030, 0 0 35px 10px rgba(176,128,48,0.35); }
}
@keyframes ip1-fig-a {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ip1-fig-b {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(-4px) rotate(-2deg); }
  50% { transform: translateX(-8px) rotate(1deg); }
  75% { transform: translateX(-4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ip1-fig-c {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(6px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes ip1-speech {
  0% { opacity: 0; transform: scaleX(0.5); }
  50% { opacity: 0.7; transform: scaleX(1); }
  100% { opacity: 0; transform: scaleX(0.5); }
}

/* Scene: inspectors-and-collector (calm, dim-interior) */
.scn-inspectors-and-collector {
  background:
    linear-gradient(180deg, #2e241a 0%, #1f1811 40%, #120e0a 100%),
    radial-gradient(ellipse at 50% 20%, #3a2c20 0%, transparent 70%);
}
.scn-inspectors-and-collector .bg {
  position: absolute; inset: 0; background: transparent;
}
.scn-inspectors-and-collector .desk {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-inspectors-and-collector .chair {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: translateX(-50%);
}
.scn-inspectors-and-collector .inspector-silhouette {
  position: absolute; bottom: 28%; left: 40%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #140e0a 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: ic2-sit 8s ease-in-out infinite alternate;
}
.scn-inspectors-and-collector .papers {
  position: absolute; bottom: 22%; left: 38%; width: 18px; height: 6px;
  background: #5a4a3a;
  border-radius: 1px;
  box-shadow: 2px 2px 0 #4a3a2a, 4px 4px 0 #3a2a1a;
  animation: ic2-papers 12s linear infinite;
}
.scn-inspectors-and-collector .dust-mote-a,
.scn-inspectors-and-collector .dust-mote-b {
  position: absolute; width: 4px; height: 4px;
  background: rgba(200,180,150,0.6);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-inspectors-and-collector .dust-mote-a { top: 30%; left: 20%; animation: ic2-dust 15s linear infinite; }
.scn-inspectors-and-collector .dust-mote-b { top: 50%; right: 25%; animation: ic2-dust 20s linear infinite reverse; }
@keyframes ic2-sit {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes ic2-papers {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ic2-dust {
  0% { transform: translate(0, 0); opacity: 0; }
  25% { opacity: 0.8; }
  50% { transform: translate(20px, -30px); opacity: 0.5; }
  75% { opacity: 0.2; }
  100% { transform: translate(40px, -60px); opacity: 0; }
}

/* Scene: inspector-character (funny, dim-interior) */
.scn-inspector-character {
  background:
    linear-gradient(180deg, #3a2e22 0%, #2a1e14 40%, #1a120a 100%),
    radial-gradient(ellipse at 50% 60%, #4a3828 0%, transparent 65%);
}
.scn-inspector-character .bg { position: absolute; inset: 0; }
.scn-inspector-character .floor {
  position: absolute; inset: auto 0 0 0; height: 25%;
  background: linear-gradient(180deg, #2a1e14 0%, #120e0a 100%);
}
.scn-inspector-character .figure-main {
  position: absolute; bottom: 25%; left: 50%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform: translateX(-50%);
  animation: ch3-laugh 4s ease-in-out infinite;
}
.scn-inspector-character .ghost-1,
.scn-inspector-character .ghost-2,
.scn-inspector-character .ghost-3,
.scn-inspector-character .ghost-4 {
  position: absolute; bottom: 30%; width: 10px; height: 18px;
  background: linear-gradient(180deg, rgba(200,180,160,0.3) 0%, rgba(200,180,160,0.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  filter: blur(1px);
}
.scn-inspector-character .ghost-1 { left: 30%; animation: ch3-ghost 7s ease-in-out infinite; }
.scn-inspector-character .ghost-2 { left: 38%; animation: ch3-ghost 6s ease-in-out infinite 1s; }
.scn-inspector-character .ghost-3 { left: 60%; animation: ch3-ghost 8s ease-in-out infinite 0.5s; }
.scn-inspector-character .ghost-4 { left: 68%; animation: ch3-ghost 5s ease-in-out infinite 2s; }
.scn-inspector-character .laughter-ripple {
  position: absolute; bottom: 60%; left: 50%; width: 40px; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,220,180,0.5) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: ch3-ripple 3s ease-in-out infinite;
}
@keyframes ch3-laugh {
  0% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-50%) rotate(-3deg) scaleY(0.98); }
  50% { transform: translateX(-50%) rotate(3deg) scaleY(1.02); }
  75% { transform: translateX(-50%) rotate(-2deg) scaleY(0.99); }
  100% { transform: translateX(-50%) rotate(0deg) scaleY(1); }
}
@keyframes ch3-ghost {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.4; }
  25% { transform: translateY(-7px) rotate(5deg); opacity: 0.6; }
  50% { transform: translateY(-14px) rotate(-4deg); opacity: 0.8; }
  75% { transform: translateY(-7px) rotate(3deg); opacity: 0.5; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.3; }
}
@keyframes ch3-ripple {
  0% { transform: translateX(-50%) scaleX(0.5); opacity: 0.6; }
  50% { transform: translateX(-50%) scaleX(1.3); opacity: 0; }
  100% { transform: translateX(-50%) scaleX(0.5); opacity: 0.6; }
}

/* Scene: inspector-instincts (calm, dim-interior) */
.scn-inspector-instincts {
  background:
    linear-gradient(180deg, #2e241a 0%, #1f1811 40%, #120e0a 100%),
    radial-gradient(ellipse at 40% 50%, #3a2c20 0%, transparent 60%);
}
.scn-inspector-instincts .bg { position: absolute; inset: 0; }
.scn-inspector-instincts .table {
  position: absolute; bottom: 22%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 2px 6px #1a120a;
}
.scn-inspector-instincts .chair-back {
  position: absolute; bottom: 25%; left: 45%; width: 4px; height: 30px;
  background: #1a120a;
  border-radius: 2px;
  transform: rotate(10deg);
}
.scn-inspector-instincts .figure-eating {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #140e0a 0%, #080604 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 30% 30%;
  transform: translateX(-50%);
  animation: in4-eat 7s ease-in-out infinite;
}
.scn-inspector-instincts .plate {
  position: absolute; bottom: 18%; left: 46%; width: 24px; height: 6px;
  background: radial-gradient(ellipse, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
}
.scn-inspector-instincts .food {
  position: absolute; bottom: 19%; left: 48%; width: 12px; height: 6px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: in4-food 5s ease-in-out infinite alternate;
}
.scn-inspector-instincts .steam-a,
.scn-inspector-instincts .steam-b {
  position: absolute; bottom: 28%; width: 6px; height: 14px;
  background: linear-gradient(180deg, rgba(255,220,200,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-inspector-instincts .steam-a { left: 46%; animation: in4-steam 6s ease-in-out infinite; }
.scn-inspector-instincts .steam-b { left: 52%; animation: in4-steam 7s ease-in-out infinite 1s; }
@keyframes in4-eat {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes in4-food {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(0.9) translateY(-1px); }
  100% { transform: scaleX(1) translateY(0); }
}
@keyframes in4-steam {
  0% { transform: translateY(0) scaleY(0.5); opacity: 0.6; }
  50% { transform: translateY(-10px) scaleY(1); opacity: 0.2; }
  100% { transform: translateY(-20px) scaleY(0.8); opacity: 0; }
}

/* ========== public-scorn ========== */
.scn-public-scorn {
  background: linear-gradient(180deg, #b8d4e0 0%, #f0e6c0 70%), radial-gradient(ellipse at 50% 0%, #fff9e0 0%, transparent 60%);
}
.scn-public-scorn .ps-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #9bc0d0 0%, transparent 100%); animation: ps-sky 12s ease-in-out infinite alternate; }
.scn-public-scorn .ps-sun { position:absolute; top:8%; left:65%; width:50px; height:50px; background: radial-gradient(circle, #ffe680 0%, #ffcc40 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,200,60,0.5); animation: ps-sun 8s ease-in-out infinite alternate; }
.scn-public-scorn .ps-stocks { position:absolute; bottom:38%; left:10%; width:120px; height:30px; background: linear-gradient(180deg, #8b6b4a 0%, #5c3f28 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-public-scorn .ps-figure { position:absolute; bottom:32%; left:12%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1f140a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ps-figure 4s ease-in-out infinite; }
.scn-public-scorn .ps-letter { position:absolute; bottom:40%; left:16%; width:12px; height:14px; background: radial-gradient(circle, #c8553d 0%, #a0461a 80%); border-radius:10%; box-shadow: 0 0 18px 6px rgba(200,85,61,0.6), 0 0 30px 10px rgba(200,85,61,0.3); animation: ps-letter 2s ease-in-out infinite alternate; }
.scn-public-scorn .ps-crowd1 { position:absolute; bottom:30%; right:10%; width:25px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; animation: ps-crowd 3s ease-in-out infinite; }
.scn-public-scorn .ps-crowd2 { position:absolute; bottom:28%; right:22%; width:28px; height:45px; background: linear-gradient(180deg, #3f3025 0%, #201810 100%); border-radius:45% 45% 35% 35% / 55% 55% 30% 30%; animation: ps-crowd 3.5s ease-in-out infinite 0.5s; }
.scn-public-scorn .ps-crowd3 { position:absolute; bottom:33%; right:32%; width:22px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ps-crowd 4s ease-in-out infinite 1s; }
@keyframes ps-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes ps-sun { 0% { transform: scale(0.95); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.98); opacity:0.9; } }
@keyframes ps-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ps-letter { 0% { box-shadow: 0 0 12px 4px rgba(200,85,61,0.5); opacity:0.8; } 50% { box-shadow: 0 0 25px 8px rgba(200,85,61,0.8); opacity:1; } 100% { box-shadow: 0 0 15px 5px rgba(200,85,61,0.6); opacity:0.9; } }
@keyframes ps-crowd { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }

/* ========== hester-emerges ========== */
.scn-hester-emerges {
  background: linear-gradient(180deg, #b8d4e0 0%, #ffe8c0 60%), radial-gradient(ellipse at 50% 100%, #ffe8c0 0%, transparent 70%);
}
.scn-hester-emerges .he-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a0c8d8 0%, transparent 100%); animation: he-sky 15s ease-in-out infinite; }
.scn-hester-emerges .he-door { position:absolute; bottom:25%; left:38%; width:80px; height:100px; background: linear-gradient(180deg, #5a4030 0%, #2f1f15 100%); border-radius:5% 5% 0 0; box-shadow: 0 6px 15px rgba(0,0,0,0.5); }
.scn-hester-emerges .he-doorway { position:absolute; bottom:25%; left:40%; width:60px; height:95px; background: #1a0f09; border-radius:4% 4% 0 0; box-shadow: inset 0 0 20px #00000044; }
.scn-hester-emerges .he-beadle { position:absolute; bottom:25%; left:32%; width:22px; height:55px; background: linear-gradient(180deg, #2a1f14 0%, #110a06 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: he-beadle 4s ease-in-out infinite alternate; }
.scn-hester-emerges .he-staff { position:absolute; bottom:25%; left:34%; width:4px; height:60px; background: #5a4020; border-radius:10%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: he-staff 4s ease-in-out infinite alternate 0.2s; }
.scn-hester-emerges .he-hester { position:absolute; bottom:25%; left:44%; width:18px; height:50px; background: linear-gradient(180deg, #4a3525 0%, #2a1a0f 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: he-hester 5s ease-in-out infinite; }
.scn-hester-emerges .he-shadow { position:absolute; bottom:22%; left:38%; width:80px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: he-shadow 5s ease-in-out infinite; }
@keyframes he-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes he-beadle { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes he-staff { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(-5deg); } }
@keyframes he-hester { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(3px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes he-shadow { 0% { transform: scaleX(0.9); opacity:0.7; } 50% { transform: scaleX(1.2); opacity:1; } 100% { transform: scaleX(0.9); opacity:0.7; } }

/* ========== hester-appearance ========== */
.scn-hester-appearance {
  background: linear-gradient(180deg, #f5e8d0 0%, #d4bfa0 60%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-hester-appearance .ha-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c4d8e0 0%, transparent 100%); animation: ha-sky 10s ease-in-out infinite; }
.scn-hester-appearance .ha-halo { position:absolute; bottom:20%; left:40%; width:120px; height:120px; background: radial-gradient(circle, rgba(255,230,160,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: ha-halo 6s ease-in-out infinite alternate; }
.scn-hester-appearance .ha-figure { position:absolute; bottom:15%; left:45%; width:30px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1f140a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ha-figure 8s ease-in-out infinite; }
.scn-hester-appearance .ha-dress { position:absolute; bottom:15%; left:44%; width:35px; height:60px; background: linear-gradient(180deg, #5a4045 0%, #302028 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: inset -5px 0 10px rgba(0,0,0,0.3); clip-path: polygon(0% 0%, 100% 0%, 100% 85%, 0% 85%); }
.scn-hester-appearance .ha-hair { position:absolute; bottom:63%; left:45%; width:40px; height:35px; background: linear-gradient(180deg, #1a1a0a 0%, #0f0f05 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform: translateX(-50%); animation: ha-hair 5s ease-in-out infinite alternate; }
.scn-hester-appearance .ha-letter { position:absolute; bottom:38%; left:45%; width:18px; height:20px; background: radial-gradient(circle, #c8553d 0%, #a0461a 80%); border-radius:10%; box-shadow: 0 0 20px 8px rgba(200,85,61,0.5), 0 0 40px 15px rgba(200,85,61,0.2); animation: ha-letter 3s ease-in-out infinite alternate; }
@keyframes ha-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ha-halo { 0% { opacity:0.4; transform: scale(0.95); } 50% { opacity:0.7; transform: scale(1.05); } 100% { opacity:0.5; transform: scale(0.98); } }
@keyframes ha-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ha-hair { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(4deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ha-letter { 0% { box-shadow: 0 0 15px 5px rgba(200,85,61,0.4); opacity:0.8; } 50% { box-shadow: 0 0 30px 12px rgba(200,85,61,0.7); opacity:1; } 100% { box-shadow: 0 0 18px 6px rgba(200,85,61,0.5); opacity:0.9; } }

/* ========== crowd-remarks ========== */
.scn-crowd-remarks {
  background: linear-gradient(180deg, #a0c8d8 0%, #d4c0a0 70%), radial-gradient(ellipse at 80% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-crowd-remarks .cr-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8bb5c8 0%, transparent 100%); animation: cr-sky 14s ease-in-out infinite; }
.scn-crowd-remarks .cr-platform { position:absolute; bottom:30%; left:0; right:0; height:12%; background: linear-gradient(180deg, #7a5a40 0%, #3f2a1a 100%); border-radius:10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); }
.scn-crowd-remarks .cr-hester { position:absolute; bottom:30%; left:48%; width:25px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1f140a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: translateX(-50%); animation: cr-hester 6s ease-in-out infinite; }
.scn-crowd-remarks .cr-letter { position:absolute; bottom:44%; left:48%; width:14px; height:16px; background: radial-gradient(circle, #c8553d 0%, #a0461a 80%); border-radius:10%; box-shadow: 0 0 22px 8px rgba(200,85,61,0.6); animation: cr-letter 2.5s ease-in-out infinite alternate; }
.scn-crowd-remarks .cr-head1 { position:absolute; bottom:34%; left:20%; width:20px; height:20px; background: linear-gradient(180deg, #4a3625 0%, #2a1f14 100%); border-radius:50%; animation: cr-head 3s ease-in-out infinite; }
.scn-crowd-remarks .cr-head2 { position:absolute; bottom:36%; left:32%; width:20px; height:20px; background: linear-gradient(180deg, #3f3020 0%, #201810 100%); border-radius:50%; animation: cr-head 3.2s ease-in-out infinite 0.4s; }
.scn-crowd-remarks .cr-hand { position:absolute; bottom:33%; left:25%; width:4px; height:15px; background: #3a2a1a; border-radius:20%; transform-origin: bottom center; animation: cr-hand 2s ease-in-out infinite alternate; }
.scn-crowd-remarks .cr-dust { position:absolute; bottom:30%; left:45%; width:20px; height:10px; background: radial-gradient(ellipse, rgba(200,180,150,0.4) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: cr-dust 8s linear infinite; }
@keyframes cr-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes cr-hester { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes cr-letter { 0% { box-shadow: 0 0 15px 5px rgba(200,85,61,0.4); opacity:0.8; } 50% { box-shadow: 0 0 28px 10px rgba(200,85,61,0.7); opacity:1; } 100% { box-shadow: 0 0 18px 6px rgba(200,85,61,0.5); opacity:0.9; } }
@keyframes cr-head { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cr-hand { 0% { transform: rotate(-15deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-15deg); } }
@keyframes cr-dust { 0% { transform: translateX(-10px) scale(1); opacity:0; } 20% { opacity:0.6; } 80% { opacity:0.6; } 100% { transform: translateX(30px) scale(1.5); opacity:0; } }

/* scaffold-procession */
.scn-scaffold-procession {
  background: linear-gradient(180deg, #a0d4f0 0%, #fce6b0 40%, #d4a85a 70%, #8a6a3a 100%),
              radial-gradient(ellipse at 50% 0%, #ffffff55 0%, transparent 60%);
}
.scn-scaffold-procession .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #9ac8e8 0%, #fceac0 100%); animation: sp-sky 20s ease-in-out infinite alternate; }
.scn-scaffold-procession .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #6a4a2a 0%, #b08050 40%, #c8a060 100%); }
.scn-scaffold-procession .crowd-left { position:absolute; bottom:25%; left:0; width:35%; height:25%; background: linear-gradient(90deg, #3a2a1a55 0%, #2a1a0a88 50%, transparent 100%); border-radius: 0 40% 0 0; animation: sp-crowd-sway 6s ease-in-out infinite alternate; }
.scn-scaffold-procession .crowd-right { position:absolute; bottom:25%; right:0; width:35%; height:25%; background: linear-gradient(270deg, #3a2a1a55 0%, #2a1a0a88 50%, transparent 100%); border-radius: 40% 0 0 0; animation: sp-crowd-sway 8s ease-in-out infinite alternate-reverse; }
.scn-scaffold-procession .beadle { position:absolute; bottom:30%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: sp-walk 2s ease-in-out infinite; }
.scn-scaffold-procession .hester { position:absolute; bottom:30%; left:50%; width:18px; height:36px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: sp-walk 2s ease-in-out infinite 1s; }
.scn-scaffold-procession .baby { position:absolute; bottom:42%; left:51%; width:12px; height:12px; background: radial-gradient(circle, #8a7a5a 0%, #5a4a2a 100%); border-radius: 50%; animation: sp-bob 3s ease-in-out infinite; }
.scn-scaffold-procession .dust { position:absolute; bottom:30%; left:40%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(200,160,100,.4) 0%, transparent 100%); filter: blur(3px); animation: sp-drift 10s linear infinite; }
.scn-scaffold-procession .shadow { position:absolute; bottom:27%; left:44%; width:90px; height:6px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(2px); animation: sp-shadow-sway 4s ease-in-out infinite; }
@keyframes sp-sky { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes sp-crowd-sway { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes sp-walk { 0%,100% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(2deg) } }
@keyframes sp-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes sp-drift { 0% { transform: translateX(0) } 100% { transform: translateX(60px) } }
@keyframes sp-shadow-sway { 0%,100% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(4px) scaleX(.9) } }

/* pillory-platform */
.scn-pillory-platform {
  background: linear-gradient(180deg, #b0c8e0 0%, #f0d8a0 30%, #c89860 60%, #7a5a3a 100%),
              radial-gradient(ellipse at 50% 70%, #ffffff33 0%, transparent 50%);
}
.scn-pillory-platform .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #98b8d0 0%, #ecd0a0 100%); animation: pp-sky 30s ease-in-out infinite alternate; }
.scn-pillory-platform .platform { position:absolute; bottom:20%; left:35%; width:30%; height:10%; background: linear-gradient(0deg, #5a3a1a 0%, #8a6a3a 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,.5); }
.scn-pillory-platform .pillory-post { position:absolute; bottom:30%; left:48%; width:4%; height:40%; background: linear-gradient(90deg, #4a2a0a 0%, #6a4a2a 50%, #4a2a0a 100%); border-radius: 2px; box-shadow: 2px 0 6px rgba(0,0,0,.3); }
.scn-pillory-platform .hester { position:absolute; bottom:28%; left:50%; width:16px; height:34px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20%; transform-origin: center bottom; animation: pp-stand 5s ease-in-out infinite; }
.scn-pillory-platform .steps { position:absolute; bottom:18%; left:40%; width:20%; height:3%; background: linear-gradient(0deg, #4a3a1a, #6a4a2a); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: pp-shadow 4s ease-in-out infinite alternate; }
.scn-pillory-platform .shadow { position:absolute; bottom:22%; left:42%; width:16%; height:5px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(3px); animation: pp-shadow 4s ease-in-out infinite alternate; }
.scn-pillory-platform .glow { position:absolute; bottom:40%; left:45%; width:10%; height:10%; background: radial-gradient(circle, #ffd08044 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: pp-glow 6s ease-in-out infinite; }
@keyframes pp-sky { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes pp-stand { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes pp-shadow { 0% { opacity:.5; transform: scaleX(1) } 50% { opacity:.3; transform: scaleX(.8) } 100% { opacity:.5; transform: scaleX(1) } }
@keyframes pp-glow { 0%,100% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } }

/* hester-remembrance */
.scn-hester-remembrance {
  background: linear-gradient(180deg, #d4c8b0 0%, #a89880 30%, #8a7a6a 60%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 30%, #ffffff22 0%, transparent 60%);
}
.scn-hester-remembrance .bg-market { position:absolute; inset:0; background: linear-gradient(135deg, #b09878 0%, #c8b898 50%, #a09080 100%); opacity:.7; animation: hr-fade 15s ease-in-out infinite alternate; }
.scn-hester-remembrance .memory-scholar { position:absolute; top:20%; right:20%; width:40px; height:60px; background: linear-gradient(180deg, #7a6a5a55 0%, #4a3a2a55 100%); border-radius: 30% 30% 20% 20%; filter: blur(2px); animation: hr-appear 12s ease-in-out infinite; }
.scn-hester-remembrance .memory-city { position:absolute; top:30%; left:15%; width:80px; height:40px; background: linear-gradient(180deg, #9a8a7a33 0%, #6a5a4a33 100%); border-radius: 30% 30% 0 0; filter: blur(4px); animation: hr-appear 18s ease-in-out infinite 3s; }
.scn-hester-remembrance .hester-silhouette { position:absolute; bottom:30%; left:50%; width:18px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: hr-hester 8s ease-in-out infinite; }
.scn-hester-remembrance .child { position:absolute; bottom:38%; left:52%; width:14px; height:14px; background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50%; animation: hr-child 6s ease-in-out infinite; }
.scn-hester-remembrance .letter { position:absolute; bottom:48%; left:48%; width:10px; height:10px; background: radial-gradient(circle, #d0a060 0%, #a07030 100%); border-radius: 20%; box-shadow: 0 0 10px #d0a060; animation: hr-letter 5s ease-in-out infinite alternate; }
.scn-hester-remembrance .fog { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #ffffff22 0%, transparent 70%); filter: blur(10px); animation: hr-fog 20s linear infinite; }
@keyframes hr-fade { 0%,100% { opacity:.6 } 50% { opacity:.8 } }
@keyframes hr-appear { 0%,100% { opacity:0; transform: scale(.8) } 30%,70% { opacity:.6; transform: scale(1) } }
@keyframes hr-hester { 0%,100% { transform: translateX(0) rotate(0) } 20% { transform: translateX(-5px) rotate(-3deg) } 40% { transform: translateX(5px) rotate(3deg) } 60% { transform: translateX(-3px) rotate(-1deg) } 80% { transform: translateX(3px) rotate(1deg) } }
@keyframes hr-child { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes hr-letter { 0% { opacity:.3; box-shadow: 0 0 5px #d0a060 } 50% { opacity:.8; box-shadow: 0 0 20px #d0a060 } 100% { opacity:.4; box-shadow: 0 0 8px #d0a060 } }
@keyframes hr-fog { 0% { transform: translateX(-20px) } 100% { transform: translateX(20px) } }

/* hester-visions */
.scn-hester-visions {
  background: linear-gradient(180deg, #c8b8a0 0%, #a09080 30%, #8a7a6a 60%, #5a4a3a 100%),
              radial-gradient(ellipse at 30% 50%, #ffffff33 0%, transparent 60%);
}
.scn-hester-visions .scene-city { position:absolute; top:0; left:0; width:50%; height:100%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 50%, #5a4a3a 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: hv-slide 15s ease-in-out infinite alternate; }
.scn-hester-visions .scene-market { position:absolute; top:0; right:0; width:50%; height:100%; background: linear-gradient(180deg, #b0a090 0%, #907060 50%, #604a3a 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: hv-slide 15s ease-in-out infinite alternate-reverse; }
.scn-hester-visions .hester { position:absolute; bottom:30%; left:40%; width:20px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: hv-hester 4s ease-in-out infinite; }
.scn-hester-visions .child { position:absolute; bottom:38%; left:42%; width:14px; height:14px; background: radial-gradient(circle, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50%; animation: hv-child 5s ease-in-out infinite; }
.scn-hester-visions .letter { position:absolute; bottom:48%; left:36%; width:8px; height:8px; background: radial-gradient(circle, #d0a060 0%, #b08040 100%); border-radius: 20%; box-shadow: 0 0 12px #d0a060; animation: hv-letter 3s ease-in-out infinite alternate; }
.scn-hester-visions .blur-overlay { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, #ffffff22 80%, transparent 100%); filter: blur(6px); animation: hv-blur 10s ease-in-out infinite; }
.scn-hester-visions .halo { position:absolute; bottom:28%; left:38%; width:40px; height:40px; background: radial-gradient(circle, #ffd08044 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: hv-halo 8s ease-in-out infinite alternate; }
@keyframes hv-slide { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }
@keyframes hv-hester { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-2deg) } 75% { transform: translateY(1px) rotate(2deg) } }
@keyframes hv-child { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) } }
@keyframes hv-letter { 0% { opacity:.5; box-shadow: 0 0 8px #d0a060 } 50% { opacity:1; box-shadow: 0 0 20px #d0a060 } 100% { opacity:.6; box-shadow: 0 0 12px #d0a060 } }
@keyframes hv-blur { 0%,100% { opacity:.3 } 50% { opacity:.6 } }
@keyframes hv-halo { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.3); opacity:.8 } 100% { transform: scale(1); opacity:.4 } }

/* Scene: temptation-impulses (dark, overcast) */
.scn-temptation-impulses {
  background:
    linear-gradient(180deg, #2a2f35 0%, #1b2025 40%, #15181c 100%),
    radial-gradient(ellipse at 50% 100%, #1b2025 0%, transparent 80%);
}
.scn-temptation-impulses .fog {
  position: absolute; inset: 0; background: linear-gradient(90deg, rgba(200,200,210,0.08) 0%, rgba(200,200,210,0.15) 50%, rgba(200,200,210,0.05) 100%);
  animation: ti-fog 30s ease-in-out infinite alternate;
}
.scn-temptation-impulses .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2f2b 0%, #1f2420 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-temptation-impulses .figure-minister {
  position: absolute; bottom: 22%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #353b3f 0%, #1e2225 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ti-minister 8s ease-in-out infinite;
}
.scn-temptation-impulses .figure-elderly {
  position: absolute; bottom: 22%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a3e40 0%, #222628 100%);
  border-radius: 50% 40% 30% 40% / 50% 50% 30% 30%;
  transform: skewX(-5deg);
  animation: ti-elderly 12s ease-in-out infinite alternate;
}
.scn-temptation-impulses .figure-maiden {
  position: absolute; bottom: 24%; right: 28%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #3c4044 0%, #24282b 100%);
  border-radius: 40% 50% 30% 30% / 60% 50% 30% 30%;
  transform: skewX(5deg);
  animation: ti-maiden 10s ease-in-out infinite alternate;
}
.scn-temptation-impulses .shadow-left {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ti-shadow 6s ease-in-out infinite alternate;
}
.scn-temptation-impulses .shadow-right {
  position: absolute; bottom: 22%; right: 15%; width: 70px; height: 35px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.35) 0%, transparent 70%);
  animation: ti-shadow 6s ease-in-out infinite alternate-reverse;
}
@keyframes ti-fog {
  0% { opacity: 0.2; transform: translateX(0); }
  50% { opacity: 0.4; transform: translateX(20px); }
  100% { opacity: 0.25; transform: translateX(-10px); }
}
@keyframes ti-minister {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  75% { transform: translateX(-50%) rotate(-0.5deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes ti-elderly {
  0% { transform: skewX(-5deg) translateY(0); }
  50% { transform: skewX(-3deg) translateY(-2px); }
  100% { transform: skewX(-5deg) translateY(0); }
}
@keyframes ti-maiden {
  0% { transform: skewX(5deg) translateY(0); }
  50% { transform: skewX(7deg) translateY(-3px); }
  100% { transform: skewX(5deg) translateY(0); }
}
@keyframes ti-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.5; }
}

/* Scene: resisting-evil (dark, overcast) */
.scn-resisting-evil {
  background:
    linear-gradient(180deg, #2c3136 0%, #1e2327 50%, #15181b 100%),
    radial-gradient(ellipse at 50% 0%, #2c3136 0%, transparent 60%);
}
.scn-resisting-evil .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #40454a 0%, transparent 100%);
  animation: re-sky 15s ease-in-out infinite alternate;
}
.scn-resisting-evil .haze {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 20% 50%, rgba(160,170,180,0.1) 0%, transparent 70%);
  animation: re-haze 20s ease-in-out infinite alternate;
}
.scn-resisting-evil .figure-minister-still {
  position: absolute; bottom: 20%; left: 50%; width: 32px; height: 75px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a4045 0%, #202428 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: re-minister 6s ease-in-out infinite;
}
.scn-resisting-evil .figure-child {
  position: absolute; bottom: 22%; left: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3e4348 0%, #25292d 100%);
  border-radius: 40% 50% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: re-child 8s ease-in-out infinite alternate;
}
.scn-resisting-evil .figure-seaman {
  position: absolute; bottom: 18%; right: 25%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #3a3f44 0%, #1d2125 100%);
  border-radius: 30% 40% 30% 30% / 60% 50% 30% 30%;
  transform: skewX(8deg);
  animation: re-seaman 10s ease-in-out infinite alternate;
}
.scn-resisting-evil .temptation-words {
  position: absolute; top: 15%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(180,190,200,0.2) 0%, transparent 70%);
  border-radius: 50%;
  animation: re-words 4s ease-in-out infinite;
}
.scn-resisting-evil .temptation-hand {
  position: absolute; bottom: 25%; right: 22%; width: 20px; height: 10px;
  background: radial-gradient(ellipse, rgba(200,210,220,0.3) 0%, transparent 80%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: re-hand 3s ease-in-out infinite alternate;
}
@keyframes re-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes re-haze {
  0% { transform: translateX(0); }
  50% { transform: translateX(30px); }
  100% { transform: translateX(-30px); }
}
@keyframes re-minister {
  0% { transform: translateX(-50%) rotate(0deg); }
  30% { transform: translateX(-50%) rotate(-1deg) translateY(-2px); }
  60% { transform: translateX(-50%) rotate(1deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes re-child {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(5px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes re-seaman {
  0% { transform: skewX(8deg) translateY(0); }
  50% { transform: skewX(6deg) translateY(-4px); }
  100% { transform: skewX(8deg) translateY(0); }
}
@keyframes re-words {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.3); opacity: 0.5; }
  100% { transform: scale(1); opacity: 0.3; }
}
@keyframes re-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-25deg) translateY(-5px); }
  100% { transform: rotate(-20deg) translateY(0); }
}

/* Scene: witch-lady-hints (dark, overcast) */
.scn-witch-lady-hints {
  background:
    linear-gradient(180deg, #1b2028 0%, #0d1118 50%, #06080c 100%),
    radial-gradient(ellipse at 50% 30%, #1b2028 0%, transparent 70%);
}
.scn-witch-lady-hints .forest-bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0a0e14 0%, #141a24 50%, #0a0e14 100%);
  animation: wlh-forest 20s ease-in-out infinite alternate;
}
.scn-witch-lady-hints .foliage-overlay {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 30% 10%, rgba(40,50,30,0.3) 0%, transparent 60%);
  filter: blur(4px);
  animation: wlh-foliage 15s ease-in-out infinite alternate;
}
.scn-witch-lady-hints .witch-silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #15181d 0%, #0a0c0f 100%);
  border-radius: 30% 40% 30% 30% / 50% 60% 30% 30%;
  transform: skewX(-10deg) rotate(-3deg);
  animation: wlh-witch 8s ease-in-out infinite;
}
.scn-witch-lady-hints .minister-bewildered {
  position: absolute; bottom: 22%; right: 25%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a1e24 0%, #0e1116 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: wlh-minister 10s ease-in-out infinite alternate;
}
.scn-witch-lady-hints .pointing-finger {
  position: absolute; bottom: 50%; left: 38%; width: 8px; height: 20px;
  background: #111418;
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(30deg);
  animation: wlh-finger 4s ease-in-out infinite alternate;
}
.scn-witch-lady-hints .shadow-bond {
  position: absolute; bottom: 15%; left: 35%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
  animation: wlh-shadow 6s ease-in-out infinite;
}
@keyframes wlh-forest {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes wlh-foliage {
  0% { transform: translateY(0); filter: blur(4px); }
  50% { transform: translateY(-5px); filter: blur(6px); }
  100% { transform: translateY(0); filter: blur(4px); }
}
@keyframes wlh-witch {
  0% { transform: skewX(-10deg) rotate(-3deg) translateY(0); }
  25% { transform: skewX(-8deg) rotate(0deg) translateY(-2px); }
  50% { transform: skewX(-12deg) rotate(-5deg) translateY(0); }
  75% { transform: skewX(-8deg) rotate(-2deg) translateY(-3px); }
  100% { transform: skewX(-10deg) rotate(-3deg) translateY(0); }
}
@keyframes wlh-minister {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes wlh-finger {
  0% { transform: rotate(30deg) translateX(0); }
  50% { transform: rotate(35deg) translateX(3px); }
  100% { transform: rotate(30deg) translateX(0); }
}
@keyframes wlh-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.3); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* Scene: dimmesdale-fears-fiend (dark, overcast) */
.scn-dimmesdale-fears-fiend {
  background:
    linear-gradient(180deg, #0f1219 0%, #07090e 50%, #020305 100%),
    radial-gradient(ellipse at 50% 30%, #0f1219 0%, transparent 70%);
}
.scn-dimmesdale-fears-fiend .darkness {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0.9) 100%);
  animation: dff-darkness 25s ease-in-out infinite alternate;
}
.scn-dimmesdale-fears-fiend .minister-foreground {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 75px;
  background: linear-gradient(180deg, #1a1e24 0%, #0c0f14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(2deg);
  animation: dff-minister 8s ease-in-out infinite;
}
.scn-dimmesdale-fears-fiend .fiend-shadow {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 120px;
  background: radial-gradient(ellipse, rgba(60,20,30,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: dff-fiend 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-fears-fiend .claw-hand {
  position: absolute; bottom: 35%; right: 15%; width: 15px; height: 35px;
  background: #16191e;
  border-radius: 20% 40% 20% 20% / 30% 50% 20% 20%;
  transform: rotate(-40deg);
  animation: dff-claw 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-fears-fiend .red-eye {
  position: absolute; top: 30%; right: 22%; width: 8px; height: 8px;
  background: radial-gradient(circle, #a03a2a 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(160,58,42,0.3);
  animation: dff-eye 2s ease-in-out infinite alternate;
}
.scn-dimmesdale-fears-fiend .sweat-drip {
  position: absolute; bottom: 45%; left: 42%; width: 4px; height: 12px;
  background: linear-gradient(180deg, rgba(200,210,220,0.3), transparent);
  border-radius: 50% 50% 30% 30%;
  animation: dff-sweat 4s ease-in infinite;
}
@keyframes dff-darkness {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dff-minister {
  0% { transform: rotate(2deg) translateY(0); }
  30% { transform: rotate(4deg) translateY(-3px); }
  60% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes dff-fiend {
  0% { transform: scale(1) translateX(0); opacity: 0.5; }
  50% { transform: scale(1.1) translateX(-10px); opacity: 0.7; }
  100% { transform: scale(1) translateX(0); opacity: 0.5; }
}
@keyframes dff-claw {
  0% { transform: rotate(-40deg) translateY(0); }
  50% { transform: rotate(-50deg) translateY(-5px); }
  100% { transform: rotate(-40deg) translateY(0); }
}
@keyframes dff-eye {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.6; }
}
@keyframes dff-sweat {
  0% { transform: translateY(0); opacity: 0.6; }
  50% { transform: translateY(10px); opacity: 0.2; }
  100% { transform: translateY(20px); opacity: 0; }
}

/* numbness-at-work */
.scn-numbness-at-work {
  background: linear-gradient(135deg, #1a1a2e 0%, #12121a 30%, #0e0e15 60%, #08080e 100%),
              radial-gradient(ellipse at 40% 60%, #2a2a4a 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-numbness-at-work .wall {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1e1e2f 0%, #141422 100%);
}
.scn-numbness-at-work .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(180deg, #1a1a28 0%, #0f0f18 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-numbness-at-work .window-frame {
  position: absolute;
  top: 15%; left: 50%;
  width: 100px; height: 130px;
  transform: translateX(-50%);
  background: #1a1a2a;
  border: 4px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-numbness-at-work .moonlight {
  position: absolute;
  top: 15%; left: 50%;
  width: 90px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(200,220,255,0.15) 0%, rgba(200,220,255,0.05) 80%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: num-moonlight 8s ease-in-out infinite alternate;
}
.scn-numbness-at-work .desk {
  position: absolute;
  bottom: 28%; left: 50%;
  width: 140px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1a12 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-numbness-at-work .chair {
  position: absolute;
  bottom: 18%; left: 38%;
  width: 50px; height: 60px;
  background: linear-gradient(180deg, #2e2a22 0%, #1e1a14 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-numbness-at-work .figure {
  position: absolute;
  bottom: 20%; left: 35%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #1e1e2e 0%, #12121a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: num-figure 6s ease-in-out infinite alternate;
}
.scn-numbness-at-work .papers {
  position: absolute;
  bottom: 30%; left: 45%;
  width: 40px; height: 28px;
  background: #d8d0c0;
  border-radius: 2px;
  opacity: 0.3;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: num-papers 10s ease-in-out infinite alternate;
}
@keyframes num-moonlight {
  0% { opacity: 0.4; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 0.7; transform: translateX(-50%) scaleY(1.05); }
  100% { opacity: 0.5; transform: translateX(-50%) scaleY(0.95); }
}
@keyframes num-figure {
  0% { transform: translate(0,0) rotate(-2deg); }
  50% { transform: translate(4px,-2px) rotate(0deg); }
  100% { transform: translate(0,0) rotate(2deg); }
}
@keyframes num-papers {
  0% { transform: rotate(-5deg) translateY(0); opacity: 0.3; }
  50% { transform: rotate(-3deg) translateY(-2px); opacity: 0.5; }
  100% { transform: rotate(-7deg) translateY(1px); opacity: 0.35; }
}

/* moonlight-writing */
.scn-moonlight-writing {
  background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3e 40%, #2a2044 70%, #1e1640 100%),
              radial-gradient(circle at 50% 80%, #3a2a5a 0%, transparent 60%);
}
.scn-moonlight-writing .bg-wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a36 0%, #101028 100%);
}
.scn-moonlight-writing .fireplace {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 120px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1e1616 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.9);
}
.scn-moonlight-writing .coals {
  position: absolute;
  bottom: 28%; left: 50%;
  width: 60px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a04020 0%, #602010 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,80,30,0.3);
  animation: mw-coals 4s ease-in-out infinite alternate;
}
.scn-moonlight-writing .fireglow {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 200px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, rgba(255,150,80,0.15) 0%, transparent 70%);
  animation: mw-fireglow 6s ease-in-out infinite alternate;
}
.scn-moonlight-writing .desk {
  position: absolute;
  bottom: 12%; left: 40%;
  width: 120px; height: 24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-moonlight-writing .window {
  position: absolute;
  top: 10%; right: 15%;
  width: 80px; height: 100px;
  border: 4px solid #2a2a4a;
  background: #1a1a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-moonlight-writing .moonbeam {
  position: absolute;
  top: 10%; right: 17%;
  width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(200,220,255,0.2) 0%, rgba(200,220,255,0.05) 80%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: mw-moonbeam 12s ease-in-out infinite alternate;
}
.scn-moonlight-writing .writer {
  position: absolute;
  bottom: 14%; left: 44%;
  width: 28px; height: 48px;
  background: linear-gradient(180deg, #2a2a3e 0%, #16162a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-writer 5s ease-in-out infinite alternate;
}
.scn-moonlight-writing .quill {
  position: absolute;
  bottom: 20%; left: 52%;
  width: 4px; height: 30px;
  background: linear-gradient(180deg, #d0c8b8 0%, #a09888 100%);
  border-radius: 50% 50% 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom;
  animation: mw-quill 3s ease-in-out infinite alternate;
}
@keyframes mw-coals {
  0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(200,80,30,0.2); }
  50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,120,50,0.4); }
  100% { opacity: 0.8; box-shadow: 0 0 35px 18px rgba(200,80,30,0.3); }
}
@keyframes mw-fireglow {
  0% { transform: translateX(-50%) scale(0.95); opacity: 0.5; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.7; }
}
@keyframes mw-moonbeam {
  0% { opacity: 0.3; transform: scaleY(0.9); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(1); }
}
@keyframes mw-writer {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes mw-quill {
  0% { transform: rotate(18deg) scaleY(1); }
  50% { transform: rotate(25deg) scaleY(1.05); }
  100% { transform: rotate(20deg) scaleY(0.95); }
}

/* literary-impotence */
.scn-literary-impotence {
  background: linear-gradient(135deg, #1a1a1e 0%, #121214 30%, #0e0e10 60%, #08080a 100%),
              radial-gradient(ellipse at 30% 50%, #2a2a30 0%, transparent 70%);
}
.scn-literary-impotence .room {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1e1e22 0%, #141416 100%);
}
.scn-literary-impotence .table {
  position: absolute;
  bottom: 18%; left: 30%;
  width: 160px; height: 20px;
  background: linear-gradient(180deg, #3a3a2e 0%, #1e1e1a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.8);
}
.scn-literary-impotence .paper-blank {
  position: absolute;
  bottom: 22%; left: 32%;
  width: 80px; height: 60px;
  background: #e8e0d0;
  border-radius: 2px;
  opacity: 0.2;
  transform: rotate(2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: li-paper 15s ease-in-out infinite alternate;
}
.scn-literary-impotence .inkwell {
  position: absolute;
  bottom: 23%; left: 52%;
  width: 16px; height: 20px;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-literary-impotence .candle {
  position: absolute;
  bottom: 25%; left: 44%;
  width: 8px; height: 40px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.3);
  animation: li-candle 5s ease-in-out infinite alternate;
}
.scn-literary-impotence .candlelight {
  position: absolute;
  bottom: 30%; left: 44%;
  width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: li-candlelight 4s ease-in-out infinite alternate;
}
.scn-literary-impotence .figure-hand {
  position: absolute;
  bottom: 18%; left: 40%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a22 0%, #101016 100%);
  border-radius: 50% 40% 30% 40%;
  transform-origin: bottom;
  animation: li-hand 7s ease-in-out infinite alternate;
}
@keyframes li-paper {
  0% { transform: rotate(2deg) translateY(0); opacity: 0.2; }
  50% { transform: rotate(0deg) translateY(-4px); opacity: 0.3; }
  100% { transform: rotate(4deg) translateY(2px); opacity: 0.15; }
}
@keyframes li-candle {
  0% { box-shadow: 0 0 15px 4px rgba(255,200,100,0.2); transform: scaleY(1); }
  50% { box-shadow: 0 0 30px 10px rgba(255,200,100,0.4); transform: scaleY(1.03); }
  100% { box-shadow: 0 0 20px 6px rgba(255,200,100,0.25); transform: scaleY(0.98); }
}
@keyframes li-candlelight {
  0% { opacity: 0.3; transform: translateX(-50%) scale(0.9); }
  50% { opacity: 0.6; transform: translateX(-50%) scale(1.1); }
  100% { opacity: 0.4; transform: translateX(-50%) scale(1); }
}
@keyframes li-hand {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(1px); }
}

/* intellect-decay */
.scn-intellect-decay {
  background: linear-gradient(180deg, #0e0e12 0%, #1a1a22 30%, #0e0e14 60%, #06060a 100%),
              radial-gradient(ellipse at 50% 40%, #1a1a2e 0%, transparent 60%);
}
.scn-intellect-decay .shadow-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #0c0c14 0%, #06060a 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.9);
}
.scn-intellect-decay .column {
  position: absolute;
  bottom: 10%; left: 50%;
  width: 40px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a24 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.5), 0 8px 20px rgba(0,0,0,0.7);
  animation: id-column 20s ease-in-out infinite alternate;
}
.scn-intellect-decay .figure-silhouette {
  position: absolute;
  bottom: 20%; left: 48%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a24 0%, #0c0c12 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: id-figure 8s ease-in-out infinite alternate;
}
.scn-intellect-decay .support-arm {
  position: absolute;
  bottom: 28%; left: 52%;
  width: 28px; height: 10px;
  background: #1a1a24;
  border-radius: 40% 60% 20% 20%;
  transform: rotate(-30deg);
  transform-origin: right;
  animation: id-arm 8s ease-in-out infinite alternate;
}
.scn-intellect-decay .crack {
  position: absolute;
  bottom: 40%; left: 46%;
  width: 24px; height: 4px;
  background: #2a2a3a;
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.8);
  transform: rotate(15deg);
  animation: id-crack 30s linear infinite;
}
.scn-intellect-decay .dust-motes {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 60% 30%, rgba(200,200,220,0.05) 0%, transparent 30%),
              radial-gradient(circle at 30% 70%, rgba(200,200,220,0.03) 0%, transparent 40%);
  animation: id-dust 25s linear infinite;
}
.scn-intellect-decay .vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
}
@keyframes id-column {
  0% { transform: translateX(-50%) scale(1); box-shadow: inset -4px 0 10px rgba(0,0,0,0.5), 0 8px 20px rgba(0,0,0,0.7); }
  50% { transform: translateX(-50%) scale(0.98) skewX(1deg); box-shadow: inset -4px 0 10px rgba(0,0,0,0.5), 0 8px 20px rgba(0,0,0,0.8); }
  100% { transform: translateX(-50%) scale(1.01) skewX(-1deg); box-shadow: inset -4px 0 10px rgba(0,0,0,0.5), 0 8px 20px rgba(0,0,0,0.6); }
}
@keyframes id-figure {
  0% { transform: rotate(-2deg) translateY(0); }
  30% { transform: rotate(0deg) translateY(-2px); }
  60% { transform: rotate(3deg) translateY(-4px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes id-arm {
  0% { transform: rotate(-30deg) scaleY(1); }
  50% { transform: rotate(-25deg) scaleY(1.05); }
  100% { transform: rotate(-35deg) scaleY(0.95); }
}
@keyframes id-crack {
  0% { transform: rotate(15deg) translateX(0); opacity: 0.4; }
  25% { transform: rotate(18deg) translateX(2px); opacity: 0.6; }
  50% { transform: rotate(12deg) translateX(-1px); opacity: 0.3; }
  75% { transform: rotate(20deg) translateX(3px); opacity: 0.5; }
  100% { transform: rotate(15deg) translateX(0); opacity: 0.4; }
}
@keyframes id-dust {
  0% { background-position: 0% 0%; }
  50% { background-position: 10% 5%; }
  100% { background-position: 0% 0%; }
}

.scn-inspector-memories {
  background:
    linear-gradient(180deg, #2a1e0f 0%, #3d2b16 40%, #4a3620 100%),
    radial-gradient(ellipse at 50% 80%, #4a3620 0%, transparent 70%);
}
.scn-inspector-memories .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a1e0f 0%, #3d2b16 100%);
  animation: si-im-wall 20s ease-in-out infinite alternate;
}
.scn-inspector-memories .table {
  position:absolute; bottom:15%; left:20%; right:20%; height:12%;
  background: linear-gradient(180deg, #5a4230 0%, #3d2b16 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: si-im-table 8s ease-in-out infinite;
}
.scn-inspector-memories .chair {
  position:absolute; bottom:20%; left:45%; width:20%; height:25%;
  background: linear-gradient(180deg, #4a3620 0%, #2a1e0f 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: si-im-chair 6s ease-in-out infinite;
}
.scn-inspector-memories .ghost-goose {
  position:absolute; top:30%; left:30%; width:12%; height:18%;
  background: radial-gradient(ellipse at 50% 60%, rgba(230,200,150,0.4) 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  filter: blur(3px);
  animation: si-im-goose 10s ease-in-out infinite alternate;
}
.scn-inspector-memories .ghost-tenderloin {
  position:absolute; top:35%; right:25%; width:10%; height:12%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,100,0.3) 0%, transparent 80%);
  border-radius: 30% 20% 40% 30%;
  filter: blur(2px);
  animation: si-im-tenderloin 12s ease-in-out infinite alternate-reverse;
}
.scn-inspector-memories .ghost-soup {
  position:absolute; top:40%; left:50%; width:8%; height:10%;
  background: radial-gradient(circle, rgba(180,140,80,0.35) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: si-im-soup 14s ease-in-out infinite;
}
.scn-inspector-memories .candle {
  position:absolute; bottom:30%; left:35%; width:2%; height:8%;
  background: linear-gradient(180deg, #f0c060 0%, #c08030 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 8px rgba(240,192,96,0.5);
  animation: si-im-candle 3s ease-in-out infinite alternate;
}
@keyframes si-im-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.92 } }
@keyframes si-im-table { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes si-im-chair { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes si-im-goose { 0% { transform: translateY(0) rotate(-5deg); opacity:0.5 } 50% { transform: translateY(-12px) rotate(5deg); opacity:0.9 } 100% { transform: translateY(-6px) rotate(-3deg); opacity:0.6 } }
@keyframes si-im-tenderloin { 0% { transform: translateY(0) scale(1); opacity:0.4 } 50% { transform: translateY(-15px) scale(1.1); opacity:0.8 } 100% { transform: translateY(-8px) scale(0.95); opacity:0.5 } }
@keyframes si-im-soup { 0% { transform: translateY(0) scale(1); opacity:0.3 } 50% { transform: translateY(-20px) scale(1.2); opacity:0.7 } 100% { transform: translateY(-10px) scale(0.9); opacity:0.4 } }
@keyframes si-im-candle { 0% { box-shadow: 0 0 15px 4px rgba(240,192,96,0.4); transform: scaleY(1); } 50% { box-shadow: 0 0 30px 10px rgba(240,192,96,0.7); transform: scaleY(1.05); } 100% { box-shadow: 0 0 20px 6px rgba(240,192,96,0.5); transform: scaleY(0.98); } }

.scn-inspector-permanence {
  background:
    linear-gradient(180deg, #1e1a12 0%, #2a241c 40%, #3c3028 100%),
    radial-gradient(ellipse at 50% 70%, #3c3028 0%, transparent 60%);
}
.scn-inspector-permanence .bg-room {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #1e1a12 0%, #2a241c 100%);
  animation: si-ip-bg 30s ease-in-out infinite;
}
.scn-inspector-permanence .chair-back {
  position:absolute; bottom:25%; left:40%; width:20%; height:45%;
  background: linear-gradient(180deg, #3c3028 0%, #1e1a12 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: si-ip-chair 18s ease-in-out infinite alternate;
}
.scn-inspector-permanence .figure-inspector {
  position:absolute; bottom:18%; left:45%; width:12%; height:30%;
  background: linear-gradient(180deg, #2a241c 0%, #1e1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: si-ip-figure 12s ease-in-out infinite alternate;
}
.scn-inspector-permanence .table-round {
  position:absolute; bottom:10%; left:35%; width:30%; height:8%;
  background: linear-gradient(180deg, #4a3c30 0%, #2a241c 100%);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: si-ip-table 24s ease-in-out infinite;
}
.scn-inspector-permanence .plate {
  position:absolute; bottom:12%; left:47%; width:6%; height:3%;
  background: radial-gradient(circle, #5a4a3a 0%, #3c3028 100%);
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0,0,0,0.5);
  animation: si-ip-plate 36s ease-in-out infinite;
}
.scn-inspector-permanence .lamp {
  position:absolute; top:15%; right:25%; width:6%; height:10%;
  background: linear-gradient(180deg, transparent 0%, #4a3c30 40%, #2a241c 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(200,180,140,0.3);
  animation: si-ip-lamp 9s ease-in-out infinite alternate;
}
.scn-inspector-permanence .clock {
  position:absolute; top:12%; left:30%; width:8%; height:8%;
  background: radial-gradient(circle, #5a4a3a 0%, #2a241c 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: si-ip-clock 60s linear infinite;
}
@keyframes si-ip-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes si-ip-chair { 0% { transform: rotate(0deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes si-ip-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes si-ip-table { 0% { box-shadow: 0 2px 8px rgba(0,0,0,0.5) } 50% { box-shadow: 0 2px 12px rgba(0,0,0,0.7) } 100% { box-shadow: 0 2px 8px rgba(0,0,0,0.5) } }
@keyframes si-ip-plate { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes si-ip-lamp { 0% { box-shadow: 0 0 8px 2px rgba(200,180,140,0.2); transform: scaleY(1) } 50% { box-shadow: 0 0 20px 6px rgba(200,180,140,0.5); transform: scaleY(1.02) } 100% { box-shadow: 0 0 10px 3px rgba(200,180,140,0.3); transform: scaleY(0.98) } }
@keyframes si-ip-clock { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

.scn-collector-character {
  background:
    linear-gradient(180deg, #1c1410 0%, #2a2018 35%, #3a2c22 100%),
    radial-gradient(ellipse at 50% 60%, #3a2c22 0%, transparent 70%);
}
.scn-collector-character .bg-ruins {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #1c1410 0%, #2a2018 100%);
  animation: si-cc-bg 25s ease-in-out infinite alternate;
}
.scn-collector-character .wall-left {
  position:absolute; bottom:20%; left:10%; width:30%; height:60%;
  background: linear-gradient(90deg, #2a2018 0%, #3a2c22 100%);
  border-radius: 0 20% 0 0;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: si-cc-wall-left 15s ease-in-out infinite;
}
.scn-collector-character .wall-right {
  position:absolute; bottom:20%; right:10%; width:30%; height:50%;
  background: linear-gradient(-90deg, #2a2018 0%, #3a2c22 100%);
  border-radius: 20% 0 0 0;
  clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%);
  animation: si-cc-wall-right 15s ease-in-out infinite reverse;
}
.scn-collector-character .figure-collector {
  position:absolute; bottom:25%; left:50%; width:14%; height:35%;
  background: linear-gradient(180deg, #4a3c30 0%, #2a2018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: si-cc-figure 8s ease-in-out infinite alternate;
}
.scn-collector-character .halo-glow {
  position:absolute; bottom:45%; left:50%; width:20%; height:20%;
  background: radial-gradient(circle, rgba(230,200,150,0.35) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  pointer-events: none;
  animation: si-cc-glow 5s ease-in-out infinite alternate;
}
.scn-collector-character .rubble-stones {
  position:absolute; bottom:10%; left:15%; right:15%; height:10%;
  background: repeating-linear-gradient(45deg, #3a2c22 0px, #3a2c22 8px, #2a2018 8px, #2a2018 16px);
  border-radius: 10% 10% 0 0;
  opacity:0.6;
  animation: si-cc-rubble 30s linear infinite;
}
@keyframes si-cc-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes si-cc-wall-left { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(0) } }
@keyframes si-cc-wall-right { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes si-cc-figure { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes si-cc-glow { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.7; transform: scale(0.95) } }
@keyframes si-cc-rubble { 0% { background-position: 0 0 } 100% { background-position: 64px 0 } }

.scn-collector-nature {
  background:
    linear-gradient(180deg, #1a1a14 0%, #2c2820 40%, #3c3428 100%),
    radial-gradient(ellipse at 50% 80%, #3c3428 0%, transparent 60%);
}
.scn-collector-nature .bg-chamber {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #1a1a14 0%, #2c2820 100%);
  animation: si-cn-bg 20s ease-in-out infinite;
}
.scn-collector-nature .fireplace {
  position:absolute; bottom:20%; left:20%; right:20%; height:30%;
  background: linear-gradient(180deg, #4a3c30 0%, #2c2820 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
  animation: si-cn-fireplace 12s ease-in-out infinite alternate;
}
.scn-collector-nature .figure-general {
  position:absolute; bottom:25%; left:45%; width:12%; height:32%;
  background: linear-gradient(180deg, #3c3428 0%, #1a1a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: si-cn-general 14s ease-in-out infinite alternate;
}
.scn-collector-nature .banner {
  position:absolute; top:15%; right:20%; width:8%; height:20%;
  background: linear-gradient(180deg, #5e3a2a 0%, #4a2e1e 100%);
  border-radius: 0 0 30% 30%;
  clip-path: polygon(0 0, 100% 0, 100% 70%, 50% 100%, 0 70%);
  animation: si-cn-banner 10s ease-in-out infinite alternate;
}
.scn-collector-nature .window-iron {
  position:absolute; top:10%; left:20%; width:15%; height:20%;
  background: radial-gradient(ellipse at 50% 50%, #5a5a4a 0%, #2c2820 100%);
  border: 4px solid #3c3428;
  border-radius: 10%;
  animation: si-cn-window 30s ease-in-out infinite;
}
.scn-collector-nature .ore-rocks {
  position:absolute; bottom:5%; left:10%; right:10%; height:10%;
  background: repeating-linear-gradient(135deg, #4a3e30 0px, #4a3e30 12px, #2c2820 12px, #2c2820 24px);
  border-radius: 30% 30% 0 0;
  opacity:0.8;
  animation: si-cn-rocks 40s linear infinite;
}
@keyframes si-cn-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.93 } }
@keyframes si-cn-fireplace { 0% { box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5) } 50% { box-shadow: inset 0 -8px 20px rgba(0,0,0,0.7) } 100% { box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5) } }
@keyframes si-cn-general { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes si-cn-banner { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes si-cn-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes si-cn-rocks { 0% { background-position: 0 0 } 100% { background-position: 96px 0 } }

.scn-dimmesdale-totters {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #FAFAD2 70%, #FFD700 100%),
              radial-gradient(ellipse at 30% 10%, #FFD700 0%, transparent 60%);
}
.scn-dimmesdale-totters .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4A90D9 0%, #87CEEB 50%, transparent 100%);
  animation: dt-sky 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-totters .sun {
  position: absolute; top: 8%; left: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 50%, transparent 70%);
  border-radius: 50%;
  animation: dt-sun 20s ease-in-out infinite;
}
.scn-dimmesdale-totters .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%);
  border-radius: 20% 20% 0 0;
}
.scn-dimmesdale-totters .scaffold {
  position: absolute; bottom: 30%; left: 40%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #A0522D 0%, #6B3A2A 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: dt-scaffold 8s ease-in-out infinite;
}
.scn-dimmesdale-totters .minister-shadow {
  position: absolute; bottom: 30%; left: 38%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3d2b1f 0%, #1a1109 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dt-walk 6s ease-in-out infinite;
}
.scn-dimmesdale-totters .crowd-left {
  position: absolute; bottom: 28%; left: 5%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 20% 40% 0 0;
  clip-path: polygon(0 30%, 20% 0, 40% 15%, 60% 0, 80% 10%, 100% 0, 100% 100%, 0 100%);
  animation: dt-crowd 15s ease-in-out infinite;
}
.scn-dimmesdale-totters .crowd-right {
  position: absolute; bottom: 28%; right: 5%; width: 90px; height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0f05 100%);
  border-radius: 40% 20% 0 0;
  clip-path: polygon(0 10%, 20% 0, 40% 20%, 60% 0, 80% 15%, 100% 0, 100% 100%, 0 100%);
  animation: dt-crowd 18s ease-in-out infinite reverse;
}
.scn-dimmesdale-totters .pearl-figure {
  position: absolute; bottom: 25%; left: 48%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #f0e68c 0%, #b8860b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dt-pearl 4s ease-in-out infinite alternate;
}
@keyframes dt-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes dt-sun { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.05) } 100% { transform: translateX(0) scale(1) } }
@keyframes dt-scaffold { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes dt-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes dt-crowd { 0% { opacity: 0.6; transform: scale(0.95) } 50% { opacity: 0.9; transform: scale(1) } 100% { opacity: 0.6; transform: scale(0.95) } }
@keyframes dt-pearl { 0% { transform: translate(0,0) rotate(-3deg) } 100% { transform: translate(4px,-2px) rotate(3deg) } }

.scn-pearl-flies {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #F5DEB3 70%, #FFD700 100%),
              radial-gradient(ellipse at 20% 5%, #FFD700 0%, transparent 50%);
}
.scn-pearl-flies .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4A90D9 0%, #87CEEB 60%, transparent 100%);
  animation: pf-sky 15s ease-in-out infinite alternate;
}
.scn-pearl-flies .sunbeams {
  position: absolute; top: 0; left: 20%; width: 200px; height: 100%;
  background: linear-gradient(135deg, rgba(255,215,0,0.15) 0%, transparent 70%);
  animation: pf-beams 25s linear infinite;
}
.scn-pearl-flies .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #D2B48C 0%, #8B7355 100%);
  border-radius: 30% 30% 0 0;
}
.scn-pearl-flies .scaffold-base {
  position: absolute; bottom: 30%; left: 35%; width: 140px; height: 40px;
  background: #6B3A2A; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pf-base 10s ease-in-out infinite;
}
.scn-pearl-flies .minister {
  position: absolute; bottom: 30%; left: 38%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3d2b1f 0%, #1a1109 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pf-minister 6s ease-in-out infinite;
}
.scn-pearl-flies .pearl {
  position: absolute; bottom: 26%; left: 44%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #f0e68c 0%, #b8860b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pf-pearl 4s ease-in-out infinite alternate;
}
.scn-pearl-flies .hester {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pf-hester 8s ease-in-out infinite;
}
.scn-pearl-flies .chillingworth {
  position: absolute; bottom: 28%; right: 28%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #2c2c2c 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pf-chill 7s ease-in-out infinite;
}
.scn-pearl-flies .crowd-silhouette {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  mask-image: linear-gradient(90deg, #000 0%, transparent 20%, transparent 80%, #000 100%);
  animation: pf-crowd 20s ease-in-out infinite;
}
@keyframes pf-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pf-beams { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes pf-base { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pf-minister { 0% { transform: translate(0,0) rotate(-1deg) } 30% { transform: translate(2px,-2px) rotate(2deg) } 60% { transform: translate(-1px,-1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(1deg) } }
@keyframes pf-pearl { 0% { transform: translate(0,0) scale(1) } 100% { transform: translate(8px,-4px) scale(1.1) rotate(10deg) } }
@keyframes pf-hester { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pf-chill { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-10px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pf-crowd { 0% { opacity: 0.5 } 50% { opacity: 0.9 } 100% { opacity: 0.5 } }

.scn-dimmesdale-defies {
  background: linear-gradient(180deg, #4169E1 0%, #87CEEB 30%, #FFD700 60%, #FFF8DC 100%),
              radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 70%);
}
.scn-dimmesdale-defies .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1e3a5f 0%, #4169E1 50%, transparent 100%);
  animation: dd-sky 18s ease-in-out infinite alternate;
}
.scn-dimmesdale-defies .light-ray {
  position: absolute; top: 0; left: 30%; width: 120px; height: 100%;
  background: linear-gradient(180deg, rgba(255,215,0,0.3) 0%, transparent 80%);
  clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%);
  animation: dd-ray 6s ease-in-out infinite;
}
.scn-dimmesdale-defies .scaffold {
  position: absolute; bottom: 30%; left: 50%; width: 160px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #A0522D 0%, #5c2815 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: dd-scaffold 12s ease-in-out infinite;
}
.scn-dimmesdale-defies .minister-arm {
  position: absolute; bottom: 38%; left: 46%; width: 50px; height: 12px;
  background: #3d2b1f; border-radius: 10px;
  transform-origin: right center;
  animation: dd-arm 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-defies .hester-hand {
  position: absolute; bottom: 36%; left: 52%; width: 10px; height: 15px;
  background: #f0e68c; border-radius: 50%;
  animation: dd-hand 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-defies .pearl {
  position: absolute; bottom: 26%; left: 48%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #f0e68c 0%, #b8860b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dd-pearl 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-defies .tempter-shadow {
  position: absolute; bottom: 30%; right: 25%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a1a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: dd-tempter 8s ease-in-out infinite;
}
@keyframes dd-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes dd-ray { 0% { transform: rotate(-5deg) scaleY(0.9) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(-5deg) scaleY(0.9) } }
@keyframes dd-scaffold { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes dd-arm { 0% { transform: rotate(0deg) translateX(0) } 100% { transform: rotate(30deg) translateX(10px) } }
@keyframes dd-hand { 0% { transform: translate(0,0) scale(1) } 100% { transform: translate(8px,-4px) scale(1.2) } }
@keyframes dd-pearl { 0% { transform: translateY(0) rotate(-2deg) } 100% { transform: translateY(-5px) rotate(4deg) } }
@keyframes dd-tempter { 0% { transform: scaleX(-1) translateX(0) } 50% { transform: scaleX(-1) translateX(-8px) } 100% { transform: scaleX(-1) translateX(0) } }

.scn-chillingworth-follows {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 35%, #F5DEB3 65%, #DAA520 100%),
              radial-gradient(ellipse at 70% 10%, #FFD700 0%, transparent 60%);
}
.scn-chillingworth-follows .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4682B4 0%, #87CEEB 60%, transparent 100%);
  animation: cf-sky 14s ease-in-out infinite alternate;
}
.scn-chillingworth-follows .sun {
  position: absolute; top: 5%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, transparent 70%);
  border-radius: 50%;
  animation: cf-sun 25s ease-in-out infinite;
}
.scn-chillingworth-follows .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #C8A87C 0%, #8B7355 100%);
  border-radius: 40% 40% 0 0;
}
.scn-chillingworth-follows .scaffold-top {
  position: absolute; bottom: 35%; left: 45%; width: 100px; height: 30px;
  background: #6B3A2A; border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cf-scaffold 11s ease-in-out infinite;
}
.scn-chillingworth-follows .chillingworth-figure {
  position: absolute; bottom: 30%; left: 5%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cf-chill 7s ease-in-out infinite;
}
.scn-chillingworth-follows .minister-back {
  position: absolute; bottom: 32%; left: 42%; width: 25px; height: 65px;
  background: linear-gradient(180deg, #3d2b1f 0%, #1a1109 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: cf-minister 6s ease-in-out infinite;
}
.scn-chillingworth-follows .hester-pearl {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cf-hester 9s ease-in-out infinite;
}
.scn-chillingworth-follows .shadow-sweep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: cf-shadow 20s ease-in-out infinite;
}
@keyframes cf-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cf-sun { 0% { transform: scale(0.95) translateY(0) } 50% { transform: scale(1.05) translateY(4px) } 100% { transform: scale(0.95) translateY(0) } }
@keyframes cf-scaffold { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cf-chill { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(8px) rotate(3deg) } 60% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cf-minister { 0% { transform: scaleX(-1) translateY(0) } 50% { transform: scaleX(-1) translateY(-3px) } 100% { transform: scaleX(-1) translateY(0) } }
@keyframes cf-hester { 0% { transform: translate(0,0) } 50% { transform: translate(2px,-2px) } 100% { transform: translate(0,0) } }
@keyframes cf-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

/* Scene: chillingworth-reputation */
.scn-chillingworth-reputation {
  background:
    linear-gradient(180deg, #1a1010 0%, #2a1a1a 40%, #3a2420 100%),
    radial-gradient(ellipse at 60% 30%, #3a2a20 0%, transparent 60%);
}
.scn-chillingworth-reputation .figure {
  position: absolute;
  bottom: 20%; left: 45%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #1c1410 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: chr-figure 6s ease-in-out infinite alternate;
}
.scn-chillingworth-reputation .herbs {
  position: absolute;
  bottom: 25%; left: 30%;
  width: 16px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 20% 20% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(-15deg);
  animation: chr-herbs 4s ease-in-out infinite;
}
.scn-chillingworth-reputation .desk {
  position: absolute;
  bottom: 12%; left: 20%; right: 20%;
  height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: chr-desk 10s ease-in-out infinite;
}
.scn-chillingworth-reputation .window {
  position: absolute;
  top: 10%; left: 10%; right: 50%;
  height: 30%;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2a 100%);
  border: 2px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 10px rgba(100,80,60,.2);
  animation: chr-window 12s ease-in-out infinite alternate;
}
.scn-chillingworth-reputation .candle {
  position: absolute;
  bottom: 28%; left: 35%;
  width: 6px; height: 18px;
  background: linear-gradient(180deg, #d4884a 0%, #b0703a 60%, #8a542a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(200,140,60,.5), 0 0 40px 12px rgba(200,140,60,.2);
  animation: chr-candle 2s ease-in-out infinite;
}
.scn-chillingworth-reputation .shadow-a,
.scn-chillingworth-reputation .shadow-b {
  position: absolute;
  bottom: 0; left: 10%;
  width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: chr-shadow 8s ease-in-out infinite alternate;
}
.scn-chillingworth-reputation .shadow-b {
  left: 50%;
  animation-delay: -4s;
  width: 30%;
}
@keyframes chr-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes chr-herbs {
  0%, 100% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-10deg) scaleY(1.05); }
}
@keyframes chr-desk {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes chr-window {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes chr-candle {
  0%, 100% { box-shadow: 0 0 20px 6px rgba(200,140,60,.5); }
  50% { box-shadow: 0 0 30px 10px rgba(220,160,70,.7); }
}
@keyframes chr-shadow {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.1); }
  100% { transform: translateX(-3px) scaleX(0.9); }
}

/* Scene: dimmesdale-ill */
.scn-dimmesdale-ill {
  background:
    linear-gradient(180deg, #14101a 0%, #1e1824 40%, #2a2030 100%),
    radial-gradient(ellipse at 40% 60%, #2a2030 0%, transparent 70%);
}
.scn-dimmesdale-ill .figure {
  position: absolute;
  bottom: 15%; left: 38%;
  width: 28px; height: 55px;
  background: linear-gradient(180deg, #2a202a 0%, #181018 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dmi-figure 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-ill .hand {
  position: absolute;
  bottom: 30%; left: 42%;
  width: 12px; height: 16px;
  background: rgba(60,40,50,.8);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-20deg);
  animation: dmi-hand 3s ease-in-out infinite;
}
.scn-dimmesdale-ill .candle {
  position: absolute;
  bottom: 20%; left: 25%;
  width: 10px; height: 28px;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 60%, #7a502a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 8px rgba(180,120,50,.6), 0 0 48px 16px rgba(180,120,50,.3);
  animation: dmi-candle 1.8s ease-in-out infinite;
}
.scn-dimmesdale-ill .chair {
  position: absolute;
  bottom: 12%; left: 30%; right: 10%;
  height: 20px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: dmi-chair 7s ease-in-out infinite alternate;
}
.scn-dimmesdale-ill .pillow {
  position: absolute;
  bottom: 28%; left: 35%;
  width: 20px; height: 12px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a2020 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: dmi-pillow 4s ease-in-out infinite;
}
.scn-dimmesdale-ill .shadow {
  position: absolute;
  bottom: 0; left: 10%; right: 10%;
  height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 70%);
  filter: blur(10px);
  animation: dmi-shadow 6s ease-in-out infinite alternate;
}
@keyframes dmi-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes dmi-hand {
  0%, 100% { transform: rotate(-20deg) scale(1); }
  50% { transform: rotate(-15deg) scale(1.1); }
}
@keyframes dmi-candle {
  0%, 100% { box-shadow: 0 0 24px 8px rgba(180,120,50,.6); }
  50% { box-shadow: 0 0 36px 12px rgba(200,140,60,.8); }
}
@keyframes dmi-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes dmi-pillow {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
@keyframes dmi-shadow {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.1); }
  100% { opacity: 0.5; transform: scaleY(0.9); }
}

/* Scene: dimmesdale-confers */
.scn-dimmesdale-confers {
  background:
    linear-gradient(180deg, #1a1218 0%, #2a2028 40%, #3a2830 100%),
    radial-gradient(ellipse at 50% 80%, #3a2830 0%, transparent 60%);
}
.scn-dimmesdale-confers .figure-a,
.scn-dimmesdale-confers .figure-b {
  position: absolute;
  bottom: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #181018 0%, #0a080a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-dimmesdale-confers .figure-a {
  left: 25%;
  animation: dmc-figure-a 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-confers .figure-b {
  right: 25%;
  animation: dmc-figure-b 7s ease-in-out infinite alternate;
}
.scn-dimmesdale-confers .chair-a,
.scn-dimmesdale-confers .chair-b {
  position: absolute;
  bottom: 14%; width: 18px; height: 16px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 2px;
}
.scn-dimmesdale-confers .chair-a {
  left: 24%;
  animation: dmc-chair 6s ease-in-out infinite;
}
.scn-dimmesdale-confers .chair-b {
  right: 24%;
  animation: dmc-chair 6s ease-in-out infinite reverse;
}
.scn-dimmesdale-confers .fireplace {
  position: absolute;
  bottom: 10%; left: 35%; right: 35%;
  height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1610 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.8), 0 0 30px 10px rgba(180,80,30,.4);
  animation: dmc-fire 3s ease-in-out infinite;
}
.scn-dimmesdale-confers .table {
  position: absolute;
  bottom: 18%; left: 40%; right: 40%;
  height: 6px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: dmc-table 10s ease-in-out infinite;
}
.scn-dimmesdale-confers .books {
  position: absolute;
  bottom: 24%; left: 42%; right: 42%;
  height: 18px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: dmc-books 15s ease-in-out infinite alternate;
}
@keyframes dmc-figure-a {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes dmc-figure-b {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes dmc-chair {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes dmc-fire {
  0%, 100% { box-shadow: 0 0 30px 10px rgba(180,80,30,.4); }
  50% { box-shadow: 0 0 40px 15px rgba(200,100,40,.6); }
}
@keyframes dmc-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes dmc-books {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
}

/* Scene: intimacy-grows */
.scn-intimacy-grows {
  background:
    linear-gradient(180deg, #1e1414 0%, #2a1e1e 40%, #382828 100%),
    radial-gradient(ellipse at 70% 50%, #382828 0%, transparent 60%);
}
.scn-intimacy-grows .figure-a,
.scn-intimacy-grows .figure-b {
  position: absolute;
  bottom: 15%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #181010 0%, #0a0606 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-intimacy-grows .figure-a {
  left: 28%;
  animation: itg-figure-a 6s ease-in-out infinite alternate;
}
.scn-intimacy-grows .figure-b {
  right: 28%;
  animation: itg-figure-b 5s ease-in-out infinite alternate;
}
.scn-intimacy-grows .lamp {
  position: absolute;
  bottom: 30%; left: 45%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #d4a060 0%, #a07030 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(180,120,50,.5), 0 0 60px 20px rgba(180,120,50,.2);
  animation: itg-lamp 2.5s ease-in-out infinite;
}
.scn-intimacy-grows .door {
  position: absolute;
  bottom: 0%; left: 10%; width: 16%; height: 80%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-left: 3px solid #2a1a12;
  border-right: 3px solid #2a1a12;
  animation: itg-door 8s ease-in-out infinite alternate;
}
.scn-intimacy-grows .window {
  position: absolute;
  top: 10%; right: 10%; width: 20%; height: 24%;
  background: linear-gradient(135deg, #0a0a14 0%, #1a1a28 100%);
  border: 2px solid #2a1a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 16px rgba(0,0,0,.7);
  animation: itg-window 12s ease-in-out infinite alternate;
}
.scn-intimacy-grows .shadow-a,
.scn-intimacy-grows .shadow-b {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.7) 0%, transparent 70%);
  filter: blur(12px);
  animation: itg-shadow 7s ease-in-out infinite alternate;
}
.scn-intimacy-grows .shadow-b {
  left: 40%;
  width: 20%;
  height: 40%;
  animation-delay: -3.5s;
  opacity: 0.5;
}
@keyframes itg-figure-a {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes itg-figure-b {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes itg-lamp {
  0%, 100% { box-shadow: 0 0 30px 10px rgba(180,120,50,.5); }
  50% { box-shadow: 0 0 45px 15px rgba(200,140,60,.8); }
}
@keyframes itg-door {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.03); }
}
@keyframes itg-window {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.4; }
}
@keyframes itg-shadow {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.1); }
  100% { transform: translateX(-5px) scaleY(0.9); }
}

.scn-hester-beauty-returned {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d4b88f 30%, #8a6e4e 60%, #4a3a2a 100%),
    radial-gradient(ellipse at 80% 20%, #fffbe6 0%, transparent 60%);
}
.scn-hester-beauty-returned .forest-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #2a4a2a 0%, #1a3a1a 50%, #0a1a0a 100%);
  opacity: 0.7; animation: hbr-fade 12s ease-in-out infinite alternate;
}
.scn-hester-beauty-returned .sunbeam {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: hbr-sway 6s ease-in-out infinite;
}
.scn-hester-beauty-returned .tree-left {
  position: absolute; left: 5%; bottom: 0; width: 20%; height: 90%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 0 0 0; box-shadow: inset -5px 0 10px rgba(0,0,0,0.3);
  animation: hbr-sway 8s ease-in-out infinite alternate;
}
.scn-hester-beauty-returned .tree-right {
  position: absolute; right: 5%; bottom: 0; width: 18%; height: 85%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 20% 0 0; box-shadow: inset 5px 0 10px rgba(0,0,0,0.3);
  animation: hbr-sway 8s ease-in-out infinite alternate-reverse;
}
.scn-hester-beauty-returned .figure-hester {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%); animation: hbr-step 4s ease-in-out infinite;
}
.scn-hester-beauty-returned .figure-dimmesdale {
  position: absolute; bottom: 22%; left: 50%; width: 24px; height: 64px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%); animation: hbr-step 4s ease-in-out infinite 0.5s;
}
.scn-hester-beauty-returned .brook {
  position: absolute; bottom: 12%; left: 0; right: 0; height: 16%;
  background: linear-gradient(180deg, #a0c8d0 0%, #6a9aaa 100%);
  border-radius: 50% 50% 0 0; animation: hbr-flow 10s linear infinite;
}
.scn-hester-beauty-returned .leaf-drift {
  position: absolute; bottom: 15%; left: 0; width: 10px; height: 6px;
  background: #c8a040; border-radius: 50%; filter: blur(1px);
  animation: hbr-drift 15s linear infinite;
}
@keyframes hbr-fade { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.65 } }
@keyframes hbr-sway { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hbr-step { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 25% { transform: translateX(-48%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(2deg) } 75% { transform: translateX(-52%) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes hbr-flow { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }

.scn-pearl-seen {
  background:
    linear-gradient(180deg, #faf0d0 0%, #c8b88a 30%, #7a5a3a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 60% 15%, #fffbe6 0%, transparent 50%);
}
.scn-pearl-seen .forest-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a3a1a 0%, #0a1a0a 100%);
  opacity: 0.6; animation: pse-fade 15s ease-in-out infinite alternate;
}
.scn-pearl-seen .sunbeam {
  position: absolute; top: 8%; left: 45%; width: 30%; height: 75%;
  background: linear-gradient(180deg, rgba(255,245,200,0.5) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 50% 100%);
  animation: pse-shimmer 5s ease-in-out infinite;
}
.scn-pearl-seen .brook {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 14%;
  background: linear-gradient(180deg, #9abbc5 0%, #60808a 100%);
  border-radius: 40% 40% 0 0; animation: pse-flow 8s linear infinite;
}
.scn-pearl-seen .figure-pearl-stand {
  position: absolute; bottom: 16%; left: 50%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #d4c0a8 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%); box-shadow: 0 0 20px 8px rgba(255,240,180,0.6);
  animation: pse-breathe 4s ease-in-out infinite;
}
.scn-pearl-seen .reflection {
  position: absolute; bottom: 10%; left: 46%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #c8b88a 0%, transparent 100%);
  border-radius: 30% 30% 20% 20%; opacity: 0.5; filter: blur(2px);
  animation: pse-reflect 6s ease-in-out infinite;
}
.scn-pearl-seen .flower-bank {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 8%;
  background: radial-gradient(circle at 20% 50%, #b87878 0%, #a06060 40%, transparent 70%),
              radial-gradient(circle at 80% 40%, #d0a050 0%, #b08030 30%, transparent 60%);
  animation: pse-grow 7s ease-in-out infinite alternate;
}
.scn-pearl-seen .sparkles {
  position: absolute; top: 30%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,200,0.3) 0%, transparent 30%),
              radial-gradient(circle at 70% 60%, rgba(255,255,200,0.2) 0%, transparent 30%);
  animation: pse-sparkle 3s ease-in-out infinite alternate;
}
@keyframes pse-fade { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.55 } }
@keyframes pse-shimmer { 0% { opacity: 0.7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: 0.8; transform: scaleY(0.95) } }
@keyframes pse-flow { 0% { background-position: 0 0 } 100% { background-position: 80px 0 } }
@keyframes pse-breathe { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(0.98) } }
@keyframes pse-reflect { 0% { opacity: 0.4; transform: scaleY(1) } 50% { opacity: 0.6; transform: scaleY(1.1) } 100% { opacity: 0.35; transform: scaleY(0.9) } }
@keyframes pse-grow { 0% { opacity: 0.7; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: 0.8; transform: scale(0.98) } }
@keyframes pse-sparkle { 0% { opacity: 0.3 } 50% { opacity: 0.7 } 100% { opacity: 0.4 } }

.scn-pearl-gentle {
  background:
    linear-gradient(180deg, #f0e4c0 0%, #c8b080 30%, #7a5a3a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 70% 30%, #fffbe0 0%, transparent 50%);
}
.scn-pearl-gentle .forest-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a3a1a 0%, #0a1a0a 100%);
  opacity: 0.5; animation: pge-fade 18s ease-in-out infinite alternate;
}
.scn-pearl-gentle .sunbeam {
  position: absolute; top: 5%; left: 35%; width: 35%; height: 80%;
  background: linear-gradient(180deg, rgba(255,245,200,0.35) 0%, transparent 100%);
  clip-path: polygon(25% 0%, 75% 0%, 60% 100%, 40% 100%);
  animation: pge-sway 7s ease-in-out infinite;
}
.scn-pearl-gentle .tree-frame-l {
  position: absolute; left: 0; top: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset -10px 0 15px rgba(0,0,0,0.4);
  animation: pge-sway 9s ease-in-out infinite alternate;
}
.scn-pearl-gentle .tree-frame-r {
  position: absolute; right: 0; top: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  box-shadow: inset 10px 0 15px rgba(0,0,0,0.4);
  animation: pge-sway 9s ease-in-out infinite alternate-reverse;
}
.scn-pearl-gentle .figure-pearl-gather {
  position: absolute; bottom: 18%; left: 50%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #d4c0a8 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%); animation: pge-bend 5s ease-in-out infinite;
}
.scn-pearl-gentle .flowers {
  position: absolute; bottom: 16%; left: 35%; width: 30%; height: 12%;
  background: radial-gradient(circle at 30% 40%, #c08060 0%, #a06040 30%, transparent 60%),
              radial-gradient(circle at 70% 60%, #d0a070 0%, #b08050 30%, transparent 60%);
  animation: pge-sway 6s ease-in-out infinite alternate;
}
.scn-pearl-gentle .butterfly {
  position: absolute; top: 40%; left: 20%; width: 14px; height: 10px;
  background: radial-gradient(circle, #c8a040 0%, #a07020 60%);
  border-radius: 50%; filter: blur(1px);
  animation: pge-flutter 4s ease-in-out infinite;
}
.scn-pearl-gentle .dappled-light {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 50%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,200,0.15) 0%, transparent 20%),
              radial-gradient(circle at 80% 70%, rgba(255,255,200,0.1) 0%, transparent 20%);
  animation: pge-dapple 8s ease-in-out infinite alternate;
}
@keyframes pge-fade { 0% { opacity: 0.5 } 50% { opacity: 0.75 } 100% { opacity: 0.45 } }
@keyframes pge-sway { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pge-bend { 0% { transform: translateX(-50%) rotate(-3deg) } 25% { transform: translateX(-48%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(-3deg) } 75% { transform: translateX(-52%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-3deg) } }
@keyframes pge-flutter { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(10px,-5px) rotate(10deg) } 50% { transform: translate(20px,0) rotate(-5deg) } 75% { transform: translate(30px,-8px) rotate(15deg) } 100% { transform: translate(40px,0) rotate(0deg) } }
@keyframes pge-dapple { 0% { opacity: 0.4; background-position: 0 0 } 50% { opacity: 0.7; background-position: 20px 10px } 100% { opacity: 0.5; background-position: 0 0 } }

.scn-pearl-identity {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #c8b88a 30%, #7a5a3a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 20%, #fffbe6 0%, transparent 60%);
}
.scn-pearl-identity .forest-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a3a1a 0%, #0a1a0a 100%);
  opacity: 0.55; animation: pid-fade 14s ease-in-out infinite alternate;
}
.scn-pearl-identity .sunbeam {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 70%;
  background: linear-gradient(180deg, rgba(255,245,200,0.45) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%);
  animation: pid-sway 6s ease-in-out infinite;
}
.scn-pearl-identity .figure-pearl-approach {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #d4c0a8 0%, #a08060 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%); animation: pid-walk 6s ease-in-out infinite;
}
.scn-pearl-identity .figure-shadow {
  position: absolute; bottom: 16%; left: 52%; width: 20px; height: 8px;
  background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(3px);
  animation: pid-shadow 6s ease-in-out infinite;
}
.scn-pearl-identity .brook {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 14%;
  background: linear-gradient(180deg, #9abbc5 0%, #60808a 100%);
  border-radius: 40% 40% 0 0; animation: pid-flow 9s linear infinite;
}
.scn-pearl-identity .mossy-stones {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 8%;
  background: radial-gradient(circle at 30% 60%, #5a6a4a 0%, #3a4a2a 40%, transparent 70%),
              radial-gradient(circle at 70% 40%, #6a7a5a 0%, #4a5a3a 40%, transparent 70%);
  animation: pid-stones 10s ease-in-out infinite alternate;
}
.scn-pearl-identity .glow-orbs {
  position: absolute; top: 30%; left: 10%; width: 80%; height: 50%;
  background: radial-gradient(circle at 15% 35%, rgba(255,240,180,0.2) 0%, transparent 25%),
              radial-gradient(circle at 85% 60%, rgba(255,240,180,0.15) 0%, transparent 25%);
  animation: pid-glint 5s ease-in-out infinite alternate;
}
.scn-pearl-identity .fern {
  position: absolute; bottom: 14%; left: 65%; width: 12%; height: 20%;
  background: linear-gradient(135deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 0 0; transform-origin: bottom center;
  animation: pid-fern 8s ease-in-out infinite alternate;
}
@keyframes pid-fade { 0% { opacity: 0.55 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes pid-sway { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes pid-walk { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 20% { transform: translateX(-48%) translateY(-2px) rotate(2deg) } 40% { transform: translateX(-52%) translateY(0) rotate(-2deg) } 60% { transform: translateX(-48%) translateY(-1px) rotate(2deg) } 80% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes pid-shadow { 0% { transform: translateX(-50%) scale(1); opacity: 0.3 } 50% { transform: translateX(-50%) scale(1.1); opacity: 0.5 } 100% { transform: translateX(-50%) scale(0.95); opacity: 0.25 } }
@keyframes pid-flow { 0% { background-position: 0 0 } 100% { background-position: 100px 0 } }
@keyframes pid-stones { 0% { opacity: 0.7; transform: scale(0.98) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: 0.75; transform: scale(0.99) } }
@keyframes pid-glint { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.35 } }
@keyframes pid-fern { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }

.scn-intimacy-restored {
  background: linear-gradient(180deg, #1a1210 0%, #2a1d18 50%, #0d0806 100%),
              radial-gradient(ellipse 50% 30% at 50% 70%, #b5844a 0%, transparent 70%);
}
.scn-intimacy-restored .bg-deep {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1a1010 0%, transparent 100%);
  animation: ir-sky 12s ease-in-out infinite alternate;
}
.scn-intimacy-restored .bg-mid {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1d18 0%, #0d0806 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: ir-hills 18s ease-in-out infinite alternate;
}
.scn-intimacy-restored .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 14px; height: 28px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c07a3a 0%, #8a5420 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px #b5844a, 0 0 40px 15px rgba(181,132,74,0.4);
  animation: ir-lamp 4s ease-in-out infinite alternate;
}
.scn-intimacy-restored .glow {
  position: absolute; bottom: 34%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d4a55a 0%, transparent 70%);
  filter: blur(12px);
  animation: ir-glow-pulse 3s ease-in-out infinite alternate;
}
.scn-intimacy-restored .figure-left {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 40% 50%;
  transform: rotate(5deg);
  animation: ir-fig-left 6s ease-in-out infinite;
}
.scn-intimacy-restored .figure-right {
  position: absolute; bottom: 28%; right: 35%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #1e1614 0%, #0a0604 100%);
  border-radius: 40% 50% 40% 30% / 50% 60% 50% 40%;
  transform: rotate(-4deg);
  animation: ir-fig-right 6s ease-in-out infinite;
}
.scn-intimacy-restored .table {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-intimacy-restored .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #0a0604 100%);
  animation: ir-shad 8s ease-in-out infinite alternate;
}
@keyframes ir-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ir-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ir-lamp { 0% { box-shadow: 0 0 15px 5px #b5844a, 0 0 30px 10px rgba(181,132,74,0.3); opacity:0.9 } 50% { box-shadow: 0 0 25px 10px #d4a55a, 0 0 50px 20px rgba(212,165,90,0.5); opacity:1 } 100% { box-shadow: 0 0 18px 6px #b5844a, 0 0 36px 12px rgba(181,132,74,0.35); opacity:0.92 } }
@keyframes ir-glow-pulse { 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.95) } }
@keyframes ir-fig-left { 0% { transform: rotate(5deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-1px) } 50% { transform: rotate(6deg) translateY(0) } 75% { transform: rotate(4deg) translateY(-1px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes ir-fig-right { 0% { transform: rotate(-4deg) translateY(0) } 25% { transform: rotate(-6deg) translateY(-1px) } 50% { transform: rotate(-3deg) translateY(0) } 75% { transform: rotate(-5deg) translateY(-1px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes ir-shad { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

.scn-chillingworth-discovers {
  background: linear-gradient(180deg, #120a06 0%, #1a1210 50%, #080402 100%),
              radial-gradient(ellipse 60% 20% at 50% 80%, #6a4a22 0%, transparent 80%);
}
.scn-chillingworth-discovers .bg-coat {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1210 0%, transparent 100%);
  animation: cd-coat 10s ease-in-out infinite alternate;
}
.scn-chillingworth-discovers .chair {
  position: absolute; bottom: 25%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a10 0%, #0a0602 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: cd-chair 12s ease-in-out infinite;
}
.scn-chillingworth-discovers .body {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e1410 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: cd-body 8s ease-in-out infinite;
}
.scn-chillingworth-discovers .head {
  position: absolute; bottom: 60%; left: 50%; width: 22px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cd-head 8s ease-in-out infinite alternate;
}
.scn-chillingworth-discovers .hand {
  position: absolute; bottom: 40%; left: 55%; width: 14px; height: 30px;
  transform: rotate(20deg);
  background: linear-gradient(180deg, #2a1a12 0%, #0e0804 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  animation: cd-hand 6s ease-in-out infinite;
}
.scn-chillingworth-discovers .vestment {
  position: absolute; bottom: 30%; left: 48%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-10deg);
  animation: cd-vest 6s ease-in-out infinite alternate;
}
.scn-chillingworth-discovers .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #060200 100%);
  animation: cd-shadow 9s ease-in-out infinite alternate;
}
@keyframes cd-coat { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cd-chair { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes cd-body { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.02) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes cd-head { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes cd-hand { 0% { transform: rotate(20deg) translateY(0) } 25% { transform: rotate(25deg) translateY(-2px) } 50% { transform: rotate(15deg) translateY(0) } 75% { transform: rotate(20deg) translateY(-1px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes cd-vest { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes cd-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

.scn-interior-of-heart {
  background: linear-gradient(180deg, #0e080a 0%, #1a0c10 40%, #040202 100%),
              radial-gradient(ellipse 40% 50% at 50% 50%, #6a1a1a 0%, transparent 70%);
}
.scn-interior-of-heart .bg-heart {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a0c10 0%, transparent 100%);
  animation: ih-sky 14s ease-in-out infinite alternate;
}
.scn-interior-of-heart .heart {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(90,20,20,0.6), inset 0 -8px 12px rgba(0,0,0,0.4);
  animation: ih-heart 5s ease-in-out infinite alternate;
}
.scn-interior-of-heart .hand {
  position: absolute; bottom: 35%; left: 55%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%;
  transform: rotate(-15deg);
  animation: ih-hand 7s ease-in-out infinite;
}
.scn-interior-of-heart .veins {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 40% 60% at 50% 40%, #8a2a2a 0%, transparent 60%);
  filter: blur(3px);
  animation: ih-veins 6s ease-in-out infinite alternate;
}
.scn-interior-of-heart .glow-h {
  position: absolute; bottom: 28%; left: 50%; width: 70px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #a03030 0%, transparent 70%);
  filter: blur(15px);
  animation: ih-glow 4s ease-in-out infinite alternate;
}
.scn-interior-of-heart .shadow-h {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, transparent 0%, #040202 100%);
  animation: ih-shadow 10s ease-in-out infinite alternate;
}
.scn-interior-of-heart .drip {
  position: absolute; bottom: 10%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #5e1a1d 0%, #8a2a2a 100%);
  border-radius: 0 0 50% 50%;
  animation: ih-drip 8s ease-in-out infinite;
}
@keyframes ih-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ih-heart { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) rotate(2deg) } 100% { transform: translateX(-50%) scale(0.98) rotate(-1deg) } }
@keyframes ih-hand { 0% { transform: rotate(-15deg) translateY(0) } 25% { transform: rotate(-10deg) translateY(-2px) } 50% { transform: rotate(-20deg) translateY(0) } 75% { transform: rotate(-12deg) translateY(-1px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes ih-veins { 0% { opacity:0.5; transform: translateX(-50%) scale(1) } 50% { opacity:0.8; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.6; transform: translateX(-50%) scale(0.95) } }
@keyframes ih-glow { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes ih-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes ih-drip { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(5px) scaleY(1.5) } 100% { transform: translateY(0) scaleY(1) } }

.scn-subtle-torment {
  background: linear-gradient(180deg, #120a0c 0%, #1a1012 40%, #080406 100%),
              radial-gradient(ellipse 50% 40% at 50% 60%, #2a1a1a 0%, transparent 70%);
}
.scn-subtle-torment .bg-torment {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a1012 0%, transparent 100%);
  animation: st-sky 13s ease-in-out infinite alternate;
}
.scn-subtle-torment .figure {
  position: absolute; bottom: 25%; left: 50%; width: 26px; height: 56px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e1412 0%, #0a0606 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: st-figure 7s ease-in-out infinite;
}
.scn-subtle-torment .tendril {
  position: absolute; bottom: 30%; left: 60%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: translateY(-10px) rotate(30deg);
  animation: st-tendril 6s ease-in-out infinite alternate;
}
.scn-subtle-torment .shadow-t {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #060204 100%);
  animation: st-shadow 11s ease-in-out infinite alternate;
}
.scn-subtle-torment .glow-t {
  position: absolute; bottom: 22%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle, #4a2a2a 0%, transparent 70%);
  filter: blur(12px);
  animation: st-glow 5s ease-in-out infinite alternate;
}
.scn-subtle-torment .chain {
  position: absolute; bottom: 20%; left: 53%; width: 30px; height: 6px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0806 100%);
  border-radius: 20%;
  transform: rotate(-20deg);
  animation: st-chain 8s ease-in-out infinite;
}
@keyframes st-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes st-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(0) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes st-tendril { 0% { transform: translateY(-10px) rotate(30deg) scaleY(1) } 50% { transform: translateY(-15px) rotate(35deg) scaleY(1.2) } 100% { transform: translateY(-10px) rotate(25deg) scaleY(0.9) } }
@keyframes st-shadow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes st-glow { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.95) } }
@keyframes st-chain { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } 100% { transform: rotate(-20deg) translateY(0) } }

.scn-market-diversity {
  background: 
    linear-gradient(180deg, #f9e7c0 0%, #f5d49b 30%, #e8b56e 70%, #c78a3a 100%),
    radial-gradient(ellipse at 70% 30%, rgba(255,220,140,0.4) 0%, transparent 60%);
}
.scn-market-diversity .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fce4b8 0%, #f5d49b 50%, #eac285 100%);
  animation: md-sky 20s ease-in-out infinite alternate;
}
.scn-market-diversity .sun {
  position: absolute; top: 12%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5d0 0%, #f9d67a 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(249,214,122,0.5), 0 0 120px 40px rgba(249,214,122,0.2);
  animation: md-sun 6s ease-in-out infinite alternate;
}
.scn-market-diversity .ground {
  position: absolute; bottom: 0; height: 45%; left: 0; right: 0;
  background: linear-gradient(180deg, #c9903c 0%, #a06a2a 40%, #7a4e1a 100%);
  border-radius: 20% 20% 0 0 / 15% 15% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-market-diversity .stall {
  position: absolute; bottom: 28%; left: 20%; width: 120px; height: 70px;
  background: linear-gradient(180deg, #cfa25a 0%, #8c6c32 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3), inset 0 2px 4px rgba(255,255,200,0.3);
  transform: perspective(300px) rotateX(5deg);
  animation: md-stall 10s ease-in-out infinite alternate;
}
.scn-market-diversity .figure-indian {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #b87868 0%, #8c5a4a 40%, #5c3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-fig1 4s ease-in-out infinite;
}
.scn-market-diversity .figure-mariner {
  position: absolute; bottom: 22%; left: 50%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #a07a6a 0%, #7a5a4a 40%, #4a2a1a 100%);
  border-radius: 45% 55% 40% 40% / 55% 65% 40% 40%;
  transform-origin: bottom center;
  animation: md-fig2 5s ease-in-out infinite alternate;
}
.scn-market-diversity .banner {
  position: absolute; bottom: 45%; left: 25%; width: 60px; height: 12px;
  background: linear-gradient(90deg, #c8553d 0%, #a0461a 50%, #c8553d 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: md-banner 8s ease-in-out infinite alternate;
}
.scn-market-diversity .dust {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,170,100,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: md-dust 12s ease-in-out infinite alternate;
}
@keyframes md-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes md-sun { 0% { transform: translate(0,0) scale(0.95); box-shadow: 0 0 50px 15px rgba(249,214,122,0.4); } 50% { transform: translate(-4px,2px) scale(1.05); box-shadow: 0 0 80px 25px rgba(249,214,122,0.6); } 100% { transform: translate(0,0) scale(0.95); } }
@keyframes md-stall { 0% { transform: perspective(300px) rotateX(5deg) translateY(0); } 100% { transform: perspective(300px) rotateX(7deg) translateY(-2px); } }
@keyframes md-fig1 { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(2deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes md-fig2 { 0% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(-3px) rotate(-2deg); } 66% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes md-banner { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.1) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes md-dust { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 100% { transform: translateY(-10px) scale(1.2); opacity: 0.2; } }

.scn-ship-commander {
  background: 
    linear-gradient(180deg, #b8d8e0 0%, #8ab8c0 40%, #4a7a80 100%),
    radial-gradient(ellipse at 40% 80%, rgba(255,230,180,0.3) 0%, transparent 70%);
}
.scn-ship-commander .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8e8f0 0%, #8ab8c0 60%, #5a8a90 100%);
  animation: sc-sky 15s ease-in-out infinite alternate;
}
.scn-ship-commander .sea {
  position: absolute; bottom: 0; height: 50%; left: 0; right: 0;
  background: linear-gradient(180deg, #4a7a80 0%, #2a5a60 40%, #1a3a40 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: sc-sea 8s ease-in-out infinite alternate;
}
.scn-ship-commander .deck {
  position: absolute; bottom: 30%; left: 15%; width: 70%; height: 18%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateX(5deg);
}
.scn-ship-commander .mast {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 160px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: sc-mast 6s ease-in-out infinite alternate;
}
.scn-ship-commander .sail {
  position: absolute; bottom: 50%; left: 40%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 40%, #f0e8d0 0%, #d0c0a0 60%, #b0a080 100%);
  border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
  animation: sc-sail 12s ease-in-out infinite alternate;
}
.scn-ship-commander .commander {
  position: absolute; bottom: 35%; left: 35%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #b87858 0%, #8a5a3a 30%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-cmd 4s ease-in-out infinite;
}
.scn-ship-commander .sword {
  position: absolute; bottom: 40%; left: 32%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #c0b8a0 0%, #807060 100%);
  border-radius: 1px;
  transform: rotate(30deg);
  transform-origin: bottom right;
  box-shadow: 0 0 4px rgba(200,180,120,0.5);
  animation: sc-sword 3s ease-in-out infinite alternate;
}
.scn-ship-commander .ribbon {
  position: absolute; bottom: 42%; left: 30%; width: 20px; height: 6px;
  background: linear-gradient(90deg, #b83030 0%, #d05050 50%, #b83030 100%);
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  animation: sc-ribbon 5s ease-in-out infinite alternate;
}
@keyframes sc-sky { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes sc-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sc-mast { 0% { transform: rotate(-1deg) } 100% { transform: rotate(1deg) } }
@keyframes sc-sail { 0% { transform: rotate(-5deg) scaleX(0.95) } 50% { transform: rotate(-3deg) scaleX(1.05) } 100% { transform: rotate(-5deg) scaleX(0.95) } }
@keyframes sc-cmd { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes sc-sword { 0% { transform: rotate(28deg) } 100% { transform: rotate(32deg) } }
@keyframes sc-ribbon { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(0.9) } 100% { transform: translateY(0) scaleX(1) } }

.scn-commander-news {
  background: 
    linear-gradient(135deg, #3a4a5a 0%, #5a6a7a 30%, #2a3a4a 70%, #1a2a3a 100%),
    radial-gradient(ellipse at 60% 40%, rgba(200,180,140,0.15) 0%, transparent 70%);
}
.scn-commander-news .cabin-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 40%, #1a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-commander-news .bunk {
  position: absolute; bottom: 10%; left: 10%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(10deg);
}
.scn-commander-news .table {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.4);
  transform: perspective(200px) rotateX(5deg);
  animation: cn-table 6s ease-in-out infinite alternate;
}
.scn-commander-news .bottles {
  position: absolute; bottom: 28%; left: 40%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #a8b8a0 0%, #7a8a72 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3), inset 0 -4px 6px rgba(0,0,0,0.2);
  transform: rotate(5deg);
  animation: cn-bottles 8s ease-in-out infinite alternate;
}
.scn-commander-news .surgeon {
  position: absolute; bottom: 15%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #c0a090 0%, #907060 30%, #604030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cn-surgeon 4s ease-in-out infinite;
}
.scn-commander-news .window-light {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 50px;
  background: radial-gradient(ellipse, #f0e0b0 0%, #d0b070 50%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 15px rgba(200,180,120,0.5), inset 0 0 10px #fff8d0;
  animation: cn-light 4s ease-in-out infinite alternate;
}
.scn-commander-news .shadow {
  position: absolute; bottom: 0; left: 30%; width: 80%; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%);
  filter: blur(6px);
  animation: cn-shadow 7s ease-in-out infinite alternate;
}
@keyframes cn-table { 0% { transform: perspective(200px) rotateX(5deg) translateY(0); } 100% { transform: perspective(200px) rotateX(7deg) translateY(-2px); } }
@keyframes cn-bottles { 0% { transform: rotate(3deg); } 50% { transform: rotate(7deg); } 100% { transform: rotate(3deg); } }
@keyframes cn-surgeon { 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 cn-light { 0% { opacity: 0.8; box-shadow: 0 0 30px 10px rgba(200,180,120,0.3); } 50% { opacity: 1; box-shadow: 0 0 60px 20px rgba(200,180,120,0.6); } 100% { opacity: 0.8; box-shadow: 0 0 30px 10px rgba(200,180,120,0.3); } }
@keyframes cn-shadow { 0% { transform: scaleX(0.95); opacity: 0.6; } 100% { transform: scaleX(1.05); opacity: 0.8; } }

.scn-hester-learns {
  background: 
    linear-gradient(180deg, #f0e0c8 0%, #d8c8a8 30%, #b8a888 60%, #8a7a6a 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.3) 0%, transparent 70%);
}
.scn-hester-learns .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f5e8d0 0%, #d8c8a8 60%, #b8a888 100%);
  animation: hl-sky 20s ease-in-out infinite alternate;
}
.scn-hester-learns .buildings {
  position: absolute; bottom: 25%; left: 5%; width: 90%; height: 35%;
  background: linear-gradient(180deg, #c0b098 0%, #9a8a72 50%, #7a6a5a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: hl-buildings 15s ease-in-out infinite alternate;
}
.scn-hester-learns .ground {
  position: absolute; bottom: 0; height: 25%; left: 0; right: 0;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 50%, #6a5030 100%);
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.15);
}
.scn-hester-learns .hester {
  position: absolute; bottom: 18%; left: 30%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #c0a090 0%, #907060 40%, #604030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hl-hester 4s ease-in-out infinite;
}
.scn-hester-learns .chillingworth {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #b08070 0%, #8a6050 30%, #5a4030 100%);
  border-radius: 45% 55% 40% 40% / 55% 65% 40% 40%;
  transform-origin: bottom center;
  animation: hl-chill 5s ease-in-out infinite alternate;
}
.scn-hester-learns .shadow-h {
  position: absolute; bottom: 10%; left: 20%; width: 40%; height: 15%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: hl-shadow 8s ease-in-out infinite alternate;
}
.scn-hester-learns .crowd {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(60,40,30,0.15) 0%, transparent 100%);
  filter: blur(12px);
  animation: hl-crowd 12s ease-in-out infinite alternate;
}
@keyframes hl-sky { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes hl-buildings { 0% { transform: scaleY(0.98) } 100% { transform: scaleY(1.02) } }
@keyframes hl-hester { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes hl-chill { 0% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(-2px) rotate(-1deg); } 66% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hl-shadow { 0% { transform: scaleX(0.9); opacity: 0.5; } 100% { transform: scaleX(1.1); opacity: 0.8; } }
@keyframes hl-crowd { 0% { transform: scaleY(0.95) translateY(0); opacity: 0.4; } 100% { transform: scaleY(1.05) translateY(-5px); opacity: 0.7; } }

/* Scene 1: chillingworth-appears – tense sunlit, close-up of stranger and Hester */
.scn-chillingworth-appears {
  background:
    linear-gradient(180deg, #f8e5d0 0%, #d4b89a 30%, #a47a5a 70%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 100%, #d4b89a 0%, transparent 70%);
  overflow: hidden;
}
.scn-chillingworth-appears .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #f0c890 40%, #d0a070 100%);
  animation: ca-sky 10s ease-in-out infinite alternate;
}
.scn-chillingworth-appears .crowd {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a3220 100%);
  border-radius: 60% 60% 0 0 / 80% 80% 0 0;
  filter: blur(2px);
  opacity: 0.6;
  animation: ca-crowd 15s ease-in-out infinite alternate;
}
.scn-chillingworth-appears .scaffold {
  position: absolute; bottom: 15%; left: 40%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  transform: translateX(-50%);
}
.scn-chillingworth-appears .hester {
  position: absolute; bottom: 25%; left: 42%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-hester 4s ease-in-out infinite;
}
.scn-chillingworth-appears .infant {
  position: absolute; bottom: 35%; left: 44%; width: 12px; height: 18px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ca-infant 2s ease-in-out infinite alternate;
}
.scn-chillingworth-appears .stranger {
  position: absolute; bottom: 20%; left: 58%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(4deg);
  box-shadow: -4px 0 6px rgba(0,0,0,0.5);
  animation: ca-stranger 6s ease-in-out infinite;
}
.scn-chillingworth-appears .shadow {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  filter: blur(6px);
  animation: ca-shadow 6s ease-in-out infinite alternate;
}
@keyframes ca-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ca-crowd { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(2px) scale(0.98); } }
@keyframes ca-hester { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes ca-infant { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-1px) scale(1.1); } }
@keyframes ca-stranger { 0% { transform: rotate(4deg) translateX(0); } 25% { transform: rotate(3deg) translateX(2px); } 50% { transform: rotate(5deg) translateX(0); } 75% { transform: rotate(2deg) translateX(-2px); } 100% { transform: rotate(4deg) translateX(0); } }
@keyframes ca-shadow { 0% { opacity: 0.6; transform: scaleX(1); } 100% { opacity: 0.2; transform: scaleX(0.8); } }

/* Scene 2: chillingworth-inquiry – tense sunlit, wide scene with two figures and town backdrop */
.scn-chillingworth-inquiry {
  background:
    linear-gradient(180deg, #f5dcc0 0%, #d0b898 30%, #a08060 70%, #705040 100%),
    radial-gradient(ellipse at 50% 0%, #f5dcc0 0%, transparent 60%);
}
.scn-chillingworth-inquiry .bg-building {
  position: absolute; bottom: 20%; left: 10%; width: 200px; height: 120px;
  background: linear-gradient(180deg, #b09070 0%, #806040 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.2);
  animation: ci-building 20s ease-in-out infinite alternate;
}
.scn-chillingworth-inquiry .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0d8b0 0%, #d0b890 50%, #b09070 100%);
  animation: ci-sky 12s ease-in-out infinite alternate;
}
.scn-chillingworth-inquiry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 40% 30% 0 0 / 60% 50% 0 0;
}
.scn-chillingworth-inquiry .townsman {
  position: absolute; bottom: 28%; left: 38%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 65% 65% 35% 35%;
  transform: rotate(5deg);
  animation: ci-town 5s ease-in-out infinite;
}
.scn-chillingworth-inquiry .stranger {
  position: absolute; bottom: 28%; left: 52%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(-3deg);
  animation: ci-stranger 6s ease-in-out infinite;
}
.scn-chillingworth-inquiry .fence {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 6px;
  background: #8a6a4a;
  box-shadow: 0 8px 0 #8a6a4a, 0 16px 0 #8a6a4a;
  animation: ci-fence 8s ease-in-out infinite alternate;
}
.scn-chillingworth-inquiry .dust {
  position: absolute; bottom: 28%; left: 45%; width: 10px; height: 10px;
  background: rgba(200,180,130,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: ci-dust 3s ease-in-out infinite;
}
@keyframes ci-building { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(2px) scaleY(0.98); } }
@keyframes ci-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ci-town { 0% { transform: rotate(5deg) translateX(0); } 25% { transform: rotate(4deg) translateX(3px); } 50% { transform: rotate(6deg) translateX(0); } 75% { transform: rotate(3deg) translateX(-3px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes ci-stranger { 0% { transform: rotate(-3deg) translateX(0); } 20% { transform: rotate(-2deg) translateX(-4px); } 40% { transform: rotate(-4deg) translateX(0); } 60% { transform: rotate(-1deg) translateX(4px); } 80% { transform: rotate(-5deg) translateX(0); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes ci-fence { 0% { box-shadow: 0 8px 0 #8a6a4a, 0 16px 0 #8a6a4a; } 100% { box-shadow: 0 8px 0 #7a5a3a, 0 16px 0 #7a5a3a; transform: translateY(1px); } }
@keyframes ci-dust { 0% { transform: translate(0,0) scale(1); opacity: 0.4; } 50% { transform: translate(5px,-8px) scale(1.5); opacity: 0.1; } 100% { transform: translate(0,0) scale(1); opacity: 0.4; } }

/* Scene 3: chillingworth-learns – tense sunlit, interior cutaway with window and two figures */
.scn-chillingworth-learns {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #8a6a4a 60%, #a08060 100%),
    radial-gradient(ellipse at 50% 50%, #a08060 0%, transparent 70%);
}
.scn-chillingworth-learns .room {
  position: absolute; inset: 10% 5% 10% 5%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-chillingworth-learns .window {
  position: absolute; top: 15%; left: 55%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #f0d8b0 0%, #d0b890 100%);
  border: 4px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: 0 0 20px 6px rgba(240,216,176,0.4);
  animation: cl-window 6s ease-in-out infinite alternate;
}
.scn-chillingworth-learns .table {
  position: absolute; bottom: 25%; left: 25%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cl-table 8s ease-in-out infinite alternate;
}
.scn-chillingworth-learns .stranger {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 65% 65% 35% 35%;
  transform: rotate(6deg);
  animation: cl-stranger 5s ease-in-out infinite;
}
.scn-chillingworth-learns .townsman {
  position: absolute; bottom: 20%; left: 55%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 65% 65% 35% 35%;
  transform: rotate(-4deg);
  animation: cl-town 6s ease-in-out infinite;
}
.scn-chillingworth-learns .candle {
  position: absolute; bottom: 32%; left: 45%; width: 6px; height: 12px;
  background: #f0c070;
  border-radius: 2px 2px 40% 40%;
  box-shadow: 0 0 16px 4px rgba(240,192,112,0.6);
  animation: cl-candle 3s ease-in-out infinite alternate;
}
.scn-chillingworth-learns .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 10px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: cl-shadow 5s ease-in-out infinite alternate;
}
@keyframes cl-window { 0% { box-shadow: 0 0 20px 6px rgba(240,216,176,0.4); } 50% { box-shadow: 0 0 30px 10px rgba(240,216,176,0.6); } 100% { box-shadow: 0 0 18px 4px rgba(240,216,176,0.3); } }
@keyframes cl-table { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-2px) scale(1.02); } }
@keyframes cl-stranger { 0% { transform: rotate(6deg) translateX(0); } 25% { transform: rotate(5deg) translateX(3px); } 50% { transform: rotate(7deg) translateX(0); } 75% { transform: rotate(4deg) translateX(-3px); } 100% { transform: rotate(6deg) translateX(0); } }
@keyframes cl-town { 0% { transform: rotate(-4deg) translateX(0); } 20% { transform: rotate(-3deg) translateX(-4px); } 40% { transform: rotate(-5deg) translateX(0); } 60% { transform: rotate(-2deg) translateX(4px); } 80% { transform: rotate(-6deg) translateX(0); } 100% { transform: rotate(-4deg) translateX(0); } }
@keyframes cl-candle { 0% { transform: scaleY(1); box-shadow: 0 0 16px 4px rgba(240,192,112,0.6); } 100% { transform: scaleY(1.1); box-shadow: 0 0 24px 8px rgba(240,192,112,0.8); } }
@keyframes cl-shadow { 0% { transform: scaleX(1); opacity: 0.2; } 100% { transform: scaleX(1.2); opacity: 0.4; } }

/* Scene 4: mystery-of-father – tense sunlit, overhead/top-down or wide silhouette scene with crowd and scaffold */
.scn-mystery-of-father {
  background:
    linear-gradient(180deg, #d0b898 0%, #b09070 30%, #8a6a4a 70%, #5a3a2a 100%),
    radial-gradient(ellipse at 50% 100%, #b09070 0%, transparent 60%);
}
.scn-mystery-of-father .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f5dcc0 0%, #d0b898 40%, #b09070 100%);
  animation: mf-sky 15s ease-in-out infinite alternate;
}
.scn-mystery-of-father .horizon {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 4px;
  background: #a08060;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-mystery-of-father .scaffold {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 70px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 6px 6px 0 0;
  transform: translateX(-50%);
  box-shadow: 0 -8px 16px rgba(0,0,0,0.3);
  animation: mf-scaffold 10s ease-in-out infinite alternate;
}
.scn-mystery-of-father .hester {
  position: absolute; bottom: 30%; left: 46%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mf-hester 5s ease-in-out infinite;
}
.scn-mystery-of-father .crowd-left {
  position: absolute; bottom: 15%; left: 5%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a3220 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  filter: blur(3px);
  opacity: 0.7;
  animation: mf-left 12s ease-in-out infinite alternate;
}
.scn-mystery-of-father .crowd-right {
  position: absolute; bottom: 15%; right: 5%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #6a4e3a 0%, #4a3220 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  filter: blur(3px);
  opacity: 0.7;
  animation: mf-right 14s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-mystery-of-father .stranger-silhouette {
  position: absolute; bottom: 15%; left: 55%; width: 20px; height: 44px;
  background: #0a0a0a;
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform: rotate(8deg);
  box-shadow: -2px 0 4px rgba(0,0,0,0.5);
  animation: mf-stranger 4s ease-in-out infinite;
}
@keyframes mf-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mf-scaffold { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes mf-hester { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 25% { transform: translateX(6px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-6px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-3deg); } }
@keyframes mf-left { 0% { transform: translateX(0) scale(1); opacity: 0.7; } 100% { transform: translateX(-8px) scale(1.03); opacity: 0.5; } }
@keyframes mf-right { 0% { transform: translateX(0) scale(1); opacity: 0.7; } 100% { transform: translateX(8px) scale(1.03); opacity: 0.5; } }
@keyframes mf-stranger { 0% { transform: rotate(8deg) translateX(0); } 25% { transform: rotate(7deg) translateX(2px); } 50% { transform: rotate(9deg) translateX(0); } 75% { transform: rotate(6deg) translateX(-2px); } 100% { transform: rotate(8deg) translateX(0); } }

.scn-pearl-message { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #deb887 100%), radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 60%); }
.scn-pearl-message .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 70%, transparent 100%); animation: pm-sky 8s ease-in-out infinite alternate; }
.scn-pearl-message .sun    { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,215,0,.4); animation: pm-sun 6s ease-in-out infinite alternate; }
.scn-pearl-message .sea    { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4682b4 0%, #1e3a5f 100%); border-radius: 30% 70% 0 0 / 50% 90% 0 0; animation: pm-sea 12s ease-in-out infinite alternate; }
.scn-pearl-message .shore  { position:absolute; bottom:15%; left:0; right:0; height:12%; background: linear-gradient(180deg, #deb887 0%, #c4a265 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; }
.scn-pearl-message .boat   { position:absolute; bottom:30%; right:15%; width:50px; height:20px; background: linear-gradient(90deg, #4a2c1a 0%, #6b3a1a 50%, #4a2c1a 100%); border-radius: 0 0 50% 50%; transform: rotate(-2deg); animation: pm-boat 7s ease-in-out infinite alternate; }
.scn-pearl-message .girl   { position:absolute; bottom:10%; left:25%; width:16px; height:40px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 40%, #8b4513 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-girl 4s ease-in-out infinite; }
.scn-pearl-message .message{ position:absolute; bottom:28%; left:26%; width:8px; height:10px; background: linear-gradient(180deg, #fff8dc 0%, #f5deb3 100%); border-radius: 2px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: pm-message 5s ease-in-out infinite; }
.scn-pearl-message .gull-a { position:absolute; top:12%; left:10%; width:12px; height:6px; background: radial-gradient(ellipse, #fff 0%, #ddd 100%); border-radius: 50%; filter: blur(1px); animation: pm-gull 20s linear infinite; }
.scn-pearl-message .gull-b { position:absolute; top:18%; left:30%; width:10px; height:5px; background: radial-gradient(ellipse, #fff 0%, #ddd 100%); border-radius: 50%; filter: blur(1px); animation: pm-gull 25s linear infinite 5s; }
@keyframes pm-sky    { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pm-sun    { 0% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255,215,0,.4) } 50% { transform: scale(1.1); box-shadow: 0 0 80px 30px rgba(255,215,0,.6) } 100% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255,215,0,.4) } }
@keyframes pm-sea    { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(-2px) } }
@keyframes pm-boat   { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-3px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes pm-girl   { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(8px) translateY(0) rotate(1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(16px) translateY(0) rotate(-1deg) } }
@keyframes pm-message{ 0% { transform: rotate(15deg) translateY(0); opacity:.9 } 50% { transform: rotate(20deg) translateY(-2px); opacity:1 } 100% { transform: rotate(12deg) translateY(0); opacity:.85 } }
@keyframes pm-gull   { 0% { transform: translateX(-20px) translateY(0) } 25% { transform: translateX(20vw) translateY(-4px) } 50% { transform: translateX(40vw) translateY(2px) } 75% { transform: translateX(60vw) translateY(-3px) } 100% { transform: translateX(80vw) translateY(0) } }

.scn-hester-trial { background: linear-gradient(180deg, #3a3a5c 0%, #5a5a7c 30%, #8a8a5c 60%, #6a5a3a 100%), radial-gradient(ellipse at 50% 0%, #8a8a5c 0%, transparent 80%); }
.scn-hester-trial .ground   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; }
.scn-hester-trial .pillory  { position:absolute; bottom:35%; left:50%; width:60px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.5); }
.scn-hester-trial .hester   { position:absolute; bottom:43%; left:50%; width:20px; height:48px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-hester-trial .scarlet  { position:absolute; bottom:53%; left:50%; width:14px; height:14px; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, transparent 100%); border-radius:2px; box-shadow: 0 0 30px 10px rgba(200,85,61,.5), 0 0 60px 20px rgba(200,85,61,.2); animation: ht-scarlet 3s ease-in-out infinite alternate; }
.scn-hester-trial .crowd-left { position:absolute; bottom:30%; left:5%; width:35%; height:20%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 0 0; opacity:.6; animation: ht-crowd 6s ease-in-out infinite alternate; }
.scn-hester-trial .crowd-right{ position:absolute; bottom:30%; right:5%; width:35%; height:20%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 50% 50% 0 0; opacity:.6; animation: ht-crowd 7s ease-in-out infinite alternate-reverse; }
.scn-hester-trial .shadow-bar{ position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 50%, rgba(0,0,0,.2) 100%); animation: ht-shadow 5s ease-in-out infinite alternate; }
.scn-hester-trial .motes-a  { position:absolute; top:20%; left:30%; width:4px; height:4px; background: rgba(255,215,0,.3); border-radius:50%; filter:blur(2px); animation: ht-motes 8s linear infinite; }
.scn-hester-trial .motes-b  { position:absolute; top:30%; left:60%; width:3px; height:3px; background: rgba(255,215,0,.2); border-radius:50%; filter:blur(2px); animation: ht-motes 10s linear infinite 3s; }
@keyframes ht-scarlet{ 0% { box-shadow: 0 0 20px 8px rgba(200,85,61,.4), 0 0 40px 15px rgba(200,85,61,.15); opacity:.8 } 50% { box-shadow: 0 0 40px 15px rgba(200,85,61,.7), 0 0 80px 30px rgba(200,85,61,.3); opacity:1 } 100% { box-shadow: 0 0 25px 10px rgba(200,85,61,.5), 0 0 50px 20px rgba(200,85,61,.2); opacity:.85 } }
@keyframes ht-crowd  { 0% { transform: translateY(0); opacity:.5 } 50% { transform: translateY(-2px); opacity:.7 } 100% { transform: translateY(0); opacity:.55 } }
@keyframes ht-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.35 } }
@keyframes ht-motes  { 0% { transform: translateY(0) translateX(0); opacity:0 } 25% { transform: translateY(-10px) translateX(5px); opacity:.6 } 50% { transform: translateY(-20px) translateX(-3px); opacity:.8 } 75% { transform: translateY(-30px) translateX(4px); opacity:.4 } 100% { transform: translateY(-40px) translateX(0); opacity:0 } }

.scn-sermon-concludes { background: linear-gradient(180deg, #b0c4de 0%, #d4b896 40%, #c4a882 70%, #8a7a5a 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%); }
.scn-sermon-concludes .church-wall { position:absolute; bottom:20%; left:25%; width:50%; height:80%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset -20px 0 30px rgba(0,0,0,.2); }
.scn-sermon-concludes .arch-door { position:absolute; bottom:20%; left:43%; width:14%; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; }
.scn-sermon-concludes .minister { position:absolute; bottom:30%; left:48%; width:12px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sc-minister 4s ease-in-out infinite alternate; }
.scn-sermon-concludes .halo-glow { position:absolute; bottom:50%; left:48%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,215,0,.4) 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,215,0,.2); animation: sc-halo 5s ease-in-out infinite alternate; }
.scn-sermon-concludes .crowd-flow { position:absolute; bottom:15%; left:30%; width:40%; height:18%; background: linear-gradient(90deg, #3a3a2a 0%, #4a4a3a 30%, #3a3a2a 70%, #2a2a1a 100%); border-radius: 30% 70% 0 0; opacity:.7; animation: sc-flow 8s ease-in-out infinite; }
.scn-sermon-concludes .step-left { position:absolute; bottom:20%; left:38%; width:8%; height:6%; background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 100%); border-radius: 2px; animation: sc-step 6s ease-in-out infinite alternate; }
.scn-sermon-concludes .step-right { position:absolute; bottom:20%; right:38%; width:8%; height:6%; background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 100%); border-radius: 2px; animation: sc-step 7s ease-in-out infinite alternate-reverse; }
.scn-sermon-concludes .ray-a { position:absolute; top:5%; left:35%; width:2px; height:40%; background: linear-gradient(180deg, rgba(255,215,0,.3) 0%, transparent 100%); transform: rotate(-10deg); transform-origin: top center; animation: sc-ray 9s ease-in-out infinite alternate; }
.scn-sermon-concludes .ray-b { position:absolute; top:5%; right:35%; width:2px; height:40%; background: linear-gradient(180deg, rgba(255,215,0,.25) 0%, transparent 100%); transform: rotate(10deg); transform-origin: top center; animation: sc-ray 11s ease-in-out infinite alternate-reverse; }
@keyframes sc-minister{ 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(0) rotate(1deg) } }
@keyframes sc-halo   { 0% { box-shadow: 0 0 30px 10px rgba(255,215,0,.15); opacity:.7 } 50% { box-shadow: 0 0 60px 25px rgba(255,215,0,.35); opacity:1 } 100% { box-shadow: 0 0 35px 12px rgba(255,215,0,.2); opacity:.8 } }
@keyframes sc-flow   { 0% { transform: translateX(0) scaleX(1) } 25% { transform: translateX(10px) scaleX(1.05) } 50% { transform: translateX(-5px) scaleX(.95) } 75% { transform: translateX(15px) scaleX(1.02) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes sc-step   { 0% { transform: translateY(0); opacity:.6 } 50% { transform: translateY(-2px); opacity:.8 } 100% { transform: translateY(0); opacity:.65 } }
@keyframes sc-ray    { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-procession-to-hall { background: linear-gradient(180deg, #87ceeb 0%, #b0c4de 30%, #deb887 60%, #8a7a5a 100%), radial-gradient(ellipse at 60% 0%, #fff8dc 0%, transparent 60%); }
.scn-procession-to-hall .street   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c4a882 0%, #8a7a5a 100%); border-radius: 30% 70% 0 0 / 50% 90% 0 0; }
.scn-procession-to-hall .left-build { position:absolute; bottom:15%; left:5%; width:20%; height:70%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,.3); }
.scn-procession-to-hall .right-build{ position:absolute; bottom:15%; right:5%; width:20%; height:70%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,.3); }
.scn-procession-to-hall .minister-on { position:absolute; bottom:22%; left:50%; width:14px; height:46px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ph-minister 4s ease-in-out infinite; }
.scn-procession-to-hall .halo-burst{ position:absolute; bottom:42%; left:50%; width:35px; height:35px; transform:translateX(-50%); background: radial-gradient(circle, rgba(255,215,0,.5) 0%, rgba(255,215,0,.1) 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(255,215,0,.25), 0 0 100px 40px rgba(255,215,0,.1); animation: ph-halo 4s ease-in-out infinite alternate; }
.scn-procession-to-hall .front   { position:absolute; bottom:18%; left:15%; width:70%; height:14%; background: linear-gradient(90deg, #3a3a2a 0%, #4a4a3a 20%, #3a3a2a 50%, #2a2a1a 80%, #3a3a2a 100%); border-radius: 40% 60% 0 0; opacity:.7; animation: ph-crowd 6s ease-in-out infinite; }
.scn-procession-to-hall .back    { position:absolute; bottom:25%; left:20%; width:60%; height:10%; background: linear-gradient(90deg, #2a2a1a 0%, #3a3a2a 30%, #2a2a1a 70%, #1a1a0a 100%); border-radius: 50% 50% 0 0; opacity:.5; animation: ph-crowd 8s ease-in-out infinite alternate; }
.scn-procession-to-hall .banner  { position:absolute; bottom:35%; left:35%; width:4px; height:30px; background: #4a3a2a; transform: rotate(-5deg); transform-origin: bottom center; animation: ph-banner 5s ease-in-out infinite alternate; }
.scn-procession-to-hall .banner::after{ content:''; position:absolute; top:0; left:4px; width:20px; height:12px; background: linear-gradient(90deg, #8a6a4a 0%, #a08060 100%); border-radius: 0 50% 50% 0; }
.scn-procession-to-hall .shadow-stripe{ position:absolute; top:0; left:0; width:100%; height:100%; background: linear-gradient(90deg, rgba(0,0,0,.1) 0%, transparent 30%, rgba(0,0,0,.05) 60%, transparent 100%); pointer-events:none; animation: ph-shadow 10s ease-in-out infinite alternate; }
@keyframes ph-minister{ 0% { transform: translateX(-50%) translateY(0) } 25% { transform: translateX(-48%) translateY(-2px) } 50% { transform: translateX(-50%) translateY(0) } 75% { transform: translateX(-52%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ph-halo   { 0% { box-shadow: 0 0 40px 15px rgba(255,215,0,.2), 0 0 80px 30px rgba(255,215,0,.08); opacity:.7 } 50% { box-shadow: 0 0 70px 30px rgba(255,215,0,.4), 0 0 120px 50px rgba(255,215,0,.15); opacity:1 } 100% { box-shadow: 0 0 45px 18px rgba(255,215,0,.25), 0 0 90px 35px rgba(255,215,0,.1); opacity:.75 } }
@keyframes ph-crowd  { 0% { transform: translateX(0) scaleX(1) } 25% { transform: translateX(8px) scaleX(1.02) } 50% { transform: translateX(-4px) scaleX(.98) } 75% { transform: translateX(12px) scaleX(1.01) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes ph-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-4deg) } }
@keyframes ph-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.35 } }

.scn-pearl-demands {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 50%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a4e 0%, transparent 60%);
}
.scn-pearl-demands .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%);
  animation: pd-sky 20s ease-in-out infinite alternate;
}
.scn-pearl-demands .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0a0a14 0%, #1a1a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
}
.scn-pearl-demands .figure-hester {
  position: absolute; bottom: 25%; left: 30%; 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: pd-figure 6s ease-in-out infinite;
}
.scn-pearl-demands .figure-pearl {
  position: absolute; bottom: 22%; left: 45%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pd-figure 6s ease-in-out infinite reverse;
}
.scn-pearl-demands .figure-dimmesdale {
  position: absolute; bottom: 26%; left: 60%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pd-figure 8s ease-in-out infinite;
}
.scn-pearl-demands .light-ray {
  position: absolute; top: 8%; left: 42%; width: 4px; height: 50%;
  background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, transparent 100%);
  transform: rotate(-10deg); transform-origin: top center;
  animation: pd-light 10s ease-in-out infinite alternate;
}
.scn-pearl-demands .shadow-bar {
  position: absolute; bottom: 28%; left: 20%; right: 40%; height: 2px;
  background: rgba(0,0,0,0.4);
  animation: pd-shadow 12s ease-in-out infinite;
}
@keyframes pd-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pd-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pd-light { 0% { opacity:0.2 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes pd-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.8) } }

.scn-meteor-light {
  background:
    linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 30% 20%, #3a3a7e 0%, transparent 50%);
}
.scn-meteor-light .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, transparent 100%);
  animation: ml-sky 30s ease-in-out infinite alternate;
}
.scn-meteor-light .meteor-streak {
  position: absolute; top: 12%; left: 20%; width: 150px; height: 2px;
  background: linear-gradient(270deg, #ffffff, #b0c0ff 40%, transparent);
  transform: rotate(15deg); transform-origin: left center;
  animation: ml-meteor 4s ease-out infinite;
  box-shadow: 0 0 20px 10px rgba(180,200,255,0.3);
}
.scn-meteor-light .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 60% 0 0 / 40% 80% 0 0;
}
.scn-meteor-light .figure-hester {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml-figure 5s ease-in-out infinite;
}
.scn-meteor-light .figure-minister {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml-figure 6s ease-in-out infinite reverse;
}
.scn-meteor-light .figure-pearl {
  position: absolute; bottom: 18%; left: 60%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ml-pearl 4s ease-in-out infinite;
}
.scn-meteor-light .glow-flash {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 50%;
  background: radial-gradient(ellipse at 30% 20%, rgba(180,200,255,0.15) 0%, transparent 80%);
  animation: ml-flash 2s ease-out infinite;
  pointer-events: none;
}
@keyframes ml-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ml-meteor { 0% { transform: translateX(-50px) rotate(15deg); opacity:1 } 100% { transform: translateX(300px) rotate(15deg); opacity:0 } }
@keyframes ml-figure { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes ml-pearl { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-2px) rotate(0deg) } 60% { transform: translateY(0) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ml-flash { 0% { opacity:1 } 100% { opacity:0 } }

.scn-letter-in-sky {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 30%, #2a2a5e 60%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a6e 0%, transparent 60%);
}
.scn-letter-in-sky .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, transparent 100%);
  animation: ls-sky 25s ease-in-out infinite alternate;
}
.scn-letter-in-sky .letter-top {
  position: absolute; top: 15%; left: 50%; width: 80px; height: 80px;
  margin-left: -40px;
  background: linear-gradient(135deg, transparent 0%, transparent 42%, #8a3a2a 42%, #8a3a2a 58%, transparent 58%, transparent 100%);
  animation: ls-letter-glow 4s ease-in-out infinite alternate;
  box-shadow: 0 0 30px 10px rgba(138,58,42,0.3);
}
.scn-letter-in-sky .letter-bar {
  position: absolute; top: 40%; left: 50%; width: 60px; height: 12px;
  margin-left: -30px;
  background: linear-gradient(90deg, transparent, #8a3a2a 20%, #8a3a2a 80%, transparent);
  animation: ls-letter-glow 4s ease-in-out infinite alternate;
  box-shadow: 0 0 20px 5px rgba(138,58,42,0.2);
}
.scn-letter-in-sky .figure-minister {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-figure 8s ease-in-out infinite;
}
.scn-letter-in-sky .figure-pearl {
  position: absolute; bottom: 22%; left: 50%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-pearl 5s ease-in-out infinite;
}
.scn-letter-in-sky .figure-chillingworth {
  position: absolute; bottom: 27%; left: 65%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ls-figure 9s ease-in-out infinite reverse;
}
.scn-letter-in-sky .star-field {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: transparent;
  animation: ls-stars 30s linear infinite;
  background-image: radial-gradient(2px 2px at 10% 20%, #fff, transparent), radial-gradient(2px 2px at 30% 40%, #fff, transparent), radial-gradient(1px 1px at 50% 10%, #fff, transparent), radial-gradient(3px 3px at 70% 30%, #fff, transparent), radial-gradient(1px 1px at 90% 50%, #fff, transparent);
  background-size: 200px 200px;
}
@keyframes ls-sky { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ls-letter-glow { 0% { opacity:0.6; filter: blur(1px) } 50% { opacity:1; filter: blur(0) } 100% { opacity:0.8; filter: blur(1px) } }
@keyframes ls-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ls-pearl { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }
@keyframes ls-stars { 0% { background-position: 0 0 } 100% { background-position: 200px 200px } }

.scn-chillingworth-revealed {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 40% 25%, #2a2a4e 0%, transparent 60%);
}
.scn-chillingworth-revealed .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, transparent 100%);
  animation: cr-sky 20s ease-in-out infinite alternate;
}
.scn-chillingworth-revealed .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 50% 0 0 / 40% 70% 0 0;
}
.scn-chillingworth-revealed .figure-minister {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-figure 9s ease-in-out infinite;
}
.scn-chillingworth-revealed .figure-hester {
  position: absolute; bottom: 20%; left: 45%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-figure 10s ease-in-out infinite reverse;
}
.scn-chillingworth-revealed .figure-chillingworth {
  position: absolute; bottom: 24%; left: 65%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  border-radius: 50% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-chill 6s ease-in-out infinite;
  box-shadow: 0 0 15px 5px rgba(0,0,0,0.5);
}
.scn-chillingworth-revealed .figure-shadow {
  position: absolute; bottom: 18%; left: 60%; width: 30px; height: 30px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  filter: blur(8px);
  animation: cr-shadow 12s ease-in-out infinite alternate;
}
.scn-chillingworth-revealed .eye-glow {
  position: absolute; top: 50%; left: 65%; width: 6px; height: 6px;
  background: #b08040;
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(176,128,64,0.6);
  animation: cr-eyes 3s ease-in-out infinite alternate;
}
@keyframes cr-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cr-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cr-chill { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes cr-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(0.8) } }
@keyframes cr-eyes { 0% { opacity:0.4; box-shadow: 0 0 10px 2px rgba(176,128,64,0.4) } 100% { opacity:1; box-shadow: 0 0 20px 6px rgba(176,128,64,0.8) } }

.scn-governor-sees-pearl {
  background:
    linear-gradient(180deg, #c8d8e8 0%, #8aa0b8 30%, #5a6e80 60%, #2a3440 100%),
    radial-gradient(ellipse at 60% 20%, #f3d7a0 0%, transparent 50%);
}
.scn-governor-sees-pearl .sunbeam {
  position: absolute; left: 45%; top: 0; width: 120px; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,150,0.5) 0%, rgba(255,210,120,0.1) 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: gsp-sun 8s ease-in-out infinite alternate;
}
.scn-governor-sees-pearl .window-frame {
  position: absolute; left: 35%; top: 15%; width: 30%; height: 60%;
  border: 8px solid #4a3a2a; border-radius: 4px;
  background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-governor-sees-pearl .window-glass {
  position: absolute; left: 37%; top: 17%; width: 26%; height: 56%;
  background: linear-gradient(135deg, #b8d0e8 0%, #e8f0ff 50%, #b0c8e0 100%);
  opacity: 0.4; animation: gsp-glass 12s ease-in-out infinite;
}
.scn-governor-sees-pearl .curtain-left {
  position: absolute; left: 34%; top: 14%; width: 8%; height: 62%;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 40%, #2a1a0a 100%);
  border-radius: 0 20% 20% 0; transform-origin: top left;
  animation: gsp-curtainL 6s ease-in-out infinite alternate;
}
.scn-governor-sees-pearl .curtain-right {
  position: absolute; right: 34%; top: 14%; width: 8%; height: 62%;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 40%, #2a1a0a 100%);
  border-radius: 20% 0 0 20%; transform-origin: top right;
  animation: gsp-curtainR 6s ease-in-out infinite alternate;
}
.scn-governor-sees-pearl .governor {
  position: absolute; left: 42%; bottom: 18%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-3deg); animation: gsp-governor 4s ease-in-out infinite;
}
.scn-governor-sees-pearl .pearl {
  position: absolute; right: 28%; bottom: 22%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: gsp-pearl 3s ease-in-out infinite;
}
.scn-governor-sees-pearl .hester {
  position: absolute; left: 30%; bottom: 20%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  opacity: 0.8; filter: grayscale(0.5);
  animation: gsp-hester 5s ease-in-out infinite alternate;
}
.scn-governor-sees-pearl .shadow-hester {
  position: absolute; left: 28%; bottom: 15%; width: 50px; height: 20px;
  background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px);
  transform: skewX(-10deg); animation: gsp-shadow 6s ease-in-out infinite;
}
@keyframes gsp-sun { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.05); } 100% { opacity: 0.7; transform: scaleX(0.95); } }
@keyframes gsp-glass { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.35; } }
@keyframes gsp-curtainL { 0% { transform: translateX(0) rotate(0); } 100% { transform: translateX(-10px) rotate(-5deg); } }
@keyframes gsp-curtainR { 0% { transform: translateX(0) rotate(0); } 100% { transform: translateX(10px) rotate(5deg); } }
@keyframes gsp-governor { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0) translateY(-3px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes gsp-pearl { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes gsp-hester { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 0.9; transform: translateY(-2px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes gsp-shadow { 0% { transform: skewX(-10deg) scale(1); } 50% { transform: skewX(-5deg) scale(1.05); } 100% { transform: skewX(-10deg) scale(1); } }

.scn-pearl-questioned2 {
  background:
    linear-gradient(90deg, #8a7048 0%, #b09868 30%, #c8b078 50%, #b09868 70%, #8a7048 100%),
    radial-gradient(circle at 50% 30%, #f0d8a0 0%, transparent 60%);
}
.scn-pearl-questioned2 .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #b8a078 0%, #8a7048 100%); opacity: 0.3;
}
.scn-pearl-questioned2 .governor-stand {
  position: absolute; left: 20%; bottom: 15%; width: 55px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(2deg); animation: pqt-governor 5s ease-in-out infinite;
}
.scn-pearl-questioned2 .pearl-child {
  position: absolute; left: 50%; bottom: 20%; width: 32px; height: 55px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-3deg); animation: pqt-pearl 3.5s ease-in-out infinite;
}
.scn-pearl-questioned2 .pearl-dress {
  position: absolute; left: 48%; bottom: 18%; width: 40px; height: 45px;
  background: linear-gradient(180deg, #b84830 0%, #8a2818 100%); /* desaturated red – no crimson */
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  opacity: 0.85; transform: scaleX(0.9); animation: pqt-dress 4s ease-in-out infinite alternate;
}
.scn-pearl-questioned2 .catechism-book {
  position: absolute; left: 55%; bottom: 30%; width: 20px; height: 26px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 2px; transform: rotate(-20deg); box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: pqt-book 6s ease-in-out infinite;
}
.scn-pearl-questioned2 .scarlet-feather {
  position: absolute; left: 52%; top: 45%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #d06040 0%, #a03018 100%); /* warm orange-red */
  border-radius: 50% 50% 40% 40% / 20% 20% 60% 60%;
  transform: rotate(15deg); transform-origin: bottom; animation: pqt-feather 2s ease-in-out infinite alternate;
}
.scn-pearl-questioned2 .light-spot {
  position: absolute; left: 45%; top: 10%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,230,180,0.4) 0%, transparent 60%);
  animation: pqt-light 7s ease-in-out infinite alternate;
}
@keyframes pqt-governor { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes pqt-pearl { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-5px); } 50% { transform: rotate(-3deg) translateY(-2px); } 75% { transform: rotate(-2deg) translateY(-5px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes pqt-dress { 0% { opacity: 0.8; transform: scaleX(0.9) rotate(0); } 100% { opacity: 1; transform: scaleX(1) rotate(3deg); } }
@keyframes pqt-book { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes pqt-feather { 0% { transform: rotate(15deg) scaleY(1); } 100% { transform: rotate(-5deg) scaleY(1.1); } }
@keyframes pqt-light { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }

.scn-governor-accuses {
  background:
    linear-gradient(180deg, #c0a878 0%, #907848 40%, #605030 70%, #302018 100%),
    radial-gradient(ellipse at 50% 30%, #e8d098 0%, transparent 60%);
}
.scn-governor-accuses .doorway {
  position: absolute; left: 28%; top: 10%; width: 44%; height: 70%;
  border: 6px solid #4a3a2a; border-radius: 4px 4px 0 0; background: #1a1810;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-governor-accuses .hall-floor {
  position: absolute; left: 0; bottom: 0; width: 100%; height: 25%;
  background: linear-gradient(180deg, #5a4838 0%, #3a2818 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-governor-accuses .governor-step {
  position: absolute; left: 35%; bottom: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg); animation: gac-governor 4s ease-in-out infinite;
}
.scn-governor-accuses .hester-silhouette {
  position: absolute; left: 45%; bottom: 16%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #2a1a1a 0%, #100808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  filter: drop-shadow(0 0 10px rgba(0,0,0,0.5));
  animation: gac-hester 6s ease-in-out infinite alternate;
}
.scn-governor-accuses .pearl-glow {
  position: absolute; right: 30%; bottom: 22%; width: 30px; height: 50px;
  background: radial-gradient(circle, #e8a060 0%, #a05020 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(200,100,40,0.5);
  animation: gac-pearl 3s ease-in-out infinite;
}
.scn-governor-accuses .accusing-hand {
  position: absolute; left: 40%; bottom: 55%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-30deg); transform-origin: bottom center;
  animation: gac-hand 2.5s ease-in-out infinite alternate;
}
.scn-governor-accuses .shadow-long {
  position: absolute; left: 30%; bottom: 10%; width: 120px; height: 12px;
  background: rgba(0,0,0,0.25); border-radius: 50%; filter: blur(6px);
  transform: skewX(-30deg); animation: gac-shadow 8s ease-in-out infinite;
}
@keyframes gac-governor { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-4px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes gac-hester { 0% { opacity: 0.7; transform: translateY(0); } 50% { opacity: 0.9; transform: translateY(-3px); } 100% { opacity: 0.8; transform: translateY(0); } }
@keyframes gac-pearl { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-6px) scale(1.05); } 50% { transform: translateY(-2px) scale(1); } 75% { transform: translateY(-4px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes gac-hand { 0% { transform: rotate(-30deg) translateY(0); } 100% { transform: rotate(-15deg) translateY(-4px); } }
@keyframes gac-shadow { 0% { transform: skewX(-30deg) scaleX(1); } 50% { transform: skewX(-20deg) scaleX(1.1); } 100% { transform: skewX(-30deg) scaleX(1); } }

.scn-hester-defends {
  background:
    linear-gradient(180deg, #1a1010 0%, #2a1818 30%, #3a2020 60%, #1a1010 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 50%);
}
.scn-hester-defends .dim-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%); opacity: 0.6;
}
.scn-hester-defends .hester-figure {
  position: absolute; left: 40%; bottom: 10%; width: 65px; height: 110px;
  background: linear-gradient(180deg, #2a1a1a 0%, #100808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  filter: drop-shadow(0 0 15px rgba(200,100,50,0.2));
  animation: hdf-hester 5s ease-in-out infinite;
}
.scn-hester-defends .pearl-cling {
  position: absolute; left: 42%; bottom: 10%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(20px) rotate(-8deg);
  animation: hdf-pearl 3s ease-in-out infinite alternate;
}
.scn-hester-defends .letter-badge {
  position: absolute; left: 42%; bottom: 42%; width: 20px; height: 24px;
  background: linear-gradient(135deg, #a04020 0%, #5a2010 100%); /* desaturated terracotta */
  border-radius: 2px; transform: rotate(5deg);
  box-shadow: 0 0 8px 2px rgba(200,80,40,0.4);
  animation: hdf-letter 4s ease-in-out infinite;
}
.scn-hester-defends .hand-on-letter {
  position: absolute; left: 41%; bottom: 40%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #100808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg); transform-origin: bottom center;
  animation: hdf-hand 3.5s ease-in-out infinite alternate;
}
.scn-hester-defends .glow-letter {
  position: absolute; left: 41%; bottom: 41%; width: 22px; height: 26px;
  background: radial-gradient(circle, rgba(200,100,50,0.3) 0%, transparent 60%);
  border-radius: 2px; filter: blur(3px);
  animation: hdf-glow 2s ease-in-out infinite alternate;
}
.scn-hester-defends .shadow-floor {
  position: absolute; left: 35%; bottom: 5%; width: 80px; height: 20px;
  background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(8px);
  animation: hdf-shadow 6s ease-in-out infinite;
}
.scn-hester-defends .light-shard {
  position: absolute; left: 48%; top: 15%; width: 40px; height: 60px;
  background: linear-gradient(180deg, rgba(255,200,150,0.15) 0%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 80% 100%, 20% 100%);
  animation: hdf-shard 10s ease-in-out infinite alternate;
}
@keyframes hdf-hester { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes hdf-pearl { 0% { transform: translateX(20px) rotate(-8deg) scale(1); } 100% { transform: translateX(18px) rotate(-5deg) scale(1.02); } }
@keyframes hdf-letter { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(8deg) scale(1.05); } 100% { transform: rotate(5deg) scale(1); } }
@keyframes hdf-hand { 0% { transform: rotate(10deg) translateY(0); } 100% { transform: rotate(15deg) translateY(-6px); } }
@keyframes hdf-glow { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }
@keyframes hdf-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }
@keyframes hdf-shard { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-hester-transformation { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 30%, #1e1e32 70%, #0f0f1a 100%), radial-gradient(ellipse at 50% 100%, #3a3a5a 0%, transparent 60%); }
.scn-hester-transformation .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a44 0%, #1a1a2e 100%); }
.scn-hester-transformation .window-pane { position: absolute; top: 15%; left: 25%; width: 30%; height: 40%; background: linear-gradient(135deg, rgba(100,100,130,0.3) 0%, rgba(60,60,90,0.6) 100%); border: 2px solid #4a4a6a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: hs1-window 10s ease-in-out infinite alternate; }
.scn-hester-transformation .table { position: absolute; bottom: 20%; left: 35%; width: 30%; height: 8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 -2px 6px rgba(0,0,0,0.4); }
.scn-hester-transformation .mirror { position: absolute; top: 22%; right: 15%; width: 18%; height: 25%; background: linear-gradient(135deg, rgba(180,180,200,0.2) 0%, rgba(120,120,150,0.1) 100%); border: 2px solid #5a4a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: hs1-mirror 8s ease-in-out infinite; }
.scn-hester-transformation .silhouette { position: absolute; bottom: 15%; left: 28%; width: 12%; height: 30%; background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs1-silhouette 6s ease-in-out infinite; }
.scn-hester-transformation .shadows { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
.scn-hester-transformation .dust { position: absolute; width: 4px; height: 4px; background: rgba(200,200,220,0.3); border-radius: 50%; filter: blur(2px); }
.scn-hester-transformation .mote-1 { top: 30%; left: 40%; animation: hs1-drift-dust 15s linear infinite; }
.scn-hester-transformation .mote-2 { top: 50%; left: 60%; animation: hs1-drift-dust 20s linear infinite reverse; animation-delay: -5s; }
@keyframes hs1-window { 0% { opacity: 0.6; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); } 50% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); } 100% { opacity: 0.4; box-shadow: inset 0 0 8px rgba(0,0,0,0.2); } }
@keyframes hs1-mirror { 0% { transform: scale(1) rotate(0deg); filter: blur(1px); } 50% { transform: scale(0.95) rotate(-2deg); filter: blur(2px); } 100% { transform: scale(1.02) rotate(1deg); filter: blur(1px); } }
@keyframes hs1-silhouette { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hs1-drift-dust { 0% { transform: translate(0, 0); opacity: 0.3; } 50% { transform: translate(30px, -20px); opacity: 0.7; } 100% { transform: translate(60px, -40px); opacity: 0.1; } }

.scn-hester-doubt { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #0a0a14 100%), radial-gradient(ellipse at 50% 100%, #2a2a44 0%, transparent 70%); }
.scn-hester-doubt .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); }
.scn-hester-doubt .chair { position: absolute; bottom: 18%; left: 40%; width: 15%; height: 40%; background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-hester-doubt .figure-seated { position: absolute; bottom: 25%; left: 42%; width: 10%; height: 28%; background: linear-gradient(180deg, #12121e 0%, #08080c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs2-figure 8s ease-in-out infinite; }
.scn-hester-doubt .hearth { position: absolute; bottom: 12%; left: 20%; width: 20%; height: 18%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 30% 30% 10% 10%; border: 2px solid #3a2a1a; }
.scn-hester-doubt .dead-fire { position: absolute; bottom: 16%; left: 23%; width: 14%; height: 8%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50%; box-shadow: inset 0 0 6px #000; animation: hs2-fire 20s ease-in-out infinite; }
.scn-hester-doubt .book { position: absolute; bottom: 14%; left: 45%; width: 6%; height: 4%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 2px; transform: rotate(-15deg); animation: hs2-book 10s ease-in-out infinite; }
.scn-hester-doubt .chain { position: absolute; top: 20%; left: 30%; width: 2px; height: 40%; background: linear-gradient(180deg, #5a5a6a 0%, #2a2a3a 100%); border-radius: 1px; box-shadow: 0 0 4px #4a4a5a; animation: hs2-chain 15s ease-in-out infinite alternate; }
@keyframes hs2-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(2px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hs2-fire { 0% { opacity: 0.3; } 50% { opacity: 0.1; } 100% { opacity: 0.2; } }
@keyframes hs2-book { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes hs2-chain { 0% { transform: scaleY(1); opacity: 0.6; } 50% { transform: scaleY(1.05); opacity: 0.9; } 100% { transform: scaleY(0.95); opacity: 0.5; } }

.scn-hester-new-purpose { background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4e 40%, #0e0e1e 100%), radial-gradient(ellipse at 30% 100%, #3a3a5e 0%, transparent 60%); }
.scn-hester-new-purpose .bg-wall { position: absolute; left: 0; right: 0; top: 0; bottom: 0; background: linear-gradient(90deg, #2a2a46 0%, #1e1e34 100%); }
.scn-hester-new-purpose .window-arch { position: absolute; top: 10%; right: 15%; width: 35%; height: 50%; background: linear-gradient(135deg, rgba(80,80,110,0.4) 0%, rgba(40,40,70,0.7) 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,0.7); border: 3px solid #5a4a3a; animation: hs3-window 12s ease-in-out infinite alternate; }
.scn-hester-new-purpose .pearl { position: absolute; bottom: 20%; left: 28%; width: 7%; height: 14%; background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hs3-pearl 6s ease-in-out infinite; }
.scn-hester-new-purpose .hester-profile { position: absolute; bottom: 18%; left: 22%; width: 10%; height: 25%; background: linear-gradient(180deg, #0c0c18 0%, #16162a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; clip-path: polygon(0 0, 100% 0, 100% 100%, 30% 100%, 20% 80%, 15% 60%, 10% 40%, 0% 20%); animation: hs3-hester 8s ease-in-out infinite; }
.scn-hester-new-purpose .chillingworth-shadow { position: absolute; bottom: 22%; right: 20%; width: 12%; height: 30%; background: radial-gradient(ellipse at 50% 100%, rgba(30,30,50,0.8) 0%, transparent 70%); filter: blur(4px); animation: hs3-shadow 18s ease-in-out infinite; }
.scn-hester-new-purpose .herb-bush { position: absolute; bottom: 10%; right: 10%; width: 20%; height: 15%; background: radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, #0a1a0a 100%); border-radius: 50%; animation: hs3-bush 20s ease-in-out infinite; }
.scn-hester-new-purpose .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%); }
@keyframes hs3-window { 0% { opacity: 0.5; } 50% { opacity: 0.9; } 100% { opacity: 0.4; } }
@keyframes hs3-pearl { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hs3-hester { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes hs3-shadow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes hs3-bush { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-chillingworth-encounter { background: linear-gradient(180deg, #3a3a4e 0%, #4a4a5e 30%, #2a2a3e 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #5a5a7a 0%, transparent 70%); }
.scn-chillingworth-encounter .sky-overcast { position: absolute; inset: 0; background: linear-gradient(180deg, #5a5a72 0%, #3a3a4e 100%); animation: ch1-sky 25s ease-in-out infinite alternate; }
.scn-chillingworth-encounter .ground-path { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-chillingworth-encounter .tree-trunk { position: absolute; bottom: 15%; left: 20%; width: 6%; height: 50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 2px 0 8px rgba(0,0,0,0.5); animation: ch1-tree 30s linear infinite; }
.scn-chillingworth-encounter .hester-figure { position: absolute; bottom: 22%; left: 40%; width: 10%; height: 28%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ch1-hester 8s ease-in-out infinite; }
.scn-chillingworth-encounter .chillingworth-figure { position: absolute; bottom: 20%; right: 30%; width: 12%; height: 30%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ch1-chilling 10s ease-in-out infinite; }
.scn-chillingworth-encounter .letter-glow { position: absolute; bottom: 28%; left: 42%; width: 4%; height: 6%; background: radial-gradient(circle, #8a6a4a 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(138,106,74,0.5); animation: ch1-glow 3s ease-in-out infinite alternate; }
.scn-chillingworth-encounter .leaves-drift { position: absolute; top: 20%; right: 10%; width: 12px; height: 8px; background: #4a5a3a; border-radius: 50% 0 50% 0; filter: blur(1px); animation: ch1-leaves 12s linear infinite; }
.scn-chillingworth-encounter .mist { position: absolute; bottom: 10%; left: 0; right: 0; height: 20%; background: linear-gradient(90deg, rgba(100,100,120,0.2) 0%, rgba(80,80,100,0.1) 100%); filter: blur(8px); animation: ch1-mist 40s ease-in-out infinite; }
@keyframes ch1-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes ch1-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ch1-hester { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(1px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ch1-chilling { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ch1-glow { 0% { box-shadow: 0 0 10px 4px rgba(138,106,74,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 30px 12px rgba(138,106,74,0.7); opacity: 1; } 100% { box-shadow: 0 0 15px 6px rgba(138,106,74,0.4); opacity: 0.9; } }
@keyframes ch1-leaves { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0.5; } 100% { transform: translate(-100px, 60px) rotate(360deg); opacity: 0; } }
@keyframes ch1-mist { 0% { transform: translateX(0); opacity: 0.3; } 50% { transform: translateX(20px); opacity: 0.5; } 100% { transform: translateX(-10px); opacity: 0.2; } }

/* scene: procession-begins */
.scn-procession-begins {
  background: linear-gradient(180deg, #f9e8c0 0%, #d4b880 40%, #a6854a 100%),
    radial-gradient(ellipse at 30% 30%, #fff7e0 0%, transparent 60%);
}
.scn-procession-begins .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8d0e0 0%, #d4dabc 100%);
  animation: pb-drift 20s ease-in-out infinite alternate;
}
.scn-procession-begins .sun {
  position: absolute; top: 8%; left: 65%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe680 0%, #ffcc44 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffcc44, 0 0 80px 40px rgba(255,204,68,0.3);
  animation: pb-pulse 4s ease-in-out infinite alternate;
}
.scn-procession-begins .buildings {
  position: absolute; bottom: 40%; left: 5%; right: 5%; height: 35%;
  background:
    linear-gradient(90deg, #7a5a3a 0%, #8b6742 15%, #7a5a3a 30%, #9e7a4e 50%, #7a5a3a 70%, #8b6742 90%, #7a5a3a 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(0% 100%, 0% 30%, 10% 10%, 12% 30%, 15% 20%, 20% 30%, 22% 10%, 30% 20%, 35% 5%, 40% 20%, 45% 10%, 50% 25%, 55% 5%, 60% 20%, 65% 10%, 70% 15%, 75% 10%, 80% 20%, 85% 10%, 90% 25%, 95% 15%, 100% 30%, 100% 100%);
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3);
  animation: pb-build 8s ease-in-out infinite;
}
.scn-procession-begins .crowd1 {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 18%;
  background: repeating-linear-gradient(90deg,
    #3a2a1a 0px, #4a3a2a 8px, transparent 8px, transparent 16px);
  mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 10%, #000 90%, transparent 100%);
  animation: pb-crowd 6s ease-in-out infinite alternate;
}
.scn-procession-begins .crowd2 {
  position: absolute; bottom: 25%; left: 15%; right: 5%; height: 20%;
  background: repeating-linear-gradient(90deg,
    #2a1a0a 0px, #3a2a1a 6px, transparent 6px, transparent 12px);
  mask-image: linear-gradient(90deg, transparent 0%, #000 5%, #000 95%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 5%, #000 95%, transparent 100%);
  transform: scaleX(-1);
  animation: pb-crowd2 7s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-procession-begins .banner {
  position: absolute; bottom: 32%; left: 45%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: pb-banner 2s ease-in-out infinite;
}
.scn-procession-begins .figure-magistrate {
  position: absolute; bottom: 28%; left: 38%; width: 14px; height: 35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pb-walk 3s ease-in-out infinite;
}
.scn-procession-begins .drummer {
  position: absolute; bottom: 28%; left: 52%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 40% 30% 40%;
  transform-origin: bottom center;
  animation: pb-walk 3.5s ease-in-out infinite reverse;
}
@keyframes pb-drift { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pb-pulse { 0% { transform: scale(1); box-shadow: 0 0 30px 15px #ffcc44; } 100% { transform: scale(1.05); box-shadow: 0 0 50px 25px #ffe680; } }
@keyframes pb-build { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pb-crowd { 0% { transform: translateX(0); } 100% { transform: translateX(5px); } }
@keyframes pb-crowd2 { 0% { transform: translateX(0) scaleX(-1); } 100% { transform: translateX(-6px) scaleX(-1); } }
@keyframes pb-banner { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes pb-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* scene: dimmesdale-in-procession */
.scn-dimmesdale-in-procession {
  background: linear-gradient(180deg, #f2e3c4 0%, #dcc39a 40%, #b8945e 100%),
    radial-gradient(ellipse at 70% 40%, #fff0d0 0%, transparent 60%);
}
.scn-dimmesdale-in-procession .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c4d8e8 0%, #e2dabc 100%);
  animation: dp-drift 15s ease-in-out infinite alternate;
}
.scn-dimmesdale-in-procession .sun {
  position: absolute; top: 5%; right: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe48a 0%, #ffb84d 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 20px #ffb84d;
  animation: dp-pulse 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-in-procession .crowd-silhouettes {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(30,20,10,0.6) 0%, rgba(20,15,10,0.8) 100%);
  clip-path: polygon(0% 100%, 0% 80%, 5% 70%, 8% 85%, 12% 65%, 18% 80%, 22% 60%, 28% 75%, 32% 55%, 38% 70%, 42% 50%, 48% 65%, 52% 45%, 58% 60%, 62% 40%, 68% 55%, 72% 35%, 78% 50%, 82% 30%, 88% 45%, 92% 25%, 100% 40%, 100% 100%);
  animation: dp-shimmer 8s ease-in-out infinite;
}
.scn-dimmesdale-in-procession .dimmesdale-body {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 55px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1320 0%, #0e0a12 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  box-shadow: 0 0 15px 5px rgba(255,200,100,0.3);
  animation: dp-body 2s ease-in-out infinite;
}
.scn-dimmesdale-in-procession .dimmesdale-head {
  position: absolute; bottom: 58%; left: 50%; width: 16px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 40% 30%, #3a2a1a 0%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px 3px rgba(255,200,100,0.2);
  animation: dp-head 2s ease-in-out infinite;
}
.scn-dimmesdale-in-procession .dimmesdale-shadow {
  position: absolute; bottom: 28%; left: 52%; width: 30px; height: 50px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  transform: skewX(-10deg);
  animation: dp-shadow 2s ease-in-out infinite;
}
.scn-dimmesdale-in-procession .dust {
  position: absolute; bottom: 28%; left: 30%; right: 20%; height: 5px;
  background: repeating-linear-gradient(90deg, rgba(200,170,120,0.4) 0px, transparent 4px, transparent 12px);
  filter: blur(1px);
  animation: dp-dust 4s linear infinite;
}
@keyframes dp-drift { 0% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes dp-pulse { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(1); } }
@keyframes dp-shimmer { 0%,100% { opacity: 0.7; } 50% { opacity: 0.9; } }
@keyframes dp-body { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } }
@keyframes dp-head { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes dp-shadow { 0%,100% { transform: skewX(-10deg) scaleX(1); } 50% { transform: skewX(-10deg) scaleX(1.1); } }
@keyframes dp-dust { 0% { transform: translateX(0); } 100% { transform: translateX(-30px); } }

/* scene: pearl-senses-estrangement */
.scn-pearl-senses-estrangement {
  background: linear-gradient(180deg, #d2e0d0 0%, #9ab8a0 40%, #6a8a6e 100%),
    radial-gradient(ellipse at 20% 20%, #e0f0d8 0%, transparent 70%);
}
.scn-pearl-senses-estrangement .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0c8b8 0%, #c8dcc4 100%);
  animation: ps-sway 12s ease-in-out infinite alternate;
}
.scn-pearl-senses-estrangement .mother-dress {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.3);
  animation: ps-mother 4s ease-in-out infinite;
}
.scn-pearl-senses-estrangement .mother-head {
  position: absolute; bottom: 65%; left: 40%; width: 20px; height: 22px;
  background: radial-gradient(circle at 50% 40%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ps-mother-head 4s ease-in-out infinite;
}
.scn-pearl-senses-estrangement .pearl-body {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ps-pearl 1.5s ease-in-out infinite;
}
.scn-pearl-senses-estrangement .pearl-head {
  position: absolute; bottom: 52%; left: 52%; width: 14px; height: 16px;
  background: radial-gradient(circle at 40% 30%, #b08a6a 0%, #7a5a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: ps-pearl-head 1.5s ease-in-out infinite;
}
.scn-pearl-senses-estrangement .pearl-wings {
  position: absolute; bottom: 40%; left: 55%; width: 30px; height: 10px;
  background: linear-gradient(180deg, rgba(200,180,160,0.6) 0%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(2px);
  animation: ps-wings 0.8s ease-in-out infinite alternate;
}
.scn-pearl-senses-estrangement .brook-reflection {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(90deg, rgba(100,140,120,0.3) 0%, rgba(160,190,170,0.5) 30%, rgba(100,140,120,0.3) 100%);
  border-radius: 40%;
  filter: blur(4px);
  animation: ps-brook 5s ease-in-out infinite alternate;
}
@keyframes ps-sway { 0% { opacity: 0.9; } 100% { opacity: 1; } }
@keyframes ps-mother { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }
@keyframes ps-mother-head { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-7deg) translateY(1px); } }
@keyframes ps-pearl { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(5deg); } 50% { transform: translateX(12px) rotate(0deg); } 75% { transform: translateX(6px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ps-pearl-head { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(20deg) translateX(3px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ps-wings { 0% { transform: scaleX(1); opacity: 0.4; } 100% { transform: scaleX(1.5); opacity: 0.8; } }
@keyframes ps-brook { 0% { transform: translateX(-5px); opacity: 0.5; } 100% { transform: translateX(5px); opacity: 0.7; } }

/* scene: hester-scolds */
.scn-hester-scolds {
  background: linear-gradient(180deg, #e8d8b0 0%, #c8a870 40%, #9a7a4a 100%),
    radial-gradient(ellipse at 40% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-hester-scolds .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 0 0;
  animation: hs-ground 6s ease-in-out infinite alternate;
}
.scn-hester-scolds .market-stalls {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg,
    #7a5a3a 0px, #8b6742 30px, #6a4a2a 30px, #6a4a2a 35px, transparent 35px, transparent 60px);
  clip-path: polygon(0% 100%, 0% 40%, 5% 30%, 8% 40%, 12% 20%, 15% 40%, 20% 10%, 25% 40%, 30% 15%, 35% 40%, 40% 5%, 45% 40%, 50% 20%, 55% 40%, 60% 10%, 65% 40%, 70% 15%, 75% 40%, 80% 5%, 85% 40%, 90% 20%, 95% 40%, 100% 30%, 100% 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: hs-stalls 8s ease-in-out infinite;
}
.scn-hester-scolds .hester-dress {
  position: absolute; bottom: 18%; left: 38%; width: 45px; height: 75px;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a12 100%);
  border-radius: 40% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: hs-hester 3s ease-in-out infinite;
}
.scn-hester-scolds .hester-arm {
  position: absolute; bottom: 55%; left: 55%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 40%;
  transform-origin: top center;
  transform: rotate(-30deg);
  animation: hs-arm 2s ease-in-out infinite alternate;
}
.scn-hester-scolds .pearl-small {
  position: absolute; bottom: 20%; left: 52%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hs-pearl 2s ease-in-out infinite;
}
.scn-hester-scolds .hibbins-figure {
  position: absolute; bottom: 18%; left: 68%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hs-hibbins 5s ease-in-out infinite;
}
.scn-hester-scolds .shadow-sharp {
  position: absolute; bottom: 18%; left: 40%; width: 55px; height: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
  transform: skewX(-20deg);
  animation: hs-shadow 3s ease-in-out infinite;
}
@keyframes hs-ground { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes hs-stalls { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hs-hester { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes hs-arm { 0% { transform: rotate(-30deg); } 100% { transform: rotate(-50deg); } }
@keyframes hs-pearl { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(0deg); } 75% { transform: translateX(4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hs-hibbins { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(1deg); } }
@keyframes hs-shadow { 0%,100% { transform: skewX(-20deg) scaleX(1); } 50% { transform: skewX(-20deg) scaleX(1.1); } }

.scn-dimmesdale-shrieks { background: linear-gradient(180deg, #0b0b1a 0%, #151530 40%, #1a1a3e 100%), radial-gradient(circle at 50% 80%, #2a2a5e 0%, transparent 70%); }
.scn-dimmesdale-shrieks .sky-dark { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #101028 0%, #0a0a1a 100%); animation: ds-sky 20s ease-in-out infinite alternate; }
.scn-dimmesdale-shrieks .town-silhouette { position:absolute; bottom:28%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: ds-town 15s ease-in-out infinite; }
.scn-dimmesdale-shrieks .scaffold { position:absolute; bottom:18%; left:50%; width:160px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a40 0%, #121222 100%); border-radius:2px 2px 6px 6px; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: ds-scaffold 8s ease-in-out infinite; }
.scn-dimmesdale-shrieks .figure-silhouette { position:absolute; bottom:24%; left:50%; width:30px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ds-figure 4s ease-in-out infinite; }
.scn-dimmesdale-shrieks .moon-glow { position:absolute; top:15%; right:25%; width:60px; height:60px; background: radial-gradient(circle, rgba(180,180,220,.3) 0%, rgba(180,180,220,.05) 60%, transparent 100%); border-radius:50%; filter: blur(10px); animation: ds-moon 25s ease-in-out infinite alternate; }
.scn-dimmesdale-shrieks .echo-ring { position:absolute; bottom:30%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,200,240,.2) 0%, transparent 70%); border-radius:50%; animation: ds-echo 6s ease-out infinite; }
.scn-dimmesdale-shrieks .echo-ring-two { position:absolute; bottom:30%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,200,240,.15) 0%, transparent 70%); border-radius:50%; animation: ds-echo2 6s ease-out infinite 3s; }
@keyframes ds-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ds-town { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ds-scaffold { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes ds-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-4deg) scale(1.02); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(5deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ds-moon { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.6; transform: translateX(6px) } 100% { opacity:.4; transform: translateX(-4px) } }
@keyframes ds-echo { 0% { width:20px; height:20px; opacity:.6; } 50% { width:120px; height:120px; opacity:.1; } 100% { width:200px; height:200px; opacity:0; } }
@keyframes ds-echo2 { 0% { width:15px; height:15px; opacity:.5; } 50% { width:110px; height:110px; opacity:.08; } 100% { width:180px; height:180px; opacity:0; } }

.scn-hibbins-window { background: linear-gradient(180deg, #0c0c1f 0%, #15152e 40%, #1f1f3a 100%), radial-gradient(ellipse at 30% 70%, #2a2a50 0%, transparent 70%); }
.scn-hibbins-window .wall-night { position:absolute; inset:10% 15% 20% 15%; background: linear-gradient(180deg, #1a1a30 0%, #101020 100%); border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.7); animation: hw-wall 12s ease-in-out infinite; }
.scn-hibbins-window .window-left { position:absolute; top:25%; left:20%; width:60px; height:80px; background: linear-gradient(180deg, #0a0a1a 0%, #14142a 100%); border:2px solid #2a2a40; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: hw-window 10s ease-in-out infinite; }
.scn-hibbins-window .window-right { position:absolute; top:25%; right:20%; width:60px; height:80px; background: linear-gradient(180deg, #0a0a1a 0%, #14142a 100%); border:2px solid #2a2a40; border-radius:4px; animation: hw-window2 10s ease-in-out infinite 5s; }
.scn-hibbins-window .lamp-left { position:absolute; top:30%; left:24%; width:12px; height:16px; background: radial-gradient(circle, #f0c060 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 30px 8px #c08040, 0 0 60px 20px rgba(192,128,64,.3); animation: hw-lampleft 8s ease-in-out infinite; }
.scn-hibbins-window .lamp-right { position:absolute; top:30%; right:24%; width:10px; height:14px; background: radial-gradient(circle, #e8b850 0%, #a87030 70%); border-radius:50%; box-shadow: 0 0 25px 6px #b07030, 0 0 50px 15px rgba(176,112,48,.3); animation: hw-lampright 7s ease-in-out infinite; }
.scn-hibbins-window .hag-silhouette { position:absolute; top:28%; left:21%; width:20px; height:50px; background: linear-gradient(180deg, #0a0a18 0%, #050510 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-10deg); animation: hw-hag 6s ease-in-out infinite; }
.scn-hibbins-window .magistrate-glint { position:absolute; top:32%; right:27%; width:4px; height:4px; background:#ffd080; border-radius:50%; box-shadow: 0 0 12px 3px #ffd080; animation: hw-glint 4s ease-in-out infinite alternate; }
@keyframes hw-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes hw-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.5); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,.7); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,.5); } }
@keyframes hw-window2 { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.5); } 50% { box-shadow: inset 0 0 10px rgba(0,0,0,.3); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,.5); } }
@keyframes hw-lampleft { 0% { opacity:.9; box-shadow: 0 0 30px 8px #c08040; } 50% { opacity:.5; box-shadow: 0 0 10px 2px #c08040; } 100% { opacity:.85; box-shadow: 0 0 25px 6px #b07030; } }
@keyframes hw-lampright { 0% { opacity:.8; } 30% { opacity:.9; } 60% { opacity:.6; } 100% { opacity:.8; } }
@keyframes hw-hag { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes hw-glint { 0% { opacity:.3; } 50% { opacity:1; } 100% { opacity:.5; } }

.scn-wilson-passes { background: linear-gradient(180deg, #0d0d1e 0%, #181833 40%, #222248 100%), radial-gradient(circle at 70% 40%, #2a2a55 0%, transparent 70%); }
.scn-wilson-passes .street-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: wp-street 18s ease-in-out infinite; }
.scn-wilson-passes .sky-night { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0f0f24 0%, #0a0a18 100%); animation: wp-sky 25s ease-in-out infinite alternate; }
.scn-wilson-passes .scaffold-watch { position:absolute; bottom:22%; left:20%; width:100px; height:30px; background: linear-gradient(180deg, #2a2a42 0%, #14142a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: wp-scaffold 10s ease-in-out infinite; }
.scn-wilson-passes .figure-wilson { position:absolute; bottom:20%; left:65%; width:25px; height:60px; background: linear-gradient(180deg, #1a1a30 0%, #0a0a18 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: wp-wilson 7s ease-in-out infinite; }
.scn-wilson-passes .lamp-halo { position:absolute; top:30%; left:60%; width:50px; height:50px; background: radial-gradient(circle, rgba(240,200,100,.3) 0%, rgba(240,200,100,.05) 60%, transparent 100%); border-radius:50%; filter: blur(8px); animation: wp-lamp 9s ease-in-out infinite; }
.scn-wilson-passes .halo-pulse { position:absolute; top:32%; left:62%; width:30px; height:30px; background: radial-gradient(circle, #f0c860 0%, #b08040 70%); border-radius:50%; box-shadow: 0 0 40px 12px #c08040, 0 0 80px 25px rgba(192,128,64,.3); animation: wp-halo 5s ease-in-out infinite alternate; }
.scn-wilson-passes .dimmesdale-watch { position:absolute; bottom:24%; left:12%; width:20px; height:50px; background: linear-gradient(180deg, #0c0c1e 0%, #060612 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: wp-dwatch 4s ease-in-out infinite; }
@keyframes wp-street { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wp-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes wp-scaffold { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes wp-wilson { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wp-lamp { 0% { opacity:.4; transform: translateX(0); } 50% { opacity:.7; transform: translateX(10px); } 100% { opacity:.5; transform: translateX(-5px); } }
@keyframes wp-halo { 0% { box-shadow: 0 0 30px 8px #c08040; opacity:.8; } 50% { box-shadow: 0 0 50px 16px #e8b850; opacity:1; } 100% { box-shadow: 0 0 35px 10px #c08040; opacity:.85; } }
@keyframes wp-dwatch { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(2px); } 100% { transform: rotate(5deg) translateY(0); } }

.scn-three-on-scaffold { background: linear-gradient(180deg, #050512 0%, #0e0e24 40%, #1a1a3a 100%), radial-gradient(circle at 50% 60%, #25254a 0%, transparent 70%); }
.scn-three-on-scaffold .sky-abyss { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #03030e 100%); animation: tos-sky 30s ease-in-out infinite alternate; }
.scn-three-on-scaffold .scaffold-three { position:absolute; bottom:15%; left:50%; width:180px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a42 0%, #12122a 100%); border-radius:2px 2px 6px 6px; box-shadow: 0 6px 12px rgba(0,0,0,.7); animation: tos-scaffold 12s ease-in-out infinite; }
.scn-three-on-scaffold .hester-figure { position:absolute; bottom:20%; left:38%; width:28px; height:65px; background: linear-gradient(180deg, #1a1a30 0%, #0e0e1e 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-3deg); animation: tos-hester 6s ease-in-out infinite; }
.scn-three-on-scaffold .dimmesdale-figure { position:absolute; bottom:22%; left:48%; width:26px; height:62px; background: linear-gradient(180deg, #14142a 0%, #0a0a18 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tos-dimmesdale 5s ease-in-out infinite; }
.scn-three-on-scaffold .pearl-figure { position:absolute; bottom:18%; left:57%; width:20px; height:45px; background: linear-gradient(180deg, #1e1e38 0%, #0e0e20 100%); border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%; transform: rotate(5deg); animation: tos-pearl 4s ease-in-out infinite; }
.scn-three-on-scaffold .electric-chain { position:absolute; bottom:25%; left:42%; width:60px; height:8px; background: linear-gradient(90deg, rgba(200,220,255,.4) 0%, rgba(180,200,255,.6) 50%, rgba(200,220,255,.4) 100%); border-radius:50%; filter: blur(4px); animation: tos-chain 3s ease-in-out infinite; }
.scn-three-on-scaffold .chain-spark { position:absolute; bottom:24%; left:47%; width:10px; height:10px; background: radial-gradient(circle, #d0e0ff 0%, #8899cc 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #8899cc; animation: tos-spark 2s ease-in-out infinite; }
@keyframes tos-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes tos-scaffold { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes tos-hester { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes tos-dimmesdale { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tos-pearl { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes tos-chain { 0% { opacity:.3; } 50% { opacity:.8; } 100% { opacity:.3; } }
@keyframes tos-spark { 0% { opacity:.5; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:.5; transform: scale(1); } }

/* CSS blocks per scene id – each .scn-<id> + child rules */
/* ────────────── witch-lady-taunts ────────────── */
.scn-witch-lady-taunts {
  background:
    linear-gradient(180deg, #c8a068 0%, #8a6a3a 40%, #4a3a1a 100%),
    radial-gradient(ellipse at 50% 80%, #e0b080 0%, transparent 70%);
}
.scn-witch-lady-taunts .forest-bg {
  position: absolute; inset:0; background: linear-gradient(180deg, #7a6a3a 0%, #3a2a0a 100%);
  animation: wt-forest 20s ease-in-out infinite alternate;
}
.scn-witch-lady-taunts .trunk {
  position: absolute; bottom:0; width:12px; height:50%; background: linear-gradient(180deg, #5a3a1a 0%, #3a220a 100%); border-radius: 20% 20% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-witch-lady-taunts .trunk.left { left:20%; animation: wt-sway 6s ease-in-out infinite; }
.scn-witch-lady-taunts .trunk.right { right:20%; animation: wt-sway 7s ease-in-out infinite reverse; }
.scn-witch-lady-taunts .path {
  position: absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #a08050 0%, #6a5020 100%); border-radius: 60% 60% 0 0 / 100% 100% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: wt-path 12s ease-in-out infinite;
}
.scn-witch-lady-taunts .witch-silhouette {
  position: absolute; bottom:20%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: wt-taunt 4s ease-in-out infinite;
}
.scn-witch-lady-taunts .glow-orb {
  position: absolute; bottom:45%; left:40%; width:16px; height:16px; background: radial-gradient(circle, #ffd080 0%, #c0a060 60%, transparent 90%); border-radius:50%; box-shadow: 0 0 16px 6px #c0a060;
  animation: wt-orb 3s ease-in-out infinite alternate;
}
.scn-witch-lady-taunts .light-ray {
  position: absolute; bottom:55%; width:60px; height:4px; background: linear-gradient(90deg, transparent 0%, rgba(255,230,180,0.4) 50%, transparent 100%); border-radius:50%; filter: blur(2px);
  animation: wt-ray 5s ease-in-out infinite;
}
.scn-witch-lady-taunts .ray1 { left:5%; transform: rotate(20deg); }
.scn-witch-lady-taunts .ray2 { right:10%; transform: rotate(-15deg); animation-delay:2s; }

@keyframes wt-forest { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes wt-sway { 0% { transform: rotate(-0.5deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes wt-path { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.9; transform: scaleY(1); } }
@keyframes wt-taunt { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(-3deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes wt-orb { 0% { opacity:0.7; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.2); } }
@keyframes wt-ray { 0% { opacity:0.3; transform: rotate(20deg) scaleX(0.8); } 50% { opacity:0.6; transform: rotate(25deg) scaleX(1.1); } 100% { opacity:0.3; transform: rotate(20deg) scaleX(0.8); } }

/* ────────────── witch-lady-threatens ────────────── */
.scn-witch-lady-threatens {
  background:
    linear-gradient(180deg, #8a7050 0%, #4a3020 50%, #2a1a10 100%),
    radial-gradient(ellipse at 60% 70%, #c09060 0%, transparent 60%);
}
.scn-witch-lady-threatens .forest-dark {
  position: absolute; inset:0; background: linear-gradient(180deg, #3a2a12 0%, #1a0a00 100%);
  animation: wl-dark 15s ease-in-out infinite alternate;
}
.scn-witch-lady-threatens .trunk-mid {
  position: absolute; bottom:0; left:50%; width:14px; height:70%; background: linear-gradient(180deg, #4a2a12 0%, #2a1a08 100%); transform: translateX(-50%); border-radius: 10% 10% 0 0; box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: wl-pulse 4s ease-in-out infinite;
}
.scn-witch-lady-threatens .hest-fig {
  position: absolute; bottom:15%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: wl-cower 5s ease-in-out infinite;
}
.scn-witch-lady-threatens .witch-arm {
  position: absolute; bottom:30%; left:60%; width:4px; height:30px; background: linear-gradient(180deg, #1a1008 0%, #0a0500 100%); border-radius: 50% 0 0 50%; transform-origin: bottom; transform: rotate(20deg);
  animation: wl-point 3s ease-in-out infinite;
}
.scn-witch-lady-threatens .token-badge {
  position: absolute; bottom:45%; left:55%; width:8px; height:8px; background: radial-gradient(circle, #e0c090 0%, #a08050 80%); border-radius:50%; box-shadow: 0 0 12px 4px #c0a060;
  animation: wl-gleam 2s ease-in-out infinite alternate;
}
.scn-witch-lady-threatens .shadow-stripe {
  position: absolute; bottom:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 80%);
  animation: wl-slide 6s ease-in-out infinite;
}
.scn-witch-lady-threatens .dust {
  position: absolute; inset:0; background: radial-gradient(circle at 50% 60%, rgba(200,180,140,0.1) 0%, transparent 50%);
  animation: wl-dust 8s linear infinite;
}

@keyframes wl-dark { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes wl-pulse { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes wl-cower { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-5px) rotate(-5deg); } 70% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wl-point { 0% { transform: rotate(20deg); } 50% { transform: rotate(40deg); } 100% { transform: rotate(20deg); } }
@keyframes wl-gleam { 0% { opacity:0.5; box-shadow: 0 0 8px 2px #a08050; } 100% { opacity:1; box-shadow: 0 0 20px 6px #e0c090; } }
@keyframes wl-slide { 0% { opacity:0.3; transform: translateX(0); } 50% { opacity:0.6; transform: translateX(10px); } 100% { opacity:0.3; transform: translateX(0); } }
@keyframes wl-dust { 0% { transform: translateY(0) scale(1); opacity:0.1; } 50% { opacity:0.3; } 100% { transform: translateY(-20px) scale(1.2); opacity:0; } }

/* ────────────── hester-listens ────────────── */
.scn-hester-listens {
  background:
    linear-gradient(180deg, #b09870 0%, #7a6040 40%, #4a3220 100%),
    radial-gradient(ellipse at 30% 50%, #d0b890 0%, transparent 60%);
}
.scn-hester-listens .interior-wall {
  position: absolute; inset:0; background: linear-gradient(180deg, #9a8058 0%, #5a4028 100%);
  animation: hl-wall 10s ease-in-out infinite alternate;
}
.scn-hester-listens .window-light {
  position: absolute; top:10%; left:20%; width:40px; height:50px; background: linear-gradient(135deg, #ffe8c0 0%, #d0a870 50%, #a08050 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 30px 10px rgba(255,232,192,0.4);
  animation: hl-window 8s ease-in-out infinite alternate;
}
.scn-hester-listens .scaffold {
  position: absolute; bottom:0; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #7a6030 0%, #4a3018 100%); border-radius: 30% 30% 0 0 / 100% 100% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: hl-scaffold 14s ease-in-out infinite;
}
.scn-hester-listens .hest-silhouette {
  position: absolute; bottom:25%; left:35%; width:18px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: hl-listen 6s ease-in-out infinite;
}
.scn-hester-listens .crowd-left {
  position: absolute; bottom:10%; left:5%; width:25%; height:50%; background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; filter: blur(3px);
  animation: hl-crowd 12s ease-in-out infinite alternate;
}
.scn-hester-listens .crowd-right {
  position: absolute; bottom:10%; right:5%; width:25%; height:50%; background: linear-gradient(180deg, #3a2a18 0%, #1a1008 100%); border-radius: 60% 40% 0 0 / 70% 80% 0 0; filter: blur(3px);
  animation: hl-crowd 12s ease-in-out infinite alternate-reverse;
}
.scn-hester-listens .minister-voice-bar {
  position: absolute; top:40%; left:40%; width:20%; height:8px; background: linear-gradient(90deg, transparent 0%, rgba(200,180,140,0.6) 50%, transparent 100%); border-radius: 50%; filter: blur(2px);
  animation: hl-voice 3s ease-in-out infinite alternate;
}

@keyframes hl-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes hl-window { 0% { opacity:0.6; transform: scale(0.95); } 100% { opacity:1; transform: scale(1.05); } }
@keyframes hl-scaffold { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hl-listen { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hl-crowd { 0% { opacity:0.5; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(1.03); } 100% { opacity:0.6; transform: scaleY(1); } }
@keyframes hl-voice { 0% { width:15%; opacity:0.3; } 50% { width:25%; opacity:0.7; } 100% { width:18%; opacity:0.4; } }

/* ────────────── hester-statue ────────────── */
.scn-hester-statue {
  background:
    linear-gradient(180deg, #c0a880 0%, #8a6a42 50%, #4a3020 100%),
    radial-gradient(ellipse at 40% 30%, #d8c0a0 0%, transparent 50%);
}
.scn-hester-statue .market-ground {
  position: absolute; inset:0; background: linear-gradient(180deg, #9a7a52 0%, #5a3820 100%);
  animation: hs-ground 18s ease-in-out infinite alternate;
}
.scn-hester-statue .scaffold-statue {
  position: absolute; bottom:10%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2008 100%); border-radius: 20% 20% 0 0 / 80% 80% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.5);
  animation: hs-base 10s ease-in-out infinite;
}
.scn-hester-statue .hest-statue {
  position: absolute; bottom:40%; left:45%; width:20px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%; transform-origin: bottom center;
  animation: hs-still 8s ease-in-out infinite;
}
.scn-hester-statue .pearl-figure {
  position: absolute; bottom:20%; left:55%; width:12px; height:30px; background: linear-gradient(180deg, #d0b090 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: hs-pearl 4s ease-in-out infinite;
}
.scn-hester-statue .crowd-blur {
  position: absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, rgba(30,20,10,0.2) 0%, rgba(30,20,10,0.5) 100%); filter: blur(8px);
  animation: hs-crowd 12s ease-in-out infinite alternate;
}
.scn-hester-statue .sunburst {
  position: absolute; top:8%; left:35%; width:80px; height:80px; background: radial-gradient(circle, rgba(255,230,180,0.5) 0%, rgba(255,230,180,0.1) 50%, transparent 100%); border-radius:50%; filter: blur(6px);
  animation: hs-sun 20s ease-in-out infinite alternate;
}
.scn-hester-statue .shadow-scar {
  position: absolute; bottom:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: hs-scar 6s ease-in-out infinite;
}
.scn-hester-statue .glint {
  position: absolute; bottom:50%; left:50%; width:4px; height:4px; background: radial-gradient(circle, #ffe0b0 0%, transparent 90%); border-radius:50%; box-shadow: 0 0 10px 2px #ffe0b0;
  animation: hs-glint 3s ease-in-out infinite alternate;
}

@keyframes hs-ground { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes hs-base { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hs-still { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hs-pearl { 0% { transform: translateX(0) rotate(-10deg); } 25% { transform: translateX(15px) rotate(5deg); } 50% { transform: translateX(30px) rotate(-8deg); } 75% { transform: translateX(15px) rotate(3deg); } 100% { transform: translateX(0) rotate(-10deg); } }
@keyframes hs-crowd { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes hs-sun { 0% { opacity:0.4; transform: scale(0.8); } 100% { opacity:0.7; transform: scale(1.2); } }
@keyframes hs-scar { 0% { opacity:0.3; transform: translateX(0); } 50% { opacity:0.6; transform: translateX(5px); } 100% { opacity:0.3; transform: translateX(0); } }
@keyframes hs-glint { 0% { opacity:0.5; transform: scale(0.8); } 100% { opacity:1; transform: scale(1.3); } }

/* one block per scene id. Append to style.css. */
.scn-pearl-touches-letter { background: linear-gradient(180deg, #1a1218 0%, #2a1a22 40%, #3a222e 100%), radial-gradient(ellipse at 50% 100%, #3a222e 0%, transparent 70%); }
.scn-pearl-touches-letter .shadow-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, rgba(0,0,0,.6) 0%, transparent 60%); animation: ptl-shadow 10s ease-in-out infinite alternate; }
.scn-pearl-touches-letter .wall-left { position:absolute; left:0; top:0; width:30%; height:100%; background: linear-gradient(90deg, #2a1a22 0%, transparent 100%); }
.scn-pearl-touches-letter .wall-right { position:absolute; right:0; top:0; width:30%; height:100%; background: linear-gradient(270deg, #2a1a22 0%, transparent 100%); }
.scn-pearl-touches-letter .figure-hester { position:absolute; bottom:20%; left:50%; width:80px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a30 0%, #1a1218 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: -10px 0 20px rgba(0,0,0,.5); animation: ptl-hester 8s ease-in-out infinite; }
.scn-pearl-touches-letter .scarlet-letter { position:absolute; bottom:42%; left:50%; width:24px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #b03a2a 0%, #702a1a 100%); border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%; box-shadow: 0 0 12px 4px #b03a2a, 0 0 24px 8px rgba(176,58,42,.3); animation: ptl-letter 4s ease-in-out infinite alternate; }
.scn-pearl-touches-letter .pearl-hand { position:absolute; bottom:44%; left:56%; width:16px; height:22px; background: linear-gradient(180deg, #c0a890 0%, #a08070 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom left; animation: ptl-hand 6s ease-in-out infinite; }
.scn-pearl-touches-letter .candle { position:absolute; bottom:12%; left:20%; width:8px; height:40px; background: linear-gradient(180deg, #e0c89a 0%, #b09870 100%); border-radius: 20% 20% 0 0; box-shadow: 0 0 8px 2px #e0c89a; }
.scn-pearl-touches-letter .candle-glow { position:absolute; bottom:12%; left:20%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, rgba(224,200,154,.6) 0%, transparent 70%); animation: ptl-candle 3s ease-in-out infinite alternate; }
@keyframes ptl-shadow { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .4 } }
@keyframes ptl-hester { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes ptl-letter { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 12px 4px #b03a2a, 0 0 24px 8px rgba(176,58,42,.3) } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 20px 8px #b03a2a, 0 0 40px 16px rgba(176,58,42,.5) } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 12px 4px #b03a2a, 0 0 24px 8px rgba(176,58,42,.3) } }
@keyframes ptl-hand { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(4px,-2px) rotate(10deg) } 50% { transform: translate(0,0) rotate(0deg) } 75% { transform: translate(2px,-1px) rotate(5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes ptl-candle { 0% { opacity: .6; transform: translate(-50%,-50%) scale(1) } 50% { opacity: .9; transform: translate(-50%,-50%) scale(1.2) } 100% { opacity: .6; transform: translate(-50%,-50%) scale(1) } }

.scn-pearl-questioned { background: linear-gradient(180deg, #1a1218 0%, #2a1a22 50%, #3a222e 100%), radial-gradient(ellipse at 50% 100%, #3a222e 0%, transparent 60%); }
.scn-pearl-questioned .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,.5) 0%, transparent 60%); animation: pqu-bg 12s ease-in-out infinite alternate; }
.scn-pearl-questioned .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a22 0%, #1a1218 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-pearl-questioned .figure-hester-stand { position:absolute; bottom:20%; left:30%; width:60px; height:150px; background: linear-gradient(180deg, #3a2a30 0%, #1a1218 100%); border-radius: 35% 35% 30% 30% / 50% 50% 30% 30%; box-shadow: 5px 0 15px rgba(0,0,0,.5); animation: pqu-hester 9s ease-in-out infinite; }
.scn-pearl-questioned .figure-pearl-dance { position:absolute; bottom:15%; left:60%; width:40px; height:80px; background: linear-gradient(180deg, #4a3040 0%, #2a1822 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; animation: pqu-pearl-dance 3s ease-in-out infinite; }
.scn-pearl-questioned .pearl-skirt { position:absolute; bottom:12%; left:58%; width:30px; height:30px; background: radial-gradient(ellipse, #5a3848 0%, #2a1822 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: top center; animation: pqu-skirt 3s ease-in-out infinite; }
.scn-pearl-questioned .imp-shadow { position:absolute; bottom:0; left:60%; width:50px; height:20px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(8px); animation: pqu-shadow 3s ease-in-out infinite; }
.scn-pearl-questioned .amber-light { position:absolute; top:20%; right:10%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,160,100,.15) 0%, transparent 70%); animation: pqu-light 8s ease-in-out infinite alternate; }
@keyframes pqu-bg { 0% { opacity: .4 } 50% { opacity: .6 } 100% { opacity: .3 } }
@keyframes pqu-hester { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pqu-pearl-dance { 0% { transform: translateX(0) rotate(-5deg) scale(1) } 25% { transform: translateX(10px) rotate(5deg) scale(1.05) } 50% { transform: translateX(-5px) rotate(-3deg) scale(0.95) } 75% { transform: translateX(8px) rotate(3deg) scale(1.02) } 100% { transform: translateX(0) rotate(-5deg) scale(1) } }
@keyframes pqu-skirt { 0% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(10deg) scaleY(1.1) } 50% { transform: rotate(-15deg) scaleY(0.9) } 75% { transform: rotate(8deg) scaleY(1.05) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes pqu-shadow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.3) } 100% { opacity: .4; transform: scaleX(1) } }
@keyframes pqu-light { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .2 } }

.scn-pearl-defiant { background: linear-gradient(180deg, #1a1218 0%, #2a1a22 60%, #3a222e 100%), radial-gradient(ellipse at 50% 100%, #5a2a2a 0%, transparent 70%); }
.scn-pearl-defiant .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 70%, rgba(0,0,0,.7) 0%, transparent 60%); animation: pde-bg 14s ease-in-out infinite alternate; }
.scn-pearl-defiant .pillar-left { position:absolute; left:5%; top:0; width:10%; height:100%; background: linear-gradient(90deg, #2a1a22 0%, #3a2020 100%); border-radius: 0 10% 10% 0; box-shadow: 5px 0 10px rgba(0,0,0,.5); }
.scn-pearl-defiant .pillar-right { position:absolute; right:5%; top:0; width:10%; height:100%; background: linear-gradient(270deg, #2a1a22 0%, #3a2020 100%); border-radius: 10% 0 0 10%; box-shadow: -5px 0 10px rgba(0,0,0,.5); }
.scn-pearl-defiant .figure-pearl-defiant { position:absolute; bottom:15%; left:50%; width:50px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3040 0%, #2a1822 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; box-shadow: 0 0 20px rgba(0,0,0,.6); animation: pde-pearl 5s ease-in-out infinite; }
.scn-pearl-defiant .hand-touch { position:absolute; bottom:38%; left:54%; width:14px; height:18px; background: linear-gradient(180deg, #c0a890 0%, #a08070 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom center; animation: pde-hand 4s ease-in-out infinite; }
.scn-pearl-defiant .scarlet-letter-defiant { position:absolute; bottom:30%; left:48%; width:20px; height:25px; background: radial-gradient(circle, #b03a2a 0%, #702a1a 100%); border-radius: 10% 10% 10% 10% / 20% 20% 20% 20%; box-shadow: 0 0 16px 6px #b03a2a, 0 0 32px 12px rgba(176,58,42,.4); animation: pde-letter 3s ease-in-out infinite alternate; }
.scn-pearl-defiant .spark-glow { position:absolute; bottom:28%; left:46%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,160,100,.3) 0%, transparent 70%); animation: pde-spark 2s ease-in-out infinite; }
@keyframes pde-bg { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .4 } }
@keyframes pde-pearl { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes pde-hand { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(15deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(3px) rotate(8deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pde-letter { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 16px 6px #b03a2a, 0 0 32px 12px rgba(176,58,42,.4) } 50% { transform: scale(1.08) rotate(5deg); box-shadow: 0 0 28px 10px #b03a2a, 0 0 48px 20px rgba(176,58,42,.6) } 100% { transform: scale(1) rotate(0deg); box-shadow: 0 0 16px 6px #b03a2a, 0 0 32px 12px rgba(176,58,42,.4) } }
@keyframes pde-spark { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .6; transform: scale(1.3) } 100% { opacity: .2; transform: scale(1) } }

.scn-hester-fears { background: linear-gradient(180deg, #0e0a12 0%, #1a1218 30%, #2a1a22 100%), radial-gradient(ellipse at 50% 100%, #2a1a22 0%, transparent 70%); }
.scn-hester-fears .bg-void { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,.8) 0%, transparent 70%); animation: hfe-void 16s ease-in-out infinite alternate; }
.scn-hester-fears .archway { position:absolute; top:10%; left:30%; right:30%; bottom:20%; border: 3px solid #3a2a30; border-radius: 40% 40% 0 0 / 60% 60% 0 0; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-hester-fears .door { position:absolute; bottom:18%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 0 10px rgba(0,0,0,.7); animation: hfe-door 12s ease-in-out infinite; }
.scn-hester-fears .figure-hester-walk { position:absolute; bottom:10%; left:35%; width:55px; height:140px; background: linear-gradient(180deg, #3a2a30 0%, #1a1218 100%); border-radius: 35% 35% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hfe-hester-walk 6s ease-in-out infinite; }
.scn-hester-fears .pearl-behind { position:absolute; bottom:10%; left:44%; width:30px; height:70px; background: linear-gradient(180deg, #4a3040 0%, #2a1822 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; animation: hfe-pearl-behind 6s ease-in-out infinite; }
.scn-hester-fears .shadow-hand { position:absolute; bottom:28%; left:46%; width:18px; height:15px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(4px); animation: hfe-hand 8s ease-in-out infinite; }
.scn-hester-fears .lantern { position:absolute; bottom:8%; left:55%; width:10px; height:14px; background: radial-gradient(circle, #e0c89a 0%, #b09870 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #e0c89a, 0 0 40px 12px rgba(224,200,154,.3); animation: hfe-lantern 4s ease-in-out infinite alternate; }
.scn-hester-fears .floor-line { position:absolute; bottom:6%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 20%, #4a3a3a 50%, transparent 80%); border-radius: 50%; animation: hfe-floor 10s linear infinite; }
@keyframes hfe-void { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .2 } }
@keyframes hfe-door { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes hfe-hester-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(6px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hfe-pearl-behind { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hfe-hand { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .5; transform: scale(1.2) } 100% { opacity: .2; transform: scale(1) } }
@keyframes hfe-lantern { 0% { transform: rotate(-5deg) scale(1); box-shadow: 0 0 20px 6px #e0c89a, 0 0 40px 12px rgba(224,200,154,.3) } 50% { transform: rotate(5deg) scale(1.1); box-shadow: 0 0 30px 10px #e0c89a, 0 0 60px 20px rgba(224,200,154,.5) } 100% { transform: rotate(-5deg) scale(1); box-shadow: 0 0 20px 6px #e0c89a, 0 0 40px 12px rgba(224,200,154,.3) } }
@keyframes hfe-floor { 0% { opacity: .3; transform: translateX(-10px) } 50% { opacity: .5; transform: translateX(10px) } 100% { opacity: .3; transform: translateX(-10px) } }

.scn-hope-returns {
  background: linear-gradient(180deg, #5a6b6e 0%, #4a5a5c 50%, #2e3a3c 100%), radial-gradient(ellipse at 50% 30%, #7a8a8c 0%, transparent 70%);
}
.scn-hope-returns .sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #6a7a7c 0%, #4a5a5c 100%); animation: hr-sky 12s ease-in-out infinite alternate;
}
.scn-hope-returns .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #3a4a3c 0%, #1a2a1c 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-hope-returns .tree-l {
  position: absolute; bottom: 40%; left: 10%; width: 14px; height: 60%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset -2px 0 4px rgba(0,0,0,0.4); animation: hr-tree-l 20s ease-in-out infinite;
}
.scn-hope-returns .tree-r {
  position: absolute; bottom: 40%; right: 15%; width: 12px; height: 55%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset -2px 0 4px rgba(0,0,0,0.4); animation: hr-tree-r 25s ease-in-out infinite;
}
.scn-hope-returns .hester {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 70px; background: linear-gradient(180deg, #2a2e2f 0%, #1a1e1f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hr-hester 8s ease-in-out infinite;
}
.scn-hope-returns .dimmesdale {
  position: absolute; bottom: 20%; right: 40%; width: 26px; height: 74px; background: linear-gradient(180deg, #2a2e2f 0%, #1a1e1f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hr-dimmesdale 8s ease-in-out infinite;
}
.scn-hope-returns .light-spot {
  position: absolute; bottom: 30%; left: 50%; width: 18px; height: 18px; transform: translateX(-50%); background: radial-gradient(circle, #b8a88a 0%, #8a7a6a 50%, transparent 100%); border-radius: 50%; animation: hr-light 4s ease-in-out infinite alternate;
}
.scn-hope-returns .motes-1 {
  position: absolute; top: 40%; left: 20%; width: 4px; height: 4px; background: #b8a88a; border-radius: 50%; filter: blur(2px); animation: hr-motes 10s ease-in-out infinite;
}
@keyframes hr-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes hr-tree-l { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } }
@keyframes hr-tree-r { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } }
@keyframes hr-hester { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-5px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hr-dimmesdale { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hr-light { 0% { opacity: 0.6; transform: translateX(-50%) scale(1) } 50% { opacity: 1; transform: translateX(-50%) scale(1.3) } 100% { opacity: 0.7; transform: translateX(-50%) scale(1.1) } }
@keyframes hr-motes { 0% { transform: translate(0, 0) scale(1); opacity: 0 } 25% { transform: translate(10px, -20px) scale(1.5); opacity: 1 } 50% { transform: translate(20px, -10px) scale(2); opacity: 0.5 } 75% { transform: translate(30px, -30px) scale(1); opacity: 0.8 } 100% { transform: translate(40px, -20px) scale(1.2); opacity: 0 } }

.scn-strength-contrast {
  background: linear-gradient(180deg, #2a2e30 0%, #1a1e20 50%, #0a0e10 100%), radial-gradient(ellipse at 50% 20%, #3a3e40 0%, transparent 80%);
}
.scn-strength-contrast .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #3a3e40 0%, #1a1e20 100%); animation: sc-sky 15s ease-in-out infinite alternate;
}
.scn-strength-contrast .wall-bg {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 20%; background: linear-gradient(90deg, #2a2a2a 0%, #1a1a1a 50%, #2a2a2a 100%); border-radius: 10% 10% 0 0; opacity: 0.8; animation: sc-wall 20s ease-in-out infinite;
}
.scn-strength-contrast .wall-fg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-strength-contrast .pillar-l {
  position: absolute; bottom: 15%; left: 20%; width: 16px; height: 50%; background: linear-gradient(90deg, #3a3a3a 0%, #2a2a2a 50%, #3a3a3a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: sc-pillar 22s ease-in-out infinite;
}
.scn-strength-contrast .pillar-r {
  position: absolute; bottom: 15%; right: 20%; width: 16px; height: 50%; background: linear-gradient(90deg, #3a3a3a 0%, #2a2a2a 50%, #3a3a3a 100%); border-radius: 8% 8% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: sc-pillar 22s ease-in-out infinite reverse;
}
.scn-strength-contrast .hester-strong {
  position: absolute; bottom: 18%; left: 35%; width: 30px; height: 68px; background: linear-gradient(180deg, #2a2e30 0%, #1a1e20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-hester 6s ease-in-out infinite;
}
.scn-strength-contrast .dimmesdale-weak {
  position: absolute; bottom: 20%; right: 30%; width: 22px; height: 60px; background: linear-gradient(180deg, #2a2e30 0%, #1a1e20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-dimmesdale 8s ease-in-out infinite;
}
.scn-strength-contrast .shadow {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 10%; background: rgba(0,0,0,0.3); filter: blur(8px); animation: sc-shadow 12s ease-in-out infinite alternate;
}
@keyframes sc-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes sc-wall { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes sc-pillar { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.01) } }
@keyframes sc-hester { 0% { transform: translateX(0) rotate(0deg) scale(1) } 25% { transform: translateX(-3px) rotate(-1deg) scale(1.02) } 50% { transform: translateX(0) rotate(1deg) scale(1) } 75% { transform: translateX(3px) rotate(-1deg) scale(1.01) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes sc-dimmesdale { 0% { transform: translateX(0) rotate(0deg) scale(1) } 25% { transform: translateX(4px) rotate(4deg) scale(0.95) } 50% { transform: translateX(0) rotate(-3deg) scale(1) } 75% { transform: translateX(-4px) rotate(3deg) scale(0.96) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes sc-shadow { 0% { opacity: 0.5; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(1.2) } 100% { opacity: 0.4; transform: scaleY(0.9) } }

.scn-dimmesdale-consents {
  background: linear-gradient(180deg, #4a5a5c 0%, #2a3a3c 50%, #1a2a2c 100%), radial-gradient(ellipse at 50% 40%, #5a6a6c 0%, transparent 70%);
}
.scn-dimmesdale-consents .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #5a6a6c 0%, #3a4a4c 100%); animation: dc-sky 14s ease-in-out infinite alternate;
}
.scn-dimmesdale-consents .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a3a2c 0%, #1a2a1c 100%); border-radius: 20% 80% 0 0 / 10% 30% 0 0;
}
.scn-dimmesdale-consents .doorway {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.8); animation: dc-door 20s ease-in-out infinite;
}
.scn-dimmesdale-consents .dimmesdale-con {
  position: absolute; bottom: 18%; left: 44%; width: 24px; height: 64px; background: linear-gradient(180deg, #2a2e30 0%, #1a1e20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dc-dimmesdale 6s ease-in-out infinite;
}
.scn-dimmesdale-consents .hester-hand {
  position: absolute; bottom: 28%; left: 52%; width: 10px; height: 14px; background: linear-gradient(180deg, #2a2e30 0%, #1a1e20 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; transform-origin: center; animation: dc-hand 4s ease-in-out infinite;
}
.scn-dimmesdale-consents .light-flicker {
  position: absolute; bottom: 35%; left: 50%; width: 14px; height: 14px; transform: translateX(-50%); background: radial-gradient(circle, #a09070 0%, #706050 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(160,144,112,0.4); animation: dc-glow 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-consents .dust-1 {
  position: absolute; top: 30%; left: 30%; width: 3px; height: 3px; background: #9a8a7a; border-radius: 50%; filter: blur(1px); animation: dc-dust-a 12s linear infinite;
}
.scn-dimmesdale-consents .dust-2 {
  position: absolute; top: 35%; left: 60%; width: 4px; height: 4px; background: #9a8a7a; border-radius: 50%; filter: blur(1px); animation: dc-dust-b 15s linear infinite;
}
@keyframes dc-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes dc-door { 0%,100% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.03) } }
@keyframes dc-dimmesdale { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dc-hand { 0% { transform: translate(0, 0) rotate(0deg) } 25% { transform: translate(2px, -3px) rotate(10deg) } 50% { transform: translate(0, -1px) rotate(-5deg) } 75% { transform: translate(-2px, -2px) rotate(15deg) } 100% { transform: translate(0, 0) rotate(0deg) } }
@keyframes dc-glow { 0% { opacity: 0.6; transform: translateX(-50%) scale(1) } 50% { opacity: 1; transform: translateX(-50%) scale(1.4) } 100% { opacity: 0.7; transform: translateX(-50%) scale(1.2) } }
@keyframes dc-dust-a { 0% { transform: translate(0, 0) scale(1); opacity: 0 } 25% { transform: translate(10px, -15px) scale(1.5); opacity: 0.8 } 50% { transform: translate(20px, -5px) scale(2); opacity: 0.3 } 75% { transform: translate(30px, -20px) scale(1); opacity: 0.6 } 100% { transform: translate(40px, -10px) scale(1.2); opacity: 0 } }
@keyframes dc-dust-b { 0% { transform: translate(0, 0) scale(1); opacity: 0 } 25% { transform: translate(-10px, -10px) scale(1.3); opacity: 0.7 } 50% { transform: translate(-20px, -5px) scale(1.8); opacity: 0.4 } 75% { transform: translate(-30px, -15px) scale(1); opacity: 0.5 } 100% { transform: translate(-40px, -10px) scale(1.1); opacity: 0 } }

.scn-hester-removes-letter {
  background: linear-gradient(180deg, #5a6b6e 0%, #4a5a5c 50%, #2e3a3c 100%), radial-gradient(ellipse at 50% 60%, #6a7a7c 0%, transparent 70%);
}
.scn-hester-removes-letter .sky {
  position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #6a7a7c 0%, #4a5a5c 100%); animation: hr2-sky 12s ease-in-out infinite alternate;
}
.scn-hester-removes-letter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #3a4a3c 0%, #1a2a1c 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-hester-removes-letter .trunk {
  position: absolute; bottom: 30%; left: 20%; width: 16px; height: 50%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset -2px 0 4px rgba(0,0,0,0.4); animation: hr2-trunk 20s ease-in-out infinite;
}
.scn-hester-removes-letter .hester-remove {
  position: absolute; bottom: 15%; left: 50%; width: 28px; height: 72px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2e30 0%, #1a1e20 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hr2-hester 8s ease-in-out infinite;
}
.scn-hester-removes-letter .letter-glint {
  position: absolute; bottom: 35%; left: 58%; width: 8px; height: 8px; background: radial-gradient(circle, #f0e0b0 0%, #c0a070 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 18px 6px rgba(240,224,176,0.6), 0 0 36px 12px rgba(240,224,176,0.3); animation: hr2-glint 4s ease-in-out infinite alternate;
}
.scn-hester-removes-letter .leaves-1 {
  position: absolute; bottom: 45%; left: 35%; width: 20px; height: 8px; background: #5a4a3a; border-radius: 50%; filter: blur(2px); animation: hr2-leaf 30s linear infinite;
}
.scn-hester-removes-letter .leaves-2 {
  position: absolute; bottom: 50%; right: 30%; width: 16px; height: 6px; background: #5a4a3a; border-radius: 50%; filter: blur(2px); animation: hr2-leaf 40s linear infinite reverse;
}
.scn-hester-removes-letter .brook {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #3a5a5c 0%, #2a4a4c 100%); border-radius: 0 0 50% 50% / 0 0 10% 10%; animation: hr2-brook 15s ease-in-out infinite alternate;
}
@keyframes hr2-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes hr2-trunk { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } }
@keyframes hr2-hester { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes hr2-glint { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 1; transform: scale(1.5) } 100% { opacity: 0.7; transform: scale(1.2) } }
@keyframes hr2-leaf { 0% { transform: translateX(-20px) rotate(0deg); opacity: 0.3 } 50% { transform: translateX(100vw) rotate(180deg); opacity: 0.8 } 100% { transform: translateX(200%) rotate(360deg); opacity: 0 } }
@keyframes hr2-brook { 0% { opacity: 0.6; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(1.1) } 100% { opacity: 0.7; transform: scaleY(1) } }

/* ==================== pearl-hypocrisy (sunlit tense) ==================== */
.scn-pearl-hypocrisy {
  background:
    linear-gradient(180deg, #4a90d9 0%, #87ceeb 30%, #f0e68c 60%, #deb887 100%),
    radial-gradient(ellipse at 30% 70%, rgba(255,255,200,0.3) 0%, transparent 60%);
}
.scn-pearl-hypocrisy .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6bb3e0 0%, #c9e5f0 80%, transparent 100%);
  animation: phy-sky 20s ease-in-out infinite alternate;
}
.scn-pearl-hypocrisy .trees-bg {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a6b3a 0%, #2a5a2a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  animation: phy-treesbg 18s ease-in-out infinite alternate;
}
.scn-pearl-hypocrisy .trees-fg {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a7a4a 0%, #2a4a2a 100%);
  clip-path: polygon(0% 20%, 10% 0%, 20% 30%, 30% 5%, 40% 25%, 50% 0%, 60% 20%, 70% 10%, 80% 30%, 90% 5%, 100% 20%, 100% 100%, 0% 100%);
  animation: phy-treesfg 12s ease-in-out infinite alternate;
}
.scn-pearl-hypocrisy .brook {
  position: absolute; bottom: 28%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(90deg, #66b2ff, #99ccff, #66b2ff);
  border-radius: 0 0 50% 50%;
  animation: phy-brook 4s ease-in-out infinite alternate;
}
.scn-pearl-hypocrisy .minister {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phy-minister 6s ease-in-out infinite;
}
.scn-pearl-hypocrisy .pearl {
  position: absolute; bottom: 32%; right: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c0a070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phy-pearl 5s ease-in-out infinite;
}
.scn-pearl-hypocrisy .light-rays {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: phy-rays 8s ease-in-out infinite alternate;
}
.scn-pearl-hypocrisy .stones {
  position: absolute; bottom: 28%; left: 25%; width: 12px; height: 6px;
  background: #8b7355;
  border-radius: 50%;
  box-shadow: 20px -2px 0 #6b5335, 40px 0px 0 #7b6345;
  animation: phy-stones 3s ease-in-out infinite alternate;
}
@keyframes phy-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes phy-treesbg { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes phy-treesfg { 0% { transform: translateX(0); } 50% { transform: translateX(-5px) scale(1.01); } 100% { transform: translateX(0); } }
@keyframes phy-brook { 0% { transform: scaleX(1); opacity: 0.9; } 50% { transform: scaleX(1.05); opacity: 1; } 100% { transform: scaleX(1); opacity: 0.9; } }
@keyframes phy-minister { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-2px,-3px) rotate(-2deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(2px,-1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes phy-pearl { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(8px,-2px) rotate(10deg); } 60% { transform: translate(4px,0) rotate(-5deg); } 100% { transform: translate(12px,-4px) rotate(15deg); } }
@keyframes phy-rays { 0% { opacity: 0.5; transform: scale(0.95); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes phy-stones { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* ==================== interview-concludes (overcast dark) ==================== */
.scn-interview-concludes {
  background:
    linear-gradient(180deg, #2f3e4a 0%, #4a5a6a 40%, #5a6a7a 100%),
    radial-gradient(ellipse at 50% 30%, #3a4a5a 0%, transparent 70%);
}
.scn-interview-concludes .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 100%);
  animation: ico-sky 30s ease-in-out infinite alternate;
}
.scn-interview-concludes .trees-back {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: ico-treesback 20s ease-in-out infinite alternate;
}
.scn-interview-concludes .trees-front {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  clip-path: polygon(5% 10%, 15% 0%, 25% 15%, 35% 5%, 45% 20%, 55% 0%, 65% 15%, 75% 5%, 85% 20%, 95% 0%, 100% 10%, 100% 100%, 0% 100%);
  animation: ico-treesfront 15s ease-in-out infinite alternate;
}
.scn-interview-concludes .brook {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 6%;
  background: linear-gradient(90deg, #2a3a4a, #3a4a5a, #2a3a4a);
  border-radius: 0 0 30% 30%;
  animation: ico-brook 6s ease-in-out infinite alternate;
}
.scn-interview-concludes .hester {
  position: absolute; bottom: 28%; left: 30%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ico-hester 10s ease-in-out infinite;
}
.scn-interview-concludes .dimmesdale {
  position: absolute; bottom: 28%; right: 35%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ico-dimmesdale 12s ease-in-out infinite;
}
.scn-interview-concludes .mist {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,130,150,0.5) 0%, transparent 80%);
  filter: blur(15px);
  animation: ico-mist 8s ease-in-out infinite alternate;
}
.scn-interview-concludes .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  animation: ico-ground 4s ease-in-out infinite alternate;
}
@keyframes ico-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes ico-treesback { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ico-treesfront { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-3px) scale(1.01); } 100% { transform: translateX(0) scale(1); } }
@keyframes ico-brook { 0% { transform: scaleX(1); opacity: 0.7; } 50% { transform: scaleX(1.03); opacity: 0.9; } 100% { transform: scaleX(1); opacity: 0.7; } }
@keyframes ico-hester { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(-1px,-2px) rotate(-1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(1px,-1px) rotate(1deg); } 100% { transform: translate(-2px,-2px) rotate(-1deg); } }
@keyframes ico-dimmesdale { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(1deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-1px,-2px) rotate(-1deg); } 100% { transform: translate(2px,-3px) rotate(2deg); } }
@keyframes ico-mist { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes ico-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

/* ==================== dimmesdale-plans (overcast tense) ==================== */
.scn-dimmesdale-plans {
  background:
    linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 50%, #7a8a9a 100%),
    radial-gradient(ellipse at 40% 60%, rgba(120,140,160,0.3) 0%, transparent 70%);
}
.scn-dimmesdale-plans .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 80%, transparent 100%);
  animation: dpl-sky 25s ease-in-out infinite alternate;
}
.scn-dimmesdale-plans .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a4a 0%, #3a4a5a 100%);
  animation: dpl-sea 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-plans .ship {
  position: absolute; bottom: 35%; left: 20%; width: 60px; height: 40px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: dpl-ship 12s ease-in-out infinite;
}
.scn-dimmesdale-plans .hester {
  position: absolute; bottom: 38%; left: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dpl-hester 7s ease-in-out infinite;
}
.scn-dimmesdale-plans .dimmesdale {
  position: absolute; bottom: 38%; left: 38%; width: 16px; height: 45px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dpl-dimmesdale 9s ease-in-out infinite;
}
.scn-dimmesdale-plans .dock {
  position: absolute; bottom: 38%; left: 15%; width: 40%; height: 4%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
  animation: dpl-dock 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-plans .clouds {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 15%;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,190,200,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: dpl-clouds 40s linear infinite alternate;
}
@keyframes dpl-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes dpl-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dpl-ship { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(5px,-2px) rotate(2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes dpl-hester { 0% { transform: translate(0,0); } 33% { transform: translate(-2px,-1px); } 66% { transform: translate(2px,-2px); } 100% { transform: translate(0,0); } }
@keyframes dpl-dimmesdale { 0% { transform: translate(0,0); } 33% { transform: translate(3px,-1px); } 66% { transform: translate(-1px,-2px); } 100% { transform: translate(0,0); } }
@keyframes dpl-dock { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }
@keyframes dpl-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(30px); } }

/* ==================== dimmesdale-return (overcast tense) ==================== */
.scn-dimmesdale-return {
  background:
    linear-gradient(180deg, #2a3a3a 0%, #3a4a4a 40%, #4a5a5a 100%),
    radial-gradient(ellipse at 60% 20%, rgba(80,100,100,0.2) 0%, transparent 60%);
}
.scn-dimmesdale-return .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a4a4a 0%, #5a6a6a 80%, transparent 100%);
  animation: dtr-sky 20s ease-in-out infinite alternate;
}
.scn-dimmesdale-return .trees {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(10% 0%, 20% 10%, 30% 5%, 40% 15%, 50% 0%, 60% 12%, 70% 8%, 80% 18%, 90% 5%, 100% 15%, 100% 100%, 0% 100%);
  animation: dtr-trees 14s ease-in-out infinite alternate;
}
.scn-dimmesdale-return .path {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 0 0 30% 30%;
  animation: dtr-path 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-return .dimmesdale {
  position: absolute; bottom: 26%; left: 45%; width: 18px; height: 55px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtr-dimmesdale 4s ease-in-out infinite;
}
.scn-dimmesdale-return .log {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 50% 50%;
  transform: rotate(-5deg);
  animation: dtr-log 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-return .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  animation: dtr-ground 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-return .shadow {
  position: absolute; bottom: 24%; left: 42%; width: 20px; height: 4px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  animation: dtr-shadow 4s ease-in-out infinite alternate;
}
@keyframes dtr-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes dtr-trees { 0% { transform: translateX(0); } 50% { transform: translateX(-4px) scale(1.01); } 100% { transform: translateX(0); } }
@keyframes dtr-path { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.02) rotate(2deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes dtr-dimmesdale { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 25% { transform: translate(4px,-8px) rotate(5deg) scale(1.05); } 50% { transform: translate(0,0) rotate(0deg) scale(1); } 75% { transform: translate(-2px,-4px) rotate(-3deg) scale(1.02); } 100% { transform: translate(3px,-6px) rotate(4deg) scale(1.03); } }
@keyframes dtr-log { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes dtr-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes dtr-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.2); opacity: 0.6; } 100% { transform: scaleX(1); opacity: 0.4; } }

/* dimmesdale-home */
.scn-dimmesdale-home {
  background: 
    linear-gradient(180deg, #0d111a 0%, #1c1b2e 40%, #2a1e1a 70%, #1a0f0a 100%),
    radial-gradient(ellipse at 30% 40%, #2a2a4a 0%, transparent 60%);
}
.scn-dimmesdale-home .wall-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1e1a2a 0%, #14101a 100%);
  animation: dh-wall 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-home .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1e18 0%, #0d0806 100%);
  border-top: 1px solid #3a2a1a;
  animation: dh-floor 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-home .window {
  position: absolute; top: 12%; left: 20%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #1a2a3a 50%, #0a1a2a 100%);
  border: 4px solid #2a3a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(10,20,30,0.8);
  animation: dh-window 9s ease-in-out infinite;
}
.scn-dimmesdale-home .desk {
  position: absolute; bottom: 22%; left: 35%; width: 90px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-dimmesdale-home .candle {
  position: absolute; bottom: 38%; left: 40%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c0a060 30%, #403020 100%);
  border-radius: 2px;
}
.scn-dimmesdale-home .candle::after {
  content: ''; position: absolute; top: -8px; left: -2px; width: 12px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #e8b050 60%, transparent 80%);
  border-radius: 50%;
  animation: dh-flame 1.5s ease-in-out infinite alternate;
}
.scn-dimmesdale-home .chair {
  position: absolute; bottom: 20%; left: 42%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a12 0%, #0f0a06 100%);
  border-radius: 10% 10% 40% 40% / 30% 30% 60% 60%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.8);
}
.scn-dimmesdale-home .figure {
  position: absolute; bottom: 18%; left: 43%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dh-figure 6s ease-in-out infinite;
}
.scn-dimmesdale-home .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: dh-shadow 6s ease-in-out infinite;
}
@keyframes dh-wall { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:0.8 } }
@keyframes dh-floor { 0% { opacity:0.7 } 50% { opacity:0.5 } 100% { opacity:0.6 } }
@keyframes dh-window { 0% { background: #1a2a3a; } 50% { background: #1e3044; } 100% { background: #152635; } }
@keyframes dh-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.9 } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.8 } }
@keyframes dh-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-2deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
  75% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dh-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(0.95); } 100% { transform: translateX(3px) scale(1.05); } }

/* chillingworth-greets */
.scn-chillingworth-greets {
  background: 
    linear-gradient(180deg, #0f1218 0%, #1c1a2e 40%, #2a1e1a 70%, #140e0a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a44 0%, transparent 60%);
}
.scn-chillingworth-greets .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #12101a 100%);
  animation: cg-wall 14s ease-in-out infinite alternate;
}
.scn-chillingworth-greets .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1e1a 0%, #0a0705 100%);
  animation: cg-floor 10s ease-in-out infinite alternate;
}
.scn-chillingworth-greets .table {
  position: absolute; bottom: 18%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-chillingworth-greets .lamp {
  position: absolute; bottom: 34%; left: 38%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #b08840 20%, #403020 80%);
  border-radius: 2px;
}
.scn-chillingworth-greets .lamp::after {
  content: ''; position: absolute; top: -12px; left: -4px; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd070 0%, #e8b050 50%, transparent 80%);
  border-radius: 50%;
  animation: cg-lampglow 2s ease-in-out infinite alternate;
}
.scn-chillingworth-greets .figure-left {
  position: absolute; bottom: 12%; left: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cg-figure-l 7s ease-in-out infinite;
}
.scn-chillingworth-greets .figure-right {
  position: absolute; bottom: 14%; right: 15%; width: 28px; height: 76px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cg-figure-r 6s ease-in-out infinite;
}
.scn-chillingworth-greets .shadow-left {
  position: absolute; bottom: 8%; left: 12%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(10px);
  animation: cg-shadow-l 7s ease-in-out infinite;
}
.scn-chillingworth-greets .shadow-right {
  position: absolute; bottom: 8%; right: 8%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: cg-shadow-r 6s ease-in-out infinite;
}
@keyframes cg-wall { 0% { opacity:0.9 } 50% { opacity:0.65 } 100% { opacity:0.8 } }
@keyframes cg-floor { 0% { opacity:0.7 } 50% { opacity:0.5 } 100% { opacity:0.6 } }
@keyframes cg-lampglow { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes cg-figure-l {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-3px) rotate(-1deg); }
  60% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cg-figure-r {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cg-shadow-l { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-8px) scale(0.9); } 100% { transform: translateX(4px) scale(1.05); } }
@keyframes cg-shadow-r { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(6px) scale(0.95); } 100% { transform: translateX(-4px) scale(1.02); } }

/* chillingworth-probes2 */
.scn-chillingworth-probes2 {
  background: 
    linear-gradient(180deg, #0e1117 0%, #1a1a2a 40%, #2a1e1a 70%, #120a06 100%),
    radial-gradient(ellipse at 40% 60%, #2a2a44 0%, transparent 50%);
}
.scn-chillingworth-probes2 .wall-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #101016 100%);
  animation: cp-wall 16s ease-in-out infinite alternate;
}
.scn-chillingworth-probes2 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1e18 0%, #0a0705 100%);
  animation: cp-floor 12s ease-in-out infinite alternate;
}
.scn-chillingworth-probes2 .table {
  position: absolute; bottom: 14%; left: 20%; width: 140px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-chillingworth-probes2 .candle {
  position: absolute; bottom: 26%; left: 25%; width: 8px; height: 35px;
  background: linear-gradient(180deg, #c09850 30%, #3a2818 100%);
  border-radius: 2px;
}
.scn-chillingworth-probes2 .candle::after {
  content: ''; position: absolute; top: -10px; left: -3px; width: 14px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #d09040 50%, transparent 80%);
  border-radius: 50%;
  animation: cp-flame 1.8s ease-in-out infinite alternate;
}
.scn-chillingworth-probes2 .book {
  position: absolute; bottom: 18%; left: 40%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: cp-book 9s ease-in-out infinite;
}
.scn-chillingworth-probes2 .figure-lean {
  position: absolute; bottom: 7%; left: 12%; width: 32px; height: 90px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: rotate(10deg);
  animation: cp-figure 8s ease-in-out infinite;
}
.scn-chillingworth-probes2 .hand {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: cp-hand 4s ease-in-out infinite alternate;
}
.scn-chillingworth-probes2 .shadow {
  position: absolute; bottom: 4%; left: 5%; width: 120px; height: 120px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 70%);
  filter: blur(15px);
  animation: cp-shadow 8s ease-in-out infinite;
}
@keyframes cp-wall { 0% { opacity:0.9 } 50% { opacity:0.6 } 100% { opacity:0.8 } }
@keyframes cp-floor { 0% { opacity:0.7 } 50% { opacity:0.45 } 100% { opacity:0.6 } }
@keyframes cp-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.7 } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1 } 100% { transform: scaleY(0.85) translateY(1px); opacity:0.6 } }
@keyframes cp-book { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-8deg); } }
@keyframes cp-figure {
  0% { transform: rotate(10deg) translateX(0); }
  25% { transform: rotate(12deg) translateX(2px); }
  50% { transform: rotate(8deg) translateX(-1px); }
  75% { transform: rotate(11deg) translateX(1px); }
  100% { transform: rotate(10deg) translateX(0); }
}
@keyframes cp-hand { 0% { transform: rotate(15deg) scaleX(1); } 50% { transform: rotate(20deg) scaleX(0.95); } 100% { transform: rotate(10deg) scaleX(1.05); } }
@keyframes cp-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-10px) scale(0.85); } 100% { transform: translateX(5px) scale(1.1); } }

/* chillingworth-smiles2 */
.scn-chillingworth-smiles2 {
  background: 
    linear-gradient(180deg, #101318 0%, #1e1a2a 40%, #2a1e1a 70%, #140e0a 100%),
    radial-gradient(ellipse at 50% 40%, #2a2a48 0%, transparent 60%);
}
.scn-chillingworth-smiles2 .wall-bg {
  position: absolute; inset: 0 0 18% 0;
  background: linear-gradient(180deg, #1c1a2a 0%, #12101a 100%);
  animation: cs-wall 15s ease-in-out infinite alternate;
}
.scn-chillingworth-smiles2 .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a1e18 0%, #080503 100%);
  animation: cs-floor 11s ease-in-out infinite alternate;
}
.scn-chillingworth-smiles2 .lamp {
  position: absolute; bottom: 32%; left: 45%; width: 10px; height: 36px;
  background: linear-gradient(180deg, #b08840 20%, #403020 80%);
  border-radius: 2px;
}
.scn-chillingworth-smiles2 .lamp::after {
  content: ''; position: absolute; top: -10px; left: -5px; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd070 0%, #d09040 40%, transparent 80%);
  border-radius: 50%;
  animation: cs-lampglow 2.5s ease-in-out infinite alternate;
}
.scn-chillingworth-smiles2 .figure-left {
  position: absolute; bottom: 10%; left: 18%; width: 30px; height: 84px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-figure-l 7s ease-in-out infinite;
}
.scn-chillingworth-smiles2 .figure-right {
  position: absolute; bottom: 12%; right: 20%; width: 28px; height: 78px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-figure-r 6.5s ease-in-out infinite;
}
.scn-chillingworth-smiles2 .handshake {
  position: absolute; bottom: 20%; left: 33%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0a08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(30deg);
  animation: cs-handshake 3s ease-in-out infinite alternate;
}
.scn-chillingworth-smiles2 .shadow-left {
  position: absolute; bottom: 6%; left: 10%; width: 80px; height: 110px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(10px);
  animation: cs-shadow-l 7s ease-in-out infinite;
}
.scn-chillingworth-smiles2 .shadow-right {
  position: absolute; bottom: 6%; right: 12%; width: 80px; height: 110px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(10px);
  animation: cs-shadow-r 6.5s ease-in-out infinite;
}
@keyframes cs-wall { 0% { opacity:0.9 } 50% { opacity:0.6 } 100% { opacity:0.8 } }
@keyframes cs-floor { 0% { opacity:0.7 } 50% { opacity:0.45 } 100% { opacity:0.6 } }
@keyframes cs-lampglow { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.15); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes cs-figure-l {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
  75% { transform: translateX(1px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cs-figure-r {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-4px) rotate(2deg); }
  60% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cs-handshake { 0% { transform: rotate(30deg) scaleX(1); } 50% { transform: rotate(35deg) scaleX(1.05); } 100% { transform: rotate(25deg) scaleX(0.95); } }
@keyframes cs-shadow-l { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-6px) scale(0.9); } 100% { transform: translateX(4px) scale(1.05); } }
@keyframes cs-shadow-r { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(8px) scale(0.95); } 100% { transform: translateX(-4px) scale(1.02); } }

.scn-dimmesdale-fear {
  background: linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 20%, #2a2a5e 0%, transparent 70%);
}
.scn-dimmesdale-fear .sky-stars {
  position: absolute; inset: 0 0 35% 0;
  background: radial-gradient(circle at 20% 10%, #ffffff10 1px, transparent 1px) 0 0 / 40px 40px,
              radial-gradient(circle at 80% 25%, #ffffff08 1px, transparent 1px) 0 0 / 60px 60px;
  animation: df-stars 20s linear infinite;
}
.scn-dimmesdale-fear .moon {
  position: absolute; top: 8%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #dfe6f0 0%, #b0c4de 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(176,196,222,0.3);
  animation: df-moon 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-fear .platform {
  position: absolute; bottom: 15%; left: 50%; width: 200px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: df-platform 8s ease-in-out infinite;
}
.scn-dimmesdale-fear .figure-minister {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2e2e3a 0%, #1a1a24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-minister 4s ease-in-out infinite;
}
.scn-dimmesdale-fear .figure-child {
  position: absolute; bottom: 22%; left: 55%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #2e2e3a 0%, #1a1a24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: df-child 6s ease-in-out infinite;
}
.scn-dimmesdale-fear .star-twinkle {
  position: absolute; top: 5%; left: 30%; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff 0%, rgba(255,255,255,0.3) 50%, transparent 70%);
  border-radius: 50%;
  animation: df-twinkle 2.5s ease-in-out infinite;
}
.scn-dimmesdale-fear .figure-arm {
  position: absolute; bottom: 38%; left: 55%; width: 12px; height: 20px;
  background: #1a1a24;
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  transform-origin: bottom left;
  animation: df-arm 5s ease-in-out infinite;
}
@keyframes df-stars {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes df-moon {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.02); }
  100% { transform: translateY(2px) scale(0.98); }
}
@keyframes df-platform {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes df-minister {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(0) translateY(-3px) rotate(-0.5deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes df-child {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(3px) translateY(-4px) rotate(5deg); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes df-twinkle {
  0% { opacity: 0; transform: scale(0.5); }
  20% { opacity: 1; transform: scale(1.5); }
  40% { opacity: 0; transform: scale(0.5); }
  60% { opacity: 0.8; transform: scale(1.2); }
  80% { opacity: 0; transform: scale(0.8); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes df-arm {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(-20deg); }
  100% { transform: rotate(10deg); }
}

.scn-pearl-mocks {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142e 50%, #1c1c3a 100%), radial-gradient(ellipse at 60% 10%, #2a2a5e 0%, transparent 70%);
}
.scn-pearl-mocks .sky-stars {
  position: absolute; inset: 0 0 35% 0;
  background: radial-gradient(circle at 30% 15%, #ffffff12 1px, transparent 1px) 0 0 / 50px 50px,
              radial-gradient(circle at 70% 30%, #ffffff08 1px, transparent 1px) 0 0 / 30px 30px;
  animation: pm-stars 25s linear infinite;
}
.scn-pearl-mocks .moon {
  position: absolute; top: 6%; left: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, #d0d8e8 0%, #a0b8d0 60%, transparent 75%);
  border-radius: 50%; box-shadow: 0 0 30px 15px rgba(160,184,208,0.3);
  animation: pm-moon 14s ease-in-out infinite alternate;
}
.scn-pearl-mocks .platform {
  position: absolute; bottom: 12%; left: 50%; width: 220px; height: 25px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%);
  border-radius: 2px 2px 0 0; box-shadow: 0 -2px 8px rgba(0,0,0,0.6);
  animation: pm-platform 10s ease-in-out infinite;
}
.scn-pearl-mocks .figure-minister {
  position: absolute; bottom: 18%; left: 40%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #2e2e3a 0%, #1a1a24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-minister 5s ease-in-out infinite;
}
.scn-pearl-mocks .figure-child {
  position: absolute; bottom: 18%; left: 52%; width: 15px; height: 36px;
  background: linear-gradient(180deg, #3a3a46 0%, #2a2a34 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-child 4.5s ease-in-out infinite;
}
.scn-pearl-mocks .figure-physician {
  position: absolute; bottom: 18%; right: 30%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #262636 0%, #161626 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-physician 7s ease-in-out infinite;
}
.scn-pearl-mocks .star-fall {
  position: absolute; top: 12%; right: 10%; width: 4px; height: 4px;
  background: #fff; border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,255,255,0.6);
  animation: pm-fall 3s linear infinite;
}
@keyframes pm-stars {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes pm-moon {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-6px) scale(1.03); }
  100% { transform: translateY(3px) scale(0.97); }
}
@keyframes pm-platform {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes pm-minister {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(0) translateY(-4px) rotate(-1deg); }
  75% { transform: translateX(-3px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes pm-child {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  50% { transform: translateX(5px) translateY(-5px) rotate(8deg); }
  100% { transform: translateX(0) translateY(0) rotate(-5deg); }
}
@keyframes pm-physician {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-4px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes pm-fall {
  0% { transform: translate(0, 0) scale(1); opacity: 1; }
  50% { transform: translate(-10px, 20px) scale(0.8); opacity: 0.6; }
  100% { transform: translate(-20px, 40px) scale(0.2); opacity: 0; }
}

.scn-chillingworth-leads {
  background: linear-gradient(180deg, #08081a 0%, #12122a 50%, #181832 100%), radial-gradient(ellipse at 30% 10%, #20204a 0%, transparent 70%);
}
.scn-chillingworth-leads .sky-stars {
  position: absolute; inset: 0 0 40% 0;
  background: radial-gradient(circle at 50% 20%, #ffffff10 1px, transparent 1px) 0 0 / 40px 40px,
              radial-gradient(circle at 20% 40%, #ffffff08 1px, transparent 1px) 0 0 / 60px 60px;
  animation: cl-stars 30s linear infinite;
}
.scn-chillingworth-leads .moon {
  position: absolute; top: 5%; left: 70%; width: 42px; height: 42px;
  background: radial-gradient(circle, #c8d4e8 0%, #a0b4d0 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 35px 15px rgba(160,180,208,0.25);
  animation: cl-moon 16s ease-in-out infinite alternate;
}
.scn-chillingworth-leads .path {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 20px;
  background: linear-gradient(90deg, #1c1c2c 0%, #2a2a3a 50%, #1c1c2c 100%);
  border-radius: 50%; transform: perspective(200px) rotateX(20deg);
  animation: cl-path 12s ease-in-out infinite;
}
.scn-chillingworth-leads .figure-minister {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #2e2e3a 0%, #1a1a24 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-minister 6s ease-in-out infinite;
}
.scn-chillingworth-leads .figure-physician {
  position: absolute; bottom: 18%; left: 48%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #262636 0%, #161626 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-physician 8s ease-in-out infinite;
}
.scn-chillingworth-leads .lantern-glow {
  position: absolute; bottom: 30%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(224,160,64,0.4);
  animation: cl-lantern 3s ease-in-out infinite alternate;
}
.scn-chillingworth-leads .star-drifting {
  position: absolute; top: 15%; right: 20%; width: 3px; height: 3px;
  background: #fff; border-radius: 50%;
  animation: cl-drift 45s linear infinite;
}
.scn-chillingworth-leads .tree-silhouette {
  position: absolute; bottom: 0; left: 5%; width: 80px; height: 150px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 60% 40% 20% 20% / 80% 60% 40% 40%;
  filter: blur(2px);
  animation: cl-tree 20s ease-in-out infinite;
}
@keyframes cl-stars {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes cl-moon {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.01); }
  100% { transform: translateY(2px) scale(0.99); }
}
@keyframes cl-path {
  0% { transform: perspective(200px) rotateX(20deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(20deg) translateY(-3px); }
  100% { transform: perspective(200px) rotateX(20deg) translateY(0); }
}
@keyframes cl-minister {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); }
  60% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes cl-physician {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(3px) translateY(-3px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes cl-lantern {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes cl-drift {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-30px) translateY(20px); }
  100% { transform: translateX(-60px) translateY(40px); }
}
@keyframes cl-tree {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(2deg); }
  100% { transform: scale(1) rotate(0deg); }
}

.scn-sabbath-sermon {
  background: linear-gradient(180deg, #f2e8d0 0%, #d8c4a0 50%, #b8a080 100%), radial-gradient(ellipse at 70% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-sabbath-sermon .light-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, rgba(255,240,200,0.1) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ss-beam 10s ease-in-out infinite alternate;
}
.scn-sabbath-sermon .pulpit {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: ss-pulpit 8s ease-in-out infinite;
}
.scn-sabbath-sermon .figure-minister {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ss-minister 6s ease-in-out infinite;
}
.scn-sabbath-sermon .figure-sexton {
  position: absolute; bottom: 10%; left: 30%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-sexton 9s ease-in-out infinite;
}
.scn-sabbath-sermon .glove {
  position: absolute; bottom: 30%; left: 32%; width: 8px; height: 12px;
  background: #1a1a1a;
  border-radius: 30% 30% 40% 40% / 40% 40% 50% 50%;
  transform: rotate(10deg);
  animation: ss-glove 4s ease-in-out infinite;
}
.scn-sabbath-sermon .shadow-column {
  position: absolute; bottom: 0; left: 0; width: 15%; height: 70%;
  background: linear-gradient(90deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: ss-shadow 12s ease-in-out infinite alternate;
}
.scn-sabbath-sermon .pew {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 15px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 4px;
  animation: ss-pew 15s ease-in-out infinite;
}
@keyframes ss-beam {
  0% { opacity: 0.6; transform: skewX(-2deg); }
  50% { opacity: 0.9; transform: skewX(2deg); }
  100% { opacity: 0.5; transform: skewX(-1deg); }
}
@keyframes ss-pulpit {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes ss-minister {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  60% { transform: translateX(-50%) translateY(-5px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ss-sexton {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(5px) translateY(-3px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes ss-glove {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(15deg) scale(1.1); }
  100% { transform: rotate(10deg) scale(1); }
}
@keyframes ss-shadow {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes ss-pew {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}

/* ===== secret-penance ===== */
.scn-secret-penance {
    background:
        linear-gradient(180deg, #0c0a14 0%, #1a1426 40%, #2c1f3a 80%, #0c0a14 100%),
        radial-gradient(ellipse at 50% 30%, #2a1f38 0%, transparent 60%);
    overflow: hidden;
}
.scn-secret-penance .sp-floor {
    position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
    background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%);
    border-radius: 50% 50% 0 0 / 30% 30% 0 0;
    box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
    animation: sp-floor 12s ease-in-out infinite alternate;
}
.scn-secret-penance .sp-wall-back {
    position: absolute; inset: 0 0 30% 0;
    background: linear-gradient(180deg, #1a1426 0%, #0c0a14 100%);
    box-shadow: inset 0 0 60px rgba(0,0,0,0.9);
}
.scn-secret-penance .sp-mirror {
    position: absolute; top: 20%; left: 50%; width: 60px; height: 80px;
    transform: translateX(-50%);
    background: radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, #1a1a2a 60%, transparent 100%);
    border: 3px solid #3a2a2a;
    border-radius: 4% 4% 2% 2%;
    box-shadow: 0 0 20px rgba(0,0,0,0.8), inset 0 0 30px rgba(255,255,255,0.05);
    animation: sp-mirror-pulse 8s ease-in-out infinite alternate;
}
.scn-secret-penance .sp-figure {
    position: absolute; bottom: 22%; left: 40%; width: 22px; height: 50px;
    background: linear-gradient(180deg, #1a121a 0%, #0a0a0a 100%);
    border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
    transform-origin: bottom center;
    animation: sp-figure-pray 4s ease-in-out infinite;
}
.scn-secret-penance .sp-scourge {
    position: absolute; bottom: 40%; left: 42%; width: 4px; height: 30px;
    background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%);
    border-radius: 20%;
    transform-origin: top center;
    animation: sp-scourge-whip 1.2s ease-in-out infinite;
    box-shadow: 0 0 4px rgba(90,30,30,0.4);
}
.scn-secret-penance .sp-candle {
    position: absolute; bottom: 30%; left: 54%; width: 8px; height: 25px;
    background: linear-gradient(180deg, #f0d090 0%, #a08050 100%);
    border-radius: 50% 50% 20% 20%;
    box-shadow: 0 0 30px 10px rgba(240,208,144,0.3), 0 0 60px 20px rgba(240,208,144,0.1);
    animation: sp-candle-flicker 0.4s ease-in-out infinite alternate;
}
.scn-secret-penance .sp-reflection {
    position: absolute; top: 20%; left: 50%; width: 56px; height: 76px;
    transform: translateX(-50%) scaleX(-1) translateX(-2px);
    background: linear-gradient(180deg, #1a1a2a 0%, #0c0a14 100%);
    border-radius: 4% 4% 2% 2%;
    opacity: 0.15;
    animation: sp-reflection-shimmer 6s ease-in-out infinite alternate;
}
@keyframes sp-floor {
    0% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
    100% { transform: translateY(0); }
}
@keyframes sp-mirror-pulse {
    0% { box-shadow: 0 0 20px rgba(0,0,0,0.8), inset 0 0 30px rgba(255,255,255,0.02); }
    50% { box-shadow: 0 0 40px rgba(0,0,0,0.9), inset 0 0 50px rgba(255,255,255,0.06); }
    100% { box-shadow: 0 0 20px rgba(0,0,0,0.8), inset 0 0 30px rgba(255,255,255,0.02); }
}
@keyframes sp-figure-pray {
    0% { transform: translateX(0) rotate(0deg); }
    25% { transform: translateX(2px) rotate(-3deg); }
    50% { transform: translateX(0) rotate(0deg); }
    75% { transform: translateX(-2px) rotate(3deg); }
    100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sp-scourge-whip {
    0% { transform: rotate(0deg) scaleY(1); }
    30% { transform: rotate(20deg) scaleY(1.2); }
    50% { transform: rotate(-15deg) scaleY(0.8); }
    70% { transform: rotate(25deg) scaleY(1.1); }
    100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes sp-candle-flicker {
    0% { transform: scaleY(1) rotate(0deg); opacity: 0.9; }
    50% { transform: scaleY(1.05) rotate(1deg); opacity: 1; }
    100% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.8; }
}
@keyframes sp-reflection-shimmer {
    0% { opacity: 0.1; }
    50% { opacity: 0.25; }
    100% { opacity: 0.1; }
}

/* ===== visions-of-hester ===== */
.scn-visions-of-hester {
    background:
        linear-gradient(180deg, #0e0c1a 0%, #1a1830 50%, #0e0c1a 100%),
        radial-gradient(ellipse at 40% 50%, #2a2440 0%, transparent 70%);
    overflow: hidden;
}
.scn-visions-of-hester .vh-chamber {
    position: absolute; inset: 0;
    background: radial-gradient(ellipse at 50% 100%, #1a1830 0%, #0e0c1a 100%);
    opacity: 0.8;
}
.scn-visions-of-hester .vh-hester {
    position: absolute; bottom: 25%; left: 35%; width: 30px; height: 60px;
    background: linear-gradient(180deg, #2a2020 0%, #1a1212 100%);
    border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
    transform-origin: bottom center;
    animation: vh-glide 12s ease-in-out infinite;
}
.scn-visions-of-hester .vh-pearl {
    position: absolute; bottom: 20%; left: 42%; width: 18px; height: 35px;
    background: linear-gradient(180deg, #3a2a3a 0%, #1a1a1a 100%);
    border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
    transform-origin: bottom center;
    animation: vh-bob 4s ease-in-out infinite;
}
.scn-visions-of-hester .vh-scarlet-letter {
    position: absolute; bottom: 45%; left: 37%; width: 10px; height: 14px;
    background: linear-gradient(180deg, #a0443a 0%, #7a2e2a 100%);
    border-radius: 10% 10% 5% 5%;
    box-shadow: 0 0 12px 4px rgba(160,68,58,0.5);
    animation: vh-letter-glow 3s ease-in-out infinite alternate;
}
.scn-visions-of-hester .vh-point-hand {
    position: absolute; bottom: 50%; left: 40%; width: 12px; height: 24px;
    background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
    border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
    transform-origin: bottom left;
    animation: vh-point 6s ease-in-out infinite;
}
.scn-visions-of-hester .vh-glow {
    position: absolute; bottom: 35%; left: 36%; width: 40px; height: 60px;
    background: radial-gradient(ellipse, rgba(160,68,58,0.15) 0%, transparent 70%);
    border-radius: 50%;
    filter: blur(10px);
    animation: vh-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-visions-of-hester .vh-shadow {
    position: absolute; bottom: 0; left: 30%; right: 30%; height: 20%;
    background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
    border-radius: 50%;
    filter: blur(8px);
    animation: vh-shadow-sway 12s ease-in-out infinite;
}
@keyframes vh-glide {
    0% { transform: translateX(0) translateY(0); }
    25% { transform: translateX(10px) translateY(-5px); }
    50% { transform: translateX(20px) translateY(0); }
    75% { transform: translateX(10px) translateY(-3px); }
    100% { transform: translateX(0) translateY(0); }
}
@keyframes vh-bob {
    0% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-4px) rotate(3deg); }
    100% { transform: translateY(0) rotate(0deg); }
}
@keyframes vh-letter-glow {
    0% { box-shadow: 0 0 12px 4px rgba(160,68,58,0.3); opacity: 0.8; }
    50% { box-shadow: 0 0 30px 10px rgba(160,68,58,0.7); opacity: 1; }
    100% { box-shadow: 0 0 12px 4px rgba(160,68,58,0.3); opacity: 0.8; }
}
@keyframes vh-point {
    0% { transform: rotate(0deg); }
    30% { transform: rotate(20deg); }
    60% { transform: rotate(-10deg); }
    100% { transform: rotate(0deg); }
}
@keyframes vh-glow-pulse {
    0% { opacity: 0.2; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.2); }
    100% { opacity: 0.2; transform: scale(1); }
}
@keyframes vh-shadow-sway {
    0% { transform: translateX(-5px) scaleX(1); }
    50% { transform: translateX(5px) scaleX(1.05); }
    100% { transform: translateX(-5px) scaleX(1); }
}

/* ===== midnight-walk ===== */
.scn-midnight-walk {
    background:
        linear-gradient(180deg, #0a0e1a 0%, #151b30 50%, #0a0e1a 100%),
        radial-gradient(ellipse at 50% 120%, #1a2640 0%, transparent 60%);
    overflow: hidden;
}
.scn-midnight-walk .mw-sky {
    position: absolute; inset: 0 0 40% 0;
    background: linear-gradient(180deg, #0a0e1a 0%, #151b30 100%);
    animation: mw-sky 20s ease-in-out infinite alternate;
}
.scn-midnight-walk .mw-path {
    position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
    background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%);
    border-radius: 30% 50% 0 0 / 20% 40% 0 0;
    box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-midnight-walk .mw-figure {
    position: absolute; bottom: 30%; left: 45%; width: 20px; height: 55px;
    background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
    border-radius: 40% 40% 30% 30% / 65% 65% 35% 35%;
    transform-origin: bottom center;
    animation: mw-walk 3s ease-in-out infinite;
}
.scn-midnight-walk .mw-shadow {
    position: absolute; bottom: 15%; left: 44%; width: 40px; height: 8px;
    background: rgba(10,10,20,0.7);
    border-radius: 50%;
    filter: blur(3px);
    animation: mw-shadow-stretch 3s ease-in-out infinite;
}
.scn-midnight-walk .mw-house {
    position: absolute; bottom: 35%; right: 15%; width: 50px; height: 35px;
    background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
    border-radius: 8% 8% 4% 4%;
    box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-midnight-walk .mw-lantern {
    position: absolute; bottom: 35%; left: 10%; width: 6px; height: 12px;
    background: radial-gradient(circle, #ffd080 0%, #a07040 100%);
    border-radius: 50% 50% 20% 20%;
    box-shadow: 0 0 20px 8px rgba(255,208,128,0.3), 0 0 40px 16px rgba(255,208,128,0.1);
    animation: mw-lantern-swing 5s ease-in-out infinite;
}
.scn-midnight-walk .mw-cloud {
    position: absolute; top: 15%; left: 20%; width: 100px; height: 20px;
    background: linear-gradient(180deg, rgba(200,200,220,0.3) 0%, transparent 100%);
    border-radius: 50%;
    filter: blur(8px);
    animation: mw-cloud-drift 40s linear infinite;
}
@keyframes mw-sky {
    0% { opacity: 0.7; }
    50% { opacity: 1; }
    100% { opacity: 0.8; }
}
@keyframes mw-walk {
    0% { transform: translateX(0) translateY(0) rotate(-2deg); }
    25% { transform: translateX(5px) translateY(-1px) rotate(1deg); }
    50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
    75% { transform: translateX(15px) translateY(-1px) rotate(2deg); }
    100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}
@keyframes mw-shadow-stretch {
    0% { transform: scaleX(1) translateX(0); }
    25% { transform: scaleX(1.1) translateX(3px); }
    50% { transform: scaleX(1) translateX(5px); }
    75% { transform: scaleX(1.1) translateX(8px); }
    100% { transform: scaleX(1) translateX(10px); }
}
@keyframes mw-lantern-swing {
    0% { transform: rotate(-8deg) translateX(0); }
    25% { transform: rotate(6deg) translateX(2px); }
    50% { transform: rotate(-4deg) translateX(0); }
    75% { transform: rotate(8deg) translateX(-2px); }
    100% { transform: rotate(-8deg) translateX(0); }
}
@keyframes mw-cloud-drift {
    0% { transform: translateX(-30px); }
    100% { transform: translateX(150vw); }
}

/* ===== scaffold-remorse ===== */
.scn-scaffold-remorse {
    background:
        linear-gradient(180deg, #0a0a1a 0%, #101026 50%, #0a0a1a 100%),
        radial-gradient(ellipse at 50% 0%, #1a1a40 0%, transparent 70%);
    overflow: hidden;
}
.scn-scaffold-remorse .sr-scaffold {
    position: absolute; bottom: 20%; left: 30%; right: 30%; height: 50px;
    background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
    border-radius: 5% 5% 0 0;
    box-shadow: 0 8px 25px rgba(0,0,0,0.9);
    animation: sr-scaffold-creak 6s ease-in-out infinite;
}
.scn-scaffold-remorse .sr-figure {
    position: absolute; bottom: 48%; left: 47%; width: 18px; height: 50px;
    background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
    border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
    transform-origin: bottom center;
    animation: sr-figure-tremble 0.8s ease-in-out infinite;
}
.scn-scaffold-remorse .sr-sky {
    position: absolute; inset: 0 0 40% 0;
    background: linear-gradient(180deg, #0a0a1a 0%, #101026 100%);
    opacity: 0.9;
}
.scn-scaffold-remorse .sr-moon {
    position: absolute; top: 10%; right: 20%; width: 30px; height: 30px;
    background: radial-gradient(circle, #d0d0e0 0%, #a0a0c0 100%);
    border-radius: 50%;
    box-shadow: 0 0 40px 10px rgba(160,160,200,0.3), 0 0 80px 20px rgba(160,160,200,0.1);
    animation: sr-moon-glow 8s ease-in-out infinite alternate;
}
.scn-scaffold-remorse .sr-mist {
    position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
    background: linear-gradient(0deg, rgba(20,20,40,0.6) 0%, transparent 100%);
    filter: blur(10px);
    animation: sr-mist-roll 15s ease-in-out infinite alternate;
}
.scn-scaffold-remorse .sr-aureole {
    position: absolute; top: 30%; left: 42%; width: 40px; height: 40px;
    background: radial-gradient(circle, rgba(200,200,220,0.08) 0%, transparent 70%);
    border-radius: 50%;
    filter: blur(15px);
    animation: sr-aureole-breathe 4s ease-in-out infinite alternate;
}
@keyframes sr-scaffold-creak {
    0% { transform: translateY(0) rotate(0deg); }
    25% { transform: translateY(-1px) rotate(0.5deg); }
    50% { transform: translateY(0) rotate(0deg); }
    75% { transform: translateY(-1px) rotate(-0.5deg); }
    100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sr-figure-tremble {
    0% { transform: translateX(0) rotate(0deg); }
    30% { transform: translateX(1px) rotate(-1deg); }
    60% { transform: translateX(-1px) rotate(1deg); }
    100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sr-moon-glow {
    0% { box-shadow: 0 0 40px 10px rgba(160,160,200,0.2); opacity: 0.8; }
    50% { box-shadow: 0 0 60px 20px rgba(160,160,200,0.4); opacity: 1; }
    100% { box-shadow: 0 0 40px 10px rgba(160,160,200,0.2); opacity: 0.8; }
}
@keyframes sr-mist-roll {
    0% { opacity: 0.2; transform: translateY(0); }
    50% { opacity: 0.5; transform: translateY(-10px); }
    100% { opacity: 0.2; transform: translateY(0); }
}
@keyframes sr-aureole-breathe {
    0% { opacity: 0.1; transform: scale(1); }
    50% { opacity: 0.3; transform: scale(1.3); }
    100% { opacity: 0.1; transform: scale(1); }
}

.scn-forest-path {
  background:
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 30% 60%, #4a6a6a 0%, transparent 70%);
}
.scn-forest-path .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  animation: fp-sky 12s ease-in-out infinite alternate;
}
.scn-forest-path .sunbeam-flicker {
  position: absolute; top: 15%; left: 20%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(220,210,180,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: fp-sunbeam 8s ease-in-out infinite alternate;
}
.scn-forest-path .tree-left {
  position: absolute; left: 5%; top: 0; bottom: 20%; width: 15%;
  background: linear-gradient(135deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: fp-tree 20s ease-in-out infinite;
}
.scn-forest-path .tree-right {
  position: absolute; right: 5%; top: 0; bottom: 20%; width: 18%;
  background: linear-gradient(225deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 80% 20% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: fp-tree 25s ease-in-out infinite reverse;
}
.scn-forest-path .path-forest {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 70% 100%, 30% 100%);
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.4);
  animation: fp-path 15s ease-in-out infinite alternate;
}
.scn-forest-path .figures-distant {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: fp-figures 6s ease-in-out infinite alternate;
}
.scn-forest-path .underbrush {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 60% 0 0;
  animation: fp-underbrush 18s ease-in-out infinite alternate;
}
@keyframes fp-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes fp-sunbeam { 0% { opacity: 0; transform: translateX(0) scaleX(1); } 50% { opacity: 0.5; transform: translateX(30px) scaleX(0.8); } 100% { opacity: 0.2; transform: translateX(60px) scaleX(1.2); } }
@keyframes fp-tree { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(3px) scaleY(0.98); } }
@keyframes fp-path { 0% { transform: perspective(300px) rotateX(0deg); } 50% { transform: perspective(300px) rotateX(2deg); } 100% { transform: perspective(300px) rotateX(-1deg); } }
@keyframes fp-figures { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-2px); } 50% { transform: translateX(10px) translateY(0); } 75% { transform: translateX(15px) translateY(-1px); } 100% { transform: translateX(20px) translateY(0); } }
@keyframes fp-underbrush { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }

.scn-pearl-catches-sunshine {
  background:
    linear-gradient(180deg, #a0c8e0 0%, #d0e8f0 40%, #f0f8d0 100%),
    radial-gradient(ellipse at 40% 20%, #ffe080 0%, transparent 60%);
}
.scn-pearl-catches-sunshine .sky-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c0e0f0 0%, #e0f4f8 100%);
  animation: pcs-sky 10s ease-in-out infinite alternate;
}
.scn-pearl-catches-sunshine .sun-core {
  position: absolute; top: 8%; left: 35%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fffbe0 0%, #ffe060 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,224,96,0.6);
  animation: pcs-sun 8s ease-in-out infinite alternate;
}
.scn-pearl-catches-sunshine .sunbeams {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 60%;
  background: linear-gradient(135deg, transparent 30%, rgba(255,240,200,0.15) 50%, transparent 70%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: pcs-beams 12s ease-in-out infinite;
}
.scn-pearl-catches-sunshine .ground-grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a9a5a 0%, #4a7a3a 100%);
  border-radius: 50% 50% 0 0;
  animation: pcs-grass 15s ease-in-out infinite alternate;
}
.scn-pearl-catches-sunshine .pearl-figure {
  position: absolute; bottom: 20%; left: 48%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #ffeac0 0%, #d0b080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 8px rgba(255,224,160,0.5);
  animation: pcs-pearl 4s ease-in-out infinite;
}
.scn-pearl-catches-sunshine .sparkle-a {
  position: absolute; top: 25%; left: 40%; width: 8px; height: 8px;
  background: #fffbe0; border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffe060;
  animation: pcs-sparkle 3s ease-in-out infinite;
}
.scn-pearl-catches-sunshine .sparkle-b {
  position: absolute; top: 18%; left: 55%; width: 6px; height: 6px;
  background: #fffbe0; border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffe060;
  animation: pcs-sparkle 4s ease-in-out infinite 1s;
}
.scn-pearl-catches-sunshine .sparkle-c {
  position: absolute; top: 32%; left: 30%; width: 5px; height: 5px;
  background: #fffbe0; border-radius: 50%;
  box-shadow: 0 0 6px 2px #ffe060;
  animation: pcs-sparkle 2.5s ease-in-out infinite 0.5s;
}
@keyframes pcs-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pcs-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }
@keyframes pcs-beams { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.1); } 100% { transform: rotate(-2deg) scaleY(0.9); } }
@keyframes pcs-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes pcs-pearl { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(10px) translateY(-5px) rotate(5deg); } 50% { transform: translateX(20px) translateY(0) rotate(-3deg); } 75% { transform: translateX(30px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(40px) translateY(0) rotate(0deg); } }
@keyframes pcs-sparkle { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0; transform: scale(0.8); } }

.scn-rest-in-wood {
  background:
    linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, transparent 60%);
}
.scn-rest-in-wood .canopy-overcast {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 0 0 40% 40%;
  animation: riw-canopy 20s ease-in-out infinite alternate;
}
.scn-rest-in-wood .tree-trunk-bg {
  position: absolute; left: 20%; top: 10%; bottom: 20%; width: 8%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 30% 20% 30%;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.4);
  animation: riw-trunk 25s ease-in-out infinite;
}
.scn-rest-in-wood .forest-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 60% 40% 0 0;
  animation: riw-floor 18s ease-in-out infinite alternate;
}
.scn-rest-in-wood .hester-sitting {
  position: absolute; bottom: 12%; left: 35%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: riw-figure 7s ease-in-out infinite alternate;
}
.scn-rest-in-wood .pearl-sitting {
  position: absolute; bottom: 10%; left: 50%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: riw-figure 9s ease-in-out infinite alternate-reverse;
}
.scn-rest-in-wood .mossy-log {
  position: absolute; bottom: 14%; left: 25%; width: 30%; height: 12px;
  background: linear-gradient(90deg, #3a4a2a 0%, #2a3a1a 100%);
  border-radius: 30px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: riw-log 12s ease-in-out infinite;
}
.scn-rest-in-wood .story-vision {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, rgba(60,50,40,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: riw-vision 15s ease-in-out infinite alternate;
}
@keyframes riw-canopy { 0% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(-5px); opacity: 0.9; } 100% { transform: translateY(3px); opacity: 0.7; } }
@keyframes riw-trunk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes riw-floor { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes riw-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-3px) translateY(0) rotate(-2deg); } }
@keyframes riw-log { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes riw-vision { 0% { opacity: 0; } 50% { opacity: 0.4; } 100% { opacity: 0; } }

.scn-black-man-mark {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #0a0a1a 100%),
    radial-gradient(ellipse at 60% 30%, #1a2a3a 0%, transparent 60%);
}
.scn-black-man-mark .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%);
  animation: bmm-sky 20s ease-in-out infinite alternate;
}
.scn-black-man-mark .moon-glow {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(200,210,230,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: bmm-moon 15s ease-in-out infinite alternate;
}
.scn-black-man-mark .forest-dark {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #0a1a0a 0%, #000a00 100%);
  clip-path: polygon(0% 0%, 10% 100%, 20% 10%, 30% 100%, 40% 20%, 50% 100%, 60% 5%, 70% 100%, 80% 15%, 90% 100%, 100% 0%);
  animation: bmm-forest 25s ease-in-out infinite alternate;
}
.scn-black-man-mark .figure-hester {
  position: absolute; bottom: 22%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bmm-figure 8s ease-in-out infinite alternate;
}
.scn-black-man-mark .scarlet-letter {
  position: absolute; bottom: 38%; left: 41.5%; width: 10px; height: 14px;
  background: radial-gradient(circle, #d65a30 0%, #a0461a 60%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(214,90,48,0.7), 0 0 40px 12px rgba(160,70,26,0.3);
  animation: bmm-letter 3s ease-in-out infinite alternate;
}
.scn-black-man-mark .shadow-blackman {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #000a00 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  opacity: 0.6;
  animation: bmm-shadow 12s ease-in-out infinite;
}
.scn-black-man-mark .ground-night {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #0a1a0a 0%, #000a00 100%);
  border-radius: 60% 40% 0 0;
  animation: bmm-ground 18s ease-in-out infinite alternate;
}
@keyframes bmm-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes bmm-moon { 0% { transform: scale(0.9); opacity: 0.3; } 50% { transform: scale(1.1); opacity: 0.5; } 100% { transform: scale(0.8); opacity: 0.2; } }
@keyframes bmm-forest { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(10px); } }
@keyframes bmm-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-2deg); } }
@keyframes bmm-letter { 0% { box-shadow: 0 0 15px 4px rgba(214,90,48,0.6), 0 0 30px 8px rgba(160,70,26,0.2); opacity: 0.8; } 50% { box-shadow: 0 0 30px 10px rgba(214,90,48,0.9), 0 0 60px 18px rgba(160,70,26,0.5); opacity: 1; } 100% { box-shadow: 0 0 20px 6px rgba(214,90,48,0.7), 0 0 40px 12px rgba(160,70,26,0.3); opacity: 0.9; } }
@keyframes bmm-shadow { 0% { transform: translateX(0) scaleX(1); opacity: 0.5; } 50% { transform: translateX(10px) scaleX(1.1); opacity: 0.7; } 100% { transform: translateX(-5px) scaleX(0.9); opacity: 0.4; } }
@keyframes bmm-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }

/* dimmesdale-dreads */
.scn-dimmesdale-dreads {
  background: linear-gradient(180deg, #87ceeb 0%, #f0d9a0 40%, #8b7355 100%), radial-gradient(ellipse at 30% 20%, #fffacd 0%, transparent 50%);
}
.scn-dimmesdale-dreads .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6ba3c9 0%, #c9b88a 100%);
  animation: dd-sky 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-dreads .forest-bg {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a5d2e 0%, #2a3a1a 100%);
  border-radius: 70% 30% 0 0 / 90% 40% 0 0;
  animation: dd-forest 20s ease-in-out infinite alternate;
}
.scn-dimmesdale-dreads .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6b4e2a 0%, #3d2b12 100%);
}
.scn-dimmesdale-dreads .brook {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 6%;
  background: linear-gradient(90deg, #7bb8d4, #5a9bb5 50%, #7bb8d4);
  border-radius: 50%;
  filter: blur(2px);
  animation: dd-brook 4s ease-in-out infinite;
}
.scn-dimmesdale-dreads .figure-dimmesdale {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dd-figure 5s ease-in-out infinite;
}
.scn-dimmesdale-dreads .figure-hester {
  position: absolute; bottom: 28%; left: 50%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a10 100%);
  border-radius: 45% 45% 30% 30% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: dd-figure 5s ease-in-out infinite 0.5s;
}
.scn-dimmesdale-dreads .light-rays {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,180,0.4) 0%, transparent 70%);
  animation: dd-rays 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-dreads .leaf-drift {
  position: absolute; top: 15%; left: 5%; width: 8px; height: 8px;
  background: #8b5a2b;
  border-radius: 50% 0;
  animation: dd-leaf 15s linear infinite;
}
@keyframes dd-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dd-forest { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dd-brook { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.05); } 100% { opacity: 0.6; transform: scaleX(1); } }
@keyframes dd-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dd-rays { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes dd-leaf { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(30px,20px) rotate(180deg); } 100% { transform: translate(60px,40px) rotate(360deg); } }

/* pearl-at-brook */
.scn-pearl-at-brook {
  background: linear-gradient(180deg, #6ba3c9 0%, #a8c8e0 30%, #8cb3c4 70%, #5a7a6b 100%), radial-gradient(ellipse at 50% 80%, #d4e8f0 0%, transparent 60%);
}
.scn-pearl-at-brook .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a8aad 0%, #a0c4db 100%);
  animation: pb-sky 15s ease-in-out infinite alternate;
}
.scn-pearl-at-brook .trees {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3b5a2a 0%, #1a2a12 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  animation: pb-trees 18s ease-in-out infinite alternate;
}
.scn-pearl-at-brook .brook {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(90deg, #7bb8d4, #5a9bb5 50%, #7bb8d4);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: pb-brook 6s ease-in-out infinite;
}
.scn-pearl-at-brook .pearl-figure {
  position: absolute; bottom: 15%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 45% 45% 30% 30% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: pb-pearl 4s ease-in-out infinite;
}
.scn-pearl-at-brook .reflection {
  position: absolute; bottom: 8%; left: 40%; width: 18px; height: 35px;
  background: linear-gradient(180deg, rgba(42,26,10,0.5) 0%, rgba(26,14,5,0.3) 100%);
  border-radius: 45% 45% 30% 30% / 65% 65% 35% 35%;
  transform: scaleY(-1);
  animation: pb-reflection 4s ease-in-out infinite;
}
.scn-pearl-at-brook .ripple {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 6px;
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  animation: pb-ripple 3s ease-in-out infinite;
}
.scn-pearl-at-brook .dragonfly {
  position: absolute; top: 25%; left: 60%; width: 12px; height: 4px;
  background: #a0d0e0;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(160,208,224,0.6);
  animation: pb-dragonfly 8s ease-in-out infinite;
}
@keyframes pb-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pb-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pb-brook { 0% { transform: scaleY(1); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; } 50% { transform: scaleY(1.05); border-radius: 45% 55% 25% 35% / 55% 65% 35% 45%; } 100% { transform: scaleY(1); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; } }
@keyframes pb-pearl { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pb-reflection { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes pb-ripple { 0% { transform: scale(0.5); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 0.2; } 100% { transform: scale(0.5); opacity: 0.6; } }
@keyframes pb-dragonfly { 0% { transform: translate(0,0) rotate(0); } 25% { transform: translate(20px,-10px) rotate(10deg); } 50% { transform: translate(40px,0) rotate(0); } 75% { transform: translate(20px,10px) rotate(-10deg); } 100% { transform: translate(0,0) rotate(0); } }

/* hester-calls-pearl */
.scn-hester-calls-pearl {
  background: linear-gradient(180deg, #87ceeb 0%, #f0d9a0 40%, #8b7355 100%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 50%);
}
.scn-hester-calls-pearl .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a8aad 0%, #c9b88a 100%);
  animation: hc-sky 12s ease-in-out infinite alternate;
}
.scn-hester-calls-pearl .forest-bg {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5d2e 0%, #2a3a1a 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  animation: hc-forest 18s ease-in-out infinite alternate;
}
.scn-hester-calls-pearl .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b4e2a 0%, #3d2b12 100%);
}
.scn-hester-calls-pearl .brook {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 5%;
  background: linear-gradient(90deg, #7bb8d4, #5a9bb5 50%, #7bb8d4);
  filter: blur(2px);
  animation: hc-brook 5s ease-in-out infinite;
}
.scn-hester-calls-pearl .figure-hester {
  position: absolute; bottom: 22%; left: 20%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a10 100%);
  border-radius: 45% 45% 30% 30% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: hc-figure 4s ease-in-out infinite;
}
.scn-hester-calls-pearl .figure-dimmesdale {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-figure 4s ease-in-out infinite 0.3s;
}
.scn-hester-calls-pearl .figure-pearl {
  position: absolute; bottom: 22%; right: 20%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 45% 45% 30% 30% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: hc-pearl 4s ease-in-out infinite;
}
.scn-hester-calls-pearl .gesture-hand {
  position: absolute; bottom: 30%; left: 22%; width: 8px; height: 10px;
  background: #3a1a10;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hc-hand 2s ease-in-out infinite;
}
@keyframes hc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hc-forest { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hc-brook { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.9; transform: scaleX(1.05); } 100% { opacity: 0.6; transform: scaleX(1); } }
@keyframes hc-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hc-pearl { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hc-hand { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }

/* pearl-stubborn */
.scn-pearl-stubborn {
  background: linear-gradient(180deg, #6ba3c9 0%, #f0d9a0 40%, #8b7355 100%), radial-gradient(ellipse at 50% 60%, #fff8dc 0%, transparent 50%);
}
.scn-pearl-stubborn .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a8aad 0%, #c9b88a 100%);
  animation: ps-sky 10s ease-in-out infinite alternate;
}
.scn-pearl-stubborn .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6b4e2a 0%, #3d2b12 100%);
}
.scn-pearl-stubborn .pearl-close {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 45% 45% 30% 30% / 65% 65% 35% 35%;
  animation: ps-pearl 3s ease-in-out infinite;
}
.scn-pearl-stubborn .dress {
  position: absolute; bottom: 20%; left: 47%; width: 36px; height: 40px;
  background: linear-gradient(180deg, #8b6b4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: ps-dress 3s ease-in-out infinite;
}
.scn-pearl-stubborn .stamp-foot {
  position: absolute; bottom: 10%; left: 48%; width: 12px; height: 6px;
  background: #1a0e05;
  border-radius: 40% 60% 20% 30%;
  animation: ps-stamp 0.8s ease-in-out infinite;
}
.scn-pearl-stubborn .shadow {
  position: absolute; bottom: 10%; left: 40%; width: 60px; height: 8px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: ps-shadow 3s ease-in-out infinite;
}
.scn-pearl-stubborn .angry-brow {
  position: absolute; bottom: 55%; left: 48%; width: 16px; height: 4px;
  background: #1a0e05;
  border-radius: 20% 50%;
  transform: rotate(-10deg);
  animation: ps-brow 1.5s ease-in-out infinite;
}
.scn-pearl-stubborn .dust {
  position: absolute; bottom: 8%; left: 46%; width: 4px; height: 4px;
  background: #8b7355;
  border-radius: 50%;
  filter: blur(1px);
  animation: ps-dust 1s ease-in-out infinite;
}
@keyframes ps-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ps-pearl { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes ps-dress { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ps-stamp { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ps-shadow { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.4; transform: scaleX(1.2); } 100% { opacity: 0.2; transform: scaleX(1); } }
@keyframes ps-brow { 0% { transform: rotate(-15deg); } 50% { transform: rotate5deg); } 100% { transform: rotate(-15deg); } }
@keyframes ps-dust { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.5); } 100% { opacity: 0.2; transform: scale(0.5); } }

.scn-author-farewell {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a4030 30%, #7a5a3a 70%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,200,150,0.15) 0%, transparent 60%);
}
.scn-author-farewell .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #2a1a0a 0%, #5a3a2a 50%, #2a1a0a 100%); }
.scn-author-farewell .window { position:absolute; top:10%; left:15%; width:30%; height:45%; background: radial-gradient(ellipse at 50% 50%, #2a2a4a 0%, #0a0a1a 100%); border-radius: 10% 10% 0 0; border:4px solid #3a2a1a; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: af-window 20s ease-in-out infinite alternate; }
.scn-author-farewell .desk { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); }
.scn-author-farewell .candle { position:absolute; bottom:30%; left:45%; width:8px; height:40px; background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%); border-radius: 4px 4px 2px 2px; animation: af-candle 3s ease-in-out infinite alternate; }
.scn-author-farewell .candle::after { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:6px; height:12px; background: radial-gradient(ellipse, #ffdd80 0%, #ffaa40 50%, transparent 100%); border-radius: 50%; animation: af-flame 0.8s ease-in-out infinite alternate; }
.scn-author-farewell .figure { position:absolute; bottom:20%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: af-figure 6s ease-in-out infinite; }
.scn-author-farewell .inkwell { position:absolute; bottom:22%; left:38%; width:14px; height:18px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
.scn-author-farewell .paper { position:absolute; bottom:21%; left:42%; width:40px; height:30px; background: linear-gradient(135deg, #f0e8d0 0%, #d0c8b0 100%); transform: rotate(-5deg); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: af-paper 12s ease-in-out infinite alternate; }
@keyframes af-window { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes af-candle { 0% { height:40px; opacity:0.9; } 50% { height:42px; opacity:1; } 100% { height:38px; opacity:0.85; } }
@keyframes af-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); } 50% { transform: translateX(-50%) scaleY(1.2) rotate(2deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); } }
@keyframes af-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes af-paper { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(-6deg) translateX(1px); } }

.scn-prison-door {
  background:
    linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 40%, #2a2a2a 100%),
    radial-gradient(ellipse at 50% 0%, rgba(200,200,200,0.1) 0%, transparent 70%);
}
.scn-prison-door .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 60%, #3a3a4a 100%); animation: pd-sky 25s ease-in-out infinite alternate; }
.scn-prison-door .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-prison-door .building { position:absolute; bottom:20%; left:25%; right:25%; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.5); }
.scn-prison-door .door { position:absolute; bottom:15%; left:50%; width:18%; height:35%; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border:2px solid #3a2a1a; border-radius: 5% 5% 0 0; animation: pd-door 8s ease-in-out infinite alternate; }
.scn-prison-door .spikes { position:absolute; bottom:15%; left:50%; width:20%; height:5%; transform:translateX(-50%); background: linear-gradient(90deg, #5a4a3a 0%, #6a5a4a 50%, #5a4a3a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: pd-spikes 4s ease-in-out infinite; }
.scn-prison-door .spikes::before { content:''; position:absolute; top:-6px; left:10%; width:2px; height:8px; background:#5a4a3a; box-shadow: 20px 0 0 #5a4a3a, 40px 0 0 #5a4a3a, 60px 0 0 #5a4a3a; }
.scn-prison-door .crowd { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background: rgba(20,20,20,0.6); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: pd-crowd 30s ease-in-out infinite alternate; }
.scn-prison-door .crowd-figure { position:absolute; bottom:20%; left:20%; width:12px; height:30px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; animation: pd-figure 6s ease-in-out infinite; }
.scn-prison-door .crowd-figure:nth-child(2) { left:70%; animation-delay: -3s; }
@keyframes pd-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes pd-door { 0% { transform: translateX(-50%) rotateY(0deg); } 50% { transform: translateX(-50%) rotateY(2deg); } 100% { transform: translateX(-50%) rotateY(0deg); } }
@keyframes pd-spikes { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pd-crowd { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pd-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

.scn-item-rose-bush {
  background:
    linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 50%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 80%, rgba(200,200,200,0.1) 0%, transparent 60%);
}
.scn-item-rose-bush .bg-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a6a7a 0%, #5a5a6a 100%); animation: rb-sky 20s ease-in-out infinite alternate; }
.scn-item-rose-bush .bg-ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; }
.scn-item-rose-bush .stem { position:absolute; bottom:30%; left:50%; width:4px; height:35%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); transform: translateX(-50%); border-radius: 2px; }
.scn-item-rose-bush .leaves { position:absolute; bottom:40%; left:48%; width:20px; height:10px; background: #4a6a3a; border-radius: 50% 50% 50% 0; transform: rotate(-30deg); animation: rb-leaf 5s ease-in-out infinite alternate; }
.scn-item-rose-bush .leaves::after { content:''; position:absolute; left:70%; top:0; width:20px; height:10px; background: #3a5a2a; border-radius: 50% 0 50% 50%; transform: rotate(30deg); }
.scn-item-rose-bush .bloom { position:absolute; bottom:60%; left:50%; width:24px; height:24px; transform: translateX(-50%); background: radial-gradient(circle, #b87878 0%, #702243 100%); border-radius: 50%; box-shadow: 0 0 20px #b87878; animation: rb-bloom 8s ease-in-out infinite; }
.scn-item-rose-bush .petals { position:absolute; bottom:58%; left:50%; width:30px; height:10px; transform: translateX(-50%) rotate(20deg); background: #c88878; border-radius: 50% 50% 0 0; animation: rb-petal 6s ease-in-out infinite; }
.scn-item-rose-bush .petals::after { content:''; position:absolute; left:-10px; top:2px; width:20px; height:8px; background: #b87068; border-radius: 50% 50% 0 0; transform: rotate(-40deg); }
@keyframes rb-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes rb-leaf { 0% { transform: rotate(-30deg) scale(1); } 50% { transform: rotate(-35deg) scale(1.05); } 100% { transform: rotate(-28deg) scale(1); } }
@keyframes rb-bloom { 0% { transform: translateX(-50%) scale(1); opacity:0.9; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(0.95); opacity:0.85; } }
@keyframes rb-petal { 0% { transform: translateX(-50%) rotate(20deg) translateY(0); opacity:0.7; } 50% { transform: translateX(-50%) rotate(25deg) translateY(-2px); opacity:1; } 100% { transform: translateX(-50%) rotate(15deg) translateY(1px); opacity:0.6; } }

.scn-women-in-crowd {
  background:
    linear-gradient(180deg, #8aaece 0%, #b0c8d8 30%, #d0d8d0 60%, #c0b8a0 100%),
    radial-gradient(ellipse at 60% 30%, rgba(255,230,150,0.3) 0%, transparent 70%);
}
.scn-women-in-crowd .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #7a9abb 0%, #9ab0c8 100%); animation: wc-sky 10s ease-in-out infinite alternate; }
.scn-women-in-crowd .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; }
.scn-women-in-crowd .sun { position:absolute; top:15%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #ffe87a 0%, #ffd060 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px #ffe87a; animation: wc-sun 8s ease-in-out infinite alternate; }
.scn-women-in-crowd .crowd-left { position:absolute; bottom:20%; left:5%; right:40%; height:35%; background: rgba(40,30,20,0.4); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: wc-crowd 3s ease-in-out infinite; }
.scn-women-in-crowd .crowd-right { position:absolute; bottom:20%; left:35%; right:5%; height:35%; background: rgba(40,30,20,0.35); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: wc-crowd 3.5s ease-in-out infinite reverse; }
.scn-women-in-crowd .central { position:absolute; bottom:20%; left:45%; width:16px; height:45px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wc-central 4s ease-in-out infinite; }
.scn-women-in-crowd .shadow { position:absolute; bottom:18%; left:35%; right:35%; height:8%; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(4px); animation: wc-shadow 2s ease-in-out infinite alternate; }
@keyframes wc-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes wc-sun { 0% { transform: scale(1) translateY(0); opacity:0.9; } 50% { transform: scale(1.05) translateY(-2px); opacity:1; } 100% { transform: scale(0.95) translateY(1px); opacity:0.85; } }
@keyframes wc-crowd { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes wc-central { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wc-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.05); opacity:0.7; } 100% { transform: scaleX(0.95); opacity:0.4; } }

.scn-farewell {
  background: linear-gradient(180deg, #f0d0a0 0%, #f8e0c0 30%, #b0c8e0 70%, #8090b0 100%), radial-gradient(ellipse at 50% 20%, #ffe080 0%, transparent 60%);
  overflow: hidden;
}
.scn-farewell .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #ffd080 0%, #f8e0c0 60%); animation: fl-sky 10s ease-in-out infinite alternate; }
.scn-farewell .sun  { position: absolute; top: 8%; left: 40%; width: 80px; height: 80px; background: radial-gradient(circle, #ffe080 0%, #ffc040 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 60px 30px #ffe080, 0 0 120px 60px rgba(255,224,128,.3); animation: fl-sun 8s ease-in-out infinite; }
.scn-farewell .land { position: absolute; bottom: 20%; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #8ab06a 0%, #6a8a4a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); animation: fl-land 20s ease-in-out infinite alternate; }
.scn-farewell .path { position: absolute; bottom: 20%; left: 50%; width: 8%; height: 25%; background: linear-gradient(90deg, #b09070 0%, #d0b090 30%, #b09070 100%); transform: translateX(-50%); border-radius: 20% 20% 0 0; animation: fl-path 15s ease-in-out infinite; }
.scn-farewell .figure-clergy { position: absolute; bottom: 30%; left: 35%; width: 22px; height: 50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-clergy 4s ease-in-out infinite; }
.scn-farewell .figure-hester { position: absolute; bottom: 30%; left: 55%; width: 20px; height: 48px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-hester 4s ease-in-out infinite .2s; }
.scn-farewell .glow  { position: absolute; top: 25%; left: 36%; width: 120px; height: 120px; background: radial-gradient(circle, rgba(255,224,160,.25) 0%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: fl-glow 6s ease-in-out infinite alternate; }
@keyframes fl-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes fl-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.05) translate(2px,-2px); } 100% { transform: scale(.98) translate(-1px,1px); } }
@keyframes fl-land { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fl-path { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes fl-clergy { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(-3px) rotate(2deg); } 60% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fl-hester { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(3px) rotate(-2deg); } 60% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fl-glow { 0% { opacity: .2; transform: scale(1); } 100% { opacity: .4; transform: scale(1.1); } }

.scn-after-death {
  background: linear-gradient(180deg, #b0b8c0 0%, #c8d0d8 40%, #9098a0 80%, #707880 100%), radial-gradient(ellipse at 50% 100%, #a0a8b0 0%, transparent 70%);
  overflow: hidden;
}
.scn-after-death .sky-overcast { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 100%); animation: ad-sky 15s ease-in-out infinite alternate; }
.scn-after-death .scaffold { position: absolute; bottom: 15%; left: 50%; width: 120px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #6a6040 0%, #4a4030 100%); border-radius: 4% 4% 0 0; box-shadow: 0 8px 12px rgba(0,0,0,.3); animation: ad-scaffold 12s ease-in-out infinite; }
.scn-after-death .minister { position: absolute; bottom: 30%; left: 50%; width: 24px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ad-minister 6s ease-in-out infinite; }
.scn-after-death .letter { position: absolute; bottom: 38%; left: 50%; width: 14px; height: 18px; transform: translateX(-50%); background: radial-gradient(circle, #b84840 0%, #803030 70%); border-radius: 10% 10% 10% 10%; box-shadow: 0 0 20px 6px #b84840, 0 0 40px 12px rgba(184,72,64,.3); animation: ad-letter 4s ease-in-out infinite alternate; }
.scn-after-death .crowd-left { position: absolute; bottom: 12%; left: 15%; width: 30px; height: 36px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ad-crowd-left 7s ease-in-out infinite; }
.scn-after-death .crowd-right { position: absolute; bottom: 12%; right: 15%; width: 28px; height: 34px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ad-crowd-right 7s ease-in-out infinite .5s; }
.scn-after-death .mist { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,.15) 50%, transparent 100%); filter: blur(8px); animation: ad-mist 20s linear infinite; }
@keyframes ad-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes ad-scaffold { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ad-minister { 0% { transform: translateX(-50%) rotate(-1deg); } 30% { transform: translateX(-50%) rotate(1deg) translateY(-1px); } 60% { transform: translateX(-50%) rotate(-.5deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes ad-letter { 0% { box-shadow: 0 0 12px 4px #b84840, 0 0 30px 8px rgba(184,72,64,.2); opacity: .8; } 50% { box-shadow: 0 0 24px 8px #c86058, 0 0 50px 16px rgba(200,96,88,.4); opacity: 1; } 100% { box-shadow: 0 0 16px 5px #b84840, 0 0 35px 10px rgba(184,72,64,.3); opacity: .9; } }
@keyframes ad-crowd-left { 0% { transform: translate(0,0) rotate(0); } 50% { transform: translate(4px,-2px) rotate(2deg); } 100% { transform: translate(-2px,0) rotate(-1deg); } }
@keyframes ad-crowd-right { 0% { transform: translate(0,0) rotate(0); } 50% { transform: translate(-4px,-2px) rotate(-2deg); } 100% { transform: translate(2px,0) rotate(1deg); } }
@keyframes ad-mist { 0% { transform: translateX(0); } 100% { transform: translateX(20%); } }

.scn-chillingworth-withers {
  background: linear-gradient(180deg, #2a2028 0%, #3a2830 40%, #1a1418 100%), radial-gradient(ellipse at 30% 80%, #4a3038 0%, transparent 60%);
  overflow: hidden;
}
.scn-chillingworth-withers .room { position: absolute; inset: 0; background: linear-gradient(135deg, #1a1418 0%, #302028 50%, #201820 100%); animation: cw-room 20s ease-in-out infinite alternate; }
.scn-chillingworth-withers .window-dim { position: absolute; top: 25%; right: 20%; width: 40px; height: 60px; background: linear-gradient(180deg, #507070 0%, #305050 100%); border-radius: 10% 10% 10% 10%; box-shadow: inset 0 0 12px #407080; animation: cw-window 12s ease-in-out infinite; }
.scn-chillingworth-withers .figure-withered { position: absolute; bottom: 25%; left: 30%; width: 22px; height: 44px; background: linear-gradient(180deg, #2a1a18 0%, #1a0e0c 100%); border-radius: 50% 50% 40% 40% / 50% 50% 50% 50%; transform-origin: bottom center; animation: cw-figure 8s ease-in-out infinite; }
.scn-chillingworth-withers .chair { position: absolute; bottom: 20%; left: 28%; width: 40px; height: 30px; background: linear-gradient(180deg, #4a3028 0%, #302018 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: cw-chair 10s ease-in-out infinite; }
.scn-chillingworth-withers .candle { position: absolute; bottom: 40%; left: 50%; width: 6px; height: 20px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 2px; box-shadow: 0 0 16px 6px #c8a060, 0 0 32px 12px rgba(200,160,96,.4); animation: cw-candle 5s ease-in-out infinite alternate; }
.scn-chillingworth-withers .shadow { position: absolute; bottom: 0; left: 20%; width: 40%; height: 30px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 70%); filter: blur(6px); animation: cw-shadow 12s ease-in-out infinite; }
@keyframes cw-room { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes cw-window { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .5; } }
@keyframes cw-figure { 0% { transform: translate(0,0) rotate(-3deg) scaleY(1); } 30% { transform: translate(2px,-1px) rotate(2deg) scaleY(.97); } 60% { transform: translate(-2px,1px) rotate(-1deg) scaleY(1.02); } 100% { transform: translate(0,0) rotate(0) scaleY(1); } }
@keyframes cw-chair { 0% { transform: translate(0,0); } 50% { transform: translate(0,-1px); } 100% { transform: translate(0,0); } }
@keyframes cw-candle { 0% { transform: scaleY(1) scaleX(1); opacity: .8; } 50% { transform: scaleY(1.05) scaleX(1.02); opacity: 1; box-shadow: 0 0 20px 8px #d0b070; } 100% { transform: scaleY(.95) scaleX(.98); opacity: .9; box-shadow: 0 0 14px 5px #c8a060; } }
@keyframes cw-shadow { 0% { transform: scaleX(1); opacity: .6; } 50% { transform: scaleX(1.1); opacity: .8; } 100% { transform: scaleX(.95); opacity: .5; } }

.scn-pearl-departs {
  background: linear-gradient(180deg, #a0a8a0 0%, #c0c8c0 40%, #808880 100%), radial-gradient(ellipse at 50% 100%, #b0b8b0 0%, transparent 60%);
  overflow: hidden;
}
.scn-pearl-departs .sky-gray { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #b8c0b8 0%, #a0a8a0 100%); animation: pd-sky 18s ease-in-out infinite alternate; }
.scn-pearl-departs .cottage { position: absolute; bottom: 20%; left: 40%; width: 80px; height: 60px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 4% 4% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.2); animation: pd-cottage 14s ease-in-out infinite; }
.scn-pearl-departs .door { position: absolute; bottom: 20%; left: 43%; width: 16px; height: 32px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; transform: translateX(-50%); animation: pd-door 12s ease-in-out infinite; }
.scn-pearl-departs .path-stone { position: absolute; bottom: 15%; left: 28%; width: 40%; height: 12px; background: linear-gradient(90deg, #8o7860 0%, #a09080 30%, #8o7860 100%); border-radius: 30% 30% 30% 30%; animation: pd-path 20s linear infinite; }
.scn-pearl-departs .figure-woman { position: absolute; bottom: 22%; left: 55%; width: 20px; height: 52px; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-woman 8s ease-in-out infinite; }
.scn-pearl-departs .letter-scarlet { position: absolute; bottom: 30%; left: 55%; width: 12px; height: 16px; transform: translateX(-50%); background: radial-gradient(circle, #b84840 0%, #803030 70%); border-radius: 10% 10% 10% 10%; box-shadow: 0 0 18px 5px #b84840, 0 0 36px 10px rgba(184,72,64,.2); animation: pd-letter 6s ease-in-out infinite alternate; }
.scn-pearl-departs .trees { position: absolute; bottom: 15%; left: 5%; width: 40px; height: 60px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; animation: pd-trees 20s ease-in-out infinite; }
@keyframes pd-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes pd-cottage { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pd-door { 0% { opacity: .9; transform: translateX(-50%) scaleX(1); } 50% { opacity: 1; transform: translateX(-50%) scaleX(1.02); } 100% { opacity: .85; transform: translateX(-50%) scaleX(.98); } }
@keyframes pd-path { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes pd-woman { 0% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(4px,-1px) rotate(1deg); } 50% { transform: translate(8px,0) rotate(-1deg); } 75% { transform: translate(12px,-1px) rotate(2deg); } 100% { transform: translate(16px,0) rotate(0); } }
@keyframes pd-letter { 0% { box-shadow: 0 0 12px 4px #b84840, 0 0 24px 6px rgba(184,72,64,.15); opacity: .8; } 50% { box-shadow: 0 0 22px 8px #c86058, 0 0 44px 14px rgba(200,96,88,.3); opacity: 1; } 100% { box-shadow: 0 0 16px 5px #b84840, 0 0 30px 8px rgba(184,72,64,.2); opacity: .9; } }
@keyframes pd-trees { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }

.scn-chillingworth-reassures {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 60%, #1a0a0a 100%),
              radial-gradient(ellipse at 40% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-chillingworth-reassures .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%);
  animation: cr-wall 15s ease-in-out infinite alternate;
}
.scn-chillingworth-reassures .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  border-radius: 30% 70% 0 0 / 20% 60% 0 0;
}
.scn-chillingworth-reassures .candle-glow {
  position: absolute; bottom: 55%; left: 35%; width: 60px; height: 60px;
  background: radial-gradient(circle, #c08040 0%, transparent 70%);
  opacity: 0.6; border-radius: 50%; filter: blur(8px);
  animation: cr-glow 3s ease-in-out infinite alternate;
}
.scn-chillingworth-reassures .candle {
  position: absolute; bottom: 52%; left: 38%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0c080 0%, #c08040 60%, #805020 100%);
  border-radius: 2px 2px 4px 4px; box-shadow: 0 0 12px 2px #c08040;
  animation: cr-candle 4s ease-in-out infinite;
}
.scn-chillingworth-reassures .child-bed {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%; transform: rotate(-2deg);
}
.scn-chillingworth-reassures .child-sleep {
  position: absolute; bottom: 22%; left: 34%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: cr-child 6s ease-in-out infinite;
}
.scn-chillingworth-reassures .hand-reach {
  position: absolute; bottom: 40%; left: 42%; width: 25px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20%; transform: rotate(25deg);
  transform-origin: top left;
  animation: cr-hand 4s ease-in-out infinite alternate;
}
.scn-chillingworth-reassures .hester-shadow {
  position: absolute; bottom: 10%; right: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, rgba(20,10,10,0.8) 0%, transparent 100%);
  border-radius: 40% 30% 20% 20% / 60% 50% 30% 30%;
  filter: blur(3px);
  animation: cr-hester 8s ease-in-out infinite;
}
.scn-chillingworth-reassures .cup {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 0 0 8px 8px;
  animation: cr-cup 5s ease-in-out infinite;
}
@keyframes cr-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cr-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 cr-candle { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes cr-child { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(0.95); } }
@keyframes cr-hand { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(30deg) translateX(-5px); } 100% { transform: rotate(25deg) translateX(0); } }
@keyframes cr-hester { 0%,100% { opacity: 0.6; transform: translateX(0); } 50% { opacity: 0.8; transform: translateX(-10px); } }
@keyframes cr-cup { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-3deg); } }

.scn-hester-drinks {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 70%, #0a0a0a 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 80%);
}
.scn-hester-drinks .bg-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a0a0a 0%, #2a1a1a 50%, #1a0a0a 100%);
  animation: hd-bg 20s ease-in-out infinite alternate;
}
.scn-hester-drinks .table-edge {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 5%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-hester-drinks .cup-drink {
  position: absolute; bottom: 35%; left: 45%; width: 22px; height: 28px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 0 0 10px 10px; box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: hd-cup 4s ease-in-out infinite;
}
.scn-hester-drinks .hester-sil {
  position: absolute; bottom: 10%; left: 30%; width: 70px; height: 140px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 30% 40% 20% 20% / 50% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: hd-hester 6s ease-in-out infinite;
}
.scn-hester-drinks .chill-sil {
  position: absolute; bottom: 10%; right: 25%; width: 80px; height: 150px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 40% 30% 20% 20% / 60% 40% 30% 30%;
  filter: blur(1px);
  animation: hd-chill 8s ease-in-out infinite alternate;
}
.scn-hester-drinks .child-sleep-dr {
  position: absolute; bottom: 15%; left: 20%; width: 40px; height: 25px;
  background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: hd-child 10s ease-in-out infinite;
}
.scn-hester-drinks .candle-glow-dr {
  position: absolute; bottom: 50%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d09040 0%, transparent 70%);
  opacity: 0.5; border-radius: 50%; filter: blur(6px);
  animation: hd-glow 3s ease-in-out infinite alternate;
}
@keyframes hd-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hd-cup { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 75% { transform: translateY(1px) rotate(-2deg); } }
@keyframes hd-hester { 0%,100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(5px) scale(0.98); } }
@keyframes hd-chill { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes hd-child { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes hd-glow { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }

.scn-chillingworth-accuses {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #0a0a0a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-chillingworth-accuses .bg-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #1a0a0a 0%, #2a1a1a 30%, #1a0a0a 100%);
  animation: ca-bg 12s ease-in-out infinite alternate;
}
.scn-chillingworth-accuses .wall-panel {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 60%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-chillingworth-accuses .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #1a0a0a 0px, #2a1a1a 4px, #1a0a0a 8px);
  border-radius: 0;
}
.scn-chillingworth-accuses .chill-figure {
  position: absolute; bottom: 5%; left: 20%; width: 70px; height: 130px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 30% 40% 20% 20% / 50% 60% 30% 30%;
  transform: rotate(3deg);
  animation: ca-chill 7s ease-in-out infinite;
}
.scn-chillingworth-accuses .hester-figure {
  position: absolute; bottom: 5%; right: 20%; width: 65px; height: 125px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a0a0a 100%);
  border-radius: 40% 30% 20% 20% / 60% 40% 30% 30%;
  transform: rotate(-2deg);
  animation: ca-hester 9s ease-in-out infinite alternate;
}
.scn-chillingworth-accuses .candle-center {
  position: absolute; bottom: 35%; left: 50%; width: 10px; height: 35px;
  background: linear-gradient(180deg, #e0c080 0%, #c08040 60%, #805020 100%);
  border-radius: 2px 2px 4px 4px; box-shadow: 0 0 15px 3px #c08040;
  transform: translateX(-50%);
  animation: ca-candle 4s ease-in-out infinite;
}
.scn-chillingworth-accuses .shadow-left {
  position: absolute; bottom: 5%; left: 5%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 100% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(5px);
  animation: ca-shadow 14s ease-in-out infinite alternate;
}
.scn-chillingworth-accuses .shadow-right {
  position: absolute; bottom: 5%; right: 5%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 0% 50%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(5px);
  animation: ca-shadow 14s ease-in-out infinite alternate-reverse;
}
@keyframes ca-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ca-chill { 0%,100% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(1deg) translateX(-3px) scale(0.98); } }
@keyframes ca-hester { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ca-candle { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } }
@keyframes ca-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-chillingworth-demand {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #0a0a0a 100%),
              radial-gradient(ellipse at 30% 50%, #2a1a1a 0%, transparent 70%);
}
.scn-chillingworth-demand .bg-black {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  animation: cd-bg 10s ease-in-out infinite alternate;
}
.scn-chillingworth-demand .wall-texture {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 70%;
  background: repeating-linear-gradient(0deg, #2a1a1a 0px, #3a2a2a 3px, #2a1a1a 6px);
  border-radius: 5% 5% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.9);
}
.scn-chillingworth-demand .chill-profile {
  position: absolute; bottom: 10%; left: 25%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 40% 20% 20% / 60% 50% 30% 30%;
  transform: rotate(10deg) scaleX(-1);
  animation: cd-chill 5s ease-in-out infinite;
}
.scn-chillingworth-demand .hester-profile {
  position: absolute; bottom: 10%; right: 30%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #4a3a3a 0%, #1a0a0a 100%);
  border-radius: 40% 50% 20% 20% / 50% 60% 30% 30%;
  transform: rotate(-8deg);
  animation: cd-hester 7s ease-in-out infinite alternate;
}
.scn-chillingworth-demand .candle-demand {
  position: absolute; bottom: 45%; left: 45%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 60%, #705020 100%);
  border-radius: 2px 2px 4px 4px; box-shadow: 0 0 10px 2px #b08040;
  animation: cd-candle 3s ease-in-out infinite;
}
.scn-chillingworth-demand .child-sleep-de {
  position: absolute; bottom: 5%; left: 15%; width: 35px; height: 20px;
  background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: cd-child 8s ease-in-out infinite;
}
.scn-chillingworth-demand .cup-demand {
  position: absolute; bottom: 28%; left: 55%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 0 0 8px 8px;
  animation: cd-cup 6s ease-in-out infinite;
}
.scn-chillingworth-demand .shadow-cast {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: cd-shadow 12s ease-in-out infinite alternate;
}
@keyframes cd-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cd-chill { 0%,100% { transform: rotate(10deg) scaleX(-1) translateX(0); } 50% { transform: rotate(12deg) scaleX(-1) translateX(-2px); } }
@keyframes cd-hester { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px) scale(0.98); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes cd-candle { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes cd-child { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes cd-cup { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-4deg); } }
@keyframes cd-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

.scn-pearl-dressed {
  background: linear-gradient(180deg, #f9e6c0 0%, #eac89a 40%, #d4a76a 100%),
              radial-gradient(ellipse at 50% 10%, #fff4d6 0%, rgba(255,230,180,0) 60%);
}
.scn-pearl-dressed .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b8d4f0 0%, #f2dbb1 100%);
  animation: pd-sky 20s ease-in-out infinite alternate;
}
.scn-pearl-dressed .sun {
  position: absolute; top: 8%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7b0 0%, #ffd880 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.4);
  animation: pd-sun 25s linear infinite;
}
.scn-pearl-dressed .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8ab35a 0%, #5e7a3a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.2);
}
.scn-pearl-dressed .hester {
  position: absolute; bottom: 20%; left: 40%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pd-hester 4s ease-in-out infinite;
}
.scn-pearl-dressed .pearl {
  position: absolute; bottom: 18%; left: 46%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pd-pearl 3s ease-in-out infinite alternate;
}
.scn-pearl-dressed .dress {
  position: absolute; bottom: 18%; left: 46%; width: 16px; height: 22px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%);
  animation: pd-dress 2s ease-in-out infinite;
}
.scn-pearl-dressed .gold-emb {
  position: absolute; bottom: 28%; left: 49%; width: 4px; height: 4px;
  background: #f0c060;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #f0c060, 4px -6px 0 0 #f0c060, -3px -8px 0 0 #f0c060;
  animation: pd-gold 1.5s ease-in-out infinite alternate;
}
.scn-pearl-dressed .glow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, rgba(255,240,180,0.15) 0%, transparent 70%);
  pointer-events: none;
  animation: pd-glow 8s ease-in-out infinite alternate;
}
@keyframes pd-sky {
  0% { opacity: 0.85 }
  50% { opacity: 1 }
  100% { opacity: 0.9 }
}
@keyframes pd-sun {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(30px) scale(1.02); }
  100% { transform: translateX(-20px) scale(0.98); }
}
@keyframes pd-hester {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes pd-pearl {
  0% { transform: translateY(0) rotate(-3deg); }
  30% { transform: translateY(-3px) rotate(2deg); }
  70% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pd-dress {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(0.98); }
}
@keyframes pd-gold {
  0% { opacity: 0.6; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(0.9); }
}
@keyframes pd-glow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

.scn-pearl-defends {
  background: linear-gradient(180deg, #e8dbb0 0%, #d4c08a 50%, #b8a070 100%),
              radial-gradient(ellipse at 60% 80%, #d0c0a0 0%, transparent 70%);
}
.scn-pearl-defends .sky-harsh {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0e8c8 0%, #e0d4b0 100%);
  animation: pde-sky 15s ease-in-out infinite alternate;
}
.scn-pearl-defends .ground-hard {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #a89a60 0%, #7a6a3a 100%);
  border-radius: 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-pearl-defends .children {
  position: absolute; bottom: 25%; left: 15%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  clip-path: polygon(0% 20%,30% 10%,60% 15%,80% 5%,100% 25%,90% 50%,70% 60%,50% 40%,30% 60%,10% 50%);
  animation: pde-children 3s ease-in-out infinite;
}
.scn-pearl-defends .mud-splats {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 15px;
  background: #4a3a1a;
  border-radius: 60% 40% 50% 50% / 40% 60% 40% 60%;
  box-shadow: -12px -8px 0 #3a2a0a, 8px -10px 0 #5a4a2a;
  transform: rotate(20deg);
  animation: pde-mud 2s ease-in-out infinite alternate;
}
.scn-pearl-defends .pearl-angry {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pde-pearl 1.5s ease-in-out infinite;
}
.scn-pearl-defends .hester-behind {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  opacity: 0.7;
  animation: pde-hester 5s ease-in-out infinite;
}
.scn-pearl-defends .action-lines {
  position: absolute; bottom: 40%; left: 35%; width: 80px; height: 10px;
  background: repeating-linear-gradient(90deg, transparent, transparent 8px, #4a3a2a 8px, #4a3a2a 12px);
  opacity: 0.4;
  transform: rotate(-15deg);
  animation: pde-lines 1s linear infinite;
}
@keyframes pde-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pde-children {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(-3deg); }
  50% { transform: translateX(-5px) rotate(2deg); }
  75% { transform: translateX(10px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes pde-mud {
  0% { transform: translateY(0) rotate(20deg); opacity: 0.7; }
  50% { transform: translateY(-5px) rotate(25deg); opacity: 1; }
  100% { transform: translateY(0) rotate(15deg); opacity: 0.8; }
}
@keyframes pde-pearl {
  0% { transform: translateY(0) rotate(-5deg) scaleX(1); }
  30% { transform: translateY(-4px) rotate(8deg) scaleX(1.1); }
  60% { transform: translateY(-2px) rotate(-6deg) scaleX(0.9); }
  100% { transform: translateY(0) rotate(0) scaleX(1); }
}
@keyframes pde-hester {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes pde-lines {
  0% { transform: translateX(0) rotate(-15deg); opacity: 0.4; }
  50% { transform: translateX(10px) rotate(-15deg); opacity: 0.6; }
  100% { transform: translateX(0) rotate(-15deg); opacity: 0.4; }
}

.scn-hester-sunshine {
  background: linear-gradient(180deg, #f2e6c0 0%, #e0cfaa 50%, #b8a07a 100%),
              radial-gradient(ellipse at 30% 70%, #ffe8b0 0%, transparent 60%);
}
.scn-hester-sunshine .sky-bright {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #f0e2c0 100%);
  animation: hs-sky 12s ease-in-out infinite alternate;
}
.scn-hester-sunshine .doorway {
  position: absolute; bottom: 35%; left: 38%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a140a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateY(10deg);
  animation: hs-door 10s ease-in-out infinite;
}
.scn-hester-sunshine .threshold {
  position: absolute; bottom: 35%; left: 36%; right: 36%; height: 6px;
  background: linear-gradient(90deg, #4a2a0a, #7a5a2a, #4a2a0a);
  border-radius: 2px;
  box-shadow: 0 8px 12px rgba(0,0,0,0.3);
}
.scn-hester-sunshine .hester-sil {
  position: absolute; bottom: 35%; left: 44%; width: 26px; height: 70px;
  background: #1a0a00;
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: hs-hester 6s ease-in-out infinite alternate;
}
.scn-hester-sunshine .pearl-sil {
  position: absolute; bottom: 34%; left: 46%; width: 16px; height: 40px;
  background: #1a0a00;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hs-pearl 4s ease-in-out infinite alternate;
}
.scn-hester-sunshine .sunbeam {
  position: absolute; top: 10%; left: 20%; width: 200px; height: 300px;
  background: linear-gradient(135deg, rgba(255,240,180,0.3) 0%, transparent 80%);
  clip-path: polygon(0% 0%, 100% 0%, 40% 100%, 0% 100%);
  animation: hs-beam 8s ease-in-out infinite alternate;
}
.scn-hester-sunshine .shadow-inside {
  position: absolute; bottom: 35%; left: 38%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #0a0a00 0%, transparent 60%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  opacity: 0.6;
  animation: hs-shadow 12s ease-in-out infinite alternate;
}
@keyframes hs-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes hs-door {
  0% { transform: perspective(400px) rotateY(10deg); }
  50% { transform: perspective(400px) rotateY(8deg); }
  100% { transform: perspective(400px) rotateY(12deg); }
}
@keyframes hs-hester {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes hs-pearl {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-3px) rotate(3deg); }
  70% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hs-beam {
  0% { transform: translateX(-10px) rotate(2deg); opacity: 0.6; }
  50% { transform: translateX(5px) rotate(-1deg); opacity: 0.9; }
  100% { transform: translateX(-5px) rotate(1deg); opacity: 0.7; }
}
@keyframes hs-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

.scn-governor-hall {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 20%, #6a5a4a 0%, transparent 70%);
}
.scn-governor-hall .wall-panel {
  position: absolute; inset: 0 10% 15% 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border: 2px solid #8a7a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: gh-wall 20s ease-in-out infinite alternate;
}
.scn-governor-hall .portrait-1 {
  position: absolute; top: 8%; left: 18%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 3px solid #8a7a5a;
  border-radius: 4px;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
  animation: gh-port1 9s ease-in-out infinite alternate;
}
.scn-governor-hall .portrait-2 {
  position: absolute; top: 10%; right: 18%; width: 55px; height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border: 3px solid #8a7a5a;
  border-radius: 4px;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.4);
  transform: rotate(3deg);
  animation: gh-port2 11s ease-in-out infinite alternate;
}
.scn-governor-hall .armor {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: gh-armor 7s ease-in-out infinite;
}
.scn-governor-hall .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  perspective: 200px;
  transform: scaleY(0.8) translateY(20%);
  border-top: 2px solid #6a5a4a;
}
.scn-governor-hall .window-dim {
  position: absolute; top: 5%; left: 42%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #b0a080 0%, #5a4a3a 100%);
  border: 4px solid #8a7a6a;
  border-radius: 4px;
  opacity: 0.6;
  animation: gh-window 14s ease-in-out infinite alternate;
}
.scn-governor-hall .frame {
  position: absolute; top: 4%; left: 40%; width: 60px; height: 70px;
  border: 6px solid #6a5a4a;
  border-radius: 6px;
  pointer-events: none;
}
@keyframes gh-wall {
  0% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
  50% { opacity: 1; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
  100% { opacity: 0.85; box-shadow: inset 0 0 40px rgba(0,0,0,0.6); }
}
@keyframes gh-port1 {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(-1deg) scale(1.01); }
  100% { transform: rotate(-3deg) scale(0.99); }
}
@keyframes gh-port2 {
  0% { transform: rotate(3deg) scale(1); }
  50% { transform: rotate(4deg) scale(1.01); }
  100% { transform: rotate(2deg) scale(0.99); }
}
@keyframes gh-armor {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes gh-window {
  0% { opacity: 0.5; box-shadow: 0 0 10px rgba(180,160,130,0.2); }
  50% { opacity: 0.7; box-shadow: 0 0 20px rgba(180,160,130,0.4); }
  100% { opacity: 0.4; box-shadow: 0 0 5px rgba(180,160,130,0.1); }
}

.scn-chillingworth-rejects { background: linear-gradient(180deg, #2c3040 0%, #1a1e2e 30%, #0e1222 70%, #080a1a 100%), radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%); }
.scn-chillingworth-rejects .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a4050 0%, #1a1e2e 100%); opacity:0.6; animation: cr-sky 14s ease-in-out infinite alternate; }
.scn-chillingworth-rejects .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a2e22 0%, #1a1e12 40%, #0e120a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-chillingworth-rejects .figure-hester { position:absolute; bottom:30%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cr-hester 6s ease-in-out infinite; }
.scn-chillingworth-rejects .figure-chilling { position:absolute; bottom:30%; left:60%; width:22px; height:48px; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cr-chill 8s ease-in-out infinite; box-shadow: -4px 0 12px rgba(0,0,0,.5); }
.scn-chillingworth-rejects .shadow-chill { position:absolute; bottom:25%; left:58%; width:40px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius:50%; animation: cr-shad 8s ease-in-out infinite; }
.scn-chillingworth-rejects .tree-dead { position:absolute; bottom:35%; right:15%; width:8px; height:60px; background: linear-gradient(180deg, #2a2e22 0%, #1a1e12 100%); border-radius:20% 20% 0 0; transform: rotate(-10deg); transform-origin: bottom center; box-shadow: -2px 0 6px rgba(0,0,0,.3); }
.scn-chillingworth-rejects .tree-dead::before { content:''; position:absolute; top:8px; left:-12px; width:16px; height:6px; background:#1a1e12; border-radius:50% 50% 0 0; transform: rotate(-30deg); }
.scn-chillingworth-rejects .mist-a { position:absolute; bottom:30%; left:10%; width:120px; height:30px; background: linear-gradient(90deg, rgba(100,110,120,.15) 0%, rgba(100,110,120,.05) 100%); border-radius:50%; filter: blur(12px); animation: cr-mist-a 30s linear infinite; }
.scn-chillingworth-rejects .mist-b { position:absolute; bottom:35%; right:5%; width:100px; height:24px; background: linear-gradient(270deg, rgba(100,110,120,.12) 0%, rgba(100,110,120,.04) 100%); border-radius:50%; filter: blur(10px); animation: cr-mist-b 40s linear infinite reverse; }
@keyframes cr-sky { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes cr-hester { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-3deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cr-chill { 0% { transform: translateX(0) rotate(0) scaleX(1) } 30% { transform: translateX(-6px) rotate(-8deg) scaleX(1.05) } 60% { transform: translateX(-4px) rotate(-5deg) scaleX(.95) } 100% { transform: translateX(0) rotate(0) scaleX(1) } }
@keyframes cr-shad { 0% { width:40px; opacity:.6 } 30% { width:30px; opacity:.4 } 60% { width:34px; opacity:.5 } 100% { width:40px; opacity:.6 } }
@keyframes cr-mist-a { 0% { transform: translateX(-60px) } 50% { transform: translateX(30px) } 100% { transform: translateX(-60px) } }
@keyframes cr-mist-b { 0% { transform: translateX(0) } 50% { transform: translateX(-40px) } 100% { transform: translateX(0) } }

.scn-chillingworth-departs { background: linear-gradient(180deg, #2a3040 0%, #1a1e2e 30%, #0e1222 60%, #060a1a 100%), radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 80%); }
.scn-chillingworth-departs .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2e3226 0%, #1e2216 40%, #0e1208 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.7); }
.scn-chillingworth-departs .figure-old { position:absolute; bottom:28%; left:42%; width:24px; height:46px; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cd-fig 9s ease-in-out infinite; box-shadow: 0 0 20px rgba(0,0,0,.4); }
.scn-chillingworth-departs .figure-old::before { content:''; position:absolute; top:-10px; left:6px; width:12px; height:14px; background:#1a1a2a; border-radius:50% 50% 40% 40%; }
.scn-chillingworth-departs .herb-clump { position:absolute; bottom:25%; left:50%; width:20px; height:16px; background: radial-gradient(ellipse, #3a4a2a 0%, #1a2a12 70%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: cd-herb 6s ease-in-out infinite; }
.scn-chillingworth-departs .shadow-aura { position:absolute; bottom:22%; left:38%; width:80px; height:60px; background: radial-gradient(ellipse, rgba(0,0,0,.35) 0%, transparent 70%); border-radius:50%; animation: cd-aura 10s ease-in-out infinite; }
.scn-chillingworth-departs .grass-f { position:absolute; bottom:28%; left:30%; width:4px; height:20px; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius:0 0 40% 40%; transform-origin: bottom center; animation: cd-grass-f 4s ease-in-out infinite; }
.scn-chillingworth-departs .grass-f::before { content:''; position:absolute; bottom:0; left:-6px; width:4px; height:16px; background:#3a4a2a; border-radius:0 0 40% 40%; transform: rotate(-20deg); }
.scn-chillingworth-departs .grass-b { position:absolute; bottom:30%; left:55%; width:3px; height:14px; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a12 100%); border-radius:0 0 40% 40%; transform-origin: bottom center; animation: cd-grass-b 5s ease-in-out infinite 2s; }
.scn-chillingworth-departs .veil-a { position:absolute; top:10%; left:0; right:0; height:50%; background: linear-gradient(180deg, rgba(80,90,110,.1) 0%, transparent 100%); filter: blur(20px); animation: cd-veil 20s ease-in-out infinite; }
.scn-chillingworth-departs .veil-b { position:absolute; top:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(60,70,90,.08) 0%, transparent 100%); filter: blur(16px); animation: cd-veil 25s ease-in-out infinite 5s; }
@keyframes cd-fig { 0% { transform: translateX(0) rotate(0) scaleY(1) } 30% { transform: translateX(8px) rotate(10deg) scaleY(.95) } 60% { transform: translateX(4px) rotate(5deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes cd-herb { 0% { transform: scale(1) } 30% { transform: scale(.8) } 60% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes cd-aura { 0% { opacity:.3; transform: scale(1) } 30% { opacity:.6; transform: scale(1.2) } 60% { opacity:.4; transform: scale(.9) } 100% { opacity:.3; transform: scale(1) } }
@keyframes cd-grass-f { 0% { transform: rotate(0) } 25% { transform: rotate(8deg) } 50% { transform: rotate(-4deg) } 75% { transform: rotate(6deg) } 100% { transform: rotate(0) } }
@keyframes cd-grass-b { 0% { transform: rotate(0) } 30% { transform: rotate(-10deg) } 60% { transform: rotate(5deg) } 100% { transform: rotate(0) } }
@keyframes cd-veil { 0% { opacity:.3 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-hester-self-reproach { background: linear-gradient(180deg, #1a1e2e 0%, #0e1222 30%, #1a202e 60%, #0a0e1a 100%), radial-gradient(ellipse at 50% 40%, #2a3040 0%, transparent 70%); }
.scn-hester-self-reproach .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a2e3e 0%, #3a3e4e 30%, #2a2e3e 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.5); }
.scn-hester-self-reproach .floor { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #2a2a22 0%, #1a1a12 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-hester-self-reproach .window { position:absolute; top:15%; left:30%; width:80px; height:100px; background: linear-gradient(180deg, #3a4050 0%, #1a1e2e 100%); border: 4px solid #1a1a22; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.4); animation: hs-window 12s ease-in-out infinite; }
.scn-hester-self-reproach .window::after { content:''; position:absolute; top:0; left:50%; width:2px; height:100%; background: #1a1a22; transform:translateX(-50%); }
.scn-hester-self-reproach .figure-seated { position:absolute; bottom:30%; left:50%; width:24px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hs-fig 7s ease-in-out infinite; }
.scn-hester-self-reproach .desk { position:absolute; bottom:26%; left:40%; width:60px; height:8px; background: linear-gradient(180deg, #3a3228 0%, #2a2218 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: hs-desk 5s ease-in-out infinite; }
.scn-hester-self-reproach .candle { position:absolute; bottom:34%; left:52%; width:4px; height:12px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 20% 20%; transform-origin: bottom center; animation: hs-candle 4s ease-in-out infinite; }
.scn-hester-self-reproach .candle::before { content:''; position:absolute; top:-6px; left:-2px; width:8px; height:8px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,208,128,.4); animation: hs-flame 2s ease-in-out infinite alternate; }
.scn-hester-self-reproach .shadow-self { position:absolute; bottom:18%; left:50%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius:50%; transform:translateX(-50%); animation: hs-shad 7s ease-in-out infinite; }
.scn-hester-self-reproach .dust-a { position:absolute; top:20%; left:20%; width:6px; height:6px; background:rgba(200,200,220,.15); border-radius:50%; filter: blur(2px); animation: hs-dust 12s linear infinite; }
.scn-hester-self-reproach .dust-b { position:absolute; top:40%; left:60%; width:4px; height:4px; background:rgba(200,200,220,.12); border-radius:50%; filter: blur(1px); animation: hs-dust 15s linear infinite 5s; }
@keyframes hs-window { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes hs-fig { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-48%) rotate(3deg) } 50% { transform: translateX(-52%) rotate(-2deg) } 75% { transform: translateX(-49%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes hs-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hs-candle { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes hs-flame { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-1px) } 100% { transform: scale(.9) translateY(1px) } }
@keyframes hs-shad { 0% { transform: translateX(-50%) scale(1); opacity:.6 } 25% { transform: translateX(-48%) scale(.95); opacity:.5 } 50% { transform: translateX(-52%) scale(1.05); opacity:.7 } 75% { transform: translateX(-49%) scale(.98); opacity:.55 } 100% { transform: translateX(-50%) scale(1); opacity:.6 } }
@keyframes hs-dust { 0% { transform: translateY(0) translateX(0); opacity:0 } 20% { opacity:.8 } 80% { opacity:.6 } 100% { transform: translateY(-60px) translateX(20px); opacity:0 } }

.scn-hester-moral-reflection { background: linear-gradient(180deg, #0e1222 0%, #1a1e2e 30%, #0e1222 60%, #060a1a 100%), radial-gradient(ellipse at 50% 30%, #1a2a3a 0%, transparent 80%); }
.scn-hester-moral-reflection .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0a0e1a 0%, #12162e 40%, #0a0e1a 100%); animation: hm-bg 15s ease-in-out infinite alternate; }
.scn-hester-moral-reflection .figure-standing { position:absolute; bottom:25%; left:50%; width:22px; height:52px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hm-fig 8s ease-in-out infinite; }
.scn-hester-moral-reflection .scarlet-letter { position:absolute; bottom:40%; left:50%; width:14px; height:16px; transform:translateX(-50%); background: radial-gradient(circle, #b87878 0%, #8a4040 60%, #5e1a1d 100%); border-radius:4px; box-shadow: 0 0 20px 6px rgba(184,120,120,.3), 0 0 40px 12px rgba(184,120,120,.15); animation: hm-letter 6s ease-in-out infinite; }
.scn-hester-moral-reflection .light-ray-a { position:absolute; top:0; left:30%; width:2px; height:60%; background: linear-gradient(180deg, rgba(200,210,230,.08) 0%, transparent 100%); transform: rotate(8deg); transform-origin: top center; animation: hm-light-a 12s ease-in-out infinite; }
.scn-hester-moral-reflection .light-ray-b { position:absolute; top:0; left:60%; width:1px; height:50%; background: linear-gradient(180deg, rgba(200,210,230,.06) 0%, transparent 100%); transform: rotate(-6deg); transform-origin: top center; animation: hm-light-b 14s ease-in-out infinite 3s; }
.scn-hester-moral-reflection .chain-link { position:absolute; bottom:30%; left:50%; width:40px; height:2px; transform:translateX(-50%); background: linear-gradient(90deg, transparent 0%, rgba(180,180,200,.2) 20%, rgba(180,180,200,.2) 80%, transparent 100%); animation: hm-chain 10s ease-in-out infinite; }
.scn-hester-moral-reflection .chain-link::before { content:''; position:absolute; top:-20px; left:10px; width:20px; height:20px; border:1px solid rgba(180,180,200,.15); border-radius:50%; }
.scn-hester-moral-reflection .shadow-ground { position:absolute; bottom:18%; left:50%; width:70px; height:14px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); border-radius:50%; transform:translateX(-50%); animation: hm-shad 8s ease-in-out infinite; }
.scn-hester-moral-reflection .mote-a { position:absolute; top:15%; left:20%; width:4px; height:4px; background:rgba(200,210,230,.1); border-radius:50%; filter: blur(1px); animation: hm-mote 18s linear infinite; }
.scn-hester-moral-reflection .mote-b { position:absolute; top:30%; left:70%; width:3px; height:3px; background:rgba(200,210,230,.08); border-radius:50%; filter: blur(1px); animation: hm-mote 22s linear infinite 6s; }
@keyframes hm-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hm-fig { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-48%) rotate(2deg) } 50% { transform: translateX(-52%) rotate(-1deg) } 75% { transform: translateX(-49%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes hm-letter { 0% { transform: translateX(-50%) scale(1); opacity:.7 } 30% { transform: translateX(-50%) scale(1.15); opacity:1 } 60% { transform: translateX(-50%) scale(.95); opacity:.8 } 100% { transform: translateX(-50%) scale(1); opacity:.7 } }
@keyframes hm-light-a { 0% { opacity:.3 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes hm-light-b { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes hm-chain { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes hm-shad { 0% { transform: translateX(-50%) scale(1); opacity:.5 } 25% { transform: translateX(-48%) scale(.95); opacity:.4 } 50% { transform: translateX(-52%) scale(1.05); opacity:.6 } 75% { transform: translateX(-49%) scale(.98); opacity:.45 } 100% { transform: translateX(-50%) scale(1); opacity:.5 } }
@keyframes hm-mote { 0% { transform: translateY(0) translateX(0); opacity:0 } 20% { opacity:.6 } 80% { opacity:.4 } 100% { transform: translateY(-80px) translateX(30px); opacity:0 } }

/* Scene: hester-refuses – tense, sunlit */
.scn-hester-refuses {
  background: 
    linear-gradient(180deg, #fce4b8 0%, #e8c787 40%, #c99d5e 70%, #a87a3a 100%),
    radial-gradient(ellipse at 50% 40%, #fff8e0 0%, transparent 60%);
}
.scn-hester-refuses .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fffce8 0%, #ffe8b0 100%);
  animation: hst-sky 0.8s ease-in-out infinite alternate;
}
.scn-hester-refuses .sun-rim {
  position: absolute; top: 8%; left: 45%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8c8 0%, #ffd680 60%, transparent 100%);
  box-shadow: 0 0 60px 20px rgba(255, 200, 100, 0.6);
  animation: hst-sun 2s ease-in-out infinite alternate;
}
.scn-hester-refuses .scaffold {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: hst-shake 1.5s ease-in-out infinite;
}
.scn-hester-refuses .hester {
  position: absolute; bottom: 28%; left: 45%; width: 22px; height: 36px;
  background: linear-gradient(180deg, #2c2c3a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hst-figure 3s ease-in-out infinite;
}
.scn-hester-refuses .baby {
  position: absolute; bottom: 26%; left: 46.5%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: hst-baby 2s ease-in-out infinite alternate;
}
.scn-hester-refuses .letter {
  position: absolute; bottom: 32%; left: 48%; width: 6px; height: 8px;
  background: #702243;
  border-radius: 10%;
  box-shadow: 0 0 8px 2px #802244;
  animation: hst-glow-letter 1s ease-in-out infinite alternate;
}
.scn-hester-refuses .crowd-left,
.scn-hester-refuses .crowd-right {
  position: absolute; bottom: 18%; left: 10%; width: 30%; height: 20%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #3a3a4a 8px, #3a3a4a 10px);
  mask: linear-gradient(0deg, #000 40%, transparent 100%);
  -webkit-mask: linear-gradient(0deg, #000 40%, transparent 100%);
}
.scn-hester-refuses .crowd-right {
  left: auto; right: 10%;
}
@keyframes hst-sky {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.8; filter: brightness(0.95); }
}
@keyframes hst-sun {
  0% { transform: scale(0.9) translateY(2px); opacity: 0.8; }
  100% { transform: scale(1.1) translateY(-2px); opacity: 1; }
}
@keyframes hst-shake {
  0% { transform: translateX(-1px); }
  25% { transform: translateX(2px); }
  50% { transform: translateX(-1px); }
  75% { transform: translateX(1px); }
  100% { transform: translateX(0); }
}
@keyframes hst-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-2px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(1px) translateY(-2px) rotate(-1deg); }
  75% { transform: translateX(-1px) translateY(0) rotate(0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hst-baby {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-1px) scale(1.02); }
}
@keyframes hst-glow-letter {
  0% { box-shadow: 0 0 6px 2px #702243; opacity: 0.8; }
  100% { box-shadow: 0 0 12px 4px #802244; opacity: 1; }
}

/* Scene: dimmesdale-withdraws – tense, sunlit */
.scn-dimmesdale-withdraws {
  background: 
    linear-gradient(180deg, #eeddaa 0%, #ccbb88 40%, #aa9966 100%),
    radial-gradient(ellipse at 50% 20%, #fff8d0 0%, transparent 60%);
}
.scn-dimmesdale-withdraws .church-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #bbaa77 0%, #998866 100%);
  animation: dmw-church 10s ease-in-out infinite alternate;
}
.scn-dimmesdale-withdraws .pillar {
  position: absolute; top: 10%; bottom: 20%; width: 12px;
  background: linear-gradient(180deg, #775544 0%, #4a3322 100%);
  border-radius: 10%;
}
.scn-dimmesdale-withdraws .pillar.left { left: 20%; }
.scn-dimmesdale-withdraws .pillar.right { right: 20%; }
.scn-dimmesdale-withdraws .pulpit {
  position: absolute; bottom: 25%; left: 38%; right: 38%; height: 18%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: dmw-pulpit 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-withdraws .light-beam {
  position: absolute; top: 5%; left: 40%; right: 40%; height: 40%;
  background: linear-gradient(180deg, rgba(255,230,150,0.4) 0%, rgba(255,230,150,0) 100%);
  clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%);
  animation: dmw-light 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-withdraws .dimmesdale {
  position: absolute; bottom: 28%; left: 48%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmw-turn 5s ease-in-out infinite;
}
.scn-dimmesdale-withdraws .hester {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dmw-stand 6s ease-in-out infinite;
}
.scn-dimmesdale-withdraws .crowd {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 15%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 6px, #4a4a5a 6px, #4a4a5a 8px);
  mask: linear-gradient(0deg, #000 50%, transparent 80%);
  -webkit-mask: linear-gradient(0deg, #000 50%, transparent 80%);
  animation: dmw-crowd 12s ease-in-out infinite alternate;
}
@keyframes dmw-church {
  0% { opacity: 0.8; filter: brightness(0.9); }
  100% { opacity: 1; filter: brightness(1.05); }
}
@keyframes dmw-pulpit {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes dmw-light {
  0% { opacity: 0.3; transform: rotate(-2deg); }
  50% { opacity: 0.6; transform: rotate(0deg); }
  100% { opacity: 0.4; transform: rotate(2deg); }
}
@keyframes dmw-turn {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(8px) rotate(-20deg); }
  60% { transform: translateX(12px) rotate(-30deg); }
  100% { transform: translateX(16px) rotate(-25deg); }
}
@keyframes dmw-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dmw-crowd {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}

/* Scene: chillingworth-in-cell – dark, dim-interior */
.scn-chillingworth-in-cell {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #0a0a14 60%, #14141a 100%),
    radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-chillingworth-in-cell .cell-wall {
  position: absolute; inset: 0 10% 0 0;
  background: repeating-linear-gradient(0deg, #2a2a3a 0px, #2a2a3a 2px, transparent 2px, transparent 12px);
  opacity: 0.3;
  animation: cce-wall 20s linear infinite;
}
.scn-chillingworth-in-cell .cell-door {
  position: absolute; top: 10%; right: 5%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border: 2px solid #5a4a3a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
  animation: cce-door 15s ease-in-out infinite alternate;
}
.scn-chillingworth-in-cell .cot {
  position: absolute; bottom: 12%; left: 15%; right: 40%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-chillingworth-in-cell .lantern-glow {
  position: absolute; bottom: 40%; left: 20%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #ffb040 0%, #ff8020 40%, transparent 70%);
  box-shadow: 0 0 30px 10px rgba(255,128,32,0.5);
  animation: cce-lantern 3s ease-in-out infinite alternate;
}
.scn-chillingworth-in-cell .chillingworth {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cce-bend 5s ease-in-out infinite;
}
.scn-chillingworth-in-cell .hester {
  position: absolute; bottom: 20%; left: 10%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cce-sit 6s ease-in-out infinite;
}
.scn-chillingworth-in-cell .baby {
  position: absolute; bottom: 18%; left: 13%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: cce-wiggle 3s ease-in-out infinite;
}
.scn-chillingworth-in-cell .jailer-shadow {
  position: absolute; bottom: 5%; right: 15%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 60%);
  animation: cce-shadow 10s ease-in-out infinite alternate;
}
@keyframes cce-wall {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}
@keyframes cce-door {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(0.98); }
}
@keyframes cce-lantern {
  0% { box-shadow: 0 0 20px 8px rgba(255,128,32,0.4); opacity: 0.7; }
  50% { box-shadow: 0 0 35px 14px rgba(255,128,32,0.7); opacity: 1; }
  100% { box-shadow: 0 0 25px 10px rgba(255,128,32,0.5); opacity: 0.85; }
}
@keyframes cce-bend {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-5deg); }
  50% { transform: translateY(-8px) rotate(-10deg); }
  75% { transform: translateY(-4px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cce-sit {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cce-wiggle {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cce-shadow {
  0% { opacity: 0.2; transform: translateX(0); }
  100% { opacity: 0.4; transform: translateX(5px); }
}

/* Scene: chillingworth-medicine – dark, dim-interior */
.scn-chillingworth-medicine {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 60% 30%, #2a1a0a 0%, transparent 60%);
}
.scn-chillingworth-medicine .cell-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a14 100%);
  opacity: 0.8;
  animation: cmd-dark 20s ease-in-out infinite alternate;
}
.scn-chillingworth-medicine .table {
  position: absolute; bottom: 15%; left: 25%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
}
.scn-chillingworth-medicine .flask-left,
.scn-chillingworth-medicine .flask-right {
  position: absolute; bottom: 22%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 50%, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 40% 40% 20% 20%;
  opacity: 0.7;
}
.scn-chillingworth-medicine .flask-left { left: 32%; }
.scn-chillingworth-medicine .flask-right { left: 40%; }
.scn-chillingworth-medicine .flask-left { animation: cmd-flask-l 4s ease-in-out infinite; }
.scn-chillingworth-medicine .flask-right { animation: cmd-flask-r 4s ease-in-out infinite; }
.scn-chillingworth-medicine .lantern-glow {
  position: absolute; top: 25%; left: 50%; width: 16px; height: 22px;
  background: radial-gradient(circle at 50% 50%, #ffb040 0%, #cc8020 40%, transparent 70%);
  box-shadow: 0 0 25px 8px rgba(204,128,32,0.6);
  animation: cmd-lantern 3s ease-in-out infinite alternate;
}
.scn-chillingworth-medicine .chillingworth {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cmd-stoop 6s ease-in-out infinite;
}
.scn-chillingworth-medicine .hester {
  position: absolute; bottom: 18%; left: 10%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cmd-hold 5s ease-in-out infinite;
}
.scn-chillingworth-medicine .baby {
  position: absolute; bottom: 16%; left: 12%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: cmd-twitch 3s ease-in-out infinite;
}
@keyframes cmd-dark {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes cmd-flask-l {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(8deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cmd-flask-r {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cmd-lantern {
  0% { box-shadow: 0 0 20px 5px rgba(204,128,32,0.5); opacity: 0.8; }
  100% { box-shadow: 0 0 30px 10px rgba(204,128,32,0.7); opacity: 1; }
}
@keyframes cmd-stoop {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-6px) rotate(-8deg); }
  50% { transform: translateY(-10px) rotate(-12deg); }
  75% { transform: translateY(-6px) rotate(-8deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cmd-hold {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cmd-twitch {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(6deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* collector-memories */
.scn-collector-memories {
  background:
    linear-gradient(180deg, #1c1410 0%, #2a1e16 40%, #33251e 100%),
    radial-gradient(ellipse at 50% 70%, #3d2b1a 0%, transparent 70%);
}
.scn-collector-memories .bg-shadow {
  position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 60%); animation:cm-wall 20s ease-in-out infinite alternate; pointer-events:none;
}
.scn-collector-memories .fireplace {
  position:absolute; bottom:20%; left:50%; width:120px; height:100px; transform:translateX(-50%); background:linear-gradient(180deg, #3a2a1e 0%, #1a120e 100%); border-radius:20% 20% 8% 8%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.7);
}
.scn-collector-memories .flame-main {
  position:absolute; bottom:45%; left:50%; width:22px; height:60px; transform:translateX(-50%); background:radial-gradient(ellipse 50% 60%, #f5a832 0%, #d87c1a 60%, #8b4a0a 100%); border-radius:50% 50% 30% 30%; filter:blur(1px); animation:cm-flame 1.8s ease-in-out infinite alternate;
}
.scn-collector-memories .flame-side {
  position:absolute; bottom:47%; left:-12px; width:14px; height:40px; background:radial-gradient(ellipse 50% 60%, #f5a832 0%, #d87c1a 50%, #8b4a0a 100%); border-radius:50% 50% 30% 30%; filter:blur(1px); animation:cm-flame-side 2.2s ease-in-out infinite alternate;
}
.scn-collector-memories .chair {
  position:absolute; bottom:18%; left:30%; width:70px; height:80px; background:linear-gradient(135deg, #4a372a 0%, #2a1e16 100%); border-radius:40% 40% 20% 20%; transform-origin:bottom center; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation:cm-chair 8s ease-in-out infinite;
}
.scn-collector-memories .general {
  position:absolute; bottom:22%; left:34%; width:45px; height:70px; background:radial-gradient(ellipse 50% 60%, #2a1e16 0%, #1a120e 100%); border-radius:50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin:bottom center; animation:cm-general 6s ease-in-out infinite;
}
.scn-collector-memories .book {
  position:absolute; bottom:20%; left:36%; width:20px; height:14px; background:linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:2px; transform:rotate(-10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation:cm-book 12s ease-in-out infinite;
}
.scn-collector-memories .glow {
  position:absolute; inset:0; background:radial-gradient(ellipse at 50% 60%, rgba(200,100,30,0.2) 0%, transparent 60%); pointer-events:none; animation:cm-glow 4s ease-in-out infinite alternate;
}
@keyframes cm-wall { 0% { opacity:1 } 50% { opacity:0.7 } 100% { opacity:0.9 } }
@keyframes cm-flame { 0% { transform:translateX(-50%) scaleY(1) rotate(0deg) } 30% { transform:translateX(-50%) scaleY(1.1) rotate(3deg) } 60% { transform:translateX(-50%) scaleY(0.95) rotate(-2deg) } 100% { transform:translateX(-50%) scaleY(1.05) rotate(1deg) } }
@keyframes cm-flame-side { 0% { transform:translateX(-12px) scaleY(1) } 50% { transform:translateX(-8px) scaleY(1.1) } 100% { transform:translateX(-14px) scaleY(0.9) } }
@keyframes cm-chair { 0%,100% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(-2px) rotate(1deg) } }
@keyframes cm-general { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes cm-book { 0%,100% { transform:rotate(-10deg) } 50% { transform:rotate(-8deg) } }
@keyframes cm-glow { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* clerk-integrity */
.scn-clerk-integrity {
  background:
    linear-gradient(180deg, #1e1a16 0%, #2a221c 50%, #362a20 100%),
    radial-gradient(ellipse at 50% 70%, #3a2c20 0%, transparent 70%);
}
.scn-clerk-integrity .bg-office {
  position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 40%); pointer-events:none; animation:ci-wall 25s ease-in-out infinite alternate;
}
.scn-clerk-integrity .desk {
  position:absolute; bottom:15%; left:30%; width:160px; height:50px; background:linear-gradient(180deg, #4a382a 0%, #2a1e16 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 6px 16px rgba(0,0,0,0.6);
  transform:perspective(200px) rotateX(10deg);
}
.scn-clerk-integrity .clerk {
  position:absolute; bottom:30%; left:42%; width:40px; height:80px; background:radial-gradient(ellipse 50% 60%, #2a221c 0%, #1a1612 100%); border-radius:50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin:bottom center; animation:ci-clerk 7s ease-in-out infinite;
}
.scn-clerk-integrity .papers {
  position:absolute; bottom:20%; left:34%; width:50px; height:4px; background:linear-gradient(90deg, #c8b894 0%, #a08060 50%, #c8b894 100%); border-radius:2px; transform:rotate(-5deg); animation:ci-papers 14s ease-in-out infinite;
}
.scn-clerk-integrity .inkwell {
  position:absolute; bottom:22%; left:64%; width:12px; height:16px; background:linear-gradient(180deg, #2a1e16 0%, #0a0a08 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation:ci-inkwell 10s ease-in-out infinite;
}
.scn-clerk-integrity .lamp {
  position:absolute; bottom:40%; left:60%; width:18px; height:30px; background:linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(200,160,96,0.3); animation:ci-lamp 5s ease-in-out infinite alternate;
}
.scn-clerk-integrity .window-rain {
  position:absolute; top:8%; right:10%; width:80px; height:100px; background:linear-gradient(180deg, rgba(180,200,210,0.15) 0%, rgba(100,120,140,0.1) 100%); border:2px solid rgba(100,80,60,0.3); border-radius:4%; overflow:hidden; animation:ci-rain 0s; pointer-events:none;
}
.scn-clerk-integrity .window-rain::after {
  content:''; position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 8px, rgba(180,200,210,0.08) 8px, rgba(180,200,210,0.08) 10px); animation:ci-rain-streak 3s linear infinite;
}
.scn-clerk-integrity .lamp-glow {
  position:absolute; top:30%; left:50%; width:80px; height:80px; background:radial-gradient(circle, rgba(200,160,96,0.2) 0%, transparent 70%); pointer-events:none; animation:ci-lamp-glow 6s ease-in-out infinite alternate;
}
@keyframes ci-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ci-clerk { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes ci-papers { 0% { transform:rotate(-5deg) translateX(0) } 50% { transform:rotate(-3deg) translateX(2px) } 100% { transform:rotate(-5deg) translateX(0) } }
@keyframes ci-inkwell { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes ci-lamp { 0% { transform:translateY(0) opacity:0.9; box-shadow:0 0 15px 4px rgba(200,160,96,0.3) } 50% { transform:translateY(-1px) opacity:1; box-shadow:0 0 25px 8px rgba(200,160,96,0.5) } 100% { transform:translateY(0) opacity:0.95; box-shadow:0 0 18px 5px rgba(200,160,96,0.35) } }
@keyframes ci-rain-streak { 0% { transform:translateY(-2px) } 100% { transform:translateY(20px) } }
@keyframes ci-lamp-glow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

/* literary-change */
.scn-literary-change {
  background:
    linear-gradient(180deg, #1a1412 0%, #241e1a 50%, #2a201c 100%),
    radial-gradient(ellipse at 50% 70%, #302418 0%, transparent 70%);
}
.scn-literary-change .bg-dim {
  position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 30%); pointer-events:none; animation:lc-wall 30s ease-in-out infinite alternate;
}
.scn-literary-change .armchair {
  position:absolute; bottom:15%; left:30%; width:90px; height:80px; background:linear-gradient(135deg, #3a2a1e 0%, #1e1410 100%); border-radius:50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin:bottom center; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation:lc-chair 9s ease-in-out infinite;
}
.scn-literary-change .figure-slumped {
  position:absolute; bottom:18%; left:35%; width:50px; height:70px; background:radial-gradient(ellipse 50% 60%, #2a1e16 0%, #120e0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:lc-figure 7s ease-in-out infinite;
}
.scn-literary-change .bookshelf {
  position:absolute; top:12%; left:12%; width:80px; height:160px; background:linear-gradient(180deg, #2a1e16 0%, #1a120e 100%); border-radius:4%; overflow:hidden;
}
.scn-literary-change .bookshelf::before {
  content:''; position:absolute; top:20%; left:10%; width:80%; height:10%; background:linear-gradient(90deg, #6a4a2a 0%, #4a3020 100%); border-radius:2px; animation:lc-book 14s ease-in-out infinite;
}
.scn-literary-change .bookshelf::after {
  content:''; position:absolute; top:45%; left:15%; width:70%; height:12%; background:linear-gradient(90deg, #5a3a20 0%, #3a2212 100%); border-radius:2px; animation:lc-book2 16s ease-in-out infinite;
}
.scn-literary-change .blurred-window {
  position:absolute; top:5%; right:8%; width:100px; height:120px; background:radial-gradient(ellipse at 50% 50%, rgba(200,210,180,0.1) 0%, rgba(100,120,100,0.05) 100%); border:2px solid rgba(80,60,40,0.3); border-radius:6%; filter:blur(6px); animation:lc-window 20s ease-in-out infinite alternate;
}
.scn-literary-change .candle {
  position:absolute; bottom:30%; left:68%; width:8px; height:20px; background:linear-gradient(180deg, #f5d6b0 0%, #c8a060 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 12px 2px rgba(200,160,96,0.4); animation:lc-candle 4s ease-in-out infinite alternate;
}
.scn-literary-change .candle-glow {
  position:absolute; bottom:28%; left:62%; width:50px; height:50px; background:radial-gradient(circle, rgba(200,160,96,0.2) 0%, transparent 70%); pointer-events:none; animation:lc-candle-glow 5s ease-in-out infinite alternate;
}
@keyframes lc-wall { 0% { opacity:0.9 } 50% { opacity:0.7 } 100% { opacity:0.85 } }
@keyframes lc-chair { 0%,100% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-3px) rotate(1deg) } }
@keyframes lc-figure { 0%,100% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-2px) rotate(2deg) } }
@keyframes lc-book { 0% { transform:translateX(0) scaleX(1) } 50% { transform:translateX(2px) scaleX(1.05) } 100% { transform:translateX(0) scaleX(1) } }
@keyframes lc-book2 { 0%,100% { transform:translateX(0) } 50% { transform:translateX(-3px) } }
@keyframes lc-window { 0% { opacity:0.15; filter:blur(6px) } 50% { opacity:0.25; filter:blur(4px) } 100% { opacity:0.15; filter:blur(6px) } }
@keyframes lc-candle { 0% { transform:translateY(0) scaleY(1) } 30% { transform:translateY(-1px) scaleY(1.05) } 60% { transform:translateY(0) scaleY(0.95) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes lc-candle-glow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

/* surveyor-duties */
.scn-surveyor-duties {
  background:
    linear-gradient(180deg, #1c1814 0%, #28201a 50%, #33261e 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1e 0%, transparent 70%);
}
.scn-surveyor-duties .bg-dark {
  position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 40%); pointer-events:none; animation:sd-wall 22s ease-in-out infinite alternate;
}
.scn-surveyor-duties .desk-wide {
  position:absolute; bottom:10%; left:20%; width:200px; height:40px; background:linear-gradient(180deg, #4a382a 0%, #2a1e16 100%); border-radius:6% 6% 2% 2%; box-shadow: 0 6px 16px rgba(0,0,0,0.5);
}
.scn-surveyor-duties .surveyor {
  position:absolute; bottom:25%; left:40%; width:45px; height:85px; background:radial-gradient(ellipse 50% 60%, #2a221c 0%, #1a1612 100%); border-radius:50% 50% 35% 35% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sd-surveyor 8s ease-in-out infinite;
}
.scn-surveyor-duties .map {
  position:absolute; bottom:16%; left:28%; width:80px; height:20px; background:linear-gradient(135deg, #c8a060 0%, #a08050 100%); border-radius:4%; transform:rotate(-8deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation:sd-map 15s ease-in-out infinite;
}
.scn-surveyor-duties .scales {
  position:absolute; bottom:14%; left:58%; width:30px; height:30px; background:linear-gradient(135deg, #6a5030 0%, #3a2818 100%); border-radius:50%; box-shadow: 0 3px 6px rgba(0,0,0,0.5); animation:sd-scales 12s ease-in-out infinite;
}
.scn-surveyor-duties .quill {
  position:absolute; bottom:20%; left:48%; width:2px; height:30px; background:linear-gradient(180deg, #f0e0c0 0%, #b09878 100%); transform:rotate(30deg); transform-origin:bottom center; animation:sd-quill 6s ease-in-out infinite alternate;
}
.scn-surveyor-duties .lantern {
  position:absolute; bottom:35%; left:68%; width:16px; height:28px; background:linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 18px 4px rgba(200,160,96,0.3); animation:sd-lantern 5s ease-in-out infinite alternate;
}
.scn-surveyor-duties .lantern-glow {
  position:absolute; top:20%; left:60%; width:70px; height:70px; background:radial-gradient(circle, rgba(200,160,96,0.15) 0%, transparent 70%); pointer-events:none; animation:sd-lantern-glow 4s ease-in-out infinite alternate;
}
@keyframes sd-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sd-surveyor { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes sd-map { 0% { transform:rotate(-8deg) translateX(0) } 50% { transform:rotate(-6deg) translateX(2px) } 100% { transform:rotate(-8deg) translateX(0) } }
@keyframes sd-scales { 0%,100% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(2deg) } }
@keyframes sd-quill { 0% { transform:rotate(28deg) } 50% { transform:rotate(32deg) } 100% { transform:rotate(28deg) } }
@keyframes sd-lantern { 0% { transform:translateY(0) opacity:0.9; box-shadow:0 0 15px 4px rgba(200,160,96,0.3) } 50% { transform:translateY(-2px) opacity:1; box-shadow:0 0 25px 8px rgba(200,160,96,0.5) } 100% { transform:translateY(0) opacity:0.95; box-shadow:0 0 18px 5px rgba(200,160,96,0.35) } }
@keyframes sd-lantern-glow { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }

/* --------------------------------------------------------- */
/* forest-planning – tense overcast forest with two on a log */
/* --------------------------------------------------------- */
.scn-forest-planning {
  background:
    linear-gradient(180deg, #3a4b3a 0%, #2d3a2d 30%, #1a221a 100%),
    radial-gradient(ellipse at 50% 80%, #2d3a2d 0%, transparent 80%);
}
.scn-forest-planning .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a5a4a 0%, transparent 60%);
  animation: fp-bg 20s ease-in-out infinite alternate;
}
.scn-forest-planning .tree-left {
  position: absolute; left: 5%; bottom: 10%; width: 12px; height: 65%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 6px 6px 0 0;
  transform-origin: bottom center;
  animation: fp-tree 8s ease-in-out infinite alternate;
}
.scn-forest-planning .tree-right {
  position: absolute; right: 5%; bottom: 10%; width: 14px; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 7px 7px 0 0;
  transform-origin: bottom center;
  animation: fp-tree 10s ease-in-out infinite alternate-reverse;
}
.scn-forest-planning .fallen-log {
  position: absolute; bottom: 12%; left: 25%; width: 50%; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% / 80% 80% 20% 20%;
  box-shadow: inset 0 -6px 10px rgba(0,0,0,0.4);
  animation: fp-log 15s ease-in-out infinite alternate;
}
.scn-forest-planning .figure1 {
  position: absolute; bottom: 12%; left: 32%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-fig1 6s ease-in-out infinite alternate;
}
.scn-forest-planning .figure2 {
  position: absolute; bottom: 12%; left: 48%; width: 22px; 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: fp-fig2 5s ease-in-out infinite alternate;
}
.scn-forest-planning .leaf {
  position: absolute; width: 8px; height: 4px;
  background: #6a4a2a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.6;
}
.scn-forest-planning .leaf-a {
  top: 30%; left: 10%;
  animation: fp-leaf 12s linear infinite;
}
.scn-forest-planning .leaf-b {
  top: 40%; left: 60%;
  animation: fp-leaf 15s linear infinite 3s;
}
@keyframes fp-bg { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes fp-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-0.5deg) } }
@keyframes fp-log { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fp-fig1 { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fp-fig2 { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fp-leaf { 0% { transform: translateY(0) rotate(0deg) opacity: 0.6 } 25% { transform: translateY(30vh) translateX(20px) rotate(90deg) opacity: 0.4 } 50% { transform: translateY(60vh) translateX(-10px) rotate(180deg) opacity: 0.2 } 75% { transform: translateY(90vh) translateX(10px) rotate(270deg) opacity: 0.1 } 100% { transform: translateY(120vh) rotate(360deg) opacity: 0 } }

/* --------------------------------------------------------- */
/* escape-planned – two standing figures on a leaf path      */
/* --------------------------------------------------------- */
.scn-escape-planned {
  background:
    linear-gradient(180deg, #3a4b3a 0%, #2d3a2d 30%, #1a221a 100%),
    radial-gradient(ellipse at 30% 20%, #5a6a5a 0%, transparent 70%);
}
.scn-escape-planned .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a5a4a 0%, transparent 60%);
  animation: ep-bg 25s ease-in-out infinite alternate;
}
.scn-escape-planned .path {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 5%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 60% / 80% 80% 20% 20%;
  filter: blur(2px);
  animation: ep-path 12s ease-in-out infinite alternate;
}
.scn-escape-planned .leaves-ground {
  position: absolute; bottom: 5%; left: 20%; width: 60%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, #6a5a3a 0%, transparent 80%);
  animation: ep-leaves 18s ease-in-out infinite alternate;
}
.scn-escape-planned .figure1 {
  position: absolute; bottom: 8%; left: 38%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ep-fig1 4s ease-in-out infinite alternate;
}
.scn-escape-planned .figure2 {
  position: absolute; bottom: 8%; left: 50%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ep-fig2 3.5s ease-in-out infinite alternate-reverse;
}
.scn-escape-planned .branch {
  position: absolute; top: 20%; left: 10%; width: 60%; height: 6px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: ep-branch 7s ease-in-out infinite alternate;
}
.scn-escape-planned .cloud {
  position: absolute; top: 15%; left: 40%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(200,200,200,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: ep-cloud 40s linear infinite;
}
@keyframes ep-bg { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes ep-path { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes ep-leaves { 0% { opacity: 0.5; transform: translateX(0) } 50% { opacity: 0.8; transform: translateX(5px) } 100% { opacity: 0.6; transform: translateX(-5px) } }
@keyframes ep-fig1 { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ep-fig2 { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ep-branch { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-12deg) translateX(1px) } 100% { transform: rotate(-9deg) translateX(-1px) } }
@keyframes ep-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

/* --------------------------------------------------------- */
/* dimmesdale-weakness – kneeling/standing under tree        */
/* --------------------------------------------------------- */
.scn-dimmesdale-weakness {
  background:
    linear-gradient(180deg, #1a221a 0%, #2d3a2d 40%, #3a4b3a 100%),
    radial-gradient(ellipse at 50% 100%, #1a221a 0%, transparent 70%);
}
.scn-dimmesdale-weakness .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2d3a2d 0%, transparent 70%);
  animation: dw-bg 18s ease-in-out infinite alternate;
}
.scn-dimmesdale-weakness .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-dimmesdale-weakness .tree-root {
  position: absolute; bottom: 25%; left: 20%; width: 40%; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  transform: rotate(8deg);
  animation: dw-root 9s ease-in-out infinite alternate;
}
.scn-dimmesdale-weakness .figure-kneeling {
  position: absolute; bottom: 15%; left: 42%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw-kneel 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-weakness .figure-standing {
  position: absolute; bottom: 15%; left: 55%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dw-stand 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-weakness .rock {
  position: absolute; bottom: 18%; left: 35%; width: 16px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  animation: dw-rock 11s ease-in-out infinite alternate;
}
.scn-dimmesdale-weakness .leaf-falling {
  position: absolute; top: 5%; left: 30%; width: 6px; height: 3px;
  background: #6a4a2a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.5;
  animation: dw-leaf 8s linear infinite;
}
@keyframes dw-bg { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes dw-root { 0% { transform: rotate(8deg) translateX(0) } 50% { transform: rotate(10deg) translateX(2px) } 100% { transform: rotate(7deg) translateX(-2px) } }
@keyframes dw-kneel { 0% { transform: scaleY(1) rotate(0deg) } 50% { transform: scaleY(1.02) rotate(-2deg) } 100% { transform: scaleY(0.98) rotate(1deg) } }
@keyframes dw-stand { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes dw-rock { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes dw-leaf { 0% { transform: translateY(0) rotate(0deg) opacity: 0.5 } 25% { transform: translateY(30vh) translateX(10px) rotate(45deg) opacity: 0.4 } 50% { transform: translateY(60vh) translateX(-5px) rotate(90deg) opacity: 0.3 } 75% { transform: translateY(90vh) translateX(15px) rotate(135deg) opacity: 0.2 } 100% { transform: translateY(120vh) rotate(180deg) opacity: 0 } }

/* --------------------------------------------------------- */
/* freedom-options – figure on shore facing sea               */
/* --------------------------------------------------------- */
.scn-freedom-options {
  background:
    linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 30%, #8a9a9a 100%),
    radial-gradient(ellipse at 50% 100%, #6a7a8a 0%, transparent 70%);
}
.scn-freedom-options .bg-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8a9a9a 0%, #5a6a7a 100%);
  animation: fo-sky 15s ease-in-out infinite alternate;
}
.scn-freedom-options .bg-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  animation: fo-sea 20s ease-in-out infinite alternate;
}
.scn-freedom-options .shore {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #6a5a4a 0%, #5a4a3a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: fo-shore 14s ease-in-out infinite alternate;
}
.scn-freedom-options .figure {
  position: absolute; bottom: 8%; left: 50%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: fo-fig 4s ease-in-out infinite alternate;
}
.scn-freedom-options .ship {
  position: absolute; bottom: 40%; left: 70%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%;
  animation: fo-ship 45s linear infinite;
}
.scn-freedom-options .wave {
  position: absolute; bottom: 15%; left: 10%; width: 120%; height: 8px;
  background: linear-gradient(180deg, rgba(200,200,230,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: fo-wave 8s ease-in-out infinite alternate;
}
.scn-freedom-options .cloud {
  position: absolute; top: 20%; left: 50%; width: 90px; height: 18px;
  background: linear-gradient(180deg, rgba(220,220,230,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fo-cloud 50s linear infinite;
}
@keyframes fo-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes fo-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fo-shore { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes fo-fig { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes fo-ship { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes fo-wave { 0% { transform: translateX(-20px) scaleY(1) } 50% { transform: translateX(10px) scaleY(1.5) } 100% { transform: translateX(20px) scaleY(1) } }
@keyframes fo-cloud { 0% { transform: translateX(-50px) } 100% { transform: translateX(130vw) } }

/* Scene: pearl-evasive (tense, sunlit) */
.scn-pearl-evasive {
  background: linear-gradient(180deg, #f0d6a0 0%, #e8c88a 30%, #c89a5a 60%, #8a6a3a 100%),
              radial-gradient(ellipse at 60% 20%, rgba(255, 240, 180, 0.5) 0%, transparent 70%);
}
.scn-pearl-evasive .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f2e3b8 0%, #d6b87a 100%);
  animation: pe-sky 12s ease-in-out infinite alternate;
}
.scn-pearl-evasive .sun-rays {
  position: absolute; top: 5%; left: 30%; width: 60%; height: 80%;
  background: linear-gradient(135deg, rgba(255, 255, 200, 0.3) 0%, transparent 50%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pe-rays 6s ease-in-out infinite;
}
.scn-pearl-evasive .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-pearl-evasive .hester {
  position: absolute; bottom: 28%; left: 35%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-hester 4s ease-in-out infinite;
}
.scn-pearl-evasive .pearl {
  position: absolute; bottom: 20%; left: 48%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-pearl 4s ease-in-out infinite;
}
.scn-pearl-evasive .letter {
  position: absolute; bottom: 40%; left: 37%; width: 24px; height: 24px;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  background: radial-gradient(circle, #b33a2a 0%, #7a2a1a 70%);
  box-shadow: 0 0 16px 6px rgba(180, 60, 40, 0.6), 0 0 32px 12px rgba(180, 60, 40, 0.3);
  animation: pe-letter 3s ease-in-out infinite alternate;
}
.scn-pearl-evasive .bush {
  position: absolute; bottom: 20%; right: 10%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #2a3a1a 100%);
  border-radius: 60% 40% 20% 80% / 70% 60% 40% 30%;
  filter: blur(2px);
  animation: pe-bush 8s ease-in-out infinite alternate;
}
@keyframes pe-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pe-rays { 0% { transform: translateX(-5px) rotate(-2deg); opacity: 0.4 } 50% { transform: translateX(5px) rotate(2deg); opacity: 0.6 } 100% { transform: translateX(-5px) rotate(-2deg); opacity: 0.4 } }
@keyframes pe-hester { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes pe-pearl { 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(1deg) } }
@keyframes pe-letter { 0% { box-shadow: 0 0 16px 6px rgba(180, 60, 40, 0.6); opacity: 0.85 } 50% { box-shadow: 0 0 24px 12px rgba(200, 80, 60, 0.8); opacity: 1 } 100% { box-shadow: 0 0 16px 6px rgba(180, 60, 40, 0.6); opacity: 0.85 } }
@keyframes pe-bush { 0% { transform: scale(0.95) translateY(0) } 50% { transform: scale(1.05) translateY(-3px) } 100% { transform: scale(0.95) translateY(0) } }

/* Scene: hester-hesitates (tense, sunlit) */
.scn-hester-hesitates {
  background: linear-gradient(180deg, #f2dbb2 0%, #d6b87a 40%, #b09050 70%, #8a6a3a 100%),
              radial-gradient(ellipse at 40% 30%, rgba(255, 230, 170, 0.4) 0%, transparent 60%);
}
.scn-hester-hesitates .bg-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(255, 220, 150, 0.3) 0%, transparent 70%);
  animation: hh-glow 8s ease-in-out infinite alternate;
}
.scn-hester-hesitates .arm-hester {
  position: absolute; bottom: 30%; left: 20%; width: 18px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 30% 70% / 50% 50% 40% 60%;
  transform-origin: 50% 100%;
  animation: hh-arm 4s ease-in-out infinite;
}
.scn-hester-hesitates .hand-pearl {
  position: absolute; bottom: 28%; left: 38%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hh-hand 4s ease-in-out infinite;
}
.scn-hester-hesitates .letter {
  position: absolute; bottom: 42%; left: 25%; width: 28px; height: 28px;
  background: radial-gradient(circle at 50% 50%, #b33a2a 0%, #7a2a1a 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(180, 60, 40, 0.5), 0 0 40px 16px rgba(180, 60, 40, 0.2);
  animation: hh-letter 3s ease-in-out infinite alternate;
}
.scn-hester-hesitates .shimmer {
  position: absolute; top: 20%; left: 30%; width: 50%; height: 10%;
  background: linear-gradient(90deg, transparent, rgba(255,255,200,0.2), transparent);
  transform: rotate(-20deg);
  animation: hh-shimmer 5s ease-in-out infinite;
}
@keyframes hh-glow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes hh-arm { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(-2deg) translateY(0) } 75% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes hh-hand { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 50% { transform: translateX(3px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes hh-letter { 0% { box-shadow: 0 0 16px 6px rgba(180, 60, 40, 0.5); opacity: 0.9 } 50% { box-shadow: 0 0 28px 14px rgba(200, 80, 60, 0.7); opacity: 1 } 100% { box-shadow: 0 0 16px 6px rgba(180, 60, 40, 0.5); opacity: 0.9 } }
@keyframes hh-shimmer { 0% { transform: translateX(-10%) rotate(-20deg); opacity: 0 } 50% { transform: translateX(10%) rotate(-20deg); opacity: 0.6 } 100% { transform: translateX(-10%) rotate(-20deg); opacity: 0 } }

/* Scene: hester-refuses-child (dark, sunlit) */
.scn-hester-refuses-child {
  background: linear-gradient(180deg, #c9a85a 0%, #a08040 30%, #706020 70%, #403010 100%),
              radial-gradient(ellipse at 80% 30%, rgba(255, 220, 140, 0.6) 0%, transparent 70%);
}
.scn-hester-refuses-child .sky-harsh {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e8d08a 0%, #b89850 100%);
  animation: hrc-sky 10s ease-in-out infinite alternate;
}
.scn-hester-refuses-child .shadow-stripe {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: hrc-shadow 6s ease-in-out infinite;
}
.scn-hester-refuses-child .hester-back {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrc-hester 5s ease-in-out infinite;
}
.scn-hester-refuses-child .pearl-reaching {
  position: absolute; bottom: 18%; left: 48%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrc-pearl 4s ease-in-out infinite;
}
.scn-hester-refuses-child .letter-glare {
  position: absolute; bottom: 35%; left: 37%; width: 24px; height: 24px;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  background: radial-gradient(circle, #a04030 0%, #602010 70%);
  box-shadow: 0 0 30px 12px rgba(160, 70, 40, 0.7), 0 0 60px 24px rgba(160, 70, 40, 0.3);
  animation: hrc-letter 2.5s ease-in-out infinite alternate;
}
.scn-hester-refuses-child .stones {
  position: absolute; bottom: 5%; left: 20%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 20% 80% / 50% 50% 30% 70%;
  filter: blur(1px);
  animation: hrc-stones 10s ease-in-out infinite alternate;
}
@keyframes hrc-sky { 0% { opacity: 0.9 } 50% { opacity: 0.6 } 100% { opacity: 0.9 } }
@keyframes hrc-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes hrc-hester { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(2px) translateY(-3px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes hrc-pearl { 0% { transform: translateX(0) translateY(0) rotate(3deg) scale(1) } 25% { transform: translateX(3px) translateY(-2px) rotate(-1deg) scale(0.95) } 50% { transform: translateX(0) translateY(0) rotate(3deg) scale(1) } 75% { transform: translateX(-3px) translateY(-2px) rotate(-1deg) scale(0.95) } 100% { transform: translateX(0) translateY(0) rotate(3deg) scale(1) } }
@keyframes hrc-letter { 0% { box-shadow: 0 0 20px 8px rgba(160, 70, 40, 0.5); opacity: 0.8 } 50% { box-shadow: 0 0 40px 20px rgba(180, 80, 50, 0.9); opacity: 1 } 100% { box-shadow: 0 0 20px 8px rgba(160, 70, 40, 0.5); opacity: 0.8 } }
@keyframes hrc-stones { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.03) } 100% { transform: translateY(0) scale(1) } }

/* Scene: hester-resolves-to-tell (tense, dim-interior) */
.scn-hester-resolves-to-tell {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%),
              radial-gradient(ellipse at 40% 20%, rgba(180, 120, 60, 0.3) 0%, transparent 70%);
}
.scn-hester-resolves-to-tell .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-hester-resolves-to-tell .window-frame {
  position: absolute; top: 15%; left: 35%; width: 60px; height: 80px;
  border: 6px solid #4a3a2a;
  border-radius: 8% 8% 4% 4%;
  background: transparent;
  box-shadow: inset 0 0 0 4px #3a2a1a;
  animation: hrt-frame 6s ease-in-out infinite;
}
.scn-hester-resolves-to-tell .window-light {
  position: absolute; top: 18%; left: 38%; width: 50px; height: 70px;
  background: linear-gradient(180deg, rgba(200, 180, 140, 0.3) 0%, transparent 100%);
  filter: blur(4px);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: hrt-light 4s ease-in-out infinite alternate;
}
.scn-hester-resolves-to-tell .hester-silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrt-hester 5s ease-in-out infinite;
}
.scn-hester-resolves-to-tell .desk {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-hester-resolves-to-tell .candle {
  position: absolute; bottom: 30%; left: 32%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #e0c080 0%, #b09050 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(220, 180, 100, 0.6);
  animation: hrt-candle 3s ease-in-out infinite alternate;
}
.scn-hester-resolves-to-tell .shadow-chill {
  position: absolute; bottom: 18%; right: 20%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 40% 60% 50% 50% / 60% 70% 30% 40%;
  filter: blur(6px);
  animation: hrt-shadow 8s ease-in-out infinite;
}
@keyframes hrt-frame { 0% { box-shadow: inset 0 0 0 4px #3a2a1a; } 50% { box-shadow: inset 0 0 0 6px #5a4a3a; } 100% { box-shadow: inset 0 0 0 4px #3a2a1a; } }
@keyframes hrt-light { 0% { opacity: 0.3; transform: scale(1) } 50% { opacity: 0.5; transform: scale(1.05) } 100% { opacity: 0.3; transform: scale(1) } }
@keyframes hrt-hester { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-2px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes hrt-candle { 0% { transform: scaleY(1) translateX(0); opacity: 0.8 } 50% { transform: scaleY(1.1) translateX(1px); opacity: 1 } 100% { transform: scaleY(1) translateX(0); opacity: 0.8 } }
@keyframes hrt-shadow { 0% { transform: translateX(0) scale(1); opacity: 0.4 } 50% { transform: translateX(-3px) scale(1.05); opacity: 0.6 } 100% { transform: translateX(0) scale(1); opacity: 0.4 } }

/* chillingworth-oath – dim interior, dark mood, firelit glow */
.scn-chillingworth-oath {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e16 30%, #3a2a1e 60%, #1e1410 100%),
    radial-gradient(ellipse at 40% 60%, #4a2a1a 0%, transparent 70%);
}
.scn-chillingworth-oath .interior-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent 30%, rgba(60,40,30,0.4) 50%, transparent 70%);
  animation: cho-wall 12s ease-in-out infinite alternate;
}
.scn-chillingworth-oath .candle-flicker {
  position: absolute; bottom: 35%; left: 22%; width: 8px; height: 20px;
  background: radial-gradient(ellipse 4px 8px at 50% 0%, #ffb84d 0%, #cc7722 50%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 10px #cc7722, 0 0 60px 20px rgba(204,119,34,0.3);
  animation: cho-candle 2s ease-in-out infinite alternate;
}
.scn-chillingworth-oath .chillingworth-figure {
  position: absolute; bottom: 20%; right: 25%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cho-figure 8s ease-in-out infinite;
}
.scn-chillingworth-oath .chillingworth-eye {
  position: absolute; bottom: 65%; right: 38%; width: 6px; height: 4px;
  background: radial-gradient(circle, #b85c1a 0%, #8a3f0f 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #b85c1a, 0 0 24px 8px rgba(184,92,26,0.5);
  animation: cho-eye 3s ease-in-out infinite alternate;
}
.scn-chillingworth-oath .hester-silhouette {
  position: absolute; bottom: 18%; left: 30%; width: 40px; height: 75px;
  background: linear-gradient(180deg, #1e1410 0%, #0e0a08 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: cho-hester 6s ease-in-out infinite;
}
.scn-chillingworth-oath .hester-hands {
  position: absolute; bottom: 40%; left: 33%; width: 12px; height: 10px;
  background: radial-gradient(ellipse, #2a1e16 0%, #1a1410 100%);
  border-radius: 50% 40% 40% 50%;
  animation: cho-hands 4s ease-in-out infinite alternate;
}
.scn-chillingworth-oath .shadow-pool {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(10,8,6,0.8) 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  filter: blur(8px);
  animation: cho-shadow 12s ease-in-out infinite alternate;
}
@keyframes cho-wall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cho-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; box-shadow: 0 0 20px 6px #cc7722; } 50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; box-shadow: 0 0 40px 14px #cc7722; } 100% { transform: scaleY(0.9) translateY(1px); opacity: 0.8; box-shadow: 0 0 15px 4px #cc7722; } }
@keyframes cho-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cho-eye { 0% { transform: scale(1); box-shadow: 0 0 8px 2px #b85c1a; } 50% { transform: scale(1.3); box-shadow: 0 0 18px 6px #b85c1a; } 100% { transform: scale(0.9); box-shadow: 0 0 10px 3px #b85c1a; } }
@keyframes cho-hester { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(-3px) rotate(-3deg); } 66% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cho-hands { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cho-shadow { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.2); } 100% { opacity: 0.6; transform: scaleY(0.9); } }

/* chillingworth-secret – dim interior, dark mood, moonlit through window */
.scn-chillingworth-secret {
  background:
    linear-gradient(180deg, #0c0e12 0%, #181c24 40%, #222a36 70%, #0c0e12 100%),
    radial-gradient(ellipse at 60% 30%, #2a3442 0%, transparent 70%);
}
.scn-chillingworth-secret .room-back {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #0c0e12 20%, #181c24 50%, #0c0e12 80%);
  animation: chs-back 15s ease-in-out infinite alternate;
}
.scn-chillingworth-secret .window-moon {
  position: absolute; top: 10%; right: 15%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 40%, #aac8ff 0%, #3a5a7a 70%, transparent 90%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 0 20px 10px rgba(170,200,255,0.2);
  animation: chs-window 8s ease-in-out infinite alternate;
}
.scn-chillingworth-secret .chillingworth-point {
  position: absolute; bottom: 15%; left: 35%; width: 55px; height: 85px;
  background: linear-gradient(180deg, #1a202a 0%, #0e1218 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: chs-point 7s ease-in-out infinite;
}
.scn-chillingworth-secret .hester-bundle {
  position: absolute; bottom: 20%; right: 25%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #12181e 0%, #080c10 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  animation: chs-hester 9s ease-in-out infinite alternate;
}
.scn-chillingworth-secret .infant-swaddled {
  position: absolute; bottom: 25%; right: 35%; width: 14px; height: 18px;
  background: radial-gradient(ellipse, #1a202a 0%, #0e1218 100%);
  border-radius: 50% 50% 40% 40%;
  animation: chs-infant 5s ease-in-out infinite;
}
.scn-chillingworth-secret .secret-glow {
  position: absolute; bottom: 55%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #4a6a7a 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #4a6a7a;
  filter: blur(4px);
  animation: chs-glow 4s ease-in-out infinite alternate;
}
@keyframes chs-back { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes chs-window { 0% { transform: scale(0.95); opacity: 0.7; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes chs-point { 0% { transform: translateX(0) rotate(0) scale(1); } 25% { transform: translateX(3px) rotate(5deg) scale(1.02); } 50% { transform: translateX(-2px) rotate(-3deg) scale(0.98); } 75% { transform: translateX(1px) rotate(2deg) scale(1); } 100% { transform: translateX(0) rotate(0) scale(1); } }
@keyframes chs-hester { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes chs-infant { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes chs-glow { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 0.8; transform: scale(1.3); } 100% { opacity: 0.4; transform: scale(1); } }

/* hester-swears – dim interior, dark mood, candlelit oath */
.scn-hester-swears {
  background:
    linear-gradient(180deg, #1c1210 0%, #2a1a16 40%, #3a241e 70%, #1c1210 100%),
    radial-gradient(ellipse at 30% 50%, #4a2a1a 0%, transparent 60%);
}
.scn-hester-swears .prison-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(60,40,30,0.2) 30px, rgba(60,40,30,0.2) 32px);
  animation: hsw-wall 10s ease-in-out infinite alternate;
}
.scn-hester-swears .oath-candle {
  position: absolute; bottom: 30%; left: 40%; width: 10px; height: 25px;
  background: radial-gradient(ellipse 5px 10px at 50% 0%, #ffcc66 0%, #cc8833 40%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px #cc8833, 0 0 80px 30px rgba(204,136,51,0.3);
  animation: hsw-candle 2.5s ease-in-out infinite alternate;
}
.scn-hester-swears .hester-profile {
  position: absolute; bottom: 18%; left: 25%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1a16 0%, #1a100c 100%);
  border-radius: 50% 45% 35% 40% / 55% 50% 45% 45%;
  transform-origin: bottom center;
  animation: hsw-hester 7s ease-in-out infinite;
}
.scn-hester-swears .scarlet-letter {
  position: absolute; bottom: 35%; left: 28%; width: 12px; height: 14px;
  background: radial-gradient(ellipse, #b85c1a 0%, #8a3f0f 60%, transparent 90%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(184,92,26,0.6);
  animation: hsw-letter 4s ease-in-out infinite alternate;
}
.scn-hester-swears .infant-cradled {
  position: absolute; bottom: 22%; left: 35%; width: 16px; height: 20px;
  background: radial-gradient(ellipse, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40%;
  animation: hsw-infant 6s ease-in-out infinite;
}
.scn-hester-swears .oath-glint {
  position: absolute; bottom: 50%; left: 32%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffdd99 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #ffdd99;
  animation: hsw-glint 3s ease-in-out infinite alternate;
}
.scn-hester-swears .shadow-stain {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 25%;
  background: radial-gradient(ellipse at 50% 100%, rgba(10,8,6,0.9) 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  filter: blur(6px);
  animation: hsw-stain 14s ease-in-out infinite alternate;
}
@keyframes hsw-wall { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes hsw-candle { 0% { transform: scaleY(0.9) translateY(1px); opacity: 0.8; } 50% { transform: scaleY(1.15) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.85) translateY(2px); opacity: 0.7; } }
@keyframes hsw-hester { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(2px) rotate(2deg); } 66% { transform: translateX(-1px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hsw-letter { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes hsw-infant { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(4deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes hsw-glint { 0% { transform: scale(0.5); opacity: 0.2; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.4; } }
@keyframes hsw-stain { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.3); } 100% { opacity: 0.5; transform: scaleY(0.9); } }

/* hester-released – sunlit, warm, outside prison */
.scn-hester-released {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0d4f0 30%, #e8f0e0 60%, #c8b888 100%),
    radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 50%);
}
.scn-hester-released .sun-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #e0f0ff 0%, #87ceeb 60%, #6a9ec0 100%);
  animation: hre-sky 20s ease-in-out infinite alternate;
}
.scn-hester-released .distant-town {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
  animation: hre-town 30s ease-in-out infinite alternate;
}
.scn-hester-released .prison-door {
  position: absolute; bottom: 15%; left: 20%; width: 60px; height: 80px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: hre-door 8s ease-in-out infinite;
}
.scn-hester-released .hester-standing {
  position: absolute; bottom: 12%; left: 35%; width: 40px; height: 75px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: hre-hester 6s ease-in-out infinite;
}
.scn-hester-released .infant-arm {
  position: absolute; bottom: 18%; left: 38%; width: 8px; height: 14px;
  background: radial-gradient(ellipse, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: hre-arm 5s ease-in-out infinite alternate;
}
.scn-hester-released .scarlet-glow {
  position: absolute; bottom: 35%; left: 35%; width: 14px; height: 16px;
  background: radial-gradient(ellipse, #c8553d 0%, #a0461a 60%, transparent 90%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,85,61,0.5), 0 0 60px 20px rgba(160,70,26,0.3);
  animation: hre-scarlet 4s ease-in-out infinite alternate;
}
.scn-hester-released .ground-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #b8a080 0%, #9a7a5a 100%);
  border-radius: 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
  animation: hre-ground 12s ease-in-out infinite alternate;
}
.scn-hester-released .sun-beam {
  position: absolute; top: 10%; left: 30%; width: 3px; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,220,0.6) 0%, transparent 100%);
  filter: blur(4px);
  transform: rotate(-10deg);
  animation: hre-beam 7s ease-in-out infinite alternate;
}
@keyframes hre-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hre-town { 0% { transform: translateX(-2px); } 50% { transform: translateX(2px); } 100% { transform: translateX(-1px); } }
@keyframes hre-door { 0% { transform: scaleX(1); } 25% { transform: scaleX(0.98) translateY(1px); } 75% { transform: scaleX(1.02) translateY(-1px); } 100% { transform: scaleX(1); } }
@keyframes hre-hester { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes hre-arm { 0% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(3px, -2px) rotate(15deg); } 100% { transform: translate(0, 0) rotate(0); } }
@keyframes hre-scarlet { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }
@keyframes hre-ground { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hre-beam { 0% { transform: rotate(-10deg) translateX(0); opacity: 0.3; } 50% { transform: rotate(-8deg) translateX(5px); opacity: 0.7; } 100% { transform: rotate(-12deg) translateX(-3px); opacity: 0.4; } }

.scn-confession-talk {
  background: linear-gradient(180deg, #1a1520 0%, #2c2430 40%, #1a1520 100%), radial-gradient(ellipse at 50% 30%, #3a2a40 0%, transparent 80%);
}
.scn-confession-talk .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1c1624 0%, #2a2030 100%); }
.scn-confession-talk .arch-window { position:absolute; top:12%; left:50%; width:120px; height:180px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, rgba(180,160,120,0.25) 0%, rgba(0,0,0,0.4) 70%); border-radius:50% 50% 20% 20%; filter:blur(6px); animation: ct-window-fade 12s ease-in-out infinite alternate; }
.scn-confession-talk .confessional-grille { position:absolute; bottom:20%; left:38%; width:30px; height:100px; background: repeating-linear-gradient(0deg, #3a2a3a 0px, #3a2a3a 4px, transparent 4px, transparent 10px); opacity:0.6; animation: ct-grille-shift 8s ease-in-out infinite; }
.scn-confession-talk .kneeling-figure { position:absolute; bottom:15%; left:42%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0c0c1c 100%); border-radius:40% 40% 50% 50% / 60% 60% 30% 30%; transform-origin:bottom center; animation: ct-kneel-breathe 5s ease-in-out infinite; }
.scn-confession-talk .priest-figure { position:absolute; bottom:10%; right:35%; width:28px; height:90px; background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%); border-radius:30% 30% 40% 40% / 70% 70% 40% 40%; transform-origin:bottom center; animation: ct-priest-sway 6s ease-in-out infinite; }
.scn-confession-talk .candle-glow { position:absolute; bottom:40%; left:30%; width:10px; height:16px; background: radial-gradient(circle, #e0a050 0%, #b07030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(200,120,40,0.3), 0 0 60px 20px rgba(200,120,40,0.1); animation: ct-candle-pulse 3s ease-in-out infinite alternate; }
@keyframes ct-window-fade { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.5; } }
@keyframes ct-grille-shift { 0% { transform:translateX(0); } 50% { transform:translateX(2px); } 100% { transform:translateX(-1px); } }
@keyframes ct-kneel-breathe { 0% { transform:translateY(0) scaleY(1); } 25% { transform:translateY(-2px) scaleY(1.01); } 50% { transform:translateY(-1px) scaleY(0.99); } 75% { transform:translateY(-3px) scaleY(1.01); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes ct-priest-sway { 0% { transform:translateY(0) rotate(0deg); } 33% { transform:translateY(-1px) rotate(1deg); } 66% { transform:translateY(-2px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes ct-candle-pulse { 0% { box-shadow: 0 0 20px 4px rgba(200,120,40,0.2); transform:scale(1); } 50% { box-shadow: 0 0 40px 12px rgba(200,120,40,0.4); transform:scale(1.1); } 100% { box-shadow: 0 0 25px 6px rgba(200,120,40,0.25); transform:scale(0.95); } }

.scn-secrets-buried {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1420 40%, #1a1410 80%, #0a0a0a 100%), radial-gradient(ellipse at 50% 30%, #2a2030 0%, transparent 70%);
}
.scn-secrets-buried .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-secrets-buried .hole { position:absolute; bottom:20%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at center, #0a0505 0%, #1a1410 60%, transparent 100%); border-radius:50%; animation: sb-hole-deepen 14s ease-in-out infinite alternate; }
.scn-secrets-buried .chest { position:absolute; bottom:28%; left:45%; width:40px; height:25px; background: linear-gradient(135deg, #5a3a2a 0%, #3a2218 100%); border:2px solid #2a1410; border-radius:8% 8% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform-origin:center bottom; animation: sb-chest-lower 6s ease-in-out infinite; }
.scn-secrets-buried .shovel { position:absolute; bottom:40%; left:55%; width:8px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius:20% 20% 30% 30%; transform-origin:50% 80%; animation: sb-shovel-dig 4s ease-in-out infinite; }
.scn-secrets-buried .digger-torso { position:absolute; bottom:35%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a20 0%, #1a1018 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sb-torso-bend 5s ease-in-out infinite; }
.scn-secrets-buried .digger-arm { position:absolute; bottom:45%; left:38%; width:14px; height:35px; background: linear-gradient(180deg, #2a1a20 0%, #1a1018 100%); border-radius:30%; transform-origin:top left; animation: sb-arm-swing 4s ease-in-out infinite; }
.scn-secrets-buried .digger-head { position:absolute; bottom:68%; left:40%; width:20px; height:22px; background: #1a1018; border-radius:50%; box-shadow: inset -2px -2px 4px rgba(255,255,255,0.1); animation: sb-head-nod 5s ease-in-out infinite; }
@keyframes sb-hole-deepen { 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 sb-chest-lower { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(4px) rotate(2deg); } 50% { transform:translateY(8px) rotate(-1deg); } 75% { transform:translateY(4px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes sb-shovel-dig { 0% { transform:rotate(15deg) translateY(0); } 25% { transform:rotate(-20deg) translateY(-5px); } 50% { transform:rotate(10deg) translateY(0); } 75% { transform:rotate(-15deg) translateY(-3px); } 100% { transform:rotate(15deg) translateY(0); } }
@keyframes sb-torso-bend { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-2px) rotate(4deg); } 60% { transform:translateY(-1px) rotate(-3deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes sb-arm-swing { 0% { transform:rotate(0deg); } 30% { transform:rotate(-40deg); } 60% { transform:rotate(20deg); } 100% { transform:rotate(0deg); } }
@keyframes sb-head-nod { 0% { transform:translateY(0) rotate(0deg); } 20% { transform:translateY(1px) rotate(3deg); } 40% { transform:translateY(2px) rotate(-2deg); } 60% { transform:translateY(0) rotate(1deg); } 80% { transform:translateY(-1px) rotate(-3deg); } 100% { transform:translateY(0) rotate(0deg); } }

.scn-pearl-in-graveyard {
  background: linear-gradient(180deg, #4a4a5a 0%, #5a5a6a 30%, #6a6a7a 60%, #5a5a4a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}
.scn-pearl-in-graveyard .overcast-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a5a6a 0%, #7a7a8a 40%, #8a8a9a 100%); opacity:0.9; animation: pg-sky-drift 30s linear infinite alternate; }
.scn-pearl-in-graveyard .graveyard-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius:10% 10% 0 0; }
.scn-pearl-in-graveyard .tombstone { position:absolute; bottom:30%; left:30%; width:50px; height:70px; background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 100%); border-radius:10% 10% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); animation: pg-stone-fade 20s ease-in-out infinite; }
.scn-pearl-in-graveyard .pearl-figure { position:absolute; bottom:32%; left:32%; width:20px; height:30px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin:bottom center; animation: pg-pearl-dance 4s ease-in-out infinite; }
.scn-pearl-in-graveyard .hester-figure { position:absolute; bottom:22%; left:20%; width:28px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:30% 30% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pg-hester-sway 7s ease-in-out infinite alternate; }
.scn-pearl-in-graveyard .window-chillingworth { position:absolute; top:10%; right:15%; width:40px; height:50px; background: radial-gradient(ellipse at center, #4a4a5a 0%, #2a2a3a 100%); border:2px solid #3a3a4a; border-radius:10% 10% 20% 20%; overflow:hidden; animation: pg-window-glow 10s ease-in-out infinite alternate; }
.scn-pearl-in-graveyard .window-chillingworth::before { content:''; position:absolute; bottom:20%; left:40%; width:10px; height:20px; background: #1a1a2a; border-radius:30%; opacity:0.7; animation: pg-chill-blink 5s step-end infinite; }
@keyframes pg-sky-drift { 0% { background-position:0% 0%; } 100% { background-position:20% 10%; } }
@keyframes pg-stone-fade { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pg-pearl-dance { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-3px) rotate(8deg); } 50% { transform:translateY(0) rotate(-6deg); } 75% { transform:translateY(-2px) rotate(5deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes pg-hester-sway { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes pg-window-glow { 0% { box-shadow: inset 0 0 10px rgba(255,255,255,0.1); } 50% { box-shadow: inset 0 0 20px rgba(255,255,255,0.2); } 100% { box-shadow: inset 0 0 8px rgba(255,255,255,0.05); } }
@keyframes pg-chill-blink { 0%,48%,52%,100% { opacity:0.7; } 50% { opacity:0.2; } }

.scn-pearl-burr {
  background: linear-gradient(135deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%), radial-gradient(ellipse at 40% 60%, #4a4a5a 0%, transparent 70%);
}
.scn-pearl-burr .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a 0%, transparent 60%); opacity:0.5; }
.scn-pearl-burr .burr { position:absolute; top:30%; right:20%; width:30px; height:30px; background: radial-gradient(circle at 30% 30%, #7a5a3a 0%, #4a2a1a 100%); border-radius:50%; box-shadow: 0 0 0 4px #5a3a2a, 0 0 0 8px #6a4a3a; animation: pb-burr-fly 5s ease-in-out infinite; }
.scn-pearl-burr .burr::before { content:''; position:absolute; top:-6px; left:12px; width:6px; height:12px; background: #5a3a2a; border-radius:0 50% 50% 0; transform:rotate(15deg); }
.scn-pearl-burr .burr::after { content:''; position:absolute; bottom:-4px; left:8px; width:8px; height:8px; background: #5a3a2a; border-radius:50%; }
.scn-pearl-burr .hand-throw { position:absolute; bottom:40%; left:20%; width:24px; height:30px; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 100%); border-radius:30% 30% 40% 40% / 50% 50% 60% 60%; transform-origin: bottom right; animation: pb-hand-fling 5s ease-in-out infinite; }
.scn-pearl-burr .dimmesdale-profile { position:absolute; bottom:35%; right:10%; width:24px; height:50px; background: linear-gradient(180deg, #2a1a20 0%, #1a1018 100%); border-radius:40% 40% 50% 50% / 60% 60% 40% 40%; transform:rotate(10deg); transform-origin:bottom center; animation: pb-dimmesdale-recoil 5s ease-in-out infinite; }
.scn-pearl-burr .dimmesdale-profile::before { content:''; position:absolute; top:10%; left:-2px; width:10px; height:8px; background: #1a1018; border-radius:50%; }
.scn-pearl-burr .motion-streak { position:absolute; top:35%; left:20%; width:40%; height:4px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1) 40%, transparent); transform:rotate(-20deg); animation: pb-streak-flash 5s ease-in-out infinite; }
@keyframes pb-burr-fly { 0% { transform:translateX(0) translateY(0) rotate(0deg) scale(1); } 15% { transform:translateX(-80px) translateY(-20px) rotate(90deg) scale(1.2); } 30% { transform:translateX(-160px) translateY(-40px) rotate(180deg) scale(1); } 45% { transform:translateX(-240px) translateY(-60px) rotate(270deg) scale(0.9); } 60% { transform:translateX(-320px) translateY(-80px) rotate(360deg) scale(1); } 75% { transform:translateX(-400px) translateY(-100px) rotate(450deg) scale(1.1); } 100% { transform:translateX(-480px) translateY(-120px) rotate(540deg) scale(0.8); opacity:0; } }
@keyframes pb-hand-fling { 0% { transform:translateY(0) rotate(0deg); } 20% { transform:translateY(-10px) rotate(-30deg); } 40% { transform:translateY(0) rotate(10deg); } 60% { transform:translateY(-5px) rotate(-20deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes pb-dimmesdale-recoil { 0% { transform:rotate(10deg) translateX(0); } 20% { transform:rotate(-15deg) translateX(10px); } 40% { transform:rotate(5deg) translateX(5px); } 60% { transform:rotate(-10deg) translateX(8px); } 100% { transform:rotate(10deg) translateX(0); } }
@keyframes pb-streak-flash { 0%,100% { opacity:0; } 15% { opacity:1; } 30% { opacity:0; } }

/* chillingworth-change */
.scn-chillingworth-change { --bg1: linear-gradient(180deg, #1f1a2e 0%, #2c1a1a 40%, #1a0a0a 100%); --bg2: radial-gradient(ellipse at 30% 60%, #3a1e1e 0%, transparent 60%); background: var(--bg1), var(--bg2); }
.scn-chillingworth-change .shadows { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,.6) 0%, transparent 50%, rgba(0,0,0,.4) 100%); animation: cc1-shade 8s ease-in-out infinite alternate; }
.scn-chillingworth-change .fire-glow { position:absolute; bottom:10%; left:15%; width:40%; height:50%; background: radial-gradient(ellipse at 50% 100%, #8a3a0a 0%, #3a1a0a 40%, transparent 70%); animation: cc1-fire 3s ease-in-out infinite alternate; }
.scn-chillingworth-change .alembic { position:absolute; bottom:20%; left:30%; width:40px; height:60px; border-radius: 40% 40% 10% 10% / 50% 50% 15% 15%; background: linear-gradient(135deg, #4a3a3a 0%, #2a1a1a 100%); box-shadow: inset 0 -8px 12px rgba(0,0,0,.5); animation: cc1-bob 6s ease-in-out infinite; }
.scn-chillingworth-change .flask { position:absolute; bottom:25%; left:55%; width:30px; height:45px; border-radius: 20% 20% 40% 40%; background: radial-gradient(circle at 50% 60%, #6a4a3a 0%, #3a2a1a 60%); box-shadow: 0 0 20px 4px #6a3a1a; animation: cc1-glow 4s ease-in-out infinite alternate; }
.scn-chillingworth-change .coals { position:absolute; bottom:8%; left:20%; width:60px; height:20px; background: radial-gradient(circle at 40% 50%, #a04a0a 0%, #4a1a0a 60%, transparent 80%); border-radius: 50%; filter: blur(2px); animation: cc1-coal 2s ease-in-out infinite alternate; }
.scn-chillingworth-change .figure-back { position:absolute; bottom:0%; left:60%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 15% 15%; transform-origin: bottom center; animation: cc1-figure 9s ease-in-out infinite; }
.scn-chillingworth-change .puff-a, .scn-chillingworth-change .puff-b { position:absolute; bottom:60%; left:25%; width:20px; height:20px; background: rgba(80,40,20,.3); border-radius: 50%; filter: blur(8px); animation: cc1-puff 12s ease-in-out infinite; }
.scn-chillingworth-change .puff-b { left:35%; animation-delay: -4s; width:15px; height:15px; }
@keyframes cc1-shade { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes cc1-fire { 0% { opacity:.6; transform: scaleY(.9) translateY(0) } 50% { opacity:1; transform: scaleY(1.1) translateY(-5px) } 100% { opacity:.7; transform: scaleY(.95) translateY(-2px) } }
@keyframes cc1-bob { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes cc1-glow { 0% { box-shadow: 0 0 12px 2px #6a3a1a; opacity:.8 } 50% { box-shadow: 0 0 30px 10px #a04a2a, 0 0 50px 15px rgba(160,74,42,.4); opacity:1 } 100% { box-shadow: 0 0 15px 4px #6a3a1a; opacity:.85 } }
@keyframes cc1-coal { 0% { opacity:.7; transform: scaleX(1) rotate(0) } 50% { opacity:1; transform: scaleX(1.1) rotate(5deg) } 100% { opacity:.8; transform: scaleX(.95) rotate(-3deg) } }
@keyframes cc1-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-3px) rotate(-2deg) } }
@keyframes cc1-puff { 0%,100% { opacity:0; transform: translateY(0) scale(1) } 50% { opacity:.6; transform: translateY(-40px) scale(1.5) } }

/* chillingworth-probing */
.scn-chillingworth-probing { background: linear-gradient(180deg, #121018 0%, #1e1824 30%, #2a1a1a 70%, #0a0a0a 100%), radial-gradient(ellipse at 60% 40%, #2a1a1a 0%, transparent 70%); }
.scn-chillingworth-probing .deep-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0e0a14 0%, #1a1220 50%, #0a060a 100%); animation: cp2-shift 10s ease-in-out infinite alternate; }
.scn-chillingworth-probing .minister-silhouette { position:absolute; bottom:5%; left:25%; width:28px; height:70px; background: linear-gradient(180deg, #1a1422 0%, #0a0a12 100%); border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%; transform-origin: bottom center; animation: cp2-sway 7s ease-in-out infinite; }
.scn-chillingworth-probing .hand-pick { position:absolute; bottom:30%; left:45%; width:12px; height:40px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); transform: rotate(-30deg); transform-origin: bottom right; border-radius: 10% 10% 40% 40%; box-shadow: 0 0 6px 2px #2a1a1a; animation: cp2-swing 3s ease-in-out infinite; }
.scn-chillingworth-probing .hand-pick::after { content:''; position:absolute; top:-8px; left:-6px; width:16px; height:10px; background: #2a1a1a; border-radius: 20% 20% 10% 10%; transform: rotate(15deg); }
.scn-chillingworth-probing .heart-glow { position:absolute; bottom:25%; left:30%; width:14px; height:14px; border-radius: 50%; background: radial-gradient(circle, #8a3a3a 0%, #4a1a1a 60%, transparent 80%); box-shadow: 0 0 24px 8px #4a1a1a, 0 0 48px 15px rgba(74,26,26,.3); animation: cp2-pulse 4s ease-in-out infinite alternate; }
.scn-chillingworth-probing .lamp { position:absolute; bottom:45%; left:55%; width:10px; height:16px; background: radial-gradient(circle at 50% 40%, #a07a3a 0%, #5a3a1a 80%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 18px 6px #5a3a1a; animation: cp2-lamp 3s ease-in-out infinite alternate; }
.scn-chillingworth-probing .vein-lines { position:absolute; bottom:20%; left:20%; width:60%; height:40%; background: repeating-linear-gradient(45deg, rgba(40,20,20,.3) 0, rgba(40,20,20,.3) 2px, transparent 2px, transparent 8px); animation: cp2-vein 15s linear infinite; }
.scn-chillingworth-probing .dust-a, .scn-chillingworth-probing .dust-b { position:absolute; top:20%; left:10%; width:6px; height:6px; background: rgba(100,80,60,.2); border-radius: 50%; filter: blur(3px); animation: cp2-dust 20s ease-in-out infinite; }
.scn-chillingworth-probing .dust-b { left:80%; animation-delay: -7s; width:4px; height:4px; }
@keyframes cp2-shift { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes cp2-sway { 0%,100% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(2deg) } }
@keyframes cp2-swing { 0%,100% { transform: rotate(-30deg) translateX(0) } 50% { transform: rotate(-20deg) translateX(5px) } }
@keyframes cp2-pulse { 0% { box-shadow: 0 0 12px 2px #4a1a1a; opacity:.7 } 50% { box-shadow: 0 0 30px 10px #8a3a3a, 0 0 60px 20px rgba(138,58,58,.3); opacity:1 } 100% { box-shadow: 0 0 16px 4px #4a1a1a; opacity:.8 } }
@keyframes cp2-lamp { 0% { opacity:.6; box-shadow: 0 0 10px 2px #5a3a1a } 50% { opacity:1; box-shadow: 0 0 30px 10px #a07a3a } 100% { opacity:.7; box-shadow: 0 0 14px 4px #5a3a1a } }
@keyframes cp2-vein { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes cp2-dust { 0%,100% { opacity:0; transform: translateY(0) translateX(0) } 50% { opacity:.5; transform: translateY(-40px) translateX(20px) } }

/* chillingworth-thought */
.scn-chillingworth-thought { background: linear-gradient(180deg, #14121a 0%, #1a1822 40%, #0e0c12 100%), radial-gradient(ellipse at 40% 60%, #1e1a2a 0%, transparent 70%); }
.scn-chillingworth-thought .cave-wall { position:absolute; top:0; left:0; width:100%; height:60%; background: linear-gradient(180deg, #2a242e 0%, #1a1620 100%); clip-path: polygon(0 0, 100% 0, 100% 70%, 60% 80%, 30% 75%, 0 85%); animation: ct3-tremble 12s ease-in-out infinite alternate; }
.scn-chillingworth-thought .miner-figure { position:absolute; bottom:5%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 25% 25%; transform-origin: bottom center; animation: ct3-dig 5s ease-in-out infinite; }
.scn-chillingworth-thought .spade { position:absolute; bottom:20%; left:48%; width:14px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); transform: rotate(20deg); transform-origin: bottom left; border-radius: 20% 20% 30% 30%; animation: ct3-stroke 3s ease-in-out infinite; }
.scn-chillingworth-thought .spade::after { content:''; position:absolute; bottom:-10px; left:-8px; width:22px; height:14px; background: #2a1a1a; border-radius: 10% 10% 30% 30%; transform: rotate(5deg); }
.scn-chillingworth-thought .nuggets { position:absolute; bottom:5%; left:55%; width:30px; height:20px; background: radial-gradient(circle at 30% 50%, #c8a040 0%, #8a6a20 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 20px 8px #8a6a20; animation: ct3-shine 4s ease-in-out infinite alternate; }
.scn-chillingworth-thought .vein-light { position:absolute; bottom:15%; left:20%; width:60%; height:30%; background: linear-gradient(135deg, transparent 0%, rgba(160,120,60,.15) 50%, transparent 100%); animation: ct3-glint 8s ease-in-out infinite; }
.scn-chillingworth-thought .gem-a, .scn-chillingworth-thought .gem-b { position:absolute; bottom:10%; left:10%; width:8px; height:8px; border-radius: 20% 50% 20% 50%; background: radial-gradient(circle at 30% 30%, #b0a060 0%, #6a5020 80%); transform: rotate(15deg); animation: ct3-gem 6s ease-in-out infinite alternate; }
.scn-chillingworth-thought .gem-b { left:70%; width:6px; height:6px; animation-delay: -3s; }
@keyframes ct3-tremble { 0% { transform: translateY(0) } 25% { transform: translateY(2px) } 50% { transform: translateY(-1px) } 75% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes ct3-dig { 0%,100% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes ct3-stroke { 0% { transform: rotate(15deg) } 25% { transform: rotate(25deg) } 50% { transform: rotate(10deg) } 75% { transform: rotate(20deg) } 100% { transform: rotate(15deg) } }
@keyframes ct3-shine { 0% { box-shadow: 0 0 10px 2px #6a5020; opacity:.6 } 50% { box-shadow: 0 0 30px 12px #c8a040, 0 0 60px 20px rgba(200,160,64,.3); opacity:1 } 100% { box-shadow: 0 0 14px 4px #6a5020; opacity:.7 } }
@keyframes ct3-glint { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.7; transform: scaleX(1.2) } 100% { opacity:.4; transform: scaleX(.9) } }
@keyframes ct3-gem { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(30deg) scale(1.2) } 100% { transform: rotate(20deg) scale(.9) } }

/* graveyard-herbs */
.scn-graveyard-herbs { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 30%, #1e1e1e 70%, #0a0a0a 100%), radial-gradient(ellipse at 50% 20%, #2e2e2e 0%, transparent 70%); }
.scn-graveyard-herbs .mound { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: gh4-heave 20s ease-in-out infinite alternate; }
.scn-graveyard-herbs .grave-stone { position:absolute; bottom:25%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 20% 20% 0 0; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); box-shadow: 0 0 30px rgba(0,0,0,.3); animation: gh4-stone 8s ease-in-out infinite alternate; }
.scn-graveyard-herbs .herb-a, .scn-graveyard-herbs .herb-b { position:absolute; bottom:30%; left:25%; width:12px; height:30px; background: linear-gradient(180deg, #4a4a1a 0%, #2a2a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: gh4-herb 6s ease-in-out infinite; }
.scn-graveyard-herbs .herb-b { left:50%; width:14px; height:26px; animation-delay: -3s; }
.scn-graveyard-herbs .herb-a::before, .scn-graveyard-herbs .herb-b::before { content:''; position:absolute; top:-8px; left:-4px; width:12px; height:16px; background: #2a2a0a; border-radius: 50% 50% 20% 20%; transform: rotate(-20deg); }
.scn-graveyard-herbs .shadow-hand { position:absolute; bottom:20%; left:45%; width:18px; height:28px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(15deg); transform-origin: bottom center; animation: gh4-reach 5s ease-in-out infinite alternate; }
.scn-graveyard-herbs .shadow-hand::after { content:''; position:absolute; top:-15px; left:-8px; width:12px; height:18px; background: #0a0a0a; border-radius: 20% 20% 30% 30%; transform: rotate(-10deg); }
.scn-graveyard-herbs .mist { position:absolute; top:30%; left:0; width:100%; height:40%; background: linear-gradient(180deg, rgba(40,40,40,.3) 0%, transparent 100%); filter: blur(10px); animation: gh4-mist 15s ease-in-out infinite; }
.scn-graveyard-herbs .root-a, .scn-graveyard-herbs .root-b { position:absolute; bottom:10%; left:30%; width:6px; height:40px; background: linear-gradient(180deg, #2a2a0a 0%, #1a1a00 100%); border-radius: 30%; transform: rotate(20deg); transform-origin: top; animation: gh4-root 12s linear infinite; }
.scn-graveyard-herbs .root-b { left:60%; width:5px; height:30px; animation-delay: -6s; transform: rotate(-15deg); }
@keyframes gh4-heave { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(.98) } }
@keyframes gh4-stone { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1.02) } }
@keyframes gh4-herb { 0%,100% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes gh4-reach { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-5px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes gh4-mist { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.6; transform: translateX(20px) } 100% { opacity:.4; transform: translateX(-10px) } }
@keyframes gh4-root { 0%,100% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(30deg) scaleY(1.1) } }

.scn-election-morning {
  background: linear-gradient(180deg, #ffd9a0 0%, #f5b86e 30%, #d9984a 60%), radial-gradient(ellipse at 80% 20%, #fff2d0 0%, transparent 70%);
}
.scn-election-morning .sky-sun { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #fff5e0 0%, #ffd9a0 100%); animation: em-sky-pulse 6s ease-in-out infinite alternate; }
.scn-election-morning .buildings { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(90deg, #8a6e4a 0%, #a8855e 20%, #b8966f 40%, #8a6e4a 60%, #7a5e3a 80%, #9a7a55 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: em-buildings-shimmer 12s ease-in-out infinite; }
.scn-election-morning .crowd-silhouettes { position:absolute; bottom:20%; left:0; right:0; height:25%; background: radial-gradient(ellipse 60% 100% at 30% 100%, #3a2a1a 0%, transparent 80%), radial-gradient(ellipse 50% 100% at 60% 100%, #2a1a0a 0%, transparent 70%), radial-gradient(ellipse 40% 100% at 80% 100%, #3a2a1a 0%, transparent 70%); animation: em-crowd-waver 8s ease-in-out infinite; }
.scn-election-morning .hester-figure { position:absolute; bottom:20%; left:35%; width:20px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: em-walk-sway 4s ease-in-out infinite; }
.scn-election-morning .pearl-figure { position:absolute; bottom:22%; left:43%; width:14px; height:40px; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: em-hop 1.5s ease-in-out infinite; }
.scn-election-morning .scarlet-letter-glow { position:absolute; bottom:40%; left:35%; width:10px; height:14px; background: radial-gradient(circle, #c8553d 0%, #a0461a 70%); border-radius: 20%; box-shadow: 0 0 30px 8px #c8553d, 0 0 60px 16px rgba(200,85,61,0.4); animation: em-glow-pulse 2s ease-in-out infinite alternate; }
.scn-election-morning .sun-rays { position:absolute; top:0; left:20%; width:60%; height:50%; background: radial-gradient(ellipse at 30% 0%, #fff7e0 0%, transparent 70%); animation: em-rays-twitch 10s ease-in-out infinite; }
.scn-election-morning .dust-motes { position:absolute; inset:0; background: radial-gradient(circle, rgba(255,220,150,0.3) 0%, transparent 20%); filter: blur(2px); animation: em-motes-float 20s linear infinite; }
@keyframes em-sky-pulse { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes em-buildings-shimmer { 0% { background-position: 0% 0% } 50% { background-position: 20% 0% } 100% { background-position: -10% 0% } }
@keyframes em-crowd-waver { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes em-walk-sway { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(5px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes em-hop { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-8px) rotate(5deg) } 60% { transform: translateY(-4px) rotate(-5deg) } }
@keyframes em-glow-pulse { 0% { box-shadow: 0 0 20px 4px #c8553d, 0 0 40px 8px rgba(200,85,61,0.3); opacity:0.85 } 50% { box-shadow: 0 0 35px 10px #e06040, 0 0 70px 20px rgba(224,96,64,0.5); opacity:1 } 100% { box-shadow: 0 0 25px 6px #c8553d, 0 0 50px 12px rgba(200,85,61,0.35); opacity:0.9 } }
@keyframes em-rays-twitch { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes em-motes-float { 0% { transform: translateY(0) } 50% { transform: translateY(-10px) } 100% { transform: translateY(10px) } }

.scn-pearl-dressed-festive {
  background: linear-gradient(180deg, #ffe8b0 0%, #ffd080 30%, #f0b060 60%), radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 50%);
}
.scn-pearl-dressed-festive .sky-bright { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fffbe0 0%, #ffe8b0 100%); animation: pdf-sky-glint 8s ease-in-out infinite alternate; }
.scn-pearl-dressed-festive .sunburst { position:absolute; top:0; left:0; right:0; height:60%; background: radial-gradient(ellipse at 60% 0%, #fffde0 0%, transparent 70%); animation: pdf-sun-pulse 6s ease-in-out infinite; }
.scn-pearl-dressed-festive .pearl-dancer { position:absolute; bottom:25%; left:45%; width:16px; height:48px; background: linear-gradient(180deg, #f0d8a0 0%, #d0b080 100%); border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%; transform-origin: bottom center; animation: pdf-dance-spin 3s ease-in-out infinite; }
.scn-pearl-dressed-festive .skirt-swirl { position:absolute; bottom:22%; left:44%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 20%, #f0c080 0%, #e0a050 50%, #c08040 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: pdf-skirt-billow 2.5s ease-in-out infinite; }
.scn-pearl-dressed-festive .sparkles { position:absolute; top:20%; left:30%; width:60%; height:40%; background: radial-gradient(circle, rgba(255,255,200,0.6) 0%, transparent 10%, rgba(255,255,200,0.3) 20%, transparent 40%); filter: blur(1px); animation: pdf-sparkle-flicker 1.5s steps(2) infinite; }
.scn-pearl-dressed-festive .flower-scatter { position:absolute; bottom:30%; left:20%; width:60%; height:20%; background: radial-gradient(circle at 20% 50%, #f0a0a0 0%, transparent 10%), radial-gradient(circle at 60% 70%, #f0c0a0 0%, transparent 12%), radial-gradient(circle at 80% 30%, #f0b0b0 0%, transparent 15%); animation: pdf-flowers-drift 12s linear infinite; }
.scn-pearl-dressed-festive .ground-shadow { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, rgba(100,70,30,0.3) 0%, transparent 100%); border-radius: 50% 50% 0 0; animation: pdf-shadow-sway 8s ease-in-out infinite; }
@keyframes pdf-sky-glint { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pdf-sun-pulse { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(0.97) } }
@keyframes pdf-dance-spin { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(5deg) translateY(-4px) } 50% { transform: rotate(-3deg) translateY(-2px) } 75% { transform: rotate(4deg) translateY(-6px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes pdf-skirt-billow { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.4) scaleY(0.8) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes pdf-sparkle-flicker { 0%,100% { opacity:0.3 } 50% { opacity:1 } }
@keyframes pdf-flowers-drift { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(-10px) } }
@keyframes pdf-shadow-sway { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }

.scn-pearl-questions-crowd {
  background: linear-gradient(180deg, #b8c8d0 0%, #a0b0c0 30%, #8090a0 60%), radial-gradient(ellipse at 40% 20%, #d0dce0 0%, transparent 60%);
}
.scn-pearl-questions-crowd .sky-overcast { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8d8e0 0%, #b0c0d0 100%); animation: pqc-sky-mist 10s ease-in-out infinite alternate; }
.scn-pearl-questions-crowd .market-stalls { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(90deg, #7a6a5a 0%, #8a7a6a 20%, #6a5a4a 40%, #8a7a6a 60%, #7a6a5a 80%, #6a5a4a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.2); animation: pqc-stalls-wobble 14s ease-in-out infinite; }
.scn-pearl-questions-crowd .crowd-profiles { position:absolute; bottom:18%; left:0; right:0; height:30%; background: radial-gradient(ellipse 30% 100% at 10% 100%, #4a3a2a 0%, transparent 80%), radial-gradient(ellipse 25% 100% at 25% 100%, #3a2a1a 0%, transparent 70%), radial-gradient(ellipse 20% 100% at 40% 100%, #4a3a2a 0%, transparent 80%), radial-gradient(ellipse 30% 100% at 60% 100%, #3a2a1a 0%, transparent 70%), radial-gradient(ellipse 25% 100% at 80% 100%, #4a3a2a 0%, transparent 80%), radial-gradient(ellipse 20% 100% at 90% 100%, #3a2a1a 0%, transparent 70%); animation: pqc-crowd-breathe 6s ease-in-out infinite; }
.scn-pearl-questions-crowd .old-man-silhouette { position:absolute; bottom:20%; left:55%; width:18px; height:55px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform: rotate(10deg); transform-origin: bottom center; animation: pqc-oldman-stoop 8s ease-in-out infinite; }
.scn-pearl-questions-crowd .hester-back { position:absolute; bottom:20%; left:30%; width:20px; height:58px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pqc-hester-standstill 12s ease-in-out infinite; }
.scn-pearl-questions-crowd .pearl-turned { position:absolute; bottom:24%; left:45%; width:14px; height:40px; background: linear-gradient(180deg, #c8a878 0%, #a08050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); transform-origin: bottom center; animation: pqc-pearl-turn 5s ease-in-out infinite; }
.scn-pearl-questions-crowd .question-mark-shape { position:absolute; bottom:45%; left:38%; width:12px; height:20px; background: radial-gradient(circle at 50% 0%, #b0a090 0%, transparent 70%); border-radius: 50% 50% 0 0; transform: rotate(20deg); animation: pqc-question-pulse 3s ease-in-out infinite; }
.scn-pearl-questions-crowd .dust-particles { position:absolute; inset:0; background: radial-gradient(circle at 30% 60%, rgba(200,180,160,0.2) 0%, transparent 30%); filter: blur(3px); animation: pqc-dust-drift 25s linear infinite; }
@keyframes pqc-sky-mist { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pqc-stalls-wobble { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes pqc-crowd-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes pqc-oldman-stoop { 0% { transform: rotate(10deg) } 50% { transform: rotate(12deg) */ } 100% { transform: rotate(10deg) } }
@keyframes pqc-hester-standstill { 0%,100% { transform: translateX(0) } 50% { transform: translateX(2px) } }
@keyframes pqc-pearl-turn { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }
@keyframes pqc-question-pulse { 0% { opacity:0.4 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes pqc-dust-drift { 0% { transform: translateY(0) } 50% { transform: translateY(-8px) } 100% { transform: translateY(4px) } }

.scn-hester-explains-procession {
  background: linear-gradient(180deg, #d0d8e0 0%, #b8c4d0 30%, #a0b0c0 60%), radial-gradient(ellipse at 50% 10%, #e0e8f0 0%, transparent 70%);
}
.scn-hester-explains-procession .sky-calm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e0e8f0 0%, #d0d8e0 100%); animation: hep-sky-lull 12s ease-in-out infinite alternate; }
.scn-hester-explains-procession .distant-spires { position:absolute; bottom:25%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #8898a8 0%, #7080a0 50%, #607090 100%); clip-path: polygon(0% 100%, 10% 20%, 20% 100%, 30% 30%, 40% 100%, 50% 10%, 60% 100%, 70% 30%, 80% 100%, 90% 20%, 100% 100%); animation: hep-spires-glow 20s ease-in-out infinite; }
.scn-hester-explains-procession .marching-soldiers { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #4a5a6a 0px, #4a5a6a 12px, #5a6a7a 12px, #5a6a7a 24px), repeating-linear-gradient(180deg, #3a4a5a 0%, #4a5a6a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.2); animation: hep-soldiers-march 18s linear infinite; }
.scn-hester-explains-procession .minister-figure { position:absolute; bottom:10%; left:50%; width:16px; height:50px; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: hep-minister-bow 9s ease-in-out infinite; }
.scn-hester-explains-procession .hester-pearl-waiting { position:absolute; bottom:0; left:70%; width:20px; height:50px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: hep-hester-stand 14s ease-in-out infinite; }
.scn-hester-explains-procession .banners { position:absolute; top:30%; left:20%; width:10%; height:30%; background: linear-gradient(180deg, #b87878 0%, #a06868 100%); clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); animation: hep-banner-wave 7s ease-in-out infinite; }
.scn-hester-explains-procession .ground-line { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #889088 0%, #6a7a6a 100%); border-radius: 30% 30% 0 0; animation: hep-ground-shift 30s linear infinite; }
.scn-hester-explains-procession .floating-music-notes { position:absolute; top:20%; left:40%; width:20%; height:30%; background: radial-gradient(circle at 10% 30%, rgba(200,200,150,0.2) 0%, transparent 20%), radial-gradient(circle at 50% 60%, rgba(200,200,150,0.15) 0%, transparent 25%), radial-gradient(circle at 80% 20%, rgba(200,200,150,0.1) 0%, transparent 30%); filter: blur(2px); animation: hep-notes-rise 12s ease-in-out infinite; }
.scn-hester-explains-procession .sun-patch { position:absolute; bottom:40%; left:30%; width:40%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,220,0.3) 0%, transparent 60%); animation: hep-sun-spot 15s ease-in-out infinite alternate; }
@keyframes hep-sky-lull { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hep-spires-glow { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes hep-soldiers-march { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }
@keyframes hep-minister-bow { 0% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(0deg) } }
@keyframes hep-hester-stand { 0%,100% { transform: translateX(0) } 50% { transform: translateX(4px) } }
@keyframes hep-banner-wave { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes hep-ground-shift { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(-10px) } }
@keyframes hep-notes-rise { 0% { transform: translateY(0) } 50% { transform: translateY(-15px) } 100% { transform: translateY(0) } }
@keyframes hep-sun-spot { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

.scn-hester-retakes-letter {
  background: 
    linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 40%, #1a2a1a 100%),
    radial-gradient(ellipse at 50% 0%, #8ab86a 0%, transparent 70%);
}
.scn-hester-retakes-letter .sky-layer {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c8d8a8 0%, #8a9a6a 100%);
  animation: hrl-sky 12s ease-in-out infinite alternate;
}
.scn-hester-retakes-letter .trees-back {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 60% 50% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: hrl-trees 20s ease-in-out infinite;
}
.scn-hester-retakes-letter .canopy-blur {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(160,200,120,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: hrl-canopy 25s linear infinite;
}
.scn-hester-retakes-letter .stream {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 12%;
  background: linear-gradient(90deg, #4a7a6a 0%, #5a8a7a 50%, #3a6a5a 100%);
  border-radius: 40% 30% 30% 40% / 60% 50% 50% 60%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: hrl-stream 8s ease-in-out infinite alternate;
}
.scn-hester-retakes-letter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
}
.scn-hester-retakes-letter .letter {
  position: absolute; bottom: 30%; left: 48%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #b87050 0%, #8a4a30 100%);
  border-radius: 6% 6% 10% 10% / 8% 8% 12% 12%;
  box-shadow: 0 0 12px 4px rgba(200,120,80,0.6);
  transform: rotate(-6deg);
  animation: hrl-letter 6s ease-in-out infinite;
}
.scn-hester-retakes-letter .hester-bend {
  position: absolute; bottom: 26%; left: 38%; width: 26px; 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: hrl-bend 5s ease-in-out infinite;
}
.scn-hester-retakes-letter .pearl-stand {
  position: absolute; bottom: 28%; left: 54%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hrl-stand 7s ease-in-out infinite alternate;
}
.scn-hester-retakes-letter .sun-ray {
  position: absolute; top: 8%; left: 30%; width: 40px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,180,0.6) 0%, transparent 90%);
  clip-path: polygon(40% 0%, 60% 0%, 100% 100%, 0% 100%);
  filter: blur(6px);
  animation: hrl-ray 10s ease-in-out infinite alternate;
}
@keyframes hrl-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes hrl-trees {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-4px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes hrl-canopy {
  0% { transform: translateX(-20px) rotate(-1deg); }
  50% { transform: translateX(10px) rotate(1deg); }
  100% { transform: translateX(-20px) rotate(-1deg); }
}
@keyframes hrl-stream {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; transform: scaleY(0.95); }
  100% { background-position: 0% 50%; }
}
@keyframes hrl-letter {
  0%,100% { transform: rotate(-6deg) translateY(0); box-shadow: 0 0 12px 4px rgba(200,120,80,0.6); }
  50% { transform: rotate(-3deg) translateY(-2px); box-shadow: 0 0 18px 6px rgba(200,120,80,0.8); }
}
@keyframes hrl-bend {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-10px) rotate(-15deg) scaleY(1.1); }
  50% { transform: translateX(-18px) rotate(-30deg) scaleY(1.15); }
  75% { transform: translateX(-10px) rotate(-15deg) scaleY(1.1); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hrl-stand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(6px) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes hrl-ray {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(1); }
}

.scn-hester-replaces-letter {
  background: 
    linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 40%, #1a2a1a 100%),
    radial-gradient(ellipse at 45% 60%, #9ab87a 0%, transparent 70%);
}
.scn-hester-replaces-letter .sky-layer {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d0e0b0 0%, #9aaa7a 100%);
  animation: hrr-sky 14s ease-in-out infinite alternate;
}
.scn-hester-replaces-letter .trees-back {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 50% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: hrr-trees 18s ease-in-out infinite alternate;
}
.scn-hester-replaces-letter .canopy-blur {
  position: absolute; top: 2%; left: 20%; width: 60%; height: 25%;
  background: radial-gradient(ellipse at 50% 0%, rgba(180,220,140,0.35) 0%, transparent 70%);
  filter: blur(14px);
  animation: hrr-canopy 30s linear infinite;
}
.scn-hester-replaces-letter .stream {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 12%;
  background: linear-gradient(90deg, #4a7a6a 0%, #5a8a7a 50%, #3a6a5a 100%);
  border-radius: 30% 40% 40% 30% / 50% 60% 60% 50%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: hrr-stream 9s ease-in-out infinite alternate;
}
.scn-hester-replaces-letter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
}
.scn-hester-replaces-letter .hester-pin {
  position: absolute; bottom: 30%; left: 42%; 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: hrr-pin 5s ease-in-out infinite;
}
.scn-hester-replaces-letter .pearl-eye {
  position: absolute; bottom: 30%; left: 56%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hrr-eye 6s ease-in-out infinite alternate;
}
.scn-hester-replaces-letter .sun-sparkle {
  position: absolute; top: 15%; left: 35%; width: 12px; height: 12px;
  background: radial-gradient(circle at 50% 50%, #fff8e0 0%, #d0c080 100%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 20px 8px rgba(255,248,224,0.7);
  animation: hrr-sparkle 3s ease-in-out infinite;
}
@keyframes hrr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes hrr-trees {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes hrr-canopy {
  0% { transform: translateX(10px) rotate(1deg); }
  50% { transform: translateX(-15px) rotate(-1deg); }
  100% { transform: translateX(10px) rotate(1deg); }
}
@keyframes hrr-stream {
  0% { transform: scaleY(1); background-position: 0% 50%; }
  50% { transform: scaleY(0.96); background-position: 100% 50%; }
  100% { transform: scaleY(1); background-position: 0% 50%; }
}
@keyframes hrr-pin {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  30% { transform: translateX(4px) rotate(8deg) scaleY(1.05); }
  60% { transform: translateX(-2px) rotate(-4deg) scaleY(1.03); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes hrr-eye {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(3deg) translateY(-2px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes hrr-sparkle {
  0%,100% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
}

.scn-pearl-accepts {
  background: 
    linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 40%, #2a3a1a 100%),
    radial-gradient(ellipse at 50% 30%, #b8d898 0%, transparent 70%);
}
.scn-pearl-accepts .sky-layer {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d8e8b8 0%, #aaba8a 100%);
  animation: pac-sky 10s ease-in-out infinite alternate;
}
.scn-pearl-accepts .trees-back {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 55% 45% 0 0 / 35% 35% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.45);
  animation: pac-trees 22s ease-in-out infinite;
}
.scn-pearl-accepts .stream {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 12%;
  background: linear-gradient(90deg, #5a8a7a 0%, #6a9a8a 50%, #4a7a6a 100%);
  border-radius: 40% 30% 30% 40% / 60% 50% 50% 60%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.25);
  animation: pac-stream 7s ease-in-out infinite alternate;
}
.scn-pearl-accepts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a5a3a 0%, #1a2a0a 100%);
}
.scn-pearl-accepts .embrace {
  position: absolute; bottom: 28%; left: 44%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: pac-embrace 8s ease-in-out infinite;
}
.scn-pearl-accepts .embrace-shadow {
  position: absolute; bottom: 24%; left: 41%; width: 50px; height: 20px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(8px);
  animation: pac-shadow 8s ease-in-out infinite;
}
.scn-pearl-accepts .sunburst {
  position: absolute; top: 10%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle at 50% 50%, rgba(255,240,200,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: pac-burst 6s ease-in-out infinite alternate;
}
.scn-pearl-accepts .leaf-drift {
  position: absolute; top: 20%; right: 10%; width: 18px; height: 10px;
  background: linear-gradient(135deg, #6a8a3a 0%, #4a6a2a 100%);
  border-radius: 0 50% 50% 0 / 0 100% 100% 0;
  animation: pac-leaf 15s linear infinite;
}
@keyframes pac-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pac-trees {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.015); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes pac-stream {
  0% { background-position: 0% 50%; transform: scaleY(1); }
  50% { background-position: 100% 50%; transform: scaleY(0.97); }
  100% { background-position: 0% 50%; transform: scaleY(1); }
}
@keyframes pac-embrace {
  0%,100% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(6px) rotate(2deg) scaleY(1.02); }
}
@keyframes pac-shadow {
  0%,100% { transform: scaleX(1) scaleY(1); opacity: 0.5; }
  50% { transform: scaleX(1.2) scaleY(0.8); opacity: 0.3; }
}
@keyframes pac-burst {
  0% { opacity: 0.2; transform: scale(0.9) rotate(0deg); }
  50% { opacity: 0.8; transform: scale(1.1) rotate(5deg); }
  100% { opacity: 0.3; transform: scale(0.95) rotate(-3deg); }
}
@keyframes pac-leaf {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0; }
  10% { opacity: 1; }
  100% { transform: translateX(-80px) translateY(60px) rotate(720deg); opacity: 0; }
}

.scn-pearl-questions-minister {
  background: 
    linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 40%, #1a2a1a 100%),
    radial-gradient(ellipse at 40% 50%, #a8be8a 0%, transparent 70%);
}
.scn-pearl-questions-minister .sky-layer {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c8d8a8 0%, #9aaa7a 100%);
  animation: pqm-sky 12s ease-in-out infinite alternate;
}
.scn-pearl-questions-minister .trees-back {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 18px rgba(0,0,0,0.5);
  animation: pqm-trees 20s ease-in-out infinite alternate;
}
.scn-pearl-questions-minister .rock-seat {
  position: absolute; bottom: 30%; left: 25%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(255,255,255,0.1), 0 6px 12px rgba(0,0,0,0.5);
  animation: pqm-rock 15s ease-in-out infinite;
}
.scn-pearl-questions-minister .minister-sit {
  position: absolute; bottom: 36%; left: 26%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pqm-sit 6s ease-in-out infinite;
}
.scn-pearl-questions-minister .hester-stand {
  position: absolute; bottom: 30%; left: 42%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pqm-stand 7s ease-in-out infinite alternate;
}
.scn-pearl-questions-minister .pearl-point {
  position: absolute; bottom: 30%; left: 56%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 80%;
  animation: pqm-point 4s ease-in-out infinite;
}
.scn-pearl-questions-minister .stream {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 12%;
  background: linear-gradient(90deg, #4a7a6a 0%, #5a8a7a 50%, #3a6a5a 100%);
  border-radius: 30% 40% 40% 30% / 50% 60% 60% 50%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: pqm-stream 8s ease-in-out infinite alternate;
}
.scn-pearl-questions-minister .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
}
.scn-pearl-questions-minister .wood-glow {
  position: absolute; top: 10%; left: 60%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 50%, rgba(200,180,120,0.4) 0%, transparent 70%);
  filter: blur(8px);
  border-radius: 50%;
  animation: pqm-glow 9s ease-in-out infinite alternate;
}
@keyframes pqm-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pqm-trees {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-3px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes pqm-rock {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes pqm-sit {
  0%,100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
}
@keyframes pqm-stand {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(4px) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes pqm-point {
  0%,100% { transform: rotate(0deg); }
  30% { transform: rotate(-15deg); }
  70% { transform: rotate(-18deg); }
}
@keyframes pqm-stream {
  0% { background-position: 0% 50%; transform: scaleY(1); }
  50% { background-position: 100% 50%; transform: scaleY(0.96); }
  100% { background-position: 0% 50%; transform: scaleY(1); }
}
@keyframes pqm-glow {
  0% { opacity: 0.2; transform: scale(0.9); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}

.scn-hester-comparison { background: linear-gradient(180deg, #4a5050 0%, #6a6f70 30%, #8b9090 60%, #606565 100%), radial-gradient(ellipse at 50% 100%, #7a7f7f 0%, transparent 70%); }
.scn-hester-comparison .overcast-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a6060 0%, #8b9090 100%); animation: hs1-sky 14s ease-in-out infinite alternate; }
.scn-hester-comparison .distant-town { position:absolute; bottom:45%; left:10%; right:10%; height:12%; background: linear-gradient(90deg, #3a3e3e 0%, #4a4e4e 50%, #3a3e3e 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); animation: hs1-town 20s ease-in-out infinite; }
.scn-hester-comparison .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a5e5e 0%, #3a3e3e 100%); }
.scn-hester-comparison .hester-figure { position:absolute; bottom:20%; left:50%; width:24px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2e2e 0%, #1a1e1e 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; animation: hs1-figure 5s ease-in-out infinite; }
.scn-hester-comparison .scarlet-letter { position:absolute; bottom:35%; left:50%; width:10px; height:14px; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #8a3a2a 70%); border-radius: 10% 10% 4% 4%; box-shadow: 0 0 12px 3px rgba(200,85,61,.4); animation: hs1-letter 3s ease-in-out infinite alternate; }
.scn-hester-comparison .crowd-silhouettes { position:absolute; bottom:18%; left:5%; right:5%; height:10%; background: linear-gradient(90deg, transparent 0%, #2a2e2e 15%, #2a2e2e 30%, transparent 40%, #2a2e2e 60%, #2a2e2e 80%, transparent 100%); filter: blur(1px); animation: hs1-crowd 9s ease-in-out infinite; }
.scn-hester-comparison .fog-bank { position:absolute; bottom:30%; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(180,185,185,.5) 0%, transparent 70%); filter: blur(8px); animation: hs1-fog 25s ease-in-out infinite alternate; }
@keyframes hs1-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes hs1-town { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes hs1-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 hs1-letter { 0% { box-shadow: 0 0 8px 2px rgba(200,85,61,.3); opacity:.85 } 50% { box-shadow: 0 0 18px 5px rgba(200,85,61,.6); opacity:1 } 100% { box-shadow: 0 0 10px 3px rgba(200,85,61,.35); opacity:.9 } }
@keyframes hs1-crowd { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes hs1-fog { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }

.scn-chillingworth-probes { background: linear-gradient(180deg, #2a1e1a 0%, #3a2a22 30%, #4a3a32 60%, #3a2a22 100%), radial-gradient(ellipse at 30% 60%, #4a3a32 0%, transparent 80%); }
.scn-chillingworth-probes .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-chillingworth-probes .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); }
.scn-chillingworth-probes .desk { position:absolute; bottom:25%; left:35%; width:70px; height:16px; background: linear-gradient(180deg, #6a5242 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-chillingworth-probes .chillingworth-figure { position:absolute; bottom:18%; left:40%; width:22px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: cp-figure 6s ease-in-out infinite; }
.scn-chillingworth-probes .herbs { position:absolute; bottom:27%; left:48%; width:30px; height:20px; background: linear-gradient(135deg, #4a6a3a 0%, #2a4a1a 50%, #3a5a2a 100%); border-radius: 40% 60% 50% 50%; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: cp-herbs 12s ease-in-out infinite alternate; }
.scn-chillingworth-probes .candle-glow { position:absolute; bottom:10%; left:55%; width:12px; height:20px; background: radial-gradient(circle at 50% 30%, #ffb040 0%, #d08020 50%, #8a4a1a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,176,64,.3), 0 0 60px 20px rgba(255,176,64,.15); animation: cp-candle 2s ease-in-out infinite alternate; }
.scn-chillingworth-probes .shadow-sway { position:absolute; bottom:0; left:30%; right:30%; height:80%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.3) 100%); filter: blur(4px); animation: cp-shadow 7s ease-in-out infinite; }
@keyframes cp-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0) scaleX(1) } 50% { transform: translateX(-50%) translateY(-2px) rotate(-2deg) scaleX(.98) } 100% { transform: translateX(-50%) translateY(0) rotate(0) scaleX(1) } }
@keyframes cp-herbs { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(12deg) scale(1.02) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes cp-candle { 0% { opacity:.8; box-shadow: 0 0 20px 6px rgba(255,176,64,.2), 0 0 40px 12px rgba(255,176,64,.1) } 50% { opacity:1; box-shadow: 0 0 35px 12px rgba(255,176,64,.35), 0 0 70px 24px rgba(255,176,64,.18) } 100% { opacity:.85; box-shadow: 0 0 25px 8px rgba(255,176,64,.25), 0 0 50px 16px rgba(255,176,64,.12) } }
@keyframes cp-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }

.scn-riddle-disease { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #3a3a4a 60%, #2a2a3a 100%), radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 70%); }
.scn-riddle-disease .deep-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-riddle-disease .window-beam { position:absolute; top:5%; left:40%; width:20%; height:80%; background: linear-gradient(180deg, rgba(220,200,180,.15) 0%, rgba(220,200,180,.05) 100%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); animation: rd-beam 12s ease-in-out infinite alternate; }
.scn-riddle-disease .dimmesdale-silhouette { position:absolute; bottom:20%; left:30%; width:24px; height:55px; background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; animation: rd-fig-l 8s ease-in-out infinite; }
.scn-riddle-disease .chillingworth-silhouette { position:absolute; bottom:20%; right:30%; width:22px; height:52px; background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform: scaleX(-1); animation: rd-fig-r 8s ease-in-out infinite; }
.scn-riddle-disease .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(220,200,180,.15) 0%, transparent 30%), radial-gradient(circle at 70% 60%, rgba(220,200,180,.1) 0%, transparent 25%), radial-gradient(circle at 50% 80%, rgba(220,200,180,.08) 0%, transparent 20%); animation: rd-motes 40s linear infinite; }
.scn-riddle-disease .floor-shadow { position:absolute; bottom:0; left:25%; right:25%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); border-radius: 30% 30% 0 0; animation: rd-floor 15s ease-in-out infinite alternate; }
@keyframes rd-beam { 0% { opacity:.5; transform: rotate(0) scaleY(1) } 50% { opacity:.8; transform: rotate(1deg) scaleY(1.02) } 100% { opacity:.6; transform: rotate(0) scaleY(1) } }
@keyframes rd-fig-l { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes rd-fig-r { 0% { transform: scaleX(-1) translateY(0) rotate(1deg) } 50% { transform: scaleX(-1) translateY(-3px) rotate(-1deg) } 100% { transform: scaleX(-1) translateY(0) rotate(1deg) } }
@keyframes rd-motes { 0% { background-position: 0% 0%, 0% 0%, 0% 0% } 50% { background-position: 10% 5%, -5% -3%, 3% -2% } 100% { background-position: 20% 10%, -10% -6%, 6% -4% } }
@keyframes rd-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }

.scn-dimmesdale-resists { background: linear-gradient(180deg, #2a1e1a 0%, #3a2a22 30%, #4a3a32 60%, #3a2a22 100%), radial-gradient(ellipse at 70% 50%, #4a3a32 0%, transparent 80%); }
.scn-dimmesdale-resists .study-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3a32 0%, #2a1e1a 100%); }
.scn-dimmesdale-resists .bookshelf { position:absolute; right:5%; top:10%; width:30%; height:70%; background: linear-gradient(180deg, #5a4238 0%, #3a2a22 100%); border-radius: 4px; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); animation: dr-shelf 20s ease-in-out infinite; }
.scn-dimmesdale-resists .dimmesdale-profile { position:absolute; bottom:15%; left:35%; width:20px; height:55px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 40% 40% 50% / 55% 50% 45% 45%; transform: rotate(5deg); animation: dr-figure 5s ease-in-out infinite; }
.scn-dimmesdale-resists .raised-hand { position:absolute; bottom:30%; left:55%; width:12px; height:18px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 40% 40% 40% 40% / 50% 50% 40% 40%; transform: rotate(-20deg); animation: dr-hand 4s ease-in-out infinite alternate; }
.scn-dimmesdale-resists .desk-lamp { position:absolute; bottom:5%; right:40%; width:16px; height:24px; background: radial-gradient(circle at 50% 30%, #d09050 0%, #a07030 50%, #604020 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 0 25px 8px rgba(208,144,80,.3), 0 0 50px 16px rgba(208,144,80,.15); animation: dr-lamp 3s ease-in-out infinite alternate; }
.scn-dimmesdale-resists .scroll-paper { position:absolute; bottom:10%; left:25%; width:30px; height:4px; background: linear-gradient(90deg, #c8b090 0%, #e8d0b0 50%, #c8b090 100%); border-radius: 2px; transform: rotate(-10deg); animation: dr-scroll 12s ease-in-out infinite; }
@keyframes dr-shelf { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes dr-figure { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes dr-hand { 0% { transform: rotate(-20deg) translate(0,0) } 50% { transform: rotate(-22deg) translate(2px,-1px) } 100% { transform: rotate(-20deg) translate(0,0) } }
@keyframes dr-lamp { 0% { box-shadow: 0 0 20px 5px rgba(208,144,80,.2), 0 0 40px 10px rgba(208,144,80,.1); opacity:.85 } 50% { box-shadow: 0 0 30px 10px rgba(208,144,80,.35), 0 0 60px 20px rgba(208,144,80,.18); opacity:1 } 100% { box-shadow: 0 0 22px 6px rgba(208,144,80,.25), 0 0 45px 12px rgba(208,144,80,.12); opacity:.9 } }
@keyframes dr-scroll { 0% { transform: rotate(-10deg) scaleX(1) } 50% { transform: rotate(-8deg) scaleX(1.03) } 100% { transform: rotate(-10deg) scaleX(1) } }

.scn-hester-prynne-record {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 20%, #6a4a2a 0%, transparent 70%);
}
.scn-hester-prynne-record .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); animation: hp-wall 20s ease-in-out infinite;
}
.scn-hester-prynne-record .bg-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(0deg, #1a0a00 0%, transparent 100%);
}
.scn-hester-prynne-record .scroll {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 40px; transform: translateX(-50%); background: linear-gradient(90deg, #c8b090 0%, #e0d0b8 30%, #c8b090 70%, #b8a080 100%); border-radius: 4px 20px 20px 4px; box-shadow: 2px 4px 8px rgba(0,0,0,0.4); animation: hp-scroll 8s ease-in-out infinite alternate;
}
.scn-hester-prynne-record .letter {
  position: absolute; bottom: 38%; left: 50%; width: 20px; height: 14px; transform: translateX(-50%); background: linear-gradient(180deg, #f0e6d0 0%, #d8c8b0 100%); border-radius: 1px; box-shadow: 0 1px 3px rgba(0,0,0,0.3); animation: hp-letter 6s ease-in-out infinite alternate;
}
.scn-hester-prynne-record .hand {
  position: absolute; bottom: 28%; left: 44%; width: 24px; height: 40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hp-hand 10s ease-in-out infinite;
}
.scn-hester-prynne-record .candle {
  position: absolute; bottom: 22%; left: 30%; width: 8px; height: 30px; background: linear-gradient(180deg, #e8d8b0 0%, #b8a080 100%); border-radius: 2px 2px 4px 4px; animation: hp-candle 4s ease-in-out infinite;
}
.scn-hester-prynne-record .glow {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 80px; margin-left: -40px; background: radial-gradient(circle, rgba(255,200,120,0.6) 0%, rgba(255,200,120,0.1) 40%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: hp-glow 3s ease-in-out infinite alternate;
}
@keyframes hp-wall { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes hp-scroll { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-48%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes hp-letter { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes hp-hand { 0% { transform: translate(0,0) rotate(2deg) } 25% { transform: translate(4px,-2px) rotate(-1deg) } 50% { transform: translate(8px,0) rotate(1deg) } 75% { transform: translate(4px,-1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes hp-candle { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.05) translateY(-2px) } 100% { transform: scaleY(0.98) translateY(0) } }
@keyframes hp-glow { 0% { opacity: 0.6; box-shadow: 0 0 20px 10px rgba(255,200,120,0.3) } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(255,200,120,0.5) } 100% { opacity: 0.7; box-shadow: 0 0 25px 12px rgba(255,200,120,0.35) } }

.scn-narrative-license {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%), radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 60%);
}
.scn-narrative-license .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #1a0a00 100%); animation: nl-room 30s ease-in-out infinite;
}
.scn-narrative-license .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-narrative-license .manuscript {
  position: absolute; bottom: 28%; left: 40%; width: 100px; height: 60px; background: linear-gradient(180deg, #f0e6d0 0%, #d8c8b0 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.3); animation: nl-manuscript 12s ease-in-out infinite alternate;
}
.scn-narrative-license .quill {
  position: absolute; bottom: 36%; left: 55%; width: 4px; height: 50px; background: linear-gradient(180deg, #e8d8b0 0%, #b8a080 100%); border-radius: 2px; transform-origin: bottom center; transform: rotate(20deg); animation: nl-quill 6s ease-in-out infinite;
}
.scn-narrative-license .inkwell {
  position: absolute; bottom: 30%; left: 30%; width: 14px; height: 12px; background: radial-gradient(circle, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: nl-inkwell 8s ease-in-out infinite alternate;
}
.scn-narrative-license .lampglow {
  position: absolute; bottom: 40%; left: 25%; width: 70px; height: 70px; margin-left: -35px; background: radial-gradient(circle, rgba(255,220,150,0.5) 0%, rgba(255,220,150,0.05) 50%, transparent 80%); border-radius: 50%; filter: blur(8px); animation: nl-lamp 4s ease-in-out infinite alternate;
}
.scn-narrative-license .pen-shadow {
  position: absolute; bottom: 26%; left: 52%; width: 3px; height: 40px; background: rgba(0,0,0,0.3); border-radius: 2px; transform: rotate(-10deg); filter: blur(2px); animation: nl-shadow 6s ease-in-out infinite;
}
@keyframes nl-room { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes nl-manuscript { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-7deg) translateY(1px) } }
@keyframes nl-quill { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-4px) } 100% { transform: rotate(22deg) translateY(0) } }
@keyframes nl-inkwell { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes nl-lamp { 0% { opacity: 0.5; box-shadow: 0 0 15px 8px rgba(255,220,150,0.2) } 50% { opacity: 0.9; box-shadow: 0 0 30px 15px rgba(255,220,150,0.4) } 100% { opacity: 0.6; box-shadow: 0 0 20px 10px rgba(255,220,150,0.25) } }
@keyframes nl-shadow { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-12deg) translateX(2px) } 100% { transform: rotate(-8deg) translateX(-1px) } }

.scn-ghost-commission {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 50%, #04040a 100%), radial-gradient(ellipse at 50% 0%, #2a2a4e 0%, transparent 70%);
}
.scn-ghost-commission .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0a1a 0%, #000 100%); animation: gc-dark 20s ease-in-out infinite;
}
.scn-ghost-commission .ghost-silhouette {
  position: absolute; bottom: 20%; left: 50%; width: 50px; height: 90px; transform: translateX(-50%); background: linear-gradient(180deg, rgba(200,200,220,0.4) 0%, rgba(150,150,180,0.1) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(4px); animation: gc-ghost 6s ease-in-out infinite;
}
.scn-ghost-commission .ledger {
  position: absolute; bottom: 14%; left: 42%; width: 50px; height: 30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 2px; box-shadow: 1px 1px 4px rgba(0,0,0,0.5); animation: gc-ledger 10s ease-in-out infinite alternate;
}
.scn-ghost-commission .hand-point {
  position: absolute; bottom: 28%; left: 38%; width: 20px; height: 30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; transform-origin: bottom center; transform: rotate(15deg); animation: gc-hand 3s ease-in-out infinite;
}
.scn-ghost-commission .glow-rune {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 20px; background: radial-gradient(circle, #6a9a6a 0%, #3a5a3a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(106,154,106,0.5); animation: gc-rune 2s ease-in-out infinite alternate;
}
.scn-ghost-commission .shadow-figures {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 40%; background: linear-gradient(0deg, #000 0%, transparent 100%); animation: gc-shadows 15s ease-in-out infinite;
}
.scn-ghost-commission .dust {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 40%, rgba(200,200,220,0.05) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(200,200,220,0.03) 0%, transparent 40%); animation: gc-dust 30s linear infinite;
}
@keyframes gc-dark { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes gc-ghost { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 50% { transform: translateX(-48%) translateY(-6px) rotate(2deg) } 100% { transform: translateX(-52%) translateY(0) rotate(-1deg) } }
@keyframes gc-ledger { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes gc-hand { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-3px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes gc-rune { 0% { opacity: 0.6; box-shadow: 0 0 15px 5px rgba(106,154,106,0.3) } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(106,154,106,0.6) } 100% { opacity: 0.7; box-shadow: 0 0 20px 8px rgba(106,154,106,0.4) } }
@keyframes gc-shadows { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes gc-dust { 0% { background-position: 0 0 } 100% { background-position: 100% 100% } }

.scn-imagination-failure {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, transparent 80%);
}
.scn-imagination-failure .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a1a 0%, #0a0a0a 100%); animation: if-room 20s ease-in-out infinite;
}
.scn-imagination-failure .mirror {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 100px; margin-left: -40px; background: radial-gradient(ellipse, #2a2a3a 0%, #0a0a0a 80%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: if-mirror 6s ease-in-out infinite alternate;
}
.scn-imagination-failure .frame {
  position: absolute; bottom: 28%; left: 50%; width: 90px; height: 110px; margin-left: -45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: if-frame 12s ease-in-out infinite;
}
.scn-imagination-failure .figure-reflection {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 50px; margin-left: -15px; background: linear-gradient(180deg, rgba(100,100,120,0.3) 0%, rgba(50,50,60,0.1) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(3px); animation: if-figure 8s ease-in-out infinite;
}
.scn-imagination-failure .shadow {
  position: absolute; bottom: 10%; left: 45%; width: 60px; height: 120px; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); transform: skewX(-10deg); animation: if-shadow 10s ease-in-out infinite;
}
.scn-imagination-failure .dust-motes {
  position: absolute; inset: 0; background: radial-gradient(circle at 20% 30%, rgba(200,200,220,0.04) 0%, transparent 40%), radial-gradient(circle at 80% 70%, rgba(200,200,220,0.02) 0%, transparent 30%); animation: if-dust 40s linear infinite;
}
@keyframes if-room { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes if-mirror { 0% { opacity: 0.5; box-shadow: inset 0 0 10px rgba(0,0,0,0.6) } 50% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(0,0,0,0.9) } 100% { opacity: 0.6; box-shadow: inset 0 0 15px rgba(0,0,0,0.7) } }
@keyframes if-frame { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes if-figure { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }
@keyframes if-shadow { 0% { transform: skewX(-10deg) translateX(0) } 50% { transform: skewX(-12deg) translateX(3px) } 100% { transform: skewX(-8deg) translateX(-2px) } }
@keyframes if-dust { 0% { background-position: 0 0 } 100% { background-position: 100% 100% } }

/* false-penitence – dark, overcast interior with Figure standing by window */
.scn-false-penitence {
  background: linear-gradient(180deg, #2c2c3e 0%, #3a3a4e 60%, #2a2a3c 100%), radial-gradient(ellipse at 50% 100%, #4a4a5e 0%, transparent 70%);
}
.scn-false-penitence .bg-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a5a6e 0%, #3a3a4e 100%);
  animation: fp-sky 18s ease-in-out infinite alternate;
}
.scn-false-penitence .window-frame {
  position: absolute; bottom: 40%; left: 15%; width: 70px; height: 90px;
  background: transparent;
  border: 4px solid #4a4a5a;
  border-radius: 2%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: fp-frame 12s ease-in-out infinite;
}
.scn-false-penitence .window-glass {
  position: absolute; bottom: 42%; left: 17%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(100,100,120,0.3) 0%, rgba(60,60,80,0.5) 100%);
  filter: blur(2px);
  border-radius: 1%;
  animation: fp-glass 8s ease-in-out infinite alternate;
}
.scn-false-penitence .figure-minister {
  position: absolute; bottom: 30%; left: 65%; width: 28px; height: 72px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: fp-figure 4s ease-in-out infinite;
}
.scn-false-penitence .hand-over-heart {
  position: absolute; bottom: 38%; left: 68%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #12121e 0%, #050510 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: center bottom;
  animation: fp-hand 3s ease-in-out infinite alternate;
}
.scn-false-penitence .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3e 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-false-penitence .shadow-figure {
  position: absolute; bottom: 12%; left: 60%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: fp-shadow 4s ease-in-out infinite;
}
@keyframes fp-sky { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }
@keyframes fp-frame { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes fp-glass { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes fp-figure { 0% { transform: rotate(0deg) } 25% { transform: rotate(1deg) translateY(-1px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(0deg) } }
@keyframes fp-hand { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.1) } 100% { transform: translateY(0) scale(0.95) } }
@keyframes fp-shadow { 0%, 100% { transform: scale(1); opacity: 0.4 } 50% { transform: scale(0.95); opacity: 0.3 } }

/* hester-reveals – tense, two figures facing, one clutching heart */
.scn-hester-reveals {
  background: linear-gradient(180deg, #2e2e3c 0%, #3a3a4a 50%, #252530 100%), radial-gradient(ellipse at 50% 100%, #404050 0%, transparent 60%);
}
.scn-hester-reveals .wall-dark {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  animation: hr-wall 10s ease-in-out infinite alternate;
}
.scn-hester-reveals .floor-stone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1e1e2a 0%, #2e2e3e 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.4);
}
.scn-hester-reveals .figure-hester {
  position: absolute; bottom: 28%; left: 18%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #2a2a3a 0%, #151525 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: hr-hester 5s ease-in-out infinite;
}
.scn-hester-reveals .figure-minister-gasp {
  position: absolute; bottom: 28%; right: 22%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #252535 0%, #0a0a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: hr-minister 4s ease-in-out infinite alternate;
}
.scn-hester-reveals .hand-clutching {
  position: absolute; bottom: 35%; right: 26%; width: 10px; height: 12px;
  background: linear-gradient(180deg, #1a1a28 0%, #070710 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: center;
  animation: hr-hand 2s ease-in-out infinite alternate;
}
.scn-hester-reveals .table-pulpit {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  animation: hr-table 8s ease-in-out infinite alternate;
}
.scn-hester-reveals .shadow-reveal {
  position: absolute; bottom: 18%; left: 14%; width: 60px; height: 12px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: hr-shadow 5s ease-in-out infinite alternate;
}
@keyframes hr-wall { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.8 } }
@keyframes hr-hester { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(0deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes hr-minister { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-1deg) scale(1.02) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes hr-hand { 0% { transform: scale(1); } 50% { transform: scale(1.2) rotate(10deg); } 100% { transform: scale(0.9) rotate(-5deg); } }
@keyframes hr-table { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes hr-shadow { 0% { opacity: 0.3; transform: scale(1) } 100% { opacity: 0.5; transform: scale(1.1) } }

/* hester-confesses-truth – tense, one figure sinking, hands covering face */
.scn-hester-confesses-truth {
  background: linear-gradient(180deg, #2a2a38 0%, #3e3e50 40%, #23232e 100%), radial-gradient(ellipse at 50% 0%, #40405a 0%, transparent 60%);
}
.scn-hester-confesses-truth .wall-shadowed {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a5c 0%, #2a2a3a 100%);
  animation: hc-wall 12s ease-in-out infinite alternate;
}
.scn-hester-confesses-truth .floor-flagstone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #191928 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-hester-confesses-truth .figure-arthur-sinking {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 75px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a18 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: hc-arthur 6s ease-in-out infinite alternate;
}
.scn-hester-confesses-truth .figure-hester-steady {
  position: absolute; bottom: 30%; left: 55%; width: 28px; height: 68px;
  background: linear-gradient(180deg, #2e2e40 0%, #1a1a2a 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: hc-hester 5s ease-in-out infinite;
}
.scn-hester-confesses-truth .hand-covering-face {
  position: absolute; bottom: 38%; left: 33%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #0e0e1a 0%, #050510 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: center;
  animation: hc-hand 3s ease-in-out infinite alternate;
}
.scn-hester-confesses-truth .stool-wood {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 15px;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 5px rgba(0,0,0,0.4);
  animation: hc-stool 9s ease-in-out infinite alternate;
}
.scn-hester-confesses-truth .shadow-sink {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.35);
  border-radius: 50%;
  filter: blur(3px);
  animation: hc-shadow 6s ease-in-out infinite alternate;
}
@keyframes hc-wall { 0% { opacity: 0.75 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes hc-arthur { 0% { transform: rotate(0deg) translateY(0) scale(1) } 50% { transform: rotate(-2deg) translateY(-4px) scale(0.98) } 100% { transform: rotate(1deg) translateY(0) scale(1) } }
@keyframes hc-hester { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes hc-hand { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-3px) rotate(15deg) scale(1.1) } 100% { transform: translateY(0) rotate(0deg) scale(0.95) } }
@keyframes hc-stool { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes hc-shadow { 0% { opacity: 0.35; transform: scale(1) } 100% { opacity: 0.5; transform: scale(0.9) } }

/* hester-pleads-forgiveness – tense, kneeling figure embracing another */
.scn-hester-pleads-forgiveness {
  background: linear-gradient(180deg, #28283a 0%, #3a3a4e 50%, #202032 100%), radial-gradient(ellipse at 50% 100%, #44445a 0%, transparent 70%);
}
.scn-hester-pleads-forgiveness .bg-gloom {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #505060 0%, #303040 100%);
  animation: hp-gloom 15s ease-in-out infinite alternate;
}
.scn-hester-pleads-forgiveness .floor-muted {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a38 0%, #191928 100%);
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.5);
}
.scn-hester-pleads-forgiveness .figure-hester-kneeling {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2e2e3a 0%, #181828 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: hp-hester 5s ease-in-out infinite;
}
.scn-hester-pleads-forgiveness .figure-arthur-bent {
  position: absolute; bottom: 22%; left: 45%; width: 32px; height: 65px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a18 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: hp-arthur 4s ease-in-out infinite alternate;
}
.scn-hester-pleads-forgiveness .arm-embrace {
  position: absolute; bottom: 30%; left: 30%; width: 25px; height: 20px;
  background: linear-gradient(180deg, #222236 0%, #121220 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: right center;
  animation: hp-arm 3s ease-in-out infinite alternate;
}
.scn-hester-pleads-forgiveness .cloak-draped {
  position: absolute; bottom: 20%; left: 38%; width: 35px; height: 18px;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  filter: blur(1px);
  animation: hp-cloak 7s ease-in-out infinite alternate;
}
.scn-hester-pleads-forgiveness .shadow-embrace {
  position: absolute; bottom: 14%; left: 28%; width: 70px; height: 14px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: hp-shadow 5s ease-in-out infinite alternate;
}
@keyframes hp-gloom { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.8 } }
@keyframes hp-hester { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes hp-arthur { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes hp-arm { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.2) rotate(20deg); } 100% { transform: scaleX(0.9) rotate(-10deg); } }
@keyframes hp-cloak { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.05); } }
@keyframes hp-shadow { 0% { opacity: 0.3; transform: scale(1); } 100% { opacity: 0.5; transform: scale(0.9); } }

.scn-chillingworth-changed { background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #2a2a3a 100%), radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%); }
.scn-chillingworth-changed .bg-overcast { position:absolute; inset:0; background: linear-gradient(180deg, rgba(80,80,100,.3) 0%, transparent 100%); animation: cc-bg 15s ease-in-out infinite alternate; }
.scn-chillingworth-changed .wall { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
.scn-chillingworth-changed .figure-head { position:absolute; bottom:30%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #1a1a20 0%, #0a0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cc-head 6s ease-in-out infinite alternate; }
.scn-chillingworth-changed .eye-glow { position:absolute; bottom:42%; left:54%; width:8px; height:6px; background: radial-gradient(circle, #a03020 0%, #601010 100%); border-radius:50%; box-shadow: 0 0 12px 6px #a03020, 0 0 24px 12px rgba(160,48,32,.4); animation: cc-eye 2s ease-in-out infinite alternate; }
.scn-chillingworth-changed .book-stack { position:absolute; bottom:15%; left:30%; width:30px; height:20px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,.5); transform: rotate(-10deg); }
.scn-chillingworth-changed .shadow-overlay { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,.4) 100%); animation: cc-shadow 10s ease-in-out infinite alternate; }
@keyframes cc-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cc-head { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes cc-eye { 0% { box-shadow: 0 0 8px 4px #a03020, 0 0 16px 8px rgba(160,48,32,.3); opacity:.7 } 50% { box-shadow: 0 0 20px 10px #c04030, 0 0 40px 20px rgba(192,64,48,.5); opacity:1 } 100% { box-shadow: 0 0 10px 5px #a03020, 0 0 20px 10px rgba(160,48,32,.35); opacity:.8 } }
@keyframes cc-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }

.scn-hester-confronts { background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 70%, #3a3a4a 0%, transparent 80%); }
.scn-hester-confronts .bg-grey { position:absolute; inset:0; background: linear-gradient(180deg, rgba(60,60,80,.2) 0%, transparent 100%); animation: hc-bg 20s ease-in-out infinite alternate; }
.scn-hester-confronts .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-hester-confronts .figure-left { position:absolute; bottom:30%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: hc-left 7s ease-in-out infinite alternate; }
.scn-hester-confronts .figure-right { position:absolute; bottom:30%; right:25%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: hc-right 7s ease-in-out infinite alternate; animation-delay: 0.5s; }
.scn-hester-confronts .tension-line { position:absolute; bottom:40%; left:30%; right:30%; height:2px; background: linear-gradient(90deg, transparent, #5a5a6a 50%, transparent); animation: hc-line 4s ease-in-out infinite; }
.scn-hester-confronts .fog { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(80,80,100,.1) 0%, transparent 100%); filter: blur(10px); animation: hc-fog 30s linear infinite; }
@keyframes hc-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hc-left { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(6deg) translateY(1px) } }
@keyframes hc-right { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-3px) } 100% { transform: rotate(-6deg) translateY(1px) } }
@keyframes hc-line { 0% { opacity:.3 } 50% { opacity:.8 } 100% { opacity:.3 } }
@keyframes hc-fog { 0% { transform: translateX(-10%) } 50% { transform: translateX(10%) } 100% { transform: translateX(-10%) } }

.scn-hester-accuses { background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 60%, #0a0a10 100%), radial-gradient(ellipse at 50% 40%, #3a3a40 0%, transparent 80%); }
.scn-hester-accuses .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, rgba(40,40,50,.4) 0%, transparent 100%); animation: ha-bg 12s ease-in-out infinite; }
.scn-hester-accuses .pulpit-shadow { position:absolute; bottom:20%; left:35%; right:35%; height:40%; background: linear-gradient(180deg, #0a0a10 0%, transparent 100%); border-radius: 30% 30% 0 0; }
.scn-hester-accuses .figure-kneeling { position:absolute; bottom:20%; left:40%; width:25px; height:40px; background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform: rotate(10deg) scaleY(0.8); animation: ha-kneel 5s ease-in-out infinite alternate; }
.scn-hester-accuses .figure-standing { position:absolute; bottom:30%; right:35%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: ha-stand 6s ease-in-out infinite alternate; }
.scn-hester-accuses .accusing-arm { position:absolute; bottom:45%; right:35%; width:35px; height:4px; background: linear-gradient(90deg, transparent, #3a3a4a 50%, transparent); transform-origin: right center; transform: rotate(-30deg); animation: ha-arm 4s ease-in-out infinite alternate; }
.scn-hester-accuses .light-shaft { position:absolute; top:0; left:45%; width:30px; height:100%; background: linear-gradient(180deg, rgba(200,200,220,.05) 0%, transparent 80%); filter: blur(5px); animation: ha-light 8s ease-in-out infinite alternate; }
@keyframes ha-bg { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ha-kneel { 0% { transform: rotate(10deg) scaleY(0.8) translateY(0) } 50% { transform: rotate(5deg) scaleY(0.85) translateY(-2px) } 100% { transform: rotate(12deg) scaleY(0.75) translateY(1px) } }
@keyframes ha-stand { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes ha-arm { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-35deg) } }
@keyframes ha-light { 0% { opacity:.3; transform: translateX(-5%) } 50% { opacity:.6; transform: translateX(5%) } 100% { opacity:.4; transform: translateX(0) } }

.scn-chillingworth-defends { background: linear-gradient(180deg, #1a1a20 0%, #2a2a30 40%, #0a0a10 100%), radial-gradient(ellipse at 50% 60%, #2a2a30 0%, transparent 70%); }
.scn-chillingworth-defends .bg-murky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,30,35,.3) 0%, transparent 100%); animation: cd-bg 18s ease-in-out infinite alternate; }
.scn-chillingworth-defends .table { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 5%; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-chillingworth-defends .figure-sitting { position:absolute; bottom:25%; left:35%; width:35px; height:50px; background: linear-gradient(180deg, #1a1a20 0%, #0a0a10 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: cd-sit 8s ease-in-out infinite alternate; }
.scn-chillingworth-defends .gesture-hand { position:absolute; bottom:35%; left:50%; width:20px; height:10px; background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%); border-radius: 50% 50% 30% 30%; transform-origin: left center; animation: cd-hand 5s ease-in-out infinite alternate; }
.scn-chillingworth-defends .candle { position:absolute; bottom:35%; right:25%; width:6px; height:18px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 0 10px 2px rgba(200,150,80,.3); animation: cd-candle 3s ease-in-out infinite alternate; }
.scn-chillingworth-defends .smoke { position:absolute; bottom:45%; right:25%; width:12px; height:20px; background: radial-gradient(ellipse at 50% 100%, rgba(150,150,160,.2) 0%, transparent 100%); filter: blur(4px); animation: cd-smoke 8s linear infinite; }
@keyframes cd-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cd-sit { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes cd-hand { 0% { transform: rotate(-20deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-15deg) } }
@keyframes cd-candle { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(0.95); opacity:.9 } }
@keyframes cd-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.3 } 50% { transform: translateY(-10px) translateX(3px) scale(1.2); opacity:.5 } 100% { transform: translateY(-20px) translateX(-2px) scale(1.5); opacity:0 } }

/* --- item-breastplate --- */
.scn-item-breastplate {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e16 40%, #3a2a1e 100%),
    radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 60%);
}
.scn-item-breastplate .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1f1814 0%, #2c2018 50%, #1a1210 100%);
  animation: ib-pulse 12s ease-in-out infinite alternate;
}
.scn-item-breastplate .window-glow {
  position: absolute; top: 8%; right: 12%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,0.15) 0%, transparent 70%);
  filter: blur(6px);
  animation: ib-shimmer 8s ease-in-out infinite;
}
.scn-item-breastplate .breastplate {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 130px;
  background: linear-gradient(160deg, #8a7a6a 0%, #4a3a2a 40%, #3a2a1a 100%);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.7), inset 0 2px 8px rgba(200,180,150,0.3);
  animation: ib-float 6s ease-in-out infinite alternate;
}
.scn-item-breastplate .letter-exaggerated {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 90px;
  background: radial-gradient(ellipse, #c8553d 0%, #8a2e1a 60%, transparent 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(200,85,61,0.5);
  animation: ib-glow 3s ease-in-out infinite alternate;
}
.scn-item-breastplate .hester-shadow {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ib-bow 9s ease-in-out infinite;
}
.scn-item-breastplate .pearl-hand {
  position: absolute; bottom: 25%; left: 46%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  transform-origin: bottom left;
  animation: ib-point 4s ease-in-out infinite alternate;
}
@keyframes ib-pulse { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }
@keyframes ib-shimmer { 0% { opacity: 0; transform: scale(0.9) } 50% { opacity: 0.4; transform: scale(1.05) } 100% { opacity: 0; transform: scale(0.95) } }
@keyframes ib-float { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-4px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-0.5deg) } }
@keyframes ib-glow { 0% { box-shadow: 0 0 20px 4px rgba(200,85,61,0.4); opacity: 0.8 } 50% { box-shadow: 0 0 40px 14px rgba(200,85,61,0.7); opacity: 1 } 100% { box-shadow: 0 0 25px 6px rgba(200,85,61,0.5); opacity: 0.85 } }
@keyframes ib-bow { 0% { transform: translateX(0) rotate(0) scaleY(1) } 50% { transform: translateX(2px) rotate(3deg) scaleY(0.97) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes ib-point { 0% { transform: translateX(0) rotate(-5deg) scaleX(1) } 50% { transform: translateX(4px) rotate(5deg) scaleX(0.95) } 100% { transform: translateX(0) rotate(-2deg) scaleX(1) } }

/* --- garden-view --- */
.scn-garden-view {
  background:
    linear-gradient(180deg, #f5e6c5 0%, #d9c4a0 40%, #c8b18a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-garden-view .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e0cfb0 0%, #c8b18a 50%, #b1986e 100%);
  animation: gv-wash 20s ease-in-out infinite;
}
.scn-garden-view .window-frame {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 20%;
  border: 6px solid #6a5a42; border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
}
.scn-garden-view .garden-outside {
  position: absolute; top: 12%; left: 12%; right: 12%; bottom: 22%;
  background: linear-gradient(180deg, #9ac791 0%, #7aa86a 40%, #5c874e 100%);
  border-radius: 2px;
  animation: gv-sun 15s ease-in-out infinite alternate;
}
.scn-garden-view .shrubbery {
  position: absolute; bottom: 35%; left: 20%; width: 30%; height: 18%;
  background: radial-gradient(ellipse at 50% 100%, #5c874e 0%, #3c6a2e 70%);
  border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%;
  animation: gv-sway 8s ease-in-out infinite;
}
.scn-garden-view .cabbages {
  position: absolute; bottom: 28%; left: 40%; width: 12%; height: 12%;
  background: radial-gradient(ellipse at 50% 50%, #6a9a5a 0%, #4a7a3a 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: gv-grow 6s ease-in-out infinite alternate;
}
.scn-garden-view .pumpkin-vine {
  position: absolute; bottom: 25%; left: 55%; width: 40%; height: 15%;
  background: linear-gradient(160deg, #8a9a4a 0%, #5c7a2e 100%);
  border-radius: 30% 70% 50% 50% / 60% 40% 60% 40%;
  transform-origin: left bottom;
  animation: gv-unroll 12s ease-in-out infinite;
}
.scn-garden-view .hester-figure {
  position: absolute; bottom: 27%; left: 18%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e16 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  animation: gv-look 9s ease-in-out infinite;
}
.scn-garden-view .pearl-figure {
  position: absolute; bottom: 25%; left: 24%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e16 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: gv-hop 5s ease-in-out infinite;
}
@keyframes gv-wash { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.8 } }
@keyframes gv-sun { 0% { background-position: 0 0; } 50% { background-position: 10% 5%; } 100% { background-position: 0 0; } }
@keyframes gv-sway { 0% { transform: rotate(-2deg) scaleX(1) } 50% { transform: rotate(3deg) scaleX(1.02) } 100% { transform: rotate(-1deg) scaleX(1) } }
@keyframes gv-grow { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(1.05) translateY(-2px) } 100% { transform: scale(0.95) translateY(0) } }
@keyframes gv-unroll { 0% { transform: rotate(-5deg) scaleY(0.9) } 50% { transform: rotate(3deg) scaleY(1.05) } 100% { transform: rotate(-2deg) scaleY(0.95) } }
@keyframes gv-look { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gv-hop { 0% { transform: translateY(0) rotate(-3deg) } 30% { transform: translateY(-6px) rotate(2deg) } 70% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }

/* --- governor-arrives --- */
.scn-governor-arrives {
  background:
    linear-gradient(180deg, #b8d4e6 0%, #e0f0ff 40%, #f0f8ff 100%),
    radial-gradient(ellipse at 70% 20%, #fffae0 0%, transparent 50%);
}
.scn-governor-arrives .sky-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #8ab4d0 0%, #c2d8e8 50%, #e8f0f5 100%);
  animation: ga-dusk 20s ease-in-out infinite alternate;
}
.scn-governor-arrives .house-facade {
  position: absolute; bottom: 20%; left: 10%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #b8a086 0%, #8a7056 40%, #6a5240 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 30px rgba(0,0,0,0.3);
}
.scn-governor-arrives .garden-path {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #b09a6a 0%, #8a7656 100%);
  border-radius: 4px;
  animation: ga-walk 12s linear infinite;
}
.scn-governor-arrives .governor-figure {
  position: absolute; bottom: 12%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ga-stride 5s ease-in-out infinite;
}
.scn-governor-arrives .wilson-figure {
  position: absolute; bottom: 12%; left: 56%; width: 26px; height: 48px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ga-stride 5.5s ease-in-out infinite 0.3s;
}
.scn-governor-arrives .dimmesdale-figure {
  position: absolute; bottom: 12%; left: 62%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ga-stride 5s ease-in-out infinite 0.6s;
}
.scn-governor-arrives .hester-pearl {
  position: absolute; bottom: 15%; left: 10%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a1410 100%);
  border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ga-wait 8s ease-in-out infinite;
}
@keyframes ga-dusk { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes ga-walk { 0% { background-position: 0 0; } 100% { background-position: -100px 0; } }
@keyframes ga-stride { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(4px) translateY(0) rotate(0) } 75% { transform: translateX(6px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(8px) translateY(0) rotate(1deg) } }
@keyframes ga-wait { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) scaleY(1.02) } 100% { transform: translateX(0) rotate(0) } }

/* --- elf-child-minister --- */
.scn-elf-child-minister {
  background:
    linear-gradient(180deg, #c8d6e0 0%, #dce6ed 40%, #eef3f5 100%),
    radial-gradient(ellipse at 30% 30%, #fff8e8 0%, transparent 60%);
}
.scn-elf-child-minister .estate-lawn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6a8a56 0%, #4a6a3a 100%);
  border-radius: 20% 30% 0 0 / 60% 70% 0 0;
  animation: ec-sway 18s ease-in-out infinite alternate;
}
.scn-elf-child-minister .hedge-row {
  position: absolute; bottom: 35%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%);
  border-radius: 40% 40% 30% 30% / 80% 80% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
.scn-elf-child-minister .fig-bellingham {
  position: absolute; bottom: 18%; left: 28%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec-walk 6s ease-in-out infinite;
}
.scn-elf-child-minister .fig-wilson {
  position: absolute; bottom: 18%; left: 36%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec-walk 6.5s ease-in-out infinite 0.4s;
}
.scn-elf-child-minister .fig-dimmesdale {
  position: absolute; bottom: 18%; left: 44%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec-walk 5.8s ease-in-out infinite 0.8s;
}
.scn-elf-child-minister .tree-shade {
  position: absolute; top: 0; left: 0; right: 0; bottom: 50%;
  background: radial-gradient(ellipse at 20% 40%, rgba(60,80,40,0.2) 0%, transparent 60%),
              radial-gradient(ellipse at 80% 30%, rgba(40,60,30,0.15) 0%, transparent 50%);
  filter: blur(8px);
  animation: ec-shift 30s ease-in-out infinite alternate;
}
.scn-elf-child-minister .path-stones {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 5%;
  background: linear-gradient(90deg, #b09a6a 0%, #8a7656 30%, #b09a6a 60%, #8a7656 100%);
  border-radius: 4px;
  animation: ec-scroll 20s linear infinite;
}
@keyframes ec-sway { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.98) } }
@keyframes ec-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(0) } 75% { transform: translateX(9px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(12px) translateY(0) rotate(0.5deg) } }
@keyframes ec-shift { 0% { background-position: 0% 0%; } 50% { background-position: 5% 3%; } 100% { background-position: 0% 0%; } }
@keyframes ec-scroll { 0% { background-position: 0 0; } 100% { background-position: -100px 0; } }

/* ── hester-returns: warm overcast interior cutaway ── */
.scn-hester-returns {
  background: linear-gradient(180deg, #8fa0b0 0%, #b8aa94 40%, #d4bea3 100%), radial-gradient(ellipse at 50% 100%, #c4b09a 0%, transparent 70%);
}
.scn-hester-returns .hr-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4bea3 0%, #c0a88a 100%);
}
.scn-hester-returns .hr-window {
  position: absolute; top: 8%; left: 55%; width: 30%; height: 28%;
  background: linear-gradient(180deg, #8ca0b0 0%, #b0c2d0 100%);
  border: 6px solid #4a3a2a; border-radius: 4px; overflow: hidden;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3), 0 4px 12px rgba(0,0,0,0.2);
}
.scn-hester-returns .hr-cloud {
  position: absolute; top: 15%; left: -10%; width: 120%; height: 30%;
  background: rgba(255,255,255,0.3); border-radius: 50%;
  filter: blur(8px); animation: hr-cloud 14s ease-in-out infinite alternate;
}
.scn-hester-returns .hr-hearth {
  position: absolute; bottom: 0; left: 0; width: 28%; height: 22%;
  background: radial-gradient(ellipse at 50% 20%, #f2a75c 0%, #d97c42 30%, #4a2a1a 70%, #1a0a00 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -8px 30px rgba(217,124,66,0.5);
  animation: hr-fire 3s ease-in-out infinite alternate;
}
.scn-hester-returns .hr-chair {
  position: absolute; bottom: 6%; left: 22%; width: 22%; height: 44%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
}
.scn-hester-returns .hr-hester {
  position: absolute; bottom: 8%; left: 26%; width: 12%; height: 38%;
  background: linear-gradient(140deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 30% 70% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: hr-rock 5s ease-in-out infinite alternate;
}
.scn-hester-returns .hr-embroidery {
  position: absolute; bottom: 18%; left: 34%; width: 8%; height: 6%;
  background: radial-gradient(circle, #f7d875 0%, #e8b84b 40%, transparent 70%);
  border-radius: 40% 10% 40% 10%;
  box-shadow: 0 0 20px 8px rgba(232,184,75,0.4), 0 0 40px 16px rgba(232,184,75,0.2);
  animation: hr-glow 4s ease-in-out infinite alternate;
}
.scn-hester-returns .hr-seal {
  position: absolute; bottom: 12%; right: 14%; width: 7%; height: 5%;
  background: linear-gradient(135deg, #8c3a3a 0%, #4a1a1a 100%);
  border-radius: 3px; box-shadow: 0 0 6px 1px rgba(0,0,0,0.4);
  transform: rotate(-6deg);
}
@keyframes hr-cloud {
  0% { transform: translateX(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(15px) scaleX(1.2); opacity: 0.8; }
  100% { transform: translateX(-10px) scaleX(0.9); opacity: 0.6; }
}
@keyframes hr-fire {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.85; }
  50% { transform: scaleY(1.12) scaleX(1.02) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.92) scaleX(0.98) translateY(1px); opacity: 0.9; }
}
@keyframes hr-rock {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-1.5deg) translateX(-2px); }
  100% { transform: rotate(1deg) translateX(1px); }
}
@keyframes hr-glow {
  0% { transform: scale(0.95) rotate(-2deg); opacity: 0.7; box-shadow: 0 0 16px 4px rgba(232,184,75,0.3); }
  50% { transform: scale(1.08) rotate(3deg); opacity: 1; box-shadow: 0 0 32px 12px rgba(232,184,75,0.6); }
  100% { transform: scale(0.98) rotate(0deg); opacity: 0.8; box-shadow: 0 0 20px 6px rgba(232,184,75,0.4); }
}

/* ── hester-later: calm overcast graveyard horizon ── */
.scn-hester-later {
  background: linear-gradient(180deg, #9bb0b8 0%, #cbd6d8 40%, #dce3de 100%), radial-gradient(ellipse at 50% 100%, #d5dcd6 0%, transparent 70%);
}
.scn-hester-later .hl-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8ba0aa 0%, #bcc8cc 60%, transparent 100%);
  animation: hl-wind 18s ease-in-out infinite alternate;
}
.scn-hester-later .hl-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(170deg, #6b7a6e 0%, #5c6a5e 30%, #4a5a4a 100%);
  border-radius: 80% 30% 0 0 / 60% 20% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.2);
  animation: hl-grass 10s ease-in-out infinite alternate;
}
.scn-hester-later .hl-old-grave {
  position: absolute; bottom: 25%; left: 18%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(3deg); opacity: 0.7;
}
.scn-hester-later .hl-new-grave {
  position: absolute; bottom: 22%; left: 58%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-hester-later .hl-tombstone {
  position: absolute; bottom: 30%; left: 54%; width: 16%; height: 28%;
  background: linear-gradient(135deg, #d5dcd6 0%, #a4b0a6 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.3), inset 0 -20px 30px rgba(0,0,0,0.1);
}
.scn-hester-later .hl-letter {
  position: absolute; bottom: 42%; left: 58%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #b8553d 0%, #a0461a 100%);
  clip-path: polygon(50% 0%, 85% 100%, 60% 100%, 50% 60%, 40% 100%, 15% 100%);
  box-shadow: 0 0 12px 4px rgba(160,70,26,0.3);
  animation: hl-breathe 8s ease-in-out infinite alternate;
}
.scn-hester-later .hl-hester {
  position: absolute; bottom: 14%; left: 34%; width: 10%; height: 44%;
  background: linear-gradient(140deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 60% 30% 70% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: hl-stand 6s ease-in-out infinite alternate;
}
.scn-hester-later .hl-veil {
  position: absolute; bottom: 48%; left: 28%; width: 22%; height: 16%;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,0.15) 0%, transparent 70%);
  border-radius: 50% 20% 50% 30%;
  filter: blur(3px);
  animation: hl-veil 12s ease-in-out infinite alternate;
}
@keyframes hl-wind {
  0% { opacity: 0.75; background-position: 0% 0%; }
  50% { opacity: 0.9; background-position: 3% 2%; }
  100% { opacity: 0.8; background-position: -4% -1%; }
}
@keyframes hl-grass {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(0.98) translateY(1px); }
}
@keyframes hl-breathe {
  0% { transform: scale(1) translateY(0); opacity: 0.85; }
  50% { transform: scale(1.04) translateY(-1px); opacity: 1; }
  100% { transform: scale(0.97) translateY(1px); opacity: 0.9; }
}
@keyframes hl-stand {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-0.5deg) translateX(-1px); }
  100% { transform: rotate(0.5deg) translateX(1px); }
}
@keyframes hl-veil {
  0% { transform: translateX(0) rotate(-3deg) scaleX(1); }
  50% { transform: translateX(12px) rotate(4deg) scaleX(1.1); }
  100% { transform: translateX(-8px) rotate(-2deg) scaleX(0.95); }
}

/* family-legacy */
.scn-family-legacy { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%); }
.scn-family-legacy .bg-wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0, transparent 30px, rgba(0,0,0,0.08) 30px, rgba(0,0,0,0.08) 31px); }
.scn-family-legacy .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: #1a0a00; }
.scn-family-legacy .shelf { position:absolute; top:40%; left:15%; width:70%; height:8px; background: #4a3a2a; box-shadow: 0 4px 8px rgba(0,0,0,0.6); border-radius: 2px; }
.scn-family-legacy .ship { position:absolute; top:37%; left:35%; width:80px; height:40px; background: radial-gradient(ellipse at 30% 50%, #6a5a4a, #3a2a1a); border-radius: 0 0 30% 30%; animation: fl-ship 10s ease-in-out infinite; }
.scn-family-legacy .window { position:absolute; top:20%; right:8%; width:80px; height:100px; background: linear-gradient(180deg, #0a0a20, #1a1a30); border: 3px solid #3a2a1a; border-radius: 6px; animation: fl-window 7s ease-in-out infinite; }
.scn-family-legacy .lantern { position:absolute; top:42%; left:12%; width:12px; height:20px; background: radial-gradient(circle, #f0c060, #a08040); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(240,192,96,0.5); animation: fl-lantern 3s ease-in-out infinite; }
.scn-family-legacy .figure { position:absolute; bottom:18%; left:30%; width:28px; height:65px; background: #1a1a0a; border-radius: 40% 20% 20% 40% / 60% 40% 40% 60%; transform-origin: bottom center; animation: fl-figure 8s ease-in-out infinite; }

@keyframes fl-ship { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes fl-window { 0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } 50% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); } 100% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); } }
@keyframes fl-lantern { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes fl-figure { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }

/* custom-house-veterans */
.scn-custom-house-veterans { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #0a0000 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%); }
.scn-custom-house-veterans .bg-ch { position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent, transparent 12px, rgba(0,0,0,0.06) 12px, rgba(0,0,0,0.06) 13px); }
.scn-custom-house-veterans .table { position:absolute; bottom:30%; left:10%; width:80%; height:20%; background: #3a2a1a; border-radius: 8px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); }
.scn-custom-house-veterans .veteran-a { position:absolute; bottom:40%; left:12%; width:30px; height:65px; background: #1a1a0a; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: ch-vet-a 6s ease-in-out infinite; }
.scn-custom-house-veterans .veteran-b { position:absolute; bottom:40%; left:35%; width:32px; height:68px; background: #2a1a0a; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: ch-vet-b 7s ease-in-out infinite; }
.scn-custom-house-veterans .veteran-c { position:absolute; bottom:40%; left:58%; width:28px; height:62px; background: #1a1a0a; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: ch-vet-c 8s ease-in-out infinite; }
.scn-custom-house-veterans .lantern-ch { position:absolute; top:18%; left:45%; width:14px; height:22px; background: radial-gradient(circle, #f0c060, #a08040); border-radius: 50%; box-shadow: 0 0 30px 10px #f0c060; animation: ch-lantern 4s ease-in-out infinite; }
.scn-custom-house-veterans .desk { position:absolute; bottom:30%; left:5%; width:90%; height:8%; background: #4a3a2a; border-radius: 4px; box-shadow: 0 -2px 4px rgba(0,0,0,0.4); }

@keyframes ch-vet-a { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ch-vet-b { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ch-vet-c { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ch-lantern { 0% { transform: scale(1); opacity: 0.85; box-shadow: 0 0 30px 10px #f0c060; } 50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 40px 15px #f0c060; } 100% { transform: scale(1); opacity: 0.85; box-shadow: 0 0 30px 10px #f0c060; } }

/* officials-and-reform */
.scn-officials-and-reform { background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #b8966e 100%), radial-gradient(ellipse at 30% 70%, #e8dcc4 0%, transparent 50%); }
.scn-officials-and-reform .bg-or { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 40px, rgba(0,0,0,0.04) 40px, rgba(0,0,0,0.04) 41px); }
.scn-officials-and-reform .desk-or { position:absolute; bottom:20%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #a08060, #806040); border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-officials-and-reform .paper { position:absolute; bottom:25%; left:30%; width:60px; height:45px; background: #f0e0c0; border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: or-paper 12s ease-in-out infinite alternate; }
.scn-officials-and-reform .quill { position:absolute; bottom:30%; left:35%; width:4px; height:50px; background: linear-gradient(180deg, #c0a060, #604020); border-radius: 2px 2px 0 0; transform-origin: bottom; animation: or-quill 8s ease-in-out infinite; }
.scn-officials-and-reform .hand { position:absolute; bottom:28%; left:34%; width:18px; height:28px; background: #8a7050; border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(30deg); animation: or-hand 8s ease-in-out infinite; }
.scn-officials-and-reform .window-or { position:absolute; top:10%; right:10%; width:100px; height:140px; border: 5px solid #806040; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); border-radius: 6px; animation: or-window 20s ease-in-out infinite; }
.scn-officials-and-reform .clock { position:absolute; top:15%; left:14%; width:36px; height:50px; background: radial-gradient(circle at 50% 30%, #c0a060, #806040); border-radius: 8px 8px 16px 16px; animation: or-clock 4s ease-in-out infinite alternate; }

@keyframes or-paper { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes or-quill { 0% { transform: rotate(0deg); } 50% { transform: rotate(12deg); } 100% { transform: rotate(0deg); } }
@keyframes or-hand { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(35deg) translateX(2px); } 100% { transform: rotate(30deg) translateX(0); } }
@keyframes or-window { 0% { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); } 50% { background: linear-gradient(180deg, #a0d8ef 0%, #c0e8f0 100%); } 100% { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); } }
@keyframes or-clock { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }

/* old-officers */
.scn-old-officers { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 70%); }
.scn-old-officers .bg-oo { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #3a2a1a 0, #3a2a1a 18px, #2a1a0a 18px, #2a1a0a 19px); }
.scn-old-officers .bench { position:absolute; bottom:30%; left:15%; width:70%; height:14px; background: #4a3a2a; border-radius: 4px; }
.scn-old-officers .olive-officer { position:absolute; bottom:32%; left:22%; width:34px; height:78px; background: #1a1a0a; border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; animation: oo-stand 10s ease-in-out infinite; }
.scn-old-officers .sitting-officer { position:absolute; bottom:30%; left:50%; width:38px; height:56px; background: #2a2a1a; border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; animation: oo-sit 8s ease-in-out infinite; }
.scn-old-officers .lantern-oo { position:absolute; top:18%; left:42%; width:16px; height:24px; background: radial-gradient(circle, #f0c060, #a08040); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(240,192,96,0.6); animation: oo-lantern 5s ease-in-out infinite; }
.scn-old-officers .crate { position:absolute; bottom:10%; left:10%; width:55px; height:40px; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 4px; box-shadow: 2px 2px 4px rgba(0,0,0,0.5); animation: oo-crate 15s ease-in-out infinite; }
.scn-old-officers .shadow { position:absolute; bottom:0; left:20%; width:60%; height:10px; background: rgba(0,0,0,0.25); filter: blur(4px); animation: oo-shadow 8s ease-in-out infinite; }

@keyframes oo-stand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes oo-sit { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes oo-lantern { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes oo-crate { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes oo-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(0.95); } 100% { opacity: 0.5; transform: scaleX(1); } }

.scn-chillingworth-observes {
  background: linear-gradient(180deg, #1a1410 0%, #2d1f14 50%, #1a1410 100%), radial-gradient(ellipse at 50% 80%, #b85a2a 0%, transparent 70%);
}
.scn-chillingworth-observes .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0d08 100%);
  animation: co-wall 10s ease-in-out infinite alternate;
}
.scn-chillingworth-observes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3d281a 0%, #2a1a0e 100%);
}
.scn-chillingworth-observes .fireplace {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a3a1a 0%, #3d1a08 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 30px 10px #b85a2a;
}
.scn-chillingworth-observes .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 75%, #b85a2a 0%, transparent 60%);
  opacity: .3;
  animation: co-glow 4s ease-in-out infinite;
}
.scn-chillingworth-observes .figure-left {
  position: absolute; bottom: 30%; left: 35%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #0d0a06 0%, #1a0d08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: co-fig-l 5s ease-in-out infinite;
}
.scn-chillingworth-observes .figure-right {
  position: absolute; bottom: 30%; right: 35%; width: 25px; height: 65px;
  background: linear-gradient(180deg, #0d0a06 0%, #1a0d08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: co-fig-r 6s ease-in-out infinite;
}
.scn-chillingworth-observes .shadow {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: co-shad 8s ease-in-out infinite;
}
@keyframes co-wall {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes co-glow {
  0% { opacity: .2; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.15); }
  100% { opacity: .3; transform: scale(0.95); }
}
@keyframes co-fig-l {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes co-fig-r {
  0%,100% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
}
@keyframes co-shad {
  0% { transform: translateX(-5px) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.15); }
  100% { transform: translateX(-3px) scaleX(0.9); }
}

/* ----- witch-lady ----- */
.scn-witch-lady {
  background: linear-gradient(180deg, #1a1018 0%, #2a1c24 50%, #1a1018 100%), radial-gradient(ellipse at 50% 50%, #c47a3a 0%, transparent 60%);
}
.scn-witch-lady .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1820 0%, #1a0e12 100%);
  animation: wl-wall 12s ease-in-out infinite alternate;
}
.scn-witch-lady .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a2228 0%, #2a141a 100%);
}
.scn-witch-lady .window {
  position: absolute; top: 15%; right: 25%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #8a9aac 0%, #4a5a6c 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 0 40px 12px #5a6a7c;
  animation: wl-window 15s linear infinite alternate;
}
.scn-witch-lady .candle {
  position: absolute; bottom: 25%; left: 50%; width: 10px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8c070 0%, #a06820 100%);
  border-radius: 30% 30% 10% 10%;
  animation: wl-candle 3s ease-in-out infinite;
}
.scn-witch-lady .witch-body {
  position: absolute; bottom: 25%; left: 40%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #0a0806 0%, #1a100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wl-wbody 7s ease-in-out infinite;
}
.scn-witch-lady .witch-hat {
  position: absolute; bottom: 70%; left: 40%; width: 40px; height: 30px;
  transform: translateX(0);
  background: linear-gradient(180deg, #0a0806 0%, #1a100e 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(10% 100%, 50% 0, 90% 100%);
  animation: wl-what 7s ease-in-out infinite;
}
.scn-witch-lady .child-figure {
  position: absolute; bottom: 25%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wl-child 9s ease-in-out infinite;
}
.scn-witch-lady .shadow {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 15px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: wl-shad 10s ease-in-out infinite;
}
.scn-witch-lady .dust {
  position: absolute; top: 40%; left: 20%; width: 6px; height: 6px;
  background: rgba(200,180,160,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: wl-dust 30s linear infinite;
}
@keyframes wl-wall {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}
@keyframes wl-window {
  0% { opacity: .3; transform: scaleX(1); }
  50% { opacity: .6; transform: scaleX(1.05); }
  100% { opacity: .4; transform: scaleX(0.95); }
}
@keyframes wl-candle {
  0%,100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); }
}
@keyframes wl-wbody {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes wl-what {
  0%,100% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-1px) rotate(3deg); }
}
@keyframes wl-child {
  0%,100% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes wl-shad {
  0% { transform: translateX(-4px) scaleX(1); }
  50% { transform: translateX(4px) scaleX(1.1); }
  100% { transform: translateX(-2px) scaleX(0.95); }
}
@keyframes wl-dust {
  0% { transform: translateX(0) translateY(0) scale(1); opacity: .2; }
  25% { transform: translateX(30px) translateY(-20px) scale(0.8); opacity: .5; }
  50% { transform: translateX(60px) translateY(-10px) scale(1.2); opacity: .3; }
  75% { transform: translateX(90px) translateY(-30px) scale(0.9); opacity: .4; }
  100% { transform: translateX(120px) translateY(0) scale(1); opacity: .2; }
}

/* ----- hester-refuses-witch ----- */
.scn-hester-refuses-witch {
  background: linear-gradient(180deg, #1a1410 0%, #2a1c14 50%, #1a0e0a 100%), radial-gradient(ellipse at 50% 85%, #b85a2a 0%, transparent 60%);
}
.scn-hester-refuses-witch .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  animation: hfw-wall 14s ease-in-out infinite alternate;
}
.scn-hester-refuses-witch .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3d2a1a 0%, #2a1a0e 100%);
}
.scn-hester-refuses-witch .door {
  position: absolute; bottom: 20%; left: 40%; width: 70px; height: 120px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 0 20px 8px #b85a2a40;
  animation: hfw-door 12s ease-in-out infinite;
}
.scn-hester-refuses-witch .lantern {
  position: absolute; bottom: 40%; left: 30%; width: 12px; height: 20px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 70%);
  border-radius: 20%;
  box-shadow: 0 0 30px 10px #c08840, 0 0 60px 20px rgba(192,136,64,0.4);
  animation: hfw-lantern 3s ease-in-out infinite;
}
.scn-hester-refuses-witch .hester {
  position: absolute; bottom: 20%; left: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0d0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hfw-hester 8s ease-in-out infinite;
}
.scn-hester-refuses-witch .witch-figure {
  position: absolute; bottom: 20%; right: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a0806 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hfw-witch 7s ease-in-out infinite;
}
.scn-hester-refuses-witch .shadow {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 18px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(7px);
  animation: hfw-shad 9s ease-in-out infinite;
}
.scn-hester-refuses-witch .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, #c08840 0%, transparent 50%);
  opacity: .3;
  animation: hfw-glow 5s ease-in-out infinite alternate;
}
@keyframes hfw-wall {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes hfw-door {
  0%,100% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
}
@keyframes hfw-lantern {
  0%,100% { opacity: .8; transform: rotate(-4deg); }
  50% { opacity: 1; transform: rotate(4deg); }
}
@keyframes hfw-hester {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes hfw-witch {
  0%,100% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
}
@keyframes hfw-shad {
  0% { transform: translateX(-3px) scaleX(1); }
  50% { transform: translateX(5px) scaleX(1.1); }
  100% { transform: translateX(-2px) scaleX(0.9); }
}
@keyframes hfw-glow {
  0% { opacity: .2; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.1); }
  100% { opacity: .3; transform: scale(0.95); }
}

/* ----- chillingworth-settles ----- */
.scn-chillingworth-settles {
  background: linear-gradient(180deg, #1a1412 0%, #2a1c16 50%, #1a0e0a 100%), radial-gradient(ellipse at 50% 80%, #a06830 0%, transparent 60%);
}
.scn-chillingworth-settles .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  animation: cs-wall 11s ease-in-out infinite alternate;
}
.scn-chillingworth-settles .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a281a 0%, #2a1a0e 100%);
}
.scn-chillingworth-settles .desk {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 15px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 5%;
  animation: cs-desk 15s ease-in-out infinite;
}
.scn-chillingworth-settles .books {
  position: absolute; bottom: 38%; left: 32%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: cs-books 20s linear infinite alternate;
}
.scn-chillingworth-settles .candle {
  position: absolute; bottom: 35%; left: 45%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #e8c070 0%, #a06820 100%);
  border-radius: 30% 30% 10% 10%;
  animation: cs-candle 3s ease-in-out infinite;
}
.scn-chillingworth-settles .figure {
  position: absolute; bottom: 30%; left: 45%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #0d0a06 0%, #1a100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-figure 5s ease-in-out infinite;
}
.scn-chillingworth-settles .shadow {
  position: absolute; bottom: 30%; left: 40%; right: 20%; height: 22px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: cs-shad 9s ease-in-out infinite;
}
.scn-chillingworth-settles .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 45% 65%, #c08040 0%, transparent 50%);
  opacity: .3;
  animation: cs-glow 6s ease-in-out infinite alternate;
}
@keyframes cs-wall {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}
@keyframes cs-desk {
  0%,100% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
}
@keyframes cs-books {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cs-candle {
  0%,100% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
}
@keyframes cs-figure {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes cs-shad {
  0% { transform: translateX(-4px) scaleX(1); }
  50% { transform: translateX(4px) scaleX(1.12); }
  100% { transform: translateX(-2px) scaleX(0.9); }
}
@keyframes cs-glow {
  0% { opacity: .2; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.1); }
  100% { opacity: .3; transform: scale(0.95); }
}

/* pearl-sad-man */
.scn-pearl-sad-man { background: linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 50%, #0a2a1a 100%), radial-gradient(ellipse at 50% 0%, #4a7a5a 0%, transparent 70%); }
.scn-pearl-sad-man .forest-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a3a2a 0%, #2a5a3a 100%); }
.scn-pearl-sad-man .moss-hill { position:absolute; bottom:15%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at 50% 100%, #4a6a3a 0%, #2a4a2a 100%); border-radius:50% 50% 40% 40%; transform: translateX(-10%); }
.scn-pearl-sad-man .figure-minister { position:absolute; bottom:20%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: psm-minister 6s ease-in-out infinite; }
.scn-pearl-sad-man .figure-pearl { position:absolute; bottom:25%; left:55%; width:14px; height:28px; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: psm-pearl 4s ease-in-out infinite; }
.scn-pearl-sad-man .figure-hester { position:absolute; bottom:28%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: psm-hester 5s ease-in-out infinite; }
.scn-pearl-sad-man .light-ray { position:absolute; top:10%; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,255,200,.15) 0%, transparent 100%); transform: rotate(-10deg); animation: psm-light 8s ease-in-out infinite alternate; }
.scn-pearl-sad-man .shadow-overlay { position:absolute; inset:0; background: rgba(0,0,0,.2); animation: psm-shadow 6s ease-in-out infinite alternate; }
@keyframes psm-minister { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes psm-pearl { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes psm-hester { 0% { transform: translateX(0) skew(0); } 50% { transform: translateX(-3px) skew(-5deg); } 100% { transform: translateX(0) skew(0); } }
@keyframes psm-light { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.4; } }
@keyframes psm-shadow { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.2; } }

/* hester-quiets-pearl */
.scn-hester-quiets-pearl { background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 50%, #4a5a3a 100%), radial-gradient(ellipse at 50% 0%, #c0d0a0 0%, transparent 70%); }
.scn-hester-quiets-pearl .market-bg { position:absolute; inset:0; background: linear-gradient(180deg, #b0c0a0 0%, #809070 100%); }
.scn-hester-quiets-pearl .crowd { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: repeating-linear-gradient(90deg, #4a5a4a 0px, #4a5a4a 8px, transparent 8px, transparent 16px); background-size: 16px 100%; animation: hqp-crowd 12s linear infinite; }
.scn-hester-quiets-pearl .hester { position:absolute; bottom:30%; left:40%; width:22px; height:44px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: hqp-hester 5s ease-in-out infinite; }
.scn-hester-quiets-pearl .pearl { position:absolute; bottom:35%; left:52%; width:14px; height:28px; background: linear-gradient(180deg, #8a6a5a 0%, #5a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: hqp-pearl 4s ease-in-out infinite; }
.scn-hester-quiets-pearl .building-back { position:absolute; bottom:40%; left:5%; width:30%; height:50%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius:4%; box-shadow: inset 0 0 20px rgba(0,0,0,.3); }
.scn-hester-quiets-pearl .shadow-accent { position:absolute; inset:0; background: rgba(0,0,0,.1); animation: hqp-shadow 8s ease-in-out infinite alternate; }
@keyframes hqp-crowd { 0% { background-position: 0 0; } 100% { background-position: 16px 0; } }
@keyframes hqp-hester { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes hqp-pearl { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(4px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes hqp-shadow { 0% { opacity:.2; } 50% { opacity:.4; } 100% { opacity:.2; } }

/* puritan-festivity */
.scn-puritan-festivity { background: linear-gradient(180deg, #7a9ac0 0%, #5a7aa0 50%, #3a5a80 100%), radial-gradient(ellipse at 50% 0%, #a0c0e0 0%, transparent 70%); }
.scn-puritan-festivity .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a8ab0 0%, #8aaad0 100%); }
.scn-puritan-festivity .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%); }
.scn-puritan-festivity .maypole { position:absolute; bottom:50%; left:50%; width:6px; height:50%; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%); transform: translateX(-50%); border-radius:2px; }
.scn-puritan-festivity .ribbon-1 { position:absolute; bottom:50%; left:50%; width:3px; height:40%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); transform-origin: top center; animation: pft-ribbon1 6s ease-in-out infinite; }
.scn-puritan-festivity .ribbon-2 { position:absolute; bottom:50%; left:50%; width:3px; height:40%; background: linear-gradient(180deg, #b87878 0%, #702243 100%); transform-origin: top center; animation: pft-ribbon2 6s ease-in-out infinite reverse; }
.scn-puritan-festivity .figure-1 { position:absolute; bottom:30%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: pft-fig1 4s ease-in-out infinite; }
.scn-puritan-festivity .figure-2 { position:absolute; bottom:30%; left:55%; width:18px; height:36px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: pft-fig2 4s ease-in-out infinite reverse; }
.scn-puritan-festivity .bunting { position:absolute; top:10%; left:10%; right:10%; height:10%; background: repeating-linear-gradient(90deg, #c8553d 0%, #c8553d 10px, #b87878 10px, #b87878 20px, #e0a060 20px, #e0a060 30px); border-radius:0 0 50% 50%; animation: pft-bunting 10s linear infinite; }
.scn-puritan-festivity .sun-glow { position:absolute; top:5%; left:50%; width:60px; height:60px; transform: translateX(-50%); background: radial-gradient(circle, #ffd060 0%, transparent 70%); animation: pft-sun 8s ease-in-out infinite alternate; }
@keyframes pft-ribbon1 { 0% { transform: rotate(-30deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-30deg); } }
@keyframes pft-ribbon2 { 0% { transform: rotate(30deg); } 50% { transform: rotate(-30deg); } 100% { transform: rotate(30deg); } }
@keyframes pft-fig1 { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-4px) translateY(-2px) rotate(-5deg); } 100% { transform: translateX(0) translateY(0); } }
@keyframes pft-fig2 { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(4px) translateY(-2px) rotate(5deg); } 100% { transform: translateX(0) translateY(0); } }
@keyframes pft-bunting { 0% { background-position: 0 0; } 100% { background-position: 30px 0; } }
@keyframes pft-sun { 0% { opacity:.6; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.1); } 100% { opacity:.7; transform: translateX(-50%) scale(1); } }

/* holiday-sports */
.scn-holiday-sports { background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 80%, #9a8a7a 0%, transparent 70%); }
.scn-holiday-sports .arena-bg { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); }
.scn-holiday-sports .pillory { position:absolute; bottom:30%; left:50%; width:40px; height:30px; background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%); transform: translateX(-50%); border-radius:4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-holiday-sports .fighter-1 { position:absolute; bottom:25%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: hsp-fight1 2s ease-in-out infinite; }
.scn-holiday-sports .fighter-2 { position:absolute; bottom:25%; left:55%; width:20px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: hsp-fight2 2s ease-in-out infinite reverse; }
.scn-holiday-sports .beadle { position:absolute; bottom:30%; left:65%; width:22px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; animation: hsp-beadle 3s ease-in-out infinite; }
.scn-holiday-sports .sword { position:absolute; bottom:35%; left:50%; width:30px; height:4px; background: linear-gradient(90deg, #a0a0b0 0%, #707080 100%); transform: translateX(-50%) rotate(30deg); animation: hsp-sword 4s ease-in-out infinite; }
.scn-holiday-sports .crowd-ring { position:absolute; bottom:10%; left:15%; right:15%; height:20%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 10px, transparent 10px, transparent 20px); background-size: 20px 100%; animation: hsp-crowd 10s linear infinite; }
@keyframes hsp-fight1 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hsp-fight2 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hsp-beadle { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(3px) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes hsp-sword { 0% { transform: translateX(-50%) rotate(20deg); } 50% { transform: translateX(-50%) rotate(40deg); } 100% { transform: translateX(-50%) rotate(20deg); } }
@keyframes hsp-crowd { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }

.scn-hester-confesses { background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 40%, #2d1e1a 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%); }
.scn-hester-confesses .bg-forest { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f1a 0%, #1a2a1a 50%, #0a0a10 100%); opacity:.8; animation: hc-bg 15s ease-in-out infinite alternate; }
.scn-hester-confesses .pine-stump { position:absolute; bottom:22%; left:50%; width:100px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.6); }
.scn-hester-confesses .moss { position:absolute; bottom:24%; left:44%; width:120px; height:20px; background: radial-gradient(ellipse, #3a5a3a 0%, transparent 70%); border-radius:50%; opacity:.7; animation: hc-moss 8s ease-in-out infinite alternate; }
.scn-hester-confesses .hester { position:absolute; bottom:20%; left:38%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-figure 6s ease-in-out infinite; }
.scn-hester-confesses .dimmesdale { position:absolute; bottom:20%; left:56%; width:28px; height:82px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-figure 6s ease-in-out infinite -2s; }
.scn-hester-confesses .scarlet-letter { position:absolute; bottom:42%; left:40%; width:14px; height:18px; background: radial-gradient(circle, #b8583a 0%, #6a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px 6px rgba(184,88,58,.4), 0 0 40px 12px rgba(184,88,58,.15); animation: hc-glow 4s ease-in-out infinite alternate; }
.scn-hester-confesses .brook { position:absolute; bottom:0; left:10%; width:80%; height:18%; background: linear-gradient(180deg, #1a2a3a 0%, #2a4a5a 100%); border-radius: 40% 60% 0% 0% / 80% 80% 0% 0%; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: hc-brook 5s ease-in-out infinite alternate; }
@keyframes hc-bg { 0% { opacity:.75 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes hc-moss { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(1px) scale(.98) } }
@keyframes hc-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(.5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes hc-glow { 0% { box-shadow: 0 0 15px 4px rgba(184,88,58,.3); opacity:.8 } 50% { box-shadow: 0 0 30px 10px rgba(184,88,58,.5); opacity:1 } 100% { box-shadow: 0 0 20px 6px rgba(184,88,58,.35); opacity:.9 } }
@keyframes hc-brook { 0% { border-radius: 40% 60% 0% 0% / 80% 80% 0% 0% } 50% { border-radius: 45% 55% 0% 0% / 85% 75% 0% 0% } 100% { border-radius: 35% 65% 0% 0% / 75% 85% 0% 0% } }

.scn-brook-murmur { background: linear-gradient(180deg, #111122 0%, #1a2a2e 50%, #0a0a14 100%), radial-gradient(ellipse at 50% 0%, #1a2a2e 0%, transparent 70%); }
.scn-brook-murmur .bg-forest { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a12 0%, #1a2a1a 50%, #05050a 100%); opacity:.8; animation: bm-bg 20s ease-in-out infinite alternate; }
.scn-brook-murmur .brook { position:absolute; top:10%; left:35%; width:30%; height:80%; background: linear-gradient(180deg, #3a6a7a 0%, #2a4a5a 50%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 20% 20% 60% 60%; filter: blur(2px); animation: bm-flow 7s ease-in-out infinite alternate; }
.scn-brook-murmur .pearl { position:absolute; top:25%; left:25%; width:20px; height:35px; background: linear-gradient(180deg, #d0d8e0 0%, #8090a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 6px rgba(200,220,240,.3); animation: bm-dance 4s ease-in-out infinite; }
.scn-brook-murmur .sparkle-1 { position:absolute; top:30%; left:42%; width:6px; height:6px; background:#fff; border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,255,255,.6); animation: bm-sparkle 2s ease-in-out infinite alternate; }
.scn-brook-murmur .sparkle-2 { position:absolute; top:60%; left:52%; width:4px; height:4px; background:#fff; border-radius:50%; box-shadow: 0 0 8px 3px rgba(255,255,255,.5); animation: bm-sparkle 2.5s ease-in-out infinite alternate .5s; }
.scn-brook-murmur .ferns { position:absolute; bottom:15%; left:12%; width:50px; height:70px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 80% 0% 60% 20% / 100% 0% 80% 0%; transform: rotate(10deg); animation: bm-sway 6s ease-in-out infinite; }
.scn-brook-murmur .moss-rock { position:absolute; bottom:20%; right:15%; width:60px; height:40px; background: radial-gradient(ellipse at 30% 30%, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: bm-breathe 8s ease-in-out infinite alternate; }
@keyframes bm-bg { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.75 } }
@keyframes bm-flow { 0% { border-radius: 50% 50% 40% 40% / 20% 20% 60% 60%; transform: translateX(0) } 50% { border-radius: 45% 55% 35% 45% / 25% 15% 55% 65%; transform: translateX(5px) } 100% { border-radius: 55% 45% 45% 35% / 15% 25% 65% 55%; transform: translateX(-5px) } }
@keyframes bm-dance { 0% { transform: translate(0, 0) rotate(-2deg) scale(1) } 25% { transform: translate(10px, -5px) rotate(3deg) scale(1.05) } 50% { transform: translate(20px, 0) rotate(-1deg) scale(1) } 75% { transform: translate(10px, -3px) rotate(2deg) scale(1.02) } 100% { transform: translate(0, 0) rotate(-2deg) scale(1) } }
@keyframes bm-sparkle { 0% { opacity:.2; transform: scale(.5) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:.3; transform: scale(.8) } }
@keyframes bm-sway { 0% { transform: rotate(8deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(10deg) } }
@keyframes bm-breathe { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(.97) } }

.scn-pearl-sent-away { background: linear-gradient(180deg, #0a0a12 0%, #16131e 40%, #1e1212 100%), radial-gradient(ellipse at 50% 100%, #16131e 0%, transparent 70%); }
.scn-pearl-sent-away .bg-trees { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #0a0a0f 0px, #0a0a0f 40px, transparent 40px, transparent 80px, #0f0f1a 80px, #0f0f1a 120px); opacity:.6; animation: psa-trees 25s linear infinite; }
.scn-pearl-sent-away .hester-dimmesdale { position:absolute; bottom:18%; left:45%; width:50px; height:90px; background: linear-gradient(180deg, #12121e 0%, #05050a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 10px 30px rgba(0,0,0,.7); animation: psa-seated 6s ease-in-out infinite; }
.scn-pearl-sent-away .pearl { position:absolute; bottom:22%; left:20%; width:16px; height:30px; background: linear-gradient(180deg, #b0b8c0 0%, #606870 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psa-retreat 10s ease-in-out infinite; }
.scn-pearl-sent-away .black-man-shadow { position:absolute; top:5%; right:15%; width:80px; height:180px; background: #000; border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; filter: blur(8px); opacity:.4; animation: psa-loom 7s ease-in-out infinite alternate; }
.scn-pearl-sent-away .letter-a { position:absolute; bottom:38%; left:48%; width:10px; height:14px; background: radial-gradient(circle, #b8583a 0%, transparent 100%); border-radius: 10%; box-shadow: 0 0 15px 5px rgba(184,88,58,.3); animation: psa-glow 4s ease-in-out infinite alternate; }
.scn-pearl-sent-away .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #0f0a0a 0%, #050505 100%); border-radius: 30% 70% 0% 0% / 100% 100% 0% 0%; box-shadow: inset 0 10px 30px rgba(0,0,0,.8); }
@keyframes psa-trees { 0% { background-position: 0 0 } 100% { background-position: -120px 0 } }
@keyframes psa-seated { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes psa-retreat { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity:1 } 50% { transform: translateX(-20px) translateY(-5px) rotate(-5deg); opacity:.7 } 100% { transform: translateX(-40px) translateY(0) rotate(0deg); opacity:.4 } }
@keyframes psa-loom { 0% { transform: scale(1) translateY(0); opacity:.3 } 50% { transform: scale(1.05) translateY(-10px); opacity:.5 } 100% { transform: scale(.95) translateY(5px); opacity:.4 } }
@keyframes psa-glow { 0% { box-shadow: 0 0 10px 3px rgba(184,88,58,.2); opacity:.6 } 50% { box-shadow: 0 0 25px 8px rgba(184,88,58,.4); opacity:.9 } 100% { box-shadow: 0 0 15px 5px rgba(184,88,58,.25); opacity:.7 } }

.scn-pearl-obeys { background: linear-gradient(180deg, #121218 0%, #1e222e 50%, #1a1212 100%), radial-gradient(ellipse at 50% 0%, #1e222e 0%, transparent 70%); }
.scn-pearl-obeys .bg-forest { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f18 0%, #182218 50%, #08080a 100%); opacity:.8; animation: po-bg 18s ease-in-out infinite alternate; }
.scn-pearl-obeys .pearl { position:absolute; bottom:22%; left:15%; width:22px; height:38px; background: linear-gradient(180deg, #c8d0d8 0%, #788088 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: po-walk 12s ease-in-out infinite; }
.scn-pearl-obeys .hester { position:absolute; bottom:18%; right:18%; width:28px; height:75px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: po-watch 12s ease-in-out infinite -4s; }
.scn-pearl-obeys .violet { position:absolute; bottom:15%; left:28%; width:12px; height:12px; background: radial-gradient(circle, #6a4a8a 0%, #3a1a5a 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(106,74,138,.4); animation: po-flower 5s ease-in-out infinite; }
.scn-pearl-obeys .anemone { position:absolute; bottom:20%; left:35%; width:14px; height:14px; background: radial-gradient(circle, #e0e0f0 0%, #a0a0b0 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,200,220,.3); animation: po-flower 5s ease-in-out infinite -1.5s; }
.scn-pearl-obeys .columbine { position:absolute; bottom:12%; right:25%; width:8px; height:18px; background: linear-gradient(180deg, #a0461a 0%, #5a200a 100%); border-radius: 50%; transform: rotate(20deg); box-shadow: 0 0 6px 2px rgba(160,70,26,.3); animation: po-flower 5s ease-in-out infinite -3s; }
.scn-pearl-obeys .brook-ripple { position:absolute; bottom:5%; left:20%; width:60%; height:20px; border: 1px solid #3a5a6a; border-radius: 50%; opacity:.5; animation: po-ripple 4s linear infinite; }
@keyframes po-bg { 0% { opacity:.75 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes po-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(15px) translateY(-3px) rotate(2deg) } 50% { transform: translateX(30px) translateY(0) rotate(0deg) } 75% { transform: translateX(45px) translateY(-3px) rotate(-2deg) } 100% { transform: translateX(60px) translateY(0) rotate(0deg); opacity:.5 } }
@keyframes po-watch { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes po-flower { 0% { transform: scale(.8) rotate(-5deg) } 25% { transform: scale(1.1) rotate(0deg) } 50% { transform: scale(.9) rotate(5deg) } 75% { transform: scale(1) rotate(0deg) } 100% { transform: scale(.8) rotate(-5deg) } }
@keyframes po-ripple { 0% { transform: scale(.9); opacity:.6 } 50% { transform: scale(1.1); opacity:.2 } 100% { transform: scale(1.3); opacity:0 } }

/* Hester Cottage – Lonely Outskirts / Overcast */
.scn-hester-cottage {
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 100%, #3a3a3a 0%, transparent 70%);
}
.scn-hester-cottage .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%); animation: driftsky-hc 20s ease-in-out infinite alternate; }
.scn-hester-cottage .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #2a3a2a 0%, #1a1a1a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; }
.scn-hester-cottage .cottage { position: absolute; bottom: 28%; left: 35%; width: 70px; height: 55px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 6% 6% 3% 3%; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-hester-cottage .window-dim { position: absolute; bottom: 38%; left: 42%; width: 12px; height: 16px; background: #5a5a3a; border-radius: 2px; box-shadow: 0 0 8px 2px #5a5a3a; animation: glow-hc 4s ease-in-out infinite alternate; }
.scn-hester-cottage .figure-alone { position: absolute; bottom: 27%; left: 48%; width: 14px; height: 32px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: trudge-hc 6s ease-in-out infinite; }
.scn-hester-cottage .trees { position: absolute; bottom: 30%; left: 5%; right: 5%; height: 50%; background: linear-gradient(180deg, #1a1a1a 0%, transparent 100%); clip-path: polygon(0% 100%, 5% 40%, 10% 100%, 20% 30%, 30% 100%, 40% 50%, 50% 100%, 60% 20%, 70% 100%, 80% 60%, 90% 100%, 100% 10%); animation: swaytree-hc 15s ease-in-out infinite alternate; }
.scn-hester-cottage .mist { position: absolute; bottom: 20%; left: -10%; right: -10%; height: 40%; background: linear-gradient(90deg, transparent 0%, rgba(90,90,90,0.3) 50%, transparent 100%); filter: blur(12px); animation: driftmist-hc 25s linear infinite; }
.scn-hester-cottage .children-fleeing { position: absolute; bottom: 30%; right: 15%; width: 8px; height: 16px; background: #2a2a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: flee-hc 3s ease-in-out infinite; }

@keyframes driftsky-hc { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes glow-hc { 0% { opacity: 0.3; box-shadow: 0 0 4px 1px #5a5a3a; } 50% { opacity: 0.8; box-shadow: 0 0 12px 4px #6a6a4a; } 100% { opacity: 0.5; box-shadow: 0 0 6px 2px #5a5a3a; } }
@keyframes trudge-hc { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(4px) translateY(-1px); } 50% { transform: translateX(8px) translateY(0); } 75% { transform: translateX(12px) translateY(-1px); } 100% { transform: translateX(16px) translateY(0); } }
@keyframes swaytree-hc { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes driftmist-hc { 0% { transform: translateX(0); } 100% { transform: translateX(50%); } }
@keyframes flee-hc { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-12px) scale(0.8); } 100% { transform: translateX(-24px) scale(0.5); opacity: 0; } }

/* Hester Work – Dim Interior / Ascetic Craftsmanship */
.scn-hester-work {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0505 100%), radial-gradient(circle at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-hester-work .wall-dark { position: absolute; inset: 0; background: linear-gradient(180deg, #1a1111 0%, #0a0505 100%); }
.scn-hester-work .table-rough { position: absolute; bottom: 8%; left: 12%; right: 12%; height: 22%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-hester-work .figure-sewing { position: absolute; bottom: 14%; left: 38%; width: 24px; height: 50px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rock-hw 3s ease-in-out infinite; }
.scn-hester-work .candle-glow { position: absolute; bottom: 48%; left: 58%; width: 10px; height: 22px; background: radial-gradient(circle, #e0a040 0%, #a06020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 24px 8px #e0a040, 0 0 48px 16px rgba(200, 120, 40, 0.4); animation: flicker-hw 2s ease-in-out infinite alternate; }
.scn-hester-work .scarlet-stitch { position: absolute; bottom: 34%; left: 46%; width: 12px; height: 12px; background: radial-gradient(circle, #c8553d 0%, #702243 70%); border-radius: 50%; box-shadow: 0 0 12px 4px #c8553d; animation: pulset-hw 4s ease-in-out infinite; }
.scn-hester-work .fabric-spill { position: absolute; bottom: 6%; left: 28%; width: 50px; height: 25px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 40% 60% 10% 10% / 80% 80% 20% 20%; transform: rotate(-5deg); animation: shiftfab-hw 8s ease-in-out infinite alternate; }
.scn-hester-work .window-night { position: absolute; top: 12%; right: 8%; width: 34px; height: 46px; background: #0a0a1a; border-radius: 4%; box-shadow: inset 0 0 10px #1a1a3a, 0 0 4px rgba(255,255,255,0.1); }

@keyframes rock-hw { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes flicker-hw { 0% { transform: scaleY(1) scaleX(1); opacity: 0.8; } 30% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; } 70% { transform: scaleY(0.95) scaleX(1.05); opacity: 0.9; } 100% { transform: scaleY(1) scaleX(1); opacity: 0.85; } }
@keyframes pulset-hw { 0% { transform: scale(1); box-shadow: 0 0 10px 2px #c8553d; } 50% { transform: scale(1.15); box-shadow: 0 0 20px 6px #c8553d, 0 0 40px 12px rgba(200,85,61,0.3); } 100% { transform: scale(1); box-shadow: 0 0 10px 2px #c8553d; } }
@keyframes shiftfab-hw { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }

/* Hester Suffering – Gauntlet of Scorn / Overcast */
.scn-hester-suffering {
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-hester-suffering .sky-heavy { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); animation: lower-hs 15s ease-in-out infinite alternate; }
.scn-hester-suffering .building-left { position: absolute; left: 0; top: 0; bottom: 25%; width: 28%; background: linear-gradient(90deg, #11111a 0%, #1a1a2a 100%); clip-path: polygon(0 0, 100% 8%, 100% 100%, 0 100%); }
.scn-hester-suffering .building-right { position: absolute; right: 0; top: 0; bottom: 25%; width: 28%; background: linear-gradient(90deg, #1a1a2a 0%, #11111a 100%); clip-path: polygon(0 8%, 100% 0, 100% 100%, 0 100%); }
.scn-hester-suffering .street-mud { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); }
.scn-hester-suffering .figure-bowed { position: absolute; bottom: 24%; left: 50%; width: 16px; height: 38px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: suffer-hs 5s ease-in-out infinite; }
.scn-hester-suffering .clergymen { position: absolute; bottom: 28%; left: 18%; width: 14px; height: 46px; background: #15151a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: preach-hs 4s ease-in-out infinite; }
.scn-hester-suffering .children-taunting { position: absolute; bottom: 25%; right: 12%; width: 8px; height: 16px; background: #2a2a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dart-hs 2.5s ease-in-out infinite; }
.scn-hester-suffering .mud-particles { position: absolute; bottom: 25%; left: 45%; width: 5px; height: 5px; background: #3a3a2a; border-radius: 50%; animation: splat-hs 1.5s ease-in-out infinite; }

@keyframes lower-hs { 0% { transform: translateY(0); opacity: 0.7; } 50% { transform: translateY(4px); opacity: 0.9; } 100% { transform: translateY(0); opacity: 0.6; } }
@keyframes suffer-hs { 0% { transform: translateX(-50%) translateY(0) scaleY(1); } 30% { transform: translateX(-50%) translateY(2px) scaleY(0.95); } 60% { transform: translateX(-50%) translateY(-1px) scaleY(1); } 100% { transform: translateX(-50%) translateY(0) scaleY(1); } }
@keyframes preach-hs { 0% { transform: rotate(0deg); } 25% { transform: rotate(-5deg); } 50% { transform: rotate(2deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes dart-hs { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-8px) rotate(-15deg); } 50% { transform: translateX(4px) rotate(10deg); } 75% { transform: translateX(-12px) rotate(-20deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes splat-hs { 0% { transform: translate(0, 0) scale(1); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translate(10px, -15px) scale(0.3); opacity: 0; } }

/* Hester Insight – Moonlit Revelation / Infernal Glow */
.scn-hester-insight {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #0a0a1a 100%), radial-gradient(circle at 50% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-hester-insight .sky-night { position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a1a 0%, #15152a 100%); }
.scn-hester-insight .moon-glow { position: absolute; top: 12%; left: 50%; width: 70px; height: 70px; background: radial-gradient(circle, #c0d0e0 0%, #8090a0 40%, transparent 100%); transform: translateX(-50%); filter: blur(4px); animation: pulsemoon-hi 12s ease-in-out infinite alternate; }
.scn-hester-insight .figure-shadow { position: absolute; bottom: 8%; left: 50%; width: 35px; height: 70px; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); }
.scn-hester-insight .letter-infernal { position: absolute; bottom: 28%; left: 50%; width: 16px; height: 16px; background: radial-gradient(circle, #ffa040 0%, #a0461a 70%); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 30px 10px #ffa040, 0 0 60px 20px rgba(255, 160, 64, 0.5); animation: inferno-hi 3s ease-in-out infinite; }
.scn-hester-insight .phantom-blaze { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: radial-gradient(circle at 30% 60%, rgba(255, 160, 64, 0.2) 0%, transparent 30%), radial-gradient(circle at 70% 40%, rgba(200, 85, 61, 0.15) 0%, transparent 25%), radial-gradient(circle at 50% 80%, rgba(255, 160, 64, 0.1) 0%, transparent 20%); animation: revealphi-hi 8s ease-in-out infinite alternate; }
.scn-hester-insight .branches-frame { position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a0a 0%, transparent 25%, transparent 75%, #0a0a0a 100%), linear-gradient(90deg, #0a0a0a 0%, transparent 15%, transparent 85%, #0a0a0a 100%); animation: swayframe-hi 10s ease-in-out infinite alternate; }

@keyframes pulsemoon-hi { 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 inferno-hi { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 6px #ffa040; } 40% { transform: translateX(-50%) scale(1.2); box-shadow: 0 0 40px 15px #ffa040, 0 0 80px 30px rgba(255, 160, 64, 0.6); } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 25px 8px #ffa040; } }
@keyframes revealphi-hi { 0% { opacity: 0; } 50% { opacity: 0.8; } 100% { opacity: 0.3; } }
@keyframes swayframe-hi { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(0.5deg); } 100% { transform: scale(0.98) rotate(-0.5deg); } }

.scn-name-on-goods {
  background: linear-gradient(180deg, #2a1e14 0%, #4a3222 40%, #6a4a32 100%), radial-gradient(ellipse at 60% 40%, #c07a40 0%, transparent 70%);
}
.scn-name-on-goods .ambient {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
  animation: nog-ambient 15s ease-in-out infinite alternate;
}
.scn-name-on-goods .desk {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
  animation: nog-desk 12s ease-in-out infinite;
}
.scn-name-on-goods .stamp {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 40px;
  height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: nog-stamp 4s ease-in-out infinite;
}
.scn-name-on-goods .pepper-bag {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 50px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 60%, #b0a080 0%, #6a5a40 70%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-5deg);
  animation: nog-bag 8s ease-in-out infinite;
}
.scn-name-on-goods .cigar-box {
  position: absolute;
  bottom: 22%;
  right: 15%;
  width: 70px;
  height: 30px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10%;
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.5);
  animation: nog-box 10s ease-in-out infinite;
}
.scn-name-on-goods .lamp {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 20px;
  height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(255,208,128,0.4);
  animation: nog-lamp 3s ease-in-out infinite alternate;
}
.scn-name-on-goods .glow-spot {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 35%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: nog-glow 6s ease-in-out infinite alternate;
}
@keyframes nog-ambient { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes nog-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nog-stamp { 0% { transform: translateY(0) rotate(0deg) scale(1) } 25% { transform: translateY(-5px) rotate(-3deg) scale(0.95) } 50% { transform: translateY(0) rotate(2deg) scale(1) } 75% { transform: translateY(-3px) rotate(-1deg) scale(0.98) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes nog-bag { 0%,100% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(2px) } }
@keyframes nog-box { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) box-shadow: 0 6px 10px rgba(0,0,0,0.6) } }
@keyframes nog-lamp { 0% { box-shadow: 0 0 30px 15px rgba(255,208,128,0.3); opacity:0.9 } 50% { box-shadow: 0 0 50px 25px rgba(255,208,128,0.5); opacity:1 } 100% { box-shadow: 0 0 35px 18px rgba(255,208,128,0.35); opacity:0.95 } }
@keyframes nog-glow { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }

.scn-documents-discovery {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 70% 30%, #5a5a6e 0%, transparent 70%);
}
.scn-documents-discovery .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%);
}
.scn-documents-discovery .window {
  position: absolute;
  top: 15%;
  left: 20%;
  right: 20%;
  bottom: 50%;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border: 4px solid #2a2a3a;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-documents-discovery .rain {
  position: absolute;
  top: 15%;
  left: 20%;
  right: 20%;
  bottom: 50%;
  background: repeating-linear-gradient(45deg, transparent 0px, transparent 8px, rgba(200,220,255,0.3) 8px, rgba(200,220,255,0.3) 10px);
  animation: doc-rain 0.5s linear infinite;
}
.scn-documents-discovery .desk {
  position: absolute;
  bottom: 15%;
  left: 5%;
  right: 5%;
  height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-documents-discovery .papers {
  position: absolute;
  bottom: 22%;
  left: 20%;
  right: 20%;
  height: 10%;
  background: linear-gradient(180deg, #f5f0e0 0%, #d0c8b8 100%);
  border-radius: 2% 2% 0 0;
  transform: rotate(-2deg);
  animation: doc-papers 10s ease-in-out infinite;
}
.scn-documents-discovery .lamp {
  position: absolute;
  bottom: 35%;
  left: 10%;
  width: 15px;
  height: 25px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(255,208,128,0.3);
  animation: doc-lamp 4s ease-in-out infinite alternate;
}
.scn-documents-discovery .lampshade {
  position: absolute;
  bottom: 40%;
  left: 8%;
  width: 30px;
  height: 20px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 50% 50% 10% 10%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: doc-lampshade 6s ease-in-out infinite;
}
@keyframes doc-rain { 0% { background-position: 0 0; } 100% { background-position: 20px 20px; } }
@keyframes doc-papers { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes doc-lamp { 0% { box-shadow: 0 0 30px 15px rgba(255,208,128,0.2); opacity:0.9 } 50% { box-shadow: 0 0 50px 25px rgba(255,208,128,0.4); opacity:1 } 100% { box-shadow: 0 0 35px 18px rgba(255,208,128,0.25); opacity:0.95 } }
@keyframes doc-lampshade { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95) translateY(1px); } }

.scn-pue-manuscript {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, transparent 70%);
}
.scn-pue-manuscript .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
}
.scn-pue-manuscript .desk {
  position: absolute;
  bottom: 15%;
  left: 5%;
  right: 5%;
  height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-pue-manuscript .wig {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 50px;
  height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #e0d8c8 0%, #a8a098 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(5deg);
  animation: pue-wig 10s ease-in-out infinite alternate;
}
.scn-pue-manuscript .papers {
  position: absolute;
  bottom: 20%;
  left: 15%;
  right: 15%;
  height: 10%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 2%;
  transform: rotate(-3deg);
  animation: pue-papers 12s ease-in-out infinite;
}
.scn-pue-manuscript .inkwell {
  position: absolute;
  bottom: 18%;
  left: 70%;
  width: 15px;
  height: 20px;
  background: radial-gradient(circle at 50% 30%, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: pue-inkwell 8s ease-in-out infinite;
}
.scn-pue-manuscript .quill {
  position: absolute;
  bottom: 22%;
  left: 72%;
  width: 4px;
  height: 30px;
  background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a0 100%);
  transform: rotate(20deg);
  transform-origin: bottom;
  animation: pue-quill 5s ease-in-out infinite alternate;
}
.scn-pue-manuscript .lamp {
  position: absolute;
  bottom: 35%;
  left: 10%;
  width: 18px;
  height: 28px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(255,208,128,0.3);
  animation: pue-lamp 3s ease-in-out infinite alternate;
}
@keyframes pue-wig { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(3deg) scale(0.98); } 100% { transform: rotate(7deg) scale(1); } }
@keyframes pue-papers { 0%,100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } }
@keyframes pue-inkwell { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes pue-quill { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(18deg) scaleY(0.95); } 100% { transform: rotate(22deg) scaleY(1); } }
@keyframes pue-lamp { 0% { box-shadow: 0 0 30px 15px rgba(255,208,128,0.2); opacity:0.9 } 50% { box-shadow: 0 0 50px 25px rgba(255,208,128,0.4); opacity:1 } 100% { box-shadow: 0 0 35px 18px rgba(255,208,128,0.25); opacity:0.95 } }

.scn-item-scarlet-letter {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 80%, #2a1a1a 100%), radial-gradient(ellipse at 50% 30%, #4a2a2a 0%, transparent 70%);
}
.scn-item-scarlet-letter .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
}
.scn-item-scarlet-letter .spotlight {
  position: absolute;
  top: 0;
  left: 25%;
  right: 25%;
  bottom: 40%;
  background: linear-gradient(180deg, rgba(255,220,180,0.2) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: scl-spotlight 5s ease-in-out infinite alternate;
}
.scn-item-scarlet-letter .letter-a {
  position: absolute;
  top: 25%;
  left: 40%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #a0443a 0%, #7a2820 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8), inset 0 0 10px rgba(200,80,60,0.3);
  animation: scl-letter 3s ease-in-out infinite alternate;
}
.scn-item-scarlet-letter .gold-embroidery {
  position: absolute;
  top: 25%;
  left: 40%;
  width: 60px;
  height: 80px;
  background: none;
  border: 2px solid #d4a040;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 0 8px #d4a040, 0 0 16px rgba(212,160,64,0.3);
  animation: scl-gold 4s ease-in-out infinite alternate;
}
.scn-item-scarlet-letter .frayed-edges {
  position: absolute;
  top: 22%;
  left: 37%;
  width: 66px;
  height: 86px;
  border: 1px dashed #a06050;
  border-radius: 10% 10% 20% 20%;
  background: transparent;
  animation: scl-fray 2s linear infinite;
}
.scn-item-scarlet-letter .shadow {
  position: absolute;
  top: 30%;
  left: 43%;
  width: 50px;
  height: 60px;
  background: rgba(0,0,0,0.5);
  filter: blur(4px);
  transform: translate(10px, 10px);
  animation: scl-shadow 6s ease-in-out infinite;
}
.scn-item-scarlet-letter .glow {
  position: absolute;
  top: 20%;
  left: 35%;
  width: 80px;
  height: 100px;
  background: radial-gradient(circle, rgba(200,80,60,0.4) 0%, transparent 70%);
  animation: scl-glow 3s ease-in-out infinite alternate;
}
@keyframes scl-spotlight { 0% { opacity:0.7; transform: scaleY(0.95); } 50% { opacity:1; transform: scaleY(1); } 100% { opacity:0.8; transform: scaleY(0.97); } }
@keyframes scl-letter { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(0.98); box-shadow: 0 6px 16px rgba(0,0,0,0.9); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes scl-gold { 0% { opacity:0.8; box-shadow: 0 0 6px #d4a040, 0 0 12px rgba(212,160,64,0.2); } 50% { opacity:1; box-shadow: 0 0 12px #d4a040, 0 0 24px rgba(212,160,64,0.4); } 100% { opacity:0.9; box-shadow: 0 0 8px #d4a040, 0 0 16px rgba(212,160,64,0.3); } }
@keyframes scl-fray { 0% { border-width: 1px; opacity:0.5; } 50% { border-width: 2px; opacity:0.8; } 100% { border-width: 1px; opacity:0.5; } }
@keyframes scl-shadow { 0%,100% { transform: translate(10px,10px) scale(1); } 50% { transform: translate(8px,8px) scale(0.95); } }
@keyframes scl-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1.05); } }

.scn-dimmesdale-popularity {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e15 50%, #0f0a05 100%), radial-gradient(ellipse at 50% 100%, #3a2518 0%, transparent 60%);
}
.scn-dimmesdale-popularity .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, #0a0705 100%); animation: dp-bg 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-popularity .column-left {
  position: absolute; left: 10%; top: 5%; bottom: 0; width: 6%; background: linear-gradient(90deg, #1a1210 0%, #2a1a12 50%, #1a1210 100%); border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,0.6);
}
.scn-dimmesdale-popularity .column-right {
  position: absolute; right: 10%; top: 5%; bottom: 0; width: 6%; background: linear-gradient(90deg, #1a1210 0%, #2a1a12 50%, #1a1210 100%); border-radius: 4px; box-shadow: -4px 0 8px rgba(0,0,0,0.6);
}
.scn-dimmesdale-popularity .pulpit {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2518 0%, #1a0f08 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.7);
}
.scn-dimmesdale-popularity .figure {
  position: absolute; bottom: 48%; left: 50%; width: 24px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-figure 6s ease-in-out infinite;
}
.scn-dimmesdale-popularity .halo {
  position: absolute; bottom: 58%; left: 50%; width: 40px; height: 40px; transform: translateX(-50%); background: radial-gradient(circle, rgba(180, 140, 80, 0.8) 0%, rgba(180, 140, 80, 0.2) 50%, transparent 70%); border-radius: 50%; animation: dp-halo 3s ease-in-out infinite alternate;
}
.scn-dimmesdale-popularity .candle {
  position: absolute; bottom: 28%; left: 45%; width: 4px; height: 12px; background: linear-gradient(180deg, #e8c080 0%, #a06020 50%, #804010 100%); border-radius: 2px; animation: dp-candle 2s ease-in-out infinite;
}
.scn-dimmesdale-popularity .shadow {
  position: absolute; bottom: 22%; left: 43%; width: 14%; height: 8px; background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%); animation: dp-shadow 6s ease-in-out infinite;
}
@keyframes dp-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes dp-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes dp-halo { 0% { opacity: 0.4; transform: translateX(-50%) scale(0.9); } 50% { opacity: 0.9; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.6; transform: translateX(-50%) scale(1); } }
@keyframes dp-candle { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.8; transform: scaleY(1); } }
@keyframes dp-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.8; } 100% { transform: scaleX(1); opacity: 0.5; } }

.scn-voice-of-sorrow {
  background: linear-gradient(180deg, #0f0a08 0%, #1a1210 30%, #2a1e18 70%, #1a1410 100%), radial-gradient(ellipse at 50% 0%, #2a1e18 0%, transparent 60%);
}
.scn-voice-of-sorrow .bg { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, #0a0705 100%); animation: vs-bg 15s ease-in-out infinite alternate; }
.scn-voice-of-sorrow .window-high { position: absolute; top: 5%; left: 35%; width: 30%; height: 12%; background: radial-gradient(ellipse at center, rgba(100,80,60,0.4) 0%, rgba(20,15,10,0.8) 100%); border-radius: 50%; box-shadow: 0 0 20px 10px rgba(80,60,40,0.3); animation: vs-window 8s ease-in-out infinite alternate; }
.scn-voice-of-sorrow .figure { position: absolute; bottom: 12%; left: 50%; width: 20px; height: 44px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: vs-figure 10s ease-in-out infinite; }
.scn-voice-of-sorrow .voice-1 { position: absolute; top: 20%; left: 20%; width: 30px; height: 14px; background: radial-gradient(ellipse, rgba(200,180,160,0.15) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: vs-voice 20s linear infinite; }
.scn-voice-of-sorrow .voice-2 { position: absolute; top: 35%; left: 50%; width: 40px; height: 18px; background: radial-gradient(ellipse, rgba(200,180,160,0.12) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: vs-voice 25s linear infinite reverse; }
.scn-voice-of-sorrow .voice-3 { position: absolute; top: 50%; left: 70%; width: 25px; height: 12px; background: radial-gradient(ellipse, rgba(200,180,160,0.1) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: vs-voice 18s linear infinite 5s; }
.scn-voice-of-sorrow .stairs { position: absolute; bottom: 10%; left: 30%; width: 40%; height: 20%; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); animation: vs-stairs 12s ease-in-out infinite; }
@keyframes vs-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes vs-window { 0% { opacity: 0.3; transform: scaleY(0.9); } 50% { opacity: 0.6; transform: scaleY(1); } 100% { opacity: 0.4; transform: scaleY(0.95); } }
@keyframes vs-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes vs-voice { 0% { transform: translateY(0) scale(1); opacity: 0; } 50% { opacity: 0.5; } 100% { transform: translateY(100vh) scale(0.5); opacity: 0; } }
@keyframes vs-stairs { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-false-holiness {
  background: linear-gradient(180deg, #120c08 0%, #1a120e 40%, #261a12 70%, #0e0906 100%), radial-gradient(ellipse at 40% 60%, #261a12 0%, transparent 60%);
}
.scn-false-holiness .bg { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 20%, #0a0604 100%); animation: fh-bg 10s ease-in-out infinite alternate; }
.scn-false-holiness .altar { position: absolute; bottom: 20%; left: 35%; width: 30%; height: 15%; background: linear-gradient(180deg, #2a2018 0%, #1a120e 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-false-holiness .pulpit { position: absolute; bottom: 28%; left: 50%; width: 70px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1e 0%, #1a120e 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: fh-pulpit 7s ease-in-out infinite; }
.scn-false-holiness .figure { position: absolute; bottom: 50%; left: 50%; width: 22px; height: 48px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1410 0%, #0a0705 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fh-figure 5s ease-in-out infinite; }
.scn-false-holiness .face-1 { position: absolute; bottom: 32%; left: 18%; width: 16px; height: 18px; background: radial-gradient(ellipse, rgba(220,200,180,0.2) 0%, rgba(180,160,140,0.1) 70%, transparent 100%); border-radius: 50%; animation: fh-face 4s ease-in-out infinite alternate; }
.scn-false-holiness .face-2 { position: absolute; bottom: 34%; left: 35%; width: 14px; height: 16px; background: radial-gradient(ellipse, rgba(220,200,180,0.18) 0%, transparent 100%); border-radius: 50%; animation: fh-face 4s ease-in-out infinite alternate-reverse; }
.scn-false-holiness .face-3 { position: absolute; bottom: 30%; right: 20%; width: 15px; height: 17px; background: radial-gradient(ellipse, rgba(220,200,180,0.15) 0%, transparent 100%); border-radius: 50%; animation: fh-face 5s ease-in-out infinite alternate; }
.scn-false-holiness .cross { position: absolute; top: 8%; left: 50%; width: 4px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); box-shadow: 0 0 8px rgba(0,0,0,0.4); }
@keyframes fh-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes fh-pulpit { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes fh-figure { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes fh-face { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 0.5; transform: scale(1); } 100% { opacity: 0.3; transform: scale(0.9); } }

.scn-longing-confession {
  background: linear-gradient(180deg, #0d0906 0%, #18110c 40%, #241a12 60%, #0f0a06 100%), radial-gradient(ellipse at 50% 40%, #241a12 0%, transparent 70%);
}
.scn-longing-confession .bg { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, #070402 100%); animation: lc-bg 8s ease-in-out infinite alternate; }
.scn-longing-confession .pulpit { position: absolute; bottom: 18%; left: 50%; width: 90px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1e14 0%, #140c06 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 10px 20px rgba(0,0,0,0.8); }
.scn-longing-confession .figure { position: absolute; bottom: 38%; left: 50%; width: 40px; height: 70px; transform: translateX(-50%); background: linear-gradient(180deg, #1a120c 0%, #0a0603 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lc-figure 3s ease-in-out infinite; }
.scn-longing-confession .hand-left { position: absolute; bottom: 25%; left: 43%; width: 10px; height: 20px; background: linear-gradient(180deg, #1a120c 0%, #0a0603 100%); border-radius: 60% 20% 40% 20% / 60% 40% 40% 20%; transform-origin: bottom center; animation: lc-hand 2s ease-in-out infinite alternate; }
.scn-longing-confession .hand-right { position: absolute; bottom: 25%; right: 43%; width: 10px; height: 20px; background: linear-gradient(180deg, #1a120c 0%, #0a0603 100%); border-radius: 20% 60% 20% 40% / 40% 60% 20% 40%; transform-origin: bottom center; animation: lc-hand 2s ease-in-out infinite alternate-reverse; }
.scn-longing-confession .candle { position: absolute; bottom: 22%; left: 30%; width: 5px; height: 14px; background: linear-gradient(180deg, #e8b070 0%, #a06020 50%, #603010 100%); border-radius: 2px; animation: lc-candle 2.5s ease-in-out infinite; }
.scn-longing-confession .shadow { position: absolute; bottom: 15%; left: 20%; width: 60%; height: 20%; background: radial-gradient(ellipse, rgba(0,0,0,0.9) 0%, transparent 100%); animation: lc-shadow 4s ease-in-out infinite; }
@keyframes lc-bg { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes lc-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(0.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes lc-hand { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes lc-candle { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.15); } 100% { opacity: 0.7; transform: scaleY(1); } }
@keyframes lc-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(1); } }

/* ========== last-scaffold (ls) ========== */
.scn-last-scaffold {
  background:
    linear-gradient(180deg, #6bb8e0 0%, #ffd700 40%, #ff8c00 70%, #ff5700 100%),
    radial-gradient(ellipse at 70% 20%, #ffd700 0%, transparent 50%);
}
.scn-last-scaffold .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  animation: ls-sky 6s ease-in-out infinite alternate;
}
.scn-last-scaffold .sunrays {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,215,0,0.6) 0%, transparent 70%);
  transform: translateX(-50%) rotate(20deg);
  animation: ls-sunrays 4s ease-in-out infinite alternate;
}
.scn-last-scaffold .scaffold {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 18px;
  background: linear-gradient(180deg, #6b4c3b 0%, #4a3428 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ls-scaffold 6s ease-in-out infinite;
}
.scn-last-scaffold .figure-dimmesdale {
  position: absolute; bottom: calc(20% + 18px); left: 45%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(8deg);
  transform-origin: bottom center;
  animation: ls-dimmesdale 3s ease-in-out infinite alternate;
}
.scn-last-scaffold .figure-hester {
  position: absolute; bottom: calc(20% + 18px); left: 39%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 40% 40%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: ls-hester 4s ease-in-out infinite;
}
.scn-last-scaffold .figure-pearl {
  position: absolute; bottom: calc(20% + 18px); left: 50%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(2deg);
  transform-origin: bottom center;
  animation: ls-pearl 3.5s ease-in-out infinite alternate;
}
.scn-last-scaffold .cloud-1 {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(8px);
  animation: ls-cloud1 40s linear infinite;
}
.scn-last-scaffold .cloud-2 {
  position: absolute; top: 18%; right: 15%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: ls-cloud2 55s linear infinite reverse;
}

@keyframes ls-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ls-sunrays {
  0% { transform: translateX(-50%) rotate(15deg) scale(1); opacity: 0.7; }
  50% { transform: translateX(-50%) rotate(25deg) scale(1.1); opacity: 1; }
  100% { transform: translateX(-50%) rotate(20deg) scale(1); opacity: 0.75; }
}
@keyframes ls-scaffold {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ls-dimmesdale {
  0% { transform: rotate(6deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-1px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes ls-hester {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  33% { transform: rotate(-3deg) translateY(-1px); }
  66% { transform: rotate(-4deg) translateY(1px); }
}
@keyframes ls-pearl {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-1px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes ls-cloud1 {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(110vw); }
}
@keyframes ls-cloud2 {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

/* ========== dimmesdale-confesses (dc) ========== */
.scn-dimmesdale-confesses {
  background:
    linear-gradient(180deg, #6bb8e0 0%, #ffd700 30%, #ff8c00 60%, #ff5700 100%),
    radial-gradient(ellipse at 50% 20%, #ffd700 0%, transparent 40%);
}
.scn-dimmesdale-confesses .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.25) 0%, transparent 100%);
  animation: dc-sky 7s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses .sunrays {
  position: absolute; top: 5%; left: 30%; width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(255,215,0,0.5) 0%, transparent 60%);
  transform: rotate(-10deg);
  animation: dc-sunrays 5s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses .scaffold {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 20px;
  background: linear-gradient(180deg, #5a3d2f 0%, #3e2a1f 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: dc-scaffold 8s ease-in-out infinite;
}
.scn-dimmesdale-confesses .figure-dimmesdale {
  position: absolute; bottom: calc(20% + 20px); left: 48%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 25% 25% / 55% 55% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: dc-dimmesdale 2.5s ease-in-out infinite alternate;
}
.scn-dimmesdale-confesses .figure-hester {
  position: absolute; bottom: calc(20% + 20px); left: 42%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: dc-hester 4s ease-in-out infinite;
}
.scn-dimmesdale-confesses .figure-pearl {
  position: absolute; bottom: calc(20% + 20px); left: 54%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  transform-origin: bottom center;
  animation: dc-pearl 3s ease-in-out infinite;
}
.scn-dimmesdale-confesses .shadow {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 10px;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: dc-shadow 6s ease-in-out infinite;
}
.scn-dimmesdale-confesses .crowd {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30px;
  background: repeating-linear-gradient(
    90deg,
    #2a2a3a 0px, #2a2a3a 6px,
    transparent 6px, transparent 10px,
    #3a3a4a 10px, #3a3a4a 16px,
    transparent 16px, transparent 20px
  );
  mask-image: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: dc-crowd 2s ease-in-out infinite;
}

@keyframes dc-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dc-sunrays {
  0% { transform: rotate(-15deg) scale(1); opacity: 0.6; }
  50% { transform: rotate(-5deg) scale(1.15); opacity: 1; }
  100% { transform: rotate(-10deg) scale(1); opacity: 0.7; }
}
@keyframes dc-scaffold {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes dc-dimmesdale {
  0% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes dc-hester {
  0%, 100% { transform: rotate(5deg) translateY(0); }
  33% { transform: rotate(3deg) translateY(-1px); }
  66% { transform: rotate(6deg) translateY(1px); }
}
@keyframes dc-pearl {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes dc-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.05); }
  100% { opacity: 0.5; transform: scaleX(1); }
}
@keyframes dc-crowd {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-2px); }
  100% { opacity: 0.4; transform: translateY(0); }
}

/* ========== revelation (rev) ========== */
.scn-revelation {
  background:
    linear-gradient(180deg, #5a8ec0 0%, #ffd700 20%, #ff8c00 50%, #ff5700 80%, #8b4513 100%),
    radial-gradient(ellipse at 50% 30%, #ffd700 0%, transparent 50%);
}
.scn-revelation .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  animation: rev-sky 5s ease-in-out infinite alternate;
}
.scn-revelation .sunrays {
  position: absolute; top: 5%; left: 40%; width: 250px; height: 250px;
  background: radial-gradient(circle, rgba(255,215,0,0.7) 0%, transparent 60%);
  transform: rotate(30deg);
  animation: rev-sunrays 3s ease-in-out infinite alternate;
}
.scn-revelation .scaffold {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 22px;
  background: linear-gradient(180deg, #4a3224 0%, #2e1e14 100%);
  border-radius: 6px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: rev-scaffold 4s ease-in-out infinite;
}
.scn-revelation .chest {
  position: absolute; bottom: calc(20% + 22px); left: 35%; right: 35%; height: 80px;
  background: linear-gradient(180deg, #5a3d2f 0%, #3a261d 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-5deg);
  animation: rev-chest 2.5s ease-in-out infinite alternate;
}
.scn-revelation .mark {
  position: absolute; bottom: calc(20% + 22px + 20px); left: 48%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,85,61,0.6);
  animation: rev-mark 1.5s ease-in-out infinite alternate;
}
.scn-revelation .arm-left {
  position: absolute; bottom: calc(20% + 22px + 60px); left: 20%; width: 60px; height: 12px;
  background: linear-gradient(90deg, #3a261d 0%, #5a3d2f 100%);
  border-radius: 30% 10% 10% 30%;
  transform: rotate(40deg);
  transform-origin: right center;
  animation: rev-arm-left 2s ease-in-out infinite alternate;
}
.scn-revelation .arm-right {
  position: absolute; bottom: calc(20% + 22px + 60px); left: 50%; width: 60px; height: 12px;
  background: linear-gradient(270deg, #3a261d 0%, #5a3d2f 100%);
  border-radius: 10% 30% 30% 10%;
  transform: rotate(-40deg);
  transform-origin: left center;
  animation: rev-arm-right 2s ease-in-out infinite alternate;
}
.scn-revelation .figure-hester {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: rev-hester 4s ease-in-out infinite;
}
.scn-revelation .figure-pearl {
  position: absolute; bottom: 20%; left: 65%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: rev-pearl 3.5s ease-in-out infinite;
}

@keyframes rev-sky {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes rev-sunrays {
  0% { transform: rotate(25deg) scale(1); opacity: 0.7; }
  50% { transform: rotate(35deg) scale(1.2); opacity: 1; }
  100% { transform: rotate(30deg) scale(1); opacity: 0.8; }
}
@keyframes rev-scaffold {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes rev-chest {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-4px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes rev-mark {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 8px rgba(200,85,61,0.5); }
  50% { transform: scale(1.3); opacity: 1; box-shadow: 0 0 40px 15px rgba(200,85,61,0.8); }
  100% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 25px 10px rgba(200,85,61,0.6); }
}
@keyframes rev-arm-left {
  0% { transform: rotate(35deg) translateX(0); }
  50% { transform: rotate(45deg) translateX(10px); }
  100% { transform: rotate(40deg) translateX(0); }
}
@keyframes rev-arm-right {
  0% { transform: rotate(-35deg) translateX(0); }
  50% { transform: rotate(-45deg) translateX(-10px); }
  100% { transform: rotate(-40deg) translateX(0); }
}
@keyframes rev-hester {
  0%, 100% { transform: rotate(-15deg) translateY(0); }
  33% { transform: rotate(-12deg) translateY(-2px); }
  66% { transform: rotate(-18deg) translateY(1px); }
}
@keyframes rev-pearl {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(12deg) translateY(0); }
}

/* ========== pearl-kiss (pk) ========== */
.scn-pearl-kiss {
  background:
    linear-gradient(180deg, #ffe5b4 0%, #ffd700 30%, #ffa500 60%, #ff8c00 100%),
    radial-gradient(ellipse at 50% 30%, #ffd700 0%, transparent 50%);
}
.scn-pearl-kiss .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%);
  animation: pk-sky 12s ease-in-out infinite alternate;
}
.scn-pearl-kiss .sun-glow {
  position: absolute; top: 20%; left: 50%; width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(255,215,0,0.4) 0%, transparent 70%);
  transform: translateX(-50%);
  animation: pk-sun-glow 8s ease-in-out infinite alternate;
}
.scn-pearl-kiss .head-dimmesdale {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  transform-origin: center bottom;
  animation: pk-head-d 6s ease-in-out infinite;
}
.scn-pearl-kiss .head-pearl {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: center bottom;
  animation: pk-head-p 6s ease-in-out infinite;
}
.scn-pearl-kiss .tear {
  position: absolute; bottom: 36%; left: 48%; width: 6px; height: 10px;
  background: radial-gradient(circle at 50% 30%, rgba(255,255,255,0.8) 0%, transparent 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: pk-tear 3s ease-in-out infinite;
}
.scn-pearl-kiss .hand-hester {
  position: absolute; bottom: 28%; left: 20%; width: 12px; height: 8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 40%;
  transform: rotate(-20deg);
  animation: pk-hand 5s ease-in-out infinite alternate;
}
.scn-pearl-kiss .cloud {
  position: absolute; top: 10%; right: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(10px);
  animation: pk-cloud 30s linear infinite;
}

@keyframes pk-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes pk-sun-glow {
  0% { transform: translateX(-50%) scale(1); opacity: 0.5; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 0.8; }
  100% { transform: translateX(-50%) scale(1); opacity: 0.6; }
}
@keyframes pk-head-d {
  0%, 100% { transform: rotate(10deg) translateY(0); }
  33% { transform: rotate(12deg) translateY(-1px); }
  66% { transform: rotate(8deg) translateY(1px); }
}
@keyframes pk-head-p {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  33% { transform: rotate(-8deg) translateY(-1px); }
  66% { transform: rotate(-12deg) translateY(1px); }
}
@keyframes pk-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-3px) scale(1.2); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.9; }
}
@keyframes pk-hand {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(5px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes pk-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

.scn-pearl-play {
  background: linear-gradient(180deg, #ffe0b2 0%, #87ceeb 40%, #4682b4 100%), radial-gradient(ellipse at 80% 100%, #f0e68c 0%, transparent 60%);
}
.scn-pearl-play .sky {
  position:absolute; inset:0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); opacity:0.8; animation: pp-sky 12s ease-in-out infinite alternate;
}
.scn-pearl-play .sand {
  position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #f4d03f 0%, #d4a017 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
}
.scn-pearl-play .pool {
  position:absolute; bottom:20%; left:15%; width:35%; height:25%; background: linear-gradient(180deg, #5f9ea0 0%, #2e8b57 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3); animation: pp-pool 6s ease-in-out infinite alternate;
}
.scn-pearl-play .pearl {
  position:absolute; bottom:18%; left:25%; width:16px; height:40px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-pearl 3s ease-in-out infinite;
}
.scn-pearl-play .reflection {
  position:absolute; bottom:5%; left:25%; width:16px; height:20px; background: linear-gradient(180deg, rgba(44,62,80,0.6) 0%, rgba(26,37,47,0.3) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleY(-1); opacity:0.5; animation: pp-reflection 3s ease-in-out infinite 0.5s;
}
.scn-pearl-play .bird {
  position:absolute; top:12%; left:60%; width:12px; height:8px; background: #a0522d; border-radius: 50% 50% 0 0; clip-path: polygon(0 100%, 50% 0, 100% 100%); animation: pp-bird 8s linear infinite alternate;
}
.scn-pearl-play .boat {
  position:absolute; bottom:22%; left:20%; width:30px; height:8px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 0 0 50% 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: pp-boat 4s ease-in-out infinite;
}
.scn-pearl-play .crab {
  position:absolute; bottom:8%; right:20%; width:20px; height:10px; background: #cd853f; border-radius: 50% 50% 30% 30%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); animation: pp-crab 5s ease-in-out infinite;
}
@keyframes pp-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pp-pool { 0% { transform: translateY(0) scale(1); background-position: 0 0; } 50% { transform: translateY(2px) scale(1.01); background-position: 5px 2px; } 100% { transform: translateY(0) scale(1); background-position: 0 0; } }
@keyframes pp-pearl { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(-2deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pp-reflection { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes pp-bird { 0% { transform: translateX(0) rotate(0); background: #a0522d; } 50% { transform: translateX(20px) rotate(5deg); background: #b96d3a; } 100% { transform: translateX(0) rotate(0); background: #a0522d; } }
@keyframes pp-boat { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes pp-crab { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(5deg) } 50% { transform: translateX(4px) rotate(0) } 75% { transform: translateX(2px) rotate(-5deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-pearl-seaweed-letter {
  background: linear-gradient(180deg, #f0e68c 0%, #87ceeb 40%, #2e8b57 100%), radial-gradient(ellipse at 30% 100%, #8fbc8f 0%, transparent 70%);
}
.scn-pearl-seaweed-letter .sky {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: psl-sky 15s ease-in-out infinite alternate;
}
.scn-pearl-seaweed-letter .sea {
  position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4682b4 0%, #2e8b57 100%); border-radius: 20% 80% 0 0 / 30% 70% 0 0; animation: psl-sea 8s ease-in-out infinite alternate;
}
.scn-pearl-seaweed-letter .sand {
  position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #f4d03f 0%, #d4a017 100%); border-radius: 40% 60% 0 0 / 50% 50% 0 0;
}
.scn-pearl-seaweed-letter .pearl {
  position:absolute; bottom:12%; left:35%; width:18px; height:50px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psl-pearl 5s ease-in-out infinite;
}
.scn-pearl-seaweed-letter .scarf {
  position:absolute; bottom:20%; left:33%; width:30px; height:12px; background: linear-gradient(180deg, #8fbc8f 0%, #556b2f 100%); border-radius: 0 50% 50% 0; clip-path: polygon(0 0, 100% 30%, 100% 70%, 0 100%); animation: psl-scarf 4s ease-in-out infinite;
}
.scn-pearl-seaweed-letter .headdress {
  position:absolute; bottom:48%; left:35%; width:20px; height:14px; background: linear-gradient(180deg, #8fbc8f 0%, #556b2f 100%); border-radius: 50% 50% 0 0; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); animation: psl-head 6s ease-in-out infinite;
}
.scn-pearl-seaweed-letter .letter {
  position:absolute; bottom:22%; left:38%; width:12px; height:14px; background: #2e8b57; clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%); box-shadow: 0 0 8px 2px rgba(46,139,87,0.5); animation: psl-letter 3s ease-in-out infinite alternate;
}
.scn-pearl-seaweed-letter .eelgrass {
  position:absolute; bottom:14%; left:42%; width:4px; height:20px; background: #6b8e23; border-radius: 50%; transform: rotate(-15deg); animation: psl-eel 5s ease-in-out infinite;
}
@keyframes psl-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes psl-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes psl-pearl { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes psl-scarf { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes psl-head { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes psl-letter { 0% { box-shadow: 0 0 4px 1px rgba(46,139,87,0.3) } 100% { box-shadow: 0 0 12px 4px rgba(46,139,87,0.7) } }
@keyframes psl-eel { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(2px) } 100% { transform: rotate(-15deg) translateY(0) } }

.scn-pearl-questions-mother {
  background: linear-gradient(180deg, #ffd700 0%, #ff8c00 50%, #4682b4 100%), radial-gradient(ellipse at 40% 20%, #ffff00 0%, transparent 60%);
}
.scn-pearl-questions-mother .sky {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffd700 0%, #ff8c00 100%); animation: pqm-sky 10s ease-in-out infinite alternate;
}
.scn-pearl-questions-mother .sun {
  position:absolute; top:5%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #ffff00 0%, #ffd700 80%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(255,215,0,0.7); animation: pqm-sun 4s ease-in-out infinite alternate;
}
.scn-pearl-questions-mother .beach {
  position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #d4a017 0%, #8b4513 100%);
}
.scn-pearl-questions-mother .hester {
  position:absolute; bottom:15%; left:15%; width:24px; height:60px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pqm-hester 8s ease-in-out infinite;
}
.scn-pearl-questions-mother .pearl {
  position:absolute; bottom:15%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pqm-pearl 2.5s ease-in-out infinite;
}
.scn-pearl-questions-mother .letter {
  position:absolute; bottom:25%; left:37%; width:10px; height:12px; background: #2e8b57; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); box-shadow: 0 0 6px 2px rgba(46,139,87,0.8); animation: pqm-letter 1.5s ease-in-out infinite alternate;
}
.scn-pearl-questions-mother .shadow {
  position:absolute; top:0; bottom:0; left:20%; width:2px; background: rgba(0,0,0,0.3); transform: rotate(-30deg); transform-origin: top; animation: pqm-shadow 6s linear infinite;
}
@keyframes pqm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pqm-sun { 0% { box-shadow: 0 0 30px 8px rgba(255,215,0,0.5) } 100% { box-shadow: 0 0 60px 20px rgba(255,215,0,0.9) } }
@keyframes pqm-hester { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes pqm-pearl { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(8px) rotate(5deg) } 50% { transform: translateX(16px) rotate(-5deg) } 75% { transform: translateX(8px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pqm-letter { 0% { box-shadow: 0 0 4px 1px rgba(46,139,87,0.4) } 100% { box-shadow: 0 0 12px 4px rgba(46,139,87,0.9) } }
@keyframes pqm-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-hester-tests-pearl {
  background: linear-gradient(180deg, #ffd700 0%, #ff8c00 40%, #4682b4 100%), radial-gradient(ellipse at 30% 40%, #ffff00 0%, transparent 60%);
}
.scn-hester-tests-pearl .sky {
  position:absolute; inset:0; background: linear-gradient(180deg, #ffd700 0%, #ff8c00 100%); opacity:0.9; animation: htp-sky 12s ease-in-out infinite alternate;
}
.scn-hester-tests-pearl .hester {
  position:absolute; bottom:20%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 20% 30% 40% / 60% 30% 40% 50%; transform: rotateY(180deg); animation: htp-hester 5s ease-in-out infinite;
}
.scn-hester-tests-pearl .pearl {
  position:absolute; bottom:20%; left:50%; width:16px; height:40px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 20% 50% 40% 30% / 30% 60% 50% 40%; animation: htp-pearl 3s ease-in-out infinite;
}
.scn-hester-tests-pearl .letter {
  position:absolute; bottom:35%; left:38%; width:10px; height:12px; background: #2e8b57; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%); box-shadow: 0 0 8px 3px rgba(46,139,87,0.7); animation: htp-letter 2s ease-in-out infinite alternate;
}
.scn-hester-tests-pearl .hand {
  position:absolute; bottom:40%; left:30%; width:14px; height:6px; background: #2c3e50; border-radius: 70% 30% 30% 70%; transform: rotate(-20deg); transform-origin: right; animation: htp-hand 4s ease-in-out infinite;
}
.scn-hester-tests-pearl .shadow {
  position:absolute; top:0; bottom:0; left:45%; width:1px; background: rgba(0,0,0,0.4); transform: rotate(-10deg); animation: htp-shadow 6s linear infinite;
}
@keyframes htp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes htp-hester { 0% { transform: rotateY(180deg) translateY(0) } 50% { transform: rotateY(180deg) translateY(2px) } 100% { transform: rotateY(180deg) translateY(0) } }
@keyframes htp-pearl { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-2px) rotate(3deg) } 60% { transform: translateX(1px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes htp-letter { 0% { box-shadow: 0 0 4px 1px rgba(46,139,87,0.4) } 100% { box-shadow: 0 0 16px 5px rgba(46,139,87,0.9) } }
@keyframes htp-hand { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-15deg) translateX(3px) } 100% { transform: rotate(-20deg) translateX(0) } }
@keyframes htp-shadow { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.3 } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.crowd-row { position: absolute; pointer-events: none; }
.kneel { position: absolute; pointer-events: none; }
.light-a { position: absolute; pointer-events: none; }
.light-b { position: absolute; pointer-events: none; }
.stand { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-dimmesdale-approaches-dell {
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 50%, #1a2a2a 100%),
              radial-gradient(ellipse at 50% 60%, #3a4a4a 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-dimmesdale-approaches-dell .sky-overcast {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 100%);
  animation: dim-sky 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-approaches-dell .trees-bg {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, #1a2a1a 0%, #0a1a0a 50%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0 / 100% 100% 0 0;
  animation: dim-trees 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-approaches-dell .path {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 20% 20% 50% 50%;
  filter: blur(2px);
}
.scn-dimmesdale-approaches-dell .hester-stand {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dim-hester 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-approaches-dell .dimmesdale-walk {
  position: absolute; bottom: 25%; left: 55%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 40% 35% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: dim-dim 4s ease-in-out infinite;
}
.scn-dimmesdale-approaches-dell .staff {
  position: absolute; bottom: 30%; left: 62%; width: 3px; height: 35px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: dim-staff 4s ease-in-out infinite;
}
.scn-dimmesdale-approaches-dell .shadow-ground {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 6%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(6px);
}
.scn-dimmesdale-approaches-dell .leaf-drift {
  position: absolute; top: 15%; left: -5%; width: 40px; height: 40px;
  background: radial-gradient(circle, #3a4a2a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: dim-leaf 25s linear infinite;
}
@keyframes dim-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes dim-trees { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dim-hester { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dim-dim { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(0) } 75% { transform: translateX(12px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes dim-staff { 0% { transform: rotate(-12deg) } 50% { transform: rotate(-18deg) } 100% { transform: rotate(-12deg) } }
@keyframes dim-leaf { 0% { transform: translateX(0) translateY(0) rotate(0) scale(1) } 50% { transform: translateX(40vw) translateY(-10px) rotate(180deg) scale(1.2) } 100% { transform: translateX(80vw) translateY(0) rotate(360deg) scale(0.8) } }

.scn-forest-reunion-talk {
  background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 50%, #0a1a1a 100%),
              radial-gradient(ellipse at 50% 50%, #2a3a3a 0%, transparent 80%);
  position: relative; overflow: hidden;
}
.scn-forest-reunion-talk .forest-mid {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #1a2a1a 0px, #0a1a0a 2px, #1a2a1a 4px);
  opacity: 0.3;
  animation: for-bg 10s linear infinite;
}
.scn-forest-reunion-talk .tree-trunk {
  position: absolute; bottom: 20%; left: 45%; width: 8px; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: -20px 0 0 #2a1a0a, 20px 0 0 #2a1a0a;
}
.scn-forest-reunion-talk .hester-face {
  position: absolute; bottom: 30%; left: 30%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: for-hester 5s ease-in-out infinite alternate;
}
.scn-forest-reunion-talk .dimmesdale-face {
  position: absolute; bottom: 30%; left: 55%; width: 18px; height: 22px;
  background: radial-gradient(circle at 50% 40%, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: for-dim 5s ease-in-out infinite alternate-reverse;
}
.scn-forest-reunion-talk .scarlet-letter {
  position: absolute; bottom: 32%; left: 32%; width: 6px; height: 8px;
  background: radial-gradient(circle, #b87878 0%, #8a5a5a 100%);
  border-radius: 20%;
  box-shadow: 0 0 8px 2px #8a5a5a;
  animation: for-letter 3s ease-in-out infinite alternate;
}
.scn-forest-reunion-talk .arm-gesture {
  position: absolute; bottom: 38%; left: 50%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #2a2a2a 0%, transparent 100%);
  border-radius: 2px;
  transform-origin: right center;
  animation: for-arm 4s ease-in-out infinite;
}
.scn-forest-reunion-talk .ground-moss {
  position: absolute; bottom: 18%; left: 20%; width: 60%; height: 6%;
  background: radial-gradient(ellipse, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 50%;
  filter: blur(5px);
}
.scn-forest-reunion-talk .fog {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(58,74,74,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: for-fog 8s ease-in-out infinite alternate;
}
@keyframes for-bg { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }
@keyframes for-hester { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes for-dim { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes for-letter { 0% { opacity: 0.6; transform: scale(0.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(1) } }
@keyframes for-arm { 0% { transform: rotate(0) } 25% { transform: rotate(-20deg) } 75% { transform: rotate(10deg) } 100% { transform: rotate(0) } }
@keyframes for-fog { 0% { opacity: 0.3; transform: translateY(0) } 100% { opacity: 0.6; transform: translateY(-10px) } }

.scn-dimmesdale-recoils-horror {
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 40%, #0a1a1a 100%),
              radial-gradient(ellipse at 40% 50%, #3a4a3a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-dimmesdale-recoils-horror .tree-branches {
  position: absolute; top: 0; left: 20%; width: 60%; height: 40%;
  background: repeating-linear-gradient(45deg, #1a1a0a 0%, transparent 2%, transparent 4%);
  opacity: 0.4;
  animation: rec-branch 6s ease-in-out infinite alternate;
}
.scn-dimmesdale-recoils-horror .dimmesdale-recoil {
  position: absolute; bottom: 25%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rec-recoil 2s ease-in-out infinite;
}
.scn-dimmesdale-recoils-horror .hester-embrace {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 40% 40% 35% 35% / 65% 65% 30% 30%;
  transform-origin: bottom center;
  animation: rec-embrace 2s ease-in-out infinite;
}
.scn-dimmesdale-recoils-horror .fallen-log {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 4%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10px;
  filter: blur(2px);
}
.scn-dimmesdale-recoils-horror .shadow-pool {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
}
.scn-dimmesdale-recoils-horror .light-rays {
  position: absolute; top: 10%; left: 50%; width: 40%; height: 50%;
  background: linear-gradient(45deg, transparent 30%, rgba(90,110,90,0.15) 30%, transparent 32%);
  animation: rec-rays 5s ease-in-out infinite alternate;
}
@keyframes rec-branch { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes rec-recoil { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(-15deg) } 50% { transform: translateX(12px) rotate(-20deg) } 75% { transform: translateX(8px) rotate(-10deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rec-embrace { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-6px) rotate(10deg) } 50% { transform: translateX(-10px) rotate(15deg) } 75% { transform: translateX(-6px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rec-rays { 0% { opacity: 0.3; transform: translateX(-10px) } 100% { opacity: 0.7; transform: translateX(10px) } }

.scn-flee-not-alone {
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 50%, #1a2a2a 100%),
              radial-gradient(ellipse at 60% 40%, #4a5a4a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-flee-not-alone .forest-edge {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #0a1a0a 0%, #1a2a1a 100%);
  clip-path: polygon(0% 30%, 20% 20%, 40% 25%, 60% 15%, 80% 20%, 100% 10%, 100% 100%, 0% 100%);
  animation: flee-edge 8s ease-in-out infinite alternate;
}
.scn-flee-not-alone .path-flee {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 6%;
  background: linear-gradient(90deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-flee-not-alone .dimmesdale-slump {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: flee-slump 4s ease-in-out infinite;
}
.scn-flee-not-alone .hester-point {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: flee-point 3s ease-in-out infinite alternate;
}
.scn-flee-not-alone .staff-flee {
  position: absolute; bottom: 28%; left: 40%; width: 3px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: flee-staff 4s ease-in-out infinite;
}
.scn-flee-not-alone .wilderness-hint {
  position: absolute; bottom: 35%; right: 15%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 0%, #1a2a1a 0%, transparent 100%);
  filter: blur(5px);
}
.scn-flee-not-alone .sea-horizon {
  position: absolute; top: 5%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 100%);
  border-bottom: 1px solid #5a6a6a;
  animation: flee-sea 6s ease-in-out infinite alternate;
}
.scn-flee-not-alone .cloud-drift {
  position: absolute; top: 8%; left: -10%; width: 80px; height: 14px;
  background: linear-gradient(180deg, rgba(90,110,110,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: flee-cloud 30s linear infinite;
}
@keyframes flee-edge { 0% { transform: translateY(0) } 100% { transform: translateY(-4px) } }
@keyframes flee-slump { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(2px) rotate(3deg) } 50% { transform: translateY(4px) rotate(5deg) } 75% { transform: translateY(2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes flee-point { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-2px) rotate(10deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes flee-staff { 0% { transform: rotate(8deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(8deg) } }
@keyframes flee-sea { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes flee-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

.scn-black-man-catch { background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 40%, #0f1f1f 100%), radial-gradient(ellipse at 80% 40%, #3a4a4a 0%, transparent 70%); }
.scn-black-man-catch .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #4a5a5a 0%, #1a2a2a 100%); animation: bmc-sky 15s ease-in-out infinite alternate; }
.scn-black-man-catch .hills-bmc { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: bmc-hills 20s ease-in-out infinite alternate; }
.scn-black-man-catch .path { position:absolute; bottom:10%; left:0; right:0; height:12%; background: linear-gradient(90deg, transparent, #3a3a2a, transparent); border-radius: 10% 90% 0 0; }
.scn-black-man-catch .figure-child { position:absolute; bottom:18%; left:30%; width:16px; height:28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bmc-run 4s ease-in-out infinite; transform-origin: bottom center; }
.scn-black-man-catch .figure-minist { position:absolute; bottom:18%; left:55%; width:20px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: bmc-cower 6s ease-in-out infinite; }
.scn-black-man-catch .shadow-fig { position:absolute; bottom:16%; right:20%; width:24px; height:44px; background: linear-gradient(180deg, #0a0a0a 0%, #000 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; filter: blur(3px); opacity:.6; animation: bmc-drift 12s ease-in-out infinite; }
.scn-black-man-catch .tree-left { position:absolute; bottom:10%; left:5%; width:40px; height:60%; background: linear-gradient(180deg, #2a2a1a 0%, #0f0f0a 100%); border-radius: 20% 80% 10% 90%; clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform: rotate(5deg); opacity:.5; }
.scn-black-man-catch .tree-right { position:absolute; bottom:10%; right:5%; width:50px; height:70%; background: linear-gradient(180deg, #1a1a0f 0%, #0a0a05 100%); border-radius: 80% 20% 90% 10%; clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform: rotate(-5deg); opacity:.4; }
.scn-black-man-catch .mist { position:absolute; bottom:15%; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(100,110,110,.3), transparent); filter: blur(10px); animation: bmc-mist 30s ease-in-out infinite alternate; }
@keyframes bmc-sky { 0% { opacity:.6 } 100% { opacity:.8 } }
@keyframes bmc-hills { 0% { transform: translateY(0) } 100% { transform: translateY(-5px) } }
@keyframes bmc-run { 0% { transform: translateX(0) translateY(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) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) } }
@keyframes bmc-cower { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-4px) scaleY(.9) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes bmc-drift { 0% { transform: translateX(0) scaleY(1) } 100% { transform: translateX(-10px) scaleY(.95) } }
@keyframes bmc-mist { 0% { opacity:.2 } 100% { opacity:.5 } }

.scn-chillingworth-discovers-mark { background: linear-gradient(180deg, #1a1a14 0%, #2a2a1e 50%, #0f0f0a 100%), radial-gradient(ellipse at 80% 60%, #3a2a1a 0%, transparent 60%); }
.scn-chillingworth-discovers-mark .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1e 0%, #1a140e 100%); }
.scn-chillingworth-discovers-mark .bed { position:absolute; bottom:5%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-chillingworth-discovers-mark .figure-dozing { position:absolute; bottom:12%; left:25%; width:22px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0f0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cdm-sleep 8s ease-in-out infinite; }
.scn-chillingworth-discovers-mark .figure-chill { position:absolute; bottom:12%; right:30%; width:18px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cdm-lean 6s ease-in-out infinite; }
.scn-chillingworth-discovers-mark .hand-reveal { position:absolute; bottom:18%; right:28%; width:6px; height:8px; background: #5a4a3a; border-radius: 40% 40% 20% 20%; animation: cdm-reveal 4s ease-in-out infinite; }
.scn-chillingworth-discovers-mark .glow-mark { position:absolute; bottom:25%; left:35%; width:10px; height:10px; background: radial-gradient(circle, #c8553d 0%, #8a2a1a 70%); border-radius: 50%; box-shadow: 0 0 20px 4px #8a2a1a, 0 0 40px 8px rgba(138,42,26,.4); animation: cdm-pulse 3s ease-in-out infinite; }
.scn-chillingworth-discovers-mark .candle { position:absolute; top:30%; left:20%; width:4px; height:12px; background: linear-gradient(180deg, #ffaa44 0%, #cc8833 100%); border-radius: 20%; box-shadow: 0 0 8px 2px #ffaa44; animation: cdm-flicker 2s ease-in-out infinite alternate; }
.scn-chillingworth-discovers-mark .shadow-arch { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 70% 40%, transparent, #000 80%); pointer-events: none; animation: cdm-shadow 10s ease-in-out infinite; }
@keyframes cdm-sleep { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cdm-lean { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) translateX(3px) } 100% { transform: rotate(0deg) } }
@keyframes cdm-reveal { 0% { opacity:0 } 50% { opacity:1 } 100% { opacity:0 } }
@keyframes cdm-pulse { 0% { box-shadow:0 0 10px 2px #8a2a1a; } 50% { box-shadow:0 0 25px 6px #a04030; } 100% { box-shadow:0 0 10px 2px #8a2a1a; } }
@keyframes cdm-flicker { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.05); } 100% { opacity:.7; transform: scaleY(1); } }
@keyframes cdm-shadow { 0% { opacity:.5 } 100% { opacity:1 } }

.scn-dimmesdale-popularity-torture { background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 50%, #1a2a2a 100%), radial-gradient(ellipse at 50% 70%, #4a5a5a 0%, transparent 60%); }
.scn-dimmesdale-popularity-torture .back-arch { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 50% 20%, #5a6a6a, #1a1a1a); }
.scn-dimmesdale-popularity-torture .pulpit { position:absolute; bottom:10%; left:40%; right:40%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 6px 12px rgba(0,0,0,.4), 0 4px 8px rgba(0,0,0,.3); transform: scaleY(.95); transform-origin: bottom; animation: dpt-pulpit 12s ease-in-out infinite; }
.scn-dimmesdale-popularity-torture .figure-priest { position:absolute; bottom:30%; left:45%; width:20px; height:46px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dpt-agony 4s ease-in-out infinite; }
.scn-dimmesdale-popularity-torture .congregation { position:absolute; bottom:5%; left:5%; right:5%; height:25%; background: repeating-linear-gradient(90deg, #2a2a1a 0px, #2a2a1a 8px, #1a1a0f 8px, #1a1a0f 16px); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); border-radius: 40% 40% 0 0; animation: dpt-cong 20s linear infinite; }
.scn-dimmesdale-popularity-torture .pew-rows { position:absolute; bottom:3%; left:0; right:0; height:8%; background: linear-gradient(90deg, #3a2a1a, #2a1a0a, #3a2a1a); clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%); }
.scn-dimmesdale-popularity-torture .light-ray { position:absolute; top:10%; left:30%; right:30%; height:60%; background: linear-gradient(180deg, rgba(200,180,140,.15) 0%, transparent 100%); clip-path: polygon(45% 0%, 55% 0%, 60% 100%, 40% 100%); animation: dpt-ray 8s ease-in-out infinite alternate; }
.scn-dimmesdale-popularity-torture .shadows-move { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, rgba(0,0,0,.3), transparent); animation: dpt-shade 6s ease-in-out infinite; }
.scn-dimmesdale-popularity-torture .dust { position:absolute; top:20%; left:0; right:0; height:40%; background: radial-gradient(circle at 50% 30%, rgba(200,180,140,.1), transparent 70%); animation: dpt-dust 15s ease-in-out infinite; }
@keyframes dpt-pulpit { 0% { transform: scaleY(.95) } 50% { transform: scaleY(1) } 100% { transform: scaleY(.95) } }
@keyframes dpt-agony { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dpt-cong { 0% { mask: linear-gradient(90deg, #000 0%, #000 100%); background-position: 0 0; } 100% { mask: linear-gradient(90deg, #000 0%, #000 100%); background-position: -16px 0; } } /* simple scroll */
@keyframes dpt-ray { 0% { opacity:.3 } 100% { opacity:.6 } }
@keyframes dpt-shade { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.4 } }
@keyframes dpt-dust { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }

.scn-midnight-scaffold-shriek { background: linear-gradient(180deg, #0a0a1a 0%, #0a0a2a 50%, #050510 100%), radial-gradient(ellipse at 50% 30%, #1a1a3a 0%, transparent 80%); }
.scn-midnight-scaffold-shriek .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a2a 0%, #050510 100%); animation: mss-sky 20s ease-in-out infinite alternate; }
.scn-midnight-scaffold-shriek .scaffold { position:absolute; bottom:20%; left:30%; right:30%; height:10%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-midnight-scaffold-shriek .figure-shriek { position:absolute; bottom:25%; left:42%; width:18px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mss-shriek 3s ease-in-out infinite; }
.scn-midnight-scaffold-shriek .window-gov { position:absolute; top:10%; right:25%; width:14px; height:18px; background: radial-gradient(circle, #2a2a4a, #0a0a1a); border-radius: 10%; box-shadow: inset 0 0 4px #2a2a4a; animation: mss-window1 4s ease-in-out infinite; }
.scn-midnight-scaffold-shriek .window-hibb { position:absolute; top:8%; left:35%; width:12px; height:16px; background: radial-gradient(circle, #2a2a4a, #0a0a1a); border-radius: 10%; box-shadow: inset 0 0 4px #2a2a4a; animation: mss-window2 5s ease-in-out infinite; }
.scn-midnight-scaffold-shriek .lantern-walk { position:absolute; bottom:10%; left:10%; width:4px; height:6px; background: #ffaa44; border-radius: 50%; box-shadow: 0 0 10px 2px #ffaa44; animation: mss-lantern 6s ease-in-out infinite; }
.scn-midnight-scaffold-shriek .shadow-ladder { position:absolute; bottom:20%; left:37%; width:2px; height:30%; background: linear-gradient(180deg, transparent, #000); transform: rotate(10deg); }
.scn-midnight-scaffold-shriek .fog { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, rgba(180,200,220,.05) 0%, transparent 100%); filter: blur(15px); animation: mss-fog 40s ease-in-out infinite alternate; }
.scn-midnight-scaffold-shriek .cobblestone { position:absolute; bottom:0; left:0; right:0; height:8%; background: repeating-conic-gradient(#1a1a1a 0deg 10deg, #2a2a2a 10deg 20deg); background-size: 20px 20px; opacity:.3; }
@keyframes mss-sky { 0% { opacity:.5 } 100% { opacity:.9 } }
@keyframes mss-shriek { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-5px) scaleY(1.1) rotate(3deg) } 50% { transform: translateY(0) scaleY(1) rotate(-2deg) } 75% { transform: translateY(-3px) scaleY(1.05) rotate(1deg) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mss-window1 { 0%,100% { opacity:.3 } 50% { opacity:.6 } }
@keyframes mss-window2 { 0%,100% { opacity:.4 } 50% { opacity:.7 } }
@keyframes mss-lantern { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(15px) translateY(-3px) } 100% { transform: translateX(30px) translateY(0) } }
@keyframes mss-fog { 0% { opacity:.1 } 100% { opacity:.3 } }

/* silly-pearl-gold-thread */
.scn-silly-pearl-gold-thread {
  background:
    radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a1a0a 0%, #2a1a0a 40%, #0d0800 100%);
}
.scn-silly-pearl-gold-thread .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a3a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.6);
}
.scn-silly-pearl-gold-thread .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-silly-pearl-gold-thread .table {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.7);
}
.scn-silly-pearl-gold-thread .candle {
  position: absolute; bottom: 38%; left: 50%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #e0c080 0%, #b08040 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(180,128,64,0.3);
  animation: spg-candle 4s ease-in-out infinite alternate;
}
.scn-silly-pearl-gold-thread .book {
  position: absolute; bottom: 31%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-silly-pearl-gold-thread .figure-mother {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom; transform: scaleX(0.6);
  animation: spg-mother 6s ease-in-out infinite;
}
.scn-silly-pearl-gold-thread .figure-child {
  position: absolute; bottom: 12%; left: 48%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: spg-child 3s ease-in-out infinite;
}
.scn-silly-pearl-gold-thread .glint-thread {
  position: absolute; bottom: 28%; left: 45%; width: 4px; height: 4px;
  background: radial-gradient(circle, #e8c830 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #e8c830, 0 0 30px 8px rgba(232,200,48,0.4);
  animation: spg-glint 2s ease-in-out infinite alternate;
}
@keyframes spg-candle {
  0% { opacity: 0.7; transform: translateX(-50%) translateY(0) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) translateY(-2px) scaleX(1.1); }
  100% { opacity: 0.8; transform: translateX(-50%) translateY(0) scaleX(0.95); }
}
@keyframes spg-mother {
  0% { transform: translateX(0) rotate(0deg) scaleX(0.6); }
  50% { transform: translateX(8px) rotate(2deg) scaleX(0.65); }
  100% { transform: translateX(0) rotate(0deg) scaleX(0.6); }
}
@keyframes spg-child {
  0% { transform: translateX(0) rotate(-3deg) scaleY(1); }
  25% { transform: translateX(5px) rotate(2deg) scaleY(1.05); }
  50% { transform: translateX(-3px) rotate(-1deg) scaleY(1); }
  75% { transform: translateX(2px) rotate(3deg) scaleY(0.95); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes spg-glint {
  0% { opacity: 0.3; box-shadow: 0 0 8px 2px #e8c830; }
  50% { opacity: 1; box-shadow: 0 0 24px 6px #e8c830, 0 0 50px 12px rgba(232,200,48,0.5); }
  100% { opacity: 0.6; box-shadow: 0 0 12px 4px #e8c830; }
}

/* forest-path-shadow */
.scn-forest-path-shadow {
  background:
    radial-gradient(ellipse at 50% 30%, #1a2a2a 0%, transparent 70%),
    linear-gradient(180deg, #0a0a1a 0%, #1a2a2a 40%, #0a0a0a 100%);
}
.scn-forest-path-shadow .canopy {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0d0d0d 0%, #1a1a0a 100%);
  opacity: 0.85;
}
.scn-forest-path-shadow .path {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 35%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-forest-path-shadow .trunk-left {
  position: absolute; bottom: 10%; left: 8%; width: 12px; height: 80%;
  background: linear-gradient(90deg, #1a1a1a 0%, #2a2a1a 50%, #1a1a1a 100%);
  border-radius: 6px;
  transform-origin: bottom;
  animation: fsp-trunk-l 20s ease-in-out infinite alternate;
}
.scn-forest-path-shadow .trunk-right {
  position: absolute; bottom: 10%; right: 10%; width: 10px; height: 70%;
  background: linear-gradient(90deg, #1a1a1a 0%, #2a2a1a 50%, #1a1a1a 100%);
  border-radius: 5px;
  animation: fsp-trunk-r 25s ease-in-out infinite alternate;
}
.scn-forest-path-shadow .figure-hest {
  position: absolute; bottom: 22%; left: 40%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: fsp-walk 6s ease-in-out infinite;
}
.scn-forest-path-shadow .figure-pearl {
  position: absolute; bottom: 24%; left: 55%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: fsp-walk 6s ease-in-out infinite 0.5s;
}
.scn-forest-path-shadow .moss {
  position: absolute; bottom: 18%; left: 25%; width: 30px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, #2a4a2a 0%, transparent 100%);
  filter: blur(2px);
  animation: fsp-moss 12s ease-in-out infinite alternate;
}
.scn-forest-path-shadow .shadow-vine {
  position: absolute; top: 10%; right: 22%; width: 4px; height: 60px;
  background: linear-gradient(180deg, transparent 0%, #0a0a0a 50%, transparent 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: fsp-vine 15s ease-in-out infinite alternate;
}
@keyframes fsp-trunk-l {
  0% { transform: rotate(0deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(0.95); }
  100% { transform: rotate(-1deg) scaleY(1.03); }
}
@keyframes fsp-trunk-r {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(2deg); }
}
@keyframes fsp-walk {
  0% { transform: translateX(0) rotate(-2deg) scaleY(1); }
  25% { transform: translateX(8px) rotate(1deg) scaleY(1.02); }
  50% { transform: translateX(16px) rotate(-1deg) scaleY(1); }
  75% { transform: translateX(24px) rotate(2deg) scaleY(0.98); }
  100% { transform: translateX(32px) rotate(0deg) scaleY(1); }
}
@keyframes fsp-moss {
  0% { opacity: 0.3; transform: scaleX(0.8); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes fsp-vine {
  0% { opacity: 0.4; transform: rotate(15deg) scaleY(1); }
  50% { opacity: 0.8; transform: rotate(18deg) scaleY(1.1); }
  100% { opacity: 0.5; transform: rotate(12deg) scaleY(0.95); }
}

/* black-man-confession */
.scn-black-man-confession {
  background:
    radial-gradient(ellipse at 60% 20%, #1a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #0a0a0a 0%, #1a1a0a 40%, #0a0a00 100%);
}
.scn-black-man-confession .tree-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #050505 0%, #1a1a0a 100%);
  opacity: 0.9;
}
.scn-black-man-confession .forest-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a0a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-black-man-confession .figure-hest {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: bmc-hest 8s ease-in-out infinite alternate;
}
.scn-black-man-confession .figure-pearl {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: bmc-pearl 6s ease-in-out infinite;
}
.scn-black-man-confession .shadow-blackman {
  position: absolute; bottom: 10%; right: 15%; width: 50px; height: 100px;
  background: radial-gradient(ellipse at 50% 20%, #000 40%, transparent 70%);
  filter: blur(3px);
  opacity: 0.5;
  animation: bmc-shadow 12s ease-in-out infinite alternate;
}
.scn-black-man-confession .book-scribble {
  position: absolute; bottom: 22%; left: 38%; width: 16px; height: 20px;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10%;
  transform: rotate(5deg);
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.8);
}
.scn-black-man-confession .mark-glow {
  position: absolute; bottom: 28%; left: 35%; width: 10px; height: 10px;
  background: radial-gradient(circle, #5e1a1d 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 14px 4px #5e1a1d, 0 0 28px 8px rgba(94,26,29,0.3);
  animation: bmc-mark 5s ease-in-out infinite alternate;
}
.scn-black-man-confession .branch-over {
  position: absolute; top: 5%; left: -5%; width: 70%; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #0a0a0a 30%, #0a0a0a 70%, transparent 100%);
  border-radius: 3px;
  transform: rotate(-10deg);
  filter: blur(1px);
  animation: bmc-branch 18s ease-in-out infinite alternate;
}
@keyframes bmc-hest {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  50% { transform: translateX(-6px) rotate(3deg) scaleY(0.95); }
  100% { transform: translateX(6px) rotate(-2deg) scaleY(1.02); }
}
@keyframes bmc-pearl {
  0% { transform: translateX(0) rotate(-1deg) scaleX(1); }
  25% { transform: translateX(4px) rotate(2deg) scaleX(0.95); }
  50% { transform: translateX(-2px) rotate(-3deg) scaleX(1.05); }
  75% { transform: translateX(3px) rotate(1deg) scaleX(0.98); }
  100% { transform: translateX(0) rotate(0deg) scaleX(1); }
}
@keyframes bmc-shadow {
  0% { opacity: 0.3; transform: scaleY(0.8); }
  50% { opacity: 0.7; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.9); }
}
@keyframes bmc-mark {
  0% { opacity: 0.2; box-shadow: 0 0 8px 2px #5e1a1d; }
  50% { opacity: 0.8; box-shadow: 0 0 20px 6px #5e1a1d, 0 0 40px 12px rgba(94,26,29,0.4); }
  100% { opacity: 0.4; box-shadow: 0 0 12px 4px #5e1a1d; }
}
@keyframes bmc-branch {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-12deg) translateY(2px); }
}

/* brook-melancholy */
.scn-brook-melancholy {
  background:
    radial-gradient(ellipse at 50% 60%, #5a6a5a 0%, transparent 70%),
    linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 50%, #4a5a4a 100%);
}
.scn-brook-melancholy .sky-overcast {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #6a7a6a 0%, #8a9a8a 100%);
  opacity: 0.8;
  animation: brm-sky 20s ease-in-out infinite alternate;
}
.scn-brook-melancholy .bank-left {
  position: absolute; bottom: 10%; left: 0; width: 35%; height: 55%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 0 40% 0 0 / 0 30% 0 0;
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.2);
}
.scn-brook-melancholy .bank-right {
  position: absolute; bottom: 10%; right: 0; width: 35%; height: 50%;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  border-radius: 40% 0 0 0 / 30% 0 0 0;
  box-shadow: inset 8px 0 20px rgba(0,0,0,0.2);
}
.scn-brook-melancholy .brook-stream {
  position: absolute; bottom: 15%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #8a9a8a 0%, #6a8a6a 50%, #4a6a4a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  animation: brm-stream 8s ease-in-out infinite alternate;
}
.scn-brook-melancholy .figure-pearl {
  position: absolute; bottom: 22%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: brm-pearl 6s ease-in-out infinite;
}
.scn-brook-melancholy .figure-hest {
  position: absolute; bottom: 20%; left: 52%; width: 30px; height: 68px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom;
  animation: brm-hest 7s ease-in-out infinite 0.5s;
}
.scn-brook-melancholy .reeds {
  position: absolute; bottom: 18%; left: 12%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  animation: brm-reeds 10s ease-in-out infinite alternate;
}
.scn-brook-melancholy .pebble {
  position: absolute; bottom: 16%; left: 45%; width: 8px; height: 6px;
  background: #4a5a4a;
  border-radius: 50%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
  animation: brm-pebble 14s ease-in-out infinite alternate;
}
@keyframes brm-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes brm-stream {
  0% { transform: translateY(0) scaleY(1); opacity: 0.6; }
  50% { transform: translateY(-2px) scaleY(1.05); opacity: 0.8; }
  100% { transform: translateY(2px) scaleY(0.95); opacity: 0.7; }
}
@keyframes brm-pearl {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(4px) rotate(2deg) scaleY(1.02); }
  50% { transform: translateX(-2px) rotate(-1deg) scaleY(1); }
  75% { transform: translateX(3px) rotate(1deg) scaleY(0.98); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes brm-hest {
  0% { transform: translateX(0) rotate(-1deg) scaleY(1); }
  50% { transform: translateX(6px) rotate(2deg) scaleY(0.96); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes brm-reeds {
  0% { transform: rotate(8deg) scaleY(1); }
  50% { transform: rotate(14deg) scaleY(1.15); }
  100% { transform: rotate(4deg) scaleY(0.9); }
}
@keyframes brm-pebble {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(2px) scale(0.95); }
  100% { transform: translateX(-1px) scale(1.05); }
}

.scn-chillingworth-medical-adviser {
  background: linear-gradient(180deg, #4a5a5c 0%, #3a4a4c 30%, #2e3a3c 60%, #1e2a2c 100%),
              radial-gradient(ellipse at 50% 0%, #5a6a6c 0%, transparent 60%);
}
.scn-chillingworth-medical-adviser .sky-cover {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #6a7a7c 0%, #4a5a5c 50%, transparent 100%);
  animation: cm-sky 20s ease-in-out infinite alternate;
}
.scn-chillingworth-medical-adviser .shore-bg {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,.5);
  animation: cm-shore 15s ease-in-out infinite;
}
.scn-chillingworth-medical-adviser .figure-left {
  position:absolute; bottom:30%; left:30%; width:22px; height:44px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-walk-left 6s ease-in-out infinite;
}
.scn-chillingworth-medical-adviser .figure-right {
  position:absolute; bottom:30%; left:45%; width:22px; height:44px;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-walk-right 6s ease-in-out infinite 2s;
}
.scn-chillingworth-medical-adviser .walking-stick {
  position:absolute; bottom:30%; left:38%; width:3px; height:40px;
  background: #2a2a1a;
  transform-origin: bottom center;
  animation: cm-stick 4s ease-in-out infinite alternate;
}
.scn-chillingworth-medical-adviser .dark-cloud {
  position:absolute; width:120px; height:35px;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.2) 100%);
  border-radius:50%; filter: blur(8px);
}
.scn-chillingworth-medical-adviser .cloud-1 {
  top:10%; left:5%;
  animation: cm-drift-1 45s linear infinite;
}
.scn-chillingworth-medical-adviser .cloud-2 {
  top:18%; right:0;
  animation: cm-drift-2 55s linear infinite reverse;
}
.scn-chillingworth-medical-adviser .ground-fog {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(0deg, rgba(0,0,0,.4) 0%, transparent 100%);
  filter: blur(6px);
  animation: cm-fog 8s ease-in-out infinite alternate;
}
@keyframes cm-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.6; } }
@keyframes cm-shore { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes cm-walk-left { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-2deg); } 75% { transform: translateX(15px) rotate(2deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes cm-walk-right { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-5px) rotate(-2deg); } 50% { transform: translateX(-10px) rotate(2deg); } 75% { transform: translateX(-15px) rotate(-2deg); } 100% { transform: translateX(-20px) rotate(0deg); } }
@keyframes cm-stick { 0% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-6deg); } }
@keyframes cm-drift-1 { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes cm-drift-2 { 0% { transform: translateX(0); } 100% { transform: translateX(-140vw); } }
@keyframes cm-fog { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

.scn-satanic-suspects {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a2a2a 60%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 70%);
}
.scn-satanic-suspects .room-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-bottom: 2px solid #2a1a1a;
  animation: ss-wall 10s ease-in-out infinite alternate;
}
.scn-satanic-suspects .table-desk {
  position:absolute; bottom:15%; left:20%; right:20%; height:15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,.6);
}
.scn-satanic-suspects .candle-glow {
  position:absolute; bottom:27%; left:45%; width:12px; height:12px;
  background: radial-gradient(circle, #c86030 0%, #a04020 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 20px 6px #a04020, 0 0 40px 12px rgba(160,64,32,.4);
  animation: ss-candle 3s ease-in-out infinite alternate;
}
.scn-satanic-suspects .shadow-figure {
  position:absolute; bottom:20%; width:20px; height:45px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-satanic-suspects .physician {
  left:30%;
  animation: ss-physician 7s ease-in-out infinite;
}
.scn-satanic-suspects .minister {
  left:55%;
  animation: ss-minister 7s ease-in-out infinite 2s;
}
.scn-satanic-suspects .open-door {
  position:absolute; bottom:15%; right:12%; width:16%; height:60%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border: 1px solid #2a1a0a;
  border-radius: 0 0 4px 4px;
  animation: ss-door 12s ease-in-out infinite alternate;
}
.scn-satanic-suspects .floor-boards {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: repeating-linear-gradient(90deg, #1a1a0a 0px, #1a1a0a 8px, #2a2a1a 8px, #2a2a1a 10px);
  animation: ss-floor 20s linear infinite;
}
@keyframes ss-wall { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes ss-candle { 0% { transform: scale(.9); opacity:.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(.95); opacity:.8; } }
@keyframes ss-physician { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(9px) rotate(2deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes ss-minister { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(-6px) rotate(1deg); } 75% { transform: translateX(-9px) rotate(-2deg); } 100% { transform: translateX(-12px) rotate(0deg); } }
@keyframes ss-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(.8); } 100% { transform: scaleX(1.05); } }
@keyframes ss-floor { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }

.scn-herbs-buried-heart {
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 40%, #1a1a0a 70%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, transparent 80%);
}
.scn-herbs-buried-heart .cave-wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 50%, transparent 100%);
  animation: hb-wall 12s ease-in-out infinite alternate;
}
.scn-herbs-buried-heart .herb-bundle {
  position:absolute; bottom:25%; width:8px; height:30px;
  border-radius: 0 0 50% 50%;
  background: linear-gradient(0deg, #3a4a2a 0%, #2a3a1a 50%, transparent 100%);
  transform-origin: bottom center;
}
.scn-herbs-buried-heart .left-herb {
  left:35%;
  animation: hb-herb-left 5s ease-in-out infinite;
}
.scn-herbs-buried-heart .right-herb {
  left:55%;
  animation: hb-herb-right 5s ease-in-out infinite 2.5s;
}
.scn-herbs-buried-heart .buried-heart {
  position:absolute; bottom:20%; left:43%; width:24px; height:20px;
  background: radial-gradient(circle at 50% 40%, #5e1a1d 0%, #3a1012 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px 4px #3a1012;
  animation: hb-heartbeat 4s ease-in-out infinite;
}
.scn-herbs-buried-heart .table-stone {
  position:absolute; bottom:15%; left:15%; right:15%; height:10%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 6px rgba(0,0,0,.5);
}
.scn-herbs-buried-heart .candle-flicker {
  position:absolute; bottom:30%; left:40%; width:8px; height:8px;
  background: radial-gradient(circle, #c08040 0%, #a06020 50%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 16px 4px #a06020, 0 0 32px 8px rgba(160,96,32,.3);
  animation: hb-candle 3s ease-in-out infinite alternate;
}
.scn-herbs-buried-heart .shadow-hand {
  position:absolute; bottom:18%; left:28%; width:16px; height:20px;
  background: linear-gradient(180deg, #000 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(15deg);
  animation: hb-hand 7s ease-in-out infinite alternate;
}
@keyframes hb-wall { 0%,100% { opacity:.7; } 50% { opacity:.9; } }
@keyframes hb-herb-left { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-8deg); } }
@keyframes hb-herb-right { 0% { transform: rotate(10deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(8deg); } }
@keyframes hb-heartbeat { 0%,100% { transform: scale(1); } 15% { transform: scale(1.15); } 30% { transform: scale(1); } 45% { transform: scale(1.1); } 60% { transform: scale(1); } }
@keyframes hb-candle { 0% { transform: scale(.9); opacity:.6; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(.95); opacity:.7; } }
@keyframes hb-hand { 0% { transform: translateX(0) rotate(15deg); } 50% { transform: translateX(8px) rotate(5deg); } 100% { transform: translateX(0) rotate(15deg); } }

.scn-pearl-burial-ground-burrs {
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 30%, #1a2a2a 60%, #0a1a1a 100%),
              radial-gradient(ellipse at 50% 0%, #4a5a5a 0%, transparent 70%);
}
.scn-pearl-burial-ground-burrs .graveyard-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 50%, transparent 100%);
  animation: pb-sky 18s ease-in-out infinite alternate;
}
.scn-pearl-burial-ground-burrs .tombstone {
  position:absolute; bottom:25%; left:35%; width:30px; height:50px;
  background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 50%, #2a2a2a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform: rotate(-5deg);
  animation: pb-stone 12s ease-in-out infinite;
}
.scn-pearl-burial-ground-burrs .child-figure {
  position:absolute; bottom:30%; left:45%; width:16px; height:30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pb-child-dance 2s ease-in-out infinite;
}
.scn-pearl-burial-ground-burrs .mother-figure {
  position:absolute; bottom:25%; left:25%; width:24px; height:45px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pb-mother-sway 6s ease-in-out infinite;
}
.scn-pearl-burial-ground-burrs .scarlet-letter-badge {
  position:absolute; bottom:32%; left:25%; width:10px; height:12px;
  background: radial-gradient(circle, #a0461a 0%, #702014 80%);
  border-radius: 4px;
  box-shadow: 0 0 8px 2px #702014;
  animation: pb-glow 3s ease-in-out infinite alternate;
}
.scn-pearl-burial-ground-burrs .burr-cluster {
  position:absolute; bottom:30%; left:44%; width:12px; height:8px;
  background: radial-gradient(circle at 30% 30%, #5a4a2a 0%, #3a2a1a 80%);
  border-radius: 50%;
  filter: blur(1px);
  animation: pb-burr-spin 4s linear infinite;
}
.scn-pearl-burial-ground-burrs .observer-shadow {
  position:absolute; bottom:20%; right:20%; width:18px; height:40px;
  background: linear-gradient(180deg, #000 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pb-observer 10s ease-in-out infinite alternate;
}
.scn-pearl-burial-ground-burrs .ground-grass {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #1a2a1a 0%, #2a3a2a 50%, transparent 100%);
  border-radius: 80% 20% 0 0 / 60% 30% 0 0;
  animation: pb-grass 15s ease-in-out infinite;
}
@keyframes pb-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.75; } }
@keyframes pb-stone { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } }
@keyframes pb-child-dance { 0% { transform: rotate(-8deg) translateY(0); } 25% { transform: rotate(8deg) translateY(-4px); } 50% { transform: rotate(-5deg) translateY(-2px); } 75% { transform: rotate(5deg) translateY(-4px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes pb-mother-sway { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes pb-glow { 0% { box-shadow: 0 0 6px 2px #702014; opacity:.8; } 50% { box-shadow: 0 0 14px 4px #a0461a; opacity:1; } 100% { box-shadow: 0 0 8px 3px #702014; opacity:.9; } }
@keyframes pb-burr-spin { 0% { transform: rotate(0deg) scale(1); } 100% { transform: rotate(360deg) scale(1.2); } }
@keyframes pb-observer { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(-5px) rotate(2deg) scaleY(1.05); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes pb-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

/* governor-bellingham-hall */
.scn-governor-bellingham-hall {
  background: 
    linear-gradient(180deg, #8b6f4e 0%, #5c4033 100%),
    radial-gradient(ellipse at 50% 0%, #c9a87c 0%, transparent 60%);
}
.scn-governor-bellingham-hall .hall-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #7c5e3a 0%, #4a3426 100%);
  animation: gbh-wall 12s ease-in-out infinite alternate;
}
.scn-governor-bellingham-hall .hall-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3d2b1f 0%, #2b1a10 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
}
.scn-governor-bellingham-hall .pillar-left {
  position: absolute; bottom: 30%; left: 10%; width: 24px; height: 60%;
  background: linear-gradient(90deg, #6b4f3a 0%, #8b6f4e 50%, #5c4033 100%);
  border-radius: 4px; box-shadow: 8px 0 16px rgba(0,0,0,.4);
  animation: gbh-pillar 8s ease-in-out infinite alternate;
}
.scn-governor-bellingham-hall .pillar-right {
  position: absolute; bottom: 30%; right: 10%; width: 24px; height: 60%;
  background: linear-gradient(90deg, #5c4033 0%, #8b6f4e 50%, #6b4f3a 100%);
  border-radius: 4px; box-shadow: -8px 0 16px rgba(0,0,0,.4);
  animation: gbh-pillar 8s ease-in-out infinite alternate-reverse;
}
.scn-governor-bellingham-hall .window {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 30%, #e8d5b0 0%, #b89a70 100%);
  border: 4px solid #4a3426; border-radius: 8%;
  box-shadow: inset 0 0 20px rgba(255,220,160,.6);
  animation: gbh-window 6s ease-in-out infinite alternate;
}
.scn-governor-bellingham-hall .hester-figure {
  position: absolute; bottom: 30%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gbh-figure 5s ease-in-out infinite;
}
.scn-governor-bellingham-hall .pearl-figure {
  position: absolute; bottom: 33%; left: 42%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gbh-figure 4s ease-in-out infinite 0.5s;
}
.scn-governor-bellingham-hall .governor-figure {
  position: absolute; bottom: 30%; left: 55%; width: 28px; height: 62px;
  background: linear-gradient(180deg, #4a3426 0%, #2b1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: gbh-figure 6s ease-in-out infinite 0.2s;
}
.scn-governor-bellingham-hall .darkshadow {
  position: absolute; inset: 0; background: rgba(0,0,0,.3);
  animation: gbh-shadow 10s ease-in-out infinite alternate;
}
@keyframes gbh-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes gbh-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes gbh-window { 0% { opacity:.8; box-shadow: inset 0 0 10px rgba(255,220,160,.4) } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,220,160,.8) } 100% { opacity:.9; box-shadow: inset 0 0 15px rgba(255,220,160,.5) } }
@keyframes gbh-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes gbh-shadow { 0% { opacity:.25 } 50% { opacity:.35 } 100% { opacity:.2 } }

/* pearl-rosebush-plea */
.scn-pearl-rosebush-plea {
  background:
    linear-gradient(90deg, #8b6f4e 0%, #c9a87c 50%, #8b6f4e 100%),
    radial-gradient(ellipse at 50% 100%, #5c4033 0%, transparent 70%);
}
.scn-pearl-rosebush-plea .room-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #7c5e3a 0%, #5c4033 100%);
  animation: prp-back 15s ease-in-out infinite alternate;
}
.scn-pearl-rosebush-plea .hester-close {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: prp-figure 4s ease-in-out infinite;
}
.scn-pearl-rosebush-plea .pearl-tiny {
  position: absolute; bottom: 30%; left: 38%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: prp-figure 3.5s ease-in-out infinite 0.3s;
}
.scn-pearl-rosebush-plea .wilson-hand {
  position: absolute; bottom: 40%; left: 55%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #6b4f3a 0%, #4a3426 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-20deg);
  transform-origin: top center;
  animation: prp-hand 5s ease-in-out infinite alternate;
}
.scn-pearl-rosebush-plea .light-shaft {
  position: absolute; top: 10%; left: 20%; width: 40%; height: 50%;
  background: linear-gradient(180deg, rgba(255,220,160,.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: prp-light 8s ease-in-out infinite alternate;
}
.scn-pearl-rosebush-plea .shadow-cover {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.2) 0%, transparent 30%, transparent 70%, rgba(0,0,0,.2) 100%);
  animation: prp-shadow 6s ease-in-out infinite alternate;
}
@keyframes prp-back { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes prp-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-1px) rotate(0deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes prp-hand { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-22deg) } }
@keyframes prp-light { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes prp-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.4 } }

/* dimmesdale-defends-pearl */
.scn-dimmesdale-defends-pearl {
  background:
    linear-gradient(180deg, #6b4f3a 0%, #8b6f4e 50%, #5c4033 100%),
    radial-gradient(ellipse at 50% 0%, #c9a87c 0%, transparent 60%);
}
.scn-dimmesdale-defends-pearl .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5c4033 0%, #3d2b1f 100%);
  animation: ddp-wall 14s ease-in-out infinite alternate;
}
.scn-dimmesdale-defends-pearl .dimmesdale {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 66px;
  background: linear-gradient(180deg, #b89a70 0%, #7c5e3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(200,170,130,.3);
  transform-origin: bottom center;
  animation: ddp-minister 5s ease-in-out infinite;
}
.scn-dimmesdale-defends-pearl .hester-behind {
  position: absolute; bottom: 30%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ddp-backfig 7s ease-in-out infinite 0.5s;
}
.scn-dimmesdale-defends-pearl .pearl-beside {
  position: absolute; bottom: 33%; left: 55%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ddp-backfig 6s ease-in-out infinite 0.2s;
}
.scn-dimmesdale-defends-pearl .beam-light {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(255,220,160,.2) 0%, transparent 100%);
  filter: blur(6px);
  animation: ddp-beam 10s ease-in-out infinite alternate;
}
.scn-dimmesdale-defends-pearl .dark-veil {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,.15) 0%, transparent 20%, transparent 80%, rgba(0,0,0,.15) 100%);
  animation: ddp-veil 8s ease-in-out infinite alternate;
}
@keyframes ddp-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ddp-minister { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(0deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ddp-backfig { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ddp-beam { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes ddp-veil { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }

/* pearl-kisses-ministers-hand */
.scn-pearl-kisses-ministers-hand {
  background:
    linear-gradient(180deg, #c9a87c 0%, #8b6f4e 100%),
    radial-gradient(ellipse at 30% 50%, #e8d5b0 0%, transparent 70%);
}
.scn-pearl-kisses-ministers-hand .warm-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #b89a70 0%, #7c5e3a 100%);
  animation: pkh-wall 10s ease-in-out infinite alternate;
}
.scn-pearl-kisses-ministers-hand .minister-silhouette {
  position: absolute; bottom: 25%; left: 40%; width: 24px; height: 68px;
  background: linear-gradient(180deg, #5c4033 0%, #3d2b1f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pkh-minister 6s ease-in-out infinite;
}
.scn-pearl-kisses-ministers-hand .pearl-leaning {
  position: absolute; bottom: 28%; left: 48%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pkh-pearl 4s ease-in-out infinite 0.3s;
}
.scn-pearl-kisses-ministers-hand .hester-watch {
  position: absolute; bottom: 25%; left: 28%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pkh-watch 9s ease-in-out infinite;
}
.scn-pearl-kisses-ministers-hand .window-glow {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 60px;
  background: radial-gradient(circle, #ffecb0 0%, #d4a66a 100%);
  border-radius: 10%;
  box-shadow: 0 0 40px 10px rgba(255,236,176,.5);
  animation: pkh-glow 4s ease-in-out infinite alternate;
}
.scn-pearl-kisses-ministers-hand .hibbins-shadow {
  position: absolute; bottom: 25%; left: 60%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #2b1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: pkh-hibbins 12s ease-in-out infinite alternate;
}
@keyframes pkh-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pkh-minister { 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 pkh-pearl { 0% { transform: translateY(0) rotate(-5deg) translateX(0) } 25% { transform: translateY(-2px) rotate(0deg) translateX(4px) } 50% { transform: translateY(0) rotate(5deg) translateX(2px) } 75% { transform: translateY(-1px) rotate(0deg) translateX(4px) } 100% { transform: translateY(0) rotate(-5deg) translateX(0) } }
@keyframes pkh-watch { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pkh-glow { 0% { box-shadow: 0 0 20px 5px rgba(255,236,176,.3); opacity:.8 } 50% { box-shadow: 0 0 50px 15px rgba(255,236,176,.6); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(255,236,176,.4); opacity:.9 } }
@keyframes pkh-hibbins { 0% { opacity:.4; transform: translateX(0) } 50% { opacity:.6; transform: translateX(2px) } 100% { opacity:.3; transform: translateX(-2px) } }

/* item-scarlet-letter-sun */
.scn-item-scarlet-letter-sun {
  background: linear-gradient(180deg, #f0d8a0 0%, #c4a060 40%, #8a6a3a 60%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 60%);
}
.scn-item-scarlet-letter-sun .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0d0f0 0%, #f0d8a0 100%); animation: isl-sky 12s ease-in-out infinite alternate; }
.scn-item-scarlet-letter-sun .sun { position:absolute; top:12%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff5d0 0%, #f0c040 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(240,200,64,0.5); animation: isl-sun 8s ease-in-out infinite alternate; }
.scn-item-scarlet-letter-sun .scaffold { position:absolute; bottom:30%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-item-scarlet-letter-sun .pillar { position:absolute; bottom:30%; left:50%; width:12px; height:50%; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: isl-pillar 15s ease-in-out infinite; }
.scn-item-scarlet-letter-sun .figure { position:absolute; bottom:38%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: isl-figure 6s ease-in-out infinite; }
.scn-item-scarlet-letter-sun .letter { position:absolute; bottom:48%; left:50%; width:28px; height:30px; transform:translateX(-50%); background: linear-gradient(135deg, #a0461a 0%, #c8553d 40%, #e08050 100%); clip-path: polygon(50% 0%, 63% 30%, 100% 35%, 75% 60%, 80% 100%, 50% 80%, 20% 100%, 25% 60%, 0% 35%, 37% 30%); animation: isl-glow 3s ease-in-out infinite alternate; box-shadow: 0 0 20px 6px rgba(200,85,61,0.7), 0 0 40px 12px rgba(200,85,61,0.3); }
.scn-item-scarlett-letter-sun .crowd { position:absolute; bottom:18%; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #2a2a3a 8px, #2a2a3a 16px); mask: linear-gradient(90deg, transparent 10%, #000 40%, #000 60%, transparent 90%); animation: isl-crowd 20s linear infinite; }
.scn-item-scarlet-letter-sun .shadow { position:absolute; bottom:30%; left:30%; right:30%; height:4%; background: rgba(0,0,0,0.3); border-radius:50%; filter:blur(6px); animation: isl-shadow 12s ease-in-out infinite alternate; }
@keyframes isl-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes isl-sun { 0% { transform: scale(0.95); box-shadow: 0 0 60px 30px rgba(240,200,64,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 50px rgba(240,200,64,0.6); } 100% { transform: scale(1); box-shadow: 0 0 80px 40px rgba(240,200,64,0.5); } }
@keyframes isl-pillar { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes isl-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(0deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes isl-glow { 0% { box-shadow: 0 0 16px 4px rgba(200,85,61,0.6), 0 0 32px 8px rgba(200,85,61,0.2); opacity:0.85; } 50% { box-shadow: 0 0 28px 10px rgba(224,128,80,0.9), 0 0 56px 20px rgba(224,128,80,0.4); opacity:1; } 100% { box-shadow: 0 0 20px 6px rgba(200,85,61,0.7), 0 0 40px 12px rgba(200,85,61,0.3); opacity:0.9; } }
@keyframes isl-crowd { 0% { mask-position: 0 0; } 100% { mask-position: -200px 0; } }
@keyframes isl-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.1); } 100% { opacity:0.5; transform: scaleX(1); } }

/* hester-spots-chillingworth */
.scn-hester-spots-chillingworth {
  background: linear-gradient(180deg, #f0d8a0 0%, #c4a060 40%, #8a6a3a 60%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 60%);
}
.scn-hester-spots-chillingworth .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0d0f0 0%, #f0d8a0 100%); animation: hsc-sky 12s ease-in-out infinite alternate; }
.scn-hester-spots-chillingworth .sun { position:absolute; top:12%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff5d0 0%, #f0c040 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(240,200,64,0.5); animation: hsc-sun 8s ease-in-out infinite alternate; }
.scn-hester-spots-chillingworth .scaffold { position:absolute; bottom:30%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-hester-spots-chillingworth .figure-left { position:absolute; bottom:38%; left:38%; width:36px; height:64px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hsc-figure-left 6s ease-in-out infinite; }
.scn-hester-spots-chillingworth .figure-right { position:absolute; bottom:32%; right:22%; width:28px; height:44px; transform:translateX(50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hsc-figure-right 8s ease-in-out infinite; clip-path: polygon(0 0, 60% 0, 60% 100%, 0 100%); }
.scn-hester-spots-chillingworth .crowd-left { position:absolute; bottom:18%; left:0; width:35%; height:20%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #2a2a3a 8px, #2a2a3a 16px); mask: linear-gradient(90deg, transparent 20%, #000 100%); animation: hsc-crowd 25s linear infinite; }
.scn-hester-spots-chillingworth .crowd-right { position:absolute; bottom:18%; right:0; width:35%; height:20%; background: repeating-linear-gradient(90deg, #2a2a3a 0px, #2a2a3a 8px, transparent 8px, transparent 16px); mask: linear-gradient(90deg, #000 0%, transparent 80%); animation: hsc-crowd-rev 30s linear infinite; }
.scn-hester-spots-chillingworth .shadow { position:absolute; bottom:30%; left:25%; right:25%; height:4%; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(8px); animation: hsc-shadow 10s ease-in-out infinite alternate; }
@keyframes hsc-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes hsc-sun { 0% { transform: scale(0.95); box-shadow: 0 0 60px 30px rgba(240,200,64,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 50px rgba(240,200,64,0.6); } 100% { transform: scale(1); box-shadow: 0 0 80px 40px rgba(240,200,64,0.5); } }
@keyframes hsc-figure-left { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes hsc-figure-right { 0% { transform: translateX(50%) translateY(0) rotate(0deg) scaleX(1); } 30% { transform: translateX(50%) translateY(-1px) rotate(-3deg) scaleX(1.02); } 70% { transform: translateX(50%) translateY(2px) rotate(2deg) scaleX(1); } 100% { transform: translateX(50%) translateY(0) rotate(0deg) scaleX(1); } }
@keyframes hsc-crowd { 0% { mask-position: 0 0; } 100% { mask-position: -200px 0; } }
@keyframes hsc-crowd-rev { 0% { mask-position: 0 0; } 100% { mask-position: 200px 0; } }
@keyframes hsc-shadow { 0% { opacity:0.5; transform: scaleY(1); } 50% { opacity:0.8; transform: scaleY(0.8); } 100% { opacity:0.5; transform: scaleY(1); } }

/* dimmesdale-pleads-balcony */
.scn-dimmesdale-pleads-balcony {
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a080 40%, #8a6a4a 70%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 20%, #fff5d0 0%, transparent 70%);
}
.scn-dimmesdale-pleads-balcony .wall { position:absolute; inset:0 10% 0 10%; background: linear-gradient(180deg, #b8a080 0%, #6a4a2a 100%); border-radius:0 0 20px 20px; }
.scn-dimmesdale-pleads-balcony .balcony { position:absolute; bottom:30%; left:15%; right:15%; height:22%; background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%); border-radius:10px 10px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.5); }
.scn-dimmesdale-pleads-balcony .column-left { position:absolute; bottom:30%; left:18%; width:12px; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-dimmesdale-pleads-balcony .column-right { position:absolute; bottom:30%; right:18%; width:12px; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-dimmesdale-pleads-balcony .figure-dimmesdale { position:absolute; bottom:34%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 80%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dpb-figure 6s ease-in-out infinite; }
.scn-dimmesdale-pleads-balcony .figure-bellingham { position:absolute; bottom:36%; left:30%; width:28px; height:42px; transform:translateX(-50%); background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dpb-figure-b 8s ease-in-out infinite; }
.scn-dimmesdale-pleads-balcony .figure-wilson { position:absolute; bottom:36%; right:30%; width:28px; height:42px; transform:translateX(50%); background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dpb-figure-w 7s ease-in-out infinite; }
.scn-dimmesdale-pleads-balcony .balcony-rail { position:absolute; bottom:30%; left:18%; right:18%; height:6px; background: linear-gradient(90deg, #5a3a2a 0%, #6a4a2a 50%, #5a3a2a 100%); border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: dpb-rail 10s ease-in-out infinite alternate; }
@keyframes dpb-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 30% { transform: translateX(-50%) translateY(-3px) rotate(3deg) scaleY(1.05); } 70% { transform: translateX(-50%) translateY(2px) rotate(-2deg) scaleY(1); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes dpb-figure-b { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } }
@keyframes dpb-figure-w { 0%,100% { transform: translateX(50%) translateY(0) rotate(0deg); } 60% { transform: translateX(50%) translateY(-1px) rotate(-1deg); } }
@keyframes dpb-rail { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }

/* hester-refuses-name */
.scn-hester-refuses-name {
  background: linear-gradient(180deg, #e8d8b8 0%, #c0a880 40%, #887050 70%, #403020 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 60%);
}
.scn-hester-refuses-name .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c8e0 0%, #e8d8b8 100%); animation: hrn-sky 12s ease-in-out infinite alternate; }
.scn-hester-refuses-name .scaffold { position:absolute; bottom:30%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-hester-refuses-name .figure-hester { position:absolute; bottom:36%; left:50%; width:38px; height:66px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hrn-figure 6s ease-in-out infinite; }
.scn-hester-refuses-name .letter { position:absolute; bottom:47%; left:50%; width:26px; height:28px; transform:translateX(-50%); background: linear-gradient(135deg, #a0461a 0%, #c8553d 40%, #e08050 100%); clip-path: polygon(50% 0%, 63% 30%, 100% 35%, 75% 60%, 80% 100%, 50% 80%, 20% 100%, 25% 60%, 0% 35%, 37% 30%); animation: hrn-glow 3.5s ease-in-out infinite alternate; box-shadow: 0 0 24px 8px rgba(200,85,61,0.8), 0 0 48px 16px rgba(200,85,61,0.3); }
.scn-hester-refuses-name .crowd-front { position:absolute; bottom:18%; left:0; right:0; height:18%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 6px, #2a2a3a 6px, #2a2a3a 12px); mask: linear-gradient(90deg, transparent 5%, #000 30%, #000 70%, transparent 95%); animation: hrn-crowd 20s linear infinite; }
.scn-hester-refuses-name .shadow { position:absolute; bottom:30%; left:25%; right:25%; height:4%; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(8px); animation: hrn-shadow 10s ease-in-out infinite alternate; }
.scn-hester-refuses-name .hand { position:absolute; bottom:42%; left:55%; width:12px; height:16px; background: #2a2a3a; border-radius:40% 40% 20% 20%; transform: rotate(-15deg); animation: hrn-hand 4s ease-in-out infinite; }
@keyframes hrn-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes hrn-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 20% { transform: translateX(-50%) translateY(-1px) rotate(2deg); } 60% { transform: translateX(-50%) translateY(2px) rotate(-1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes hrn-glow { 0% { box-shadow: 0 0 20px 6px rgba(200,85,61,0.7), 0 0 40px 12px rgba(200,85,61,0.3); opacity:0.9; } 50% { box-shadow: 0 0 32px 12px rgba(224,128,80,1), 0 0 64px 24px rgba(224,128,80,0.5); opacity:1; } 100% { box-shadow: 0 0 24px 8px rgba(200,85,61,0.8), 0 0 48px 16px rgba(200,85,61,0.3); opacity:0.95; } }
@keyframes hrn-crowd { 0% { mask-position: 0 0; } 100% { mask-position: -200px 0; } }
@keyframes hrn-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.7; transform: scaleX(1.15); } 100% { opacity:0.5; transform: scaleX(1); } }
@keyframes hrn-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-4px); } 100% { transform: rotate(-15deg) translateY(0); } }

.scn-wilson-sermon-insensible {
  background: linear-gradient(180deg, #2a1a2e 0%, #3a2a40 50%, #4a3a4e 100%),
              radial-gradient(ellipse at 40% 10%, #d4c8a0 0%, transparent 60%);
}
.scn-wilson-sermon-insensible .church-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1422 0%, #2a2035 100%); }
.scn-wilson-sermon-insensible .sunbeam { position:absolute; top:0; left:20%; width:30%; height:80%; background: linear-gradient(135deg, rgba(230,210,180,0.6) 0%, transparent 60%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: ws-sunbeam 8s ease-in-out infinite alternate; }
.scn-wilson-sermon-insensible .scaffold { position:absolute; bottom:0; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-wilson-sermon-insensible .hester-silhouette { position:absolute; bottom:8%; left:45%; width:6%; height:40%; background: linear-gradient(180deg, #0a0a10 0%, #1a1420 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ws-hester 12s ease-in-out infinite; }
.scn-wilson-sermon-insensible .infant { position:absolute; bottom:22%; left:46%; width:3%; height:6%; background: #0a0a10; border-radius: 50%; animation: ws-infant 2s ease-in-out infinite; }
.scn-wilson-sermon-insensible .dimmesdale-silhouette { position:absolute; bottom:8%; left:35%; width:5%; height:35%; background: linear-gradient(180deg, #0a0a12 0%, #101020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ws-dimmesdale 6s ease-in-out infinite alternate; }
.scn-wilson-sermon-insensible .wilson-silhouette { position:absolute; bottom:8%; left:55%; width:6%; height:38%; background: linear-gradient(180deg, #0a0a10 0%, #121020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ws-wilson 10s ease-in-out infinite alternate; }
.scn-wilson-sermon-insensible .glowing-letter { position:absolute; bottom:30%; left:48%; width:4%; height:6%; background: radial-gradient(circle, #ffd080 0%, #b06020 70%); border-radius: 30% 10% 30% 10%; box-shadow: 0 0 20px 8px #d08040, 0 0 40px 16px rgba(208,128,64,0.5); animation: ws-glint 1s ease-in-out infinite alternate; }
@keyframes ws-sunbeam { 0% { opacity:0.6; transform: rotate(-2deg); } 50% { opacity:1; transform: rotate(0deg); } 100% { opacity:0.7; transform: rotate(2deg); } }
@keyframes ws-hester { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(-2%) translateY(-1%) rotate(-2deg); } 66% { transform: translateX(2%) translateY(0.5%) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ws-infant { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(2px) translateY(-2px); } 50% { transform: translateX(-2px) translateY(1px); } 75% { transform: translateX(1px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ws-dimmesdale { 0% { transform: translateX(0) rotate(0deg); opacity:0.7; } 50% { transform: translateX(2%) rotate(2deg); opacity:0.9; } 100% { transform: translateX(0) rotate(0deg); opacity:0.7; } }
@keyframes ws-wilson { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-1%) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes ws-glint { 0% { box-shadow: 0 0 15px 4px #d08040; } 50% { box-shadow: 0 0 30px 12px #ffb060; } 100% { box-shadow: 0 0 20px 6px #d08040; } }

.scn-chillingworth-prison-confrontation {
  background: linear-gradient(180deg, #1a1418 0%, #2a1e22 50%, #120e10 100%),
              radial-gradient(circle at 50% 40%, #4a3a3e 0%, transparent 70%);
}
.scn-chillingworth-prison-confrontation .prison-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1e1e 0%, #1a1212 30%, #2a1e1e 70%, #1a1212 100%); }
.scn-chillingworth-prison-confrontation .cell-floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #2a1e1e 0%, #0a0808 100%); }
.scn-chillingworth-prison-confrontation .shadow { position:absolute; bottom:0; left:20%; width:60%; height:15%; background: linear-gradient(180deg, transparent 0%, #0a0808 100%); opacity:0.5; animation: cp-shadow 4s ease-in-out infinite alternate; }
.scn-chillingworth-prison-confrontation .lantern { position:absolute; top:30%; left:25%; width:8%; height:12%; background: radial-gradient(circle, #d4a060 0%, #a06020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(180,100,40,0.4); animation: cp-lantern 2s ease-in-out infinite alternate; }
.scn-chillingworth-prison-confrontation .hester-figure { position:absolute; bottom:10%; left:35%; width:5%; height:30%; background: linear-gradient(180deg, #161218 0%, #0c0a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-hester 6s ease-in-out infinite; }
.scn-chillingworth-prison-confrontation .chillingworth-figure { position:absolute; bottom:10%; left:55%; width:6%; height:35%; background: linear-gradient(180deg, #0e0c10 0%, #1a1418 100%); border-radius: 40% 50% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: cp-chillingworth 8s ease-in-out infinite alternate; }
.scn-chillingworth-prison-confrontation .chain { position:absolute; bottom:20%; left:45%; width:10%; height:2%; background: #3a2a2a; border-radius: 10px; box-shadow: 0 0 4px #0a0808; animation: cp-chain 3s ease-in-out infinite alternate; }
@keyframes cp-shadow { 0% { transform: scaleY(1); opacity:0.4; } 50% { transform: scaleY(1.1); opacity:0.6; } 100% { transform: scaleY(1); opacity:0.4; } }
@keyframes cp-lantern { 0% { transform: rotate(-3deg); box-shadow: 0 0 30px 15px rgba(180,100,40,0.3); } 50% { transform: rotate(3deg); box-shadow: 0 0 50px 25px rgba(180,100,40,0.5); } 100% { transform: rotate(-3deg); box-shadow: 0 0 30px 15px rgba(180,100,40,0.3); } }
@keyframes cp-hester { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2%) rotate(-1deg); } 66% { transform: translateX(2%) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cp-chillingworth { 0% { transform: translateX(0) scaleY(1) rotate(0deg); } 50% { transform: translateX(-3%) scaleY(1.03) rotate(2deg); } 100% { transform: translateX(0) scaleY(1) rotate(0deg); } }
@keyframes cp-chain { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(2px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }

.scn-secrecy-oath {
  background: linear-gradient(180deg, #1a1620 0%, #2a2230 50%, #1a1620 100%),
              radial-gradient(circle at 50% 30%, #3a3250 0%, transparent 60%);
}
.scn-secrecy-oath .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2230 0%, #1a1620 100%); }
.scn-secrecy-oath .table { position:absolute; bottom:20%; left:20%; width:60%; height:5%; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-secrecy-oath .candle { position:absolute; bottom:35%; left:50%; width:2%; height:10%; background: linear-gradient(180deg, #806030 0%, #403018 100%); border-radius: 4px; transform: translateX(-50%); animation: so-candle 3s ease-in-out infinite; }
.scn-secrecy-oath .candle::after { content:''; display:block; position:absolute; top:-30%; left:50%; width:150%; height:30%; background: radial-gradient(circle, #ffd080 0%, #f0a030 60%, transparent 100%); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 30px 15px rgba(240,160,48,0.4); }
.scn-secrecy-oath .hester-silhouette { position:absolute; bottom:22%; left:30%; width:5%; height:28%; background: linear-gradient(180deg, #0e0c12 0%, #06040a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: so-hester 5s ease-in-out infinite alternate; }
.scn-secrecy-oath .chillingworth-silhouette { position:absolute; bottom:22%; left:60%; width:6%; height:30%; background: linear-gradient(180deg, #0e0c12 0%, #0a0810 100%); border-radius: 40% 50% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: so-chillingworth 7s ease-in-out infinite alternate; }
.scn-secrecy-oath .oath-hand { position:absolute; bottom:30%; left:45%; width:4%; height:8%; background: #0e0c12; border-radius: 60% 40% 40% 60% / 50% 60% 40% 50%; transform: rotate(-20deg); animation: so-hand 1s ease-in-out infinite alternate; }
@keyframes so-candle { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes so-hester { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2%) rotate(-2deg); } 66% { transform: translateX(1%) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes so-chillingworth { 0% { transform: translateX(0) scaleY(1) rotate(0deg); } 50% { transform: translateX(-2%) scaleY(1.02) rotate(2deg); } 100% { transform: translateX(0) scaleY(1) rotate(0deg); } }
@keyframes so-hand { 0% { transform: rotate(-25deg) translateY(0); opacity:0.8; } 50% { transform: rotate(-15deg) translateY(-2px); opacity:1; } 100% { transform: rotate(-25deg) translateY(0); opacity:0.8; } }

.scn-outcast-living {
  background: linear-gradient(180deg, #3a3a3e 0%, #4a4a4e 30%, #5a5a5e 60%, #4a4a4e 100%),
              radial-gradient(ellipse at 50% 80%, #6a6a6e 0%, transparent 70%);
}
.scn-outcast-living .overcast-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a4a50 0%, #3a3a40 100%); animation: ol-clouds 20s linear infinite alternate; }
.scn-outcast-living .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a2e 0%, #1a1a1e 100%); }
.scn-outcast-living .cottage { position:absolute; bottom:15%; left:20%; width:25%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-outcast-living .cottage::before { content:''; display:block; position:absolute; top:-30%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); }
.scn-outcast-living .hester-figure { position:absolute; bottom:5%; left:45%; width:5%; height:40%; background: linear-gradient(180deg, #161218 0%, #0c0a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ol-hester 10s ease-in-out infinite; }
.scn-outcast-living .letter { position:absolute; bottom:25%; left:46.5%; width:3%; height:5%; background: radial-gradient(circle, #d08050 0%, #a05030 70%); border-radius: 20% 10% 20% 10%; box-shadow: 0 0 10px 4px #a05030; animation: ol-glow 2s ease-in-out infinite alternate; }
.scn-outcast-living .child-fleeing { position:absolute; bottom:10%; left:65%; width:3%; height:12%; background: #0e0c12; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ol-flee 3s ease-in-out infinite; }
.scn-outcast-living .wind-ripple { position:absolute; bottom:20%; left:10%; width:80%; height:2%; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.1) 50%, transparent 100%); filter: blur(2px); animation: ol-wind 6s linear infinite; }
@keyframes ol-clouds { 0% { background-position: 0% 0%; opacity:0.7; } 50% { background-position: 10% 2%; opacity:0.9; } 100% { background-position: 20% 0%; opacity:0.7; } }
@keyframes ol-hester { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(1%) translateY(-1%) rotate(2deg); } 50% { transform: translateX(2%) translateY(0) rotate(-1deg); } 75% { transform: translateX(1%) translateY(1%) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ol-glow { 0% { box-shadow: 0 0 8px 2px #a05030; opacity:0.8; } 50% { box-shadow: 0 0 15px 6px #d08050; opacity:1; } 100% { box-shadow: 0 0 10px 3px #a05030; opacity:0.8; } }
@keyframes ol-flee { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(10px) rotate(-5deg); } 66% { transform: translateX(20px) rotate(3deg); } 100% { transform: translateX(30px) rotate(0deg); } }
@keyframes ol-wind { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }

.scn-scaffold-night-meeting {
  background: 
    linear-gradient(180deg, #0a0a1e 0%, #1a1a3a 40%, #0e0e2a 100%),
    radial-gradient(ellipse at 50% 20%, #1a1a3a 0%, transparent 60%);
}
.scn-scaffold-night-meeting .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3a 60%, transparent);
  animation: snm-sky-pulse 10s ease-in-out infinite alternate;
}
.scn-scaffold-night-meeting .scaffold-beam {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 6px;
  background: #2a2a3a; border-radius: 2px;
  box-shadow: 0 0 8px rgba(0,0,0,.6);
  animation: snm-beam-shiver 6s ease-in-out infinite;
}
.scn-scaffold-night-meeting .scaffold-post {
  position: absolute; bottom: 20%; left: 23%; width: 8px; height: 60%;
  background: linear-gradient(180deg, #3a3a4a, #1a1a2a);
  border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,.4);
}
.scn-scaffold-night-meeting .figure-dimmesdale {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: snm-figure-tremble 4s ease-in-out infinite;
}
.scn-scaffold-night-meeting .figure-hester {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: snm-figure-tremble 5s ease-in-out infinite 0.5s;
}
.scn-scaffold-night-meeting .figure-pearl {
  position: absolute; bottom: 28%; left: 32%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: snm-pearl-bounce 3s ease-in-out infinite;
}
.scn-scaffold-night-meeting .shadow-chillingworth {
  position: absolute; bottom: 30%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #0a0a1e 0%, #000 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  opacity: 0.8; filter: blur(2px);
  animation: snm-shadow-grow 12s ease-in-out infinite;
}
.scn-scaffold-night-meeting .star-glow {
  position: absolute; top: 15%; left: 60%; width: 4px; height: 4px;
  background: radial-gradient(circle, #aabbcc 0%, #667788 50%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px #667788;
  animation: snm-star-twinkle 4s ease-in-out infinite alternate;
}
@keyframes snm-sky-pulse {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes snm-beam-shiver {
  0% { transform: scaleX(1); } 25% { transform: scaleX(1.02) translateY(1px); } 50% { transform: scaleX(0.98) translateY(-1px); } 75% { transform: scaleX(1.01) translateY(0.5px); } 100% { transform: scaleX(1); }
}
@keyframes snm-figure-tremble {
  0% { transform: translate(0,0) rotate(0deg); } 15% { transform: translate(1px,-1px) rotate(2deg); } 30% { transform: translate(-1px,0) rotate(-1deg); } 45% { transform: translate(2px,1px) rotate(3deg); } 60% { transform: translate(-2px,-1px) rotate(-2deg); } 80% { transform: translate(1px,0) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes snm-pearl-bounce {
  0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes snm-shadow-grow {
  0% { transform: scaleY(0.8) scaleX(0.9); opacity: 0.5; } 50% { transform: scaleY(1.1) scaleX(1.05); opacity: 0.9; } 100% { transform: scaleY(0.85) scaleX(0.95); opacity: 0.6; }
}
@keyframes snm-star-twinkle {
  0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(1); }
}

.scn-meteor-red-a {
  background: 
    linear-gradient(180deg, #000 0%, #0a0a1e 40%, #1a0a0a 80%, #000 100%),
    radial-gradient(ellipse at 50% 30%, #3a0a0a 0%, transparent 70%);
}
.scn-meteor-red-a .abyss-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #000 0%, #0a0a1e 60%, transparent);
  animation: mra-sky-rumble 8s ease-in-out infinite alternate;
}
.scn-meteor-red-a .meteor-streak {
  position: absolute; top: 8%; left: 45%; width: 120px; height: 6px;
  background: linear-gradient(90deg, #c84030, #ff6040, #c83020);
  border-radius: 50%; filter: blur(2px);
  transform: rotate(-20deg) translateX(-20px);
  box-shadow: 0 0 20px 6px #e04030;
  animation: mra-meteor-flash 6s ease-in-out infinite;
}
.scn-meteor-red-a .letter-a-glow {
  position: absolute; top: 25%; left: 48%; width: 20px; height: 24px;
  background: radial-gradient(circle, #ff5040 0%, #c83020 60%, transparent);
  border-radius: 4px;
  box-shadow: 0 0 40px 12px #ff4030, 0 0 80px 20px rgba(255,64,48,0.4);
  animation: mra-a-pulse 4s ease-in-out infinite alternate;
}
.scn-meteor-red-a .figure-minister-shadow {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 38px;
  background: #0a0a0a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mra-figure-cover 5s ease-in-out infinite;
}
.scn-meteor-red-a .figure-hester-shadow {
  position: absolute; bottom: 28%; left: 28%; width: 18px; height: 36px;
  background: #0a0a0a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: mra-figure-cover 6s ease-in-out infinite 0.8s;
}
.scn-meteor-red-a .figure-pearl-link {
  position: absolute; bottom: 26%; left: 30%; width: 10px; height: 20px;
  background: #1a1a1a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: mra-pearl-shift 3s ease-in-out infinite;
}
.scn-meteor-red-a .chillingworth-lurk {
  position: absolute; bottom: 28%; left: 55%; width: 16px; height: 36px;
  background: #0a0a0a; border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  opacity: 0.7; filter: blur(1px);
  animation: mra-lurk-swivel 12s ease-in-out infinite;
}
.scn-meteor-red-a .ground-silhouette {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0a0a 0%, #000 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
@keyframes mra-sky-rumble {
  0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.7; transform: scaleY(0.98); }
}
@keyframes mra-meteor-flash {
  0% { opacity: 0; transform: translateX(-40px) rotate(-20deg) scaleX(0.5); } 10% { opacity: 1; } 20% { opacity: 0.9; } 30% { opacity: 0.2; } 40% { opacity: 0; transform: translateX(20px) rotate(-20deg) scaleX(0.3); } 100% { opacity: 0; }
}
@keyframes mra-a-pulse {
  0% { transform: scale(0.8) rotate(-5deg); opacity: 0.6; box-shadow: 0 0 30px 8px #ff4030; } 50% { transform: scale(1.2) rotate(5deg); opacity: 1; box-shadow: 0 0 60px 18px #ff6050; } 100% { transform: scale(0.9) rotate(-3deg); opacity: 0.8; box-shadow: 0 0 40px 10px #ff4030; }
}
@keyframes mra-figure-cover {
  0% { transform: translate(0,0) scaleY(1); } 25% { transform: translate(-2px,-1px) scaleY(1.05); } 50% { transform: translate(1px,0) scaleY(0.95); } 75% { transform: translate(-1px,1px) scaleY(1.02); } 100% { transform: translate(0,0) scaleY(1); }
}
@keyframes mra-pearl-shift {
  0% { transform: translate(0,0) rotate(-10deg); } 25% { transform: translate(3px,-2px) rotate(5deg); } 50% { transform: translate(0,0) rotate(10deg); } 75% { transform: translate(-3px,-1px) rotate(-5deg); } 100% { transform: translate(0,0) rotate(-10deg); }
}
@keyframes mra-lurk-swivel {
  0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,0) rotate(3deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-2px,0) rotate(-3deg); } 100% { transform: translate(0,0) rotate(0deg); }
}

.scn-child-accuses-cowardice {
  background: 
    linear-gradient(180deg, #0a0a1e 0%, #1a1a3a 30%, #0e0e2a 70%, #000 100%),
    radial-gradient(ellipse at 50% 50%, #1a1a3a 0%, transparent 60%);
}
.scn-child-accuses-cowardice .deep-night {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3a 50%, transparent);
  animation: cac-night-drift 12s ease-in-out infinite alternate;
}
.scn-child-accuses-cowardice .scaffold-platform {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 4px;
  background: #2a2a3a; border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  animation: cac-platform-shiver 7s ease-in-out infinite;
}
.scn-child-accuses-cowardice .pearl-accuse {
  position: absolute; bottom: 28%; left: 35%; width: 12px; height: 26px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cac-pearl-point 3s ease-in-out infinite;
}
.scn-child-accuses-cowardice .dimmesdale-cower {
  position: absolute; bottom: 28%; left: 28%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cac-cower-back 5s ease-in-out infinite;
}
.scn-child-accuses-cowardice .hester-watch {
  position: absolute; bottom: 28%; left: 22%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cac-hester-still 4s ease-in-out infinite 0.5s;
}
.scn-child-accuses-cowardice .chillingworth-arrive {
  position: absolute; bottom: 28%; left: 50%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #0a0a1e 0%, #000 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  opacity: 0.6; filter: blur(1px);
  animation: cac-chill-enter 15s ease-in-out infinite;
}
.scn-child-accuses-cowardice .wind-wisp {
  position: absolute; top: 40%; left: 20%; width: 120px; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.08), transparent);
  filter: blur(6px);
  animation: cac-wind-sweep 20s linear infinite;
}
@keyframes cac-night-drift {
  0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes cac-platform-shiver {
  0% { transform: scaleX(1); } 25% { transform: scaleX(1.01) translateY(1px); } 50% { transform: scaleX(0.99) translateY(-1px); } 75% { transform: scaleX(1.005) translateY(0.5px); } 100% { transform: scaleX(1); }
}
@keyframes cac-pearl-point {
  0% { transform: translate(0,0) rotate(-15deg); } 20% { transform: translate(4px,-2px) rotate(20deg); } 40% { transform: translate(2px,-1px) rotate(-10deg); } 60% { transform: translate(6px,-3px) rotate(25deg); } 80% { transform: translate(3px,-1px) rotate(-5deg); } 100% { transform: translate(0,0) rotate(-15deg); }
}
@keyframes cac-cower-back {
  0% { transform: translate(0,0) scaleY(1) rotate(0deg); } 20% { transform: translate(-2px,0) scaleY(0.95) rotate(2deg); } 40% { transform: translate(0,0) scaleY(1) rotate(0deg); } 60% { transform: translate(-3px,1px) scaleY(0.9) rotate(4deg); } 80% { transform: translate(-1px,0) scaleY(0.97) rotate(1deg); } 100% { transform: translate(0,0) scaleY(1) rotate(0deg); }
}
@keyframes cac-hester-still {
  0% { transform: translate(0,0); } 50% { transform: translate(1px,-1px); } 100% { transform: translate(0,0); }
}
@keyframes cac-chill-enter {
  0% { transform: translateX(-20px) scaleX(0.5); opacity: 0; } 20% { transform: translateX(0) scaleX(1); opacity: 0.7; } 40% { transform: translateX(5px) scaleX(1.05); opacity: 0.8; } 60% { transform: translateX(0) scaleX(1); opacity: 0.6; } 80% { transform: translateX(-10px) scaleX(0.8); opacity: 0.4; } 100% { transform: translateX(-20px) scaleX(0.5); opacity: 0; }
}
@keyframes cac-wind-sweep {
  0% { transform: translateX(-100px); } 100% { transform: translateX(100vw); }
}

.scn-hester-resolves-help {
  background: 
    linear-gradient(180deg, #7a8a8a 0%, #aababa 30%, #c8d8d8 60%, #b0c0c0 100%),
    radial-gradient(ellipse at 50% 80%, #c8d8d8 0%, transparent 70%);
}
.scn-hester-resolves-help .overcast-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8a9a9a 0%, #b0c0c0 60%, transparent);
  animation: hrh-sky-soft 15s ease-in-out infinite alternate;
}
.scn-hester-resolves-help .horizon-line {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 2px;
  background: #9aaaaa;
  box-shadow: 0 0 6px rgba(100,120,120,.3);
}
.scn-hester-resolves-help .hester-figure {
  position: absolute; bottom: 25%; left: 42%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hrh-stand-calm 8s ease-in-out infinite;
}
.scn-hester-resolves-help .scarlet-letter-glow {
  position: absolute; bottom: 30%; left: 42%; width: 12px; height: 14px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, transparent);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #c8553d, 0 0 40px 12px rgba(200,85,61,0.3);
  animation: hrh-letter-soft 6s ease-in-out infinite alternate;
}
.scn-hester-resolves-help .pearl-small {
  position: absolute; bottom: 22%; left: 36%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: hrh-pearl-gentle 5s ease-in-out infinite 1s;
}
.scn-hester-resolves-help .mercy-light {
  position: absolute; top: 30%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(200,220,220,.08) 0%, transparent 70%);
  border-radius: 50%;
  animation: hrh-mercy-drift 20s ease-in-out infinite;
}
.scn-hester-resolves-help .shadow-past {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, rgba(80,90,90,0.3) 0%, #5a6a6a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  filter: blur(4px);
  animation: hrh-shadow-fade 12s ease-in-out infinite alternate;
}
@keyframes hrh-sky-soft {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes hrh-stand-calm {
  0% { transform: translate(0,0) scaleY(1); } 30% { transform: translate(1px,-1px) scaleY(1.01); } 60% { transform: translate(0,0) scaleY(1); } 100% { transform: translate(-1px,0) scaleY(0.99); }
}
@keyframes hrh-letter-soft {
  0% { box-shadow: 0 0 15px 4px #c8553d, 0 0 30px 8px rgba(200,85,61,0.2); opacity: 0.7; } 50% { box-shadow: 0 0 25px 8px #c88565, 0 0 50px 15px rgba(200,133,101,0.3); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #c8553d, 0 0 35px 10px rgba(200,85,61,0.25); opacity: 0.8; }
}
@keyframes hrh-pearl-gentle {
  0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(3deg); } 50% { transform: translate(0,0) rotate(0deg); } 75% { transform: translate(-2px,0) rotate(-3deg); } 100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes hrh-mercy-drift {
  0% { transform: translate(0,0) scale(1); opacity: 0.5; } 50% { transform: translate(10px,-5px) scale(1.2); opacity: 0.8; } 100% { transform: translate(0,0) scale(1); opacity: 0.6; }
}
@keyframes hrh-shadow-fade {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; }
}

/* Scene 1: dimmesdale-resolves-flee */
.scn-dimmesdale-resolves-flee { background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 40%, #1a2a2a 100%), radial-gradient(ellipse at 50% 20%, #6a7a7a 0%, transparent 80%); }
.scn-dimmesdale-resolves-flee .sky-overcast { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 100%); animation: drf-sky 14s ease-in-out infinite alternate; }
.scn-dimmesdale-resolves-flee .trees-back { position: absolute; bottom: 35%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; animation: drf-trees 20s ease-in-out infinite; }
.scn-dimmesdale-resolves-flee .path { position: absolute; bottom: 15%; left: 20%; width: 60%; height: 20%; background: linear-gradient(90deg, transparent 0%, #4a3a2a 30%, #3a2a1a 70%, transparent 100%); border-radius: 20% 20% 10% 10%; transform: skewX(-10deg); animation: drf-path 10s ease-in-out infinite; }
.scn-dimmesdale-resolves-flee .figure-hester { position: absolute; bottom: 18%; left: 35%; width: 20px; height: 40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: drf-walk-hester 6s ease-in-out infinite; }
.scn-dimmesdale-resolves-flee .figure-dimmesdale { position: absolute; bottom: 18%; left: 55%; width: 22px; height: 42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(2deg); animation: drf-walk-dim 7s ease-in-out infinite; }
.scn-dimmesdale-resolves-flee .leaf-drift-a { position: absolute; top: 30%; left: 10%; width: 8px; height: 8px; background: #6a5a3a; border-radius: 50% 0 50% 0; animation: drf-leaf-a 22s linear infinite; }
.scn-dimmesdale-resolves-flee .leaf-drift-b { position: absolute; top: 40%; left: 80%; width: 6px; height: 6px; background: #5a4a2a; border-radius: 0 50% 0 50%; animation: drf-leaf-b 28s linear infinite; }
@keyframes drf-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes drf-trees { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(0.98) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes drf-path { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes drf-walk-hester { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(-3deg) } 50% { transform: translateX(10px) translateY(0) rotate(-5deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(-7deg) } 100% { transform: translateX(20px) translateY(0) rotate(-5deg) } }
@keyframes drf-walk-dim { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(-4px) translateY(-1px) rotate(4deg) } 50% { transform: translateX(-8px) translateY(0) rotate(2deg) } 75% { transform: translateX(-12px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(-16px) translateY(0) rotate(2deg) } }
@keyframes drf-leaf-a { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(30px, 10px) rotate(45deg) } 50% { transform: translate(60px, -5px) rotate(90deg) } 75% { transform: translate(90px, 15px) rotate(135deg) } 100% { transform: translate(120px, 0) rotate(180deg) } }
@keyframes drf-leaf-b { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(-20px, 8px) rotate(-30deg) } 50% { transform: translate(-40px, -4px) rotate(-60deg) } 75% { transform: translate(-60px, 12px) rotate(-90deg) } 100% { transform: translate(-80px, 0) rotate(-120deg) } }

/* Scene 2: item-scarlet-letter-cast-aside */
.scn-item-scarlet-letter-cast-aside { background: linear-gradient(180deg, #f5e6c8 0%, #e0c898 30%, #b89868 100%), radial-gradient(ellipse at 50% 70%, #ffe680 0%, transparent 60%); }
.scn-item-scarlet-letter-cast-aside .sky-warm { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #b8d8f0 0%, #e8f0c0 100%); animation: sca-sky 15s ease-in-out infinite alternate; }
.scn-item-scarlet-letter-cast-aside .sunbeams { position: absolute; top: 10%; left: 20%; width: 60%; height: 40%; background: linear-gradient(135deg, rgba(255,240,180,0.4) 0%, transparent 50%, rgba(255,240,180,0.1) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: sca-beams 8s ease-in-out infinite; }
.scn-item-scarlet-letter-cast-aside .trees-soft { position: absolute; bottom: 30%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #7a8a5a 0%, #5a6a3a 100%); border-radius: 40% 60% 0 0 / 60% 70% 0 0; animation: sca-trees 20s ease-in-out infinite; }
.scn-item-scarlet-letter-cast-aside .figure-hester-hair { position: absolute; bottom: 25%; left: 45%; width: 24px; height: 48px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: rotate(5deg); animation: sca-hair 6s ease-in-out infinite; }
.scn-item-scarlet-letter-cast-aside .figure-hester-hair::after { content: ''; position: absolute; top: -10px; left: -8px; width: 30px; height: 20px; background: #2a1a1a; border-radius: 50% 50% 0 0; animation: sca-hair-flow 4s ease-in-out infinite; }
.scn-item-scarlet-letter-cast-aside .letter-fallen { position: absolute; bottom: 20%; left: 40%; width: 14px; height: 18px; background: #702243; border-radius: 2px; transform: rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: sca-letter 12s ease-in-out infinite; }
.scn-item-scarlet-letter-cast-aside .leaf-glint { position: absolute; bottom: 30%; left: 60%; width: 8px; height: 8px; background: #c8a040; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,160,64,0.5); animation: sca-glint 9s ease-in-out infinite reverse; }
@keyframes sca-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes sca-beams { 0% { opacity: 0.3; transform: rotate(0deg) } 50% { opacity: 0.6; transform: rotate(1deg) } 100% { opacity: 0.3; transform: rotate(0deg) } }
@keyframes sca-trees { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sca-hair { 0% { transform: rotate(4deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(4deg) } }
@keyframes sca-hair-flow { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(5deg) } 50% { transform: translateX(-2px) rotate(-3deg) } 75% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sca-letter { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes sca-glint { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 1; transform: scale(1.3) } 100% { opacity: 0.5; transform: scale(1) } }

/* Scene 3: pearl-at-brook-margin */
.scn-pearl-at-brook-margin { background: linear-gradient(180deg, #8ab8d8 0%, #b8d8e8 40%, #98b8a0 100%), radial-gradient(ellipse at 50% 10%, #c0e0f8 0%, transparent 60%); }
.scn-pearl-at-brook-margin .sky-bright { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #a8c8e8 0%, #d8e8f8 100%); animation: pbm-sky 18s ease-in-out infinite alternate; }
.scn-pearl-at-brook-margin .stream { position: absolute; bottom: 25%; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #6a8a8a 0%, #8aa8a8 50%, #5a7a7a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; animation: pbm-stream 12s ease-in-out infinite; }
.scn-pearl-at-brook-margin .trees-left { position: absolute; bottom: 30%; left: 0; width: 20%; height: 30%; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 0 80% 0 0 / 0 50% 0 0; animation: pbm-trees 25s ease-in-out infinite; }
.scn-pearl-at-brook-margin .trees-right { position: absolute; bottom: 30%; right: 0; width: 20%; height: 30%; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 80% 0 0 0 / 50% 0 0 0; animation: pbm-trees 25s ease-in-out infinite reverse; }
.scn-pearl-at-brook-margin .figure-pearl { position: absolute; bottom: 20%; left: 35%; width: 16px; height: 32px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: pbm-pearl 8s ease-in-out infinite; }
.scn-pearl-at-brook-margin .figure-adults { position: absolute; bottom: 20%; right: 30%; width: 30px; height: 36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: pbm-adults 10s ease-in-out infinite; }
.scn-pearl-at-brook-margin .reflection-pearl { position: absolute; bottom: 18%; left: 35%; width: 16px; height: 16px; background: rgba(58,42,42,0.3); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; filter: blur(1px); animation: pbm-reflection 8s ease-in-out infinite; }
.scn-pearl-at-brook-margin .ripple { position: absolute; bottom: 24%; left: 38%; width: 20px; height: 4px; background: rgba(255,255,255,0.3); border-radius: 50%; animation: pbm-ripple 6s ease-in-out infinite; }
@keyframes pbm-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes pbm-stream { 0% { background-position: 0% 0% } 50% { background-position: 10% 0% } 100% { background-position: 0% 0% } }
@keyframes pbm-trees { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes pbm-pearl { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pbm-adults { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pbm-reflection { 0% { opacity: 0.4; transform: scaleY(-1) translateY(0) } 50% { opacity: 0.6; transform: scaleY(-1) translateY(-2px) } 100% { opacity: 0.4; transform: scaleY(-1) translateY(0) } }
@keyframes pbm-ripple { 0% { transform: scaleX(1); opacity: 0.6 } 50% { transform: scaleX(1.5); opacity: 0.2 } 100% { transform: scaleX(1); opacity: 0.6 } }

/* Scene 4: pearl-points-breast */
.scn-pearl-points-breast { background: linear-gradient(180deg, #7a9a7a 0%, #5a7a5a 40%, #3a5a3a 100%), radial-gradient(ellipse at 50% 0%, #b8d8a0 0%, transparent 60%); }
.scn-pearl-points-breast .bg-forest { position: absolute; inset: 0; background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%); animation: ppb-forest 20s ease-in-out infinite alternate; }
.scn-pearl-points-breast .figure-hester-torso { position: absolute; bottom: 20%; left: 45%; width: 30px; height: 40px; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: ppb-torso 6s ease-in-out infinite; }
.scn-pearl-points-breast .letter-pointed { position: absolute; bottom: 30%; left: 48%; width: 14px; height: 14px; background: #702243; border-radius: 2px; transform: rotate(5deg); box-shadow: 0 0 8px 2px rgba(112,34,67,0.4); animation: ppb-letter 4s ease-in-out infinite alternate; }
.scn-pearl-points-breast .figure-pearl-point { position: absolute; bottom: 20%; left: 30%; width: 18px; height: 36px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: ppb-pearl 7s ease-in-out infinite; }
.scn-pearl-points-breast .arm-pearl { position: absolute; bottom: 35%; left: 33%; width: 12px; height: 4px; background: #2a1a1a; border-radius: 50% 30% 30% 50%; transform-origin: right center; transform: rotate(-20deg) scaleX(1.5); animation: ppb-arm 5s ease-in-out infinite; }
@keyframes ppb-forest { 0% { filter: brightness(0.9) } 50% { filter: brightness(1.1) } 100% { filter: brightness(0.9) } }
@keyframes ppb-torso { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ppb-letter { 0% { box-shadow: 0 0 6px 1px rgba(112,34,67,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 14px 4px rgba(112,34,67,0.6); opacity: 1 } 100% { box-shadow: 0 0 6px 1px rgba(112,34,67,0.3); opacity: 0.8 } }
@keyframes ppb-pearl { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(6px) rotate(2deg) } 100% { transform: translateX(8px) rotate(-2deg) } }
@keyframes ppb-arm { 0% { transform: rotate(-20deg) scaleX(1.5) } 50% { transform: rotate(-10deg) scaleX(1.6) } 100% { transform: rotate(-20deg) scaleX(1.5) } }

/* Scene 1: dimmesdale-calls-hester-pearl */
.scn-dimmesdale-calls-hester-pearl {
  background:
    linear-gradient(180deg, #ffe8c0 0%, #c8a880 40%, #806850 100%),
    radial-gradient(ellipse at 50% 120%, #ffdd66 0%, transparent 60%);
}
.scn-dimmesdale-calls-hester-pearl .scaffold {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: dhp-scaffold 8s ease-in-out infinite;
}
.scn-dimmesdale-calls-hester-pearl .figure-dim {
  position: absolute; bottom: 18%; left: 48%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dhp-figure-main 4s ease-in-out infinite;
}
.scn-dimmesdale-calls-hester-pearl .figure-hester {
  position: absolute; bottom: 18%; left: 44%; width: 28px; height: 54px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dhp-figure-side 4s ease-in-out infinite alternate;
}
.scn-dimmesdale-calls-hester-pearl .figure-pearl {
  position: absolute; bottom: 18%; left: 52%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dhp-figure-pearl 3s ease-in-out infinite;
}
.scn-dimmesdale-calls-hester-pearl .figure-chilling {
  position: absolute; bottom: 18%; left: 20%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dhp-rush 5s ease-in-out infinite;
}
.scn-dimmesdale-calls-hester-pearl .sun-glow {
  position: absolute; top: 8%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffdd66 0%, #ffaa33 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,221,102,.6);
  animation: dhp-sun 12s ease-in-out infinite alternate;
}
.scn-dimmesdale-calls-hester-pearl .cloud-a {
  position: absolute; top: 18%; left: 10%; width: 100px; height: 24px;
  background: linear-gradient(180deg, rgba(255,240,200,.5) 0%, rgba(255,240,200,.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: dhp-drift-a 40s linear infinite;
}
.scn-dimmesdale-calls-hester-pearl .cloud-b {
  position: absolute; top: 25%; right: 5%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, rgba(255,240,200,.05) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: dhp-drift-b 50s linear infinite reverse;
}

@keyframes dhp-scaffold { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dhp-figure-main { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes dhp-figure-side { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-4px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes dhp-figure-pearl { 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); } }
@keyframes dhp-rush { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(40px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(80px) translateY(-1px) rotate(-3deg); } 75% { transform: translateX(120px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes dhp-sun { 0% { opacity: 0.85; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); box-shadow: 0 0 80px 30px rgba(255,221,102,.7); } 100% { opacity: 0.9; transform: scale(1); } }
@keyframes dhp-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes dhp-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* Scene 2: item-scarlet-letter-revealed */
.scn-item-scarlet-letter-revealed {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #b89878 40%, #7a6048 100%),
    radial-gradient(ellipse at 50% 0%, #ffe080 0%, transparent 50%);
}
.scn-item-scarlet-letter-revealed .scaffold {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 10%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: slr-scaffold 8s ease-in-out infinite;
}
.scn-item-scarlet-letter-revealed .figure-dim {
  position: absolute; bottom: 16%; left: 46%; width: 34px; height: 64px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slr-figure-main 4s ease-in-out infinite;
}
.scn-item-scarlet-letter-revealed .letter-glow {
  position: absolute; bottom: 32%; left: 48%; width: 14px; height: 18px;
  background: radial-gradient(circle, #c04040 0%, #8b3a3a 60%, transparent 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(192,64,64,.7), 0 0 40px 12px rgba(192,64,64,.4);
  animation: slr-letter 3s ease-in-out infinite alternate;
}
.scn-item-scarlet-letter-revealed .figure-hester {
  position: absolute; bottom: 16%; left: 42%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slr-figure-side 4s ease-in-out infinite alternate;
}
.scn-item-scarlet-letter-revealed .figure-pearl {
  position: absolute; bottom: 16%; left: 52%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slr-figure-pearl 3s ease-in-out infinite;
}
.scn-item-scarlet-letter-revealed .figure-chilling {
  position: absolute; bottom: 10%; left: 26%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slr-kneel 5s ease-in-out infinite;
}
.scn-item-scarlet-letter-revealed .ray-light {
  position: absolute; top: 5%; left: 45%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(255,230,150,.5) 0%, transparent 80%);
  clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%);
  filter: blur(8px);
  animation: slr-ray 6s ease-in-out infinite alternate;
}
.scn-item-scarlet-letter-revealed .cloud-spot {
  position: absolute; top: 12%; right: 8%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, rgba(255,240,200,.05) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: slr-cloud 45s linear infinite;
}

@keyframes slr-scaffold { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes slr-figure-main { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(1px) translateY(-3px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes slr-letter { 0% { opacity: 0.8; transform: scale(0.95); box-shadow: 0 0 15px 4px rgba(192,64,64,.6); } 50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 30px 10px rgba(192,64,64,.8), 0 0 50px 18px rgba(192,64,64,.5); } 100% { opacity: 0.85; transform: scale(1); box-shadow: 0 0 20px 6px rgba(192,64,64,.7); } }
@keyframes slr-figure-side { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-5px) translateY(-2px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes slr-figure-pearl { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(4px) translateY(1px) scale(1.03); } 100% { transform: translateX(0) translateY(0) scale(1); } }
@keyframes slr-kneel { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(10px) rotate(-5deg); } 50% { transform: translateY(15px) rotate(0); } 75% { transform: translateY(10px) rotate(5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes slr-ray { 0% { opacity: 0.4; transform: skewX(-2deg); } 50% { opacity: 0.8; transform: skewX(2deg); } 100% { opacity: 0.5; transform: skewX(-2deg); } }
@keyframes slr-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }

/* Scene 3: chillingworth-withers-end */
.scn-chillingworth-withers-end {
  background:
    linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 60%);
}
.scn-chillingworth-withers-end .sky-overcast {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #4a5a6a 60%, transparent 100%);
  animation: cwe-sky 14s ease-in-out infinite alternate;
}
.scn-chillingworth-withers-end .ground-mist {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 40% 60% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
  animation: cwe-ground 20s ease-in-out infinite alternate;
}
.scn-chillingworth-withers-end .figure-wither {
  position: absolute; bottom: 22%; left: 46%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cwe-wither 6s ease-in-out infinite;
}
.scn-chillingworth-withers-end .tree-withered {
  position: absolute; bottom: 30%; left: 25%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 2px;
  box-shadow: 0 0 0 2px #1a2a2a;
  animation: cwe-tree 25s ease-in-out infinite;
}
.scn-chillingworth-withers-end .spirit-pearl {
  position: absolute; bottom: 38%; left: 58%; width: 14px; height: 28px;
  background: linear-gradient(180deg, rgba(180,200,220,0.5) 0%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: cwe-spirit 10s ease-in-out infinite alternate;
}
.scn-chillingworth-withers-end .scarlet-ghost {
  position: absolute; bottom: 28%; left: 48%; width: 10px; height: 12px;
  background: radial-gradient(circle, #a04040 0%, transparent 70%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 16px 4px rgba(160,64,64,.5);
  animation: cwe-ghost 7s ease-in-out infinite;
}

@keyframes cwe-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes cwe-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes cwe-wither { 0% { transform: translateY(0) scale(1) rotate(0); } 50% { transform: translateY(6px) scale(0.95) rotate(3deg); } 100% { transform: translateY(0) scale(1) rotate(0); } }
@keyframes cwe-tree { 0% { transform: rotate(0); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(0); } }
@keyframes cwe-spirit { 0% { transform: translateY(0) translateX(0) scale(0.9); opacity: 0.3; } 50% { transform: translateY(-10px) translateX(5px) scale(1.1); opacity: 0.7; } 100% { transform: translateY(0) translateX(0) scale(0.9); opacity: 0.3; } }
@keyframes cwe-ghost { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 0.9; transform: scale(1.2); box-shadow: 0 0 24px 8px rgba(160,64,64,.6); } 100% { opacity: 0.4; transform: scale(0.9); } }

/* scene 1: item-letter-refastened */
.scn-item-letter-refastened {
  background:
    linear-gradient(180deg, #fce4c8 0%, #e8c99b 40%, #b38b5a 100%),
    radial-gradient(ellipse at 40% 60%, #d4a86a 0%, transparent 60%);
}
.scn-item-letter-refastened .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fef9e7 0%, #f5d6a8 100%);
  animation: ilr-sky 15s ease-in-out infinite alternate;
}
.scn-item-letter-refastened .bg-wood {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 30% 50% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
  animation: ilr-wood 12s ease-in-out infinite;
}
.scn-item-letter-refastened .hester {
  position: absolute; bottom: 15%; left: 40%; width: 50px; height: 100px;
  background: radial-gradient(ellipse at 30% 40%, #3a2a1e 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ilr-hester 4s ease-in-out infinite alternate;
}
.scn-item-letter-refastened .pearl {
  position: absolute; bottom: 10%; left: 55%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 40% 50%, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ilr-pearl 3s ease-in-out infinite;
}
.scn-item-letter-refastened .letter {
  position: absolute; bottom: 42%; left: 43%; width: 14px; height: 10px;
  background: radial-gradient(ellipse, #d4a86a 0%, #b38b5a 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 6px rgba(212,168,106,.6), 0 0 30px 10px rgba(212,168,106,.3);
  animation: ilr-letter 2s ease-in-out infinite alternate;
}
.scn-item-letter-refastened .tree-left {
  position: absolute; bottom: 15%; left: 5%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%;
  filter: blur(2px);
  animation: ilr-tree 20s linear infinite;
}
.scn-item-letter-refastened .tree-right {
  position: absolute; bottom: 10%; right: 8%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  filter: blur(3px);
  animation: ilr-tree 25s linear infinite reverse;
}
@keyframes ilr-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes ilr-wood { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ilr-hester { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(-1px) translateY(0) rotate(0); } }
@keyframes ilr-pearl { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(8px) translateY(-2px) rotate(5deg); } 50% { transform: translateX(12px) translateY(0) rotate(0); } 75% { transform: translateX(8px) translateY(-2px) rotate(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ilr-letter { 0% { opacity: .7; box-shadow: 0 0 10px 4px rgba(212,168,106,.4); } 100% { opacity: 1; box-shadow: 0 0 24px 8px rgba(212,168,106,.8); } }
@keyframes ilr-tree { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }

/* scene 2: dimmesdale-town-altered */
.scn-dimmesdale-town-altered {
  background:
    linear-gradient(180deg, #5b6d7a 0%, #4a5a6a 40%, #2c3a4a 100%),
    radial-gradient(ellipse at 60% 20%, #6a7a8a 0%, transparent 70%);
}
.scn-dimmesdale-town-altered .bg-gloom {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, transparent 100%);
  animation: dta-gloom 20s ease-in-out infinite alternate;
}
.scn-dimmesdale-town-altered .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
  animation: dta-street 18s ease-in-out infinite;
}
.scn-dimmesdale-town-altered .house-left {
  position: absolute; bottom: 25%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
  transform: skewY(-2deg);
  animation: dta-house 8s ease-in-out infinite alternate;
}
.scn-dimmesdale-town-altered .house-right {
  position: absolute; bottom: 20%; right: 15%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1008 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  transform: skewY(3deg);
  animation: dta-house 10s ease-in-out infinite alternate;
}
.scn-dimmesdale-town-altered .dimmesdale {
  position: absolute; bottom: 18%; left: 35%; width: 24px; height: 70px;
  background: radial-gradient(ellipse at 30% 40%, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dta-walk 4s ease-in-out infinite;
}
.scn-dimmesdale-town-altered .hibbins {
  position: absolute; bottom: 20%; right: 30%; width: 20px; height: 50px;
  background: radial-gradient(ellipse at 30% 40%, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  opacity: .7;
  transform-origin: bottom center;
  animation: dta-hibbins 5s ease-in-out infinite alternate;
}
@keyframes dta-gloom { 0% { opacity: .8; } 50% { opacity: .6; } 100% { opacity: .9; } }
@keyframes dta-street { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dta-house { 0% { transform: skewY(-2deg) translateY(0); } 50% { transform: skewY(-1deg) translateY(-3px); } 100% { transform: skewY(-2deg) translateY(0); } }
@keyframes dta-walk { 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 dta-hibbins { 0% { transform: translateX(0) translateY(0) rotate(0); opacity: .6; } 50% { transform: translateX(-4px) translateY(-2px) rotate(3deg); opacity: .9; } 100% { transform: translateX(0) translateY(0) rotate(0); opacity: .7; } }

/* scene 3: election-sermon-feverish */
.scn-election-sermon-feverish {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 70% 30%, #4a4a5a 0%, transparent 60%);
}
.scn-election-sermon-feverish .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: esf-room 20s ease-in-out infinite alternate;
}
.scn-election-sermon-feverish .desk {
  position: absolute; bottom: 20%; left: 25%; width: 80px; height: 15px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,.3);
  animation: esf-desk 10s ease-in-out infinite;
}
.scn-election-sermon-feverish .candle {
  position: absolute; bottom: 33%; left: 35%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffd680 0%, #c08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 10px rgba(255,214,128,.6), 0 0 40px 20px rgba(255,214,128,.3);
  animation: esf-candle 2s ease-in-out infinite alternate;
}
.scn-election-sermon-feverish .paper-burn {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #ff8840 0%, #cc4400 70%);
  border-radius: 4px;
  box-shadow: 0 0 30px 15px rgba(255,136,64,.5);
  animation: esf-burn 6s ease-in-out infinite;
}
.scn-election-sermon-feverish .dimmesdale-write {
  position: absolute; bottom: 18%; left: 20%; width: 22px; height: 65px;
  background: radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 25% 25% / 50% 50% 25% 25%;
  transform-origin: bottom center;
  animation: esf-write 3s ease-in-out infinite;
}
.scn-election-sermon-feverish .window-sunrise {
  position: absolute; top: 10%; right: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #ffe0a0 0%, #ffcc80 60%, #ffb040 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,.3), 0 0 40px 20px rgba(255,200,100,.5);
  animation: esf-sunrise 15s ease-in-out infinite alternate;
}
@keyframes esf-room { 0% { opacity: .9; } 50% { opacity: .7; } 100% { opacity: 1; } }
@keyframes esf-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes esf-candle { 0% { transform: scaleY(1) translateY(0); opacity: .9; } 50% { transform: scaleY(1.05) translateY(-1px); opacity: 1; } 100% { transform: scaleY(.95) translateY(0); opacity: .9; } }
@keyframes esf-burn { 0% { transform: scale(1) rotate(0); opacity: .8; box-shadow: 0 0 20px 10px rgba(255,136,64,.4); } 50% { transform: scale(1.1) rotate(5deg); opacity: 1; box-shadow: 0 0 40px 20px rgba(255,136,64,.7); } 100% { transform: scale(1) rotate(0); opacity: .8; } }
@keyframes esf-write { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(5px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes esf-sunrise { 0% { opacity: .6; box-shadow: inset 0 0 10px rgba(255,255,255,.2), 0 0 20px 10px rgba(255,200,100,.3); } 100% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,255,.5), 0 0 60px 30px rgba(255,200,100,.6); } }

/* scene 4: holiday-merriment */
.scn-holiday-merriment {
  background:
    linear-gradient(180deg, #fef9e7 0%, #f5d6a8 40%, #c99b6a 100%),
    radial-gradient(ellipse at 50% 0, #fff0cc 0%, transparent 70%);
}
.scn-holiday-merriment .sky-bright {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fffce8 0%, #fef0c8 100%);
  animation: hm-sky 15s ease-in-out infinite alternate;
}
.scn-holiday-merriment .ground-plaza {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #c89b6a 0%, #a87a4a 100%);
  border-radius: 20% 30% 0 0 / 15% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: hm-ground 20s ease-in-out infinite;
}
.scn-holiday-merriment .platform {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: hm-platform 12s ease-in-out infinite;
}
.scn-holiday-merriment .wrestlers-pair {
  position: absolute; bottom: 30%; left: 45%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hm-wrestle 2s ease-in-out infinite;
}
.scn-holiday-merriment .sailor-stand {
  position: absolute; bottom: 22%; right: 20%; width: 25px; height: 55px;
  background: radial-gradient(ellipse at 30% 40%, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: hm-sailor 5s ease-in-out infinite alternate;
}
.scn-holiday-merriment .spectator-crowd {
  position: absolute; bottom: 18%; left: 5%; width: 100px; height: 30px;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 6px, #2a1e12 6px, #2a1e12 12px);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  filter: blur(1px);
  opacity: .8;
  animation: hm-crowd 8s ease-in-out infinite;
}
@keyframes hm-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes hm-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hm-platform { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-3px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes hm-wrestle { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(6px) translateY(-3px) rotate(8deg); } 50% { transform: translateX(10px) translateY(0) rotate(-5deg); } 75% { transform: translateX(6px) translateY(-3px) rotate(8deg); } 100% { transform: translateX(0) translateY(0) rotate(-5deg); } }
@keyframes hm-sailor { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes hm-crowd { 0% { transform: scaleX(1); opacity: .8; } 50% { transform: scaleX(1.02); opacity: .9; } 100% { transform: scaleX(1); opacity: .8; } }

.scn-boston-burial-ground {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 30%, #5a5a6a 0%, transparent 70%);
}
.scn-boston-burial-ground .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 60%, #2a2a3a 100%);
  animation: bb-sky 16s ease-in-out infinite alternate;
}
.scn-boston-burial-ground .jail-wall {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 80%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-boston-burial-ground .door {
  position: absolute; bottom: 22%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: bb-door 8s ease-in-out infinite;
}
.scn-boston-burial-ground .ironwork {
  position: absolute; bottom: 30%; left: 50%; width: 70px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: bb-iron 5s ease-in-out infinite alternate;
}
.scn-boston-burial-ground .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: bb-grass 12s ease-in-out infinite alternate;
}
.scn-boston-burial-ground .cloud-a {
  position: absolute; top: 10%; left: 10%; width: 90px; height: 22px;
  background: linear-gradient(180deg, rgba(160,160,170,0.5) 0%, rgba(120,120,130,0.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bb-cloud-a 40s linear infinite;
}
.scn-boston-burial-ground .cloud-b {
  position: absolute; top: 18%; right: 8%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(140,140,150,0.4) 0%, rgba(100,100,110,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: bb-cloud-b 55s linear infinite reverse;
}
@keyframes bb-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes bb-door {
  0%, 100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes bb-iron {
  0% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes bb-grass {
  0% { transform: translateY(0) skewX(-2deg); }
  50% { transform: translateY(-4px) skewX(2deg); }
  100% { transform: translateY(0) skewX(-1deg); }
}
@keyframes bb-cloud-a {
  0% { transform: translateX(-50px); }
  100% { transform: translateX(120vw); }
}
@keyframes bb-cloud-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-130vw); }
}

/* --- Rust-Heavy-Ironwork --- */
.scn-rust-heavy-ironwork {
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 40%, #2a2a2a 100%), radial-gradient(ellipse at 50% 60%, #3a3a3a 0%, transparent 80%);
}
.scn-rust-heavy-ironwork .sky-top {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  animation: rh-sky 20s ease-in-out infinite alternate;
}
.scn-rust-heavy-ironwork .door {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 80%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 80%, #2a1a0a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
  animation: rh-door 9s ease-in-out infinite;
}
.scn-rust-heavy-ironwork .iron-left {
  position: absolute; bottom: 20%; left: 15%; width: 12px; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #5a4a3a 100%);
  border-radius: 6px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
  animation: rh-iron 6s ease-in-out infinite alternate;
}
.scn-rust-heavy-ironwork .iron-right {
  position: absolute; bottom: 20%; right: 15%; width: 12px; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #5a4a3a 100%);
  border-radius: 6px;
  box-shadow: -2px 0 4px rgba(0,0,0,0.5);
  transform: rotate(10deg);
  animation: rh-iron 6s ease-in-out infinite alternate-reverse;
}
.scn-rust-heavy-ironwork .rust-plate {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #8a6a3a 0%, #6a4a2a 50%, #8a6a3a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: rh-rust 4s ease-in-out infinite alternate;
}
.scn-rust-heavy-ironwork .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 90% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: rh-grass 10s ease-in-out infinite alternate;
}
@keyframes rh-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes rh-door {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
}
@keyframes rh-iron {
  0% { transform: rotate(-12deg) scaleX(1); }
  100% { transform: rotate(12deg) scaleX(1.02); }
}
@keyframes rh-rust {
  0% { background: linear-gradient(135deg, #8a6a3a, #6a4a2a); }
  50% { background: linear-gradient(135deg, #9a7a4a, #7a5a3a); }
  100% { background: linear-gradient(135deg, #7a5a2a, #6a4a1a); }
}
@keyframes rh-grass {
  0% { transform: translateY(0) skewX(-3deg); }
  50% { transform: translateY(-3px) skewX(3deg); }
  100% { transform: translateY(0) skewX(-2deg); }
}

/* --- Item-Wild-Rosebush-Threshold --- */
.scn-item-wild-rosebush-threshold {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 40%, #d4c0a8 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 70%);
}
.scn-item-wild-rosebush-threshold .wall {
  position: absolute; left: 0; top: 0; bottom: 0; width: 40%;
  background: linear-gradient(180deg, #d4c0a8 0%, #c4b098 100%);
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.15);
}
.scn-item-wild-rosebush-threshold .door-side {
  position: absolute; left: 38%; top: 20%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4%;
  box-shadow: 2px 0 10px rgba(0,0,0,0.3);
}
.scn-item-wild-rosebush-threshold .rose-stem {
  position: absolute; bottom: 15%; left: 45%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%);
  border-radius: 3px;
  transform-origin: bottom;
  animation: wr-stem 5s ease-in-out infinite alternate;
}
.scn-item-wild-rosebush-threshold .blossom-a {
  position: absolute; bottom: 48%; left: 44%; width: 20px; height: 18px;
  background: radial-gradient(ellipse, #d4828a 0%, #e6a8ad 50%, #f5c0c0 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 8px rgba(180,80,80,0.3);
  animation: wr-blossom 4s ease-in-out infinite;
}
.scn-item-wild-rosebush-threshold .blossom-b {
  position: absolute; bottom: 42%; left: 48%; width: 16px; height: 14px;
  background: radial-gradient(ellipse, #d4828a 0%, #e6a8ad 60%, #f5c0c0 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(180,80,80,0.3);
  animation: wr-blossom 5s ease-in-out infinite reverse;
  animation-delay: -2s;
}
.scn-item-wild-rosebush-threshold .leaf {
  position: absolute; bottom: 30%; left: 46%; width: 12px; height: 8px;
  background: radial-gradient(ellipse, #5a8a3a 0%, #3a6a2a 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: wr-leaf 3s ease-in-out infinite alternate;
}
.scn-item-wild-rosebush-threshold .sunbeam {
  position: absolute; top: 0; right: 0; bottom: 0; left: 50%;
  background: linear-gradient(135deg, rgba(255,240,200,0.15) 0%, transparent 60%);
  animation: wr-sunbeam 12s ease-in-out infinite alternate;
}
@keyframes wr-stem {
  0% { transform: rotate(-2deg); }
  100% { transform: rotate(2deg); }
}
@keyframes wr-blossom {
  0%, 100% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.05); }
}
@keyframes wr-leaf {
  0% { transform: rotate(-20deg) scaleX(1); }
  100% { transform: rotate(10deg) scaleX(0.95); }
}
@keyframes wr-sunbeam {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.7; transform: translateX(20px); }
  100% { opacity: 0.4; transform: translateX(-10px); }
}

/* --- Pluck-Rose-Present --- */
.scn-pluck-rose-present {
  background: linear-gradient(180deg, #fdeac8 0%, #ecd8b8 40%, #dcc8a8 100%), radial-gradient(ellipse at 50% 20%, #fff4dc 0%, transparent 70%);
}
.scn-pluck-rose-present .bg-glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,220,160,0.2) 0%, transparent 60%);
  animation: pr-glow 8s ease-in-out infinite alternate;
}
.scn-pluck-rose-present .hand {
  position: absolute; bottom: 20%; left: 35%; width: 30px; 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: pr-hand 5s ease-in-out infinite;
}
.scn-pluck-rose-present .stem {
  position: absolute; bottom: 25%; left: 50%; width: 5px; height: 60px;
  background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%);
  border-radius: 2px;
  transform-origin: bottom;
  animation: pr-stem 4s ease-in-out infinite alternate;
}
.scn-pluck-rose-present .rose-blossom {
  position: absolute; bottom: 50%; left: 49%; width: 24px; height: 22px;
  background: radial-gradient(ellipse at 40% 30%, #d4828a 0%, #e6a8ad 50%, #f0c0c0 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 12px rgba(180,80,80,0.3);
  animation: pr-blossom 3s ease-in-out infinite;
}
.scn-pluck-rose-present .leaf {
  position: absolute; bottom: 35%; left: 48%; width: 14px; height: 10px;
  background: radial-gradient(ellipse, #5a8a3a 0%, #3a6a2a 100%);
  border-radius: 50%;
  transform: rotate(-30deg);
  animation: pr-leaf 4s ease-in-out infinite alternate;
}
.scn-pluck-rose-present .petal-falling {
  position: absolute; top: 30%; left: 55%; width: 6px; height: 5px;
  background: radial-gradient(ellipse, #e6a8ad 0%, #d4828a 100%);
  border-radius: 50%;
  animation: pr-petal 6s ease-in-out infinite;
  animation-delay: -2s;
}
@keyframes pr-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes pr-hand {
  0% { transform: translate(0, 0) rotate(-5deg); }
  25% { transform: translate(10px, -8px) rotate(0deg); }
  50% { transform: translate(20px, -16px) rotate(5deg); }
  75% { transform: translate(10px, -8px) rotate(0deg); }
  100% { transform: translate(0, 0) rotate(-5deg); }
}
@keyframes pr-stem {
  0% { transform: rotate(-3deg); }
  100% { transform: rotate(3deg); }
}
@keyframes pr-blossom {
  0%, 100% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-10deg) scale(1.08); }
}
@keyframes pr-leaf {
  0% { transform: rotate(-30deg) scaleX(1); }
  100% { transform: rotate(10deg) scaleX(0.9); }
}
@keyframes pr-petal {
  0% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.8; }
  50% { transform: translateY(40px) rotate(180deg) scale(0.8); opacity: 0.5; }
  100% { transform: translateY(80px) rotate(360deg) scale(0.4); opacity: 0; }
}

/* shore-confrontation – tense sunlit shore */
.scn-shore-confrontation { background: linear-gradient(180deg, #f9e9c8 0%, #d9b77a 30%, #9a7b4d 70%, #4a3a28 100%), radial-gradient(ellipse at 70% 20%, #fff9e6 0%, transparent 60%); }
.scn-shore-confrontation .sun { position:absolute; top:6%; right:18%; width:80px; height:80px; background: radial-gradient(circle, #ffe0a0 0%, #f0c050 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #f0c050, 0 0 120px 40px rgba(240,192,80,.4); animation: sc1-sun-pulse 8s ease-in-out infinite; }
.scn-shore-confrontation .sky-wash { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #fef8e0 0%, #f5d79c 50%, #cbaa6a 100%); opacity:.7; animation: sc1-sky-shimmer 12s ease-in-out infinite alternate; }
.scn-shore-confrontation .shoreline { position:absolute; bottom:30%; left:0; right:0; height:18%; background: linear-gradient(180deg, #8c6b3e 0%, #c89a5c 30%, #d4a96a 60%, #b08044 100%); border-radius: 70% 30% 0 0 / 90% 40% 0 0; box-shadow: inset 0 -20px 40px rgba(0,0,0,.3); animation: sc1-shore-wave 6s ease-in-out infinite; }
.scn-shore-confrontation .rocks { position:absolute; bottom:32%; left:12%; width:40px; height:28px; background: linear-gradient(135deg, #5a4a3a, #3a2a1a); border-radius: 40% 60% 30% 70% / 50% 70% 30% 50%; box-shadow: 2px 4px 8px rgba(0,0,0,.5); transform: rotate(-5deg); }
.scn-shore-confrontation .tidepool { position:absolute; bottom:35%; left:48%; width:120px; height:20px; background: linear-gradient(90deg, #5f9ea0 0%, #7ba8a0 40%, #a0c0b0 100%); border-radius: 50%; box-shadow: inset 0 4px 8px rgba(0,0,0,.2), 0 6px 12px rgba(0,0,0,.3); animation: sc1-pool-gleam 5s ease-in-out infinite alternate; }
.scn-shore-confrontation .pearl-figure { position:absolute; bottom:30%; left:44%; width:14px; height:28px; background: linear-gradient(180deg, #d4a373 0%, #b8825a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sc1-pearl-bend 3s ease-in-out infinite; }
.scn-shore-confrontation .hester-silhouette { position:absolute; bottom:28%; left:25%; width:22px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 45% 40% 40% / 60% 55% 40% 40%; box-shadow: -4px 0 8px rgba(0,0,0,.5); transform-origin: bottom; animation: sc1-hester-shift 7s ease-in-out infinite; }
.scn-shore-confrontation .chillingworth-silhouette { position:absolute; bottom:28%; left:58%; width:20px; height:48px; background: linear-gradient(180deg, #4a3a28 0%, #2a1a0a 100%); border-radius: 40% 50% 35% 45% / 55% 60% 40% 40%; box-shadow: 4px 0 8px rgba(0,0,0,.5); transform-origin: bottom; animation: sc1-chill-recoil 9s ease-in-out infinite; }
.scn-shore-confrontation .shadow-stroke { position:absolute; bottom:26%; left:28%; right:20%; height:2px; background: rgba(0,0,0,.3); filter: blur(3px); animation: sc1-shadow-crawl 11s linear infinite; }
@keyframes sc1-sun-pulse { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.04); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes sc1-sky-shimmer { 0% { opacity:.65 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes sc1-shore-wave { 0% { border-radius: 70% 30% 0 0 / 90% 40% 0 0 } 50% { border-radius: 75% 25% 0 0 / 85% 50% 0 0; transform: scaleY(1.02) } 100% { border-radius: 70% 30% 0 0 / 90% 40% 0 0 } }
@keyframes sc1-pool-gleam { 0% { opacity:.6; box-shadow: inset 0 4px 8px rgba(0,0,0,.2), 0 6px 12px rgba(0,0,0,.3) } 50% { opacity:.9; box-shadow: inset 0 4px 12px rgba(255,255,200,.4), 0 6px 18px rgba(0,0,0,.2) } 100% { opacity:.7; box-shadow: inset 0 4px 8px rgba(0,0,0,.2), 0 6px 12px rgba(0,0,0,.3) } }
@keyframes sc1-pearl-bend { 0% { transform: rotate(3deg) translateY(0) } 25% { transform: rotate(-2deg) translateY(-2px) } 50% { transform: rotate(4deg) translateY(0) } 75% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes sc1-hester-shift { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc1-chill-recoil { 0% { transform: translateX(0) rotate(0) scale(1) } 30% { transform: translateX(-6px) rotate(4deg) scale(.95) } 70% { transform: translateX(2px) rotate(-2deg) scale(1.02) } 100% { transform: translateX(0) rotate(0) scale(1) } }
@keyframes sc1-shadow-crawl { 0% { left: 28%; right: 20%; opacity:.3 } 50% { left: 30%; right: 22%; opacity:.5 } 100% { left: 28%; right: 20%; opacity:.3 } }

/* devil-transformation – dark sunlit with satanic figure */
.scn-devil-transformation { background: linear-gradient(180deg, #4a3020 0%, #7a5030 20%, #b08050 45%, #d0a060 70%, #f0d090 100%), radial-gradient(ellipse at 50% 80%, #b06030 0%, transparent 60%); }
.scn-devil-transformation .bg-blaze { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, #ff6a20 0%, transparent 50%), radial-gradient(ellipse at 70% 60%, #ff8a30 0%, transparent 40%); opacity:.3; animation: sc2-blaze-flicker 4s ease-in-out infinite alternate; }
.scn-devil-transformation .sun-disc { position:absolute; top:8%; right:12%; width:100px; height:100px; background: radial-gradient(circle, #ffe080 0%, #f0a030 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px #f0a030, 0 0 160px 60px rgba(240,160,48,.3); animation: sc2-sun-flare 7s ease-in-out infinite; }
.scn-devil-transformation .ground-scorch { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2010 0%, #5a3020 50%, #2a1000 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-devil-transformation .devil-body { position:absolute; bottom:25%; left:50%; width:50px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2010 0%, #2a0800 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: sc2-devil-rises 10s ease-in-out infinite; }
.scn-devil-transformation .devil-horns { position:absolute; bottom:60%; left:50%; width:4px; height:20px; margin-left:-2px; background: linear-gradient(180deg, #1a0800 0%, #3a1800 100%); border-radius: 50% / 80% 80% 20% 20%; box-shadow: 0 0 4px rgba(200,80,0,.3); transform-origin: bottom; animation: sc2-horn-twitch 3s ease-in-out infinite alternate; }
.scn-devil-transformation .devil-wings { position:absolute; bottom:35%; left:40%; width:60px; height:70px; background: radial-gradient(ellipse at 40% 50%, #5a2010 0%, transparent 70%); border-radius: 50% 50% 10% 10%; filter: blur(2px); animation: sc2-wing-flap 5s ease-in-out infinite alternate; }
.scn-devil-transformation .shadow-cloud { position:absolute; top:10%; left:20%; width:200px; height:60px; background: radial-gradient(ellipse, rgba(60,20,10,.5) 0%, transparent 70%); filter: blur(10px); animation: sc2-cloud-drift 40s linear infinite; }
.scn-devil-transformation .ember-drip { position:absolute; bottom:22%; left:48%; width:8px; height:12px; background: radial-gradient(circle, #ff6a20 0%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #ff6a20; animation: sc2-ember-fall 2s ease-in-out infinite; }
@keyframes sc2-blaze-flicker { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.45; transform: scale(1.03) } 100% { opacity:.25; transform: scale(1) } }
@keyframes sc2-sun-flare { 0% { transform: scale(1); box-shadow: 0 0 80px 30px #f0a030, 0 0 160px 60px rgba(240,160,48,.3) } 50% { transform: scale(1.1); box-shadow: 0 0 100px 40px #ffb040, 0 0 200px 80px rgba(255,176,64,.5) } 100% { transform: scale(1); box-shadow: 0 0 80px 30px #f0a030, 0 0 160px 60px rgba(240,160,48,.3) } }
@keyframes sc2-devil-rises { 0% { transform: translateX(-50%) scaleY(.95); opacity:.8 } 50% { transform: translateX(-50%) scaleY(1.05); opacity:1 } 100% { transform: translateX(-50%) scaleY(.95); opacity:.8 } }
@keyframes sc2-horn-twitch { 0% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-5deg) } }
@keyframes sc2-wing-flap { 0% { transform: rotate(-10deg) scaleX(1) } 25% { transform: rotate(5deg) scaleX(1.2) } 50% { transform: rotate(-5deg) scaleX(1) } 75% { transform: rotate(10deg) scaleX(1.1) } 100% { transform: rotate(-10deg) scaleX(1) } }
@keyframes sc2-cloud-drift { 0% { transform: translateX(-100px) } 100% { transform: translateX(120vw) } }
@keyframes sc2-ember-fall { 0% { opacity:1; transform: translateY(0) scale(1) } 50% { opacity:.6; transform: translateY(6px) scale(.8) } 100% { opacity:0; transform: translateY(12px) scale(.5) } }

/* hester-blames-herself – dark sunlit barren */
.scn-hester-blames-herself { background: linear-gradient(180deg, #b09070 0%, #8a6a4a 30%, #5a3a2a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 100%, #7a5a3a 0%, transparent 50%); }
.scn-hester-blames-herself .sky-pale { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #e0d0b0 0%, #b09070 100%); opacity:.5; animation: sc3-sky-fade 15s ease-in-out infinite alternate; }
.scn-hester-blames-herself .ground-barren { position:absolute; bottom:25%; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a4a30 0%, #3a2a1a 100%); border-radius: 20% 80% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.4); }
.scn-hester-blames-herself .hester-figure { position:absolute; bottom:28%; left:28%; width:24px; height:55px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1000 100%); border-radius: 50% 45% 40% 40% / 55% 50% 40% 40%; box-shadow: -2px 0 6px rgba(0,0,0,.4); transform-origin: bottom; animation: sc3-hester-sway 8s ease-in-out infinite; }
.scn-hester-blames-herself .chillingworth-back { position:absolute; bottom:25%; left:65%; width:18px; height:42px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%); border-radius: 40% 50% 30% 40% / 50% 60% 40% 40%; transform-origin: center; animation: sc3-chill-retreat 12s ease-in-out infinite; }
.scn-hester-blames-herself .herb-scatter { position:absolute; bottom:25%; left:35%; right:10%; height:15px; background: repeating-linear-gradient(90deg, #5a4a30 0px, #3a2a1a 4px, #6a5a3a 8px); border-radius: 2px; filter: blur(1px); animation: sc3-herb-wilt 7s ease-in-out infinite alternate; }
.scn-hester-blames-herself .blight-shadow { position:absolute; bottom:20%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 100%, #1a1000 0%, transparent 70%); opacity:.4; animation: sc3-blight-spread 20s linear infinite; }
.scn-hester-blames-herself .tear-drop { position:absolute; bottom:55%; left:32%; width:6px; height:10px; background: radial-gradient(circle at 50% 20%, #c0a8a0 0%, transparent 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: sc3-tear-fall 4s ease-in-out infinite; }
@keyframes sc3-sky-fade { 0% { opacity:.45 } 50% { opacity:.65 } 100% { opacity:.5 } }
@keyframes sc3-hester-sway { 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 sc3-chill-retreat { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-20px) scale(.9); opacity:.6 } 100% { transform: translateX(0) scale(1) } }
@keyframes sc3-herb-wilt { 0% { opacity:.6 } 50% { opacity:.4 } 100% { opacity:.7 } }
@keyframes sc3-blight-spread { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.5; transform: scale(1.05) } 100% { opacity:.3; transform: scale(1) } }
@keyframes sc3-tear-fall { 0% { transform: translateY(-10px) scale(1); opacity:0 } 30% { opacity:1 } 70% { opacity:1 } 100% { transform: translateY(10px) scale(.8); opacity:0 } }

/* item-seaweed-letter – tense sunlit beach play */
.scn-item-seaweed-letter { background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 30%, #a08060 70%, #605040 100%), radial-gradient(ellipse at 60% 30%, #fff0d0 0%, transparent 50%); }
.scn-item-seaweed-letter .sky-warm { position:absolute; top:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #fef5e0 0%, #f5d79c 50%, #d4b078 100%); animation: sc4-sky-glide 10s ease-in-out infinite alternate; }
.scn-item-seaweed-letter .water-edge { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6f8f7f 0%, #9fb8a8 40%, #b0c8b8 100%); border-radius: 40% 60% 0 0 / 70% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); animation: sc4-water-lap 6s ease-in-out infinite; }
.scn-item-seaweed-letter .sand-flat { position:absolute; bottom:20%; left:0; right:0; height:25%; background: linear-gradient(180deg, #c8a878 0%, #b09060 50%, #90704a 100%); border-radius: 30% 70% 0 0 / 50% 40% 0 0; }
.scn-item-seaweed-letter .pearl-child { position:absolute; bottom:28%; left:40%; width:16px; height:32px; background: linear-gradient(180deg, #d4a373 0%, #b8825a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sc4-pearl-hop 3s ease-in-out infinite; }
.scn-item-seaweed-letter .seaweed-a { position:absolute; bottom:28%; left:52%; width:30px; height:30px; background: radial-gradient(circle at 50% 30%, #4a7a4a 0%, #2a5a2a 60%, transparent 100%); border-radius: 10% 90% 50% 50% / 30% 70% 30% 70%; transform: rotate(-15deg); box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: sc4-seaweed-shimmy 5s ease-in-out infinite alternate; }
.scn-item-seaweed-letter .boat-bark { position:absolute; bottom:32%; left:30%; width:20px; height:8px; background: linear-gradient(90deg, #6a4a30, #4a2a1a 50%, #6a4a30); border-radius: 20% 80% 30% 70% / 50% 50% 50% 50%; transform: rotate(10deg); animation: sc4-boat-rock 4s ease-in-out infinite; }
.scn-item-seaweed-letter .bird-wounded { position:absolute; bottom:38%; left:55%; width:20px; height:14px; background: radial-gradient(ellipse at 30% 50%, #7a5a40 0%, #4a2a20 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-20deg); animation: sc4-bird-twitch 2s ease-in-out infinite alternate; }
.scn-item-seaweed-letter .foam-spray { position:absolute; bottom:30%; left:20%; right:30%; height:4px; background: rgba(255,255,255,.4); filter: blur(2px); animation: sc4-foam-dance 7s linear infinite; }
@keyframes sc4-sky-glide { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes sc4-water-lap { 0% { border-radius: 40% 60% 0 0 / 70% 50% 0 0 } 50% { border-radius: 45% 55% 0 0 / 75% 50% 0 0; transform: scaleY(1.03) } 100% { border-radius: 40% 60% 0 0 / 70% 50% 0 0 } }
@keyframes sc4-pearl-hop { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes sc4-seaweed-shimmy { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes sc4-boat-rock { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes sc4-bird-twitch { 0% { transform: rotate(-20deg) scale(1) } 100% { transform: rotate(-16deg) scale(1.05) } }
@keyframes sc4-foam-dance { 0% { left: 20%; right: 30%; opacity:.4 } 50% { left: 22%; right: 32%; opacity:.6 } 100% { left: 20%; right: 30%; opacity:.4 } }

/* ===== item-rose-bush-threshold-2 ===== */
.scn-item-rose-bush-threshold-2 {
  background:
    linear-gradient(180deg, #f9d3a0 0%, #e8b87a 40%, #d49a5e 100%),
    radial-gradient(ellipse at 20% 30%, #ffe5b0 0%, transparent 60%);
}
.scn-item-rose-bush-threshold-2 .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, transparent 100%);
  animation: rb1-sky 8s ease-in-out infinite alternate;
}
.scn-item-rose-bush-threshold-2 .door {
  position:absolute; bottom:20%; left:10%; width:35%; height:55%;
  background: linear-gradient(135deg, #6b4a2e 0%, #4a3220 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: rb1-door 12s ease-in-out infinite;
}
.scn-item-rose-bush-threshold-2 .threshold {
  position:absolute; bottom:20%; left:0; right:0; height:4px;
  background: #3a2a1a; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-item-rose-bush-threshold-2 .rose-stem {
  position:absolute; bottom:24%; left:58%; width:6px; height:40%;
  background: linear-gradient(90deg, #3a6a2a 0%, #2a4a1a 100%);
  border-radius: 50%; transform-origin: bottom; animation: rb1-stem 6s ease-in-out infinite;
}
.scn-item-rose-bush-threshold-2 .rose-leaves {
  position:absolute; bottom:35%; left:52%; width:40px; height:20px;
  background: radial-gradient(circle, #5a8a3a 0%, #2a5a1a 100%);
  border-radius: 50% 0 50% 0; transform: rotate(-20deg); animation: rb1-leaves 9s ease-in-out infinite alternate;
}
.scn-item-rose-bush-threshold-2 .rose-blossom {
  position:absolute; bottom:52%; left:56%; width:24px; height:24px;
  background: radial-gradient(circle, #e9b0a0 0%, #c8553d 70%);
  border-radius: 50%; box-shadow: 0 0 16px 4px rgba(200,85,61,0.5);
  animation: rb1-blossom 4s ease-in-out infinite alternate;
}
.scn-item-rose-bush-threshold-2 .sun-ray {
  position:absolute; top:5%; left:20%; width:80%; height:60%;
  background: linear-gradient(135deg, rgba(255,230,180,0.3) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%);
  animation: rb1-ray 20s linear infinite alternate;
}
.scn-item-rose-bush-threshold-2 .shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: rb1-shadow 10s ease-in-out infinite alternate;
}
@keyframes rb1-sky     { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes rb1-door    { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(1.01); } }
@keyframes rb1-stem    { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-1deg); } }
@keyframes rb1-leaves  { 0% { transform:rotate(-25deg) scale(1); } 50% { transform:rotate(-15deg) scale(1.05); } 100% { transform:rotate(-20deg) scale(1); } }
@keyframes rb1-blossom { 0% { transform:scale(1) rotate(0deg); box-shadow:0 0 12px 3px rgba(200,85,61,0.4); } 50% { transform:scale(1.1) rotate(10deg); box-shadow:0 0 24px 8px rgba(200,85,61,0.7); } 100% { transform:scale(1) rotate(0deg); box-shadow:0 0 14px 4px rgba(200,85,61,0.5); } }
@keyframes rb1-ray     { 0% { opacity:0.2; transform:translateX(-10px); } 50% { opacity:0.5; transform:translateX(0); } 100% { opacity:0.3; transform:translateX(10px); } }
@keyframes rb1-shadow  { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; } }

/* ===== plucking-rose-symbol ===== */
.scn-plucking-rose-symbol {
  background:
    linear-gradient(180deg, #fce4c4 0%, #f2d0a0 50%, #e0b87a 100%),
    radial-gradient(ellipse at 60% 40%, #ffe8c0 0%, transparent 70%);
}
.scn-plucking-rose-symbol .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, rgba(255,240,210,0.6) 0%, transparent 100%);
  animation: prs-sky 14s ease-in-out infinite alternate;
}
.scn-plucking-rose-symbol .bush-body {
  position:absolute; bottom:22%; left:30%; width:50%; height:30%;
  background: radial-gradient(ellipse, #4a7a2a 0%, #2a5a1a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: prs-bush 8s ease-in-out infinite alternate;
}
.scn-plucking-rose-symbol .bush-leaves {
  position:absolute; bottom:30%; left:35%; width:35%; height:15%;
  background: radial-gradient(circle, #5a8a3a 0%, #2a5a1a 100%);
  border-radius: 0 50% 50% 0; transform-origin: left; animation: prs-leaves 6s ease-in-out infinite alternate;
}
.scn-plucking-rose-symbol .rose-target {
  position:absolute; bottom:45%; left:38%; width:22px; height:22px;
  background: radial-gradient(circle, #f0b0a0 0%, #c8553d 80%);
  border-radius: 50%; box-shadow: 0 0 20px 5px rgba(200,85,61,0.4);
  animation: prs-rose 4s ease-in-out infinite alternate;
}
.scn-plucking-rose-symbol .stem {
  position:absolute; bottom:32%; left:39%; width:4px; height:18%;
  background: linear-gradient(180deg, #3a6a2a 0%, #2a4a1a 100%);
  border-radius: 50%; transform-origin: bottom; animation: prs-stem 5s ease-in-out infinite;
}
.scn-plucking-rose-symbol .hand {
  position:absolute; bottom:38%; left:55%; width:20px; height:30px;
  background: linear-gradient(180deg, #d4a080 0%, #a07050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 100%;
  animation: prs-hand 3s ease-in-out infinite;
}
.scn-plucking-rose-symbol .petal-1 {
  position:absolute; bottom:50%; left:42%; width:10px; height:8px;
  background: #f0b0a0; border-radius: 50% 0 50% 0;
  animation: prs-petal1 6s linear infinite;
}
.scn-plucking-rose-symbol .petal-2 {
  position:absolute; bottom:48%; left:44%; width:8px; height:6px;
  background: #e9a090; border-radius: 0 50% 0 50%;
  animation: prs-petal2 7s linear infinite;
}
@keyframes prs-sky    { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes prs-bush   { 0% { transform:scaleY(1) translateY(0); } 50% { transform:scaleY(1.02) translateY(-3px); } 100% { transform:scaleY(0.98) translateY(2px); } }
@keyframes prs-leaves { 0% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-3deg); } }
@keyframes prs-rose   { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.1) rotate(15deg); } 100% { transform:scale(0.95) rotate(-5deg); } }
@keyframes prs-stem   { 0% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } 100% { transform:rotate(-1deg); } }
@keyframes prs-hand   { 0% { transform:translateX(0) translateY(0) rotate(-5deg); } 50% { transform:translateX(-15px) translateY(5px) rotate(10deg); } 100% { transform:translateX(0) translateY(0) rotate(0deg); } }
@keyframes prs-petal1 { 0% { transform:translate(0,0) rotate(0deg); opacity:0.8; } 50% { transform:translate(-20px,30px) rotate(120deg); opacity:0.4; } 100% { transform:translate(-40px,60px) rotate(240deg); opacity:0; } }
@keyframes prs-petal2 { 0% { transform:translate(0,0) rotate(0deg); opacity:0.8; } 50% { transform:translate(10px,40px) rotate(-90deg); opacity:0.5; } 100% { transform:translate(20px,80px) rotate(-180deg); opacity:0; } }

/* ===== prison-lane-summer ===== */
.scn-prison-lane-summer {
  background:
    linear-gradient(180deg, #f7e8c8 0%, #dcc8a0 40%, #b8a080 100%),
    radial-gradient(ellipse at 50% 0%, #fff2d0 0%, transparent 50%);
}
.scn-prison-lane-summer .sky {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #fff8e0 0%, transparent 100%);
  animation: pls-sky 6s ease-in-out infinite alternate;
}
.scn-prison-lane-summer .grass {
  position:absolute; bottom:18%; left:0; right:0; height:6%;
  background: linear-gradient(180deg, #6a8a3a 0%, #4a6a2a 100%);
  border-radius: 20% 20% 0 0;
  animation: pls-grass 4s ease-in-out infinite alternate;
}
.scn-prison-lane-summer .door {
  position:absolute; bottom:20%; left:40%; width:20%; height:60%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a221a 80%);
  border: 3px solid #2a1a12; border-radius: 2% 2% 0 0;
  box-shadow: 8px 0 12px rgba(0,0,0,0.4), -8px 0 12px rgba(0,0,0,0.2);
  animation: pls-door 9s ease-in-out infinite;
}
.scn-prison-lane-summer .figure-1 {
  position:absolute; bottom:20%; left:10%; width:12px; height:40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30%; transform-origin: bottom;
  animation: pls-figure 5s ease-in-out infinite;
}
.scn-prison-lane-summer .figure-2 {
  position:absolute; bottom:20%; left:25%; width:12px; height:42px;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 40% 40% 30% 30%; transform-origin: bottom;
  animation: pls-figure 5s ease-in-out infinite 1s;
}
.scn-prison-lane-summer .figure-3 {
  position:absolute; bottom:20%; left:68%; width:12px; height:38px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30%; transform-origin: bottom;
  animation: pls-figure 5s ease-in-out infinite 2s;
}
.scn-prison-lane-summer .shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: pls-shadow 8s ease-in-out infinite alternate;
}
@keyframes pls-sky    { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pls-grass  { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.1); } 100% { transform:scaleY(0.95); } }
@keyframes pls-door   { 0%,100% { transform:rotateY(0deg); } 50% { transform:rotateY(2deg); } }
@keyframes pls-figure { 0% { transform:translateX(0) rotate(-2deg); } 50% { transform:translateX(3px) rotate(2deg); } 100% { transform:translateX(-2px) rotate(-1deg); } }
@keyframes pls-shadow { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.6; } }

/* ===== authorities-crime-routine ===== */
.scn-authorities-crime-routine {
  background:
    linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 40%, #1a1a1a 100%),
    radial-gradient(ellipse at 70% 0%, #6a5a4a 0%, transparent 60%);
}
.scn-authorities-crime-routine .wall {
  position:absolute; inset:0; background:
    linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  opacity:0.6; animation: acr-wall 20s linear infinite;
}
.scn-authorities-crime-routine .bench {
  position:absolute; bottom:20%; left:20%; width:60%; height:12%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 6% 6% 2% 2%; box-shadow: 0 4px 10px rgba(0,0,0,0.7);
  animation: acr-bench 10s ease-in-out infinite alternate;
}
.scn-authorities-crime-routine .judge {
  position:absolute; bottom:30%; left:35%; width:16%; height:28%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom;
  animation: acr-judge 4s ease-in-out infinite;
}
.scn-authorities-crime-routine .clerk {
  position:absolute; bottom:30%; left:55%; width:10%; height:22%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 40% 40% 30% 30%; transform-origin: bottom;
  animation: acr-judge 4s ease-in-out infinite 0.5s;
}
.scn-authorities-crime-routine .audience-left {
  position:absolute; bottom:10%; left:5%; width:12%; height:20%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20%; transform-origin: bottom;
  animation: acr-audience 6s ease-in-out infinite;
}
.scn-authorities-crime-routine .audience-right {
  position:absolute; bottom:10%; right:5%; width:12%; height:20%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20%; transform-origin: bottom;
  animation: acr-audience 6s ease-in-out infinite 1s;
}
.scn-authorities-crime-routine .sunbeam {
  position:absolute; top:0; left:30%; width:15%; height:90%;
  background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: acr-sunbeam 8s ease-in-out infinite alternate;
}
@keyframes acr-wall     { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes acr-bench    { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(0.98); } }
@keyframes acr-judge    { 0% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(-1deg) translateY(0); } }
@keyframes acr-audience { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(3px) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes acr-sunbeam  { 0% { transform:skewX(-5deg); opacity:0.1; } 50% { transform:skewX(0deg); opacity:0.3; } 100% { transform:skewX(5deg); opacity:0.15; } }

.scn-custom-house-rainy-discovery {
  background: linear-gradient(180deg, #6b7b8b 0%, #4a5a6a 40%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #8a9aaa 0%, transparent 70%);
}
.scn-custom-house-rainy-discovery .wall { position:absolute; inset:10% 8% 20% 8%; background: linear-gradient(135deg, #4a4a3a 0%, #3a3a2a 50%, #2a2a1a 100%); border-radius: 4px; }
.scn-custom-house-rainy-discovery .window-frame { position:absolute; top:15%; left:25%; width:30%; height:40%; background: #2a2a1a; border: 4px solid #1a1a0a; border-radius: 4px; }
.scn-custom-house-rainy-discovery .window-rain { position:absolute; top:15%; left:25%; width:30%; height:40%; background: repeating-linear-gradient(180deg, rgba(180,200,220,0.3) 0px, rgba(180,200,220,0.3) 2px, transparent 2px, transparent 8px); animation: ch-rain 0.8s linear infinite; }
.scn-custom-house-rainy-discovery .desk { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; }
.scn-custom-house-rainy-discovery .parchment { position:absolute; bottom:30%; left:40%; width:15%; height:10%; background: radial-gradient(ellipse, #d4c4a0 0%, #b4a080 100%); border-radius: 2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: ch-parch 4s ease-in-out infinite alternate; }
.scn-custom-house-rainy-discovery .figure { position:absolute; bottom:10%; left:35%; width:12%; height:22%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ch-fig 6s ease-in-out infinite; }
.scn-custom-house-rainy-discovery .shadow { position:absolute; bottom:8%; left:30%; width:40%; height:4%; background: rgba(0,0,0,0.3); filter: blur(4px); border-radius: 50%; animation: ch-shadow 10s ease-in-out infinite alternate; }
@keyframes ch-rain { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(8px); } }
@keyframes ch-parch { 0% { transform: rotate(-2deg) scale(1); opacity:0.9; } 50% { transform: rotate(0deg) scale(1.02); opacity:1; } 100% { transform: rotate(-3deg) scale(0.98); opacity:0.95; } }
@keyframes ch-fig { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ch-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(1.05); } 100% { transform: translateX(0) scaleX(0.95); } }

.scn-item-scarlet-letter-heat {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%), radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 60%);
}
.scn-item-scarlet-letter-heat .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0a0a12 100%); opacity:0.5; }
.scn-item-scarlet-letter-heat .desk { position:absolute; bottom:20%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.7); }
.scn-item-scarlet-letter-heat .manuscript { position:absolute; bottom:30%; left:30%; width:25%; height:8%; background: #e0d0c0; border-radius: 2px; transform: rotate(-5deg); animation: sl-manu 8s ease-in-out infinite alternate; }
.scn-item-scarlet-letter-heat .hand { position:absolute; bottom:30%; left:35%; width:20%; height:15%; background: linear-gradient(180deg, #d4b0a0 0%, #b09080 100%); border-radius: 40% 20% 20% 40% / 60% 40% 40% 60%; transform: rotate(-10deg); animation: sl-hand 3s ease-in-out infinite alternate; }
.scn-item-scarlet-letter-heat .letter { position:absolute; bottom:35%; left:45%; width:8%; height:12%; background: #c8553d; border-radius: 2px; box-shadow: 0 0 20px 4px #c8553d, 0 0 40px 8px rgba(200,85,61,0.3); animation: sl-letter 2s ease-in-out infinite alternate; }
.scn-item-scarlet-letter-heat .heat-glow { position:absolute; bottom:35%; left:45%; width:10%; height:14%; background: radial-gradient(circle, rgba(200,85,61,0.6) 0%, transparent 70%); filter: blur(8px); animation: sl-glow 1.5s ease-in-out infinite alternate; }
.scn-item-scarlet-letter-heat .shadow { position:absolute; bottom:15%; left:30%; width:40%; height:5%; background: rgba(0,0,0,0.4); filter: blur(6px); border-radius: 50%; animation: sl-shadow 9s ease-in-out infinite alternate; }
@keyframes sl-manu { 0% { transform: rotate(-5deg) scale(1); opacity:0.9; } 50% { transform: rotate(-4deg) scale(1.01); opacity:1; } 100% { transform: rotate(-6deg) scale(0.99); opacity:0.95; } }
@keyframes sl-hand { 0% { transform: translateX(0) rotate(-10deg); } 50% { transform: translateX(3px) rotate(-8deg); } 100% { transform: translateX(0) rotate(-12deg); } }
@keyframes sl-letter { 0% { transform: scale(1) rotate(0); box-shadow: 0 0 20px 4px #c8553d, 0 0 40px 8px rgba(200,85,61,0.3); } 50% { transform: scale(1.05) rotate(2deg); box-shadow: 0 0 30px 6px #c8553d, 0 0 60px 12px rgba(200,85,61,0.5); } 100% { transform: scale(0.98) rotate(-1deg); box-shadow: 0 0 18px 3px #c8553d, 0 0 36px 6px rgba(200,85,61,0.25); } }
@keyframes sl-glow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes sl-shadow { 0% { transform: translateX(0) scaleX(1); opacity:0.4; } 50% { transform: translateX(4px) scaleX(1.1); opacity:0.5; } 100% { transform: translateX(0) scaleX(0.9); opacity:0.35; } }

.scn-back-to-prison-crowd {
  background: linear-gradient(180deg, #4a8fc0 0%, #8ab0d0 50%, #c0d8e0 100%), radial-gradient(circle at 70% 30%, #ffdd88 0%, transparent 60%);
}
.scn-back-to-prison-crowd .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a8fc0 0%, #8ab0d0 100%); }
.scn-back-to-prison-crowd .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a7a4a 0%, #4a5a3a 100%); }
.scn-back-to-prison-crowd .jail { position:absolute; bottom:30%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); animation: pr-jail 12s ease-in-out infinite alternate; }
.scn-back-to-prison-crowd .jail-door { position:absolute; bottom:30%; left:45%; width:10%; height:25%; background: #2a1a0a; border-radius: 4px; box-shadow: inset 0 0 10px #0a0a0a; }
.scn-back-to-prison-crowd .crowd-left { position:absolute; bottom:0; left:5%; width:0; height:0; box-shadow: 10px 10px 0 0 #1a1a2a, 30px 15px 0 0 #1a1a2a, 50px 8px 0 0 #1a1a2a, 70px 12px 0 0 #1a1a2a, 90px 14px 0 0 #1a1a2a; animation: pr-crowd-left 8s ease-in-out infinite alternate; }
.scn-back-to-prison-crowd .crowd-right { position:absolute; bottom:0; right:5%; width:0; height:0; box-shadow: 10px 10px 0 0 #1a1a2a, 30px 15px 0 0 #1a1a2a, 50px 8px 0 0 #1a1a2a, 70px 12px 0 0 #1a1a2a, 90px 14px 0 0 #1a1a2a; animation: pr-crowd-right 8s ease-in-out infinite alternate reverse; }
.scn-back-to-prison-crowd .sun { position:absolute; top:10%; right:15%; width:12%; height:12%; background: radial-gradient(circle, #ffdd88 0%, #ffaa44 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 10px #ffaa44; animation: pr-sun 20s ease-in-out infinite alternate; }
@keyframes pr-jail { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pr-crowd-left { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes pr-crowd-right { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes pr-sun { 0% { box-shadow: 0 0 30px 8px #ffaa44; transform: scale(1); } 50% { box-shadow: 0 0 60px 20px #ffaa44; transform: scale(1.02); } 100% { box-shadow: 0 0 40px 10px #ffaa44; transform: scale(0.98); } }

.scn-women-gossip-hester {
  background: linear-gradient(180deg, #5a9ac0 0%, #a0c8e0 50%, #d0e0e8 100%), radial-gradient(circle at 60% 40%, #ffdd88 0%, transparent 50%);
}
.scn-women-gossip-hester .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a9ac0 0%, #a0c8e0 100%); }
.scn-women-gossip-hester .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a8a5a 0%, #5a6a4a 100%); }
.scn-women-gossip-hester .door { position:absolute; bottom:30%; left:40%; width:20%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; }
.scn-women-gossip-hester .door-open { position:absolute; bottom:30%; left:42%; width:16%; height:45%; background: #1a0a00; box-shadow: inset 0 0 20px #0a0a0a; animation: wg-door 5s ease-in-out infinite alternate; }
.scn-women-gossip-hester .women-left { position:absolute; bottom:0; left:5%; width:0; height:0; box-shadow: 8px 8px 0 0 #2a2a3a, 24px 12px 0 0 #2a2a3a, 40px 10px 0 0 #2a2a3a, 56px 14px 0 0 #2a2a3a; animation: wg-women-left 6s ease-in-out infinite alternate; }
.scn-women-gossip-hester .women-right { position:absolute; bottom:0; right:5%; width:0; height:0; box-shadow: 8px 8px 0 0 #2a2a3a, 24px 12px 0 0 #2a2a3a, 40px 10px 0 0 #2a2a3a, 56px 14px 0 0 #2a2a3a; animation: wg-women-right 6s ease-in-out infinite alternate-reverse; }
.scn-women-gossip-hester .beadle { position:absolute; bottom:20%; left:44%; width:8%; height:20%; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wg-beadle 4s ease-in-out infinite alternate; }
@keyframes wg-door { 0% { width:16%; left:42%; } 50% { width:17%; left:41.5%; } 100% { width:16%; left:42%; } }
@keyframes wg-women-left { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(-0.5deg); } }
@keyframes wg-women-right { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-2px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0.5deg); } }
@keyframes wg-beadle { 0% { transform: translateY(0) rotate(0); opacity:0.4; } 50% { transform: translateY(-3px) rotate(2deg); opacity:0.8; } 100% { transform: translateY(0) rotate(-1deg); opacity:0.6; } }

.scn-boston-jail-throng {
  background:
    linear-gradient(180deg, #87CEEB 0%, #F0E68C 30%, #DAA520 60%, #8B4513 100%),
    radial-gradient(ellipse at 50% 100%, #8B4513 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-boston-jail-throng .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0C4DE 50%, transparent 100%);
  animation: bjt-sky 20s ease-in-out infinite alternate;
}
.scn-boston-jail-throng .jail-building {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 240px; height: 180px;
  background: linear-gradient(180deg, #A0522D 0%, #5C4033 50%, #3E2723 100%);
  border-radius: 8% 8% 2% 2%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
  animation: bjt-build 10s ease-in-out infinite;
}
.scn-boston-jail-throng .door {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 100px;
  background: linear-gradient(90deg, #5C4033 0%, #3E2723 50%, #5C4033 100%);
  border: 2px solid #2E1C0A;
  border-radius: 4px;
  box-shadow: inset 0 0 10px #000;
  animation: bjt-door 5s ease-in-out infinite;
}
.scn-boston-jail-throng .spikes {
  position: absolute; bottom: calc(20% + 100px); left: calc(50% - 30px); width: 60px; height: 10px;
  background: repeating-linear-gradient(90deg, #696969 0px, #696969 4px, transparent 4px, transparent 8px);
  animation: bjt-spikes 3s ease-in-out infinite alternate;
}
.scn-boston-jail-throng .crowd-left {
  position: absolute; bottom: 15%; left: 5%; width: 40%; height: 120px;
  background: repeating-linear-gradient(90deg, #2F2F2F 0px, #2F2F2F 10px, transparent 10px, transparent 12px);
  mask-image: radial-gradient(ellipse, transparent 30%, black 70%);
  animation: bjt-crowd 7s ease-in-out infinite alternate;
}
.scn-boston-jail-throng .crowd-right {
  position: absolute; bottom: 15%; right: 5%; width: 40%; height: 120px;
  background: repeating-linear-gradient(90deg, #2F2F2F 0px, #2F2F2F 10px, transparent 10px, transparent 12px);
  mask-image: radial-gradient(ellipse, transparent 30%, black 70%);
  animation: bjt-crowd 7s ease-in-out infinite alternate-reverse;
}
.scn-boston-jail-throng .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8B7355 0%, #5C4033 100%);
  border-radius: 30% 30% 0 0;
  animation: bjt-ground 12s ease-in-out infinite;
}
.scn-boston-jail-throng .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 100%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 60%);
  animation: bjt-shadow 8s ease-in-out infinite alternate;
}
@keyframes bjt-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bjt-build { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes bjt-door { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-48%) scaleX(0.9); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes bjt-spikes { 0% { filter: brightness(1); } 50% { filter: brightness(1.5); } 100% { filter: brightness(0.8); } }
@keyframes bjt-crowd { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bjt-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes bjt-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-item-rose-bush-threshold {
  background:
    linear-gradient(180deg, #F5DEB3 0%, #FFF8DC 40%, #DEB887 70%, #8B4513 100%),
    radial-gradient(circle at 30% 80%, #FFF8DC 0%, transparent 50%);
}
.scn-item-rose-bush-threshold .bg-building {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #A0522D 0%, #5C4033 50%, #3E2723 100%);
  border-radius: 10% 10% 0 0;
  opacity: 0.4;
  animation: rbt-building 15s ease-in-out infinite alternate;
}
.scn-item-rose-bush-threshold .grass-plot {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #556B2F 0%, #2E4A1E 100%);
  border-radius: 60% 40% 0 0;
  animation: rbt-grass 10s ease-in-out infinite;
}
.scn-item-rose-bush-threshold .burdock {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #4A5D23 0%, #2E4A1E 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  animation: rbt-weed 6s ease-in-out infinite alternate;
}
.scn-item-rose-bush-threshold .pigweed {
  position: absolute; bottom: 25%; right: 15%; width: 25px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #6B8E23 0%, #556B2F 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rbt-weed 8s ease-in-out infinite alternate-reverse;
}
.scn-item-rose-bush-threshold .rose-bush {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 80px;
  background: radial-gradient(ellipse at 30% 40%, #2E8B57 0%, #4A7C3F 40%, #6B8E23 100%);
  border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%;
  animation: rbt-bush 8s ease-in-out infinite;
}
.scn-item-rose-bush-threshold .blossom-1 {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #B87878 0%, #DDA0DD 50%, #FFB6C1 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 5px rgba(255,182,193,0.5);
  animation: rbt-blossom 4s ease-in-out infinite alternate;
}
.scn-item-rose-bush-threshold .blossom-2 {
  position: absolute; bottom: 30%; left: 55%; width: 15px; height: 15px;
  background: radial-gradient(circle, #C8553D 0%, #B87878 50%, #E6A8D7 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(200,85,61,0.3);
  animation: rbt-blossom 5s ease-in-out infinite alternate-reverse;
}
.scn-item-rose-bush-threshold .threshold {
  position: absolute; bottom: 0; left: 40%; right: 40%; height: 10px;
  background: linear-gradient(90deg, #8B4513 0%, #A0522D 50%, #8B4513 100%);
  border-radius: 10% 10% 0 0;
  animation: rbt-threshold 12s ease-in-out infinite;
}
@keyframes rbt-building { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes rbt-grass { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes rbt-weed { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes rbt-bush { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes rbt-blossom { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes rbt-threshold { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }

.scn-summer-morning-assembly {
  background:
    linear-gradient(180deg, #87CEEB 0%, #F5F5DC 30%, #DEB887 50%, #8B7355 70%, #5C4033 100%),
    radial-gradient(ellipse at 50% 100%, #5C4033 0%, transparent 60%);
}
.scn-summer-morning-assembly .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0C4DE 40%, transparent 100%);
  animation: sma-sky 18s ease-in-out infinite alternate;
}
.scn-summer-morning-assembly .jail-door {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 120px;
  background: linear-gradient(90deg, #5C4033 0%, #3E2723 50%, #5C4033 100%);
  border: 3px solid #2E1C0A;
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: sma-door 6s ease-in-out infinite;
}
.scn-summer-morning-assembly .crowd-figures {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 150px;
  background: repeating-linear-gradient(0deg, 
    #2F2F2F 0px, #2F2F2F 15px, transparent 15px, transparent 17px
  );
  mask-image: radial-gradient(ellipse at 50% 50%, black 50%, transparent 80%);
  animation: sma-crowd 8s ease-in-out infinite alternate;
}
.scn-summer-morning-assembly .figure-centre {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 25px; height: 50px;
  background: linear-gradient(180deg, #1E1E1E 0%, #0A0A0A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sma-figure 5s ease-in-out infinite;
}
.scn-summer-morning-assembly .hats {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 20px;
  background: repeating-linear-gradient(90deg, 
    #4A3728 0px, #4A3728 8px, transparent 8px, transparent 10px
  );
  animation: sma-hats 7s ease-in-out infinite alternate;
}
.scn-summer-morning-assembly .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8B7355 0%, #5C4033 100%);
  border-radius: 30% 30% 0 0;
  animation: sma-ground 12s ease-in-out infinite;
}
.scn-summer-morning-assembly .shadow-street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 100%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: sma-shadow 9s ease-in-out infinite alternate;
}
@keyframes sma-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes sma-door { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes sma-crowd { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sma-figure { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-48%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes sma-hats { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sma-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes sma-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-forefathers-prison-burial {
  background:
    linear-gradient(180deg, #708090 0%, #4F4F4F 30%, #2F2F2F 70%, #1A1A1A 100%),
    radial-gradient(ellipse at 50% 100%, #1A1A1A 0%, transparent 60%);
}
.scn-forefathers-prison-burial .overcast-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #708090 0%, #5F7F8F 40%, transparent 100%);
  animation: fpb-sky 30s ease-in-out infinite alternate;
}
.scn-forefathers-prison-burial .prison-wall {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 150px;
  background: linear-gradient(180deg, #4A4A4A 0%, #2E2E2E 50%, #1C1C1C 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: 0 -5px 15px rgba(0,0,0,0.6);
  animation: fpb-wall 20s ease-in-out infinite alternate;
}
.scn-forefathers-prison-burial .grass-plot {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3B5323 0%, #2E4A1E 50%, #1A3315 100%);
  border-radius: 40% 60% 0 0;
  animation: fpb-grass 25s ease-in-out infinite;
}
.scn-forefathers-prison-burial .burdock-weed {
  position: absolute; bottom: 25%; left: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4A5D23 0%, #2E4A1E 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  animation: fpb-weed 12s ease-in-out infinite alternate;
}
.scn-forefathers-prison-burial .pigweed-weed {
  position: absolute; bottom: 30%; right: 30%; width: 15px; height: 35px;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: fpb-weed 15s ease-in-out infinite alternate-reverse;
}
.scn-forefathers-prison-burial .gravestone {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #696969 0%, #4A4A4A 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: fpb-stone 10s ease-in-out infinite;
}
.scn-forefathers-prison-burial .dark-corner {
  position: absolute; bottom: 0; left: 0; right: 0; height: 100%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 60%);
  animation: fpb-corner 8s ease-in-out infinite alternate;
}
@keyframes fpb-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes fpb-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes fpb-grass { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fpb-weed { 0% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-2deg); } }
@keyframes fpb-stone { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.95); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes fpb-corner { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-chillingworth-voyage-revealed {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #FFD700 70%), radial-gradient(ellipse at 20% 30%, #FFD700 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-chillingworth-voyage-revealed .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  animation: cv-sky 8s ease-in-out infinite alternate;
}
.scn-chillingworth-voyage-revealed .sun {
  position: absolute; top: 10%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 70%);
  border-radius: 50%;
  animation: cv-sun-glow 3s ease-in-out infinite;
}
.scn-chillingworth-voyage-revealed .cloud {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: cv-cloud-drift 20s linear infinite;
}
.scn-chillingworth-voyage-revealed .ship {
  position: absolute; bottom: 30%; left: 10%; width: 150px; height: 80px;
  background: linear-gradient(180deg, #2C2C2C 0%, #1A1A1A 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  box-shadow: 5px 5px 10px rgba(0,0,0,0.5);
  animation: cv-ship-bob 5s ease-in-out infinite;
}
.scn-chillingworth-voyage-revealed .dock {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10px;
  background: #4A3728; border-radius: 2px;
  animation: cv-dock 4s ease-in-out infinite alternate;
}
.scn-chillingworth-voyage-revealed .hestor-sil {
  position: absolute; bottom: 35%; left: 35%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2B2B2B 0%, #1A1A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cv-fig-shake 1.5s ease-in-out infinite;
}
.scn-chillingworth-voyage-revealed .chilling-sil {
  position: absolute; bottom: 35%; left: 50%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3E2723 0%, #1A1A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cv-fig-shake 1.5s ease-in-out infinite;
}
.scn-chillingworth-voyage-revealed .captain-sil {
  position: absolute; bottom: 35%; left: 62%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2C2C2C 0%, #1A1A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cv-fig-shake 1.5s ease-in-out infinite 0.5s;
}
@keyframes cv-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes cv-sun-glow { 0%{transform:scale(1);box-shadow:0 0 20px #FFD700} 50%{transform:scale(1.1);box-shadow:0 0 40px #FFD700} 100%{transform:scale(0.95);box-shadow:0 0 25px #FFD700} }
@keyframes cv-cloud-drift { 0%{transform:translateX(0)} 50%{transform:translateX(-40px)} 100%{transform:translateX(-80px)} }
@keyframes cv-ship-bob { 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes cv-dock { 0%{transform:scaleX(1)} 50%{transform:scaleX(0.98)} 100%{transform:scaleX(1)} }
@keyframes cv-fig-shake { 0%{transform:translate(0,0)} 25%{transform:translate(1px,-1px)} 50%{transform:translate(-1px,0)} 75%{transform:translate(0,1px)} 100%{transform:translate(0,0)} }

.scn-dimmesdale-remote {
  background: linear-gradient(180deg, #87CEEB 0%, #90EE90 30%, #228B22 60%), radial-gradient(ellipse at 50% 30%, #FFFF00 0%, transparent 40%);
  position: relative; overflow: hidden;
}
.scn-dimmesdale-remote .sky {
  position: absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  animation: dr-sky 10s ease-in-out infinite;
}
.scn-dimmesdale-remote .trees {
  position: absolute; bottom:50%; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #006400 0%, #004d00 100%);
  border-radius: 60% 40% 0 0 / 40% 60% 0 0;
  animation: dr-trees 15s ease-in-out infinite alternate;
}
.scn-dimmesdale-remote .brook {
  position: absolute; bottom:30%; left:0; right:0; height:8px;
  background: linear-gradient(90deg, #1E90FF 0%, #00BFFF 50%, #1E90FF 100%);
  border-radius: 50%;
  animation: dr-brook 4s ease-in-out infinite;
}
.scn-dimmesdale-remote .path {
  position: absolute; bottom:40%; left:30%; right:30%; height:15px;
  background: #8B4513; border-radius: 10px; transform: skewX(-20deg);
  animation: dr-path 6s ease-in-out infinite;
}
.scn-dimmesdale-remote .dimmesdale-sil {
  position: absolute; bottom:35%; left:50%; width:18px; height:45px;
  background: linear-gradient(180deg, #2F4F4F 0%, #1A1A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dr-walk 4s ease-in-out infinite;
}
.scn-dimmesdale-remote .hester-pearl-sil {
  position: absolute; bottom:35%; left:20%; width:30px; height:50px;
  background: linear-gradient(180deg, #4A3728 0%, #3E2723 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dr-hestor-pearl 5s ease-in-out infinite;
}
.scn-dimmesdale-remote .light-ray {
  position: absolute; top:10%; left:40%; width:20%; height:20%;
  background: linear-gradient(135deg, rgba(255,255,0,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: dr-light 7s ease-in-out infinite alternate;
}
@keyframes dr-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes dr-trees { 0%{transform:rotate(-1deg)} 50%{transform:rotate(1deg)} 100%{transform:rotate(-0.5deg)} }
@keyframes dr-brook { 0%{opacity:0.7;background-position:0% 0%} 50%{opacity:1;background-position:50% 0%} 100%{opacity:0.7;background-position:100% 0%} }
@keyframes dr-path { 0%{transform:skewX(-20deg) translateX(0)} 50%{transform:skewX(-18deg) translateX(5px)} 100%{transform:skewX(-20deg) translateX(0)} }
@keyframes dr-walk { 0%{transform:translateX(0) translateY(0) rotate(0)} 50%{transform:translateX(12px) translateY(-2px) rotate(2deg)} 100%{transform:translateX(24px) translateY(0) rotate(0)} }
@keyframes dr-hestor-pearl { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes dr-light { 0%{transform:rotate(0) scale(1)} 50%{transform:rotate(5deg) scale(1.1)} 100%{transform:rotate(-5deg) scale(1)} }

.scn-pearl-gold-chain {
  background: linear-gradient(180deg, #FFE4B5 0%, #FFD700 20%, #87CEEB 50%), radial-gradient(ellipse at 30% 20%, #FFD700 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-pearl-gold-chain .sky {
  position: absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  animation: pg-sky 9s ease-in-out infinite;
}
.scn-pearl-gold-chain .church {
  position: absolute; bottom:30%; left:10%; width:120px; height:150px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3A1E 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: pg-church 6s ease-in-out infinite;
}
.scn-pearl-gold-chain .scaffold {
  position: absolute; bottom:20%; left:40%; width:80px; height:100px;
  background: linear-gradient(180deg, #A0522D 0%, #6B3A2A 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 5px 0 10px rgba(0,0,0,0.4);
  animation: pg-scaffold 4s ease-in-out infinite;
}
.scn-pearl-gold-chain .hestor-sil {
  position: absolute; bottom:20%; left:35%; width:22px; height:50px;
  background: linear-gradient(180deg, #3E2723 0%, #2C1A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pg-hestor 3s ease-in-out infinite;
}
.scn-pearl-gold-chain .pearl-sil {
  position: absolute; bottom:15%; left:55%; width:14px; height:30px;
  background: linear-gradient(180deg, #5C4033 0%, #3E2723 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pg-pearl 2s ease-in-out infinite;
}
.scn-pearl-gold-chain .mariner-sil {
  position: absolute; bottom:20%; left:65%; width:24px; height:55px;
  background: linear-gradient(180deg, #2F4F4F 0%, #1A1A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pg-mariner 3.5s ease-in-out infinite;
}
.scn-pearl-gold-chain .chain {
  position: absolute; bottom:50%; left:50%; width:2px; height:15px;
  background: #FFD700; border-radius: 50%;
  box-shadow: 0 0 5px #FFD700;
  animation: pg-chain 1.5s ease-in-out infinite;
}
.scn-pearl-gold-chain .crowd {
  position: absolute; bottom:10%; left:20%; right:20%; height:20px;
  background: repeating-linear-gradient(90deg, #5C4033 0px, #5C4033 4px, transparent 4px, transparent 8px);
  animation: pg-crowd 5s ease-in-out infinite;
}
@keyframes pg-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes pg-church { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes pg-scaffold { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes pg-hestor { 0%{transform:translate(0,0)} 50%{transform:translate(1px,-1px)} 100%{transform:translate(0,0)} }
@keyframes pg-pearl { 0%{transform:translate(0,0) rotate(0)} 50%{transform:translate(5px,-10px) rotate(15deg)} 100%{transform:translate(10px,0) rotate(0)} }
@keyframes pg-mariner { 0%{transform:scale(1)} 50%{transform:scale(1.02)} 100%{transform:scale(1)} }
@keyframes pg-chain { 0%{transform:translate(0,0) scale(1);opacity:1} 50%{transform:translate(15px,-20px) scale(0.8);opacity:1} 100%{transform:translate(30px,0) scale(0.5);opacity:0} }
@keyframes pg-crowd { 0%{background-position:0 0} 50%{background-position:5px 0} 100%{background-position:0 0} }

.scn-sermon-acclaim {
  background: linear-gradient(180deg, #87CEEB 0%, #FFFFF0 30%, #FFD700 50%), radial-gradient(ellipse at 50% 20%, #FFD700 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-sermon-acclaim .sky {
  position: absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  animation: sa-sky 8s ease-in-out infinite;
}
.scn-sermon-acclaim .church-facade {
  position: absolute; bottom:20%; left:30%; width:100px; height:120px;
  background: linear-gradient(180deg, #D2691E 0%, #8B4513 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 10px 0 20px rgba(0,0,0,0.4);
  animation: sa-church 6s ease-in-out infinite;
}
.scn-sermon-acclaim .steps {
  position: absolute; bottom:20%; left:35%; width:80px; height:10px;
  background: #A9A9A9; border-radius: 2px;
  animation: sa-steps 4s ease-in-out infinite;
}
.scn-sermon-acclaim .dimmesdale-sil {
  position: absolute; bottom:25%; left:45%; width:18px; height:50px;
  background: linear-gradient(180deg, #2F4F4F 0%, #1A1A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sa-dimmesdale 3s ease-in-out infinite;
}
.scn-sermon-acclaim .hestor-sil {
  position: absolute; bottom:15%; left:20%; width:22px; height:50px;
  background: linear-gradient(180deg, #3E2723 0%, #2C1A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sa-hestor 5s ease-in-out infinite;
}
.scn-sermon-acclaim .crowd {
  position: absolute; bottom:10%; left:15%; right:15%; height:15px;
  background: repeating-linear-gradient(90deg, #5C4033 0px, #5C4033 3px, transparent 3px, transparent 6px);
  animation: sa-crowd 3s ease-in-out infinite;
}
.scn-sermon-acclaim .light-burst {
  position: absolute; top:10%; left:40%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(255,215,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: sa-light-burst 2s ease-in-out infinite;
}
@keyframes sa-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes sa-church { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes sa-steps { 0%{transform:scaleX(1)} 50%{transform:scaleX(0.98)} 100%{transform:scaleX(1)} }
@keyframes sa-dimmesdale { 0%{transform:rotate(0)} 50%{transform:rotate(2deg)} 100%{transform:rotate(0)} }
@keyframes sa-hestor { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes sa-crowd { 0%{background-position:0 0} 50%{background-position:3px 0} 100%{background-position:0 0} }
@keyframes sa-light-burst { 0%{transform:scale(0.8);opacity:0.7} 50%{transform:scale(1.2);opacity:1} 100%{transform:scale(1);opacity:0.8} }

.scn-sympathetic-knowledge {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #050510 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a2e 0%, transparent 70%);
}
.scn-sympathetic-knowledge .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, rgba(10,10,20,0.8) 0%, transparent 100%);
  animation: sk-sky 12s ease-in-out infinite alternate;
}
.scn-sympathetic-knowledge .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0a10 0%, #1a1a20 100%);
  border-top: 2px solid rgba(255,255,255,0.05);
}
.scn-sympathetic-knowledge .figure-hester {
  position: absolute; bottom: 25%; left: 50%; width: 80px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a0a15 0%, #1a1a2e 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: sk-figure 6s ease-in-out infinite;
}
.scn-sympathetic-knowledge .letter-glow {
  position: absolute; bottom: 48%; left: 50%; width: 30px; height: 36px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d06030 0%, #703010 70%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px #d06030, 0 0 40px 12px rgba(208,96,48,0.5);
  animation: sk-glow 3s ease-in-out infinite alternate;
}
.scn-sympathetic-knowledge .shadow-figure1 {
  position: absolute; bottom: 25%; left: 20%; width: 30px; height: 120px;
  background: rgba(0,0,0,0.6);
  border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%;
  filter: blur(6px);
  animation: sk-shad1 9s ease-in-out infinite alternate;
}
.scn-sympathetic-knowledge .shadow-figure2 {
  position: absolute; bottom: 25%; right: 20%; width: 30px; height: 130px;
  background: rgba(0,0,0,0.5);
  border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%;
  filter: blur(8px);
  animation: sk-shad2 11s ease-in-out infinite alternate;
}
.scn-sympathetic-knowledge .mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(30,20,30,0.4) 0%, transparent 70%);
  animation: sk-mist 15s ease-in-out infinite alternate;
}
@keyframes sk-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes sk-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes sk-glow { 0% { box-shadow: 0 0 15px 4px #c05020, 0 0 30px 8px rgba(192,80,32,0.4); opacity:0.7; } 50% { box-shadow: 0 0 30px 10px #e07040, 0 0 50px 16px rgba(224,112,64,0.6); opacity:1; } 100% { box-shadow: 0 0 18px 5px #c05020, 0 0 35px 10px rgba(192,80,32,0.45); opacity:0.8; } }
@keyframes sk-shad1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(4px) scaleY(1.08); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes sk-shad2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-4px) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes sk-mist { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

.scn-pearl-airy-sprite {
  background:
    linear-gradient(180deg, #4a8fc1 0%, #87CEEB 40%, #b0e0e6 100%),
    radial-gradient(ellipse at 80% 15%, #fff7a0 0%, transparent 60%);
}
.scn-pearl-airy-sprite .sky {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 0, rgba(255,255,255,0.25) 0%, transparent 70%);
  animation: pa-sky 8s ease-in-out infinite alternate;
}
.scn-pearl-airy-sprite .sun {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7a0 0%, #ffd700 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #fff7a0;
  animation: pa-sun 6s ease-in-out infinite alternate;
}
.scn-pearl-airy-sprite .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a9e4a 0%, #3e6e2a 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
  animation: pa-field 10s ease-in-out infinite alternate;
}
.scn-pearl-airy-sprite .pearl-figure {
  position: absolute; bottom: 38%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0f0ff 0%, #a0c4e8 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: pa-pearl 2s ease-in-out infinite;
}
.scn-pearl-airy-sprite .flower-1 {
  position: absolute; bottom: 36%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffb6c1 0%, #ff69b4 70%);
  border-radius: 50%;
  animation: pa-flower1 3s ease-in-out infinite;
}
.scn-pearl-airy-sprite .flower-2 {
  position: absolute; bottom: 36%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 70%);
  border-radius: 50%;
  animation: pa-flower2 3.5s ease-in-out infinite 0.5s;
}
.scn-pearl-airy-sprite .flower-3 {
  position: absolute; bottom: 36%; left: 50%; width: 14px; height: 14px;
  background: radial-gradient(circle, #e6e6fa 0%, #dda0dd 70%);
  border-radius: 50%;
  animation: pa-flower3 2.5s ease-in-out infinite 1s;
}
.scn-pearl-airy-sprite .shadow-pearl {
  position: absolute; bottom: 33%; left: 50%; width: 30px; height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%);
  filter: blur(4px);
  animation: pa-shadow 2s ease-in-out infinite reverse;
}
@keyframes pa-sky { 0% { opacity:0.5; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes pa-sun { 0% { transform: scale(1); box-shadow: 0 0 25px 8px #fff7a0; } 50% { transform: scale(1.1); box-shadow: 0 0 40px 15px #fff7a0; } 100% { transform: scale(1); box-shadow: 0 0 25px 8px #fff7a0; } }
@keyframes pa-field { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pa-pearl { 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 pa-flower1 { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 50% { transform: translate(10px, -15px) rotate(45deg) scale(1.2); } 100% { transform: translate(0,0) rotate(0deg) scale(1); } }
@keyframes pa-flower2 { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 50% { transform: translate(-8px, -12px) rotate(-30deg) scale(1.1); } 100% { transform: translate(0,0) rotate(0deg) scale(1); } }
@keyframes pa-flower3 { 0% { transform: translate(0,0) rotate(0deg) scale(1); } 50% { transform: translate(5px, -18px) rotate(60deg) scale(1.3); } 100% { transform: translate(0,0) rotate(0deg) scale(1); } }
@keyframes pa-shadow { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.8); } 100% { transform: translateX(-50%) scaleX(1); } }

.scn-demon-gossip {
  background:
    linear-gradient(180deg, #5a8fc1 0%, #87CEEB 40%, #a0c4e8 100%),
    linear-gradient(135deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.5) 100%);
}
.scn-demon-gossip .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  animation: dg-sky 10s ease-in-out infinite alternate;
}
.scn-demon-gossip .mansion {
  position: absolute; bottom: 25%; left: 50%; width: 200px; height: 260px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3520 0%, #6a5040 20%, #8b7355 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: dg-mansion 12s ease-in-out infinite alternate;
}
.scn-demon-gossip .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5e7a3e 0%, #3e5a2e 100%);
  animation: dg-ground 8s ease-in-out infinite alternate;
}
.scn-demon-gossip .hester-figure {
  position: absolute; bottom: 25%; left: 35%; width: 40px; height: 110px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a15 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: dg-hester 7s ease-in-out infinite;
}
.scn-demon-gossip .pearl-figure {
  position: absolute; bottom: 25%; left: 41%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #c0d8e8 0%, #a0b8c8 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: dg-pearl 5s ease-in-out infinite 0.5s;
}
.scn-demon-gossip .shadow-dark {
  position: absolute; bottom: 0; left: 40%; width: 180px; height: 200px;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: dg-shadow 14s ease-in-out infinite alternate;
}
.scn-demon-gossip .gate {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0, #2a1a10 0%, #4a3020 100%);
  border-radius: 50% 50% 0 0;
  animation: dg-gate 4s ease-in-out infinite alternate;
}
@keyframes dg-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes dg-mansion { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.01); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes dg-ground { 0% { background-position: 0 0; } 50% { background-position: 5px 0; } 100% { background-position: 0 0; } }
@keyframes dg-hester { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dg-pearl { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dg-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-10px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes dg-gate { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(0.9); } 100% { transform: translateX(-50%) scaleX(1); } }

.scn-item-breastplate-magnify {
  background:
    linear-gradient(180deg, #f5deb3 0%, #d2b48c 30%, #8b4513 100%),
    radial-gradient(ellipse at 60% 20%, #fffde0 0%, transparent 60%);
}
.scn-item-breastplate-magnify .interior-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, rgba(80,40,20,0.3) 0%, transparent 100%);
  animation: ib-wall 10s ease-in-out infinite alternate;
}
.scn-item-breastplate-magnify .window-light {
  position: absolute; top: 10%; left: 60%; width: 80px; height: 140px;
  background: linear-gradient(180deg, rgba(255,255,230,0.8) 0%, transparent 100%);
  border-radius: 4px;
  animation: ib-light 7s ease-in-out infinite alternate;
}
.scn-item-breastplate-magnify .breastplate {
  position: absolute; bottom: 30%; left: 50%; width: 150px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 40% 30%, #f0e8d0 0%, #b8a890 40%, #5a4a3a 80%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px rgba(255,255,200,0.4), inset 0 0 20px rgba(0,0,0,0.3);
  animation: ib-breastplate 8s ease-in-out infinite alternate;
}
.scn-item-breastplate-magnify .reflection-letter {
  position: absolute; bottom: 48%; left: 50%; width: 24px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d06030 0%, #a04020 70%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #d06030, 0 0 40px 12px rgba(208,96,48,0.4);
  animation: ib-reflect 3s ease-in-out infinite alternate;
}
.scn-item-breastplate-magnify .hester-figure {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 140px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a15 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: ib-hester 6s ease-in-out infinite;
}
.scn-item-breastplate-magnify .pearl-figure {
  position: absolute; bottom: 20%; left: 70%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #c0d8e8 0%, #a0b8c8 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: ib-pearl 4s ease-in-out infinite 1s;
}
.scn-item-breastplate-magnify .rose {
  position: absolute; bottom: 25%; left: 15%; width: 20px; height: 20px;
  background: radial-gradient(circle, #8b2a1a 0%, #5e1a1d 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(139,42,26,0.5);
  animation: ib-rose 3s ease-in-out infinite;
}
@keyframes ib-wall { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }
@keyframes ib-light { 0% { opacity:0.6; box-shadow: 0 0 10px rgba(255,255,200,0.2); } 50% { opacity:1; box-shadow: 0 0 25px 8px rgba(255,255,200,0.5); } 100% { opacity:0.7; box-shadow: 0 0 10px rgba(255,255,200,0.2); } }
@keyframes ib-breastplate { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ib-reflect { 0% { box-shadow: 0 0 15px 4px #c05020, 0 0 30px 8px rgba(192,80,32,0.3); opacity:0.8; } 50% { box-shadow: 0 0 30px 10px #e07040, 0 0 50px 16px rgba(224,112,64,0.6); opacity:1; } 100% { box-shadow: 0 0 18px 5px #c05020, 0 0 35px 10px rgba(192,80,32,0.45); opacity:0.9; } }
@keyframes ib-hester { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ib-pearl { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-2px) translateY(-3px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ib-rose { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(0deg) scale(1); } }

.scn-item-scarlet-letter-sun { background: linear-gradient(180deg, #f0c060 0%, #d08040 30%, #4a2a1a 60%, #1a0a0a 100%), radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 60%); }
.scn-item-scarlet-letter-sun .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffe080 0%, #d09040 100%); animation: sls-sky 8s ease-in-out infinite alternate; }
.scn-item-scarlet-letter-sun .sun { position:absolute; top:8%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #ffffc0 0%, #ffd060 60%, transparent 100%); border-radius:50%; animation: sls-sun 4s ease-in-out infinite; }
.scn-item-scarlet-letter-sun .scaffold { position:absolute; bottom:20%; left:25%; right:25%; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,.6); }
.scn-item-scarlet-letter-sun .figure { position:absolute; bottom:25%; left:50%; width:30px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: sls-figure 6s ease-in-out infinite; }
.scn-item-scarlet-letter-sun .letter { position:absolute; bottom:48%; left:50%; width:14px; height:14px; transform:translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #8a2a1a 70%); border-radius: 20% 20% 20% 20% / 30% 30% 30% 30%; box-shadow: 0 0 12px 4px #c8553d, 0 0 24px 8px rgba(200,85,61,.4); animation: sls-letter 2s ease-in-out infinite alternate; }
.scn-item-scarlet-letter-sun .crowd-left { position:absolute; bottom:18%; left:0; width:20%; height:50%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 40% 40% 0 0; animation: sls-crowd 5s ease-in-out infinite; }
.scn-item-scarlet-letter-sun .crowd-right { position:absolute; bottom:18%; right:0; width:20%; height:50%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%); border-radius: 40% 40% 0 0; animation: sls-crowd 5s ease-in-out infinite reverse; }
@keyframes sls-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sls-sun { 0% { transform:translateX(-50%) scale(0.95); opacity:0.8 } 50% { transform:translateX(-50%) scale(1.05); opacity:1 } 100% { transform:translateX(-50%) scale(0.95); opacity:0.8 } }
@keyframes sls-figure { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0deg) } 50% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } }
@keyframes sls-letter { 0% { box-shadow: 0 0 8px 2px #c8553d, 0 0 16px 4px rgba(200,85,61,.3) } 100% { box-shadow: 0 0 16px 6px #ffd060, 0 0 32px 12px rgba(255,208,96,.5) } }
@keyframes sls-crowd { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

.scn-forest-path-shadow { background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 30%, #2a3a3a 60%, #1a2a2a 100%), radial-gradient(ellipse at 50% 100%, #2a3a3a 0%, transparent 70%); }
.scn-forest-path-shadow .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 100%); animation: fps-sky 15s ease-in-out infinite alternate; }
.scn-forest-path-shadow .trees-back-left { position:absolute; bottom:30%; left:0; width:30%; height:70%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0; animation: fps-trees 8s ease-in-out infinite; }
.scn-forest-path-shadow .trees-back-right { position:absolute; bottom:30%; right:0; width:30%; height:70%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0; animation: fps-trees 8s ease-in-out infinite reverse; }
.scn-forest-path-shadow .trees-mid-left { position:absolute; bottom:25%; left:10%; width:15%; height:60%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 40% 0 0; transform: skewX(-5deg); animation: fps-trees 12s ease-in-out infinite; }
.scn-forest-path-shadow .trees-mid-right { position:absolute; bottom:25%; right:10%; width:15%; height:60%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 40% 0 0; transform: skewX(5deg); animation: fps-trees 12s ease-in-out infinite reverse; }
.scn-forest-path-shadow .path { position:absolute; bottom:15%; left:40%; width:20%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; transform: perspective(100px) rotateX(30deg); animation: fps-path 10s ease-in-out infinite; }
.scn-forest-path-shadow .figure-hester { position:absolute; bottom:25%; left:35%; width:20px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fps-walk 6s ease-in-out infinite; }
.scn-forest-path-shadow .figure-pearl { position:absolute; bottom:23%; left:40%; width:14px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fps-walk 6s ease-in-out infinite 0.5s; }
.scn-forest-path-shadow .mist { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(100,120,120,0.2) 50%, rgba(100,120,120,0.1) 100%); filter: blur(10px); animation: fps-mist 20s linear infinite; }
@keyframes fps-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes fps-trees { 0%,100% { transform: translateY(0) skewX(0deg) } 50% { transform: translateY(-2px) skewX(2deg) } }
@keyframes fps-path { 0%,100% { transform: perspective(100px) rotateX(30deg) translateY(0) } 50% { transform: perspective(100px) rotateX(30deg) translateY(-2px) } }
@keyframes fps-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-2deg) } 75% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes fps-mist { 0% { transform: translateX(-20px) } 100% { transform: translateX(100vw) } }

.scn-forest-path-shadow {
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 40%, #0a120a 100%), radial-gradient(ellipse at 50% 80%, #1a2a1a 0%, #050a05 100%);
}
.scn-forest-path-shadow .smoke-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(135deg, #4a5a4a 0%, #2a3a2a 50%, #1a2a1a 100%);
  animation: fps-sky 16s ease-in-out infinite alternate;
}
.scn-forest-path-shadow .tree-distant {
  position: absolute; bottom: 40%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(0deg, rgba(30,40,30,0.8) 0%, transparent 70%);
  border-radius: 20% 30% 10% 40% / 60% 50% 40% 30%;
  filter: blur(6px);
  animation: fps-sway 20s ease-in-out infinite;
}
.scn-forest-path-shadow .tree-mid {
  position: absolute; bottom: 30%; left: 15%; right: 10%; height: 40%;
  background: linear-gradient(0deg, #1a2a1a 0%, #2a3a2a 50%, transparent 100%);
  border-radius: 30% 20% 0 0 / 50% 40% 10% 10%;
  filter: blur(3px);
  animation: fps-sway 14s ease-in-out infinite reverse;
}
.scn-forest-path-shadow .ground-forest {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #0f170f 0%, #050a05 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
}
.scn-forest-path-shadow .path-winding {
  position: absolute; bottom: 10%; left: 30%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, #3a4a3a 0%, transparent 60%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  filter: blur(2px);
  animation: fps-path 8s ease-in-out infinite alternate;
}
.scn-forest-path-shadow .figure-hester {
  position: absolute; bottom: 8%; left: 42%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #0a0f0a 0%, #050a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fps-walk-hester 5s ease-in-out infinite;
}
.scn-forest-path-shadow .figure-pearl {
  position: absolute; bottom: 6%; left: 48%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #0a0f0a 0%, #050a05 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fps-walk-pearl 5s ease-in-out 0.3s infinite;
}
.scn-forest-path-shadow .leaf-drift {
  position: absolute; top: 20%; left: 10%; width: 8px; height: 12px;
  background: linear-gradient(135deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%;
  filter: blur(1px);
  animation: fps-leaf 30s linear infinite;
  animation-delay: -5s;
}
.scn-forest-path-shadow .vignette-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, transparent 30%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
}
@keyframes fps-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes fps-sway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(0.5deg); }
  100% { transform: translateX(-4px) rotate(-0.5deg); }
}
@keyframes fps-path {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.95) translateY(-1px); }
  100% { transform: scaleY(1) translateY(1px); }
}
@keyframes fps-walk-hester {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes fps-walk-pearl {
  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 fps-leaf {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 0.6; }
  25% { transform: translate(30px, 30px) rotate(45deg); opacity: 0.8; }
  50% { transform: translate(60px, 60px) rotate(90deg); opacity: 0.4; }
  75% { transform: translate(90px, 90px) rotate(135deg); opacity: 0.6; }
  100% { transform: translate(120px, 120px) rotate(180deg); opacity: 0; }
}
/* end per-scene blocks */
