/* 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-item-kings-ring {
  background: linear-gradient(135deg, #f5ecd0 0%, #d4bf90 40%, #e8dab0 100%),
              radial-gradient(ellipse at 50% 40%, #ffffff 0%, transparent 60%);
}
.scn-item-kings-ring .chamber-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8dab0 0%, #c4ae80 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.2);
  animation: ikr-wall 16s ease-in-out infinite alternate;
}
.scn-item-kings-ring .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.5);
  animation: ikr-table 10s ease-in-out infinite;
}
.scn-item-kings-ring .council-left {
  position: absolute; bottom: 25%; left: 5%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ikr-council 6s ease-in-out infinite alternate;
}
.scn-item-kings-ring .council-right {
  position: absolute; bottom: 25%; right: 5%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ikr-council 6s ease-in-out infinite alternate-reverse;
}
.scn-item-kings-ring .cranmer {
  position: absolute; bottom: 22%; left: 44%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ikr-cranmer 4s ease-in-out infinite;
}
.scn-item-kings-ring .ring-glow {
  position: absolute; bottom: 32%; left: 46%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd070 0%, #c09050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffc060, 0 0 60px 20px rgba(255,192,96,0.4);
  animation: ikr-ring 1.5s ease-in-out infinite alternate;
}
.scn-item-kings-ring .king-standing {
  position: absolute; bottom: 24%; left: 52%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0f0700 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ikr-king 8s ease-in-out infinite;
}
@keyframes ikr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ikr-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ikr-council { 0% { transform: translate(0, 0) rotate(-1deg); } 50% { transform: translate(2px, -2px) rotate(2deg); } 100% { transform: translate(0, 0) rotate(-1deg); } }
@keyframes ikr-cranmer { 0% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(2px, -1px) rotate(0); } 50% { transform: translate(0, -3px) rotate(2deg); } 75% { transform: translate(-2px, -1px) rotate(0); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes ikr-ring { 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.3) rotate(10deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); opacity: 0.85; } }
@keyframes ikr-king { 0%,100% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(3px, -2px) rotate(3deg); } }

/* Scene: christening-prophetcy-part1 (warm bright interior) */

.scn-epilogue {
  background:
    linear-gradient(180deg, #2a1a10 0%, #1a1008 60%, #0d0a04 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-epilogue .curtain-left {
  position: absolute;
  top: 0; left: 0;
  width: 40%; height: 100%;
  background: linear-gradient(90deg, #5e1a1d 0%, #7a2e2e 40%, #4a1215 70%, #2a080a 100%);
  border-radius: 0 20% 40% 0 / 0 30% 50% 0;
  transform-origin: left center;
  animation: ep-curtain-l 6s ease-in-out infinite alternate;
}
.scn-epilogue .curtain-right {
  position: absolute;
  top: 0; right: 0;
  width: 40%; height: 100%;
  background: linear-gradient(270deg, #5e1a1d 0%, #7a2e2e 40%, #4a1215 70%, #2a080a 100%);
  border-radius: 20% 0 0 40% / 30% 0 0 50%;
  transform-origin: right center;
  animation: ep-curtain-r 6s ease-in-out infinite alternate;
}
.scn-epilogue .stage-floor {
  position: absolute;
  bottom: 0; left: 10%; right: 10%;
  height: 30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-epilogue .spotlight {
  position: absolute;
  top: 0; left: 45%; right: 45%;
  height: 60%;
  background: linear-gradient(180deg, rgba(225,180,80,0.15) 0%, rgba(225,180,80,0.05) 50%, transparent 100%);
  clip-path: polygon(50% 0%, 10% 100%, 90% 100%);
  animation: ep-spotlight 8s ease-in-out infinite alternate;
}
.scn-epilogue .figure-a {
  position: absolute;
  bottom: 30%; left: 30%;
  width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ep-figure-a 3s ease-in-out infinite;
}
.scn-epilogue .figure-b {
  position: absolute;
  bottom: 30%; right: 30%;
  width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ep-figure-b 3.5s ease-in-out infinite;
}
.scn-epilogue .prop-hat {
  position: absolute;
  bottom: 42%; left: 50%;
  width: 18px; height: 10px;
  margin-left: -9px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 -2px 4px rgba(0,0,0,.5);
  animation: ep-hat 2s ease-in-out infinite;
}
@keyframes ep-curtain-l {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes ep-curtain-r {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.95); }
  100% { transform: scaleX(1); }
}
@keyframes ep-spotlight {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05) scaleX(1.02); }
  100% { opacity: 0.7; transform: scaleY(1); }
}
@keyframes ep-figure-a {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(4px) rotate(-3deg) scaleY(1.02); }
  50% { transform: translateX(0) rotate(3deg) scaleY(0.98); }
  75% { transform: translateX(-4px) rotate(-2deg) scaleY(1); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes ep-figure-b {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-3px) rotate(2deg) scaleY(0.98); }
  50% { transform: translateX(0) rotate(-2deg) scaleY(1.02); }
  75% { transform: translateX(3px) rotate(1deg) scaleY(1); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes ep-hat {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-4px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}

/* --- king-entrance-trial (tag: ket) --- */
.scn-king-entrance-trial {
  background: linear-gradient(180deg, #3a2a2a 0%, #1f1412 70%), radial-gradient(ellipse at 50% 30%, #5a3a30 0%, transparent 80%);
}
.scn-king-entrance-trial .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,18,15,.9) 0%, transparent 100%); animation: ket-bg 8s ease-in-out infinite alternate; }
.scn-king-entrance-trial .throne { position:absolute; bottom:20%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,.6); animation: ket-throne 12s ease-in-out infinite; }
.scn-king-entrance-trial .king-figure { position:absolute; bottom:28%; left:50%; width:70px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #261812 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 0 30px 10px rgba(200,100,40,.3); animation: ket-king 6s ease-in-out infinite; }
.scn-king-entrance-trial .council-left { position:absolute; bottom:22%; left:25%; width:50px; height:90px; background: linear-gradient(180deg, #2e1e14 0%, #1a0f0a 100%); border-radius: 50% 30% 10% 10% / 60% 40% 10% 10%; transform: skewY(5deg); animation: ket-council 10s ease-in-out infinite; }
.scn-king-entrance-trial .council-right { position:absolute; bottom:22%; right:25%; width:50px; height:90px; background: linear-gradient(180deg, #2e1e14 0%, #1a0f0a 100%); border-radius: 30% 50% 10% 10% / 40% 60% 10% 10%; transform: skewY(-5deg); animation: ket-council 10s ease-in-out infinite reverse; }
.scn-king-entrance-trial .torch-glow { position:absolute; bottom:40%; left:15%; width:20px; height:20px; background: radial-gradient(circle, #ffa050 0%, #ff7030 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,160,80,.3); animation: ket-torch 3s ease-in-out infinite alternate; }
.scn-king-entrance-trial .shadow-arch { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%); animation: ket-shadow 15s ease-in-out infinite alternate; }
.scn-king-entrance-trial .dust { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, rgba(200,150,100,.15) 0%, transparent 50%); animation: ket-dust 20s linear infinite; }
@keyframes ket-bg { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes ket-throne { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-4px) } }
@keyframes ket-king { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(0) translateY(-2px) } 100% { transform: translateX(-50%) rotate(2deg) } }
@keyframes ket-council { 0% { transform: skewY(5deg) translateY(0) } 50% { transform: skewY(5deg) translateY(-3px) } 100% { transform: skewY(5deg) translateY(0) } }
@keyframes ket-torch { 0% { opacity:.6; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }
@keyframes ket-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes ket-dust { 0% { transform: translateY(0) } 100% { transform: translateY(-30%) } }

/* --- king-reprimands-council (tag: krc) --- */
.scn-king-reprimands-council {
  background: linear-gradient(180deg, #2d1d1a 0%, #170f0c 70%), radial-gradient(ellipse at 50% 20%, #4a2e20 0%, transparent 70%);
}
.scn-king-reprimands-council .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,6,4,.9) 0%, transparent 100%); }
.scn-king-reprimands-council .king-large { position:absolute; bottom:20%; left:38%; width:100px; height:160px; background: linear-gradient(180deg, #5a3926 0%, #2e1c12 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: -10px 0 30px rgba(0,0,0,.7); animation: krc-king 8s ease-in-out infinite; }
.scn-king-reprimands-council .council-kneeling { position:absolute; bottom:22%; left:60%; width:60px; height:100px; background: linear-gradient(180deg, #3a2518 0%, #1f130a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform: rotate(8deg); animation: krc-council 5s ease-in-out infinite alternate; }
.scn-king-reprimands-council .table { position:absolute; bottom:15%; left:30%; width:150px; height:20px; background: linear-gradient(180deg, #4e3522 0%, #362316 100%); border-radius: 10% 10% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-king-reprimands-council .candle { position:absolute; bottom:38%; left:32%; width:8px; height:30px; background: linear-gradient(180deg, #f0d080 0%, #b08030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #d09040; animation: krc-candle 4s ease-in-out infinite alternate; }
.scn-king-reprimands-council .light-pool { position:absolute; bottom:10%; left:25%; width:200px; height:60px; background: radial-gradient(ellipse, rgba(240,200,100,.2) 0%, transparent 80%); animation: krc-pool 12s ease-in-out infinite alternate; }
.scn-king-reprimands-council .shadow-stripe { position:absolute; top:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 50%, rgba(0,0,0,.6) 100%); pointer-events:none; }
@keyframes krc-king { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-3px) } }
@keyframes krc-council { 0% { transform: rotate(8deg) translateY(0); opacity:.8 } 100% { transform: rotate(8deg) translateY(-5px); opacity:1 } }
@keyframes krc-candle { 0% { transform: scaleY(.95); opacity:.7 } 50% { transform: scaleY(1.05); opacity:1 } 100% { transform: scaleY(.98); opacity:.8 } }
@keyframes krc-pool { 0%,100% { opacity:.4 } 50% { opacity:.8 } }

/* --- king-reconciles-cranmer (tag: krc2) --- */
.scn-king-reconciles-cranmer {
  background: linear-gradient(180deg, #3d2c1e 0%, #231912 70%), radial-gradient(ellipse at 50% 40%, #6a4a2e 0%, transparent 70%);
}
.scn-king-reconciles-cranmer .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, rgba(60,35,20,.8) 0%, transparent 100%); animation: krc2-bg 12s ease-in-out infinite alternate; }
.scn-king-reconciles-cranmer .king-profile { position:absolute; bottom:20%; left:30%; width:80px; height:140px; background: linear-gradient(90deg, #4e3322 0%, #2f1f12 100%); border-radius: 60% 40% 20% 20% / 70% 50% 20% 20%; box-shadow: 10px 0 20px rgba(0,0,0,.5); animation: krc2-king 10s ease-in-out infinite; }
.scn-king-reconciles-cranmer .cranmer-figure { position:absolute; bottom:22%; right:30%; width:60px; height:110px; background: linear-gradient(90deg, #3b281a 0%, #1f140c 100%); border-radius: 40% 60% 20% 20% / 50% 60% 20% 20%; transform: scaleX(-1); animation: krc2-cranmer 12s ease-in-out infinite alternate; }
.scn-king-reconciles-cranmer .light-ray { position:absolute; top:10%; left:40%; width:80px; height:200px; background: linear-gradient(180deg, rgba(255,200,100,.3) 0%, transparent 100%); transform: rotate(15deg); filter: blur(4px); animation: krc2-ray 6s ease-in-out infinite; }
.scn-king-reconciles-cranmer .column { position:absolute; bottom:10%; left:10%; width:30px; height:300px; background: linear-gradient(180deg, #5a4030 0%, #34241a 100%); border-radius: 10% 10% 0 0; box-shadow: inset -10px 0 10px rgba(0,0,0,.5); }
.scn-king-reconciles-cranmer .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a281a 0%, #1e140c 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
@keyframes krc2-bg { 0%,100% { opacity:.6 } 50% { opacity:1 } }
@keyframes krc2-king { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(-2deg) translateY(-4px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes krc2-cranmer { 0% { transform: scaleX(-1) rotate(0) } 100% { transform: scaleX(-1) rotate(5deg) translateY(-5px) } }
@keyframes krc2-ray { 0%,100% { opacity:.3; transform: rotate(15deg) scaleY(.9) } 50% { opacity:.6; transform: rotate(18deg) scaleY(1.1) } }

/* --- king-final-blessing (tag: kfb) --- */
.scn-king-final-blessing {
  background: linear-gradient(180deg, #4a3528 0%, #2a1c12 70%), radial-gradient(ellipse at 50% 30%, #7a5a40 0%, transparent 80%);
}
.scn-king-final-blessing .bg-soft { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(200,150,100,.2) 0%, transparent 70%); animation: kfb-bg 14s ease-in-out infinite alternate; }
.scn-king-final-blessing .king-blessing { position:absolute; bottom:20%; left:35%; width:80px; height:150px; background: linear-gradient(180deg, #5a3e2a 0%, #2e1d12 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: kfb-king 8s ease-in-out infinite; }
.scn-king-final-blessing .baby-swaddled { position:absolute; bottom:28%; left:50%; width:40px; height:50px; background: radial-gradient(ellipse, #f0e0d0 0%, #d0b8a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 30px 10px rgba(255,220,180,.5); animation: kfb-baby 6s ease-in-out infinite alternate; }
.scn-king-final-blessing .candle-altar { position:absolute; bottom:15%; left:60%; width:10px; height:40px; background: linear-gradient(180deg, #f0c080 0%, #b08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px #d09050; animation: kfb-candle 4s ease-in-out infinite alternate; }
.scn-king-final-blessing .halo-glow { position:absolute; top:20%; left:35%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,220,140,.4) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: kfb-halo 10s ease-in-out infinite; }
.scn-king-final-blessing .cross-symbol { position:absolute; top:5%; right:20%; width:40px; height:60px; background: linear-gradient(180deg, #8a6a50 0%, #4a3020 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; transform: rotate(10deg); animation: kfb-cross 20s ease-in-out infinite alternate; }
.scn-king-final-blessing .holy-light { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, rgba(255,240,180,.15) 0%, transparent 80%); animation: kfb-light 6s ease-in-out infinite alternate; }
@keyframes kfb-bg { 0%,100% { opacity:.5 } 50% { opacity:1 } }
@keyframes kfb-king { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-4px) } 100% { transform: rotate(-7deg) translateY(0) } }
@keyframes kfb-baby { 0% { transform: scale(1) } 100% { transform: scale(1.05) translateY(-2px) } }
@keyframes kfb-candle { 0% { transform: scaleY(.9); opacity:.8 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(.95); opacity:.9 } }
@keyframes kfb-halo { 0%,100% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } }
@keyframes kfb-cross { 0% { transform: rotate(10deg) } 100% { transform: rotate(15deg) translateY(-5px) } }
@keyframes kfb-light { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.5 } }

.scn-porter-and-man-argue {
  background: linear-gradient(180deg, #87ceeb 0%, #f5deb3 60%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 80%, #ffd700 0%, transparent 60%);
}
.scn-porter-and-man-argue .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%); animation: pma-sky 10s ease-in-out infinite alternate; }
.scn-porter-and-man-argue .sun { position:absolute; top:12%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.5); animation: pma-sun 4s ease-in-out infinite; }
.scn-porter-and-man-argue .column-left { position:absolute; bottom:40%; left:10%; width:20px; height:60%; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 40%, #8b4513 100%); border-radius:8px; box-shadow: 2px 0 8px rgba(0,0,0,0.3); }
.scn-porter-and-man-argue .column-right { position:absolute; bottom:40%; right:10%; width:20px; height:60%; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 40%, #8b4513 100%); border-radius:8px; box-shadow: -2px 0 8px rgba(0,0,0,0.3); }
.scn-porter-and-man-argue .porter { position:absolute; bottom:42%; left:35%; width:30px; height:45px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pma-porter 1.2s ease-in-out infinite; }
.scn-porter-and-man-argue .man { position:absolute; bottom:42%; right:35%; width:28px; height:44px; background: linear-gradient(180deg, #a0522d 0%, #6b3e1b 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pma-man 1.4s ease-in-out infinite; }
.scn-porter-and-man-argue .crowd-silhouettes { position:absolute; bottom:40%; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.2) 8px, transparent 8px, transparent 12px); animation: pma-crowd 5s ease-in-out infinite alternate; }
@keyframes pma-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pma-sun { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-4px) } 100% { transform: scale(1) translateY(2px) } }
@keyframes pma-porter { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(3deg) translateY(-2px) } 50% { transform: rotate(-2deg) translateY(1px) } 75% { transform: rotate(4deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes pma-man { 0% { transform: rotate(4deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-1px) } 50% { transform: rotate(5deg) translateY(2px) } 75% { transform: rotate(-4deg) translateY(-2px) } 100% { transform: rotate(4deg) translateY(0) } }
@keyframes pma-crowd { 0% { opacity: 0.3; transform: translateX(0) } 50% { opacity: 0.6; transform: translateX(5px) } 100% { opacity: 0.4; transform: translateX(-5px) } }

.scn-man-crowd-stories {
  background: linear-gradient(180deg, #b0e0e6 0%, #f0e68c 50%, #deb887 100%),
              radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 60%);
}
.scn-man-crowd-stories .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #add8e6 0%, #b0e0e6 100%); animation: mcs-sky 12s ease-in-out infinite alternate; }
.scn-man-crowd-stories .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #deb887 0%, #c4a882 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-man-crowd-stories .storyteller { position:absolute; bottom:45%; left:50%; width:32px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #a0522d 0%, #6b3e1b 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mcs-storyteller 2s ease-in-out infinite; }
.scn-man-crowd-stories .crowd-left { position:absolute; bottom:45%; left:5%; width:20px; height:30px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mcs-crowd-left 3s ease-in-out infinite; }
.scn-man-crowd-stories .crowd-right { position:absolute; bottom:45%; right:5%; width:18px; height:28px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mcs-crowd-right 2.5s ease-in-out infinite; }
.scn-man-crowd-stories .crowd-center { position:absolute; bottom:45%; left:40%; width:16px; height:26px; background: linear-gradient(180deg, #a0522d 0%, #6b3e1b 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: mcs-crowd-center 4s ease-in-out infinite; }
.scn-man-crowd-stories .barrel { position:absolute; bottom:48%; left:70%; width:24px; height:20px; background: linear-gradient(180deg, #d2b48c 0%, #8b4513 100%); border-radius: 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: mcs-barrel 5s ease-in-out infinite; }
@keyframes mcs-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes mcs-storyteller { 0% { transform: translateX(-50%) rotate(0) translateY(0) } 25% { transform: translateX(-50%) rotate(5deg) translateY(-3px) } 50% { transform: translateX(-50%) rotate(-3deg) translateY(1px) } 75% { transform: translateX(-50%) rotate(4deg) translateY(-2px) } 100% { transform: translateX(-50%) rotate(0) translateY(0) } }
@keyframes mcs-crowd-left { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes mcs-crowd-right { 0% { transform: translateY(1px) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mcs-crowd-center { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mcs-barrel { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }

.scn-man-fight-tales {
  background: linear-gradient(180deg, #e0b26a 0%, #f5deb3 40%, #deb887 100%),
              radial-gradient(ellipse at 50% 70%, #ffd700 0%, transparent 50%);
}
.scn-man-fight-tales .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffd700 0%, #ffec8b 100%); animation: mft-sky 8s ease-in-out infinite alternate; }
.scn-man-fight-tales .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c4a882 0%, #a0522d 100%); border-radius: 40% 60% 0 0 / 70% 50% 0 0; }
.scn-man-fight-tales .fighter { position:absolute; bottom:40%; left:30%; width:34px; height:48px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mft-fighter 0.8s ease-in-out infinite; }
.scn-man-fight-tales .truncheon { position:absolute; bottom:45%; left:30%; width:6px; height:24px; background: linear-gradient(180deg, #a0522d 0%, #6b3e1b 100%); border-radius:2px; transform-origin: bottom left; animation: mft-truncheon 0.8s ease-in-out infinite; }
.scn-man-fight-tales .victim { position:absolute; bottom:35%; right:25%; width:30px; height:40px; background: linear-gradient(180deg, #6b3e1b 0%, #3a1e0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(45deg); animation: mft-victim 1.5s ease-in-out infinite; }
.scn-man-fight-tales .crowd-bg { position:absolute; bottom:35%; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.2) 6px, transparent 6px, transparent 10px); animation: mft-crowd 3s ease-in-out infinite alternate; }
.scn-man-fight-tales .dust { position:absolute; bottom:40%; left:40%; width:20px; height:20px; border-radius:50%; background: rgba(210,180,140,0.4); filter: blur(4px); animation: mft-dust 1.2s ease-in-out infinite; }
@keyframes mft-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes mft-fighter { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-10deg) translateY(-3px) } 50% { transform: rotate(5deg) translateY(0) } 75% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes mft-truncheon { 0% { transform: rotate(0) } 25% { transform: rotate(-30deg) } 50% { transform: rotate(10deg) } 75% { transform: rotate(-20deg) } 100% { transform: rotate(0) } }
@keyframes mft-victim { 0% { transform: rotate(45deg) translateY(0) } 25% { transform: rotate(50deg) translateY(-5px) } 50% { transform: rotate(40deg) translateY(2px) } 75% { transform: rotate(55deg) translateY(-3px) } 100% { transform: rotate(45deg) translateY(0) } }
@keyframes mft-crowd { 0% { opacity: 0.3; transform: translateX(0) } 50% { opacity: 0.6; transform: translateX(3px) } 100% { opacity: 0.4; transform: translateX(-3px) } }
@keyframes mft-dust { 0% { transform: translate(0,0) scale(1); opacity:0.4 } 50% { transform: translate(8px,-8px) scale(1.5); opacity:0.2 } 100% { transform: translate(0,0) scale(1); opacity:0.4 } }

.scn-chamberlain-arrives {
  background: linear-gradient(180deg, #f0e68c 0%, #deb887 40%, #d2b48c 100%),
              radial-gradient(ellipse at 50% 60%, #ffd700 0%, transparent 60%);
}
.scn-chamberlain-arrives .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffec8b 0%, #f0e68c 100%); animation: ca-sky 10s ease-in-out infinite alternate; }
.scn-chamberlain-arrives .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #c4a882 0%, #a0522d 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; }
.scn-chamberlain-arrives .door-frame { position:absolute; bottom:30%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-chamberlain-arrives .door { position:absolute; bottom:32%; left:45%; width:36px; height:64px; background: linear-gradient(180deg, #a0522d 0%, #6b3e1b 100%); border-radius: 3px; transform-origin: left center; animation: ca-door 3s ease-in-out infinite; }
.scn-chamberlain-arrives .chamberlain { position:absolute; bottom:38%; left:50%; width:30px; height:46px; transform:translateX(-50%); background: linear-gradient(180deg, #a0522d 0%, #6b3e1b 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ca-chamberlain 2s ease-in-out infinite; }
.scn-chamberlain-arrives .crowd-left { position:absolute; bottom:45%; left:10%; width:18px; height:26px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ca-crowd-left 4s ease-in-out infinite; }
.scn-chamberlain-arrives .crowd-right { position:absolute; bottom:45%; right:10%; width:16px; height:24px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ca-crowd-right 3.5s ease-in-out infinite; }
.scn-chamberlain-arrives .shadow-splash { position:absolute; bottom:36%; left:48%; width:20px; height:10px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(3px); animation: ca-shadow 2.5s ease-in-out infinite; }
@keyframes ca-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ca-door { 0% { transform: scaleX(1) } 25% { transform: scaleX(0.2) translateX(-2px) } 50% { transform: scaleX(1) } 75% { transform: scaleX(0.2) translateX(-2px) } 100% { transform: scaleX(1) } }
@keyframes ca-chamberlain { 0% { transform: translateX(-50%) rotate(0) translateY(0) } 25% { transform: translateX(-50%) rotate(3deg) translateY(-2px) } 50% { transform: translateX(-50%) rotate(-2deg) translateY(1px) } 75% { transform: translateX(-50%) rotate(4deg) translateY(-3px) } 100% { transform: translateX(-50%) rotate(0) translateY(0) } }
@keyframes ca-crowd-left { 0% { transform: translateX(0) } 50% { transform: translateX(10px) } 100% { transform: translateX(-5px) } }
@keyframes ca-crowd-right { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(4px) } }
@keyframes ca-shadow { 0% { transform: scale(1); opacity:0.2 } 25% { transform: scale(1.5); opacity:0.4 } 50% { transform: scale(0.8); opacity:0.1 } 75% { transform: scale(1.3); opacity:0.3 } 100% { transform: scale(1); opacity:0.2 } }

/* scene: king-cranmer-summoned */
.scn-king-cranmer-summoned {
  background:
    linear-gradient(180deg, #1a1a24 0%, #26262f 40%, #121214 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a22 0%, transparent 70%);
}
.scn-king-cranmer-summoned .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a30 0%, #1a1a24 100%); animation: kcs-wall 20s ease-in-out infinite alternate; }
.scn-king-cranmer-summoned .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 0 0 4px 4px; box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-king-cranmer-summoned .throne { position:absolute; bottom:32%; left:30%; width:80px; height:90px; background: linear-gradient(135deg, #3a2e24 0%, #1f1813 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: kcs-throne 12s ease-in-out infinite; }
.scn-king-cranmer-summoned .figure-kneeling { position:absolute; bottom:28%; left:45%; width:28px; height:40px; background: linear-gradient(180deg, #2a1e1e 0%, #0e0908 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kcs-kneel 4s ease-in-out infinite; }
.scn-king-cranmer-summoned .figure-standing { position:absolute; bottom:26%; left:58%; width:30px; height:52px; background: linear-gradient(180deg, #1f1a1a 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kcs-stand 3s ease-in-out infinite; }
.scn-king-cranmer-summoned .torch-left { position:absolute; bottom:40%; left:20%; width:8px; height:14px; background: #a8633a; border-radius: 50% 50% 40% 40%; box-shadow: 0 0 20px 6px rgba(168,99,58,.7), 0 0 40px 12px rgba(168,99,58,.3); animation: kcs-torch 1.2s ease-in-out infinite alternate; }
.scn-king-cranmer-summoned .torch-right { position:absolute; bottom:40%; right:20%; width:8px; height:14px; background: #a8633a; border-radius: 50% 50% 40% 40%; box-shadow: 0 0 20px 6px rgba(168,99,58,.7), 0 0 40px 12px rgba(168,99,58,.3); animation: kcs-torch 1.5s ease-in-out infinite alternate-reverse; }
.scn-king-cranmer-summoned .shadow-sweep { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 60%); animation: kcs-shadow 8s ease-in-out infinite alternate; }
@keyframes kcs-wall { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes kcs-throne { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes kcs-kneel { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes kcs-stand { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes kcs-torch { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.2) } 100% { opacity:.7; transform: scaleY(0.9) } }
@keyframes kcs-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* scene: king-cranmer-ring */
.scn-king-cranmer-ring {
  background:
    linear-gradient(180deg, #2a1e14 0%, #3a2a1a 40%, #120c08 100%),
    radial-gradient(ellipse at 60% 50%, #5a4026 0%, transparent 70%);
}
.scn-king-cranmer-ring .bg-hearth { position:absolute; bottom:45%; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a3422 0%, #1e150e 100%); border-radius: 40% 40% 0 0; animation: kcr-hearth 20s ease-in-out infinite; }
.scn-king-cranmer-ring .floor-warm { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%); box-shadow: inset 0 8px 10px rgba(0,0,0,.5); }
.scn-king-cranmer-ring .king-figure { position:absolute; bottom:30%; left:35%; width:55px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kcr-king 6s ease-in-out infinite; }
.scn-king-cranmer-ring .king-arm { position:absolute; bottom:40%; left:43%; width:40px; height:14px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius: 50% 50% 40% 40%; transform-origin: right center; animation: kcr-arm 5s ease-in-out infinite alternate; }
.scn-king-cranmer-ring .ring-glow { position:absolute; bottom:42%; left:52%; width:14px; height:14px; background: radial-gradient(circle, #d4a040 0%, #b08030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(212,160,64,.8), 0 0 60px 20px rgba(212,160,64,.4); animation: kcr-ring 2s ease-in-out infinite alternate; }
.scn-king-cranmer-ring .cranmer-figure { position:absolute; bottom:28%; left:55%; width:28px; height:48px; background: linear-gradient(180deg, #2a1e1a 0%, #120c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: kcr-cranmer 4s ease-in-out infinite; }
.scn-king-cranmer-ring .fire-glow { position:absolute; bottom:35%; left:20%; width:40px; height:50px; background: radial-gradient(ellipse, #e08040 0%, #c06030 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: kcr-fire 1.5s ease-in-out infinite alternate; }
@keyframes kcr-hearth { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes kcr-king { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes kcr-arm { 0% { transform: rotate(-20deg) } 100% { transform: rotate(10deg) } }
@keyframes kcr-ring { 0% { opacity:.7; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(.95) } }
@keyframes kcr-cranmer { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes kcr-fire { 0% { transform: scale(1) } 100% { transform: scale(1.15) } }

/* scene: old-lady-news */
.scn-old-lady-news {
  background:
    linear-gradient(180deg, #141020 0%, #1c1a2a 30%, #08080e 100%),
    radial-gradient(ellipse at 40% 60%, #2a1e2a 0%, transparent 70%);
}
.scn-old-lady-news .bg-curtains { position:absolute; inset:0; background: linear-gradient(135deg, #1a1220 0%, #2a1e30 40%, #0e0a12 100%); animation: ol-curtain 30s ease-in-out infinite alternate; }
.scn-old-lady-news .bed-canopy { position:absolute; bottom:35%; left:20%; width:120px; height:50px; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 -4px 12px rgba(0,0,0,.4); animation: ol-canopy 8s ease-in-out infinite; }
.scn-old-lady-news .queen-figure { position:absolute; bottom:24%; left:30%; width:34px; height:46px; background: linear-gradient(180deg, #2a1e2a 0%, #100a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ol-queen 5s ease-in-out infinite; }
.scn-old-lady-news .old-lady-figure { position:absolute; bottom:22%; left:55%; width:26px; height:44px; background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ol-old 7s ease-in-out infinite; }
.scn-old-lady-news .candle { position:absolute; bottom:30%; left:45%; width:6px; height:20px; background: #4a3a1a; border-radius: 20% 20% 10% 10%; animation: ol-candle 3s ease-in-out infinite; }
.scn-old-lady-news .candle-glow { position:absolute; bottom:32%; left:44.5%; width:12px; height:12px; background: radial-gradient(circle, #e0b060 0%, #c08040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 12px rgba(224,176,96,.6), 0 0 80px 24px rgba(224,176,96,.3); animation: ol-glow 2.5s ease-in-out infinite alternate; }
.scn-old-lady-news .fabric-fold { position:absolute; bottom:30%; left:15%; width:30px; height:20px; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius: 40%; filter: blur(2px); animation: ol-fold 12s ease-in-out infinite; }
@keyframes ol-curtain { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ol-canopy { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ol-queen { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes ol-old { 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 ol-candle { 0%,100% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } }
@keyframes ol-glow { 0% { opacity:.6; transform: scale(1) } 100% { opacity:1; transform: scale(1.3) } }
@keyframes ol-fold { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(0) } }

/* scene: cranmer-waiting */
.scn-cranmer-waiting {
  background:
    linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 30%, #b8b0a0 100%),
    radial-gradient(ellipse at 60% 50%, #f0e8d8 0%, transparent 60%);
}
.scn-cranmer-waiting .bg-council { position:absolute; inset:0; background: linear-gradient(135deg, #d8d0c0 0%, #c8c0b0 100%); animation: cw-bg 20s ease-in-out infinite alternate; }
.scn-cranmer-waiting .floor-light { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8c0b0 0%, #a09888 100%); border-radius: 0 0 4px 4px; box-shadow: inset 0 6px 10px rgba(0,0,0,.15); }
.scn-cranmer-waiting .door { position:absolute; bottom:20%; left:35%; width:80px; height:110px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: cw-door 10s ease-in-out infinite; }
.scn-cranmer-waiting .keeper-figure { position:absolute; bottom:18%; left:32%; width:30px; height:52px; background: linear-gradient(180deg, #3a2e22 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cw-keeper 4s ease-in-out infinite; }
.scn-cranmer-waiting .cranmer-figure { position:absolute; bottom:16%; left:55%; width:28px; height:50px; background: linear-gradient(180deg, #4a3e32 0%, #2a2218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cw-cranmer 3s ease-in-out infinite; }
.scn-cranmer-waiting .window-light { position:absolute; top:20%; right:15%; width:40px; height:60px; background: radial-gradient(ellipse, #fff8e0 0%, #e8d8b0 60%, transparent 100%); border-radius: 10%; box-shadow: 0 0 50px 20px rgba(255,248,224,.4); animation: cw-window 6s ease-in-out infinite alternate; }
.scn-cranmer-waiting .doctor-figure { position:absolute; bottom:14%; left:70%; width:26px; height:48px; background: linear-gradient(180deg, #3a3026 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cw-doctor 2s ease-in-out infinite; }
.scn-cranmer-waiting .shadow-sharp { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, rgba(0,0,0,.1) 0%, transparent 100%); animation: cw-shadow 8s ease-in-out infinite alternate; }
@keyframes cw-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes cw-door { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cw-keeper { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes cw-cranmer { 0% { transform: translateX(0); rotate(0) } 25% { transform: translateX(3px); rotate(1deg) } 50% { transform: translateX(0); rotate(0) } 75% { transform: translateX(-3px); rotate(-1deg) } 100% { transform: translateX(0); rotate(0) } }
@keyframes cw-window { 0% { opacity:.6; transform: scale(.95) } 100% { opacity:1; transform: scale(1.05) } }
@keyframes cw-doctor { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes cw-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }

.scn-queen-katharine-appeal {
  background: linear-gradient(180deg, #e8d5b0 0%, #c8a87a 40%, #8a6a4a 100%),
              radial-gradient(ellipse at 40% 30%, #f0e0c0 0%, transparent 60%);
}
.scn-queen-katharine-appeal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.3);
}
.scn-queen-katharine-appeal .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(90deg, #d4c0a0 0%, #c0a880 50%, #d4c0a0 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
}
.scn-queen-katharine-appeal .window {
  position: absolute; top: 8%; left: 15%; width: 32%; height: 45%;
  background: radial-gradient(ellipse at 50% 50%, #ffe0b0 0%, #c0a070 70%, #8a6a4a 100%);
  border: 6px solid #6a4a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,200,100,0.3);
  animation: qka-window 6s ease-in-out infinite alternate;
}
.scn-queen-katharine-appeal .light-beam {
  position: absolute; top: 10%; left: 20%; width: 10%; height: 65%;
  background: linear-gradient(180deg, rgba(255,220,150,0.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(8px);
  animation: qka-beam 4s ease-in-out infinite alternate;
}
.scn-queen-katharine-appeal .queen {
  position: absolute; bottom: 25%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #a07050 0%, #604030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: qka-queen 3s ease-in-out infinite;
}
.scn-queen-katharine-appeal .crown {
  position: absolute; bottom: 85%; left: 42%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #c8a040 0%, #a08020 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 10px rgba(200,160,64,0.5);
  animation: qka-crown 4s ease-in-out infinite alternate;
}
.scn-queen-katharine-appeal .guard {
  position: absolute; bottom: 20%; left: 70%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: qka-guard 5s ease-in-out infinite;
}
@keyframes qka-window { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.95; transform: scaleY(0.98); } }
@keyframes qka-beam { 0% { opacity: 0.1; transform: skewX(-10deg) translateX(0); } 50% { opacity: 0.3; transform: skewX(-8deg) translateX(5px); } 100% { opacity: 0.2; transform: skewX(-12deg) translateX(-3px); } }
@keyframes qka-queen { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes qka-crown { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes qka-guard { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-queen-challenges-wolsey {
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a080 40%, #7a5a4a 100%),
              radial-gradient(ellipse at 60% 40%, #e8d8c0 0%, transparent 60%);
}
.scn-queen-challenges-wolsey .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}
.scn-queen-challenges-wolsey .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 20%;
  background: linear-gradient(90deg, #c8b09a 0%, #a8907a 50%, #c8b09a 100%);
  border-radius: 0 0 8% 8%;
}
.scn-queen-challenges-wolsey .queen {
  position: absolute; bottom: 20%; left: 25%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #b08060 0%, #604030 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: qcw-queen 2.5s ease-in-out infinite;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-queen-challenges-wolsey .cardinal {
  position: absolute; bottom: 20%; left: 65%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #a03030 0%, #701818 100%);
  border-radius: 35% 35% 25% 25% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: qcw-cardinal 3s ease-in-out infinite alternate;
  box-shadow: 0 6px 14px rgba(0,0,0,0.4);
}
.scn-queen-challenges-wolsey .table {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  transform: translateX(-50%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-queen-challenges-wolsey .candle {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 12px 4px #e0a040, 0 0 24px 8px rgba(224,160,64,0.4);
  animation: qcw-candle 2s ease-in-out infinite alternate;
}
.scn-queen-challenges-wolsey .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 10px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: qcw-shadow 4s ease-in-out infinite;
}
@keyframes qcw-queen { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(4px) rotate(2deg); } 60% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes qcw-cardinal { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes qcw-candle { 0% { box-shadow: 0 0 8px 2px #e0a040; opacity: 0.8; } 50% { box-shadow: 0 0 20px 6px #ffc060; opacity: 1; } 100% { box-shadow: 0 0 12px 4px #e0a040; opacity: 0.9; } }
@keyframes qcw-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.7; } 100% { transform: scaleX(0.9); opacity: 0.4; } }

.scn-king-praises-kate {
  background: linear-gradient(180deg, #f0d8b0 0%, #d4b88a 40%, #a08050 100%),
              radial-gradient(ellipse at 50% 30%, #ffecd0 0%, transparent 60%);
}
.scn-king-praises-kate .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, rgba(255,220,150,0.1) 0%, transparent 70%);
  animation: kpk-bg 10s ease-in-out infinite alternate;
}
.scn-king-praises-kate .throne {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 140px;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a30 100%);
  transform: translateX(-50%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: kpk-throne 8s ease-in-out infinite;
}
.scn-king-praises-kate .king {
  position: absolute; bottom: 20%; left: 55%; width: 55px; height: 120px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: kpk-king 6s ease-in-out infinite;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-king-praises-kate .kate {
  position: absolute; bottom: 20%; left: 38%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #b08060 0%, #604030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kpk-kate 5s ease-in-out infinite alternate;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.scn-king-praises-kate .halo {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,230,150,0.4) 0%, transparent 70%);
  transform: translateX(-50%);
  filter: blur(10px);
  animation: kpk-halo 4s ease-in-out infinite alternate;
}
.scn-king-praises-kate .rose {
  position: absolute; bottom: 28%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b87878 0%, #702243 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(120,30,40,0.3);
  animation: kpk-rose 3s ease-in-out infinite;
}
.scn-king-praises-kate .glow {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(ellipse, rgba(255,200,100,0.15) 0%, transparent 70%);
  filter: blur(15px);
  animation: kpk-glow 7s ease-in-out infinite;
}
@keyframes kpk-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes kpk-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes kpk-king { 0% { transform: translateX(0) rotate(0); } 40% { transform: translateX(-3px) rotate(1deg); } 70% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kpk-kate { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes kpk-halo { 0% { opacity: 0.4; transform: translateX(-50%) scale(1); } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.5; transform: translateX(-50%) scale(0.9); } }
@keyframes kpk-rose { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.2) rotate(30deg); } 100% { transform: scale(0.9) rotate(-20deg); } }
@keyframes kpk-glow { 0% { opacity: 0.1; transform: scale(1); } 50% { opacity: 0.3; transform: scale(1.2); } 100% { opacity: 0.15; transform: scale(0.9); } }

.scn-king-justifies-divorce {
  background: linear-gradient(180deg, #d4c0a8 0%, #b8a080 40%, #7a5a3a 100%),
              radial-gradient(ellipse at 50% 35%, #e8d8c0 0%, transparent 60%);
}
.scn-king-justifies-divorce .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,180,0.1) 0%, transparent 70%);
  animation: kjd-bg 12s ease-in-out infinite alternate;
}
.scn-king-justifies-divorce .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a503a 0%, #3a2a1a 100%);
  box-shadow: inset 0 10px 16px rgba(0,0,0,0.3);
}
.scn-king-justifies-divorce .king {
  position: absolute; bottom: 15%; left: 52%; width: 60px; height: 130px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: kjd-king 7s ease-in-out infinite;
  box-shadow: 0 6px 14px rgba(0,0,0,0.3);
}
.scn-king-justifies-divorce .cardinal {
  position: absolute; bottom: 15%; left: 35%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #703030 0%, #501818 100%);
  border-radius: 35% 35% 25% 25% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kjd-cardinal 6s ease-in-out infinite alternate;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-king-justifies-divorce .scroll {
  position: absolute; bottom: 25%; left: 48%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c0a070 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: kjd-scroll 5s ease-in-out infinite;
}
.scn-king-justifies-divorce .candle {
  position: absolute; bottom: 22%; left: 55%; width: 5px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #c08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 3px #e0a040, 0 0 20px 6px rgba(224,160,64,0.3);
  animation: kjd-candle 3s ease-in-out infinite alternate;
}
.scn-king-justifies-divorce .lamp {
  position: absolute; top: 15%; left: 70%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #ffc080 0%, #a06020 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,192,128,0.4);
  animation: kjd-lamp 8s ease-in-out infinite alternate;
}
@keyframes kjd-bg { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes kjd-king { 0% { transform: translateX(0) rotate(0); } 40% { transform: translateX(2px) rotate(1deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kjd-cardinal { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes kjd-scroll { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(1px); } }
@keyframes kjd-candle { 0% { box-shadow: 0 0 6px 2px #e0a040; opacity: 0.8; } 50% { box-shadow: 0 0 16px 5px #ffc060; opacity: 1; } 100% { box-shadow: 0 0 8px 3px #e0a040; opacity: 0.9; } }
@keyframes kjd-lamp { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }

/* Scene 1: king-private-chamber */
.scn-king-private-chamber {
  background: linear-gradient(170deg, #0d0d1a 0%, #1a1628 40%, #2a1e30 100%),
              radial-gradient(ellipse at 70% 60%, rgba(80,50,40,0.3) 0%, transparent 60%);
}
.scn-king-private-chamber .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, transparent 0%, #1a1628 100%);
  animation: kpc-wall 12s ease-in-out infinite alternate;
}
.scn-king-private-chamber .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0d0d1a 0%, #1a1628 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.6);
}
.scn-king-private-chamber .king {
  position: absolute; bottom: 28%; left: 42%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #1a1628 0%, #0d0d1a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: kpc-king 6s ease-in-out infinite;
}
.scn-king-private-chamber .candle {
  position: absolute; bottom: 32%; left: 60%; width: 1.5%; height: 6%;
  background: linear-gradient(180deg, #c08040 0%, #8a5a2a 50%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: kpc-candle 2s ease-in-out infinite alternate;
}
.scn-king-private-chamber .candle-glow {
  position: absolute; bottom: 36%; left: 58%; width: 8%; height: 10%;
  background: radial-gradient(circle, #f0c060 0%, #d09040 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: kpc-glow 3s ease-in-out infinite alternate;
}
.scn-king-private-chamber .curtain {
  position: absolute; top: 0; right: 0; width: 12%; height: 100%;
  background: linear-gradient(90deg, #1a1628 0%, #2a1e30 50%, #1a1628 100%);
  border-radius: 0 0 0 30% / 0 0 0 40%;
  animation: kpc-curtain 15s ease-in-out infinite alternate;
}
.scn-king-private-chamber .shadow-pool {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: kpc-shadow 8s ease-in-out infinite;
}
@keyframes kpc-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes kpc-king {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(0.98) translateY(0); }
}
@keyframes kpc-candle {
  0% { transform: scaleY(1) rotate(0deg); }
  25% { transform: scaleY(1.05) rotate(1deg); }
  75% { transform: scaleY(0.95) rotate(-1deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes kpc-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.9); }
}
@keyframes kpc-curtain {
  0% { transform: translateX(0); }
  100% { transform: translateX(-8px); }
}
@keyframes kpc-shadow {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.2); }
  100% { opacity: 0.7; transform: scaleX(0.9); }
}

/* Scene 2: king-dismisses-lords */
.scn-king-dismisses-lords {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%),
              radial-gradient(ellipse at 50% 70%, rgba(100,100,120,0.2) 0%, transparent 80%);
}
.scn-king-dismisses-lords .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 100%);
  animation: kdl-bg 10s ease-in-out infinite alternate;
}
.scn-king-dismisses-lords .throne {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
}
.scn-king-dismisses-lords .king {
  position: absolute; bottom: 32%; left: 44%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: kdl-king 2s ease-in-out infinite;
}
.scn-king-dismisses-lords .lord-a {
  position: absolute; bottom: 25%; left: 20%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kdl-lord-a 1.5s ease-in-out infinite alternate;
}
.scn-king-dismisses-lords .lord-b {
  position: absolute; bottom: 22%; left: 28%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kdl-lord-b 2.2s ease-in-out infinite alternate;
}
.scn-king-dismisses-lords .scepter {
  position: absolute; bottom: 55%; left: 49%; width: 2%; height: 20%;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: kdl-scepter 1s ease-in-out infinite alternate;
}
.scn-king-dismisses-lords .shadow {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: kdl-shadow 3s ease-in-out infinite alternate;
}
@keyframes kdl-bg {
  0% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes kdl-king {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(2deg); }
  70% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes kdl-lord-a {
  0% { transform: translateX(0) scaleY(1); }
  100% { transform: translateX(-5px) scaleY(0.95); }
}
@keyframes kdl-lord-b {
  0% { transform: translateX(0) scaleY(1); }
  100% { transform: translateX(-8px) scaleY(0.9); }
}
@keyframes kdl-scepter {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes kdl-shadow {
  0% { opacity: 0.6; transform: scaleX(1); }
  100% { opacity: 0.8; transform: scaleX(1.1); }
}

/* Scene 3: wolsey-presents-campeius */
.scn-wolsey-presents-campeius {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #4a3a2a 100%),
              radial-gradient(ellipse at 60% 50%, rgba(200,150,80,0.3) 0%, transparent 70%);
}
.scn-wolsey-presents-campeius .backdrop {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 100%);
  animation: wpc-backdrop 15s ease-in-out infinite alternate;
}
.scn-wolsey-presents-campeius .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-wolsey-presents-campeius .wolsey {
  position: absolute; bottom: 25%; left: 25%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: wpc-wolsey 8s ease-in-out infinite;
}
.scn-wolsey-presents-campeius .campeius {
  position: absolute; bottom: 22%; left: 55%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: wpc-campeius 10s ease-in-out infinite;
}
.scn-wolsey-presents-campeius .document {
  position: absolute; bottom: 28%; left: 45%; width: 10%; height: 8%;
  background: linear-gradient(135deg, #c8b080 0%, #a89060 100%);
  border-radius: 5% 5% 10% 10% / 10% 15% 15% 10%;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: wpc-doc 6s ease-in-out infinite alternate;
}
.scn-wolsey-presents-campeius .candle {
  position: absolute; bottom: 30%; left: 38%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #e0b060 0%, #a07030 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: wpc-candle 3s ease-in-out infinite alternate;
}
.scn-wolsey-presents-campeius .warm-glow {
  position: absolute; inset: 10%; background: radial-gradient(ellipse at 40% 60%, rgba(240,180,100,0.2) 0%, transparent 70%);
  animation: wpc-glow 4s ease-in-out infinite alternate;
}
@keyframes wpc-backdrop {
  0% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes wpc-wolsey {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes wpc-campeius {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes wpc-doc {
  0% { transform: rotate(3deg) scale(1); }
  50% { transform: rotate(-2deg) scale(1.05); }
  100% { transform: rotate(4deg) scale(1); }
}
@keyframes wpc-candle {
  0% { transform: scaleY(1) rotate(0deg); }
  30% { transform: scaleY(1.08) rotate(2deg); }
  70% { transform: scaleY(0.92) rotate(-1deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes wpc-glow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

/* Scene 4: wolsey-and-gardiner */
.scn-wolsey-and-gardiner {
  background: linear-gradient(180deg, #121212 0%, #1a1420 40%, #221830 100%),
              radial-gradient(ellipse at 50% 80%, rgba(50,30,20,0.3) 0%, transparent 60%);
}
.scn-wolsey-and-gardiner .dark-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #121212 0%, #1a1420 100%);
  animation: wag-bg 14s ease-in-out infinite alternate;
}
.scn-wolsey-and-gardiner .wolsey-profile {
  position: absolute; bottom: 25%; left: 30%; width: 12%; height: 40%;
  background: linear-gradient(90deg, #1a1420 0%, #2a2030 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: wag-wolsey 3s ease-in-out infinite alternate;
}
.scn-wolsey-and-gardiner .gardiner-profile {
  position: absolute; bottom: 20%; left: 48%; width: 12%; height: 38%;
  background: linear-gradient(90deg, #2a2030 0%, #1a1420 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: wag-gardiner 2.5s ease-in-out infinite alternate;
}
.scn-wolsey-and-gardiner .lamp {
  position: absolute; bottom: 40%; left: 42%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #c08040 0%, #8a5a2a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: wag-lamp 2s ease-in-out infinite alternate;
}
.scn-wolsey-and-gardiner .lamp-glow {
  position: absolute; bottom: 38%; left: 38%; width: 12%; height: 14%;
  background: radial-gradient(circle, rgba(200,120,60,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: wag-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-wolsey-and-gardiner .floor-strip {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(0deg, #0a0a0a 0%, #121212 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-wolsey-and-gardiner .drapes {
  position: absolute; top: 0; left: 0; width: 15%; height: 100%;
  background: linear-gradient(90deg, #1a1420 0%, #2a2030 50%, #1a1420 100%);
  border-radius: 0 0 40% 0 / 0 0 30% 0;
  animation: wag-drapes 12s ease-in-out infinite alternate;
}
@keyframes wag-bg {
  0% { opacity: 0.9; }
  100% { opacity: 1; }
}
@keyframes wag-wolsey {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes wag-gardiner {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes wag-lamp {
  0% { transform: scaleY(1) rotate(0deg); }
  30% { transform: scaleY(1.06) rotate(3deg); }
  70% { transform: scaleY(0.94) rotate(-2deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes wag-lamp-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.8; transform: scale(0.9); }
}
@keyframes wag-drapes {
  0% { transform: translateX(0); }
  100% { transform: translateX(-5px); }
}

/* Scene 1: cranmer-prophecy-main */
.scn-cranmer-prophecy-main {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4af7a 40%, #8b6f47 100%),
    radial-gradient(ellipse at 30% 30%, #fff4d6 0%, transparent 60%);
}
.scn-cranmer-prophecy-main .bg-interior {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d4a8 0%, #c4a070 100%);
  opacity: 0.6;
}
.scn-cranmer-prophecy-main .window-arch {
  position: absolute; top: 5%; left: 15%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #ffebc8 0%, #b58a5a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 10% 10%;
  box-shadow: inset 0 0 40px #fff3d6, 0 0 30px rgba(255,230,180,0.4);
  animation: cpm-window 6s ease-in-out infinite alternate;
}
.scn-cranmer-prophecy-main .throne {
  position: absolute; bottom: 20%; left: 35%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #8b6f47 0%, #5a4424 80%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5), inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: cpm-throne 12s ease-in-out infinite;
}
.scn-cranmer-prophecy-main .king-sil {
  position: absolute; bottom: 22%; left: 42%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cpm-breathe 4s ease-in-out infinite;
}
.scn-cranmer-prophecy-main .cranmer-sil {
  position: absolute; bottom: 25%; left: 60%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: cpm-bow 6s ease-in-out infinite;
}
.scn-cranmer-prophecy-main .scroll-prop {
  position: absolute; bottom: 30%; left: 55%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #e8d4a8 0%, #c4a070 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cpm-scroll 3s ease-in-out infinite alternate;
}
.scn-cranmer-prophecy-main .ray-light {
  position: absolute; top: 0%; left: 20%; width: 15%; height: 100%;
  background: linear-gradient(180deg, rgba(255,235,200,0.4) 0%, rgba(255,235,200,0) 100%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%);
  animation: cpm-ray 4s ease-in-out infinite alternate;
}
.scn-cranmer-prophecy-main .incense-smoke {
  position: absolute; top: 15%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,240,220,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: cpm-smoke 8s linear infinite;
}
.scn-cranmer-prophecy-main .smoke-2 {
  left: 70%; width: 30px; height: 30px; animation-delay: -4s; opacity: 0.5;
}
@keyframes cpm-window {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.04); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.85; }
}
@keyframes cpm-throne {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes cpm-breathe {
  0% { transform: scale(1,1) translateY(0); }
  50% { transform: scale(1,.98) translateY(1px); }
  100% { transform: scale(1,1) translateY(0); }
}
@keyframes cpm-bow {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg) translateX(-2px); }
  100% { transform: rotate(0deg); }
}
@keyframes cpm-scroll {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(-3px) rotate(2deg); }
}
@keyframes cpm-ray {
  0% { opacity: 0.3; transform: translateX(0); }
  100% { opacity: 0.7; transform: translateX(10px); }
}
@keyframes cpm-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-30px) scale(2); opacity: 0.2; }
  100% { transform: translateY(-60px) scale(3); opacity: 0; }
}

/* Scene 2: cranmer-prophecy-conclusion */
.scn-cranmer-prophecy-conclusion {
  background: 
    linear-gradient(180deg, #e6d4b0 0%, #c4a070 40%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 20%, #fff4d6 0%, transparent 60%);
}
.scn-cranmer-prophecy-conclusion .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4bf9e 0%, #b89a6e 100%);
  opacity: 0.5;
}
.scn-cranmer-prophecy-conclusion .column-left {
  position: absolute; top: 0; left: 10%; width: 6%; height: 100%;
  background: linear-gradient(180deg, #a68a6a 0%, #7a5a3a 100%);
  border-radius: 18% 18% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
}
.scn-cranmer-prophecy-conclusion .column-right {
  position: absolute; top: 0; right: 10%; width: 6%; height: 100%;
  background: linear-gradient(180deg, #a68a6a 0%, #7a5a3a 100%);
  border-radius: 18% 18% 0 0;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.3);
}
.scn-cranmer-prophecy-conclusion .star-rise {
  position: absolute; top: 5%; left: 48%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffe680 0%, #d4a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,230,128,0.5);
  animation: cpc-star 4s ease-in-out infinite alternate;
}
.scn-cranmer-prophecy-conclusion .princess-sil {
  position: absolute; bottom: 22%; left: 42%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: cpc-rise 6s ease-in-out infinite;
}
.scn-cranmer-prophecy-conclusion .arch-floor {
  position: absolute; bottom: 0; left: 15%; width: 70%; height: 20%;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
}
.scn-cranmer-prophecy-conclusion .glow-halo {
  position: absolute; top: 10%; left: 38%; width: 30%; height: 30%;
  background: radial-gradient(circle, rgba(255,235,200,0.3) 0%, transparent 70%);
  filter: blur(20px);
  animation: cpc-halo 8s ease-in-out infinite alternate;
}
@keyframes cpc-star {
  0% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes cpc-rise {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-12px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes cpc-halo {
  0% { opacity: 0.3; transform: scale(0.9); }
  100% { opacity: 0.7; transform: scale(1.1); }
}

/* Scene 3: king-responds-to-prophecy */
.scn-king-responds-to-prophecy {
  background: 
    linear-gradient(180deg, #f0dbb0 0%, #c49a60 50%, #7a5a3a 100%),
    radial-gradient(ellipse at 70% 30%, #fff0d0 0%, transparent 50%);
}
.scn-king-responds-to-prophecy .bg-court {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e0c8a0 0%, #b89a6e 100%);
  opacity: 0.4;
}
.scn-king-responds-to-prophecy .tapesty {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #8a7040 0%, #5a4a2a 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4);
  animation: krp-tap 12s ease-in-out infinite alternate;
}
.scn-king-responds-to-prophecy .king-stand {
  position: absolute; bottom: 15%; left: 40%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: krp-stand 5s ease-in-out infinite;
}
.scn-king-responds-to-prophecy .crown-glow {
  position: absolute; bottom: 50%; left: 44%; width: 8%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #d4a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,208,128,0.6);
  animation: krp-crown 3s ease-in-out infinite alternate;
}
.scn-king-responds-to-prophecy .sceptre {
  position: absolute; bottom: 20%; left: 32%; width: 3%; height: 30%;
  background: linear-gradient(180deg, #d4a040 0%, #8a6a3a 100%);
  border-radius: 15% 15% 5% 5%;
  transform-origin: bottom center;
  animation: krp-sceptre 4s ease-in-out infinite alternate;
}
.scn-king-responds-to-prophecy .courtier-left {
  position: absolute; bottom: 18%; left: 20%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  animation: krp-courtier 7s ease-in-out infinite;
}
.scn-king-responds-to-prophecy .courtier-right {
  position: absolute; bottom: 18%; right: 20%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%;
  animation: krp-courtier 7s ease-in-out infinite reverse;
}
.scn-king-responds-to-prophecy .flame-candle {
  position: absolute; bottom: 45%; left: 50%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #ffe0a0 0%, #d08030 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 0 12px 4px rgba(255,200,100,0.5);
  animation: krp-flame 2s ease-in-out infinite alternate;
}
@keyframes krp-tap {
  0% { transform: scale(1,1); }
  50% { transform: scale(1.02, 0.98); }
  100% { transform: scale(0.98, 1.01); }
}
@keyframes krp-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes krp-crown {
  0% { opacity: 0.5; transform: translateY(0) scale(1); }
  100% { opacity: 1; transform: translateY(-2px) scale(1.1); }
}
@keyframes krp-sceptre {
  0% { transform: rotate(-3deg); }
  100% { transform: rotate(3deg); }
}
@keyframes krp-courtier {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes krp-flame {
  0% { transform: scaleY(1); opacity: 0.8; }
  100% { transform: scaleY(1.3); opacity: 1; }
}

/* Scene 4: king-thanksgiving */
.scn-king-thanksgiving {
  background: 
    linear-gradient(180deg, #e8d4b0 0%, #c4a070 40%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 40%, #fff4d6 0%, transparent 60%);
}
.scn-king-thanksgiving .bg-chapel {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d4bf9e 0%, #b89a6e 100%);
  opacity: 0.5;
}
.scn-king-thanksgiving .altar {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 10% 10% 2% 2%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.4);
}
.scn-king-thanksgiving .kneeling-king {
  position: absolute; bottom: 15%; left: 42%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 20% 20%;
  animation: kt-kneel 6s ease-in-out infinite;
}
.scn-king-thanksgiving .prayer-hands {
  position: absolute; bottom: 38%; left: 46%; width: 4%; height: 6%;
  background: #4a3a2a;
  border-radius: 40% 40% 10% 10%;
  clip-path: polygon(30% 0%, 70% 0%, 80% 100%, 20% 100%);
  animation: kt-hands 4s ease-in-out infinite alternate;
}
.scn-king-thanksgiving .choir-screen {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, rgba(180,150,100,0.3) 0%, transparent 100%);
  border-radius: 50% / 20% 20% 0 0;
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: kt-screen 8s ease-in-out infinite alternate;
}
.scn-king-thanksgiving .ray-divine {
  position: absolute; top: 0; left: 40%; width: 20%; height: 70%;
  background: linear-gradient(180deg, rgba(255,235,200,0.3) 0%, rgba(255,235,200,0) 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: kt-ray 5s ease-in-out infinite alternate;
}
.scn-king-thanksgiving .orb-light {
  position: absolute; top: 8%; left: 48%; width: 10%; height: 10%;
  background: radial-gradient(circle, #ffe080 0%, #d4a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(255,224,128,0.4);
  animation: kt-orb 4s ease-in-out infinite alternate;
}
@keyframes kt-kneel {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes kt-hands {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-2px) scale(1.05); }
}
@keyframes kt-screen {
  0% { opacity: 0.4; transform: scale(1,1); }
  100% { opacity: 0.7; transform: scale(1.02,1); }
}
@keyframes kt-ray {
  0% { opacity: 0.2; transform: translateX(0); }
  100% { opacity: 0.6; transform: translateX(15px); }
}
@keyframes kt-orb {
  0% { transform: scale(0.9) translateY(0); opacity: 0.6; }
  100% { transform: scale(1.1) translateY(-5px); opacity: 1; }
}

.scn-item-christening-bowls {
  background: 
    linear-gradient(180deg, #d4a76a 0%, #b8884a 30%, #a07040 60%, #7a583a 100%),
    radial-gradient(ellipse at 50% 30%, #e8c080 0%, transparent 60%);
}
.scn-item-christening-bowls .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #c9a86a 0%, #9a7a4a 60%, #6a5230 100%); opacity: 0.7; 
  animation: chb-wall 10s ease-in-out infinite alternate;
}
.scn-item-christening-bowls .altar {
  position: absolute; bottom: 10%; left: 50%; width: 70%; height: 30%; transform: translateX(-50%); 
  background: linear-gradient(180deg, #b08050 0%, #8a6030 100%); border-radius: 5% 5% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.3);
  animation: chb-altar 14s ease-in-out infinite alternate;
}
.scn-item-christening-bowls .bowl-left {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 20px; 
  background: radial-gradient(ellipse, #f0d090 10%, #c89a4a 70%); border-radius: 50% 50% 30% 30%; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: chb-bowl 8s ease-in-out infinite alternate;
}
.scn-item-christening-bowls .bowl-right {
  position: absolute; bottom: 20%; right: 35%; width: 30px; height: 20px; 
  background: radial-gradient(ellipse, #f0d090 10%, #c89a4a 70%); border-radius: 50% 50% 30% 30%; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: chb-bowl 8s ease-in-out infinite alternate-reverse;
}
.scn-item-christening-bowls .cloth {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 15%; 
  background: linear-gradient(90deg, #d4b080, #c09a60, #b08850); border-radius: 0 0 20% 20%; 
  transform-origin: bottom; animation: chb-cloth 12s ease-in-out infinite alternate;
}
.scn-item-christening-bowls .candle-a {
  position: absolute; bottom: 30%; left: 38%; width: 8px; height: 40px; 
  background: linear-gradient(180deg, #f0e0b0 0%, #c8a060 70%, #8a6030 100%); border-radius: 20% 20% 10% 10%; 
  animation: chb-candle 5s ease-in-out infinite;
}
.scn-item-christening-bowls .candle-b {
  position: absolute; bottom: 30%; right: 38%; width: 8px; height: 40px; 
  background: linear-gradient(180deg, #f0e0b0 0%, #c8a060 70%, #8a6030 100%); border-radius: 20% 20% 10% 10%; 
  animation: chb-candle 5s ease-in-out infinite 2s;
}
.scn-item-christening-bowls .glow {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%; 
  background: radial-gradient(ellipse at 50% 60%, rgba(255,220,100,0.4) 0%, transparent 60%); 
  mix-blend-mode: overlay; animation: chb-glow 4s ease-in-out infinite alternate;
}
@keyframes chb-wall { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes chb-altar { 0% { transform: translateX(-50%) scale(0.98); } 50% { transform: translateX(-50%) scale(1); } 100% { transform: translateX(-50%) scale(0.99); } }
@keyframes chb-bowl { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(-1px) scale(1); } }
@keyframes chb-cloth { 0% { transform: scaleY(0.95); } 50% { transform: scaleY(1); } 100% { transform: scaleY(0.97); } }
@keyframes chb-candle { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05) translateY(-2px); opacity: 1; } 100% { transform: scale(0.98); opacity: 0.85; } }
@keyframes chb-glow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-item-canopy {
  background: 
    linear-gradient(180deg, #7a4a2a 0%, #9a6040 30%, #b07850 60%, #d4a070 100%),
    radial-gradient(ellipse at 50% 70%, #e8b880 0%, transparent 50%);
}
.scn-item-canopy .bg-pillar {
  position: absolute; inset: 0; background: linear-gradient(180deg, #6a3a2a 0%, #8a5040 40%, #b07050 100%); opacity: 0.6; 
  animation: can-bg 12s ease-in-out infinite alternate;
}
.scn-item-canopy .canopy {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 50%; 
  background: linear-gradient(180deg, #c86030 0%, #a84828 40%, #7a3020 100%); 
  border-radius: 40% 40% 10% 10%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); 
  animation: can-canopy 15s ease-in-out infinite alternate;
}
.scn-item-canopy .canopy-edge {
  position: absolute; top: 50%; left: 10%; width: 80%; height: 5%; 
  background: linear-gradient(90deg, #d07040, #b85830, #a04828); border-radius: 0 0 50% 50%; 
  animation: can-edge 10s ease-in-out infinite alternate;
}
.scn-item-canopy .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 20px; height: 60px; 
  background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%); border-radius: 40% 40% 20% 20%; 
  animation: can-figure 6s ease-in-out infinite;
}
.scn-item-canopy .figure-right {
  position: absolute; bottom: 20%; right: 20%; width: 20px; height: 60px; 
  background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%); border-radius: 40% 40% 20% 20%; 
  animation: can-figure 6s ease-in-out infinite 2s;
}
.scn-item-canopy .censer {
  position: absolute; top: 50%; left: 50%; width: 16px; height: 24px; transform: translate(-50%, -50%); 
  background: radial-gradient(ellipse, #b87858 20%, #8a5030 70%); border-radius: 50%; 
  box-shadow: 0 0 12px 4px rgba(200,100,50,0.5); animation: can-censer 8s ease-in-out infinite;
}
.scn-item-canopy .torch-a {
  position: absolute; bottom: 25%; left: 35%; width: 6px; height: 30px; 
  background: linear-gradient(180deg, #f0c060 0%, #d08030 50%, #8a4020 100%); border-radius: 20%; 
  animation: can-torch 4s ease-in-out infinite;
}
.scn-item-canopy .torch-b {
  position: absolute; bottom: 25%; right: 35%; width: 6px; height: 30px; 
  background: linear-gradient(180deg, #f0c060 0%, #d08030 50%, #8a4020 100%); border-radius: 20%; 
  animation: can-torch 4s ease-in-out infinite 2s;
}
@keyframes can-bg { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes can-canopy { 0% { transform: translateY(0) scale(0.98); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(-2px) scale(1); } }
@keyframes can-edge { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes can-figure { 0% { transform: translateY(0) rotate(-0.5deg); } 25% { transform: translateY(-3px) rotate(0.5deg); } 50% { transform: translateY(-1px) rotate(-0.3deg); } 75% { transform: translateY(-4px) rotate(0.3deg); } 100% { transform: translateY(0); } }
@keyframes can-censer { 0% { transform: translate(-50%, -50%) rotate(-5deg); } 50% { transform: translate(-50%, -50%) rotate(5deg); } 100% { transform: translate(-50%, -50%) rotate(-2deg); } }
@keyframes can-torch { 0% { transform: scaleY(0.9); opacity: 0.8; } 50% { transform: scaleY(1.15); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.85; } }

.scn-christening-ceremony {
  background: 
    linear-gradient(180deg, #a07040 0%, #c09060 20%, #d4a870 40%, #b88850 100%),
    radial-gradient(ellipse at 60% 40%, #e8c080 0%, transparent 60%);
}
.scn-christening-ceremony .bg-tapestry {
  position: absolute; inset: 0; background: linear-gradient(180deg, #8a6040 0%, #b07850 50%, #c09060 100%); opacity: 0.5; 
  animation: cc-tap 18s ease-in-out infinite alternate;
}
.scn-christening-ceremony .throne {
  position: absolute; bottom: 15%; left: 35%; width: 40%; height: 50%; 
  background: linear-gradient(180deg, #b08050 0%, #906840 30%, #705030 100%); 
  border-radius: 30% 30% 10% 10%; box-shadow: inset -10px 0 20px rgba(0,0,0,0.3);
  animation: cc-throne 12s ease-in-out infinite alternate;
}
.scn-christening-ceremony .king-figure {
  position: absolute; bottom: 20%; left: 40%; width: 25px; height: 70px; 
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%); border-radius: 40% 40% 30% 30%; 
  animation: cc-king 7s ease-in-out infinite;
}
.scn-christening-ceremony .queen-figure {
  position: absolute; bottom: 22%; left: 48%; width: 22px; height: 65px; 
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2010 100%); border-radius: 40% 40% 30% 30%; 
  animation: cc-queen 7s ease-in-out infinite 1.5s;
}
.scn-christening-ceremony .baby {
  position: absolute; bottom: 32%; left: 46%; width: 14px; height: 20px; 
  background: radial-gradient(ellipse, #f0d0b0 20%, #d4a880 80%); border-radius: 50% 50% 40% 40%; 
  animation: cc-baby 9s ease-in-out infinite alternate;
}
.scn-christening-ceremony .attendant-left {
  position: absolute; bottom: 18%; left: 25%; width: 18px; height: 55px; 
  background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%); border-radius: 40% 40% 20% 20%; 
  animation: cc-att 5s ease-in-out infinite;
}
.scn-christening-ceremony .attendant-right {
  position: absolute; bottom: 18%; right: 25%; width: 18px; height: 55px; 
  background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%); border-radius: 40% 40% 20% 20%; 
  animation: cc-att 5s ease-in-out infinite 2s;
}
.scn-christening-ceremony .halo {
  position: absolute; top: 25%; left: 45%; width: 20%; height: 30%; 
  background: radial-gradient(ellipse, rgba(255,215,140,0.3) 0%, transparent 70%); 
  mix-blend-mode: screen; animation: cc-halo 6s ease-in-out infinite alternate;
}
@keyframes cc-tap { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }
@keyframes cc-throne { 0% { transform: translateY(0) scaleX(0.98); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(-1px) scaleX(1); } }
@keyframes cc-king { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-0.5deg); } 75% { transform: translateY(-3px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cc-queen { 0% { transform: translateY(0) rotate(0.5deg); } 25% { transform: translateY(-2px) rotate(-0.5deg); } 50% { transform: translateY(-1px) rotate(0.3deg); } 75% { transform: translateY(-3px) rotate(-0.3deg); } 100% { transform: translateY(0); } }
@keyframes cc-baby { 0% { transform: scale(1); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(0.98); } }
@keyframes cc-att { 0% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(-1px); } 75% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cc-halo { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-cranmer-prophecy-start {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #6a3a22 30%, #8a5030 60%, #a86840 100%),
    radial-gradient(ellipse at 30% 40%, #d09050 0%, transparent 50%);
}
.scn-cranmer-prophecy-start .bg-shadow {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 50%, #7a3a22 100%); opacity: 0.6; 
  animation: cps-bg 20s ease-in-out infinite alternate;
}
.scn-cranmer-prophecy-start .pulpit {
  position: absolute; bottom: 10%; left: 50%; width: 60%; height: 35%; transform: translateX(-50%); 
  background: linear-gradient(180deg, #a07848 0%, #7a5830 40%, #5a4020 100%); 
  border-radius: 10% 10% 5% 5%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
  animation: cps-pulp 14s ease-in-out infinite alternate;
}
.scn-cranmer-prophecy-start .cranmer {
  position: absolute; bottom: 25%; left: 40%; width: 22px; height: 65px; 
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 50%, #2a0a00 100%); 
  border-radius: 40% 40% 25% 25%; transform-origin: bottom center; 
  animation: cps-cran 8s ease-in-out infinite;
}
.scn-cranmer-prophecy-start .scroll {
  position: absolute; bottom: 35%; left: 42%; width: 12px; height: 30px; 
  background: linear-gradient(180deg, #f0d090 0%, #d4a860 70%, #b88840 100%); 
  border-radius: 10% 10% 5% 5%; transform-origin: bottom left; 
  animation: cps-scroll 10s ease-in-out infinite alternate;
}
.scn-cranmer-prophecy-start .light-ray-a {
  position: absolute; top: 10%; left: 30%; width: 15%; height: 60%; 
  background: linear-gradient(180deg, rgba(255,220,140,0.3) 0%, transparent 80%); 
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%); 
  animation: cps-ray 12s ease-in-out infinite;
}
.scn-cranmer-prophecy-start .light-ray-b {
  position: absolute; top: 10%; right: 30%; width: 15%; height: 60%; 
  background: linear-gradient(180deg, rgba(255,220,140,0.2) 0%, transparent 80%); 
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%); 
  animation: cps-ray 12s ease-in-out infinite 4s;
}
.scn-cranmer-prophecy-start .ember {
  position: absolute; bottom: 40%; left: 48%; width: 6px; height: 6px; 
  background: radial-gradient(circle, #ffa050 10%, transparent 70%); 
  border-radius: 50%; animation: cps-ember 3s ease-in-out infinite;
}
@keyframes cps-bg { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }
@keyframes cps-pulp { 0% { transform: translateX(-50%) scale(0.98); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes cps-cran { 0% { transform: translateY(0) rotate(-0.5deg); } 25% { transform: translateY(-2px) rotate(0.5deg); } 50% { transform: translateY(-1px) rotate(-0.3deg); } 75% { transform: translateY(-3px) rotate(0.3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cps-scroll { 0% { transform: rotate(-5deg) scaleX(0.8); } 50% { transform: rotate(5deg) scaleX(1); } 100% { transform: rotate(0deg) scaleX(0.9); } }
@keyframes cps-ray { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes cps-ember { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(-5px) scale(1.3); opacity: 1; } 100% { transform: translateY(-2px) scale(0.9); opacity: 0.6; } }

/* katharine-last-letter */
.scn-katharine-last-letter {
  background: 
    linear-gradient(180deg, #1a1410 0%, #3a2a1a 40%, #5a3a2a 70%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 80%);
}
.scn-katharine-last-letter .wall { position:absolute; inset:0; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: inset 0 0 100px rgba(0,0,0,0.6); }
.scn-katharine-last-letter .window-frame { position:absolute; top:18%; left:55%; width:120px; height:160px; border: 8px solid #2a1a0a; background: #1a2a3a; border-radius:4px; box-shadow: inset 0 0 60px rgba(100,150,200,0.2); }
.scn-katharine-last-letter .moonlight { position:absolute; top:18%; left:55%; width:120px; height:160px; background: radial-gradient(ellipse at 40% 30%, rgba(180,200,230,0.3) 0%, transparent 80%); animation: kll-moonlight 8s ease-in-out infinite alternate; }
.scn-katharine-last-letter .desk { position:absolute; bottom:20%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #4a301e 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 -4px 20px rgba(0,0,0,0.7); }
.scn-katharine-last-letter .letter { position:absolute; bottom:28%; left:38%; width:80px; height:50px; background: linear-gradient(135deg, #c8b28a 0%, #a08866 100%); border-radius:2px; transform: rotate(-4deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: kll-letter 6s ease-in-out infinite; }
.scn-katharine-last-letter .candle { position:absolute; bottom:32%; left:34%; width:12px; height:50px; background: linear-gradient(180deg, #e8d0a0 0%, #b89060 100%); border-radius:4px 4px 2px 2px; transform: rotate(2deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: kll-candle 4s ease-in-out infinite; }
.scn-katharine-last-letter .flame { position:absolute; bottom:64%; left:34%; width:14px; height:20px; background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 100%); border-radius:50%; transform: translateX(4px); animation: kll-flame 1.2s ease-in-out infinite alternate; box-shadow: 0 0 20px 8px rgba(255,160,64,0.4); }
.scn-katharine-last-letter .figure { position:absolute; bottom:22%; left:25%; width:40px; height:140px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kll-figure 10s ease-in-out infinite; }
.scn-katharine-last-letter .shadow { position:absolute; bottom:18%; left:20%; right:40%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 100%); filter: blur(8px); }
@keyframes kll-moonlight { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes kll-letter { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes kll-candle { 0% { transform: rotate(2deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(0.95); } 100% { transform: rotate(2deg) scaleY(1); } }
@keyframes kll-flame { 0% { transform: translateX(4px) scale(0.9); opacity:0.7; } 50% { transform: translateX(6px) scale(1.1); opacity:1; } 100% { transform: translateX(3px) scale(0.95); opacity:0.8; } }
@keyframes kll-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }

/* katharine-last-request */
.scn-katharine-last-request {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 80%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-katharine-last-request .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0a 0%, #1a0e05 100%); }
.scn-katharine-last-request .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); }
.scn-katharine-last-request .bed { position:absolute; bottom:18%; left:10%; right:50%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 -4px 20px rgba(0,0,0,0.6); }
.scn-katharine-last-request .pillow { position:absolute; bottom:50%; left:15%; width:60px; height:30px; background: radial-gradient(ellipse, #8a7a6a 0%, #5a4a3a 100%); border-radius:50%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: klr-pillow 8s ease-in-out infinite alternate; }
.scn-katharine-last-request .hand { position:absolute; bottom:30%; left:45%; width:30px; height:40px; background: linear-gradient(180deg, #a08a7a 0%, #7a6a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: klr-hand 5s ease-in-out infinite; }
.scn-katharine-last-request .pouch { position:absolute; bottom:28%; left:55%; width:40px; height:30px; background: linear-gradient(135deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; transform: rotate(8deg); box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: klr-pouch 6s ease-in-out infinite; }
.scn-katharine-last-request .lamp { position:absolute; bottom:40%; right:20%; width:16px; height:40px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:4px; box-shadow: 0 0 20px 4px rgba(160,128,64,0.3); animation: klr-lamp 4s ease-in-out infinite alternate; }
.scn-katharine-last-request .glimmer { position:absolute; bottom:58%; right:20%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 100%); border-radius:50%; animation: klr-glimmer 2s ease-in-out infinite alternate; transform: translateX(2px); }
@keyframes klr-pillow { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes klr-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-4px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes klr-pouch { 0% { transform: rotate(8deg) scale(1); } 50% { transform: rotate(10deg) scale(0.95); } 100% { transform: rotate(8deg) scale(1); } }
@keyframes klr-lamp { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes klr-glimmer { 0% { transform: translateX(2px) scale(0.8); opacity:0.5; } 50% { transform: translateX(5px) scale(1.2); opacity:1; } 100% { transform: translateX(0px) scale(0.9); opacity:0.6; } }

/* gardiner-lovell-night */
.scn-gardiner-lovell-night {
  background: 
    linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 30%, #2a2a4a 70%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 0%, #4a4a6a 0%, transparent 60%);
}
.scn-gardiner-lovell-night .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 100%); animation: gln-sky 12s ease-in-out infinite alternate; }
.scn-gardiner-lovell-night .moon { position:absolute; top:8%; left:25%; width:60px; height:60px; background: radial-gradient(circle, #d0d8e0 0%, #a0b0c0 80%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(160,176,192,0.3); animation: gln-moon 20s linear infinite; }
.scn-gardiner-lovell-night .wall { position:absolute; bottom:30%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.8), 0 -4px 10px rgba(0,0,0,0.5); }
.scn-gardiner-lovell-night .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.7); }
.scn-gardiner-lovell-night .figure-left { position:absolute; bottom:25%; left:20%; width:40px; height:120px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gln-figure-l 8s ease-in-out infinite; }
.scn-gardiner-lovell-night .figure-right { position:absolute; bottom:25%; right:20%; width:40px; height:110px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: gln-figure-r 8s ease-in-out infinite reverse; }
.scn-gardiner-lovell-night .lantern { position:absolute; bottom:38%; left:42%; width:12px; height:20px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius:4px; box-shadow: 0 0 30px 6px rgba(160,128,96,0.5); animation: gln-lantern 4s ease-in-out infinite alternate; }
.scn-gardiner-lovell-night .light-pool { position:absolute; bottom:30%; left:35%; right:35%; height:15%; background: radial-gradient(ellipse at 50% 50%, rgba(160,128,96,0.15) 0%, transparent 100%); filter: blur(10px); animation: gln-pool 5s ease-in-out infinite alternate; }
@keyframes gln-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes gln-moon { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(20px) scale(0.95); } 100% { transform: translateX(-20px) scale(1); } }
@keyframes gln-figure-l { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gln-figure-r { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gln-lantern { 0% { opacity:0.6; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.7; transform: scaleY(0.95); } }
@keyframes gln-pool { 0% { opacity:0.3; transform: scaleX(0.8); } 50% { opacity:0.6; transform: scaleX(1.2); } 100% { opacity:0.4; transform: scaleX(0.9); } }

/* king-suffolk-night */
.scn-king-suffolk-night {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #2a2a4a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a5a 0%, transparent 60%);
}
.scn-king-suffolk-night .ceiling { position:absolute; top:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.8); }
.scn-king-suffolk-night .wall-left { position:absolute; top:20%; bottom:0; left:0; width:25%; background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%); box-shadow: inset -20px 0 40px rgba(0,0,0,0.6); }
.scn-king-suffolk-night .wall-right { position:absolute; top:20%; bottom:0; right:0; width:25%; background: linear-gradient(225deg, #1a1a2a 0%, #0a0a1a 100%); box-shadow: inset 20px 0 40px rgba(0,0,0,0.6); }
.scn-king-suffolk-night .table { position:absolute; bottom:20%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 10% 10% 4% 4% / 30% 30% 10% 10%; box-shadow: 0 -4px 20px rgba(0,0,0,0.8); }
.scn-king-suffolk-night .cards { position:absolute; bottom:30%; left:35%; width:100px; height:70px; background: repeating-linear-gradient(45deg, #c8b8a0 0px, #c8b8a0 60px, #a09080 60px, #a09080 120px); border-radius:4px; transform: rotate(-5deg); box-shadow: 0 2px 10px rgba(0,0,0,0.6); animation: ksn-cards 6s ease-in-out infinite; }
.scn-king-suffolk-night .die { position:absolute; bottom:32%; left:55%; width:30px; height:30px; background: linear-gradient(135deg, #d0c0b0 0%, #a09080 100%); border-radius:4px; transform: rotate(15deg) skewX(10deg); box-shadow: 0 3px 6px rgba(0,0,0,0.5); animation: ksn-die 10s ease-in-out infinite; }
.scn-king-suffolk-night .figure-sitting { position:absolute; bottom:18%; left:30%; width:50px; height:130px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ksn-sit 8s ease-in-out infinite; }
.scn-king-suffolk-night .figure-standing { position:absolute; bottom:20%; right:28%; width:45px; height:140px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ksn-stand 8s ease-in-out infinite reverse; }
.scn-king-suffolk-night .candle { position:absolute; bottom:38%; left:48%; width:10px; height:40px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:2px; box-shadow: 0 0 20px 6px rgba(160,128,64,0.3); animation: ksn-candle 4s ease-in-out infinite alternate; }
@keyframes ksn-cards { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ksn-die { 0% { transform: rotate(15deg) skewX(10deg) scale(1); } 50% { transform: rotate(20deg) skewX(12deg) scale(0.95); } 100% { transform: rotate(15deg) skewX(10deg) scale(1); } }
@keyframes ksn-sit { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ksn-stand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-6px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ksn-candle { 0% { opacity:0.5; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.6; transform: scaleY(0.95); } }

/* king-watching – bright interior, tense */
.scn-king-watching {
  background: linear-gradient(135deg, #e8d4b0 0%, #c4a87a 60%, #8a6e4a 100%),
              radial-gradient(ellipse at 80% 20%, #f0e2c8 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-king-watching .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #b89a6a 0%, #7a5f3e 100%);
  animation: kw-wall 12s ease-in-out infinite alternate;
}
.scn-king-watching .window-frame {
  position: absolute; top: 8%; right: 12%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #5a3f2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  transform: perspective(500px) rotateY(5deg);
}
.scn-king-watching .window-glow {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 110px;
  background: radial-gradient(ellipse at 50% 30%, #fcedd0 0%, #e0b080 40%, transparent 70%);
  border-radius: 2px; box-shadow: 0 0 30px 15px rgba(240,200,150,.4);
  animation: kw-glow 3s ease-in-out infinite alternate;
}
.scn-king-watching .throne {
  position: absolute; bottom: 10%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 8px 8px 15px rgba(0,0,0,.5);
  transform: rotate(2deg);
}
.scn-king-watching .king {
  position: absolute; bottom: 18%; left: 12%; width: 30px; 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: kw-king 4s ease-in-out infinite;
}
.scn-king-watching .courtier {
  position: absolute; bottom: 16%; left: 38%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: kw-courtier 4s ease-in-out infinite alternate;
}
.scn-king-watching .pointing-arm {
  position: absolute; bottom: 40%; left: 40%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-40deg);
  transform-origin: left center;
  animation: kw-arm 2s ease-in-out infinite alternate;
}
.scn-king-watching .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.4) 100%);
  border-radius: 50% 50% 0 0; filter: blur(6px);
}
@keyframes kw-wall { 0% { opacity: .85 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes kw-glow { 0% { opacity: .8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .85; transform: scale(1) } }
@keyframes kw-king { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes kw-courtier { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes kw-arm { 0% { transform: rotate(-40deg) scaleY(1) } 50% { transform: rotate(-35deg) scaleY(1.1) } 100% { transform: rotate(-40deg) scaleY(1) } }

/* council-chamber – bright interior, tense */
.scn-council-chamber {
  background: linear-gradient(180deg, #d4b896 0%, #b89870 40%, #8a6e4a 100%),
              radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-council-chamber .bg-panel {
  position: absolute; inset: 0; background: linear-gradient(90deg, #b89870 0%, #a08060 50%, #b89870 100%);
  animation: cc-panel 15s ease-in-out infinite alternate;
}
.scn-council-chamber .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,.4);
  transform: perspective(800px) rotateX(5deg);
}
.scn-council-chamber .chair-left {
  position: absolute; bottom: 25%; left: 12%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 2px 2px 8px rgba(0,0,0,.3);
  transform: rotate(3deg);
}
.scn-council-chamber .chair-right {
  position: absolute; bottom: 25%; right: 12%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: -2px 2px 8px rgba(0,0,0,.3);
  transform: rotate(-3deg);
}
.scn-council-chamber .archbishop {
  position: absolute; bottom: 30%; left: 25%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-arch 5s ease-in-out infinite;
}
.scn-council-chamber .secretary {
  position: absolute; bottom: 30%; right: 28%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cc-sec 5s ease-in-out infinite alternate;
}
.scn-council-chamber .document {
  position: absolute; bottom: 24%; left: 45%; width: 40px; height: 28px;
  background: linear-gradient(180deg, #f0e0c8 0%, #d4b898 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.2);
  transform: rotate(5deg);
  animation: cc-doc 3s ease-in-out infinite alternate;
}
.scn-council-chamber .chandelier {
  position: absolute; top: 6%; left: 50%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #e0c080 0%, #b89860 60%, #705030 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 20px rgba(200,160,80,.3);
  transform: translateX(-50%);
  animation: cc-chandelier 8s ease-in-out infinite alternate;
}
@keyframes cc-panel { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .92 } }
@keyframes cc-arch { 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(0) } }
@keyframes cc-sec { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(-5px) rotate(-1deg) } }
@keyframes cc-doc { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(3deg) scale(1.05) } 100% { transform: rotate(6deg) scale(1) } }
@keyframes cc-chandelier { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(0) } }

/* trial-cranmer – dim interior, tense */
.scn-trial-cranmer {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 50%, #050510 100%),
              radial-gradient(ellipse at 50% 40%, #2a1a1a 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-trial-cranmer .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0e0e1e 0%, #050510 100%);
  animation: tc-dark 20s ease-in-out infinite alternate;
}
.scn-trial-cranmer .judge-bench {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 6px; box-shadow: 0 -8px 20px rgba(0,0,0,.7);
}
.scn-trial-cranmer .cranmer {
  position: absolute; bottom: 30%; left: 45%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(255,180,80,.15);
  transform-origin: bottom center;
  animation: tc-cranmer 6s ease-in-out infinite;
}
.scn-trial-cranmer .guard-left {
  position: absolute; bottom: 28%; left: 22%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: tc-guard 5s ease-in-out infinite alternate;
}
.scn-trial-cranmer .guard-right {
  position: absolute; bottom: 28%; right: 22%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: tc-guard 5s ease-in-out infinite alternate-reverse;
}
.scn-trial-cranmer .torch {
  position: absolute; top: 20%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #704020 0%, #4a2a1a 100%);
  border-radius: 4px; transform: translateX(-50%);
  animation: tc-torch 3s ease-in-out infinite alternate;
}
.scn-trial-cranmer .torch-glow {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,150,50,.6) 0%, rgba(255,100,20,.2) 40%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
  animation: tc-glow 3s ease-in-out infinite alternate;
}
.scn-trial-cranmer .chain-floor {
  position: absolute; bottom: 12%; left: 40%; width: 40px; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%);
  border-radius: 50%; filter: blur(2px);
  animation: tc-chain 8s linear infinite;
}
@keyframes tc-dark { 0% { opacity: .9 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes tc-cranmer { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(2px) rotate(1deg) } 60% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes tc-guard { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes tc-torch { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg) } 50% { transform: translateX(-50%) scaleY(1.1) rotate(2deg) } 100% { transform: translateX(-50%) scaleY(1) rotate(0) } }
@keyframes tc-glow { 0% { opacity: .6; transform: translateX(-50%) scale(1) } 50% { opacity: .9; transform: translateX(-50%) scale(1.05) } 100% { opacity: .7; transform: translateX(-50%) scale(1) } }
@keyframes tc-chain { 0% { transform: translateX(-10px) } 100% { transform: translateX(10px) } }

/* item-kings-ring – dim interior, tense */
.scn-item-kings-ring {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 40%, #050510 100%),
              radial-gradient(ellipse at 60% 50%, #2a1a1a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-item-kings-ring .bg-shadow {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0a0a14 0%, #050510 100%);
  animation: kr-bg 20s ease-in-out infinite alternate;
}
.scn-item-kings-ring .king-silhouette {
  position: absolute; bottom: 10%; right: 18%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: kr-king 8s ease-in-out infinite alternate;
}
.scn-item-kings-ring .hand-ring {
  position: absolute; bottom: 35%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30%; transform: rotate(30deg);
  transform-origin: bottom left;
  animation: kr-hand 2s ease-in-out infinite alternate;
}
.scn-item-kings-ring .ring-glow {
  position: absolute; bottom: 48%; left: 44%; width: 18px; height: 18px;
  background: radial-gradient(circle, #f0c040 0%, #c08020 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 30px 12px rgba(240,180,40,.6), 0 0 60px 24px rgba(240,180,40,.3);
  animation: kr-ring 3s ease-in-out infinite alternate;
}
.scn-item-kings-ring .guard-back {
  position: absolute; bottom: 15%; left: 10%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: kr-guard 6s ease-in-out infinite;
}
.scn-item-kings-ring .flame-candle {
  position: absolute; top: 30%; left: 20%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #7a4020 0%, #4a2a1a 100%);
  border-radius: 3px; transform: rotate(5deg);
}
.scn-item-kings-ring .candle-glow {
  position: absolute; top: 28%; left: 18%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,150,50,.5) 0%, rgba(255,100,20,.15) 40%, transparent 70%);
  border-radius: 50%; filter: blur(4px);
  animation: kr-candle 4s ease-in-out infinite alternate;
}
@keyframes kr-bg { 0% { opacity: .85 } 50% { opacity: .95 } 100% { opacity: .9 } }
@keyframes kr-king { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(2px) rotate(-1deg) scale(1.02) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes kr-hand { 0% { transform: rotate(30deg) translate(0,0) } 50% { transform: rotate(35deg) translate(2px,-2px) } 100% { transform: rotate(30deg) translate(0,0) } }
@keyframes kr-ring { 0% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .8; transform: scale(0.95) } }
@keyframes kr-guard { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(4px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes kr-candle { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .9; transform: scale(1.08) } 100% { opacity: .7; transform: scale(1) } }

/* scene 1: wolsey-farewell-soliloquy */
.scn-wolsey-farewell-soliloquy {
  background: linear-gradient(135deg, #2b1a1a 0%, #1a0e0e 50%, #0f0707 100%),
              radial-gradient(ellipse at 30% 60%, #3a2020 0%, transparent 70%);
}
.scn-wolsey-farewell-soliloquy .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2222 0%, #1a0e0e 100%); opacity:.9; }
.scn-wolsey-farewell-soliloquy .window-frost { position:absolute; top:15%; left:60%; width:30%; height:40%; background: linear-gradient(180deg, rgba(180,200,220,.4) 0%, rgba(160,180,200,.1) 100%); border-radius:4% / 6%; box-shadow: inset 0 0 30px rgba(180,200,220,.1); animation: wfs-frost 20s ease-in-out infinite alternate; }
.scn-wolsey-farewell-soliloquy .figure-wolsey { position:absolute; bottom:20%; left:35%; width:14%; height:45%; background: linear-gradient(0deg, #1a0a0a 0%, #0e0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 5px 15px rgba(0,0,0,.7); animation: wfs-figure 6s ease-in-out infinite; }
.scn-wolsey-farewell-soliloquy .candle { position:absolute; bottom:30%; left:48%; width:3%; height:10%; background: linear-gradient(180deg, #f5d090 0%, #d4a060 50%, #8a5a30 100%); border-radius:10% / 20%; box-shadow: 0 0 20px #f5d090; animation: wfs-candle 3s ease-in-out infinite; }
.scn-wolsey-farewell-soliloquy .table { position:absolute; bottom:18%; left:25%; width:50%; height:6%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1008 100%); border-radius:10%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-wolsey-farewell-soliloquy .scroll { position:absolute; bottom:22%; left:38%; width:20%; height:4%; background: linear-gradient(90deg, #d4c4a0 0%, #b8a880 100%); border-radius:40% / 30%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: wfs-scroll 8s ease-in-out infinite alternate; }
@keyframes wfs-frost { 0% { opacity:.5; filter:blur(1px); } 50% { opacity:.8; filter:blur(4px); } 100% { opacity:.6; filter:blur(2px); } }
@keyframes wfs-figure { 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(-1deg); } }
@keyframes wfs-candle { 0% { box-shadow: 0 0 10px #f5d090; transform: scaleY(1); } 30% { box-shadow: 0 0 25px #f5d090; transform: scaleY(1.05); } 60% { box-shadow: 0 0 8px #f5d090; transform: scaleY(0.95); } 100% { box-shadow: 0 0 15px #f5d090; transform: scaleY(1); } }
@keyframes wfs-scroll { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(5px) scaleX(1.1); } }

/* scene 2: wolsey-cromwell */
.scn-wolsey-cromwell {
  background: linear-gradient(0deg, #0f0808 0%, #1a1212 50%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 80%, #4a2a20 0%, transparent 60%);
}
.scn-wolsey-cromwell .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #1e1212 0%, #0a0505 100%); opacity:.8; }
.scn-wolsey-cromwell .fireplace-orange { position:absolute; bottom:15%; left:10%; width:25%; height:35%; background: linear-gradient(180deg, #d05020 0%, #701810 100%); border-radius:20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 -15px 30px #481008, 0 0 40px #d05020; animation: wc-fire 4s ease-in-out infinite alternate; }
.scn-wolsey-cromwell .figure-cardinal { position:absolute; bottom:20%; left:40%; width:16%; height:50%; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wc-fig1 7s ease-in-out infinite; box-shadow: -5px 0 10px rgba(0,0,0,.5); }
.scn-wolsey-cromwell .figure-cromwell { position:absolute; bottom:20%; right:30%; width:14%; height:45%; background: linear-gradient(180deg, #2a1a1a 0%, #0e0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wc-fig2 9s ease-in-out infinite; box-shadow: 5px 0 10px rgba(0,0,0,.5); }
.scn-wolsey-cromwell .book { position:absolute; bottom:22%; left:32%; width:12%; height:6%; background: linear-gradient(90deg, #6a4020 0%, #3a1a10 100%); border-radius:10%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: wc-book 12s ease-in-out infinite alternate; }
.scn-wolsey-cromwell .armchair { position:absolute; bottom:18%; left:55%; width:25%; height:12%; background: linear-gradient(180deg, #4a2a20 0%, #2a1010 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
@keyframes wc-fire { 0% { transform: scaleY(1); opacity:.8; } 50% { transform: scaleY(1.2); opacity:1; } 100% { transform: scaleY(0.9); opacity:.7; } }
@keyframes wc-fig1 { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(-1px) rotate(2deg); } }
@keyframes wc-fig2 { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(3px) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(0); } 75% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(-2px) rotate(0); } }
@keyframes wc-book { 0% { transform: rotate(-2deg) scaleX(1); } 100% { transform: rotate(2deg) scaleX(1.05); } }

/* scene 3: westminster-street-coronation-preparations */
.scn-westminster-street-coronation-preparations {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 40%, #e8ddb8 100%),
              radial-gradient(ellipse at 50% 100%, #f0e8c0 0%, transparent 80%);
}
.scn-westminster-street-coronation-preparations .sky-blue { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #b0d4f0 0%, #87ceeb 100%); animation: wsc-sky 15s ease-in-out infinite alternate; }
.scn-westminster-street-coronation-preparations .sun-glow { position:absolute; top:10%; left:20%; width:12%; height:12%; background: radial-gradient(circle, #ffd700 0%, #ffb347 40%, transparent 70%); border-radius:50%; animation: wsc-sun 20s ease-in-out infinite; }
.scn-westminster-street-coronation-preparations .street-cobbles { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b8a080 0%, #887050 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.2); }
.scn-westminster-street-coronation-preparations .crowd-blocks { position:absolute; bottom:30%; left:5%; right:5%; height:30%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #4a3a2a 4px, #3a2a1a 8px, #5a4a3a 12px, transparent 16px); background-size: 16px 100%; opacity:.7; animation: wsc-crowd 8s linear infinite; }
.scn-westminster-street-coronation-preparations .banners-swirl { position:absolute; top:25%; left:15%; width:40%; height:25%; background: linear-gradient(180deg, #c85030 0%, #a03020 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); animation: wsc-banners 6s ease-in-out infinite alternate; }
.scn-westminster-street-coronation-preparations .triumphal-arch { position:absolute; bottom:30%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #d4c8a0 0%, #b8a880 100%); border-radius:40% 40% 10% 10% / 80% 80% 10% 10%; box-shadow: 0 10px 30px rgba(0,0,0,.3); animation: wsc-arch 10s ease-in-out infinite alternate; }
@keyframes wsc-sky { 0% { opacity:.8; } 100% { opacity:1; } }
@keyframes wsc-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px #ffd700; } 50% { transform: translateY(-5px) scale(1.05); box-shadow: 0 0 50px #ffd700; } 100% { transform: translateY(0) scale(1); } }
@keyframes wsc-crowd { 0% { background-position:0 0; } 100% { background-position:16px 0; } }
@keyframes wsc-banners { 0% { transform: skewY(2deg) scaleX(1); } 100% { transform: skewY(-2deg) scaleX(1.05); } }
@keyframes wsc-arch { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.03); } }

/* scene 4: item-coronation-list */
.scn-item-coronation-list {
  background: linear-gradient(135deg, #e8e0c8 0%, #c8b898 50%, #a89870 100%),
              radial-gradient(ellipse at 50% 80%, #f0e8d0 0%, transparent 60%);
}
.scn-item-coronation-list .desk-wood { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #8a6a40 0%, #5a3a20 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 10px 20px #3a2010; }
.scn-item-coronation-list .parchment-sheet { position:absolute; bottom:25%; left:30%; width:40%; height:40%; background: linear-gradient(135deg, #f5ecd0 0%, #e6dbb8 100%); border-radius:4%; box-shadow: 0 8px 20px rgba(0,0,0,.3); transform: rotate(-3deg); animation: icl-parchment 10s ease-in-out infinite alternate; }
.scn-item-coronation-list .quill-nib { position:absolute; bottom:45%; left:65%; width:2%; height:20%; background: linear-gradient(180deg, #e8e0c0 0%, #c0b090 60%, #8a7050 100%); border-radius:50% 50% 20% 20% / 60% 60% 10% 10%; transform-origin: bottom center; animation: icl-quill 4s ease-in-out infinite; }
.scn-item-coronation-list .inkwell { position:absolute; bottom:22%; left:70%; width:5%; height:8%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-item-coronation-list .sunbeam { position:absolute; top:0; left:30%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,230,180,.4) 0%, transparent 40%, transparent 100%); transform: rotate(20deg); animation: icl-beam 15s ease-in-out infinite alternate; }
.scn-item-coronation-list .hand-shadow { position:absolute; bottom:20%; left:35%; width:25%; height:30%; background: linear-gradient(180deg, rgba(30,20,10,.5) 0%, transparent 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(8px); animation: icl-hand 8s ease-in-out infinite; }
@keyframes icl-parchment { 0% { transform: rotate(-3deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.02); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes icl-quill { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(0); } 75% { transform: rotate(-5deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes icl-beam { 0% { opacity:.3; transform: rotate(20deg) scaleX(1); } 50% { opacity:.7; transform: rotate(22deg) scaleX(1.05); } 100% { opacity:.4; transform: rotate(18deg) scaleX(1); } }
@keyframes icl-hand { 0% { transform: translateX(0) translateY(0); opacity:.5; } 50% { transform: translateX(3px) translateY(-2px); opacity:.7; } 100% { transform: translateX(0) translateY(1px); opacity:.5; } }

/* one block per scene id. Append to style.css. */
.scn-coronation-procession { background: linear-gradient(180deg, #f9d89c 0%, #e8b870 40%, #c8a060 100%), radial-gradient(ellipse at 70% 20%, rgba(255,230,180,0.6) 0%, transparent 60%); }
.scn-coronation-procession .sky-cp  { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fbefcc 0%, #f5dbb0 100%); animation: cp-sky 14s ease-in-out infinite alternate; }
.scn-coronation-procession .sun-cp  { position:absolute; top:8%; left:65%; width:50px; height:50px; background: radial-gradient(circle, #fff5d0 0%, #ffdc80 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,220,128,0.5); animation: cp-sun 6s ease-in-out infinite; }
.scn-coronation-procession .palace-cp{ position:absolute; bottom:30%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #d4a76a 0%, #b8925c 50%, #a07e4e 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.3); }
.scn-coronation-procession .figure-1-cp{ position:absolute; bottom:30%; left:20%; width:22px; height:50px; background: linear-gradient(180deg, #8a5a3a 0%, #6a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-fig 4s ease-in-out infinite; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-coronation-procession .figure-2-cp{ position:absolute; bottom:30%; left:40%; width:24px; height:52px; background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-fig 5s ease-in-out infinite 0.5s; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-coronation-procession .figure-3-cp{ position:absolute; bottom:30%; left:60%; width:26px; height:54px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-fig 4.5s ease-in-out infinite 1s; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-coronation-procession .sceptre-1-cp{ position:absolute; bottom:55%; left:28%; width:4px; height:30px; background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%); border-radius: 2px; transform: rotate(-10deg); animation: cp-sceptre 3s ease-in-out infinite; box-shadow: 0 0 6px #ffd700; }
.scn-coronation-procession .sceptre-2-cp{ position:absolute; bottom:57%; left:48%; width:4px; height:28px; background: linear-gradient(180deg, #e0e0e0 0%, #888 100%); border-radius: 2px; transform: rotate(12deg); animation: cp-sceptre 3.5s ease-in-out infinite 0.8s; box-shadow: 0 0 6px #ccc; }
.scn-coronation-procession .banner-cp{ position:absolute; bottom:45%; right:15%; width:30px; height:40px; background: linear-gradient(180deg, #b22222 0%, #800000 100%); border-radius: 0 0 4px 4px; clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 85%, 0 100%); animation: cp-banner 5s ease-in-out infinite; }
@keyframes cp-sky   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cp-sun   { 0% { transform: scale(0.95); box-shadow: 0 0 30px 15px rgba(255,220,128,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(255,220,128,0.6); } 100% { transform: scale(0.95); } }
@keyframes cp-fig   { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cp-sceptre { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.03); } 100% { transform: rotate(-10deg) scaleY(1); } }
@keyframes cp-banner { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }

.scn-whitehall-mention { background: linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 50%, #b8a888 100%), radial-gradient(ellipse at 80% 30%, rgba(255,240,200,0.4) 0%, transparent 60%); }
.scn-whitehall-mention .sky-wh    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e8d0 0%, #dcd4b8 100%); animation: wh-sky 20s ease-in-out infinite alternate; }
.scn-whitehall-mention .building-wh{ position:absolute; bottom:30%; left:20%; right:20%; height:50%; background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%); border-radius:4% 4% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.25); }
.scn-whitehall-mention .door-wh   { position:absolute; bottom:30%; left:45%; width:14%; height:28%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.4); }
.scn-whitehall-mention .window-wh-left{ position:absolute; bottom:45%; left:28%; width:10%; height:18%; background: linear-gradient(180deg, #a0a0b0 0%, #808090 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3); animation: wh-window 10s ease-in-out infinite; }
.scn-whitehall-mention .window-wh-right{ position:absolute; bottom:45%; right:28%; width:10%; height:18%; background: linear-gradient(180deg, #a0a0b0 0%, #808090 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3); animation: wh-window 10s ease-in-out infinite 3s; }
.scn-whitehall-mention .bishop-1-wh{ position:absolute; bottom:30%; left:35%; width:18px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wh-bishop 8s ease-in-out infinite; }
.scn-whitehall-mention .bishop-2-wh{ position:absolute; bottom:30%; right:35%; width:18px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wh-bishop 8s ease-in-out infinite 4s; }
.scn-whitehall-mention .path-wh   { position:absolute; bottom:0; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #b8a888 0%, #9a8a6a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-whitehall-mention .cloud-wh  { position:absolute; top:12%; left:10%; width:80px; height:16px; background: rgba(255,255,255,0.3); border-radius:50%; filter: blur(8px); animation: wh-cloud 50s linear infinite; }
@keyframes wh-sky  { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes wh-window { 0% { opacity:0.7; transform: scaleX(1); } 50% { opacity:0.9; transform: scaleX(1.02); } 100% { opacity:0.7; transform: scaleX(1); } }
@keyframes wh-bishop { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wh-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

.scn-cromwell-future { background: linear-gradient(180deg, #d4b890 0%, #c4a880 50%, #b49870 100%), radial-gradient(ellipse at 60% 70%, rgba(200,160,100,0.4) 0%, transparent 60%); }
.scn-cromwell-future .room-bg-cf   { position:absolute; inset:0; background: linear-gradient(180deg, #b8a080 0%, #a89070 100%); }
.scn-cromwell-future .window-cf    { position:absolute; top:10%; left:60%; width:25%; height:40%; background: linear-gradient(180deg, #e0d0b8 0%, #c8b8a0 100%); border-radius: 8% 8% 4% 4%; box-shadow: inset 0 -6px 12px rgba(0,0,0,0.2); animation: cf-window 12s ease-in-out infinite; }
.scn-cromwell-future .table-cf     { position:absolute; bottom:20%; left:25%; right:25%; height:12%; background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-cromwell-future .figure-left-cf { position:absolute; bottom:20%; left:20%; width:20px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-fig-left 8s ease-in-out infinite; }
.scn-cromwell-future .figure-right-cf{ position:absolute; bottom:20%; right:20%; width:20px; height:48px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-fig-right 8s ease-in-out infinite; }
.scn-cromwell-future .hand-left-cf  { position:absolute; bottom:30%; left:26%; width:12px; height:6px; background: #5a4a3a; border-radius: 50% 50% 20% 20%; transform-origin: left center; animation: cf-hand-left 6s ease-in-out infinite; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-cromwell-future .hand-right-cf { position:absolute; bottom:32%; right:26%; width:12px; height:6px; background: #4a5a3a; border-radius: 50% 50% 20% 20%; transform-origin: right center; animation: cf-hand-right 6s ease-in-out infinite 1s; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-cromwell-future .candle-cf    { position:absolute; bottom:45%; left:50%; width:6px; height:20px; background: linear-gradient(180deg, #e0d0a0 0%, #b09860 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 -8px 20px 6px rgba(255,200,100,0.5); animation: cf-candle 3s ease-in-out infinite; }
@keyframes cf-window  { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes cf-fig-left { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cf-fig-right { 0% { transform: translateY(0) rotate(2deg); } 30% { transform: translateY(-1px) rotate(-2deg); } 60% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cf-hand-left { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(-20deg) scaleY(1.1); } 50% { transform: rotate(10deg) scaleY(0.9); } 75% { transform: rotate(-15deg) scaleY(1.05); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes cf-hand-right { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(20deg) scaleY(1.1); } 50% { transform: rotate(-10deg) scaleY(0.9); } 75% { transform: rotate(15deg) scaleY(1.05); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes cf-candle { 0% { transform: scaleY(1); opacity:0.9; box-shadow: 0 -8px 20px 6px rgba(255,200,100,0.5); } 50% { transform: scaleY(1.05); opacity:1; box-shadow: 0 -8px 25px 8px rgba(255,200,100,0.7); } 100% { transform: scaleY(1); opacity:0.9; box-shadow: 0 -8px 20px 6px rgba(255,200,100,0.5); } }

.scn-kimbolton-katharine-sick { background: linear-gradient(180deg, #1a1a2e 0%, #241c28 40%, #302030 100%), radial-gradient(ellipse at 80% 50%, rgba(100,60,40,0.3) 0%, transparent 60%); }
.scn-kimbolton-katharine-sick .wall-ks  { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a18 0%, #1a1010 100%); }
.scn-kimbolton-katharine-sick .bed-ks   { position:absolute; bottom:8%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #3a2a20 0%, #2a1a12 100%); border-radius: 30% 30% 5% 5%; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); }
.scn-kimbolton-katharine-sick .pillow-ks{ position:absolute; bottom:30%; left:30%; width:30%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 20% 20%; }
.scn-kimbolton-katharine-sick .figure-bed-ks{ position:absolute; bottom:20%; left:45%; width:30%; height:30%; background: linear-gradient(180deg, #3a2a20 0%, #1a1010 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ks-fig-bed 12s ease-in-out infinite; }
.scn-kimbolton-katharine-sick .chair-ks { position:absolute; bottom:10%; right:15%; width:12%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-kimbolton-katharine-sick .figure-chair-ks{ position:absolute; bottom:10%; right:15%; width:10%; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ks-fig-chair 14s ease-in-out infinite; }
.scn-kimbolton-katharine-sick .candle-ks { position:absolute; bottom:35%; left:10%; width:6px; height:18px; background: linear-gradient(180deg, #e0c080 0%, #b09050 100%); border-radius: 2px; box-shadow: 0 -10px 25px 8px rgba(200,150,80,0.4); animation: ks-candle 4s ease-in-out infinite; }
.scn-kimbolton-katharine-sick .glow-ks  { position:absolute; top:20%; left:5%; width:40%; height:60%; background: radial-gradient(ellipse at 10% 40%, rgba(200,150,80,0.15) 0%, transparent 70%); animation: ks-glow 6s ease-in-out infinite; }
.scn-kimbolton-katharine-sick .window-ks{ position:absolute; top:8%; left:70%; width:20%; height:35%; background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1e 100%); border-radius: 6% 6% 2% 2%; box-shadow: inset 0 -4px 10px rgba(0,0,0,0.5); animation: ks-window 18s ease-in-out infinite; }
@keyframes ks-fig-bed { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ks-fig-chair { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(3deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes ks-candle { 0% { transform: scaleY(1); opacity:0.7; box-shadow: 0 -8px 15px 5px rgba(200,150,80,0.3); } 50% { transform: scaleY(1.08); opacity:0.95; box-shadow: 0 -8px 25px 8px rgba(200,150,80,0.5); } 100% { transform: scaleY(1); opacity:0.7; box-shadow: 0 -8px 15px 5px rgba(200,150,80,0.3); } }
@keyframes ks-glow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes ks-window { 0% { opacity:0.4; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.03); } 100% { opacity:0.4; transform: scaleX(1); } }

/* Scene: queen-katharine-apartments (qka) */
.scn-queen-katharine-apartments {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2233 40%, #3a2a44 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a44 0%, transparent 70%);
}
.scn-queen-katharine-apartments .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2233 0%, #1e1823 100%);
  animation: qka-wall 8s ease-in-out infinite alternate;
}
.scn-queen-katharine-apartments .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a1418 0%, #2a2025 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-queen-katharine-apartments .window {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 140px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #8b7355 0%, #4a3a2a 70%, #1a1218 100%);
  border: 4px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(100,80,50,0.3), 0 0 60px rgba(80,60,40,0.2);
  animation: qka-window 12s ease-in-out infinite alternate;
}
.scn-queen-katharine-apartments .lute {
  position: absolute; bottom: 38%; left: 42%; width: 40px; height: 14px;
  transform: rotate(-15deg);
  background: linear-gradient(90deg, #8b6b4a 0%, #a08060 50%, #8b6b4a 100%);
  border-radius: 40% 40% 40% 40% / 60% 60% 60% 60%;
  animation: qka-lute 15s ease-in-out infinite;
}
.scn-queen-katharine-apartments .queen-figure {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #5a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qka-queen 6s ease-in-out infinite;
}
.scn-queen-katharine-apartments .woman {
  position: absolute; bottom: 30%; right: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qka-woman 8s ease-in-out infinite alternate;
}
.scn-queen-katharine-apartments .candle {
  position: absolute; bottom: 35%; left: 55%; width: 6px; height: 20px;
  background: #d4a060;
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 6px rgba(180,120,40,0.6), 0 0 40px 12px rgba(180,120,40,0.3);
  animation: qka-candle 5s ease-in-out infinite alternate;
}
.scn-queen-katharine-apartments .tapestry {
  position: absolute; top: 5%; left: 10%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%);
  border-radius: 4px;
  opacity: 0.6;
  animation: qka-tapestry 20s ease-in-out infinite;
}
@keyframes qka-wall {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes qka-window {
  0% { box-shadow: inset 0 0 30px rgba(100,80,50,0.2), 0 0 40px rgba(80,60,40,0.1); }
  50% { box-shadow: inset 0 0 50px rgba(140,110,70,0.4), 0 0 80px rgba(110,80,50,0.3); }
  100% { box-shadow: inset 0 0 35px rgba(100,80,50,0.25), 0 0 50px rgba(80,60,40,0.15); }
}
@keyframes qka-lute {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-12deg) scale(1.02) translateY(-1px); }
  100% { transform: rotate(-15deg) scale(1); }
}
@keyframes qka-queen {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(0) translateY(-1px) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes qka-woman {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes qka-candle {
  0% { box-shadow: 0 0 15px 4px rgba(180,120,40,0.4), 0 0 30px 8px rgba(180,120,40,0.2); height: 20px; }
  50% { box-shadow: 0 0 25px 8px rgba(200,140,50,0.6), 0 0 50px 16px rgba(200,140,50,0.3); height: 22px; }
  100% { box-shadow: 0 0 18px 5px rgba(180,120,40,0.45), 0 0 35px 10px rgba(180,120,40,0.25); height: 20px; }
}
@keyframes qka-tapestry {
  0% { opacity: 0.5; filter: hue-rotate(0deg); }
  50% { opacity: 0.7; filter: hue-rotate(3deg); }
  100% { opacity: 0.55; filter: hue-rotate(0deg); }
}

/* Scene: item-lute-song (ils) */
.scn-item-lute-song {
  background:
    linear-gradient(135deg, #4a7a5a 0%, #6a9a6a 30%, #8aba7a 60%, #a0ca8a 100%),
    radial-gradient(ellipse at 50% 0%, #c0e0b0 0%, transparent 60%);
}
.scn-item-lute-song .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d0e8c0 0%, #b0d0a0 100%);
  animation: ils-sky 15s ease-in-out infinite alternate;
}
.scn-item-lute-song .mountain {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #4a6a4a 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);
  animation: ils-mountain 20s ease-in-out infinite alternate;
}
.scn-item-lute-song .tree {
  position: absolute; bottom: 28%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ils-tree 12s ease-in-out infinite;
}
.scn-item-lute-song .orpheus {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ils-orpheus 8s ease-in-out infinite;
}
.scn-item-lute-song .lute {
  position: absolute; bottom: 26%; left: 46%; width: 30px; height: 10px;
  transform: rotate(-10deg);
  background: #b09070;
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  animation: ils-lute 10s ease-in-out infinite;
}
.scn-item-lute-song .flowers {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 20px;
  background: radial-gradient(circle at 20% 50%, #d08050 0%, transparent 40%), radial-gradient(circle at 50% 30%, #b06040 0%, transparent 30%), radial-gradient(circle at 80% 70%, #c07050 0%, transparent 35%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ils-flowers 25s ease-in-out infinite alternate;
}
.scn-item-lute-song .waves {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #4a7a6a 0%, #6a9a8a 50%, transparent 100%);
  border-radius: 50% 50% 0 0;
  animation: ils-waves 8s ease-in-out infinite alternate;
}
@keyframes ils-sky {
  0% { opacity: 0.8; background: linear-gradient(180deg, #d0e8c0 0%, #b0d0a0 100%); }
  50% { opacity: 1; background: linear-gradient(180deg, #e0f0d0 0%, #c0e0b0 100%); }
  100% { opacity: 0.85; background: linear-gradient(180deg, #d0e8c0 0%, #b0d0a0 100%); }
}
@keyframes ils-mountain {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ils-tree {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ils-orpheus {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  33% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  66% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ils-lute {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.03) translateY(-1px); }
  100% { transform: rotate(-10deg) scale(1); }
}
@keyframes ils-flowers {
  0% { opacity: 0.6; filter: blur(1px); }
  50% { opacity: 1; filter: blur(0px); }
  100% { opacity: 0.7; filter: blur(1px); }
}
@keyframes ils-waves {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.05); }
  100% { transform: translateY(0) scaleY(1); }
}

/* Scene: cardinals-visit-queen (cvq) */
.scn-cardinals-visit-queen {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 30%, #4a3a3a 60%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 70%);
}
.scn-cardinals-visit-queen .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  animation: cvq-wall 10s ease-in-out infinite alternate;
}
.scn-cardinals-visit-queen .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #1a1212 0%, #2a1e1e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-cardinals-visit-queen .queen-throne {
  position: absolute; bottom: 30%; left: 50%; width: 70px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: cvq-throne 15s ease-in-out infinite;
}
.scn-cardinals-visit-queen .cardinal-left {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #5a2a2a 0%, #2a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cvq-cardinal-l 7s ease-in-out infinite;
}
.scn-cardinals-visit-queen .cardinal-right {
  position: absolute; bottom: 30%; right: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #5a2a2a 0%, #2a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cvq-cardinal-r 7s ease-in-out infinite 2s;
}
.scn-cardinals-visit-queen .table {
  position: absolute; bottom: 20%; left: 35%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cvq-table 20s ease-in-out infinite alternate;
}
.scn-cardinals-visit-queen .document {
  position: absolute; bottom: 22%; left: 42%; width: 20px; height: 14px;
  background: #d0c0a0;
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: cvq-document 12s ease-in-out infinite;
}
@keyframes cvq-wall {
  0% { opacity: 0.8; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.85; filter: brightness(1); }
}
@keyframes cvq-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-1px); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes cvq-cardinal-l {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(-2px) rotate(2deg); }
  75% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cvq-cardinal-r {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(2deg); }
  50% { transform: translateX(2px) rotate(-2deg); }
  75% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cvq-table {
  0% { opacity: 0.8; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3)); }
  50% { opacity: 1; filter: drop-shadow(0 4px 8px rgba(0,0,0,0.5)); }
  100% { opacity: 0.85; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3)); }
}
@keyframes cvq-document {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-3deg) scale(1.05); }
  100% { transform: rotate(-5deg) scale(1); }
}

/* Scene: lords-plot-against-cardinal (lpc) */
.scn-lords-plot-against-cardinal {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 20%, #3a3a4a 0%, transparent 60%);
}
.scn-lords-plot-against-cardinal .antechamber-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  animation: lpc-wall 9s ease-in-out infinite alternate;
}
.scn-lords-plot-against-cardinal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #12121a 0%, #1e1e2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-lords-plot-against-cardinal .window {
  position: absolute; top: 5%; left: 50%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #5a5a6a 0%, #2a2a3a 70%, #1a1a2a 100%);
  border: 3px solid #4a4a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,100,120,0.3);
  animation: lpc-window 14s ease-in-out infinite alternate;
}
.scn-lords-plot-against-cardinal .lord-norfolk {
  position: absolute; bottom: 25%; left: 15%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpc-norfolk 6s ease-in-out infinite;
}
.scn-lords-plot-against-cardinal .lord-suffolk {
  position: absolute; bottom: 25%; left: 30%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lpc-suffolk 6s ease-in-out infinite 1s;
}
.scn-lords-plot-against-cardinal .lord-surrey {
  position: absolute; bottom: 25%; right: 30%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lpc-surrey 6s ease-in-out infinite 2s;
}
.scn-lords-plot-against-cardinal .chamberlain {
  position: absolute; bottom: 25%; right: 15%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lpc-chamberlain 6s ease-in-out infinite 3s;
}
.scn-lords-plot-against-cardinal .whisper-lines {
  position: absolute; top: 30%; left: 20%; width: 40px; height: 2px;
  background: linear-gradient(90deg, transparent, #8a8a9a 50%, transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: lpc-whisper 4s ease-in-out infinite alternate;
}
@keyframes lpc-wall {
  0% { opacity: 0.7; filter: brightness(0.8); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.75; filter: brightness(0.9); }
}
@keyframes lpc-window {
  0% { box-shadow: inset 0 0 15px rgba(100,100,120,0.2); }
  50% { box-shadow: inset 0 0 30px rgba(120,120,140,0.4); }
  100% { box-shadow: inset 0 0 20px rgba(100,100,120,0.25); }
}
@keyframes lpc-norfolk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
  75% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lpc-suffolk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(2deg); }
  50% { transform: translateX(2px) rotate(-1deg); }
  75% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lpc-surrey {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-1deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  75% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lpc-chamberlain {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(1deg); }
  50% { transform: translateX(3px) rotate(-2deg); }
  75% { transform: translateX(-1px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lpc-whisper {
  0% { transform: translateX(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(10px) scaleX(1.5); opacity: 0.8; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.4; }
}

/* king-leaves-her */
.scn-king-leaves-her { background: linear-gradient(180deg, #1a1220 0%, #2a1a30 40%, #3a2530 100%), radial-gradient(ellipse at 50% 80%, #4a3545 0%, transparent 70%); }
.scn-king-leaves-her .bg { position:absolute; inset:0; background:linear-gradient(135deg, #2a1a30 0%, #1a1220 100%); animation: klh-breath 14s ease-in-out infinite; }
.scn-king-leaves-her .wall { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #3a2530 0%, #2a1a30 100%); border-bottom:2px solid #1a1220; box-shadow: inset 0 -20px 30px rgba(10,5,10,.6); }
.scn-king-leaves-her .bed { position:absolute; bottom:15%; left:25%; width:50%; height:20%; background:linear-gradient(180deg, #4a3540 0%, #2a1a30 100%); border-radius:10% 10% 0 0; box-shadow:0 4px 15px rgba(0,0,0,.5); animation: klh-bed 20s ease-in-out infinite alternate; }
.scn-king-leaves-her .figure { position:absolute; bottom:10%; right:35%; width:16px; height:40px; background:linear-gradient(180deg, #0a0808 0%, #1a0a10 100%); border-radius:40% 40% 30% 30%/60% 60% 40% 40%; transform-origin: bottom; animation: klh-walk 6s ease-in-out infinite; }
.scn-king-leaves-her .door { position:absolute; bottom:0; right:25%; width:20%; height:70%; background:linear-gradient(180deg, #2a1a20 0%, #1a0a10 100%); border-radius:5% 5% 0 0; box-shadow:-4px 0 10px rgba(0,0,0,.4); animation: klh-door 30s ease-in-out infinite alternate; }
.scn-king-leaves-her .lantern { position:absolute; bottom:35%; left:20%; width:8px; height:8px; background:radial-gradient(circle, #ffc870 0%, #b08030 70%); border-radius:50%; box-shadow:0 0 20px 8px #b08030, 0 0 40px 16px rgba(160,80,20,.4); animation: klh-glow 3s ease-in-out infinite alternate; }
@keyframes klh-breath { 0% { opacity:.75 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes klh-bed { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) scaleY(1.01) } 100% { transform:translateY(0) } }
@keyframes klh-walk { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-4px) rotate(-2deg) } 50% { transform:translateX(-8px) rotate(1deg) } 75% { transform:translateX(-12px) rotate(-1deg) } 100% { transform:translateX(-16px) rotate(0) } }
@keyframes klh-door { 0% { transform:rotateY(0) } 50% { transform:rotateY(10deg) } 100% { transform:rotateY(0) } }
@keyframes klh-glow { 0% { box-shadow:0 0 15px 4px #b08030, 0 0 30px 10px rgba(160,80,20,.3); opacity:.8 } 50% { box-shadow:0 0 30px 12px #ffc870, 0 0 60px 24px rgba(200,120,40,.5); opacity:1 } 100% { box-shadow:0 0 20px 6px #b08030, 0 0 40px 14px rgba(160,80,20,.4); opacity:.9 } }

/* anne-and-old-lady */
.scn-anne-and-old-lady { background: linear-gradient(180deg, #f8e8c8 0%, #e8d4a8 50%, #d4bc88 100%), radial-gradient(ellipse at 50% 30%, #fff2d8 0%, transparent 80%); }
.scn-anne-and-old-lady .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #c8a878 0%, #b09060 100%); border-top:2px solid #a08858; }
.scn-anne-and-old-lady .window { position:absolute; top:10%; left:10%; width:30%; height:45%; background:linear-gradient(135deg, #fff8e0 0%, #f0e0b0 100%); border:4px solid #a08858; border-radius:2%; box-shadow:inset 0 0 20px rgba(255,240,200,.5), 0 0 30px rgba(255,240,200,.3); animation: aol-window 12s ease-in-out infinite alternate; }
.scn-anne-and-old-lady .figure-anne { position:absolute; bottom:25%; left:40%; width:20px; height:50px; background:linear-gradient(180deg, #b09060 0%, #907050 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom; animation: aol-stand 4s ease-in-out infinite alternate; }
.scn-anne-and-old-lady .figure-old { position:absolute; bottom:25%; left:55%; width:18px; height:44px; background:linear-gradient(180deg, #a08050 0%, #7a6030 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom; animation: aol-stand 4s ease-in-out infinite alternate-reverse; }
.scn-anne-and-old-lady .chair { position:absolute; bottom:22%; left:43%; width:20px; height:25px; background:linear-gradient(180deg, #8a7040 0%, #6a5020 100%); border-radius:30% 30% 10% 10%; box-shadow:2px 0 6px rgba(0,0,0,.2); animation: aol-chair 20s ease-in-out infinite alternate; }
.scn-anne-and-old-lady .curtain { position:absolute; top:0; right:0; width:15%; height:100%; background:linear-gradient(180deg, #c8a878 0%, #b09060 50%, #a08050 100%); border-radius:0 0 0 30%; box-shadow:-5px 0 15px rgba(0,0,0,.2); animation: aol-curtain 15s ease-in-out infinite alternate; }
@keyframes aol-window { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes aol-stand { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-1px) rotate(1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes aol-chair { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes aol-curtain { 0% { transform:translateX(0) } 50% { transform:translateX(5px) } 100% { transform:translateX(0) } }

/* chamberlain-announces-honor */
.scn-chamberlain-announces-honor { background: linear-gradient(180deg, #f0e0c0 0%, #e8d0a0 50%, #d4b880 100%), radial-gradient(ellipse at 70% 40%, #fff0d0 0%, transparent 70%); }
.scn-chamberlain-announces-honor .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #c8a878 0%, #b09060 100%); border-top:2px solid #a08050; }
.scn-chamberlain-announces-honor .window { position:absolute; top:8%; right:10%; width:25%; height:40%; background:linear-gradient(135deg, #fff8e0 0%, #f0e0b0 100%); border:3px solid #a08858; border-radius:2%; box-shadow:inset 0 0 15px rgba(255,240,200,.5), 0 0 25px rgba(255,240,200,.3); animation: cah-glow 10s ease-in-out infinite alternate; }
.scn-chamberlain-announces-honor .figure-chamberlain { position:absolute; bottom:25%; left:50%; width:18px; height:48px; background:linear-gradient(180deg, #8a7040 0%, #6a5020 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom; animation: cah-bow 5s ease-in-out infinite; }
.scn-chamberlain-announces-honor .scroll { position:absolute; bottom:35%; left:48%; width:6px; height:12px; background:linear-gradient(180deg, #e0c890 0%, #c8a870 100%); border-radius:2px; transform:rotate(15deg); animation: cah-scroll 6s ease-in-out infinite alternate; }
.scn-chamberlain-announces-honor .throne { position:absolute; bottom:20%; right:25%; width:30px; height:40px; background:linear-gradient(180deg, #b09060 0%, #8a7040 100%); border-radius:30% 30% 10% 10%; box-shadow:4px 0 10px rgba(0,0,0,.2); animation: cah-throne 20s ease-in-out infinite alternate; }
.scn-chamberlain-announces-honor .candle { position:absolute; bottom:28%; left:35%; width:4px; height:14px; background:linear-gradient(180deg, #f0d080 0%, #c8a060 100%); border-radius:2px; box-shadow:0 0 8px 2px #f0d080, 0 0 16px 4px rgba(200,160,80,.4); animation: cah-candle 3s ease-in-out infinite alternate; }
@keyframes cah-glow { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cah-bow { 0% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(3deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes cah-scroll { 0% { transform:rotate(15deg) } 50% { transform:rotate(20deg) } 100% { transform:rotate(15deg) } }
@keyframes cah-throne { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes cah-candle { 0% { box-shadow:0 0 6px 1px #f0d080, 0 0 12px 3px rgba(200,160,80,.3); opacity:.85 } 50% { box-shadow:0 0 12px 4px #ffeb90, 0 0 24px 8px rgba(200,160,80,.5); opacity:1 } 100% { box-shadow:0 0 8px 2px #f0d080, 0 0 16px 4px rgba(200,160,80,.4); opacity:.9 } }

/* black-friars-trial */
.scn-black-friars-trial { background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b8 50%, #c8b898 100%), radial-gradient(ellipse at 50% 50%, #fff8e8 0%, transparent 70%); }
.scn-black-friars-trial .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background:linear-gradient(180deg, #b8a080 0%, #a08868 100%); border-top:2px solid #907050; }
.scn-black-friars-trial .pillar-left { position:absolute; bottom:0; left:15%; width:6%; height:85%; background:linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius:4px; box-shadow:2px 0 8px rgba(0,0,0,.15); animation: bft-pillar 30s ease-in-out infinite alternate; }
.scn-black-friars-trial .pillar-right { position:absolute; bottom:0; right:15%; width:6%; height:85%; background:linear-gradient(180deg, #c8b898 0%, #a08868 100%); border-radius:4px; box-shadow:-2px 0 8px rgba(0,0,0,.15); animation: bft-pillar 30s ease-in-out infinite alternate-reverse; }
.scn-black-friars-trial .bench { position:absolute; bottom:18%; left:30%; width:40%; height:8%; background:linear-gradient(180deg, #b09068 0%, #907050 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.2); animation: bft-bench 25s ease-in-out infinite alternate; }
.scn-black-friars-trial .figure-verger1 { position:absolute; bottom:15%; left:28%; width:14px; height:36px; background:linear-gradient(180deg, #7a6038 0%, #5a4020 100%); border-radius:40% 40% 30% 30%/60% 60% 40% 40%; transform-origin:bottom; animation: bft-figure 6s ease-in-out infinite; }
.scn-black-friars-trial .figure-verger2 { position:absolute; bottom:15%; left:58%; width:14px; height:36px; background:linear-gradient(180deg, #7a6038 0%, #5a4020 100%); border-radius:40% 40% 30% 30%/60% 60% 40% 40%; transform-origin:bottom; animation: bft-figure 6s ease-in-out infinite reverse; }
.scn-black-friars-trial .light-ray { position:absolute; top:5%; left:20%; width:60%; height:50%; background:linear-gradient(135deg, rgba(255,248,224,.6) 0%, rgba(255,240,200,.2) 100%); clip-path:polygon(0 0, 100% 0, 80% 100%, 20% 100%); filter:blur(8px); animation: bft-ray 15s ease-in-out infinite alternate; }
@keyframes bft-pillar { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes bft-bench { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes bft-figure { 0% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-1px) rotate(1deg) } 50% { transform:translateY(0) rotate(0) } 75% { transform:translateY(-1px) rotate(-1deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes bft-ray { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

/* scene-i-arrest-buckingham */
.scn-ar { background: linear-gradient(180deg, #d4c9a8 0%, #8b7355 50%, #3a2e1a 100%), radial-gradient(ellipse at 30% 50%, #b08d5c 0%, transparent 60%); }
.scn-ar .bg-ar { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c2b89a 0%, #5a4e38 100%); animation: ar-bg 8s ease-in-out infinite alternate; }
.scn-ar .floor-ar { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6e52 0%, #2c2416 100%); border-radius: 0 0 20% 20% / 0 0 100% 100%; box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-ar .arch-ar { position:absolute; top:5%; left:50%; width:120px; height:140px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #8b7355 0%, transparent 70%); border-radius: 50% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: ar-arch 2s ease-in-out infinite alternate; }
.scn-ar .window-ray-ar { position:absolute; top:8%; left:28%; width:60px; height:200px; background: linear-gradient(180deg, rgba(255,230,180,.15) 0%, rgba(255,180,100,.08) 100%); filter: blur(6px); transform: rotate(-15deg); animation: ar-ray 3s ease-in-out infinite alternate; }
.scn-ar .duke-ar { position:absolute; bottom:20%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0e12 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ar-duke 4s ease-in-out infinite; }
.scn-ar .sergeant-ar { position:absolute; bottom:20%; left:55%; width:22px; height:52px; background: linear-gradient(180deg, #3a2e2a 0%, #1a1410 100%); border-radius: 35% 35% 25% 25% / 55% 55% 25% 25%; transform: scaleX(-1); animation: ar-sergeant 3s ease-in-out infinite alternate; }
.scn-ar .guard-left-ar { position:absolute; bottom:18%; left:32%; width:24px; height:48px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 35% 35% 20% 20% / 50% 50% 20% 20%; transform: rotate(3deg); animation: ar-guard 2.5s ease-in-out infinite alternate; }
.scn-ar .guard-right-ar { position:absolute; bottom:18%; right:32%; width:24px; height:48px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 35% 35% 20% 20% / 50% 50% 20% 20%; transform: rotate(-3deg); animation: ar-guard 2.5s ease-in-out infinite alternate-reverse; }
@keyframes ar-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ar-arch { 0% { transform:translateX(-50%) scaleY(1); } 100% { transform:translateX(-50%) scaleY(0.95); } }
@keyframes ar-ray { 0% { opacity:0.3; transform: rotate(-15deg); } 50% { opacity:0.6; transform: rotate(-12deg); } 100% { opacity:0.3; transform: rotate(-15deg); } }
@keyframes ar-duke { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ar-sergeant { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes ar-guard { 0% { transform: rotate(3deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.02); } 100% { transform: rotate(3deg) scaleY(1); } }

/* scene-ii-council-chamber */
.scn-cc { background: linear-gradient(180deg, #f0e6d0 0%, #c8b89a 40%, #9a8a6e 100%), radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, transparent 70%); }
.scn-cc .bg-cc { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e8dcc8 0%, #a89878 100%); animation: cc-bg 12s ease-in-out infinite alternate; }
.scn-cc .floor-cc { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8a7a5e 0%, #4a3a24 100%); border-radius: 0 0 30% 30% / 0 0 100% 100%; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-cc .throne-cc { position:absolute; bottom:18%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a060 0%, #8a6a3a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: cc-throne 8s ease-in-out infinite; }
.scn-cc .king-cc { position:absolute; bottom:28%; left:49%; width:18px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cc-king 4s ease-in-out infinite; }
.scn-cc .cardinal-cc { position:absolute; bottom:22%; left:54%; width:16px; height:46px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0e12 100%); border-radius: 40% 40% 25% 25% / 55% 55% 25% 25%; transform: skewX(5deg); animation: cc-cardinal 3s ease-in-out infinite alternate; }
.scn-cc .nobles-cc { position:absolute; bottom:20%; left:28%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: scaleX(0.8); animation: cc-nobles 5s ease-in-out infinite; }
.scn-cc .pillar-left-cc { position:absolute; top:5%; left:5%; width:12px; height:70%; background: linear-gradient(180deg, #b0a080 0%, #6a5a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 2px 0 10px rgba(0,0,0,.3); animation: cc-pillar 20s ease-in-out infinite; }
.scn-cc .pillar-right-cc { position:absolute; top:5%; right:5%; width:12px; height:70%; background: linear-gradient(180deg, #b0a080 0%, #6a5a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset -2px 0 10px rgba(0,0,0,.3); animation: cc-pillar 20s ease-in-out infinite reverse; }
@keyframes cc-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes cc-throne { 0% { transform:translateX(-50%) scaleY(1); } 100% { transform:translateX(-50%) scaleY(0.97); } }
@keyframes cc-king { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cc-cardinal { 0% { transform: skewX(5deg) translateY(0); } 50% { transform: skewX(3deg) translateY(-2px); } 100% { transform: skewX(5deg) translateY(0); } }
@keyframes cc-nobles { 0% { transform: scaleX(0.8) translateY(0); } 50% { transform: scaleX(0.85) translateY(-1px); } 100% { transform: scaleX(0.8) translateY(0); } }
@keyframes cc-pillar { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }

/* scene-ii-surveyor-testimony */
.scn-st { background: linear-gradient(180deg, #e8dcc8 0%, #b0a080 50%, #5a4a3a 100%), radial-gradient(ellipse at 70% 40%, #c8b89a 0%, transparent 60%); }
.scn-st .bg-st { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4c8b0 0%, #6a5a3a 100%); animation: st-bg 6s ease-in-out infinite alternate; }
.scn-st .floor-st { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 0 0 10% 10% / 0 0 100% 100%; box-shadow: inset 0 15px 25px rgba(0,0,0,.4); }
.scn-st .bench-st { position:absolute; bottom:22%; left:60%; width:80px; height:20px; background: linear-gradient(180deg, #8a6a3a 0%, #4a3a1a 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: st-bench 3s ease-in-out infinite; }
.scn-st .king-st { position:absolute; bottom:30%; left:65%; width:16px; height:38px; background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 25% 25% / 55% 55% 25% 25%; transform: scale(1.1); animation: st-king 2.5s ease-in-out infinite alternate; }
.scn-st .surveyor-st { position:absolute; bottom:28%; left:38%; width:14px; height:42px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 35% 35% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: st-surveyor 3s ease-in-out infinite; }
.scn-st .clerk-st { position:absolute; bottom:26%; left:50%; width:12px; height:36px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 30% 15% 15% / 45% 45% 15% 15%; animation: st-clerk 2s ease-in-out infinite alternate; }
.scn-st .column-left-st { position:absolute; top:5%; left:10%; width:10px; height:60%; background: linear-gradient(180deg, #a09070 0%, #5a4a3a 100%); border-radius: 8% 8% 5% 5%; box-shadow: inset 1px 0 8px rgba(0,0,0,.3); animation: st-column 12s ease-in-out infinite; }
.scn-st .column-right-st { position:absolute; top:5%; right:10%; width:10px; height:60%; background: linear-gradient(180deg, #a09070 0%, #5a4a3a 100%); border-radius: 8% 8% 5% 5%; box-shadow: inset -1px 0 8px rgba(0,0,0,.3); animation: st-column 12s ease-in-out infinite reverse; }
.scn-st .light-fall-st { position:absolute; top:8%; left:35%; width:40px; height:100px; background: linear-gradient(180deg, rgba(255,240,200,.2) 0%, transparent 100%); filter: blur(4px); transform: rotate(-5deg); animation: st-light 3s ease-in-out infinite alternate; }
@keyframes st-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes st-bench { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes st-king { 0% { transform: scale(1.1) translateY(0); } 50% { transform: scale(1.12) translateY(-1px); } 100% { transform: scale(1.1) translateY(0); } }
@keyframes st-surveyor { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes st-clerk { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes st-column { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.96); } }
@keyframes st-light { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

/* scene-iii-antechamber */
.scn-an { background: linear-gradient(180deg, #f5e8d0 0%, #e0c8a0 40%, #c0a070 100%), radial-gradient(ellipse at 30% 50%, #fff0d0 0%, transparent 60%); }
.scn-an .bg-an { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0dcc0 0%, #a88858 100%); animation: an-bg 10s ease-in-out infinite alternate; }
.scn-an .floor-an { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b89870 0%, #6a5030 100%); border-radius: 0 0 20% 20% / 0 0 100% 100%; box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-an .chamberlain-an { position:absolute; bottom:22%; left:35%; width:18px; height:48px; background: linear-gradient(180deg, #6a3a4a 0%, #3a1a2a 100%); border-radius: 40% 40% 20% 20% / 55% 55% 20% 20%; transform: rotate(5deg) scale(1.1); animation: an-chamberlain 1.5s ease-in-out infinite alternate; }
.scn-an .sands-an { position:absolute; bottom:20%; right:38%; width:16px; height:50px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 35% 35% 25% 25% / 50% 50% 25% 25%; transform: rotate(-4deg) scale(0.95); animation: an-sands 1.8s ease-in-out infinite alternate; }
.scn-an .coat-rack-an { position:absolute; bottom:15%; left:20%; width:8px; height:70px; background: linear-gradient(180deg, #6a4a3a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; transform: rotate(2deg); animation: an-rack 4s ease-in-out infinite; }
.scn-an .mirror-an { position:absolute; top:10%; right:15%; width:40px; height:50px; background: radial-gradient(ellipse at 50% 50%, #e0d0b0 0%, #a09070 100%); border: 2px solid #8a7a5e; border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 10px rgba(0,0,0,.2); animation: an-mirror 6s ease-in-out infinite; }
.scn-an .curtain-an { position:absolute; top:5%; left:5%; width:25%; height:70%; background: linear-gradient(180deg, #c09070 0%, #804a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; filter: blur(4px); animation: an-curtain 8s ease-in-out infinite alternate; }
@keyframes an-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes an-chamberlain { 0% { transform: rotate(5deg) scale(1.1) translateY(0); } 50% { transform: rotate(2deg) scale(1.15) translateY(-3px); } 100% { transform: rotate(5deg) scale(1.1) translateY(0); } }
@keyframes an-sands { 0% { transform: rotate(-4deg) scale(0.95) translateY(0); } 50% { transform: rotate(-1deg) scale(1.0) translateY(-2px); } 100% { transform: rotate(-4deg) scale(0.95) translateY(0); } }
@keyframes an-rack { 0%,100% { transform: rotate(2deg); } 50% { transform: rotate(0deg); } }
@keyframes an-mirror { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes an-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }

/* scene-i-antechamber: calm bright interior */
.scn-scene-i-antechamber { background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 30%, #b8a88a 100%), radial-gradient(ellipse at 50% 100%, #f0e0c0 0%, transparent 70%); }
.scn-scene-i-antechamber .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #e6d4b0 0%, #c8b896 100%); }
.scn-scene-i-antechamber .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-top:2px solid #c0a080; animation: sia-floor 12s ease-in-out infinite alternate; }
.scn-scene-i-antechamber .pillar-left { position:absolute; bottom:0; left:8%; width:4%; height:80%; background: linear-gradient(90deg, #b09878 0%, #d0b890 30%, #b09878 70%, #907050 100%); border-radius:4px; box-shadow: 4px 0 8px rgba(0,0,0,.15); }
.scn-scene-i-antechamber .pillar-right { position:absolute; bottom:0; right:8%; width:4%; height:80%; background: linear-gradient(90deg, #b09878 0%, #d0b890 30%, #b09878 70%, #907050 100%); border-radius:4px; box-shadow: -4px 0 8px rgba(0,0,0,.15); }
.scn-scene-i-antechamber .arch-window { position:absolute; top:10%; left:50%; transform:translateX(-50%); width:30%; height:50%; background: linear-gradient(180deg, #c8e0f0 0%, #a0c0d8 100%); border-radius:50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: inset 0 0 40px rgba(100,150,200,.3); animation: sia-window 8s ease-in-out infinite alternate; }
.scn-scene-i-antechamber .curtain { position:absolute; top:0; width:15%; height:90%; background: linear-gradient(180deg, #a03030 0%, #801818 50%, #601010 100%); border-radius:0 0 30% 30%; transform-origin: top center; filter:blur(1px); }
.scn-scene-i-antechamber .curtain-l { left:20%; animation: sia-curtain-l 10s ease-in-out infinite alternate; }
.scn-scene-i-antechamber .curtain-r { right:20%; animation: sia-curtain-r 12s ease-in-out infinite alternate; }
.scn-scene-i-antechamber .figure-norfolk { position:absolute; bottom:25%; left:35%; width:12px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sia-figure 6s ease-in-out infinite; }
.scn-scene-i-antechamber .chandelier-glow { position:absolute; top:8%; left:50%; transform:translateX(-50%); width:30px; height:30px; background: radial-gradient(circle, #ffe080 0%, #e0a030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(255,200,100,.6); animation: sia-glow 4s ease-in-out infinite alternate; }
@keyframes sia-floor { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sia-window { 0% { filter:brightness(1) } 50% { filter:brightness(1.1) } 100% { filter:brightness(.95) } }
@keyframes sia-curtain-l { 0% { transform:rotate(0deg) scaleX(1) } 50% { transform:rotate(2deg) scaleX(1.02) } 100% { transform:rotate(-1deg) scaleX(.98) } }
@keyframes sia-curtain-r { 0% { transform:rotate(0deg) scaleX(1) } 50% { transform:rotate(-2deg) scaleX(1.02) } 100% { transform:rotate(1deg) scaleX(.98) } }
@keyframes sia-figure { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(4px) rotate(1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes sia-glow { 0% { opacity:.8; box-shadow:0 0 30px 8px rgba(255,200,100,.5) } 50% { opacity:1; box-shadow:0 0 60px 15px rgba(255,200,100,.8) } 100% { opacity:.85; box-shadow:0 0 40px 10px rgba(255,200,100,.6) } }

/* scene-i-cloth-of-gold: warm bright interior, masque scene */
.scn-scene-i-cloth-of-gold { background: linear-gradient(180deg, #d4a050 0%, #c09040 40%, #a07030 100%), radial-gradient(ellipse at 50% 80%, #e0b060 0%, transparent 60%); }
.scn-scene-i-cloth-of-gold .backdrop-golden { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #d4a030 0%, #b08020 50%, #906010 100%); border-radius:0 0 30% 30%; box-shadow: inset 0 8px 30px rgba(100,60,0,.4); animation: scg-shimmer 6s ease-in-out infinite alternate; }
.scn-scene-i-cloth-of-gold .stage-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a07030 0%, #805020 100%); border-top:3px solid #c09040; }
.scn-scene-i-cloth-of-gold .figure-kingL { position:absolute; bottom:30%; left:30%; width:14px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: scg-bow-l 8s ease-in-out infinite; }
.scn-scene-i-cloth-of-gold .figure-kingR { position:absolute; bottom:30%; right:30%; width:14px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: scg-bow-r 8s ease-in-out infinite 4s; }
.scn-scene-i-cloth-of-gold .throne-pedestal { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:60px; height:20px; background: linear-gradient(180deg, #b09040 0%, #806020 100%); border-radius:8px 8px 4px 4px; }
.scn-scene-i-cloth-of-gold .light-beam { position:absolute; top:0; left:50%; transform:translateX(-50%); width:20%; height:100%; background: linear-gradient(180deg, rgba(255,220,150,.6) 0%, transparent 80%); animation: scg-beam 9s ease-in-out infinite alternate; }
.scn-scene-i-cloth-of-gold .crown-glow { position:absolute; bottom:48%; left:50%; transform:translateX(-50%); width:18px; height:18px; background: radial-gradient(circle, #ffd080 0%, #e0a030 60%, transparent); border-radius:50%; box-shadow: 0 0 30px 6px rgba(255,200,80,.7); animation: scg-crown 3s ease-in-out infinite alternate; }
@keyframes scg-shimmer { 0% { filter:brightness(1) } 50% { filter:brightness(1.15) } 100% { filter:brightness(.95) } }
@keyframes scg-bow-l { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-3px) rotate(3deg) } 50% { transform:translateY(0) rotate(0deg) } 75% { transform:translateY(-1px) rotate(-2deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes scg-bow-r { 0% { transform:translateY(0) rotate(0deg) } 25% { transform:translateY(-3px) rotate(-3deg) } 50% { transform:translateY(0) rotate(0deg) } 75% { transform:translateY(-1px) rotate(2deg) } 100% { transform:translateY(0) rotate(0) } }
@keyframes scg-beam { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes scg-crown { 0% { opacity:.8; box-shadow:0 0 20px 4px rgba(255,200,80,.6) } 50% { opacity:1; box-shadow:0 0 40px 10px rgba(255,200,80,.9) } 100% { opacity:.85; box-shadow:0 0 25px 5px rgba(255,200,80,.7) } }

/* scene-i-cardinal-criticism: dark, bright interior with shadow */
.scn-scene-i-cardinal-criticism { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #806040 0%, transparent 80%); }
.scn-scene-i-cardinal-criticism .sun-window { position:absolute; top:5%; left:50%; transform:translateX(-50%); width:40%; height:40%; background: radial-gradient(ellipse, #ffe080 0%, #f0a030 50%, #804020 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,200,100,.5); animation: scc-glow 6s ease-in-out infinite alternate; }
.scn-scene-i-cardinal-criticism .window-frame { position:absolute; top:0; left:50%; transform:translateX(-50%); width:50%; height:45%; border:6px solid #3a2a1a; border-radius:10px; background:transparent; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-scene-i-cardinal-criticism .cardinal-body { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:60px; height:70px; background: linear-gradient(180deg, #1a100a 0%, #0a0500 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 30px rgba(0,0,0,.6); animation: scc-sway 10s ease-in-out infinite; }
.scn-scene-i-cardinal-criticism .cardinal-head { position:absolute; bottom:72%; left:50%; transform:translateX(-50%); width:24px; height:28px; background: #1a100a; border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; filter:blur(1px); animation: scc-head 10s ease-in-out infinite; }
.scn-scene-i-cardinal-criticism .floor-shadow { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%); animation: scc-shadow 10s ease-in-out infinite alternate; }
.scn-scene-i-cardinal-criticism .surveyor-figure { position:absolute; bottom:18%; left:15%; width:10px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scc-tremble 4s ease-in-out infinite; }
@keyframes scc-glow { 0% { opacity:.8; box-shadow:0 0 60px 20px rgba(255,200,100,.4) } 50% { opacity:1; box-shadow:0 0 100px 40px rgba(255,200,100,.7) } 100% { opacity:.75; box-shadow:0 0 80px 30px rgba(255,200,100,.5) } }
@keyframes scc-sway { 0% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(2deg) } 100% { transform:translateX(-50%) rotate(-1deg) } }
@keyframes scc-head { 0% { transform:translateX(-50%) rotate(-1deg) } 50% { transform:translateX(-50%) rotate(2deg) } 100% { transform:translateX(-50%) rotate(-1deg) } }
@keyframes scc-shadow { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes scc-tremble { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(2px) rotate(2deg) } 75% { transform:translateX(-2px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }

/* scene-i-wolsey-entrance: tense bright interior */
.scn-scene-i-wolsey-entrance { background: linear-gradient(180deg, #d0c0a0 0%, #b09878 50%, #907060 100%), radial-gradient(ellipse at 50% 0%, #f0d8c0 0%, transparent 70%); }
.scn-scene-i-wolsey-entrance .doorway-arch { position:absolute; top:0; left:50%; transform:translateX(-50%); width:35%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 5% 5% / 80% 80% 5% 5%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-scene-i-wolsey-entrance .light-beam { position:absolute; top:0; left:50%; transform:translateX(-50%); width:30%; height:100%; background: linear-gradient(180deg, rgba(255,220,160,.7) 0%, rgba(255,220,160,.1) 80%); animation: swe-beam 3s ease-in-out infinite alternate; }
.scn-scene-i-wolsey-entrance .cardinal-wolsey { position:absolute; bottom:15%; left:45%; width:18px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: swe-stride 8s ease-in-out infinite; }
.scn-scene-i-wolsey-entrance .buckingham { position:absolute; bottom:20%; right:20%; width:14px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: swe-recoil 6s ease-in-out infinite; }
.scn-scene-i-wolsey-entrance .guard { position:absolute; bottom:15%; width:10px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; animation: swe-stand 5s ease-in-out infinite; }
.scn-scene-i-wolsey-entrance .guard-l { left:10%; }
.scn-scene-i-wolsey-entrance .guard-r { right:10%; animation-delay:2.5s; }
.scn-scene-i-wolsey-entrance .papers { position:absolute; bottom:35%; left:48%; width:20px; height:14px; background: #c0a080; border-radius:2px; transform-origin: center; animation: swe-flutter 4s ease-in-out infinite; }
@keyframes swe-beam { 0% { opacity:.7; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.15) } 100% { opacity:.8; filter:brightness(.95) } }
@keyframes swe-stride { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(6px) rotate(1deg) translateY(-1px) } 50% { transform:translateX(12px) rotate(0deg) translateY(0) } 75% { transform:translateX(6px) rotate(-1deg) translateY(-1px) } 100% { transform:translateX(0) rotate(0) } }
@keyframes swe-recoil { 0% { transform:translateX(0) rotate(0); opacity:1 } 50% { transform:translateX(-4px) rotate(-3deg); opacity:.8 } 100% { transform:translateX(0) rotate(0); opacity:1 } }
@keyframes swe-stand { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes swe-flutter { 0% { transform:translate(0,0) rotate(0deg) } 25% { transform:translate(3px,-2px) rotate(15deg) } 50% { transform:translate(0,0) rotate(0deg) } 75% { transform:translate(2px,-1px) rotate(-10deg) } 100% { transform:translate(0,0) rotate(0) } }

/* === item-cardinal-letter === */
.scn-item-cardinal-letter { background: linear-gradient(180deg, #f5e6c8 0%, #d4c5a0 100%), radial-gradient(ellipse at 40% 30%, #f5e6c8 0%, transparent 70%); }
.scn-item-cardinal-letter .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d9c9a8 0%, #b8a88a 100%); }
.scn-item-cardinal-letter .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7a6a50 0%, #5a4a30 100%); }
.scn-item-cardinal-letter .window { position:absolute; top:8%; left:58%; width:80px; height:100px; background: linear-gradient(180deg, #fcf6e8 0%, #e8dcc0 100%); border:4px solid #a09070; border-radius:4px; box-shadow:inset 0 -4px 12px rgba(0,0,0,0.1), 0 0 30px rgba(255,255,200,0.5); animation: icl-window 8s ease-in-out infinite alternate; }
.scn-item-cardinal-letter .desk { position:absolute; bottom:30%; left:20%; width:60%; height:18px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a30 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,0.3); }
.scn-item-cardinal-letter .figure { position:absolute; bottom:30%; left:40%; width:40px; height:70px; background: linear-gradient(180deg, #2a2218 0%, #0e0a06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: icl-figure 4s ease-in-out infinite; }
.scn-item-cardinal-letter .letter { position:absolute; bottom:35%; left:45%; width:14px; height:10px; background: #f0e6c8; border-radius:2px; transform-origin: bottom left; box-shadow:0 0 6px rgba(0,0,0,0.2); animation: icl-letter 3s ease-in-out infinite alternate; }
.scn-item-cardinal-letter .shadow { position:absolute; bottom:30%; left:38%; width:50px; height:12px; background: rgba(0,0,0,0.25); border-radius:50%; filter:blur(3px); animation: icl-shadow 4s ease-in-out infinite; }
@keyframes icl-window { 0% { box-shadow:inset 0 -4px 12px rgba(0,0,0,0.1), 0 0 30px rgba(255,255,200,0.5); } 50% { box-shadow:inset 0 -4px 12px rgba(0,0,0,0.2), 0 0 50px rgba(255,255,200,0.8); } 100% { box-shadow:inset 0 -4px 12px rgba(0,0,0,0.1), 0 0 30px rgba(255,255,200,0.5); } }
@keyframes icl-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes icl-letter { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes icl-shadow { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.15); } 100% { opacity:0.5; transform: scaleX(1); } }

/* === cardinal-moody === */
.scn-cardinal-moody { background: linear-gradient(180deg, #e8e0d0 0%, #c0b8a0 100%), radial-gradient(ellipse at 50% 60%, #e8e0d0 0%, transparent 80%); }
.scn-cardinal-moody .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4ccbc 0%, #b0a890 100%); }
.scn-cardinal-moody .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5e50 0%, #4a3e30 100%); }
.scn-cardinal-moody .bed { position:absolute; bottom:35%; left:10%; width:80%; height:30px; background: linear-gradient(180deg, #9a8e7a 0%, #7a6e5a 100%); border-radius:4px; box-shadow:0 4px 12px rgba(0,0,0,0.2); }
.scn-cardinal-moody .figure-cardinal { position:absolute; bottom:38%; left:30%; width:36px; height:64px; background: linear-gradient(180deg, #5a1a1d 0%, #2e0c0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cmo-cardinal 5s ease-in-out infinite; }
.scn-cardinal-moody .figure-cromwell { position:absolute; bottom:38%; right:30%; width:32px; height:58px; background: linear-gradient(180deg, #3a2a1e 0%, #1a0e0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cmo-cromwell 6s ease-in-out infinite 1s; }
.scn-cardinal-moody .packet { position:absolute; bottom:43%; left:40%; width:12px; height:8px; background: #f0e8d0; border-radius:2px; box-shadow:0 0 4px rgba(0,0,0,0.3); animation: cmo-packet 4s ease-in-out infinite alternate; }
.scn-cardinal-moody .curtain { position:absolute; top:0; right:0; width:40px; height:100%; background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%); border-radius:0 0 0 20%; animation: cmo-curtain 12s ease-in-out infinite alternate; }
@keyframes cmo-cardinal { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes cmo-cromwell { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes cmo-packet { 0% { transform: translateY(0) rotate(0deg); opacity:0.8; } 50% { transform: translateY(-3px) rotate(5deg); opacity:1; } 100% { transform: translateY(0) rotate(0deg); opacity:0.8; } }
@keyframes cmo-curtain { 0% { transform: scaleX(1); filter:brightness(1); } 50% { transform: scaleX(0.9); filter:brightness(1.1); } 100% { transform: scaleX(1); filter:brightness(1); } }

/* === cardinal-plotting === */
.scn-cardinal-plotting { background: linear-gradient(180deg, #1c1820 0%, #2a2230 50%, #3c304a 100%), radial-gradient(ellipse at 50% 70%, #4a3a5a 0%, transparent 60%); }
.scn-cardinal-plotting .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0e0c14 0%, #1a1620 100%); opacity:0.6; }
.scn-cardinal-plotting .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); }
.scn-cardinal-plotting .figure { position:absolute; bottom:25%; left:42%; width:40px; height:72px; background: linear-gradient(180deg, #2e1c12 0%, #0e0804 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cpl-figure 7s ease-in-out infinite; }
.scn-cardinal-plotting .candle { position:absolute; bottom:30%; right:30%; width:8px; height:20px; background: linear-gradient(180deg, #e8d4b0 0%, #b89870 100%); border-radius:2px; }
.scn-cardinal-plotting .flame { position:absolute; bottom:48%; right:30%; width:6px; height:10px; background: radial-gradient(ellipse at 50% 0%, #ffec80 0%, #f0a040 60%, transparent 80%); border-radius:50%; filter:blur(2px); animation: cpl-flame 0.4s ease-in-out infinite alternate; }
.scn-cardinal-plotting .scroll { position:absolute; bottom:30%; left:25%; width:18px; height:14px; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius:2px; transform-origin: left center; animation: cpl-scroll 9s ease-in-out infinite alternate; }
@keyframes cpl-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(1px) translateY(-1px) rotate(2deg); } 66% { transform: translateX(-1px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes cpl-flame { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.9; } 50% { transform: scaleY(1.2) rotate(2deg); opacity:1; } 100% { transform: scaleY(0.95) rotate(-1deg); opacity:0.8; } }
@keyframes cpl-scroll { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(0.95) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }

/* === king-confronts-cardinal === */
.scn-king-confronts-cardinal { background: linear-gradient(180deg, #f0e6d0 0%, #d0c0a0 100%), radial-gradient(ellipse at 50% 40%, #f0e6d0 0%, transparent 80%); }
.scn-king-confronts-cardinal .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d8c8b0 0%, #b8a88a 100%); }
.scn-king-confronts-cardinal .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6a52 0%, #5a4a32 100%); }
.scn-king-confronts-cardinal .throne { position:absolute; bottom:25%; left:25%; width:60px; height:80px; background: linear-gradient(180deg, #c8a060 0%, #987040 100%); border-radius:8% 8% 4% 4% / 60% 60% 30% 30%; box-shadow:0 4px 16px rgba(0,0,0,0.4); }
.scn-king-confronts-cardinal .figure-king { position:absolute; bottom:25%; left:27%; width:40px; height:70px; background: linear-gradient(180deg, #2c1c10 0%, #0e0804 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kcc-king 4s ease-in-out infinite; }
.scn-king-confronts-cardinal .figure-cardinal { position:absolute; bottom:25%; right:25%; width:36px; height:66px; background: linear-gradient(180deg, #5e1a1d 0%, #2e0c0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kcc-cardinal 5s ease-in-out infinite 1s; }
.scn-king-confronts-cardinal .schedule { position:absolute; bottom:38%; left:35%; width:16px; height:12px; background: #f0e8d0; border-radius:1px; transform-origin: top right; animation: kcc-schedule 3s ease-in-out infinite alternate; }
.scn-king-confronts-cardinal .shadow-pillar { position:absolute; top:0; left:48%; width:8px; height:100%; background: rgba(0,0,0,0.2); filter:blur(4px); animation: kcc-pillar 12s ease-in-out infinite alternate; }
@keyframes kcc-king { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes kcc-cardinal { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes kcc-schedule { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-4deg) scaleX(1.05); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes kcc-pillar { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.3; transform: scaleX(1); } }

.scn-item-inventory-paper {
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1008 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 60% 40%, #c87030 0%, transparent 60%);
}
.scn-item-inventory-paper .desk {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, #1a1008 100%);
  animation: invp-desk 12s ease-in-out infinite alternate;
}
.scn-item-inventory-paper .paper {
  position: absolute; top: 30%; left: 25%; width: 50%; height: 35%;
  background: linear-gradient(145deg, #f5e6c8 0%, #d9c49a 100%);
  border-radius: 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  transform: rotate(-2deg); animation: invp-paper 6s ease-in-out infinite;
}
.scn-item-inventory-paper .hand {
  position: absolute; bottom: 15%; right: 28%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform: rotate(10deg); animation: invp-hand 3s ease-in-out infinite;
}
.scn-item-inventory-paper .candle {
  position: absolute; bottom: 18%; left: 22%; width: 6%; height: 25%;
  background: linear-gradient(180deg, #f0d080 0%, #c89850 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-item-inventory-paper .flame {
  position: absolute; bottom: 43%; left: 24%; width: 3%; height: 8%;
  background: radial-gradient(circle, #ffe080 0%, #d04000 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px #d04000, 0 0 40px 12px rgba(200,80,0,0.4);
  animation: invp-flame 1.2s ease-in-out infinite alternate;
}
.scn-item-inventory-paper .inkwell {
  position: absolute; bottom: 10%; left: 40%; width: 8%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #0a0808 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.8);
}
.scn-item-inventory-paper .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #0a0808 100%);
  animation: invp-shadow 8s ease-in-out infinite alternate;
}
@keyframes invp-desk {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}
@keyframes invp-paper {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-4px); }
  100% { transform: rotate(-2.5deg) translateY(2px); }
}
@keyframes invp-hand {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-6px); }
  100% { transform: rotate(11deg) translateY(0); }
}
@keyframes invp-flame {
  0% { transform: scaleY(1) scaleX(0.9); opacity: 0.8; }
  50% { transform: scaleY(1.3) scaleX(1.1); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(0.85); opacity: 0.7; }
}
@keyframes invp-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

.scn-cardinal-falls {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a1a2e 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a3e 0%, transparent 70%);
}
.scn-cardinal-falls .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1220 100%);
  animation: carf-bgdeep 20s ease-in-out infinite alternate;
}
.scn-cardinal-falls .figure-fall {
  position: absolute; top: 10%; left: 40%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #1a1220 0%, #0a0810 100%);
  border-radius: 40% 40% 50% 50% / 30% 30% 40% 40%;
  transform: rotate(15deg); animation: carf-fall 4s ease-in-out infinite;
}
.scn-cardinal-falls .paper-a {
  position: absolute; top: 25%; left: 20%; width: 12%; height: 15%;
  background: linear-gradient(135deg, #e8e0c0 0%, #c8b890 100%);
  border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-20deg); animation: carf-paper 7s ease-in-out infinite;
}
.scn-cardinal-falls .paper-b {
  position: absolute; top: 35%; right: 25%; width: 10%; height: 13%;
  background: linear-gradient(135deg, #e0d8b0 0%, #c0b080 100%);
  border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(30deg); animation: carf-paper 9s ease-in-out infinite 2s;
}
.scn-cardinal-falls .paper-c {
  position: absolute; top: 50%; left: 35%; width: 8%; height: 10%;
  background: linear-gradient(135deg, #d0c8a0 0%, #b0a078 100%);
  border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-40deg); animation: carf-paper 11s ease-in-out infinite 4s;
}
.scn-cardinal-falls .lantern-glow {
  position: absolute; bottom: 30%; left: 45%; width: 6%; height: 8%;
  background: radial-gradient(circle, #c87030 0%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px #c87030, 0 0 80px 40px rgba(200,112,48,0.3);
  animation: carf-lantern 3s ease-in-out infinite alternate;
}
.scn-cardinal-falls .beam-light {
  position: absolute; top: 0; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(200,112,48,0.15) 0%, transparent 80%);
  animation: carf-beam 5s ease-in-out infinite alternate;
}
@keyframes carf-bgdeep {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; }
}
@keyframes carf-fall {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(30px); }
  100% { transform: rotate(16deg) translateY(5px); }
}
@keyframes carf-paper {
  0% { transform: rotate(var(--r, -20deg)) translateX(0) translateY(0); }
  50% { transform: rotate(calc(var(--r, -20deg) + 15deg)) translateX(20px) translateY(-20px); }
  100% { transform: rotate(calc(var(--r, -20deg) - 10deg)) translateX(-10px) translateY(10px); }
}
@keyframes carf-lantern {
  0% { box-shadow: 0 0 30px 15px #c87030, 0 0 60px 30px rgba(200,112,48,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 25px #e89050, 0 0 100px 50px rgba(232,144,80,0.4); opacity: 1; }
  100% { box-shadow: 0 0 35px 18px #c87030, 0 0 70px 35px rgba(200,112,48,0.25); opacity: 0.7; }
}
@keyframes carf-beam {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.5; transform: scaleY(0.95); }
}

.scn-wolsey-confrontation {
  background: linear-gradient(180deg, #c8b898 0%, #e8d8b8 30%, #d0c0a0 70%, #b0a080 100%),
              radial-gradient(ellipse at 50% 80%, #e8d8b8 0%, transparent 60%);
}
.scn-wolsey-confrontation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-wolsey-confrontation .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
}
.scn-wolsey-confrontation .table {
  position: absolute; bottom: 28%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-wolsey-confrontation .figure-left {
  position: absolute; bottom: 30%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-5deg); animation: wolc-left 4s ease-in-out infinite;
}
.scn-wolsey-confrontation .figure-right {
  position: absolute; bottom: 30%; right: 20%; width: 12%; height: 42%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(5deg); animation: wolc-right 4s ease-in-out infinite 2s;
}
.scn-wolsey-confrontation .document {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 14%;
  background: linear-gradient(145deg, #f0e0c0 0%, #d0c0a0 100%);
  border-radius: 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: rotate(-3deg);
}
.scn-wolsey-confrontation .window-light {
  position: absolute; top: 10%; left: 42%; width: 16%; height: 30%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  border-radius: 10% 10% 0 0; filter: blur(8px);
  animation: wolc-light 6s ease-in-out infinite alternate;
}
@keyframes wolc-left {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-6deg) translateY(2px); }
}
@keyframes wolc-right {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-4px); }
  100% { transform: rotate(6deg) translateY(2px); }
}
@keyframes wolc-light {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}

.scn-wolsey-articles {
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 50%, #1a1008 100%),
              radial-gradient(ellipse at 70% 30%, #c87030 0%, transparent 60%);
}
.scn-wolsey-articles .desk-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, #1a1008 100%);
}
.scn-wolsey-articles .paper-main {
  position: absolute; top: 20%; left: 20%; width: 60%; height: 45%;
  background: linear-gradient(145deg, #f5e6c8 0%, #d9c49a 100%);
  border-radius: 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  transform: rotate(2deg); animation: wola-paper 8s ease-in-out infinite;
}
.scn-wolsey-articles .paper-sub {
  position: absolute; top: 25%; left: 35%; width: 25%; height: 20%;
  background: linear-gradient(145deg, #e0d0b0 0%, #c0b090 100%);
  border-radius: 2%; box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  transform: rotate(-5deg); animation: wola-subpaper 6s ease-in-out infinite alternate;
}
.scn-wolsey-articles .hand-quill {
  position: absolute; bottom: 15%; right: 25%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform: rotate(-15deg); animation: wola-hand 3s ease-in-out infinite;
}
.scn-wolsey-articles .quill {
  position: absolute; bottom: 28%; right: 30%; width: 3%; height: 20%;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 80% 80% 20% 20% / 40% 40% 60% 60%;
  transform: rotate(-20deg); animation: wola-quill 1.5s ease-in-out infinite alternate;
}
.scn-wolsey-articles .seal {
  position: absolute; bottom: 22%; left: 28%; width: 8%; height: 6%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: wola-seal 10s ease-in-out infinite alternate;
}
.scn-wolsey-articles .inkwell-spot {
  position: absolute; bottom: 12%; left: 35%; width: 6%; height: 8%;
  background: radial-gradient(ellipse at 50% 30%, #1a1008 0%, #0a0808 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: inset 0 -3px 5px rgba(0,0,0,0.8);
}
@keyframes wola-paper {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-5px); }
  100% { transform: rotate(2.5deg) translateY(2px); }
}
@keyframes wola-subpaper {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(4px); }
  100% { transform: rotate(-6deg) translateX(-2px); }
}
@keyframes wola-hand {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-13deg) translateY(-8px); }
  100% { transform: rotate(-16deg) translateY(0); }
}
@keyframes wola-quill {
  0% { transform: rotate(-20deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.1); }
  100% { transform: rotate(-22deg) scaleY(0.9); }
}
@keyframes wola-seal {
  0% { opacity: 0.6; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
  50% { opacity: 1; box-shadow: 0 4px 12px rgba(192,85,61,0.6); }
  100% { opacity: 0.7; box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
}

.scn-katharine-judgment-wolsey {
  background: linear-gradient(180deg, #0a0505 0%, #1a0e0a 40%, #2a1510 100%), radial-gradient(ellipse at 30% 60%, #3a2015 0%, transparent 70%);
}
.scn-katharine-judgment-wolsey .bg-deep { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, #1a0e0a 0%, transparent 50%, #0a0505 100%); animation: kjw-bg 12s ease-in-out infinite alternate; }
.scn-katharine-judgment-wolsey .bg-mid { position:absolute; inset:20% 10% 30% 10%; background: linear-gradient(180deg, rgba(60,35,20,0.5) 0%, transparent 100%); border-radius: 40% 40% 0 0; animation: kjw-mid 15s ease-in-out infinite alternate; }
.scn-katharine-judgment-wolsey .table { position:absolute; bottom:25%; left:30%; width:45%; height:10%; background: linear-gradient(180deg, #3a2015 0%, #2a1510 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform: perspective(200px) rotateX(5deg); animation: kjw-table 9s ease-in-out infinite; }
.scn-katharine-judgment-wolsey .candle { position:absolute; bottom:38%; left:45%; width:8px; height:28px; background: linear-gradient(180deg, #5a3020 0%, #3a2015 100%); border-radius: 4px; box-shadow: inset -2px 0 4px rgba(0,0,0,0.5); transform: rotate(-1deg); animation: kjw-candle 5s ease-in-out infinite; }
.scn-katharine-judgment-wolsey .flame { position:absolute; bottom:65%; left:45.5%; width:10px; height:15px; background: radial-gradient(ellipse, #ffa050 0%, #ff8040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 16px 6px #ff8040, 0 0 32px 12px rgba(255,128,64,0.4); animation: kjw-flame 2s ease-in-out infinite alternate; }
.scn-katharine-judgment-wolsey .figure { position:absolute; bottom:28%; left:20%; width:20px; height:55px; background: linear-gradient(180deg, #1a0e0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 0 1px rgba(0,0,0,0.3); animation: kjw-figure 7s ease-in-out infinite; }
.scn-katharine-judgment-wolsey .shadow { position:absolute; bottom:27%; left:18%; width:30px; height:50px; background: rgba(0,0,0,0.5); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; filter: blur(3px); transform: skewX(-10deg); animation: kjw-shadow 4s ease-in-out infinite alternate; }

@keyframes kjw-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes kjw-mid { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes kjw-table { 0%,100% { transform: perspective(200px) rotateX(5deg) translateY(0) } 50% { transform: perspective(200px) rotateX(5deg) translateY(-1px) } }
@keyframes kjw-candle { 0%,100% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) translateY(-1px) } }
@keyframes kjw-flame { 0% { transform: scale(0.9) rotate(-2deg); opacity:0.85 } 50% { transform: scale(1.15) rotate(1deg); opacity:1 } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.9 } }
@keyframes kjw-figure { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes kjw-shadow { 0% { transform: skewX(-10deg) scaleX(1); opacity:0.5 } 50% { transform: skewX(-8deg) scaleX(1.05); opacity:0.7 } 100% { transform: skewX(-12deg) scaleX(0.95); opacity:0.4 } }

.scn-katharine-griffith-gratitude {
  background: linear-gradient(180deg, #1a0e08 0%, #2a1a10 40%, #3a2515 100%), radial-gradient(ellipse at 50% 70%, #4a2a15 0%, transparent 60%);
}
.scn-katharine-griffith-gratitude .bg-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, rgba(90,50,30,0.4) 0%, transparent 100%); animation: kgg-bg 10s ease-in-out infinite alternate; }
.scn-katharine-griffith-gratitude .hearth { position:absolute; bottom:30%; left:10%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 80%, #6a3a20 0%, #2a1a10 80%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6), 0 0 60px 20px rgba(90,50,30,0.5); animation: kgg-hearth 8s ease-in-out infinite; }
.scn-katharine-griffith-gratitude .desk { position:absolute; bottom:20%; left:30%; width:50%; height:12%; background: linear-gradient(180deg, #4a2a15 0%, #3a1a0a 100%); border-radius: 2% 2% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.7); transform: perspective(300px) rotateX(10deg); animation: kgg-desk 12s ease-in-out infinite; }
.scn-katharine-griffith-gratitude .quill { position:absolute; bottom:38%; left:38%; width:4px; height:30px; background: linear-gradient(180deg, #8a6a40 0%, #5a4020 100%); border-radius: 2px; transform: rotate(-15deg); transform-origin: bottom center; animation: kgg-quill 6s ease-in-out infinite; }
.scn-katharine-griffith-gratitude .hand { position:absolute; bottom:30%; left:36%; width:18px; height:24px; background: radial-gradient(ellipse, #5a3520 0%, #3a2015 100%); border-radius: 50% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: kgg-hand 5s ease-in-out infinite; }
.scn-katharine-griffith-gratitude .letter { position:absolute; bottom:34%; left:60%; width:25px; height:18px; background: linear-gradient(135deg, #8a6a40 0%, #6a4a20 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); transform: rotate(2deg); animation: kgg-letter 7s ease-in-out infinite; }
.scn-katharine-griffith-gratitude .candle { position:absolute; bottom:40%; left:52%; width:6px; height:22px; background: linear-gradient(180deg, #5a3520 0%, #3a2015 100%); border-radius: 3px; box-shadow: inset -1px 0 3px rgba(0,0,0,0.5); transform: rotate(1deg); animation: kgg-candle 9s ease-in-out infinite; }

@keyframes kgg-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes kgg-hearth { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.03) translateY(-2px) } 100% { transform: scale(0.98) translateY(0) } }
@keyframes kgg-desk { 0%,100% { transform: perspective(300px) rotateX(10deg) translateY(0) } 50% { transform: perspective(300px) rotateX(10deg) translateY(-1px) } }
@keyframes kgg-quill { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-15deg) } }
@keyframes kgg-hand { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes kgg-letter { 0%,100% { transform: rotate(2deg) } 50% { transform: rotate(4deg) translateY(-1px) } }
@keyframes kgg-candle { 0%,100% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) translateY(-1px) } }

.scn-katharine-vision {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 50%, #3a3a5a 0%, transparent 70%);
}
.scn-katharine-vision .bg-dream { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, rgba(30,30,50,0.6) 0%, transparent 50%, rgba(10,10,20,0.4) 100%); animation: kvi-bg 14s ease-in-out infinite alternate; }
.scn-katharine-vision .fig1 { position:absolute; bottom:30%; left:20%; width:22px; height:50px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 10px rgba(100,100,150,0.3); animation: kvi-fig1 8s ease-in-out infinite; }
.scn-katharine-vision .fig2 { position:absolute; bottom:30%; left:35%; width:20px; height:48px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 10px rgba(100,100,150,0.3); animation: kvi-fig2 9s ease-in-out infinite; animation-delay: -2s; }
.scn-katharine-vision .fig3 { position:absolute; bottom:30%; left:50%; width:21px; height:52px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 10px rgba(100,100,150,0.3); animation: kvi-fig3 10s ease-in-out infinite; animation-delay: -4s; }
.scn-katharine-vision .fig4 { position:absolute; bottom:30%; left:65%; width:19px; height:46px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 0 10px rgba(100,100,150,0.3); animation: kvi-fig4 11s ease-in-out infinite; animation-delay: -6s; }
.scn-katharine-vision .garland1 { position:absolute; bottom:55%; left:30%; width:40px; height:10px; background: linear-gradient(180deg, #8080a0 0%, #4a4a6a 100%); border-radius: 30% 30% 20% 20%; filter: blur(1px); transform: rotate(-10deg); animation: kvi-garland1 15s ease-in-out infinite; }
.scn-katharine-vision .garland2 { position:absolute; bottom:55%; right:25%; width:35px; height:8px; background: linear-gradient(180deg, #8080a0 0%, #4a4a6a 100%); border-radius: 30% 30% 20% 20%; filter: blur(1px); transform: rotate(15deg); animation: kvi-garland2 18s ease-in-out infinite; animation-delay: -5s; }
.scn-katharine-vision .glow { position:absolute; bottom:40%; left:45%; width:30px; height:30px; background: radial-gradient(circle, rgba(150,150,200,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: kvi-glow 6s ease-in-out infinite alternate; }

@keyframes kvi-bg { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes kvi-fig1 { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-3px) rotate(1deg) } 50% { transform: translateX(16px) translateY(-1px) rotate(-1deg) } 75% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes kvi-fig2 { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-6px) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(-12px) translateY(-1px) rotate(2deg) } 75% { transform: translateX(-6px) translateY(-3px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes kvi-fig3 { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(10px) translateY(-4px) rotate(-2deg) } 50% { transform: translateX(20px) translateY(-2px) rotate(1deg) } 75% { transform: translateX(10px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes kvi-fig4 { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(-8px) translateY(-3px) rotate(2deg) } 50% { transform: translateX(-16px) translateY(-1px) rotate(-2deg) } 75% { transform: translateX(-8px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes kvi-garland1 { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } }
@keyframes kvi-garland2 { 0%,100% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(18deg) translateY(-2px) } }
@keyframes kvi-glow { 0% { opacity:0.5; transform: scale(0.9) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(0.9) } }

.scn-katharine-death {
  background: linear-gradient(180deg, #050205 0%, #0a0505 40%, #150a0a 100%), radial-gradient(ellipse at 50% 80%, #1a0a0a 0%, transparent 70%);
}
.scn-katharine-death .bg-dark { position:absolute; inset:0 0 0 0; background: linear-gradient(135deg, rgba(10,5,5,0.8) 0%, transparent 50%, rgba(0,0,0,0.4) 100%); animation: kde-bg 20s ease-in-out infinite alternate; }
.scn-katharine-death .bed { position:absolute; bottom:15%; left:15%; width:70%; height:40%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.8), 0 4px 8px rgba(0,0,0,0.6); transform: scale(1); animation: kde-bed 15s ease-in-out infinite; }
.scn-katharine-death .figure { position:absolute; bottom:20%; left:35%; width:18px; height:45px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 2px 4px rgba(255,255,255,0.1); transform-origin: bottom center; animation: kde-figure 12s ease-in-out infinite; }
.scn-katharine-death .candle { position:absolute; bottom:45%; left:25%; width:5px; height:18px; background: linear-gradient(180deg, #2a1010 0%, #1a0a0a 100%); border-radius: 2px; box-shadow: inset -1px 0 2px rgba(0,0,0,0.5); transform: rotate(-2deg); animation: kde-candle 6s ease-in-out infinite; }
.scn-katharine-death .flame { position:absolute; bottom:62%; left:25.5%; width:6px; height:8px; background: radial-gradient(ellipse, #703020 0%, #402010 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 8px 3px #402010, 0 0 16px 6px rgba(40,20,10,0.3); animation: kde-flame 3s ease-in-out infinite alternate; }
.scn-katharine-death .pillow { position:absolute; bottom:40%; left:55%; width:25px; height:15px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.5); transform: rotate(-5deg); animation: kde-pillow 10s ease-in-out infinite; }
.scn-katharine-death .shadow { position:absolute; bottom:18%; left:20%; width:40%; height:30%; background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); filter: blur(10px); animation: kde-shadow 8s ease-in-out infinite; }

@keyframes kde-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes kde-bed { 0%,100% { transform: scale(1) } 50% { transform: scale(1.005) } }
@keyframes kde-figure { 0% { transform: translateY(0) rotate(1deg) } 25% { transform: translateY(-1px) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(0) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes kde-candle { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-1px) } }
@keyframes kde-flame { 0% { transform: scale(0.8) rotate(-3deg); opacity:0.6 } 50% { transform: scale(1.1) rotate(1deg); opacity:0.8 } 100% { transform: scale(0.9) rotate(-1deg); opacity:0.5 } }
@keyframes kde-pillow { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes kde-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:0.5 } 50% { transform: scaleX(1.05) scaleY(0.95); opacity:0.7 } 100% { transform: scaleX(0.95) scaleY(1.02); opacity:0.4 } }

/* scene-iv-hall-york-place */
.scn-scene-iv-hall-york-place {
  background: linear-gradient(135deg, #d4a574 0%, #b0835a 40%, #8b6b4a 100%),
              radial-gradient(ellipse at 30% 50%, #f0d0a0 0%, transparent 70%);
}
.scn-scene-iv-hall-york-place .bg-hall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #cbb08e 0%, #a8886a 50%, #7a5f46 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 85%, 0% 85%);
}
.scn-scene-iv-hall-york-place .state {
  position: absolute; top: 8%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(135deg, #6b2030 0%, #4a1522 50%, #2b0d14 100%);
  border-radius: 40% 40% 0 0; box-shadow: 0 8px 30px rgba(0,0,0,0.5);
  animation: hly-state 6s ease-in-out infinite;
}
.scn-scene-iv-hall-york-place .table-small {
  position: absolute; bottom: 10%; left: 30%; width: 8%; height: 4%;
  background: linear-gradient(180deg, #b78d68 0%, #7a5b3e 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-scene-iv-hall-york-place .table-long {
  position: absolute; bottom: 8%; left: 50%; width: 40%; height: 3%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a67a 0%, #9e7d58 100%);
  border-radius: 6px; box-shadow: 0 4px 16px rgba(0,0,0,0.5);
  animation: hly-table 12s ease-in-out infinite;
}
.scn-scene-iv-hall-york-place .figure-lady {
  position: absolute; bottom: 12%; left: 35%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #e6cba8 0%, #b79a7e 40%, #7a634c 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: hly-lady 5s ease-in-out infinite alternate;
}
.scn-scene-iv-hall-york-place .figure-cardinal {
  position: absolute; bottom: 10%; left: 28%; width: 5%; height: 14%;
  background: linear-gradient(180deg, #8b203a 0%, #581625 50%, #2a0a12 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: hly-cardinal 8s ease-in-out infinite;
}
.scn-scene-iv-hall-york-place .glow {
  position: absolute; bottom: 15%; left: 30%; width: 8%; height: 10%;
  background: radial-gradient(circle, #ffcc80 0%, #ffaa55 40%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: hly-glow 3s ease-in-out infinite alternate;
}
@keyframes hly-state {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.01); }
  100% { transform: rotate(-1deg) scale(1); }
}
@keyframes hly-table {
  0% { opacity: 0.9; transform: translateX(-50%) translateY(0); }
  50% { opacity: 1; transform: translateX(-50%) translateY(-2px); }
  100% { opacity: 0.95; transform: translateX(-50%) translateY(0); }
}
@keyframes hly-lady {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes hly-cardinal {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes hly-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}

/* scene-iv-masque */
.scn-scene-iv-masque {
  background: linear-gradient(180deg, #1a1a2e 0%, #2e1f44 50%, #3a2a5a 100%),
              radial-gradient(ellipse at 70% 70%, #8b5a8b 0%, transparent 60%);
}
.scn-scene-iv-masque .bg-interior {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2c2540 0%, #171228 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 0% 80%);
}
.scn-scene-iv-masque .door {
  position: absolute; bottom: 10%; left: 5%; width: 20%; height: 45%;
  background: linear-gradient(135deg, #4a3560 0%, #2e1f3a 100%);
  border-radius: 4px 0 0 4px; box-shadow: -8px 0 20px rgba(0,0,0,0.6);
  animation: masq-door 4s ease-in-out infinite;
}
.scn-scene-iv-masque .door-light {
  position: absolute; bottom: 10%; left: 22%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #ffdd99 0%, #c08850 100%);
  clip-path: polygon(0% 0%, 100% 10%, 100% 90%, 0% 100%);
  animation: masq-light 2s ease-in-out infinite alternate;
}
.scn-scene-iv-masque .figure-leader {
  position: absolute; bottom: 10%; left: 28%; width: 6%; height: 30%;
  background: linear-gradient(180deg, #2a1a3a 0%, #120a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: masq-leader 3s ease-in-out infinite alternate;
}
.scn-scene-iv-masque .figure-follower {
  position: absolute; bottom: 10%; left: 36%; width: 5%; height: 28%;
  background: linear-gradient(180deg, #2e1f40 0%, #140d20 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: masq-follower 3.5s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-scene-iv-masque .figure-follower2 {
  position: absolute; bottom: 10%; left: 42%; width: 5%; height: 26%;
  background: linear-gradient(180deg, #2e1f40 0%, #140d20 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: masq-follower2 4s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-scene-iv-masque .lantern {
  position: absolute; bottom: 30%; left: 35%; width: 4%; height: 6%;
  background: radial-gradient(circle, #ffaa66 0%, #cc6633 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,170,102,0.5);
  animation: masq-lantern 1.5s ease-in-out infinite alternate;
}
@keyframes masq-door {
  0% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
  100% { transform: translateX(0); }
}
@keyframes masq-light {
  0% { opacity: 0.3; }
  100% { opacity: 1; }
}
@keyframes masq-leader {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(6px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes masq-follower {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes masq-follower2 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1.5deg); }
  100% { transform: translateX(0) rotate(-1.5deg); }
}
@keyframes masq-lantern {
  0% { transform: rotate(-5deg) scale(0.95); }
  50% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(-3deg) scale(0.95); }
}

/* scene-i-westminster */
.scn-scene-i-westminster {
  background: linear-gradient(180deg, #b0b8c0 0%, #8a929a 50%, #5a626a 100%),
              radial-gradient(ellipse at 50% 0%, #d0d8de 0%, transparent 60%);
}
.scn-scene-i-westminster .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #bcc4cc 0%, #9ca4ac 100%);
  animation: wst-sky 20s ease-in-out infinite alternate;
}
.scn-scene-i-westminster .street {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a5a52 0%, #363630 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.scn-scene-i-westminster .building-left {
  position: absolute; bottom: 20%; left: 5%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #6a625a 0%, #3a322a 100%);
  border-radius: 2px; box-shadow: -2px 0 8px rgba(0,0,0,0.3);
  animation: wst-build 30s ease-in-out infinite alternate;
}
.scn-scene-i-westminster .building-right {
  position: absolute; bottom: 20%; right: 5%; width: 25%; height: 65%;
  background: linear-gradient(180deg, #625a52 0%, #2a221a 100%);
  border-radius: 2px; box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: wst-build 30s ease-in-out infinite alternate-reverse;
}
.scn-scene-i-westminster .figure-a {
  position: absolute; bottom: 8%; left: 30%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #2a221a 0%, #12120a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 20% 20%;
  animation: wst-walk-a 8s ease-in-out infinite;
}
.scn-scene-i-westminster .figure-b {
  position: absolute; bottom: 8%; right: 35%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #2a221a 0%, #12120a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 20% 20%;
  animation: wst-walk-b 8s ease-in-out infinite;
}
.scn-scene-i-westminster .landmark {
  position: absolute; bottom: 15%; left: 48%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #6a6a62 0%, #3a3a32 100%);
  border-radius: 2px 2px 0 0; box-shadow: 0 -2px 10px rgba(255,255,255,0.1);
  animation: wst-landmark 12s ease-in-out infinite alternate;
}
@keyframes wst-sky {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes wst-build {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes wst-walk-a {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(-2deg); }
  50% { transform: translateX(16px) rotate(0deg); }
  75% { transform: translateX(24px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes wst-walk-b {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-8px) rotate(2deg); }
  50% { transform: translateX(-16px) rotate(0deg); }
  75% { transform: translateX(-24px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes wst-landmark {
  0% { opacity: 0.8; transform: scale(1) rotate(0deg); }
  50% { opacity: 1; transform: scale(1.02) rotate(0.5deg); }
  100% { opacity: 0.9; transform: scale(1) rotate(-0.5deg); }
}

/* scene-ii-antechamber-before-palace */
.scn-scene-ii-antechamber-before-palace {
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 40%, #8a7a6a 100%),
              radial-gradient(ellipse at 20% 80%, #f0e0c0 0%, transparent 60%);
}
.scn-scene-ii-antechamber-before-palace .bg-palace {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8b898 0%, #9a8a7a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 85%, 0% 85%);
}
.scn-scene-ii-antechamber-before-palace .window {
  position: absolute; top: 15%; right: 10%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #eef8ff 0%, #b0d0e8 100%);
  border: 6px solid #5a4a3a; border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(200,230,255,0.3);
  animation: ant-window 4s ease-in-out infinite alternate;
}
.scn-scene-ii-antechamber-before-palace .desk {
  position: absolute; bottom: 8%; left: 30%; width: 30%; height: 4%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 6px 20px rgba(0,0,0,0.4);
}
.scn-scene-ii-antechamber-before-palace .chair {
  position: absolute; bottom: 10%; left: 32%; width: 8%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-scene-ii-antechamber-before-palace .figure-chamberlain {
  position: absolute; bottom: 10%; left: 28%; width: 5%; height: 18%;
  background: linear-gradient(180deg, #2a221a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: ant-figure 7s ease-in-out infinite alternate;
}
.scn-scene-ii-antechamber-before-palace .letter {
  position: absolute; bottom: 16%; left: 31%; width: 3%; height: 4%;
  background: #ede4d4;
  border-radius: 1px; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: ant-letter 5s ease-in-out infinite;
}
.scn-scene-ii-antechamber-before-palace .door {
  position: absolute; bottom: 10%; left: 5%; width: 15%; height: 45%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: ant-door 6s ease-in-out infinite;
}
@keyframes ant-window {
  0% { opacity: 0.6; transform: scale(0.98); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes ant-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ant-letter {
  0% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(5deg) translateX(2px); }
  50% { transform: rotate(0deg) translateX(0); }
  75% { transform: rotate(-5deg) translateX(-2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes ant-door {
  0% { transform: translateX(0); }
  50% { transform: translateX(-4px); }
  100% { transform: translateX(0); }
}

.scn-scene-i-arrest-buckingham {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #cbb59e 30%, #a38b72 60%, #7a6350 100%),
    radial-gradient(ellipse at 50% 30%, #f5e8d4 0%, transparent 70%);
}
.scn-scene-i-arrest-buckingham .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4c4b0 0%, #b8a28c 100%); animation: siab-wall 8s ease-in-out infinite alternate; }
.scn-scene-i-arrest-buckingham .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b7762 0%, #5e4d3c 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); }
.scn-scene-i-arrest-buckingham .column { position:absolute; bottom:30%; width:16px; height:55%; background: linear-gradient(180deg, #b8a28c 0%, #9a8470 50%, #7a6552 100%); border-radius: 8% / 4%; box-shadow: 2px 0 6px rgba(0,0,0,0.2), -2px 0 6px rgba(0,0,0,0.1); }
.scn-scene-i-arrest-buckingham .column-l { left:15%; }
.scn-scene-i-arrest-buckingham .column-r { right:15%; }
.scn-scene-i-arrest-buckingham .chandelier { position:absolute; top:10%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 20%, #f0d060 0%, #c89540 60%, #8a5e20 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; box-shadow: 0 0 30px 10px rgba(240,208,96,0.4), 0 0 60px 20px rgba(200,149,64,0.2); animation: siab-chandelier 4s ease-in-out infinite alternate; }
.scn-scene-i-arrest-buckingham .figure-captive { position:absolute; bottom:30%; left:50%; width:24px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: siab-captive 2s ease-in-out infinite; }
.scn-scene-i-arrest-buckingham .guard { position:absolute; bottom:30%; width:22px; height:48px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; }
.scn-scene-i-arrest-buckingham .guard-1 { left:32%; animation: siab-guard1 3s ease-in-out infinite; }
.scn-scene-i-arrest-buckingham .guard-2 { right:32%; animation: siab-guard2 3.5s ease-in-out infinite; animation-delay: 0.5s; }
.scn-scene-i-arrest-buckingham .shadow-stripe { position:absolute; top:30%; left:0; right:0; height:70%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.08) 20%, transparent 40%, rgba(0,0,0,0.05) 60%, transparent 80%, rgba(0,0,0,0.06) 100%); animation: siab-stripe 6s linear infinite; }

@keyframes siab-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes siab-chandelier { 0% { transform:translateX(-50%) rotate(-2deg) scale(1); } 50% { transform:translateX(-50%) rotate(2deg) scale(1.02); } 100% { transform:translateX(-50%) rotate(-1deg) scale(0.98); } }
@keyframes siab-captive { 0% { transform:translateX(-50%) translateY(0) rotate(0deg); } 25% { transform:translateX(-50%) translateY(-1px) 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(1deg); } }
@keyframes siab-guard1 { 0% { transform:translateX(0) rotate(0deg); } 33% { transform:translateX(2px) rotate(2deg); } 66% { transform:translateX(-1px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes siab-guard2 { 0% { transform:translateX(0) rotate(0deg); } 33% { transform:translateX(-2px) rotate(-2deg); } 66% { transform:translateX(1px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes siab-stripe { 0% { background-position:0% 0%; } 100% { background-position:200% 0%; } }

/* ========== Scene II ========== */
.scn-scene-ii-council-chamber {
  background: 
    linear-gradient(180deg, #f5eee6 0%, #dbd0c4 40%, #bfb0a0 70%, #9e8e7c 100%),
    radial-gradient(ellipse at 50% 40%, #faf3eb 0%, transparent 60%);
}
.scn-scene-ii-council-chamber .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #ede5dc 0%, #d6cbbf 100%); animation: sicc-wall 12s ease-in-out infinite alternate; }
.scn-scene-ii-council-chamber .dais { position:absolute; bottom:25%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #c4b5a4 0%, #a69582 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.15); }
.scn-scene-ii-council-chamber .throne-back { position:absolute; bottom:32%; left:38%; width:30px; height:50px; background: linear-gradient(180deg, #9e8b78 0%, #7d6b5a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); transform: perspective(200px) rotateX(5deg); }
.scn-scene-ii-council-chamber .king-figure { position:absolute; bottom:30%; left:45%; width:22px; height:48px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2e1e 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sicc-king 8s ease-in-out infinite; }
.scn-scene-ii-council-chamber .wolsey-figure { position:absolute; bottom:27%; left:55%; width:18px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e12 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sicc-wolsey 8s ease-in-out infinite; animation-delay: 0.3s; }
.scn-scene-ii-council-chamber .noble { position:absolute; bottom:25%; width:20px; height:40px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; }
.scn-scene-ii-council-chamber .noble-1 { left:25%; animation: sicc-noble1 10s ease-in-out infinite; }
.scn-scene-ii-council-chamber .noble-2 { left:68%; animation: sicc-noble2 10s ease-in-out infinite; animation-delay: 2s; }
.scn-scene-ii-council-chamber .noble-3 { left:75%; width:18px; height:36px; animation: sicc-noble3 12s ease-in-out infinite; animation-delay: 4s; }
.scn-scene-ii-council-chamber .window-light { position:absolute; top:15%; right:20%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 30%, rgba(255,235,200,0.8) 0%, rgba(255,235,200,0.1) 60%, transparent 100%); border-radius: 10% / 20%; box-shadow: 0 0 40px 20px rgba(255,235,200,0.3); animation: sicc-light 6s ease-in-out infinite alternate; }

@keyframes sicc-wall { 0% { opacity:0.95; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sicc-king { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(1deg) scale(1.01); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes sicc-wolsey { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(0.5px) rotate(-1deg); } 100% { transform:translateY(0) rotate(1deg); } }
@keyframes sicc-noble1 { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(1px) rotate(1deg); } 75% { transform:translateY(-1px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes sicc-noble2 { 0% { transform:translateY(0) rotate(0deg); } 33% { transform:translateY(-1px) rotate(-1deg); } 66% { transform:translateY(1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes sicc-noble3 { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(0.5px) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes sicc-light { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }

.scn-scene-ii-surveyor-testimony {
  background: linear-gradient(180deg, #f5e6d0 0%, #d9c4a8 40%, #b8a082 100%), radial-gradient(ellipse at 60% 20%, #fff9f0 0%, transparent 60%);
}
.scn-scene-ii-surveyor-testimony .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d9c4 0%, #c2aa8e 100%);
}
.scn-scene-ii-surveyor-testimony .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d9c8b0 0%, #a89070 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: sv-wall 8s ease-in-out infinite;
}
.scn-scene-ii-surveyor-testimony .window {
  position: absolute; top: 6%; left: 20%; width: 36%; height: 48%;
  background: radial-gradient(ellipse at 50% 50%, #fff9f0 0%, #e0d0b8 60%, #b8a082 100%);
  border: 8px solid #7a6a5a;
  border-radius: 2px;
  box-shadow: inset 0 0 40px #fff9f0, 0 8px 16px rgba(0,0,0,0.4);
  animation: sv-window 4s ease-in-out infinite;
}
.scn-scene-ii-surveyor-testimony .lightbeam {
  position: absolute; top: 10%; left: 24%; width: 40%; height: 120%;
  background: linear-gradient(135deg, rgba(255,249,240,0.5) 0%, rgba(255,249,240,0.05) 80%);
  transform-origin: top left;
  transform: skewX(-10deg) rotate(-5deg);
  filter: blur(6px);
  animation: sv-beam 6s ease-in-out infinite;
}
.scn-scene-ii-surveyor-testimony .podium {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: sv-podium 5s ease-in-out infinite;
}
.scn-scene-ii-surveyor-testimony .figure {
  position: absolute; bottom: 16%; left: 42%; width: 12%; height: 48%;
  background: linear-gradient(180deg, #2a2a3a 0%, #14141e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 0 rgba(0,0,0,0.3);
  animation: sv-figure 3s ease-in-out infinite;
}
.scn-scene-ii-surveyor-testimony .shadow {
  position: absolute; bottom: 8%; left: 38%; width: 20%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sv-shadow 4s ease-in-out infinite;
}
@keyframes sv-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sv-window {
  0% { box-shadow: inset 0 0 40px #fff9f0, 0 8px 16px rgba(0,0,0,0.4); }
  50% { box-shadow: inset 0 0 60px #fff9f0, 0 8px 20px rgba(0,0,0,0.5); }
  100% { box-shadow: inset 0 0 30px #fff9f0, 0 8px 12px rgba(0,0,0,0.3); }
}
@keyframes sv-beam {
  0% { opacity: 0.6; transform: skewX(-10deg) rotate(-5deg) scale(1); }
  50% { opacity: 0.9; transform: skewX(-12deg) rotate(-3deg) scale(1.05); }
  100% { opacity: 0.5; transform: skewX(-8deg) rotate(-7deg) scale(0.95); }
}
@keyframes sv-podium {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sv-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2%) rotate(-2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2%) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sv-shadow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(0.95); }
}

.scn-scene-iii-antechamber {
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 50%, #b8a888 100%), radial-gradient(ellipse at 40% 60%, #fffbe6 0%, transparent 60%);
}
.scn-scene-iii-antechamber .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #c8b88a 0%, #e0d0a8 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.1);
  animation: an-floor 12s ease-in-out infinite alternate;
}
.scn-scene-iii-antechamber .wall {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #e8dcc0 0%, #d0c0a0 100%);
  box-shadow: inset 0 0 60px rgba(139,90,43,0.2);
  animation: an-wall 10s ease-in-out infinite;
}
.scn-scene-iii-antechamber .curtain {
  position: absolute; top: 0; right: 5%; width: 15%; height: 100%;
  background: linear-gradient(90deg, #b8483a 0%, #9a3028 50%, #7a2018 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  transform-origin: top;
  animation: an-curtain 6s ease-in-out infinite;
}
.scn-scene-iii-antechamber .figure-left {
  position: absolute; bottom: 18%; left: 18%; width: 16%; height: 60%;
  background: linear-gradient(180deg, #3a6a8a 0%, #2a4a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 16px 24px rgba(0,0,0,0.3);
  animation: an-figure-left 4s ease-in-out infinite;
}
.scn-scene-iii-antechamber .figure-right {
  position: absolute; bottom: 18%; right: 20%; width: 14%; height: 62%;
  background: linear-gradient(180deg, #c8553d 0%, #a03a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 16px 24px rgba(0,0,0,0.3);
  animation: an-figure-right 5s ease-in-out infinite;
}
.scn-scene-iii-antechamber .hat {
  position: absolute; bottom: 72%; left: 20%; width: 10%; height: 6%;
  background: #d8a830;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: an-hat 3s ease-in-out infinite;
}
.scn-scene-iii-antechamber .ornament {
  position: absolute; bottom: 75%; left: 60%; width: 4%; height: 8%;
  background: radial-gradient(circle, #f0c040 0%, #d09020 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px #f0c040;
  animation: an-ornament 2s ease-in-out infinite;
}
@keyframes an-floor {
  0% { background-position: 0% 0%; }
  50% { background-position: 20% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes an-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes an-curtain {
  0% { transform: scaleY(1) rotate(0deg); }
  25% { transform: scaleY(1.02) rotate(1deg); }
  50% { transform: scaleY(0.98) rotate(-1deg); }
  75% { transform: scaleY(1.01) rotate(0.5deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes an-figure-left {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(5%) rotate(3deg); }
  60% { transform: translateX(-3%) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes an-figure-right {
  0% { transform: translateX(0) scale(1); }
  30% { transform: translateX(-4%) scale(1.03); }
  60% { transform: translateX(4%) scale(0.97); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes an-hat {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-8%) rotate(10deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes an-ornament {
  0% { transform: scale(1) rotate(0deg); opacity: 0.8; }
  50% { transform: scale(1.3) rotate(180deg); opacity: 1; }
  100% { transform: scale(1) rotate(360deg); opacity: 0.8; }
}

.scn-i-arrest-buckingham {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b896 30%, #b89a70 60%, #8c6e4e 100%),
    radial-gradient(ellipse at 30% 20%, #fff9e6 0%, #d4c4a0 50%, transparent 80%);
  background-blend-mode: overlay, normal;
}

.scn-i-arrest-buckingham .bg-walls {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #c6a778 0%, #a38254 40%, #7a5e3a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.25);
}

.scn-i-arrest-buckingham .window-glow {
  position: absolute;
  top: 8%;
  left: 35%;
  width: 30%;
  height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #fffbe0 0%, #ffe680 30%, transparent 70%);
  box-shadow: 0 0 80px 40px rgba(255,230,128,0.4), 0 0 150px 60px rgba(255,200,80,0.2);
  animation: iab-glow 2s ease-in-out infinite alternate;
}

.scn-i-arrest-buckingham .window-frame {
  position: absolute;
  top: 8%;
  left: 35%;
  width: 30%;
  height: 50%;
  border: 6px solid #5a3e22;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 40px rgba(255,230,128,0.3);
  background: transparent;
}

.scn-i-arrest-buckingham .guard-left {
  position: absolute;
  bottom: 25%;
  left: 22%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: iab-guard 3s ease-in-out infinite;
}

.scn-i-arrest-buckingham .guard-right {
  position: absolute;
  bottom: 25%;
  right: 22%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: iab-guard 3.5s ease-in-out infinite reverse;
}

.scn-i-arrest-buckingham .sergeant {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 28px;
  height: 75px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: iab-sergeant 2s ease-in-out infinite alternate;
}

.scn-i-arrest-buckingham .sergeant::before {
  content: '';
  position: absolute;
  top: -10px;
  left: -8px;
  width: 44px;
  height: 6px;
  background: #6a4a2a;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: iab-staff 1.5s ease-in-out infinite;
}

.scn-i-arrest-buckingham .prisoner {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 26px;
  height: 65px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%) rotate(5deg);
  transform-origin: bottom center;
  animation: iab-prisoner 1.8s ease-in-out infinite alternate;
}

.scn-i-arrest-buckingham .shadow-floor {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.6) 100%);
  clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%);
  animation: iab-shadow 4s ease-in-out infinite;
}

@keyframes iab-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.98); }
}

@keyframes iab-guard {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(1px) rotate(-0.5deg); }
}

@keyframes iab-sergeant {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

@keyframes iab-staff {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-3deg); }
}

@keyframes iab-prisoner {
  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 iab-shadow {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}

.scn-scene-ii-council-chamber {
  background:
    linear-gradient(180deg, #3e2b1f 0%, #7a5c3c 30%, #c9a96e 55%, #e8d5b5 80%, #f2e6d2 100%),
    radial-gradient(ellipse at 50% 30%, #d4b080 0%, transparent 60%);
}

.scn-scene-ii-council-chamber .throne {
  position: absolute;
  bottom: 10%;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 180px;
  background: linear-gradient(135deg, #6b3a2a 0%, #4a2a1a 50%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: scc-throne 12s ease-in-out infinite;
}

.scn-scene-ii-council-chamber .figure-king {
  position: absolute;
  bottom: 6%;
  left: 42%;
  width: 40px;
  height: 100px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: scc-king 8s ease-in-out infinite alternate;
}

.scn-scene-ii-council-chamber .figure-cardinal {
  position: absolute;
  bottom: 4%;
  left: 47%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 80%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: scc-cardinal 12s ease-in-out infinite alternate;
}

.scn-scene-ii-council-chamber .window {
  position: absolute;
  top: 15%;
  left: 55%;
  width: 80px;
  height: 120px;
  background: radial-gradient(circle at 50% 40%, #f5e6d3 0%, #d4a76a 40%, #8a6030 80%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 0 30px 10px rgba(212,167,106,0.6), 0 0 40px 15px rgba(212,167,106,0.3);
  animation: scc-glow 6s ease-in-out infinite alternate;
}

.scn-scene-ii-council-chamber .columns {
  position: absolute;
  bottom: 0;
  left: 10%;
  width: 20px;
  height: 200px;
  background: linear-gradient(180deg, #c9a96e 0%, #a08050 50%, #7a5c3c 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: scc-columns 20s ease-in-out infinite;
}
.scn-scene-ii-council-chamber .columns:before {
  content: '';
  position: absolute;
  left: 20px;
  width: 20px;
  height: 200px;
  background: linear-gradient(180deg, #c9a96e 0%, #a08050 50%, #7a5c3c 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}

.scn-scene-ii-council-chamber .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(180deg, #8a6030 0%, #6b4a2a 60%, #4a2a1a 100%);
  opacity: 0.8;
  animation: scc-floor 15s ease-in-out infinite alternate;
}

.scn-scene-ii-council-chamber .chandelier {
  position: absolute;
  top: 5%;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 40px;
  background: radial-gradient(circle at 50% 30%, #f5e6d3 0%, #d4a76a 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(212,167,106,0.5), 0 0 60px 20px rgba(212,167,106,0.2);
  animation: scc-chandelier 8s ease-in-out infinite alternate;
}

.scn-scene-ii-council-chamber .banner {
  position: absolute;
  top: 10%;
  right: 10%;
  width: 60px;
  height: 100px;
  background: linear-gradient(180deg, #702243 0%, #5e1a1d 50%, #3a0e10 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: scc-banner 10s ease-in-out infinite;
}

@keyframes scc-throne {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1); }
}

@keyframes scc-king {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}

@keyframes scc-cardinal {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}

@keyframes scc-glow {
  0% { opacity: 0.8; box-shadow: inset 0 0 20px 8px rgba(212,167,106,0.5), 0 0 30px 10px rgba(212,167,106,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 40px 15px rgba(212,167,106,0.8), 0 0 60px 20px rgba(212,167,106,0.5); }
  100% { opacity: 0.9; box-shadow: inset 0 0 25px 10px rgba(212,167,106,0.6), 0 0 40px 15px rgba(212,167,106,0.3); }
}

@keyframes scc-columns {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

@keyframes scc-floor {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

@keyframes scc-chandelier {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}

@keyframes scc-banner {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-7deg) scale(1.01); }
  100% { transform: rotate(-5deg) scale(1); }
}

.scn-scene-iii-antechamber {
  background:
    radial-gradient(ellipse at 50% 20%, #fff3e0 0%, #e6d3b3 60%, #c9b18c 100%),
    linear-gradient(180deg, #f5e6ca 0%, #e6d3b3 30%, #c9b18c 70%, #8b7355 100%);
  position: relative;
  overflow: hidden;
}

.scn-scene-iii-antechamber .wall-back {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0dcc8 0%, #e0cbb0 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.1);
  animation: ac-wall 12s ease-in-out infinite alternate;
}

.scn-scene-iii-antechamber .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #8b7355 0%, #7a6245 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: ac-floor 8s ease-in-out infinite alternate;
}

.scn-scene-iii-antechamber .window {
  position: absolute;
  top: 12%;
  left: 38%;
  width: 24%;
  height: 35%;
  background: linear-gradient(180deg, #fff8e7 0%, #ffe6b0 100%);
  border: 4px solid #c9b18c;
  border-radius: 40% 40% 8% 8% / 60% 60% 10% 10%;
  box-shadow: 0 0 40px 15px rgba(255,243,224,0.6);
  animation: ac-window 5s ease-in-out infinite alternate;
}

.scn-scene-iii-antechamber .glow-beam {
  position: absolute;
  top: 35%;
  left: 38%;
  width: 24%;
  height: 30%;
  background: linear-gradient(180deg, rgba(255,243,224,0) 0%, rgba(255,243,224,0.3) 100%);
  filter: blur(12px);
  transform-origin: center top;
  animation: ac-beam 8s ease-in-out infinite alternate;
}

.scn-scene-iii-antechamber .column-left,
.scn-scene-iii-antechamber .column-right {
  position: absolute;
  top: 8%;
  width: 6%;
  height: 55%;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a58b 100%);
  border-radius: 20% 20% 4% 4% / 40% 40% 6% 6%;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.15), 2px 0 6px rgba(0,0,0,0.1);
  animation: ac-column 6s ease-in-out infinite alternate;
}

.scn-scene-iii-antechamber .column-left {
  left: 15%;
}

.scn-scene-iii-antechamber .column-right {
  right: 15%;
  animation-delay: -3s;
}

.scn-scene-iii-antechamber .chandelier {
  position: absolute;
  top: 2%;
  left: 50%;
  width: 12%;
  height: 10%;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse at 50% 30%, #ffd700 0%, #d4a830 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%;
  box-shadow: 0 0 30px 8px rgba(255,215,0,0.5), 0 0 60px 20px rgba(255,215,0,0.2);
  animation: ac-chandelier 3s ease-in-out infinite alternate;
}

.scn-scene-iii-antechamber .courtier-left,
.scn-scene-iii-antechamber .courtier-right {
  position: absolute;
  bottom: 40%;
  width: 8%;
  height: 30%;
  background: linear-gradient(180deg, #5a7a9a 0%, #3a5a7a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-courtier 2s ease-in-out infinite alternate;
}

.scn-scene-iii-antechamber .courtier-left {
  left: 30%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  animation-delay: 0s;
}

.scn-scene-iii-antechamber .courtier-right {
  right: 30%;
  background: linear-gradient(180deg, #4a7a5a 0%, #2a5a3a 100%);
  animation-delay: -1s;
}

.scn-scene-iii-antechamber .rug {
  position: absolute;
  bottom: 8%;
  left: 20%;
  width: 60%;
  height: 18%;
  background: linear-gradient(135deg, #c8553d 20%, #e8b060 20%, #e8b060 40%, #5a7a9a 40%, #5a7a9a 60%, #c8553d 60%, #c8553d 80%, #4a7a5a 80%);
  border-radius: 40% 40% 20% 20% / 60% 60% 10% 10%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.2);
  filter: blur(1px);
  animation: ac-rug 10s ease-in-out infinite alternate;
}

@keyframes ac-wall {
  0% { background: linear-gradient(180deg, #f0dcc8 0%, #e0cbb0 100%); }
  50% { background: linear-gradient(180deg, #eed5be 0%, #dcc4a8 100%); }
  100% { background: linear-gradient(180deg, #f0dcc8 0%, #e0cbb0 100%); }
}

@keyframes ac-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

@keyframes ac-window {
  0% { box-shadow: 0 0 40px 15px rgba(255,243,224,0.6); opacity: 0.9; }
  50% { box-shadow: 0 0 60px 25px rgba(255,243,224,0.8); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(255,243,224,0.5); opacity: 0.85; }
}

@keyframes ac-beam {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.2; transform: scaleY(0.9); }
}

@keyframes ac-column {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}

@keyframes ac-chandelier {
  0% { transform: translateX(-50%) rotate(-3deg); }
  50% { transform: translateX(-50%) rotate(3deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}

@keyframes ac-courtier {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-4px) rotate(5deg) scale(1.02); }
  50% { transform: translateY(0) rotate(-3deg); }
  75% { transform: translateY(-2px) rotate(4deg) scale(0.98); }
  100% { transform: translateY(0) rotate(-5deg); }
}

@keyframes ac-rug {
  0% { filter: blur(1px); transform: scaleX(1); }
  50% { filter: blur(2px); transform: scaleX(1.03); }
  100% { filter: blur(1px); transform: scaleX(1); }
}

.scn-scene-ii-surveyor-testimony { background: linear-gradient(180deg, #f5e6c8 0%, #e3c79b 50%, #d4af37 100%), radial-gradient(ellipse at 50% 30%, #fff8e7 0%, transparent 60%); }
.scn-scene-ii-surveyor-testimony .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #e3c79b 0%, #c49a6c 50%, #a0704a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: sit-wall 12s ease-in-out infinite alternate; }
.scn-scene-ii-surveyor-testimony .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-scene-ii-surveyor-testimony .desk { position:absolute; bottom:20%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #a0522d 0%, #6b3410 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(500px) rotateX(10deg); animation: sit-desk 8s ease-in-out infinite; }
.scn-scene-ii-surveyor-testimony .figure { position:absolute; bottom:22%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2f1b0e 0%, #1a0f07 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sit-figure 3s ease-in-out infinite; }
.scn-scene-ii-surveyor-testimony .lightbeam { position:absolute; top:0; left:20%; width:60%; height:100%; background: linear-gradient(180deg, rgba(255,255,220,0.3) 0%, transparent 70%); filter: blur(10px); animation: sit-light 6s ease-in-out infinite alternate; }
.scn-scene-ii-surveyor-testimony .shadow { position:absolute; bottom:35%; left:35%; width:40px; height:8px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); transform: rotate(5deg); animation: sit-shadow 4s ease-in-out infinite; }
.scn-scene-ii-surveyor-testimony .document { position:absolute; bottom:25%; left:45%; width:30px; height:20px; background: #f5deb3; border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sit-doc 5s ease-in-out infinite; }
@keyframes sit-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sit-desk { 0% { transform: perspective(500px) rotateX(10deg) translateY(0) } 50% { transform: perspective(500px) rotateX(8deg) translateY(-1px) } 100% { transform: perspective(500px) rotateX(10deg) translateY(0) } }
@keyframes sit-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sit-light { 0% { opacity:.6; filter:blur(8px) } 50% { opacity:1; filter:blur(12px) } 100% { opacity:.7; filter:blur(10px) } }
@keyframes sit-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes sit-doc { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
/* end per-scene blocks */

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-street-gentlemen-meet { background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 50%, #2a2a2a 100%), radial-gradient(ellipse at 50% 80%, #4a4a4a 0%, transparent 70%); }
.scn-street-gentlemen-meet .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); animation: sgm-sky 12s ease-in-out infinite alternate; }
.scn-street-gentlemen-meet .street { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-street-gentlemen-meet .build-l { position:absolute; bottom:30%; left:5%; width:25%; height:55%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: sgm-build 8s ease-in-out infinite alternate; }
.scn-street-gentlemen-meet .build-r { position:absolute; bottom:30%; right:5%; width:25%; height:55%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: sgm-build 8s ease-in-out infinite alternate-reverse; }
.scn-street-gentlemen-meet .fig-l { position:absolute; bottom:20%; left:30%; width:8%; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sgm-fig-l 4s ease-in-out infinite; }
.scn-street-gentlemen-meet .fig-r { position:absolute; bottom:20%; right:30%; width:8%; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sgm-fig-r 4s ease-in-out infinite; }
@keyframes sgm-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes sgm-build { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sgm-fig-l { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-3deg) translateX(-5%) } 50% { transform: rotate(0deg) translateX(0) } 75% { transform: rotate(2deg) translateX(3%) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes sgm-fig-r { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(2deg) translateX(3%) } 50% { transform: rotate(0deg) translateX(0) } 75% { transform: rotate(-3deg) translateX(-5%) } 100% { transform: rotate(0deg) translateX(0) } }

.scn-cardinal-blamed-for-buckingham { background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 70%); }
.scn-cardinal-blamed-for-buckingham .bg-deep { position:absolute; inset:60% 0 0 0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-cardinal-blamed-for-buckingham .throne { position:absolute; bottom:20%; left:50%; width:30%; height:45%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; transform: translateX(-50%); box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: cbb-throne 10s ease-in-out infinite alternate; }
.scn-cardinal-blamed-for-buckingham .cardinal { position:absolute; bottom:35%; left:50%; width:12%; height:40%; background: linear-gradient(180deg, #c8553d 0%, #8a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: 0 0 30px rgba(200,85,61,.2); animation: cbb-cardinal 6s ease-in-out infinite; }
.scn-cardinal-blamed-for-buckingham .desk { position:absolute; bottom:15%; left:40%; width:20%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; transform: translateX(-50%); }
.scn-cardinal-blamed-for-buckingham .candle { position:absolute; bottom:23%; left:45%; width:2%; height:10%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 2px; animation: cbb-candle 3s ease-in-out infinite alternate; }
@keyframes cbb-throne { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes cbb-cardinal { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes cbb-candle { 0% { opacity:.7; box-shadow: 0 0 8px #ffa070; } 50% { opacity:1; box-shadow: 0 0 16px #ffa070; } 100% { opacity:.8; box-shadow: 0 0 10px #ffa070; } }

.scn-buckingham-walk-to-death { background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 50%, #4a4a4a 100%), radial-gradient(ellipse at 50% 100%, #3a3a3a 0%, transparent 70%); }
.scn-buckingham-walk-to-death .sky-grey { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); animation: bwd-sky 20s ease-in-out infinite alternate; }
.scn-buckingham-walk-to-death .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-buckingham-walk-to-death .castle { position:absolute; right:10%; bottom:30%; width:15%; height:40%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: bwd-castle 15s ease-in-out infinite alternate; }
.scn-buckingham-walk-to-death .prisoner { position:absolute; bottom:15%; left:30%; width:8%; height:40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bwd-walk 6s ease-in-out infinite; }
.scn-buckingham-walk-to-death .chain { position:absolute; bottom:40%; left:30%; width:10%; height:2%; background: #5a5a5a; border-radius: 2px; animation: bwd-chain 6s ease-in-out infinite; }
@keyframes bwd-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.5 } }
@keyframes bwd-castle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes bwd-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(5%) translateY(-2%) rotate(1deg) } 50% { transform: translateX(10%) translateY(0) rotate(0deg) } 75% { transform: translateX(15%) translateY(-2%) rotate(-1deg) } 100% { transform: translateX(20%) translateY(0) rotate(0deg) } }
@keyframes bwd-chain { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5%) rotate(5deg) } 50% { transform: translateX(10%) rotate(0deg) } 75% { transform: translateX(15%) rotate(-5deg) } 100% { transform: translateX(20%) rotate(0deg) } }

.scn-buckingham-forgives-all { background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 50%, #5a5a5a 100%), radial-gradient(ellipse at 50% 30%, #7a7a7a 0%, transparent 60%); }
.scn-buckingham-forgives-all .sky-light { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8a8a8a 0%, #5a5a5a 100%); animation: bfa-sky 15s ease-in-out infinite alternate; }
.scn-buckingham-forgives-all .ray { position:absolute; top:-10%; left:50%; width:20%; height:60%; background: radial-gradient(ellipse at 50% 0%, rgba(200,200,200,.3) 0%, transparent 60%); transform: translateX(-50%); animation: bfa-ray 8s ease-in-out infinite alternate; }
.scn-buckingham-forgives-all .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 40% 60% 0 0 / 50% 50% 0 0; }
.scn-buckingham-forgives-all .figure-forgive { position:absolute; bottom:15%; left:50%; width:10%; height:45%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: translateX(-50%); transform-origin: bottom center; animation: bfa-figure 10s ease-in-out infinite; }
.scn-buckingham-forgives-all .halo { position:absolute; bottom:55%; left:50%; width:15%; height:15%; background: radial-gradient(circle, rgba(200,200,200,.4) 0%, transparent 70%); transform: translateX(-50%); animation: bfa-halo 6s ease-in-out infinite alternate; }
@keyframes bfa-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bfa-ray { 0% { opacity:.3; transform: translateX(-50%) rotate(0deg); } 50% { opacity:.5; transform: translateX(-50%) rotate(3deg); } 100% { opacity:.4; transform: translateX(-50%) rotate(-2deg); } }
@keyframes bfa-figure { 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 bfa-halo { 0% { opacity:.3; transform: translateX(-50%) scale(1); } 50% { opacity:.6; transform: translateX(-50%) scale(1.1); } 100% { opacity:.4; transform: translateX(-50%) scale(1); } }

/* Scene 1: cardinal-ordered-to-surrenders-seal */
.scn-cardinal-ordered-to-surrenders-seal {
  background: 
    linear-gradient(180deg, #2a1e12 0%, #4a3520 40%, #5c4630 100%),
    radial-gradient(ellipse at 60% 40%, #5c4630 0%, #1a120a 80%);
}
.scn-cardinal-ordered-to-surrenders-seal .deep-shadow { position:absolute; inset:0; background: linear-gradient(135deg, rgba(0,0,0,0.7) 0%, transparent 60%); animation: co1-shadow 15s ease-in-out infinite alternate; }
.scn-cardinal-ordered-to-surrenders-seal .table { position:absolute; bottom:10%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.6); }
.scn-cardinal-ordered-to-surrenders-seal .seal { position:absolute; bottom:28%; left:45%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 30%, #a05530 0%, #6a3218 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 10px rgba(100,50,20,0.8); animation: co1-seal 6s ease-in-out infinite; }
.scn-cardinal-ordered-to-surrenders-seal .document { position:absolute; bottom:25%; left:35%; width:70px; height:50px; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%); border-radius: 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); transform: rotate(-5deg); animation: co1-doc 8s ease-in-out infinite alternate; }
.scn-cardinal-ordered-to-surrenders-seal .candle { position:absolute; bottom:35%; left:55%; width:12px; height:30px; background: linear-gradient(0deg, #6a4a2a 0%, #b88a50 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px 2px rgba(200,150,80,0.4); animation: co1-candle 4s ease-in-out infinite; }
.scn-cardinal-ordered-to-surrenders-seal .candle-glow { position:absolute; bottom:37%; left:56%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,100,0.8) 0%, rgba(255,180,80,0.2) 50%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: co1-glow 3s ease-in-out infinite alternate; }
.scn-cardinal-ordered-to-surrenders-seal .hand-shadow { position:absolute; bottom:18%; left:40%; width:50px; height:40px; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.6) 0%, transparent 100%); transform: rotate(-20deg); animation: co1-hand 7s ease-in-out infinite; }
@keyframes co1-shadow { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.6 } }
@keyframes co1-seal { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } }
@keyframes co1-doc { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(1px); } }
@keyframes co1-candle { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes co1-glow { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes co1-hand { 0% { transform: translate(0,0) rotate(-20deg); } 33% { transform: translate(5px,-2px) rotate(-15deg); } 66% { transform: translate(-4px,1px) rotate(-25deg); } 100% { transform: translate(0,0) rotate(-20deg); } }

/* Scene 2: articles-read-against-cardinal */
.scn-articles-read-against-cardinal {
  background:
    linear-gradient(90deg, #1a1815 0%, #3a2f25 30%, #4a3f35 70%, #2a2018 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-articles-read-against-cardinal .wall-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%); }
.scn-articles-read-against-cardinal .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-articles-read-against-cardinal .cardinal-figure { position:absolute; bottom:20%; left:25%; width:22px; height:60px; background: linear-gradient(180deg, #5a2a2a 0%, #3a1818 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.7); animation: ar2-figure 10s ease-in-out infinite; }
.scn-articles-read-against-cardinal .article { position:absolute; background: linear-gradient(135deg, #c8b890 0%, #b0a078 100%); border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-articles-read-against-cardinal .article-1 { bottom:35%; left:45%; width:50px; height:35px; transform: rotate(-8deg); animation: ar2-art1 6s ease-in-out infinite alternate; }
.scn-articles-read-against-cardinal .article-2 { bottom:40%; left:55%; width:45px; height:30px; transform: rotate(5deg); animation: ar2-art2 7s ease-in-out infinite alternate; }
.scn-articles-read-against-cardinal .article-3 { bottom:30%; left:50%; width:40px; height:28px; transform: rotate(-3deg); animation: ar2-art3 5s ease-in-out infinite alternate; }
.scn-articles-read-against-cardinal .light-beam { position:absolute; top:10%; left:50%; width:40%; height:80%; background: linear-gradient(180deg, rgba(255,200,120,0.1) 0%, transparent 100%); transform: translateX(-50%) skewX(-10deg); filter: blur(10px); animation: ar2-beam 12s ease-in-out infinite alternate; }
@keyframes ar2-figure { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ar2-art1 { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-3px); } 100% { transform: rotate(-12deg) translateY(2px); } }
@keyframes ar2-art2 { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(1px); } }
@keyframes ar2-art3 { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(1px); } }
@keyframes ar2-beam { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

/* Scene 3: cardinal-falls */
.scn-cardinal-falls {
  background:
    linear-gradient(0deg, #1a1410 0%, #2a1e18 50%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 0%, #3a2a22 0%, transparent 60%);
}
.scn-cardinal-falls .shaft-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e14 0%, #0e0a08 100%); }
.scn-cardinal-falls .falling-figure { position:absolute; top:10%; left:50%; width:20px; height:45px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1410 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%) rotate(5deg); animation: cf3-fall 12s ease-in-out infinite; }
.scn-cardinal-falls .scroll-fall { position:absolute; top:30%; left:30%; width:30px; height:20px; background: #c8b890; border-radius: 2%; transform: rotate(20deg); animation: cf3-scroll 15s ease-in-out infinite; }
.scn-cardinal-falls .writ-fall { position:absolute; top:50%; left:60%; width:25px; height:15px; background: #b8a880; border-radius: 2%; transform: rotate(-30deg); animation: cf3-writ 10s ease-in-out infinite alternate; }
.scn-cardinal-falls .dust-particle { position:absolute; background: radial-gradient(circle, rgba(200,180,150,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); }
.scn-cardinal-falls .p1 { top:20%; left:35%; width:6px; height:6px; animation: cf3-dust1 8s linear infinite; }
.scn-cardinal-falls .p2 { top:40%; left:55%; width:4px; height:4px; animation: cf3-dust2 12s linear infinite 2s; }
.scn-cardinal-falls .p3 { top:60%; left:45%; width:5px; height:5px; animation: cf3-dust3 10s linear infinite 4s; }
@keyframes cf3-fall { 0% { transform: translateX(-50%) rotate(5deg) translateY(0); } 25% { transform: translateX(-45%) rotate(-10deg) translateY(120px); } 50% { transform: translateX(-55%) rotate(15deg) translateY(240px); } 75% { transform: translateX(-40%) rotate(-5deg) translateY(360px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(480px); opacity:0; } }
@keyframes cf3-scroll { 0% { transform: rotate(20deg) translateY(0) translateX(0); } 50% { transform: rotate(-10deg) translateY(100px) translateX(30px); } 100% { transform: rotate(40deg) translateY(200px) translateX(-20px); opacity:0; } }
@keyframes cf3-writ { 0% { transform: rotate(-30deg) translateY(0); } 100% { transform: rotate(45deg) translateY(300px); opacity:0.3; } }
@keyframes cf3-dust1 { 0% { transform: translateY(0) scale(1); opacity:0.8; } 100% { transform: translateY(500px) scale(0.3); opacity:0; } }
@keyframes cf3-dust2 { 0% { transform: translateY(0) scale(1); opacity:0.6; } 100% { transform: translateY(500px) scale(0.2); opacity:0; } }
@keyframes cf3-dust3 { 0% { transform: translateY(0) scale(1); opacity:0.7; } 100% { transform: translateY(500px) scale(0.25); opacity:0; } }

/* Scene 4: cardinal-laments */
.scn-cardinal-laments {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a223a 40%, #1a1228 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a3a 0%, transparent 70%);
}
.scn-cardinal-laments .dark-void { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); }
.scn-cardinal-laments .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 80% 80% 0 0 / 40% 40% 0 0; }
.scn-cardinal-laments .kneeling-figure { position:absolute; bottom:15%; left:40%; width:25px; height:50px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: cl4-figure 8s ease-in-out infinite; }
.scn-cardinal-laments .frost-ground { position:absolute; bottom:18%; left:35%; right:35%; height:8%; background: linear-gradient(90deg, rgba(200,220,230,0.3) 0%, rgba(180,200,210,0.1) 50%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: cl4-frost 12s ease-in-out infinite alternate; }
.scn-cardinal-laments .bitter-tear { position:absolute; bottom:35%; left:42%; width:4px; height:8px; background: linear-gradient(0deg, #8aaabb 0%, #b8d0dd 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 6px 2px rgba(100,140,180,0.4); animation: cl4-tear 4s ease-in-out infinite; }
.scn-cardinal-laments .vignette { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.6) 100%); filter: blur(5px); }
.scn-cardinal-laments .leaf-fall { position:absolute; background: linear-gradient(135deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 20% 80% 20% 80% / 50% 50% 50% 50%; width:10px; height:6px; }
.scn-cardinal-laments .leaf1 { top:10%; left:20%; animation: cl4-leaf1 15s linear infinite; }
.scn-cardinal-laments .leaf2 { top:25%; left:70%; animation: cl4-leaf2 18s linear infinite 3s; }
@keyframes cl4-figure { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } }
@keyframes cl4-frost { 0% { opacity:0.2; transform: scaleX(0.8); } 50% { opacity:0.5; transform: scaleX(1.2); } 100% { opacity:0.3; transform: scaleX(0.9); } }
@keyframes cl4-tear { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(8px); opacity:0.4; } 100% { transform: translateY(0); opacity:0.8; } }
@keyframes cl4-leaf1 { 0% { transform: rotate(0deg) translateY(0) translateX(0); } 25% { transform: rotate(30deg) translateY(80px) translateX(-20px); } 50% { transform: rotate(-20deg) translateY(160px) translateX(15px); } 75% { transform: rotate(45deg) translateY(240px) translateX(-10px); } 100% { transform: rotate(0deg) translateY(320px) translateX(0); opacity:0; } }
@keyframes cl4-leaf2 { 0% { transform: rotate(0deg) translateY(0) translateX(0); } 25% { transform: rotate(-30deg) translateY(100px) translateX(30px); } 50% { transform: rotate(20deg) translateY(200px) translateX(-15px); } 75% { transform: rotate(-45deg) translateY(300px) translateX(20px); } 100% { transform: rotate(0deg) translateY(400px) translateX(0); opacity:0; } }

.scn-rumor-of-divorce { background: linear-gradient(180deg, #4a4a5a 0%, #2e2e3e 60%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #5a5a6a 0%, transparent 60%); }
.scn-rumor-of-divorce .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2e2e3e 0%, #1a1a2a 100%); }
.scn-rumor-of-divorce .window-frame { position:absolute; top:12%; left:50%; width:150px; height:180px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-rumor-of-divorce .window-glass { position:absolute; top:15%; left:52%; width:120px; height:140px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(180,190,200,.2) 0%, rgba(200,210,220,.1) 100%); border-radius: 2px; animation: rd-glass 12s ease-in-out infinite alternate; }
.scn-rumor-of-divorce .shadow { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, transparent 100%); animation: rd-shadow 8s ease-in-out infinite alternate; }
.scn-rumor-of-divorce .figure-left { position:absolute; bottom:25%; left:30%; width:28px; 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: rd-fig-left 5s ease-in-out infinite; }
.scn-rumor-of-divorce .figure-right { position:absolute; bottom:25%; right:30%; width:28px; 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: rd-fig-right 6s ease-in-out infinite; }
@keyframes rd-glass { 0% { opacity:.15 } 50% { opacity:.3 } 100% { opacity:.1 } }
@keyframes rd-shadow { 0% { opacity:.8 } 50% { opacity:.6 } 100% { opacity:.9 } }
@keyframes rd-fig-left { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes rd-fig-right { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }

.scn-chamberlain-letter-complaint { background: linear-gradient(180deg, #f2e6d0 0%, #d9c8a8 70%, #c0a888 100%), radial-gradient(ellipse at 50% 20%, #fff8e4 0%, transparent 60%); }
.scn-chamberlain-letter-complaint .desk { position:absolute; bottom:22%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #b89a70 0%, #8c7450 100%); border-radius: 6px 6px 0 0; transform: perspective(200px) rotateX(8deg); }
.scn-chamberlain-letter-complaint .letter { position:absolute; bottom:30%; left:35%; width:80px; height:60px; background: linear-gradient(180deg, #f5efd8 0%, #e0d4b0 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 4px 8px rgba(0,0,0,.2); animation: cl-letter 4s ease-in-out infinite alternate; }
.scn-chamberlain-letter-complaint .lamp-glow { position:absolute; bottom:38%; left:60%; width:50px; height:50px; background: radial-gradient(circle, #fff4c0 0%, transparent 100%); animation: cl-glow 3s ease-in-out infinite alternate; }
.scn-chamberlain-letter-complaint .lamp-body { position:absolute; bottom:35%; left:60%; width:20px; height:30px; background: linear-gradient(180deg, #d4a860 0%, #b08040 100%); border-radius: 50% 50% 20% 20%; transform: translateX(-10px); }
.scn-chamberlain-letter-complaint .figure { position:absolute; bottom:28%; right:25%; width:30px; height:80px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cl-fig 6s ease-in-out infinite; }
.scn-chamberlain-letter-complaint .chair-back { position:absolute; bottom:30%; right:22%; width:50px; height:40px; background: linear-gradient(180deg, #8c7450 0%, #5c4a30 100%); border-radius: 40% 40% 20% 20%; transform: perspective(100px) rotateY(10deg); }
.scn-chamberlain-letter-complaint .ornament { position:absolute; bottom:25%; left:30%; width:10px; height:14px; background: #c8301a; border-radius: 50%; box-shadow: 0 0 6px #c8301a; animation: cl-ornament 2s ease-in-out infinite; } /* desaturated red: terracotta-like */
@keyframes cl-letter { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes cl-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.9; transform: scale(1.2) } 100% { opacity:.7; transform: scale(1) } }
@keyframes cl-fig { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-2px) rotate(2deg) } 70% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cl-ornament { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }

.scn-item-horses-taken { background: linear-gradient(180deg, #c8a878 0%, #a07850 50%, #7a5830 100%), radial-gradient(ellipse at 50% 100%, #b89868 0%, transparent 60%); }
.scn-item-horses-taken .stable-wall { position:absolute; inset:0; background: linear-gradient(90deg, #4a3820 0%, transparent 30%, transparent 70%, #4a3820 100%); box-shadow: inset 0 0 100px rgba(0,0,0,.3); }
.scn-item-horses-taken .horse-1 { position:absolute; bottom:30%; left:20%; width:70px; height:80px; background: linear-gradient(180deg, #c09858 0%, #907040 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(-5deg); animation: ht-horse1 5s ease-in-out infinite alternate; }
.scn-item-horses-taken .horse-2 { position:absolute; bottom:30%; right:25%; width:70px; height:80px; background: linear-gradient(180deg, #b09050 0%, #806838 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1) skewX(-5deg); animation: ht-horse2 7s ease-in-out infinite alternate; }
.scn-item-horses-taken .manger { position:absolute; bottom:25%; left:45%; width:60px; height:30px; background: linear-gradient(180deg, #6a5030 0%, #4a3520 100%); border-radius: 10% 10% 0 0; }
.scn-item-horses-taken .figure { position:absolute; bottom:28%; left:10%; width:24px; height:65px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ht-fig 4s ease-in-out infinite; }
.scn-item-horses-taken .lamp { position:absolute; bottom:45%; left:50%; width:16px; height:24px; background: linear-gradient(180deg, #e0b060 0%, #c09040 100%); border-radius: 40% 40% 20% 20%; transform: translateX(-50%); box-shadow: 0 0 20px 4px #e0b060; animation: ht-lamp 3s ease-in-out infinite alternate; }
.scn-item-horses-taken .hay { position:absolute; bottom:20%; left:35%; right:35%; height:10%; background: linear-gradient(0deg, #c8a050 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ht-hay 10s linear infinite; }
@keyframes ht-horse1 { 0% { transform: translateX(0) skewX(-5deg) } 50% { transform: translateX(5px) skewX(-7deg) } 100% { transform: translateX(0) skewX(-5deg) } }
@keyframes ht-horse2 { 0% { transform: scaleX(-1) skewX(-5deg) translateX(0) } 50% { transform: scaleX(-1) skewX(-7deg) translateX(-5px) } 100% { transform: scaleX(-1) skewX(-5deg) translateX(0) } }
@keyframes ht-fig { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ht-lamp { 0% { opacity:.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:.8; transform: translateX(-50%) scale(1) } }
@keyframes ht-hay { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-nobles-conspire-against-cardinal { background: linear-gradient(180deg, #3a3020 0%, #1a1410 100%), radial-gradient(ellipse at 50% 90%, #5a4a30 0%, transparent 60%); }
.scn-nobles-conspire-against-cardinal .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, #2a1a10 0%, #0a0808 100%); }
.scn-nobles-conspire-against-cardinal .table { position:absolute; bottom:20%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 8px 8px 0 0; transform: perspective(200px) rotateX(12deg); }
.scn-nobles-conspire-against-cardinal .candle { position:absolute; bottom:30%; left:50%; width:10px; height:24px; background: linear-gradient(180deg, #6a4a2a 0%, #4a301a 100%); border-radius: 4px; transform: translateX(-50%); }
.scn-nobles-conspire-against-cardinal .candle-glow { position:absolute; bottom:30%; left:50%; width:80px; height:80px; transform: translateX(-50%); background: radial-gradient(circle, #ffa040 0%, transparent 100%); opacity:.6; animation: ncc-glow 3s ease-in-out infinite alternate; }
.scn-nobles-conspire-against-cardinal .figure1 { position:absolute; bottom:25%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ncc-fig1 6s ease-in-out infinite; }
.scn-nobles-conspire-against-cardinal .figure2 { position:absolute; bottom:25%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ncc-fig2 7s ease-in-out infinite; }
.scn-nobles-conspire-against-cardinal .shadow-arch { position:absolute; top:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%); animation: ncc-arch 10s ease-in-out infinite alternate; }
@keyframes ncc-glow { 0% { opacity:.4; transform: translateX(-50%) scale(1) } 50% { opacity:.8; transform: translateX(-50%) scale(1.3) } 100% { opacity:.5; transform: translateX(-50%) scale(1) } }
@keyframes ncc-fig1 { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(4px) rotate(-3deg) } 66% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ncc-fig2 { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-4px) rotate(3deg) } 66% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ncc-arch { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }

.scn-cranmer-prophecy {
  background:
    linear-gradient(180deg, #f4e4b0 0%, #e8c87a 30%, #c89040 70%, #885020 100%),
    radial-gradient(ellipse at 70% 20%, #ffe8a0 0%, transparent 60%);
}
.scn-cranmer-prophecy .window {
  position: absolute; inset: 10% 15% 55% 15%;
  background: linear-gradient(135deg, #fff6d0 0%, #f0d090 50%, #d0a060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 30px 10px #ffd070, 0 0 50px 20px rgba(255,208,112,0.4);
  animation: cp-window 8s ease-in-out infinite;
}
.scn-cranmer-prophecy .vine-stem {
  position: absolute; bottom: 30%; left: 45%;
  width: 4px; height: 40%;
  background: linear-gradient(0deg, #5a3a1a 0%, #8a5a2a 100%);
  border-radius: 2px;
  transform-origin: bottom;
  animation: cp-stem 12s ease-in-out infinite alternate;
}
.scn-cranmer-prophecy .leaf-a {
  position: absolute; bottom: 54%; left: 42%;
  width: 20px; height: 28px;
  background: radial-gradient(ellipse at 30% 50%, #7a9a4a 0%, #5a7a2a 70%);
  border-radius: 50% 0 50% 0;
  transform: rotate(-20deg);
  animation: cp-leaf 4s ease-in-out infinite;
}
.scn-cranmer-prophecy .leaf-b {
  position: absolute; bottom: 48%; left: 48%;
  width: 18px; height: 24px;
  background: radial-gradient(ellipse at 40% 50%, #6a8a3a 0%, #4a6a1a 70%);
  border-radius: 0 50% 0 50%;
  transform: rotate(25deg);
  animation: cp-leaf 5s ease-in-out infinite 1s;
}
.scn-cranmer-prophecy .leaf-c {
  position: absolute; bottom: 42%; left: 44%;
  width: 16px; height: 22px;
  background: radial-gradient(ellipse at 50% 30%, #8a9a5a 0%, #5a7a2a 70%);
  border-radius: 50% 0 50% 0;
  transform: rotate(-40deg);
  animation: cp-leaf 6s ease-in-out infinite 2s;
}
.scn-cranmer-prophecy .figure {
  position: absolute; bottom: 20%; left: 35%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: cp-figure 15s ease-in-out infinite alternate;
}
.scn-cranmer-prophecy .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a2a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-cranmer-prophecy .rays {
  position: absolute; top: 8%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,230,160,0.4) 0%, transparent 70%);
  animation: cp-rays 10s ease-in-out infinite alternate;
}
@keyframes cp-window { 0% { opacity: 0.85; box-shadow: inset 0 0 20px 6px #ffca70, 0 0 40px 12px rgba(255,202,112,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 40px 14px #ffe090, 0 0 60px 20px rgba(255,224,144,0.5); } 100% { opacity: 0.9; box-shadow: inset 0 0 25px 8px #ffca70, 0 0 45px 15px rgba(255,202,112,0.35); } }
@keyframes cp-stem { 0% { transform: scaleY(0.95) rotate(2deg); } 50% { transform: scaleY(1.05) rotate(-3deg); } 100% { transform: scaleY(1) rotate(1deg); } }
@keyframes cp-leaf { 0%,100% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.1); } }
@keyframes cp-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-4px) rotate(0deg); } }
@keyframes cp-rays { 0% { opacity: 0.3; transform: scale(0.95) translateY(0); } 50% { opacity: 0.6; transform: scale(1.05) translateY(-5px); } 100% { opacity: 0.4; transform: scale(1) translateY(2px); } }

.scn-king-thanks-all {
  background:
    linear-gradient(180deg, #e8cca0 0%, #d0a870 30%, #a07040 70%, #503020 100%),
    radial-gradient(ellipse at 30% 40%, #f0d8a0 0%, transparent 50%);
}
.scn-king-thanks-all .bg-arch {
  position: absolute; inset: 5% 8% 40% 8%;
  background: radial-gradient(ellipse at 50% 100%, #c09860 0%, #805030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-king-thanks-all .throne {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #6a4030 0%, #3a2010 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-king-thanks-all .king {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 26px; height: 60px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: kt-king 6s ease-in-out infinite alternate;
}
.scn-king-thanks-all .crown {
  position: absolute; bottom: 82%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 12px;
  background: linear-gradient(180deg, #d0a050 0%, #b08030 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 -4px 8px rgba(208,160,80,0.5);
  animation: kt-crown 4s ease-in-out infinite;
}
.scn-king-thanks-all .lord-a {
  position: absolute; bottom: 15%; left: 30%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2510 0%, #1a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom;
  animation: kt-lords 8s ease-in-out infinite;
}
.scn-king-thanks-all .lord-b {
  position: absolute; bottom: 15%; left: 58%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2510 0%, #1a0a00 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom;
  animation: kt-lords 8s ease-in-out infinite 2s;
}
.scn-king-thanks-all .torch {
  position: absolute; bottom: 22%; left: 20%;
  width: 8px; height: 20px;
  background: linear-gradient(180deg, #a06020 0%, #603010 100%);
  border-radius: 10%;
}
.scn-king-thanks-all .glow {
  position: absolute; bottom: 28%; left: 18%;
  width: 16px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 50%, transparent 100%);
  border-radius: 50%;
  animation: kt-glow 3s ease-in-out infinite alternate;
}
@keyframes kt-king { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes kt-crown { 0%,100% { transform: translateX(-50%) rotate(0deg) scale(1); } 25% { transform: translateX(-50%) rotate(-3deg) scale(1.05); } 75% { transform: translateX(-50%) rotate(3deg) scale(0.95); } }
@keyframes kt-lords { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes kt-glow { 0% { opacity: 0.4; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.9); } }

.scn-epilogue {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d0b080 30%, #907050 70%, #503020 100%),
    radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, transparent 60%);
}
.scn-epilogue .curtain-left {
  position: absolute; top: 0; left: 0; width: 40%; height: 100%;
  background: linear-gradient(135deg, #8a2a1a 0%, #5a1a0a 50%, #3a1000 100%);
  border-radius: 0 40% 80% 0;
  filter: drop-shadow(8px 0 12px rgba(0,0,0,0.4));
  animation: ep-curtain 20s ease-in-out infinite alternate;
}
.scn-epilogue .curtain-right {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(225deg, #8a2a1a 0%, #5a1a0a 50%, #3a1000 100%);
  border-radius: 40% 0 0 80%;
  filter: drop-shadow(-8px 0 12px rgba(0,0,0,0.4));
  animation: ep-curtain 20s ease-in-out infinite alternate-reverse;
}
.scn-epilogue .stage {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(180deg, #c09860 0%, #906040 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-epilogue .actor {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ep-actor 10s ease-in-out infinite;
}
.scn-epilogue .spotlight {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 70%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.4) 0%, transparent 70%);
  animation: ep-spotlight 12s ease-in-out infinite alternate;
}
.scn-epilogue .shadow {
  position: absolute; bottom: 18%; left: 45%; width: 10%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ep-shadow 10s ease-in-out infinite;
}
.scn-epilogue .floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a2a0a 100%);
  border-radius: 30% 30% 0 0;
}
@keyframes ep-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.92); } 100% { transform: scaleX(1.02); } }
@keyframes ep-actor { 0%,100% { transform: translateX(-50%) rotate(0deg) translateY(0); } 25% { transform: translateX(-50%) rotate(-2deg) translateY(-4px); } 75% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } }
@keyframes ep-spotlight { 0% { opacity: 0.2; transform: scaleY(0.9) translateX(0); } 50% { opacity: 0.5; transform: scaleY(1.1) translateX(10px); } 100% { opacity: 0.3; transform: scaleY(1) translateX(-5px); } }
@keyframes ep-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.2); opacity: 0.6; } 100% { transform: scaleX(0.9); opacity: 0.3; } }

.scn-cranmer-forced-to-wait {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4c4a0 40%, #c2b090 100%),
              radial-gradient(ellipse at 50% 100%, #b8a080 0%, transparent 70%);
}
.scn-cranmer-forced-to-wait .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #cdbaa0 70%, #b8a080 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.15);
}
.scn-cranmer-forced-to-wait .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b89a70 0%, #a08060 100%);
  border-radius: 0 0 4% 4%;
}
.scn-cranmer-forced-to-wait .door {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 140px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 4px 4px 0 0;
  border: 4px solid #2a1a0a;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: cfw-door-breath 6s ease-in-out infinite;
}
.scn-cranmer-forced-to-wait .figure-waiting {
  position: absolute; bottom: 20%; left: 38%;
  width: 28px; 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: cfw-pace 4s ease-in-out infinite;
}
.scn-cranmer-forced-to-wait .lantern-wait {
  position: absolute; bottom: 45%; left: 45%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #d08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,130,50,0.6);
  animation: cfw-lantern-swing 5s ease-in-out infinite;
}
.scn-cranmer-forced-to-wait .shadow-door {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 150px;
  transform: translateX(-50%) translateX(-50px);
  background: rgba(0,0,0,0.15);
  filter: blur(20px);
  animation: cfw-shadow-slide 8s ease-in-out infinite alternate;
}
.scn-cranmer-forced-to-wait .distant-light {
  position: absolute; bottom: 40%; left: 55%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,220,180,0.4) 0%, transparent 70%);
  border-radius: 50%;
}
@keyframes cfw-door-breath {
  0%, 100% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.01); }
}
@keyframes cfw-pace {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(-2deg); }
  75% { transform: translateX(24px) rotate(2deg); }
  100% { transform: translateX(32px) rotate(0deg); }
}
@keyframes cfw-lantern-swing {
  0%, 100% { transform: translate(0, 0) rotate(-4deg); }
  50% { transform: translate(3px, -2px) rotate(4deg); }
}
@keyframes cfw-shadow-slide {
  0% { transform: translateX(-50%) translateX(-50px) scaleX(1); }
  100% { transform: translateX(-50%) translateX(30px) scaleX(1.2); }
}

.scn-king-sees-cranmer-waiting {
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 40%, #c0b090 100%),
              radial-gradient(ellipse at 50% 0%, #e0d0b0 0%, transparent 70%);
}
.scn-king-sees-cranmer-waiting .room-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #d4c0a8 0%, #c8b098 50%, #d4c0a8 100%);
}
.scn-king-sees-cranmer-waiting .window-frame {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10px 10px 0 0;
  border: 8px solid #4a3a2a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-king-sees-cranmer-waiting .king-figure {
  position: absolute; top: 22%; left: 35%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ksc-king-glance 8s ease-in-out infinite;
}
.scn-king-sees-cranmer-waiting .butts-figure {
  position: absolute; top: 24%; left: 42%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ksc-butts-point 10s ease-in-out infinite;
}
.scn-king-sees-cranmer-waiting .cranmer-below {
  position: absolute; bottom: 30%; left: 44%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ksc-pace-below 5s ease-in-out infinite;
}
.scn-king-sees-cranmer-waiting .window-light {
  position: absolute; top: 22%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse, rgba(255,230,180,0.4) 0%, transparent 100%);
  animation: ksc-light-flicker 3s ease-in-out infinite alternate;
}
.scn-king-sees-cranmer-waiting .curtain-left {
  position: absolute; top: 15%; left: 30%; width: 8%; height: 35%;
  background: linear-gradient(90deg, #6a3a3a 0%, #8a4a4a 100%);
  border-radius: 0 20px 20px 0;
  transform-origin: top left;
  animation: ksc-drape-left 6s ease-in-out infinite alternate;
}
.scn-king-sees-cranmer-waiting .curtain-right {
  position: absolute; top: 15%; right: 30%; width: 8%; height: 35%;
  background: linear-gradient(270deg, #6a3a3a 0%, #8a4a4a 100%);
  border-radius: 20px 0 0 20px;
  transform-origin: top right;
  animation: ksc-drape-right 6s ease-in-out infinite alternate;
}
@keyframes ksc-king-glance {
  0% { transform: translateX(0) rotate(-3deg); }
  50% { transform: translateX(-5px) rotate(5deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes ksc-butts-point {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(3px) rotate(-10deg); }
  60% { transform: translateX(-2px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ksc-pace-below {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(20px) rotate(-2deg); }
}
@keyframes ksc-light-flicker {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 0.8; }
}
@keyframes ksc-drape-left {
  0% { transform: skewY(0deg); }
  100% { transform: skewY(-5deg); }
}
@keyframes ksc-drape-right {
  0% { transform: skewY(0deg); }
  100% { transform: skewY(5deg); }
}

.scn-council-chamber-accusation {
  background: linear-gradient(180deg, #d8c8a8 0%, #c0b090 40%, #a09070 100%),
              radial-gradient(ellipse at 50% 50%, #b8a880 0%, transparent 70%);
}
.scn-council-chamber-accusation .table {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 8%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%);
  border-radius: 20px;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
}
.scn-council-chamber-accusation .chancellor-chair {
  position: absolute; bottom: 33%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
}
.scn-council-chamber-accusation .empty-chair {
  position: absolute; bottom: 33%; left: 45%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 30% 30% 10% 10%;
  border: 2px solid #4a3a2a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: cca-chair-empty 8s ease-in-out infinite alternate;
}
.scn-council-chamber-accusation .noble-left {
  position: absolute; bottom: 30%; left: 20%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: cca-seated-left 12s ease-in-out infinite;
}
.scn-council-chamber-accusation .noble-right {
  position: absolute; bottom: 30%; right: 20%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: cca-seated-right 12s ease-in-out infinite reverse;
}
.scn-council-chamber-accusation .cromwell-standing {
  position: absolute; bottom: 28%; left: 8%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cca-stand-still 10s ease-in-out infinite;
}
.scn-council-chamber-accusation .chandelier {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #c0a060 0%, #8a6a30 80%);
  border-radius: 50%;
  box-shadow: 0 10px 40px rgba(160,120,60,0.5);
  animation: cca-chandelier-sway 7s ease-in-out infinite alternate;
}
.scn-council-chamber-accusation .shadow-accuse {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 20%;
  background: rgba(0,0,0,0.1);
  filter: blur(15px);
  border-radius: 50%;
}
@keyframes cca-chair-empty {
  0% { transform: translateY(0); opacity: 0.8; }
  100% { transform: translateY(-3px); opacity: 1; }
}
@keyframes cca-seated-left {
  0%, 100% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
}
@keyframes cca-seated-right {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
}
@keyframes cca-stand-still {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes cca-chandelier-sway {
  0% { transform: translateX(-50%) rotate(-3deg); }
  100% { transform: translateX(-50%) rotate(3deg); }
}

.scn-cranmer-defends-himself {
  background: linear-gradient(180deg, #f5eed5 0%, #e5dcc0 40%, #d5c8a8 100%),
              radial-gradient(ellipse at 50% 30%, #e8dcc0 0%, transparent 60%);
}
.scn-cranmer-defends-himself .chamber-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #e8dcc8 0%, #d5c0a0 70%, #c0a880 100%);
}
.scn-cranmer-defends-himself .cranmer-body {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 65px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cdh-stand-calm 6s ease-in-out infinite;
}
.scn-cranmer-defends-himself .cranmer-arm {
  position: absolute; bottom: 45%; left: 46%; width: 18px; height: 30px;
  transform-origin: top left;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: cdh-arm-gesture 8s ease-in-out infinite;
}
.scn-cranmer-defends-himself .accuser-left {
  position: absolute; bottom: 28%; left: 35%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(8deg);
  animation: cdh-accuse 10s ease-in-out infinite;
}
.scn-cranmer-defends-himself .accuser-right {
  position: absolute; bottom: 28%; right: 35%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-8deg);
  animation: cdh-accuse 10s ease-in-out infinite reverse;
}
.scn-cranmer-defends-himself .light-ray {
  position: absolute; top: 15%; left: 45%; width: 10%; height: 40%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(4px);
  animation: cdh-light-sweep 12s ease-in-out infinite alternate;
}
.scn-cranmer-defends-himself .floor-line {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 2px;
  background: linear-gradient(90deg, transparent, #8a7a5a, transparent);
  opacity: 0.4;
}
@keyframes cdh-stand-calm {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes cdh-arm-gesture {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(10deg); }
}
@keyframes cdh-accuse {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes cdh-light-sweep {
  0% { left: 42%; opacity: 0.3; }
  100% { left: 48%; opacity: 0.6; }
}

.scn-coronation-procession {
  background: 
    linear-gradient(180deg, #fce4b8 0%, #eccc8a 40%, #c09a5e 100%),
    radial-gradient(ellipse at 70% 20%, #fff4d0 0%, transparent 50%);
}
.scn-coronation-procession .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d4f0 0%, #d4e8ff 60%, transparent 100%);
  animation: cp-sky 20s ease-in-out infinite alternate;
}
.scn-coronation-procession .sunrays {
  position: absolute; top: 0; left: 55%; width: 120%; height: 100%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.6) 0%, transparent 70%);
  transform-origin: 50% 0%;
  animation: cp-rays 12s ease-in-out infinite alternate;
}
.scn-coronation-procession .canopy {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 35%;
  background: 
    linear-gradient(180deg, #b8863a 0%, #8a6628 40%, #5c4420 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: cp-canopy 8s ease-in-out infinite;
}
.scn-coronation-procession .cloth {
  position: absolute; top: 45%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #d4aa60 0%, #f0d090 40%, #c89a50 100%);
  border-radius: 5% 5% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  transform: rotate(-2deg);
  animation: cp-cloth 6s ease-in-out infinite alternate;
}
.scn-coronation-procession .baron {
  position: absolute; bottom: 25%; left: 38%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.4);
  animation: cp-walk 4s ease-in-out infinite alternate;
}
.scn-coronation-procession .crowd {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30%;
  background: 
    repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 4px, #2a1a0a 4px, #2a1a0a 8px);
  mask-image: linear-gradient(180deg, transparent 0%, #000 40%, #000 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 40%, #000 100%);
  animation: cp-crowd 15s ease-in-out infinite alternate;
}
.scn-coronation-procession .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #8a7648 0%, #6a5a38 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
}
@keyframes cp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cp-rays { 0% { transform: rotate(-3deg) scaleX(1); } 100% { transform: rotate(3deg) scaleX(1.1); } }
@keyframes cp-canopy { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes cp-cloth { 0% { transform: rotate(-2deg) translateX(0); } 100% { transform: rotate(2deg) translateX(6px); } }
@keyframes cp-walk { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes cp-crowd { 0% { mask-position: 0 0; } 100% { mask-position: 20px 0; } }

.scn-coronation-ceremony-described {
  background: 
    linear-gradient(180deg, #f5e0b0 0%, #d8c090 40%, #a08050 100%),
    radial-gradient(ellipse at 50% 30%, #fff4d0 0%, transparent 60%);
}
.scn-coronation-ceremony-described .choir-arch {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 50%;
  background: 
    radial-gradient(ellipse at 50% 100%, #8a6a3a 0%, transparent 60%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.2);
  animation: ccd-arch 12s ease-in-out infinite alternate;
}
.scn-coronation-ceremony-described .chair {
  position: absolute; bottom: 30%; left: 42%; width: 16%; height: 25%;
  background: linear-gradient(180deg, #b8863a 0%, #8a6628 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.4);
}
.scn-coronation-ceremony-described .queen {
  position: absolute; bottom: 32%; left: 44%; width: 8%; height: 28%;
  background: linear-gradient(180deg, #b89870 0%, #8a7050 40%, #5c4830 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 50% 50%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: ccd-queen 6s ease-in-out infinite alternate;
}
.scn-coronation-ceremony-described .lords {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: 
    repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 3px, transparent 3px, transparent 6px);
  mask-image: linear-gradient(180deg, transparent 0%, #000 50%, #000 100%);
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 50%, #000 100%);
  animation: ccd-lords 20s linear infinite;
}
.scn-coronation-ceremony-described .light-beam {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 60%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: ccd-beam 8s ease-in-out infinite alternate;
}
.scn-coronation-ceremony-described .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #9a8858 0%, #7a6840 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
}
@keyframes ccd-arch { 0% { opacity: 0.7; transform: scaleY(0.95); } 100% { opacity: 1; transform: scaleY(1); } }
@keyframes ccd-queen { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ccd-lords { 0% { mask-position: 0 0; } 100% { mask-position: 30px 0; } }
@keyframes ccd-beam { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.9; } }

.scn-kimbolton-queen-sick {
  background: 
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0e0e1e 100%),
    radial-gradient(ellipse at 30% 50%, #3a3a5a 0%, transparent 60%);
}
.scn-kimbolton-queen-sick .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
}
.scn-kimbolton-queen-sick .chair {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.5);
  animation: kqs-chair 10s ease-in-out infinite alternate;
}
.scn-kimbolton-queen-sick .queen {
  position: absolute; bottom: 30%; left: 42%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #8a705a 0%, #6a5040 50%, #4a382a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 50% 50%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: kqs-queen 6s ease-in-out infinite alternate;
}
.scn-kimbolton-queen-sick .attendant-griffith {
  position: absolute; bottom: 20%; left: 28%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-10px);
  animation: kqs-att-left 8s ease-in-out infinite alternate;
}
.scn-kimbolton-queen-sick .attendant-patience {
  position: absolute; bottom: 20%; left: 58%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #4a3a4a 0%, #3a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(10px);
  animation: kqs-att-right 8s ease-in-out infinite alternate;
}
.scn-kimbolton-queen-sick .window {
  position: absolute; top: 15%; left: 10%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 0 20px rgba(100,120,140,0.5);
  animation: kqs-window 15s ease-in-out infinite alternate;
}
.scn-kimbolton-queen-sick .window-light {
  position: absolute; top: 15%; left: 10%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 30% 40%, rgba(180,200,220,0.3) 0%, transparent 70%);
  animation: kqs-light 12s ease-in-out infinite alternate;
}
@keyframes kqs-chair { 0% { transform: translateY(0); } 100% { transform: translateY(2px); } }
@keyframes kqs-queen { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kqs-att-left { 0% { transform: translateX(-10px) rotate(0deg); } 50% { transform: translateX(-8px) rotate(1deg); } 100% { transform: translateX(-12px) rotate(-1deg); } }
@keyframes kqs-att-right { 0% { transform: translateX(10px) rotate(0deg); } 50% { transform: translateX(8px) rotate(-1deg); } 100% { transform: translateX(12px) rotate(1deg); } }
@keyframes kqs-window { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes kqs-light { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.3; } }

.scn-kimbolton-wolsey-death-told {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #0e0e1e 100%),
    radial-gradient(ellipse at 50% 60%, #2a3a3a 0%, transparent 60%);
}
.scn-kimbolton-wolsey-death-told .abbey-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
}
.scn-kimbolton-wolsey-death-told .arch {
  position: absolute; top: 5%; left: 25%; width: 50%; height: 45%;
  background: radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 60%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3);
  animation: kwd-arch 15s ease-in-out infinite alternate;
}
.scn-kimbolton-wolsey-death-told .abbot {
  position: absolute; bottom: 30%; left: 30%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: kwd-abbot 8s ease-in-out infinite alternate;
}
.scn-kimbolton-wolsey-death-told .wolsey {
  position: absolute; bottom: 25%; left: 45%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform: rotate(5deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: kwd-wolsey 6s ease-in-out infinite alternate;
}
.scn-kimbolton-wolsey-death-told .bench {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: kwd-bench 10s ease-in-out infinite alternate;
}
.scn-kimbolton-wolsey-death-told .candle {
  position: absolute; bottom: 35%; left: 48%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #d4a050 0%, #8a6a30 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 10px rgba(200,150,80,0.4);
  animation: kwd-candle 4s ease-in-out infinite alternate;
}
.scn-kimbolton-wolsey-death-told .candle-glow {
  position: absolute; bottom: 30%; left: 44%; width: 12%; height: 20%;
  background: radial-gradient(ellipse, rgba(200,150,80,0.25) 0%, transparent 70%);
  animation: kwd-glow 4s ease-in-out infinite alternate;
}
.scn-kimbolton-wolsey-death-told .window {
  position: absolute; top: 20%; right: 15%; width: 15%; height: 25%;
  background: linear-gradient(135deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 10% 10% 15% 15%;
  box-shadow: inset 0 0 15px rgba(60,80,100,0.3);
  animation: kwd-window 20s ease-in-out infinite alternate;
}
@keyframes kwd-arch { 0% { opacity: 0.8; transform: scaleY(0.95); } 100% { opacity: 1; transform: scaleY(1); } }
@keyframes kwd-abbot { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes kwd-wolsey { 0% { transform: rotate(4deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-3px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes kwd-bench { 0% { transform: translateY(0); } 100% { transform: translateY(2px); } }
@keyframes kwd-candle { 0% { transform: scaleY(1) rotate(0deg); opacity: 0.8; } 50% { transform: scaleY(1.05) rotate(2deg); opacity: 1; } 100% { transform: scaleY(1) rotate(0deg); opacity: 0.9; } }
@keyframes kwd-glow { 0% { opacity: 0.2; } 50% { opacity: 0.35; } 100% { opacity: 0.25; } }
@keyframes kwd-window { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.6; } }

.scn-ante-chamber-greeting {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0cbb0 30%, #c8b098 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%);
}
.scn-ante-chamber-greeting .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #b4a088 0%, #8c7a66 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-ante-chamber-greeting .wall-left,
.scn-ante-chamber-greeting .wall-right {
  position: absolute;
  top: 0;
  bottom: 35%;
  width: 20%;
  background: linear-gradient(180deg, #e8d8c0 0%, #d0bea0 100%);
}
.scn-ante-chamber-greeting .wall-left {
  left: 0;
}
.scn-ante-chamber-greeting .wall-right {
  right: 0;
}
.scn-ante-chamber-greeting .window {
  position: absolute;
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
  width: 40%;
  height: 45%;
  background: linear-gradient(135deg, #d6e8f0 0%, #a8c8e0 100%);
  border: 8px solid #7a6a5a;
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 40px rgba(255,255,240,0.6);
  animation: ag-window 10s ease-in-out infinite alternate;
}
@keyframes ag-window {
  0% { opacity: 0.9; box-shadow: inset 0 0 30px rgba(255,255,240,0.4); }
  50% { opacity: 1; box-shadow: inset 0 0 60px rgba(255,255,240,0.8); }
  100% { opacity: 0.95; box-shadow: inset 0 0 40px rgba(255,255,240,0.6); }
}
.scn-ante-chamber-greeting .window-light {
  position: absolute;
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
  width: 36%;
  height: 42%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,240,0.3) 0%, transparent 70%);
  animation: ag-light 8s ease-in-out infinite alternate;
}
@keyframes ag-light {
  0% { opacity: 0.5; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.8; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(0.98); }
}
.scn-ante-chamber-greeting .figure-left,
.scn-ante-chamber-greeting .figure-right {
  position: absolute;
  bottom: 35%;
  height: 28%;
  width: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ag-figure 6s ease-in-out infinite;
}
@keyframes ag-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.scn-ante-chamber-greeting .figure-left {
  left: 25%;
}
.scn-ante-chamber-greeting .figure-right {
  right: 25%;
}
.scn-ante-chamber-greeting .column {
  position: absolute;
  bottom: 35%;
  width: 6%;
  height: 65%;
  background: linear-gradient(90deg, #d0bea0 0%, #e8d8c0 50%, #c8b098 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-ante-chamber-greeting .column-left {
  left: 18%;
}
.scn-ante-chamber-greeting .column-right {
  right: 18%;
}

.scn-france-pageant-description {
  background: linear-gradient(180deg, #d4a844 0%, #c09030 40%, #a07320 100%), radial-gradient(ellipse at 50% 80%, #f0d080 0%, transparent 60%);
}
.scn-france-pageant-description .stage-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #a08030 0%, #705020 100%);
  animation: fp-stage 12s ease-in-out infinite alternate;
}
@keyframes fp-stage {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
.scn-france-pageant-description .stage-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #5a4020 0%, #301a08 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-france-pageant-description .throne-left,
.scn-france-pageant-description .throne-right {
  position: absolute;
  bottom: 35%;
  width: 15%;
  height: 30%;
  background: linear-gradient(180deg, #b08040 0%, #804020 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-france-pageant-description .throne-left {
  left: 20%;
}
.scn-france-pageant-description .throne-right {
  right: 20%;
}
.scn-france-pageant-description .king-left,
.scn-france-pageant-description .king-right {
  position: absolute;
  bottom: 35%;
  width: 10%;
  height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fp-king 5s ease-in-out infinite alternate;
}
@keyframes fp-king {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.scn-france-pageant-description .king-left {
  left: 23%;
}
.scn-france-pageant-description .king-right {
  right: 23%;
}
.scn-france-pageant-description .banner {
  position: absolute;
  top: 15%;
  width: 8%;
  height: 30%;
  background: linear-gradient(180deg, #b84820 0%, #682818 100%);
  border-radius: 0 0 20% 20%;
  animation: fp-banner 8s ease-in-out infinite alternate;
}
@keyframes fp-banner {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}
.scn-france-pageant-description .banner-left {
  left: 15%;
  animation-delay: 0s;
}
.scn-france-pageant-description .banner-right {
  right: 15%;
  animation-delay: 2s;
}
.scn-france-pageant-description .mask-hat {
  position: absolute;
  bottom: 55%;
  left: 50%;
  transform: translateX(-50%);
  width: 12%;
  height: 12%;
  background: linear-gradient(135deg, #f0c060 0%, #c08020 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: fp-hat 4s ease-in-out infinite;
}
@keyframes fp-hat {
  0% { transform: translateX(-50%) rotate(0deg) scale(1); }
  25% { transform: translateX(-50%) rotate(10deg) scale(1.05); }
  50% { transform: translateX(-50%) rotate(0deg) scale(1); }
  75% { transform: translateX(-50%) rotate(-10deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(0deg) scale(1); }
}

.scn-item-beggar-book {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5e 0%, transparent 70%);
}
.scn-item-beggar-book .desk {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 30%;
  height: 45%;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5);
}
.scn-item-beggar-book .book {
  position: absolute;
  bottom: 40%;
  left: 18%;
  width: 25%;
  height: 20%;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.6);
  animation: ib-book 6s ease-in-out infinite alternate;
}
@keyframes ib-book {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
.scn-item-beggar-book .book-shadow {
  position: absolute;
  bottom: 38%;
  left: 19%;
  width: 24%;
  height: 6%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: ib-shadow 6s ease-in-out infinite alternate;
}
@keyframes ib-shadow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.2; transform: scale(0.9); }
  100% { opacity: 0.4; transform: scale(1); }
}
.scn-item-beggar-book .hand {
  position: absolute;
  bottom: 50%;
  left: 35%;
  width: 12%;
  height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  animation: ib-hand 4s ease-in-out infinite;
}
@keyframes ib-hand {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-8px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
.scn-item-beggar-book .candle {
  position: absolute;
  bottom: 45%;
  left: 8%;
  width: 4%;
  height: 20%;
  background: linear-gradient(180deg, #f0e0a0 0%, #c0a060 100%);
  border-radius: 20%;
  box-shadow: 0 0 10px rgba(240,224,160,0.5);
}
.scn-item-beggar-book .candle-glow {
  position: absolute;
  bottom: 50%;
  left: 6%;
  width: 10%;
  height: 20%;
  background: radial-gradient(circle, rgba(240,200,80,0.6) 0%, transparent 70%);
  animation: ib-glow 3s ease-in-out infinite alternate;
}
@keyframes ib-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(1); }
}
.scn-item-beggar-book .spyhole {
  position: absolute;
  top: 15%;
  right: 15%;
  width: 6%;
  height: 6%;
  background: #0a0a1a;
  border: 3px solid #3a3a5e;
  border-radius: 50%;
}
.scn-item-beggar-book .spyhole-glow {
  position: absolute;
  top: 14%;
  right: 14%;
  width: 8%;
  height: 8%;
  background: radial-gradient(circle, rgba(200,200,255,0.4) 0%, transparent 60%);
  animation: ib-spy 5s ease-in-out infinite;
}
@keyframes ib-spy {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0.2; transform: scale(0.8); }
}

.scn-cardinal-ambition-revealed {
  background: linear-gradient(180deg, #1a1020 0%, #0a0810 40%, #000000 100%), radial-gradient(ellipse at 50% 60%, #2a1a30 0%, transparent 70%);
}
.scn-cardinal-ambition-revealed .bg-deep {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: ca-deep 15s ease-in-out infinite alternate;
}
@keyframes ca-deep {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
.scn-cardinal-ambition-revealed .web {
  position: absolute;
  top: 10%;
  left: 10%;
  width: 80%;
  height: 80%;
  border: 1px solid rgba(255,200,150,0.15);
  border-radius: 50%;
  animation: ca-web 20s linear infinite;
}
.scn-cardinal-ambition-revealed .web-large {
  border-width: 2px;
  animation: ca-web 25s linear infinite reverse;
}
@keyframes ca-web {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
.scn-cardinal-ambition-revealed .web-small {
  width: 60%;
  height: 60%;
  top: 25%;
  left: 20%;
  border-width: 1px;
  animation-duration: 18s;
}
.scn-cardinal-ambition-revealed .cardinal {
  position: absolute;
  bottom: 25%;
  left: 50%;
  transform: translateX(-50%);
  width: 14%;
  height: 35%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(200,50,50,0.3);
  animation: ca-figure 8s ease-in-out infinite;
}
@keyframes ca-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-50%) translateY(-4px) rotate(2deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
.scn-cardinal-ambition-revealed .candle-alt {
  position: absolute;
  bottom: 20%;
  right: 25%;
  width: 4%;
  height: 15%;
  background: linear-gradient(180deg, #d0a060 0%, #a08030 100%);
  border-radius: 20%;
  box-shadow: 0 0 8px rgba(200,160,80,0.4);
}
.scn-cardinal-ambition-revealed .candle-glow-alt {
  position: absolute;
  bottom: 25%;
  right: 24%;
  width: 8%;
  height: 20%;
  background: radial-gradient(circle, rgba(200,160,80,0.5) 0%, transparent 70%);
  animation: ca-glow 5s ease-in-out infinite alternate;
}
@keyframes ca-glow {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
.scn-cardinal-ambition-revealed .spider-shadow {
  position: absolute;
  bottom: 50%;
  left: 55%;
  width: 12%;
  height: 12%;
  background: radial-gradient(circle, rgba(0,0,0,0.6) 0%, transparent 60%);
  animation: ca-shadow 6s ease-in-out infinite;
}
@keyframes ca-shadow {
  0% { transform: translate(0,0) scale(1); }
  25% { transform: translate(-6px, -3px) scale(1.1); }
  50% { transform: translate(0,0) scale(1); }
  75% { transform: translate(6px, 3px) scale(1.1); }
  100% { transform: translate(0,0) scale(1); }
}

.scn-peace-breach-prophesied {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4c4a8 40%, #a08c78 100%),
    radial-gradient(ellipse at 80% 50%, rgba(255,220,140,0.3) 0%, transparent 60%);
}
.scn-peace-breach-prophesied .pbp-room {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #f0dbb8 0%, #c2a984 100%);
}
.scn-peace-breach-prophesied .pbp-window {
  position: absolute; top: 12%; left: 60%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #a0c8e8 0%, #c8e8ff 50%, #d8f0ff 100%);
  border: 6px solid #7a5a3a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4);
  animation: pbp-window-pulse 6s ease-in-out infinite;
}
.scn-peace-breach-prophesied .pbp-light-beam {
  position: absolute; top: 16%; left: 64%; width: 80px; height: 300px;
  background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, transparent 100%);
  transform: rotate(-12deg); filter: blur(8px);
  animation: pbp-beam-sway 8s ease-in-out infinite alternate;
}
.scn-peace-breach-prophesied .pbp-figure {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbp-figure-turn 12s ease-in-out infinite;
}
.scn-peace-breach-prophesied .pbp-desk {
  position: absolute; bottom: 18%; left: 25%; width: 120px; height: 12px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-peace-breach-prophesied .pbp-papers {
  position: absolute; bottom: 22%; left: 32%; width: 30px; height: 20px;
  background: #e8d8b8; border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  animation: pbp-papers-flutter 3s ease-in-out infinite;
}
.scn-peace-breach-prophesied .pbp-shadow {
  position: absolute; bottom: 18%; left: 30%; width: 50px; height: 10px;
  background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(6px);
  animation: pbp-shadow-move 12s ease-in-out infinite;
}
@keyframes pbp-window-pulse {
  0%,100% { opacity: 0.9; box-shadow: inset 0 0 20px rgba(255,255,200,0.4); }
  50% { opacity: 1; box-shadow: inset 0 0 35px rgba(255,255,200,0.7); }
}
@keyframes pbp-beam-sway {
  0% { transform: rotate(-12deg) translateX(0); } 
  50% { transform: rotate(-8deg) translateX(10px); }
  100% { transform: rotate(-12deg) translateX(-5px); }
}
@keyframes pbp-figure-turn {
  0%,100% { transform: rotate(0deg) translateX(0); }
  33% { transform: rotate(5deg) translateX(5px); }
  66% { transform: rotate(-3deg) translateX(-3px); }
}
@keyframes pbp-papers-flutter {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes pbp-shadow-move {
  0%,100% { transform: translateX(0) scale(1); opacity: 0.2; }
  33% { transform: translateX(8px) scale(1.2); opacity: 0.15; }
  66% { transform: translateX(-5px) scale(0.9); opacity: 0.25; }
}

.scn-cardinal-wolsey-appearance {
  background: 
    linear-gradient(180deg, #b89a6a 0%, #8a704a 40%, #5a4028 100%),
    radial-gradient(ellipse at 50% 20%, #e8c888 0%, transparent 60%);
}
.scn-cardinal-wolsey-appearance .cwa-bg {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #c8b088 0%, #a08058 100%);
}
.scn-cardinal-wolsey-appearance .cwa-pillar {
  position: absolute; top:0; left:70%; width:30px; height:100%;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3020 100%);
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
}
.scn-cardinal-wolsey-appearance .cwa-figure {
  position: absolute; bottom:15%; left:45%; width:60px; height:120px;
  background: linear-gradient(180deg, #6a2a1a 0%, #4a1810 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: cwa-figure-loom 10s ease-in-out infinite alternate;
}
.scn-cardinal-wolsey-appearance .cwa-cloak {
  position: absolute; bottom:15%; left:40%; width:80px; height:100px;
  background: linear-gradient(135deg, #a03020 0%, #6a1810 100%);
  border-radius: 0 100% 50% 50% / 0 70% 30% 30%;
  transform-origin: bottom right;
  animation: cwa-cloak-sway 7s ease-in-out infinite alternate;
}
.scn-cardinal-wolsey-appearance .cwa-hat {
  position: absolute; top:8%; left:44%; width:40px; height:20px;
  background: radial-gradient(ellipse at 50% 10%, #a03020 0%, #6a1810 100%);
  border-radius: 50%; transform: rotate(-5deg);
  animation: cwa-hat-bob 6s ease-in-out infinite;
}
.scn-cardinal-wolsey-appearance .cwa-staff {
  position: absolute; bottom:15%; left:35%; width:6px; height:100px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a30 100%);
  border-radius: 3px; transform: rotate(8deg);
  transform-origin: bottom center;
  animation: cwa-staff-tap 4s ease-in-out infinite;
}
.scn-cardinal-wolsey-appearance .cwa-shadow {
  position: absolute; bottom:12%; left:40%; width:100px; height:20px;
  background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(8px);
  animation: cwa-shadow-swell 10s ease-in-out infinite alternate;
}
@keyframes cwa-figure-loom {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.1) translateY(-10px); }
  100% { transform: scale(1) translateY(0); }
}
@keyframes cwa-cloak-sway {
  0% { transform: rotate(0deg) skewX(0deg); }
  50% { transform: rotate(5deg) skewX(-2deg); }
  100% { transform: rotate(-3deg) skewX(1deg); }
}
@keyframes cwa-hat-bob {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-3px); }
}
@keyframes cwa-staff-tap {
  0%,100% { transform: rotate(8deg); }
  25% { transform: rotate(10deg); }
  75% { transform: rotate(6deg); }
}
@keyframes cwa-shadow-swell {
  0% { transform: scaleX(1); opacity:0.3; }
  50% { transform: scaleX(1.3); opacity:0.4; }
  100% { transform: scaleX(0.9); opacity:0.25; }
}

.scn-item-purse-borne {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #1a1008 60%, #0a0805 100%),
    radial-gradient(circle at 40% 60%, #c8a060 0%, transparent 50%);
}
.scn-item-purse-borne .ipb-wall {
  position: absolute; inset:0;
  background: linear-gradient(135deg, #4a3020 0%, #201810 100%);
}
.scn-item-purse-borne .ipb-table {
  position: absolute; bottom:15%; left:20%; width:200px; height:10px;
  background: linear-gradient(180deg, #6a4a2a 0%, #302010 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-item-purse-borne .ipb-purse {
  position: absolute; bottom:20%; left:35%; width:50px; height:40px;
  background: radial-gradient(ellipse at 50% 30%, #a07040 0%, #503020 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ipb-purse-rock 5s ease-in-out infinite;
}
.scn-item-purse-borne .ipb-hand {
  position: absolute; bottom:22%; left:28%; width:40px; height:30px;
  background: linear-gradient(180deg, #d0a888 0%, #a08060 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform-origin: bottom left;
  animation: ipb-hand-reach 7s ease-in-out infinite;
}
.scn-item-purse-borne .ipb-candle {
  position: absolute; bottom:22%; left:55%; width:12px; height:40px;
  background: linear-gradient(180deg, #e8d8a0 0%, #a08040 100%);
  border-radius: 20%; box-shadow: 0 0 20px 8px rgba(200,160,60,0.6);
  animation: ipb-candle-flicker 2s ease-in-out infinite;
}
.scn-item-purse-borne .ipb-shadow {
  position: absolute; bottom:14%; left:25%; width:120px; height:15px;
  background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(10px);
  animation: ipb-shadow-creep 5s ease-in-out infinite;
}
@keyframes ipb-purse-rock {
  0%,100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-2px); }
  75% { transform: rotate(-2deg) translateY(-1px); }
}
@keyframes ipb-hand-reach {
  0%,100% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(10px) rotate(-5deg); }
  66% { transform: translateX(-5px) rotate(3deg); }
}
@keyframes ipb-candle-flicker {
  0%,100% { opacity: 0.8; transform: scaleY(1); }
  25% { opacity: 1; transform: scaleY(1.05); }
  50% { opacity: 0.7; transform: scaleY(0.95); }
  75% { opacity: 0.9; transform: scaleY(1.02); }
}
@keyframes ipb-shadow-creep {
  0%,100% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(8px) scaleX(1.2); }
  75% { transform: translateX(-6px) scaleX(0.8); }
}

.scn-norfolk-advises-patience {
  background: 
    linear-gradient(180deg, #f0e6d0 0%, #d8c8a8 50%, #b8a080 100%),
    radial-gradient(ellipse at 70% 40%, #fff8e0 0%, transparent 70%);
}
.scn-norfolk-advises-patience .nap-chamber {
  position: absolute; inset:0;
  background: linear-gradient(135deg, #e8d8c0 0%, #c8b090 100%);
}
.scn-norfolk-advises-patience .nap-floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #7a6048 0%, #a08060 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-norfolk-advises-patience .nap-window {
  position: absolute; top:15%; left:60%; width:100px; height:140px;
  background: linear-gradient(180deg, #b0d0f0 0%, #d0e8ff 50%, #e0f0ff 100%);
  border: 6px solid #6a4a2a; border-radius: 4px;
  animation: nap-window-soft 8s ease-in-out infinite alternate;
}
.scn-norfolk-advises-patience .nap-figure-sit {
  position: absolute; bottom:25%; left:25%; width:50px; height:70px;
  background: linear-gradient(180deg, #5a4028 0%, #302010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nap-sit-breathe 6s ease-in-out infinite;
}
.scn-norfolk-advises-patience .nap-figure-stand {
  position: absolute; bottom:28%; left:55%; width:40px; height:90px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%);
  border-radius: 30% 30% 25% 25% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nap-stand-gesture 10s ease-in-out infinite;
}
.scn-norfolk-advises-patience .nap-desk {
  position: absolute; bottom:22%; left:35%; width:80px; height:8px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4020 100%);
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
@keyframes nap-window-soft {
  0%,100% { opacity: 0.85; box-shadow: inset 0 0 20px rgba(255,255,200,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(255,255,200,0.5); }
}
@keyframes nap-sit-breathe {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
}
@keyframes nap-stand-gesture {
  0%,100% { transform: rotate(0deg) translateX(0); opacity:0.9; }
  30% { transform: rotate(5deg) translateX(5px); opacity:1; }
  60% { transform: rotate(-3deg) translateX(-2px); opacity:0.95; }
}

/* Scene 1: queen-katharine-interruption */
.scn-queen-katharine-interruption {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 50%, #b8956a 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 60%);
}
.scn-queen-katharine-interruption .bg    { position:absolute; inset:0; background: linear-gradient(135deg, #eeddc0 0%, #c9b089 100%); animation: qki-bg 20s ease-in-out infinite alternate; }
.scn-queen-katharine-interruption .throne{ position:absolute; bottom:20%; left:50%; width:100px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #b0855a 0%, #7a5c38 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: qki-throne 8s ease-in-out infinite; }
.scn-queen-katharine-interruption .queen { position:absolute; bottom:16%; left:38%; width:24px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qki-queen 6s ease-in-out infinite; }
.scn-queen-katharine-interruption .king  { position:absolute; bottom:22%; left:54%; width:30px; height:50px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qki-king 4s ease-in-out infinite alternate; }
.scn-queen-katharine-interruption .curtain-left  { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #8a2a1a 0%, #5a1a0a 100%); border-radius: 0 50% 50% 0; animation: qki-curtain 12s ease-in-out infinite alternate; }
.scn-queen-katharine-interruption .curtain-right { position:absolute; top:0; right:0; width:20%; height:100%; background: linear-gradient(270deg, #8a2a1a 0%, #5a1a0a 100%); border-radius: 50% 0 0 50%; animation: qki-curtain 12s ease-in-out infinite alternate; }
.scn-queen-katharine-interruption .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #b8956a 0%, #8a7050 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; }
.scn-queen-katharine-interruption .light-ray { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,230,150,.3) 0%, transparent 60%); clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); animation: qki-light 7s ease-in-out infinite alternate; }
@keyframes qki-bg     { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes qki-throne { 0%,100% { transform: translateX(-50%) translateY(0) scale(1) } 50% { transform: translateX(-50%) translateY(-2px) scale(1.02) } }
@keyframes qki-queen  { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(0deg) } 50% { transform: translateX(8px) translateY(0) rotate(2deg) } 75% { transform: translateX(12px) translateY(-2px) rotate(0deg) } 100% { transform: translateX(16px) translateY(0) rotate(-2deg) } }
@keyframes qki-king   { 0% { transform: translateX(0) rotate(0) scaleY(1) } 50% { transform: translateX(0) rotate(2deg) scaleY(1.03) } 100% { transform: translateX(0) rotate(0) scaleY(1) } }
@keyframes qki-curtain{ 0% { width:20%; opacity:.9 } 50% { width:22%; opacity:1 } 100% { width:20%; opacity:.85 } }
@keyframes qki-light  { 0% { clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); opacity:.5 } 50% { clip-path: polygon(25% 0, 75% 0, 55% 100%, 45% 100%); opacity:.7 } 100% { clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%); opacity:.5 } }

/* Scene 2: taxation-grievance */
.scn-taxation-grievance {
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a080 50%, #9a7a5a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%);
}
.scn-taxation-grievance .bg   { position:absolute; inset:0; background: linear-gradient(135deg, #e0d0b0 0%, #b8a080 100%); animation: tgr-bg 18s ease-in-out infinite alternate; }
.scn-taxation-grievance .table{ position:absolute; bottom:18%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-taxation-grievance .cardinal{ position:absolute; bottom:22%; left:25%; width:28px; height:48px; background: linear-gradient(180deg, #5a0a0a 0%, #3a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tgr-cardinal 5s ease-in-out infinite; }
.scn-taxation-grievance .king { position:absolute; bottom:24%; left:55%; width:32px; height:52px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tgr-king 7s ease-in-out infinite alternate; }
.scn-taxation-grievance .courtier-a{ position:absolute; bottom:20%; left:40%; width:22px; height:40px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tgr-courtier 9s ease-in-out infinite; }
.scn-taxation-grievance .courtier-b{ position:absolute; bottom:20%; left:68%; width:22px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tgr-courtier 11s ease-in-out infinite reverse; }
.scn-taxation-grievance .document{ position:absolute; bottom:24%; left:38%; width:40px; height:30px; background: linear-gradient(135deg, #f0e0b0 0%, #d0b080 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: tgr-doc 10s ease-in-out infinite alternate; }
.scn-taxation-grievance .shadow{ position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, transparent 100%); animation: tgr-shadow 6s ease-in-out infinite alternate; }
@keyframes tgr-bg       { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes tgr-cardinal  { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes tgr-king      { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes tgr-courtier  { 0% { transform: translateY(0) rotate(0) scaleX(1) } 50% { transform: translateY(-2px) rotate(-1deg) scaleX(.95) } 100% { transform: translateY(0) rotate(2deg) scaleX(1) } }
@keyframes tgr-doc       { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes tgr-shadow    { 0% { opacity:.2 } 50% { opacity:.35 } 100% { opacity:.2 } }

/* Scene 3: king-cancels-tax */
.scn-king-cancels-tax {
  background: linear-gradient(180deg, #f8e8c0 0%, #e0c090 50%, #c8a070 100%), radial-gradient(ellipse at 50% 30%, #fff8d0 0%, transparent 60%);
}
.scn-king-cancels-tax .bg    { position:absolute; inset:0; background: linear-gradient(135deg, #f0d8b0 0%, #d8b890 100%); animation: kct-bg 22s ease-in-out infinite alternate; }
.scn-king-cancels-tax .king  { position:absolute; bottom:22%; left:55%; width:32px; height:52px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kct-king 5s ease-in-out infinite alternate; }
.scn-king-cancels-tax .scroll{ position:absolute; bottom:25%; left:42%; width:40px; height:20px; background: linear-gradient(90deg, #f0e0b0 0%, #d0b080 100%); border-radius: 4px; transform-origin: left center; animation: kct-scroll 8s ease-in-out infinite; }
.scn-king-cancels-tax .table { position:absolute; bottom:20%; left:20%; right:20%; height:6%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2010 100%); border-radius: 10% 10% 0 0; }
.scn-king-cancels-tax .light-glow { position:absolute; top:10%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse, rgba(255,200,80,.4) 0%, transparent 70%); animation: kct-glow 6s ease-in-out infinite alternate; }
.scn-king-cancels-tax .dust-mote  { position:absolute; top:20%; left:45%; width:4px; height:4px; background: rgba(255,220,140,.8); border-radius:50%; filter: blur(1px); animation: kct-dust 15s linear infinite; }
@keyframes kct-bg    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes kct-king  { 0% { transform: translateY(0) rotate(0deg) scaleY(1) } 50% { transform: translateY(-4px) rotate(3deg) scaleY(1.05) } 100% { transform: translateY(0) rotate(0deg) scaleY(1) } }
@keyframes kct-scroll{ 0% { transform: rotate(0deg) scaleX(1) } 25% { transform: rotate(10deg) scaleX(1.1) } 50% { transform: rotate(0deg) scaleX(1) } 75% { transform: rotate(-10deg) scaleX(1.1) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes kct-glow  { 0% { transform: scaleX(.8); opacity:.5 } 50% { transform: scaleX(1.2); opacity:.7 } 100% { transform: scaleX(.8); opacity:.5 } }
@keyframes kct-dust  { 0% { transform: translateY(0) translateX(0) scale(1); opacity:1 } 25% { transform: translateY(-20px) translateX(10px) scale(.8); opacity:.5 } 50% { transform: translateY(-40px) translateX(-5px) scale(1.2); opacity:.8 } 75% { transform: translateY(-60px) translateX(15px) scale(.6); opacity:.3 } 100% { transform: translateY(-80px) translateX(0) scale(0); opacity:0 } }

/* Scene 4: king-orders-pardon */
.scn-king-orders-pardon {
  background: linear-gradient(180deg, #dcd0b0 0%, #b8a078 50%, #8a6a50 100%), radial-gradient(ellipse at 50% 20%, #e8d8b0 0%, transparent 50%);
}
.scn-king-orders-pardon .bg    { position:absolute; inset:0; background: linear-gradient(135deg, #d8c8a0 0%, #b09870 100%); animation: kop-bg 20s ease-in-out infinite alternate; }
.scn-king-orders-pardon .king  { position:absolute; bottom:22%; left:55%; width:34px; height:54px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kop-king 6s ease-in-out infinite alternate; }
.scn-king-orders-pardon .parchment{ position:absolute; bottom:26%; left:40%; width:30px; height:40px; background: linear-gradient(135deg, #f0e0b0 0%, #d0b080 100%); border-radius: 2px; transform-origin: center; animation: kop-parchment 10s ease-in-out infinite; }
.scn-king-orders-pardon .seal  { position:absolute; bottom:28%; left:44%; width:12px; height:12px; background: radial-gradient(circle, #c8553d 0%, #8a2010 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: kop-seal 7s ease-in-out infinite alternate; }
.scn-king-orders-pardon .floor { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #8a6a50 0%, #5a3a2a 100%); border-radius: 60% 60% 0 0 / 30% 30% 0 0; }
.scn-king-orders-pardon .pillar{ position:absolute; top:0; left:10%; width:8%; height:100%; background: linear-gradient(180deg, #b09870 0%, #7a6040 100%); border-radius: 10% 10% 0 0; box-shadow: inset -6px 0 12px rgba(0,0,0,.2); }
.scn-king-orders-pardon .light-beam { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(240,220,160,.25) 0%, transparent 70%); clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%); animation: kop-beam 9s ease-in-out infinite alternate; }
@keyframes kop-bg        { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes kop-king      { 0% { transform: translateY(0) rotate(0deg) scaleY(1) } 50% { transform: translateY(-3px) rotate(2deg) scaleY(1.04) } 100% { transform: translateY(0) rotate(-1deg) scaleY(1) } }
@keyframes kop-parchment { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.05) } 100% { transform: rotate(-3deg) scaleY(1) } }
@keyframes kop-seal      { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(10deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes kop-beam      { 0% { clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%); opacity:.4 } 50% { clip-path: polygon(35% 0, 65% 0, 50% 100%, 50% 100%); opacity:.6 } 100% { clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%); opacity:.4 } }

.scn-buckingham-departure {
  background: linear-gradient(180deg, #6b7a8a 0%, #4b5a6a 40%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-buckingham-departure .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #5a6a7a 80%);
  animation: bd-sky 15s ease-in-out infinite alternate;
}
.scn-buckingham-departure .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: bd-water 20s ease-in-out infinite alternate;
}
.scn-buckingham-departure .barge {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: bd-barge 14s ease-in-out infinite;
}
.scn-buckingham-departure .mast {
  position: absolute; bottom: 48%; left: 50%; width: 4px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: bd-mast 12s ease-in-out infinite alternate;
}
.scn-buckingham-departure .sail {
  position: absolute; bottom: 48%; left: 50%; width: 50px; height: 70px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 60% 40%, rgba(200,180,160,0.6) 0%, rgba(200,180,160,0.2) 70%);
  border-radius: 30% 60% 40% 50% / 50% 40% 60% 50%;
  filter: blur(2px);
  animation: bd-sail 18s ease-in-out infinite alternate;
}
.scn-buckingham-departure .figure-duke {
  position: absolute; bottom: 28%; left: 46%; width: 20px; height: 50px; transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: bd-figure 10s ease-in-out infinite alternate;
}
.scn-buckingham-departure .wave-front {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #2a4a5a 50%, #1a2a3a 100%);
  border-radius: 50% 40% 0 0 / 100% 80% 0 0;
  filter: blur(4px);
  animation: bd-wave 12s ease-in-out infinite alternate;
}
.scn-buckingham-departure .mist {
  position: absolute; top: 10%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,210,220,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: bd-mist 30s linear infinite;
}
@keyframes bd-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes bd-water { 0% { background-position: 0% 0% } 50% { background-position: 10% 5% } 100% { background-position: 0% 0% } }
@keyframes bd-barge { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-0.5deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(0.5deg) } }
@keyframes bd-mast { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-0.5deg) } }
@keyframes bd-sail { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) scaleX(0.95) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes bd-figure { 0% { transform: translateX(calc(-50% - 5px)) } 50% { transform: translateX(calc(-50% + 5px)) } 100% { transform: translateX(-50%) } }
@keyframes bd-wave { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.2) } 100% { transform: translateY(3px) scaleY(0.9) } }
@keyframes bd-mist { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(1.05) } }

.scn-item-axe-edge {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #1a1a0a 100%),
              radial-gradient(ellipse at 40% 60%, #2a2a3a 0%, transparent 70%);
}
.scn-item-axe-edge .bg-depth {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #1a1a1a 0px, #0a0a0a 4px, #1a1a1a 8px);
  opacity: 0.15;
}
.scn-item-axe-edge .axe-blade {
  position: absolute; bottom: 45%; left: 50%; width: 120px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(135deg, #3a3a4a 0%, #6a6a7a 30%, #4a4a5a 60%, #2a2a3a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 60%, 80% 100%, 50% 80%, 20% 100%, 0% 60%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: 0 0 30px 10px rgba(100,100,110,0.2);
  animation: ae-blade 8s ease-in-out infinite alternate;
}
.scn-item-axe-edge .axe-handle {
  position: absolute; bottom: 15%; left: 50%; width: 12px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: ae-handle 12s ease-in-out infinite;
}
.scn-item-axe-edge .blood-drip {
  position: absolute; bottom: 50%; left: 48%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0a 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(94,26,29,0.4);
  animation: ae-drip 5s ease-in-out infinite;
}
.scn-item-axe-edge .shadow-rim {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 30%, rgba(0,0,0,0.6) 70%);
}
.scn-item-axe-edge .metal-glint {
  position: absolute; bottom: 55%; left: 40%; width: 20px; height: 10px;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: ae-glint 4s ease-in-out infinite alternate;
}
.scn-item-axe-edge .dust-motes {
  position: absolute; top: 20%; left: 30%; width: 6px; height: 6px;
  background: rgba(200,200,180,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: ae-dust 16s linear infinite;
}
@keyframes ae-blade { 0% { transform: translateX(-50%) rotate(-3deg) scaleY(1) } 50% { transform: translateX(-50%) rotate(1deg) scaleY(1.02) } 100% { transform: translateX(-50%) rotate(2deg) scaleY(0.98) } }
@keyframes ae-handle { 0%,100% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px) } }
@keyframes ae-drip { 0% { transform: translateY(0); opacity:0.8 } 50% { transform: translateY(25px); opacity:1 } 100% { transform: translateY(0); opacity:0.6 } }
@keyframes ae-glint { 0% { opacity:0.2 } 50% { opacity:0.8 } 100% { opacity:0.3 } }
@keyframes ae-dust { 0% { transform: translate(0,0) scale(1); opacity:0 } 20% { opacity:0.4 } 80% { opacity:0.4 } 100% { transform: translate(100px, -50px) scale(0.5); opacity:0 } }

.scn-buckingham-father-story {
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 40%, #3a2a3a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a4a 0%, transparent 60%);
}
.scn-buckingham-father-story .bg-arch {
  position: absolute; top: 0; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(90deg, transparent 0%, rgba(100,80,70,0.1) 20%, rgba(100,80,70,0.05) 50%, transparent 80%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 0 40px 20px rgba(100,80,70,0.08);
  animation: bf-arch 35s ease-in-out infinite;
}
.scn-buckingham-father-story .pedestal {
  position: absolute; bottom: 15%; left: 50%; width: 80px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
}
.scn-buckingham-father-story .crown-faded {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(135deg, #c8a060 0%, #a08040 50%, #806030 100%);
  clip-path: polygon(10% 40%, 30% 0%, 50% 20%, 70% 0%, 90% 40%, 100% 100%, 0% 100%);
  opacity: 0.25;
  animation: bf-crown 22s ease-in-out infinite alternate;
}
.scn-buckingham-father-story .tapestry {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 45%;
  background: repeating-linear-gradient(90deg, rgba(120,80,60,0.1) 0px, rgba(120,80,60,0.05) 8px, rgba(120,80,60,0.1) 16px);
  filter: blur(3px);
  animation: bf-tapestry 40s linear infinite;
}
.scn-buckingham-father-story .figure-ghost {
  position: absolute; bottom: 18%; left: 44%; width: 24px; height: 60px; transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(60,40,50,0.4) 0%, rgba(40,20,30,0.2) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: bf-ghost 17s ease-in-out infinite alternate;
}
.scn-buckingham-father-story .light-shaft {
  position: absolute; top: 0%; left: 35%; width: 30%; height: 80%;
  background: linear-gradient(180deg, rgba(200,180,150,0.08) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: bf-light 25s ease-in-out infinite alternate;
}
.scn-buckingham-father-story .dust-particles {
  position: absolute; top: 20%; left: 40%; width: 4px; height: 4px;
  background: rgba(200,180,150,0.3);
  border-radius: 50%;
  filter: blur(1px);
  animation: bf-dust 30s linear infinite;
  animation-delay: 2s;
}
@keyframes bf-arch { 0%,100% { opacity:0.3 } 50% { opacity:0.7 } }
@keyframes bf-crown { 0% { transform: translateX(-50%) rotate(-5deg) scale(0.95); opacity:0.2 } 50% { transform: translateX(-50%) rotate(3deg) scale(1.02); opacity:0.3 } 100% { transform: translateX(-50%) rotate(-2deg) scale(0.98); opacity:0.25 } }
@keyframes bf-tapestry { 0% { background-position: 0% 0% } 100% { background-position: 100% 0% } }
@keyframes bf-ghost { 0% { opacity:0.1; transform: translateX(calc(-50% - 3px)) } 50% { opacity:0.4; transform: translateX(calc(-50% + 3px)) translateY(-2px) } 100% { opacity:0.2; transform: translateX(-50%) } }
@keyframes bf-light { 0% { opacity:0.2; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.3; transform: scaleX(0.95) } }
@keyframes bf-dust { 0% { transform: translate(0,0); opacity:0.3 } 50% { transform: translate(30px, -40px); opacity:0.6 } 100% { transform: translate(60px, -80px); opacity:0 } }

.scn-buckingham-final-advice {
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #1a1a1a 100%),
              radial-gradient(ellipse at 50% 80%, #2a3a4a 0%, transparent 60%);
}
.scn-buckingham-final-advice .bg-darkwater {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, #0a0a1a 100%);
}
.scn-buckingham-final-advice .ripple-ring {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 80px; transform: translate(-50%, -50%);
  border: 1px solid rgba(100,130,150,0.3);
  border-radius: 50%;
  animation: ba-ring 8s ease-in-out infinite;
}
.scn-buckingham-final-advice .sinking-hand {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 50px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: ba-hand 14s ease-in-out infinite alternate;
}
.scn-buckingham-final-advice .bubbles-burst {
  position: absolute; bottom: 30%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(100,130,150,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ba-bubbles 6s ease-out infinite;
  animation-delay: 1s;
}
.scn-buckingham-final-advice .water-drips {
  position: absolute; top: 10%; left: 20%; width: 3px; height: 20px;
  background: linear-gradient(180deg, rgba(100,130,150,0.3) 0%, transparent 100%);
  border-radius: 2px;
  animation: ba-drip 9s ease-in-out infinite;
  animation-delay: 3s;
}
.scn-buckingham-final-advice .reflection-shard {
  position: absolute; bottom: 40%; left: 30%; width: 40px; height: 20px;
  background: linear-gradient(135deg, rgba(150,170,190,0.2) 0%, rgba(150,170,190,0.05) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ba-reflect 12s ease-in-out infinite alternate;
}
.scn-buckingham-final-advice .fog-veil {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, rgba(100,120,140,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: ba-fog 25s linear infinite;
}
@keyframes ba-ring { 0% { width:0; height:0; opacity:0.6; border-width:2px } 50% { width:100px; height:100px; opacity:0.2; border-width:1px } 100% { width:120px; height:120px; opacity:0 } }
@keyframes ba-hand { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(-8px) rotate(3deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes ba-bubbles { 0% { transform: translate(0,0) scale(1); opacity:0.5 } 50% { transform: translate(10px, -20px) scale(1.5); opacity:0.2 } 100% { transform: translate(20px, -40px) scale(2); opacity:0 } }
@keyframes ba-drip { 0%,100% { transform: translateY(0); opacity:0.2 } 50% { transform: translateY(30px); opacity:0.5 } }
@keyframes ba-reflect { 0% { opacity:0.1 } 50% { opacity:0.4 } 100% { opacity:0.15 } }
@keyframes ba-fog { 0% { opacity:0.2; transform: scaleX(1) } 50% { opacity:0.4; transform: scaleX(1.1) } 100% { opacity:0.3; transform: scaleX(0.95) } }

.scn-king-defends-cardinal {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4b082 30%, #b8956a 60%, #8a6e4e 100%),
    radial-gradient(ellipse at 80% 20%, #fff4e0 0%, transparent 60%);
}

.scn-king-defends-cardinal .bg-pillars {
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 8%, #ac8b68 8%, #ac8b68 9%, transparent 9%, transparent 16%);
  opacity: 0.3; animation: kdc-pillars 20s ease-in-out infinite alternate;
}
.scn-king-defends-cardinal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #cba874 0%, #8a6e4e 100%);
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.3);
}
.scn-king-defends-cardinal .throne {
  position: absolute; bottom: 18%; left: 46%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #b8864a 0%, #7a5c3a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: rotate(-2deg); animation: kdc-throne 6s ease-in-out infinite;
}
.scn-king-defends-cardinal .king {
  position: absolute; bottom: 23%; left: 44%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: kdc-king 4s ease-in-out infinite alternate;
}
.scn-king-defends-cardinal .cardinal {
  position: absolute; bottom: 22%; right: 30%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: kdc-cardinal 5s ease-in-out infinite alternate;
}
.scn-king-defends-cardinal .shadow-right {
  position: absolute; bottom: 0; right: 0; width: 60%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.2) 100%);
  filter: blur(8px); animation: kdc-shadow 3s ease-in-out infinite alternate;
}
.scn-king-defends-cardinal .light-beam {
  position: absolute; top: 8%; left: 20%; width: 30px; height: 70%;
  background: linear-gradient(180deg, rgba(255,240,200,0.25) 0%, transparent 100%);
  filter: blur(12px); transform: rotate(5deg); animation: kdc-light 7s ease-in-out infinite alternate;
}

@keyframes kdc-pillars { 0% { opacity:0.25; transform:scaleX(1); } 50% { opacity:0.35; transform:scaleX(1.02); } 100% { opacity:0.25; transform:scaleX(1); } }
@keyframes kdc-throne { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1.5deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes kdc-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes kdc-cardinal { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes kdc-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes kdc-light { 0% { opacity:0.4; transform: rotate(4deg) translateX(-2px); } 50% { opacity:0.6; transform: rotate(6deg) translateX(2px); } 100% { opacity:0.4; transform: rotate(4deg) translateX(-2px); } }

/* scene 2 */
.scn-king-explains-conscience {
  background: 
    linear-gradient(180deg, #faf0d0 0%, #e6d3a8 50%, #ccb88c 100%),
    radial-gradient(ellipse at 30% 30%, #fff4e0 0%, transparent 70%);
}
.scn-king-explains-conscience .bg-paneling {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0%, transparent 12%, #b89a6a 12%, #b89a6a 12.5%, transparent 12.5%, transparent 24%);
  opacity: 0.2; animation: kec-panel 30s ease-in-out infinite;
}
.scn-king-explains-conscience .table {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #b8864a 0%, #7a5c3a 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  transform: perspective(400px) rotateX(5deg);
}
.scn-king-explains-conscience .king-seated {
  position: absolute; bottom: 28%; left: 32%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: kec-king 8s ease-in-out infinite alternate;
}
.scn-king-explains-conscience .bishop {
  position: absolute; bottom: 27%; right: 32%; width: 26px; height: 46px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: kec-bishop 10s ease-in-out infinite alternate;
}
.scn-king-explains-conscience .document {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 14px;
  background: #f5e6c8; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: kec-doc 14s ease-in-out infinite;
}
.scn-king-explains-conscience .candle {
  position: absolute; bottom: 30%; left: 60%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 100%);
  border-radius: 20% 20% 10% 10%; animation: kec-candle 5s ease-in-out infinite alternate;
}
.scn-king-explains-conscience .candle-glow {
  position: absolute; bottom: 40%; left: 58%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,214,120,0.6) 0%, transparent 70%);
  filter: blur(6px); animation: kec-glow 4s ease-in-out infinite alternate;
}

@keyframes kec-panel { 0% { opacity:0.15; } 50% { opacity:0.25; } 100% { opacity:0.15; } }
@keyframes kec-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes kec-bishop { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-0.3deg); } 100% { transform: translateY(0) rotate(0.3deg); } }
@keyframes kec-doc { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } }
@keyframes kec-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes kec-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.5; transform: scale(1); } }

/* scene 3 */
.scn-item-commission-papers {
  background: 
    linear-gradient(180deg, #e8d8b8 0%, #c4a87a 40%, #a07a50 100%),
    radial-gradient(ellipse at 70% 30%, #fff4e0 0%, transparent 60%);
}
.scn-item-commission-papers .bg-arches {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0%, transparent 10%, #b89a6a 10%, #b89a6a 10.5%, transparent 10.5%, transparent 20%);
  opacity: 0.25; animation: icp-arches 18s ease-in-out infinite alternate;
}
.scn-item-commission-papers .king-standing {
  position: absolute; bottom: 22%; left: 35%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: icp-king 3.5s ease-in-out infinite alternate;
}
.scn-item-commission-papers .cardinal-left {
  position: absolute; bottom: 24%; left: 22%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: icp-cardinalL 4s ease-in-out infinite alternate;
}
.scn-item-commission-papers .cardinal-right {
  position: absolute; bottom: 24%; right: 22%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center; animation: icp-cardinalR 4.2s ease-in-out infinite alternate;
}
.scn-item-commission-papers .papers {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 30px;
  background: #f5e6c8; border-radius: 2px; box-shadow: 0 3px 6px rgba(0,0,0,0.4);
  animation: icp-papers 6s ease-in-out infinite;
}
.scn-item-commission-papers .crown {
  position: absolute; top: 8%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 12px rgba(255,215,0,0.4);
  animation: icp-crown 5s ease-in-out infinite alternate;
}
.scn-item-commission-papers .floor-tile {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-conic-gradient(#8a6e4e 0% 25%, #a08060 0% 50%) 0 0 / 30px 30px;
  opacity: 0.15; animation: icp-floor 8s linear infinite;
}

@keyframes icp-arches { 0% { opacity:0.2; transform:scaleY(1); } 50% { opacity:0.3; transform:scaleY(1.01); } 100% { opacity:0.2; transform:scaleY(1); } }
@keyframes icp-king { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1.5deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes icp-cardinalL { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-0.8deg); } 100% { transform: translateY(0) rotate(0.8deg); } }
@keyframes icp-cardinalR { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.8deg); } 100% { transform: translateY(0) rotate(-0.8deg); } }
@keyframes icp-papers { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(3deg) translateX(3px); } 75% { transform: rotate(-2deg) translateX(-2px); } }
@keyframes icp-crown { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes icp-floor { 0% { background-position: 0 0; } 100% { background-position: 30px 30px; } }

/* scene 4 */
.scn-queen-apartment-song {
  background: 
    linear-gradient(180deg, #fef8e8 0%, #f0e0c0 50%, #dcc8a0 100%),
    radial-gradient(ellipse at 50% 50%, #fffcf0 0%, transparent 70%);
}
.scn-queen-apartment-song .bg-window {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 100%);
  clip-path: inset(5% 10% 30% 10% round 10px);
  opacity: 0.2; animation: qas-window 15s ease-in-out infinite alternate;
}
.scn-queen-apartment-song .queen {
  position: absolute; bottom: 15%; left: 20%; width: 34px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: qas-queen 6s ease-in-out infinite alternate;
}
.scn-queen-apartment-song .woman-lute {
  position: absolute; bottom: 15%; left: 40%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: qas-womanL 8s ease-in-out infinite alternate;
}
.scn-queen-apartment-song .woman-work {
  position: absolute; bottom: 15%; right: 20%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: qas-womanW 7s ease-in-out infinite alternate;
}
.scn-queen-apartment-song .lute {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #b8864a 0%, #8a6030 100%);
  border-radius: 30% 30% 20% 20%; transform: rotate(-15deg);
  animation: qas-lute 10s ease-in-out infinite alternate;
}
.scn-queen-apartment-song .candle-desk {
  position: absolute; bottom: 20%; right: 35%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 100%);
  border-radius: 20% 20% 10% 10%; animation: qas-candle 4s ease-in-out infinite alternate;
}
.scn-queen-apartment-song .soft-light {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,235,180,0.15) 0%, transparent 70%);
  animation: qas-light 12s ease-in-out infinite alternate;
}

@keyframes qas-window { 0% { opacity:0.15; filter:brightness(0.95); } 50% { opacity:0.25; filter:brightness(1.05); } 100% { opacity:0.15; filter:brightness(0.95); } }
@keyframes qas-queen { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes qas-womanL { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.3deg); } 100% { transform: translateY(0) rotate(-0.3deg); } }
@keyframes qas-womanW { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-0.3deg); } 100% { transform: translateY(0) rotate(0.3deg); } }
@keyframes qas-lute { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(-12deg) scaleX(1.02); } 100% { transform: rotate(-15deg) scaleX(1); } }
@keyframes qas-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.03) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes qas-light { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-york-place-hall {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 30%, #8a6a3a 60%, #5a3a1a 100%),
    radial-gradient(ellipse at 50% 0%, #c8a050 0%, #3a2a1a 80%);
}
.scn-york-place-hall .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  animation: yph-wall 12s ease-in-out infinite alternate;
}
.scn-york-place-hall .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.4);
}
.scn-york-place-hall .state-canopy {
  position: absolute; top: 10%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  transform: perspective(400px) rotateX(5deg);
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  animation: yph-canopy 6s ease-in-out infinite alternate;
}
.scn-york-place-hall .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 4%;
  box-shadow: 0 6px 10px rgba(0,0,0,.6);
}
.scn-york-place-hall .candle-left,
.scn-york-place-hall .candle-right {
  position: absolute; bottom: 37%; width: 4px; height: 18px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a050 50%, #8a6a3a 100%);
  border-radius: 2px;
}
.scn-york-place-hall .candle-left {
  left: 30%;
  box-shadow: 0 0 12px 8px rgba(200,160,80,.5);
  animation: yph-candle 2s ease-in-out infinite alternate;
}
.scn-york-place-hall .candle-right {
  right: 30%;
  box-shadow: 0 0 16px 10px rgba(200,160,80,.4);
  animation: yph-candle 2.3s ease-in-out infinite alternate-reverse;
}
.scn-york-place-hall .curtain-left,
.scn-york-place-hall .curtain-right {
  position: absolute; top: 0; width: 15%; height: 80%;
  background: linear-gradient(180deg, #6a2a1a 0%, #4a1a0a 100%);
  filter: blur(1px);
}
.scn-york-place-hall .curtain-left { left: 0; border-radius: 0 60% 0 0; animation: yph-curtain 8s ease-in-out infinite alternate; }
.scn-york-place-hall .curtain-right { right: 0; border-radius: 60% 0 0 0; animation: yph-curtain 8s ease-in-out infinite alternate-reverse; }
.scn-york-place-hall .cardinal-silhouette {
  position: absolute; bottom: 26%; left: 48%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: yph-figure 6s ease-in-out infinite;
}
@keyframes yph-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes yph-canopy { 0% { transform: perspective(400px) rotateX(5deg) translateY(0) } 50% { transform: perspective(400px) rotateX(4deg) translateY(-2px) } 100% { transform: perspective(400px) rotateX(5deg) translateY(0) } }
@keyframes yph-candle { 0% { transform: scaleY(1) scaleX(1); opacity: .8 } 50% { transform: scaleY(1.05) scaleX(1.02); opacity: 1; box-shadow: 0 0 16px 12px rgba(200,160,80,.6) } 100% { transform: scaleY(.98) scaleX(1); opacity: .85 } }
@keyframes yph-curtain { 0% { transform: translateX(0) skewX(0) } 50% { transform: translateX(3px) skewX(2deg) } 100% { transform: translateX(0) skewX(0) } }
@keyframes yph-figure { 0% { transform: rotate(3deg) translateX(0) } 50% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(3deg) translateX(0) } }

.scn-item-wine-bowl {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #5a3a1a 40%, #3a2a0a 100%),
    radial-gradient(circle at 50% 60%, #c8a050 0%, transparent 70%);
}
.scn-item-wine-bowl .wooden-table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 6%;
  box-shadow: 0 8px 14px rgba(0,0,0,.6);
}
.scn-item-wine-bowl .wine-bowl {
  position: absolute; bottom: 32%; left: 50%; width: 30%; height: 18%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #c8a050 0%, #6a3a1a 60%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5);
  animation: iwb-bowl 4s ease-in-out infinite alternate;
}
.scn-item-wine-bowl .wine-surface {
  position: absolute; bottom: 40%; left: 50%; width: 28%; height: 6%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #a04020 0%, #5a1a0a 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(160,64,32,.5);
  animation: iwb-surface 3s ease-in-out infinite;
}
.scn-item-wine-bowl .wine-splash {
  position: absolute; bottom: 46%; left: 50%; width: 10%; height: 10%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c05030 0%, transparent 60%);
  border-radius: 50%;
  animation: iwb-splash 1.5s ease-in-out infinite;
}
.scn-item-wine-bowl .hand-left,
.scn-item-wine-bowl .hand-right {
  position: absolute; bottom: 32%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
}
.scn-item-wine-bowl .hand-left { left: 22%; transform: rotate(20deg); animation: iwb-hand-l 3s ease-in-out infinite; }
.scn-item-wine-bowl .hand-right { right: 22%; transform: rotate(-20deg); animation: iwb-hand-r 3s ease-in-out infinite 1.5s; }
.scn-item-wine-bowl .background-drape {
  position: absolute; top: 10%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a2a1a 0%, transparent 100%);
  filter: blur(8px);
  animation: iwb-drape 12s ease-in-out infinite alternate;
}
.scn-item-wine-bowl .candle-glow {
  position: absolute; top: 5%; left: 50%; width: 10%; height: 10%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0d080 0%, transparent 70%);
  box-shadow: 0 0 40px 20px rgba(240,208,128,.4);
  animation: iwb-glow 3s ease-in-out infinite alternate;
}
@keyframes iwb-bowl { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes iwb-surface { 0% { width: 28%; height: 6%; opacity: .8 } 50% { width: 30%; height: 7%; opacity: 1 } 100% { width: 28%; height: 6%; opacity: .8 } }
@keyframes iwb-splash { 0% { transform: translateX(-50%) scale(0.5); opacity: .6 } 50% { transform: translateX(-50%) scale(1.2); opacity: 1 } 100% { transform: translateX(-50%) scale(0.5); opacity: .6 } }
@keyframes iwb-hand-l { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(18deg) translateY(-2px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes iwb-hand-r { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-18deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes iwb-drape { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes iwb-glow { 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) } }

.scn-masquers-arrival {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #5a3a2a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 20%, #c8a050 0%, transparent 70%);
}
.scn-masquers-arrival .hall-arch {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 4px 20px rgba(0,0,0,.4);
}
.scn-masquers-arrival .doorway-darkness {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 60%, #1a0a00 0%, #0a0500 100%);
  border-radius: 50%;
  animation: ma-dark 6s ease-in-out infinite alternate;
}
.scn-masquers-arrival .masquer-figure-1,
.scn-masquers-arrival .masquer-figure-2,
.scn-masquers-arrival .masquer-figure-3 {
  position: absolute; bottom: 25%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
}
.scn-masquers-arrival .masquer-figure-1 { left: 25%; animation: ma-enter 4s ease-in-out infinite; }
.scn-masquers-arrival .masquer-figure-2 { left: 44%; animation: ma-enter 4s ease-in-out infinite 0.3s; }
.scn-masquers-arrival .masquer-figure-3 { left: 63%; animation: ma-enter 4s ease-in-out infinite 0.6s; }
.scn-masquers-arrival .shepherd-staff {
  position: absolute; bottom: 28%; left: 48%; width: 2px; height: 25%;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a2a0a 100%);
  transform: rotate(10deg);
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: ma-staff 3s ease-in-out infinite;
}
.scn-masquers-arrival .torch-flare {
  position: absolute; top: 10%; left: 40%; width: 8%; height: 15%;
  background: radial-gradient(circle, #f0c060 0%, #c08030 30%, transparent 70%);
  box-shadow: 0 0 30px 20px rgba(240,192,96,.3);
  animation: ma-torch 2s ease-in-out infinite alternate;
}
.scn-masquers-arrival .scattered-petals {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 5%;
  background: repeating-linear-gradient(90deg, #c8553d 0px, #c8553d 4px, transparent 4px, transparent 10px);
  filter: blur(1px);
  animation: ma-petals 8s linear infinite;
}
@keyframes ma-dark { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ma-enter { 0% { transform: translateX(-10px) rotate(-2deg); opacity: .4 } 25% { transform: translateX(0) rotate(0); opacity: 1 } 50% { transform: translateX(5px) rotate(1deg); opacity: 1 } 75% { transform: translateX(0) rotate(0); opacity: 1 } 100% { transform: translateX(10px) rotate(2deg); opacity: .4 } }
@keyframes ma-staff { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes ma-torch { 0% { transform: scale(1); opacity: .7 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(1); opacity: .8 } }
@keyframes ma-petals { 0% { background-position: 0 0 } 100% { background-position: -80px 0 } }

.scn-king-meets-anne {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #6a4a2a 40%, #4a3a1a 100%),
    radial-gradient(ellipse at 50% 30%, #c8a050 0%, transparent 70%);
}
.scn-king-meets-anne .chamber-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-king-meets-anne .king-silhouette,
.scn-king-meets-anne .anne-silhouette {
  position: absolute; bottom: 20%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-king-meets-anne .king-silhouette { left: 38%; transform: rotate(-5deg); animation: kma-king 5s ease-in-out infinite; }
.scn-king-meets-anne .anne-silhouette { right: 38%; transform: rotate(5deg); animation: kma-anne 5s ease-in-out infinite; }
.scn-king-meets-anne .kiss-glow {
  position: absolute; bottom: 42%; left: 50%; width: 10%; height: 10%;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c080 0%, transparent 60%);
  box-shadow: 0 0 30px 15px rgba(240,192,128,.5);
  animation: kma-glow 3s ease-in-out infinite alternate;
}
.scn-king-meets-anne .banquet-table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 6%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
}
.scn-king-meets-anne .floating-torch {
  position: absolute; top: 8%; left: 48%; width: 6%; height: 12%;
  background: radial-gradient(circle, #f0d060 0%, #c08030 50%, transparent 80%);
  box-shadow: 0 0 40px 20px rgba(240,208,96,.3);
  animation: kma-torch 2.5s ease-in-out infinite alternate;
}
.scn-king-meets-anne .wine-goblet {
  position: absolute; bottom: 22%; left: 50%; width: 6%; height: 10%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a050 0%, #6a3a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: kma-goblet 4s ease-in-out infinite;
}
@keyframes kma-king { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes kma-anne { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes kma-glow { 0% { opacity: .6; transform: translateX(-50%) scale(1) } 50% { opacity: 1; transform: translateX(-50%) scale(1.3) } 100% { opacity: .7; transform: translateX(-50%) scale(1) } }
@keyframes kma-torch { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.1) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes kma-goblet { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }

/* queen-defends-her-life */
.scn-queen-defends-her-life {
  background:
    linear-gradient(180deg, #e8d8b8 0%, #c8b898 50%, #9a7a5a 100%),
    radial-gradient(ellipse at 50% 20%, rgba(255,240,200,0.6) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-queen-defends-her-life .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #b8a888 0%, #d8c8a8 40%, #c0b090 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
}
.scn-queen-defends-her-life .window-sill {
  position: absolute; bottom: 40%; left: 20%; width: 30%; height: 4px;
  background: #7a5a3a;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-queen-defends-her-life .window-light {
  position: absolute; bottom: 40%; left: 22%; width: 24%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,230,180,0.9) 0%, rgba(255,230,180,0.3) 60%, transparent 100%);
  border-radius: 10% 10% 0 0;
  animation: qd-light 8s ease-in-out infinite alternate;
}
.scn-queen-defends-her-life .queen {
  position: absolute; bottom: 12%; left: 45%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #a06040 0%, #603020 100%);
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: qd-queen 6s ease-in-out infinite;
}
.scn-queen-defends-her-life .queen-arm {
  position: absolute; bottom: 40%; left: 48%; width: 12px; height: 30px;
  background: #803020;
  border-radius: 20% 40% 20% 40% / 40% 20% 40% 20%;
  transform-origin: 50% 100%;
  animation: qd-arm 1.5s ease-in-out infinite alternate;
}
.scn-queen-defends-her-life .shadow {
  position: absolute; bottom: 8%; left: 40%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: qd-shadow 6s ease-in-out infinite;
}
.scn-queen-defends-her-life .dust-mote {
  position: absolute; width: 4px; height: 4px;
  background: rgba(255,240,200,0.8);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-queen-defends-her-life .mote-1 {
  top: 25%; left: 30%;
  animation: qd-mote1 12s linear infinite;
}
.scn-queen-defends-her-life .mote-2 {
  top: 30%; left: 60%;
  animation: qd-mote2 18s linear infinite;
}
@keyframes qd-light {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(0.95); }
}
@keyframes qd-queen {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes qd-arm {
  0% { transform: rotate(-30deg); }
  100% { transform: rotate(10deg); }
}
@keyframes qd-shadow {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.2); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes qd-mote1 {
  0% { transform: translateY(0) translateX(0); opacity: 0.8; }
  25% { transform: translateY(-20px) translateX(10px); opacity: 0.5; }
  50% { transform: translateY(-40px) translateX(-5px); opacity: 0.2; }
  75% { transform: translateY(-60px) translateX(15px); opacity: 0.6; }
  100% { transform: translateY(-80px) translateX(0); opacity: 0; }
}
@keyframes qd-mote2 {
  0% { transform: translateY(0) translateX(0); opacity: 0.7; }
  33% { transform: translateY(-30px) translateX(-10px); opacity: 0.4; }
  66% { transform: translateY(-60px) translateX(8px); opacity: 0.2; }
  100% { transform: translateY(-90px) translateX(0); opacity: 0; }
}

/* queen-relents-slightly */
.scn-queen-relents-slightly {
  background:
    linear-gradient(180deg, #f5f0e0 0%, #e8dcc8 40%, #d0c4b0 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255,245,230,0.7) 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-queen-relents-slightly .wall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #ded4c0 0%, #e8e0d0 50%, #d8ceb8 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.05);
}
.scn-queen-relents-slightly .arch {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 60%;
  border: 6px solid #c8b898;
  border-bottom: none;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
}
.scn-queen-relents-slightly .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #d0c4b0 0%, #b8a890 100%);
  border-top: 2px solid #c0b098;
}
.scn-queen-relents-slightly .queen-seated {
  position: absolute; bottom: 12%; left: 30%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #b88060 0%, #a07050 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qr-queen 10s ease-in-out infinite;
}
.scn-queen-relents-slightly .servant {
  position: absolute; bottom: 10%; left: 55%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #806050 0%, #604030 100%);
  border-radius: 30% 40% 30% 30% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qr-servant 12s ease-in-out infinite;
}
.scn-queen-relents-slightly .sunbeam {
  position: absolute; top: 0; left: 20%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(255,250,230,0.4) 0%, transparent 80%);
  transform: skewX(-10deg);
  animation: qr-sunbeam 15s ease-in-out infinite alternate;
}
.scn-queen-relents-slightly .cushion {
  position: absolute; bottom: 14%; left: 28%; width: 30px; height: 10px;
  background: #b09880;
  border-radius: 40% 60% 30% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
@keyframes qr-queen {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(1deg); }
  66% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes qr-servant {
  0% { transform: translateX(0) scale(1); }
  25% { transform: translateX(2px) scale(1.01); }
  50% { transform: translateX(0) scale(1); }
  75% { transform: translateX(-2px) scale(0.99); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes qr-sunbeam {
  0% { opacity: 0.3; transform: skewX(-10deg) translateX(-5px); }
  50% { opacity: 0.6; transform: skewX(-8deg) translateX(0); }
  100% { opacity: 0.4; transform: skewX(-12deg) translateX(5px); }
}

/* nobles-plot-cardinal-downfall */
.scn-nobles-plot-cardinal-downfall {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-nobles-plot-cardinal-downfall .bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 30%, rgba(0,0,0,0.5) 100%);
}
.scn-nobles-plot-cardinal-downfall .table {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 8px;
  background: #5a4a3a;
  border-radius: 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-nobles-plot-cardinal-downfall .candle {
  position: absolute; bottom: 26%; left: 48%; width: 6px; height: 18px;
  background: #c8b898;
  border-radius: 2px;
  box-shadow: 0 0 20px 6px #ffa060, 0 0 40px 12px rgba(255,160,96,0.4);
  animation: np-candle 3s ease-in-out infinite alternate;
}
.scn-nobles-plot-cardinal-downfall .noble-left {
  position: absolute; bottom: 8%; left: 20%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 40% 30% 30% / 50% 60% 40% 40%;
  transform: perspective(200px) rotateY(10deg);
  animation: np-noble-left 6s ease-in-out infinite;
}
.scn-nobles-plot-cardinal-downfall .noble-right {
  position: absolute; bottom: 8%; right: 20%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 30% 30% 30% / 60% 50% 40% 40%;
  transform: perspective(200px) rotateY(-10deg);
  animation: np-noble-right 7s ease-in-out infinite;
}
.scn-nobles-plot-cardinal-downfall .noble-center {
  position: absolute; bottom: 8%; left: 45%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 35% 35% 30% 30% / 55% 55% 40% 40%;
  transform: perspective(200px) rotateY(5deg);
  animation: np-noble-center 8s ease-in-out infinite;
}
.scn-nobles-plot-cardinal-downfall .shadow-floor {
  position: absolute; bottom: 6%; left: 15%; width: 70%; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
}
@keyframes np-candle {
  0% { opacity: 0.8; transform: scaleY(1) scaleX(1); box-shadow: 0 0 20px 6px #ffa060, 0 0 40px 12px rgba(255,160,96,0.4); }
  50% { opacity: 1; transform: scaleY(1.1) scaleX(0.9); box-shadow: 0 0 25px 8px #ffb070, 0 0 50px 16px rgba(255,176,112,0.5); }
  100% { opacity: 0.9; transform: scaleY(0.95) scaleX(1.05); box-shadow: 0 0 18px 5px #ff9050, 0 0 36px 10px rgba(255,144,80,0.3); }
}
@keyframes np-noble-left {
  0% { transform: perspective(200px) rotateY(10deg) translateY(0); }
  25% { transform: perspective(200px) rotateY(12deg) translateY(-2px); }
  50% { transform: perspective(200px) rotateY(8deg) translateY(0); }
  75% { transform: perspective(200px) rotateY(15deg) translateY(-1px); }
  100% { transform: perspective(200px) rotateY(10deg) translateY(0); }
}
@keyframes np-noble-right {
  0% { transform: perspective(200px) rotateY(-10deg) translateY(0); }
  33% { transform: perspective(200px) rotateY(-13deg) translateY(-1px); }
  66% { transform: perspective(200px) rotateY(-7deg) translateY(0); }
  100% { transform: perspective(200px) rotateY(-10deg) translateY(0); }
}
@keyframes np-noble-center {
  0% { transform: perspective(200px) rotateY(5deg) translateY(0); }
  50% { transform: perspective(200px) rotateY(7deg) translateY(-3px); }
  100% { transform: perspective(200px) rotateY(3deg) translateY(0); }
}

/* cardinal-moody */
.scn-cardinal-moody {
  background:
    linear-gradient(180deg, #c8b898 0%, #a89070 50%, #887058 100%),
    radial-gradient(ellipse at 30% 40%, rgba(255,240,200,0.5) 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-cardinal-moody .bg-panel {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #a09070 0%, #b8a080 50%, #a09070 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
}
.scn-cardinal-moody .desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 5px;
  background: #6a5a4a;
  border-radius: 2px;
  box-shadow: 0 3px 10px rgba(0,0,0,0.4);
}
.scn-cardinal-moody .letter {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 14px;
  background: #f5f0e0;
  border: 1px solid #c0b098;
  transform: rotate(-5deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: cm-letter 4s ease-in-out infinite alternate;
}
.scn-cardinal-moody .cardinal-figure {
  position: absolute; bottom: 8%; left: 42%; width: 45px; height: 75px;
  background: linear-gradient(180deg, #702030 0%, #501018 100%);
  border-radius: 30% 40% 30% 30% / 50% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-cardinal 8s ease-in-out infinite;
}
.scn-cardinal-moody .cardinal-hand {
  position: absolute; bottom: 40%; left: 48%; width: 10px; height: 20px;
  background: #d0b898;
  border-radius: 40% 20% 40% 20%;
  transform-origin: 50% 100%;
  animation: cm-hand 2s ease-in-out infinite alternate;
}
.scn-cardinal-moody .cross {
  position: absolute; top: 10%; right: 20%; width: 4px; height: 40px;
  background: #8a7a6a;
  border-radius: 1px;
  box-shadow: 0 0 8px rgba(0,0,0,0.3);
  animation: cm-cross 12s ease-in-out infinite;
}
.scn-cardinal-moody .shadow-diagonal {
  position: absolute; bottom: 0; left: 30%; width: 50%; height: 100%;
  background: linear-gradient(135deg, transparent 30%, rgba(0,0,0,0.2) 50%, transparent 70%);
  pointer-events: none;
  animation: cm-shadow 10s ease-in-out infinite alternate;
}
@keyframes cm-letter {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-7deg) translateY(0); }
}
@keyframes cm-cardinal {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-2deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cm-hand {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(20deg); }
}
@keyframes cm-cross {
  0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
  50% { transform: translateY(-3px) scaleY(1.02); opacity: 1; }
  100% { transform: translateY(0) scaleY(0.98); opacity: 0.8; }
}
@keyframes cm-shadow {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.5; transform: translateX(10px); }
  100% { opacity: 0.3; transform: translateX(-5px); }
}

/* king-warns-cranmer */
.scn-king-warns-cranmer {
  background:
    radial-gradient(ellipse at 60% 40%, #4a2e1a 0%, #210f07 70%),
    linear-gradient(180deg, #2b1a0d 0%, #0d0705 100%);
}
.scn-king-warns-cranmer .wall { position:absolute; inset:0 0 30% 0; background:linear-gradient(180deg, #4a3520 0%, #2a1a0c 100%); border-radius:20% 20% 0 0; }
.scn-king-warns-cranmer .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1f1108 0%, #3a2212 100%); }
.scn-king-warns-cranmer .throne { position:absolute; bottom:20%; left:40%; width:80px; height:110px; background:linear-gradient(180deg, #5e3c1e 0%, #2e1a0a 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow:0 4px 12px rgba(0,0,0,.6); animation:kwc-throne 8s ease-in-out infinite; }
.scn-king-warns-cranmer .king { position:absolute; bottom:35%; left:42%; width:40px; height:70px; background:linear-gradient(180deg,#1e130a 0%,#0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:kwc-king 6s ease-in-out infinite; }
.scn-king-warns-cranmer .cranmer { position:absolute; bottom:20%; left:58%; width:30px; height:50px; background:linear-gradient(180deg,#2a1a0e 0%,#120a05 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation:kwc-cranmer 5s ease-in-out infinite; }
.scn-king-warns-cranmer .lamp { position:absolute; top:25%; left:20%; width:12px; height:20px; background:radial-gradient(circle at 50% 30%, #ffb84d 0%, #b87a2e 100%); border-radius:50%; filter:blur(2px); animation:kwc-lamp 3s ease-in-out infinite alternate; }
.scn-king-warns-cranmer .glow { position:absolute; top:20%; left:15%; width:80px; height:60px; background:radial-gradient(ellipse, rgba(255,180,50,.3) 0%, transparent 70%); animation:kwc-glow 4s ease-in-out infinite alternate; }
@keyframes kwc-throne { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes kwc-king { 0%{transform:rotate(-2deg)} 50%{transform:rotate(1deg) translateY(-1px)} 100%{transform:rotate(0)} }
@keyframes kwc-cranmer { 0%{transform:translateX(0) skewX(1deg)} 50%{transform:translateX(3px) skewX(-1deg)} 100%{transform:translateX(0) skewX(0)} }
@keyframes kwc-lamp { 0%{opacity:.7;box-shadow:0 0 8px 4px #c08030;} 50%{opacity:1;box-shadow:0 0 16px 8px #e69940;} 100%{opacity:.8;box-shadow:0 0 10px 5px #c08030;} }
@keyframes kwc-glow { 0%{opacity:.4;transform:scale(1);} 50%{opacity:.7;transform:scale(1.1);} 100%{opacity:.5;transform:scale(.95);} }

/* king-gives-ring */
.scn-king-gives-ring {
  background:
    radial-gradient(ellipse at 50% 60%, #4a321a 0%, #1a0e05 70%),
    linear-gradient(180deg, #2d1c0e 0%, #0f0803 100%);
}
.scn-king-gives-ring .bg-dark { position:absolute; inset:0; background:linear-gradient(180deg, #3a2514 0%, #1a0e06 100%); }
.scn-king-gives-ring .table { position:absolute; bottom:15%; left:25%; right:25%; height:20%; background:linear-gradient(180deg, #4e3020 0%, #2a180e 100%); border-radius:20% 20% 30% 30% / 40% 40% 20% 20%; }
.scn-king-gives-ring .hand-ring { position:absolute; bottom:35%; left:40%; width:50px; height:60px; background:linear-gradient(180deg,#3a2212 0%,#1a0e06 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation:kgr-hand 7s ease-in-out infinite; }
.scn-king-gives-ring .ring { position:absolute; bottom:48%; left:44%; width:14px; height:14px; background:radial-gradient(circle at 60% 40%, #f0c060 0%, #b08030 60%); border-radius:50%; box-shadow:0 0 12px 4px #d4a040; animation:kgr-ring 5s ease-in-out infinite; }
.scn-king-gives-ring .candle { position:absolute; top:20%; left:60%; width:8px; height:25px; background:linear-gradient(180deg, #f5d0a0 0%, #c09060 100%); border-radius:30% 30% 20% 20%; animation:kgr-candle 9s ease-in-out infinite; }
.scn-king-gives-ring .shine { position:absolute; top:30%; left:45%; width:40px; height:40px; background:radial-gradient(circle, rgba(255,200,80,.4) 0%, transparent 70%); animation:kgr-shine 4s ease-in-out infinite alternate; }
@keyframes kgr-hand { 0%{transform:rotate(-3deg) translateY(0);} 50%{transform:rotate(2deg) translateY(-2px);} 100%{transform:rotate(-1deg) translateY(0);} }
@keyframes kgr-ring { 0%{transform:scale(1) rotate(0);opacity:.8;} 50%{transform:scale(1.1) rotate(15deg);opacity:1;} 100%{transform:scale(.95) rotate(0);opacity:.9;} }
@keyframes kgr-candle { 0%{transform:translateY(0);opacity:.8;} 50%{transform:translateY(-1px);opacity:1;} 100%{transform:translateY(0);opacity:.9;} }
@keyframes kgr-shine { 0%{opacity:.3;transform:scale(.8);} 50%{opacity:.6;transform:scale(1.2);} 100%{opacity:.4;transform:scale(.9);} }

/* item-ring-appeal */
.scn-item-ring-appeal {
  background:
    radial-gradient(ellipse at 40% 50%, #3e2a18 0%, #0f0804 80%),
    linear-gradient(180deg, #261a0e 0%, #0a0502 100%);
}
.scn-item-ring-appeal .backdrop { position:absolute; inset:0; background:linear-gradient(180deg, #2f1d10 0%, #140c06 100%); }
.scn-item-ring-appeal .desk { position:absolute; bottom:10%; left:30%; right:30%; height:25%; background:linear-gradient(180deg, #4a3220 0%, #28180d 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; }
.scn-item-ring-appeal .ring-item { position:absolute; bottom:30%; left:45%; width:16px; height:16px; background:radial-gradient(circle at 50% 50%, #f2c060 0%, #b08030 60%); border-radius:50%; box-shadow:0 0 14px 6px #c09040; animation:ira-ring 6s ease-in-out infinite; }
.scn-item-ring-appeal .appeal-hand { position:absolute; bottom:20%; left:55%; width:40px; height:50px; background:linear-gradient(180deg,#3a2212 0%,#1a0e06 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation:ira-hand 8s ease-in-out infinite; }
.scn-item-ring-appeal .scroll { position:absolute; bottom:15%; left:25%; width:60px; height:20px; background:linear-gradient(180deg, #d4b88a 0%, #9c7e5a 100%); border-radius:20% 20% 30% 30% / 40% 40% 20% 20%; transform:rotate(-15deg); animation:ira-scroll 12s ease-in-out infinite; }
.scn-item-ring-appeal .light-spot { position:absolute; top:20%; left:40%; width:100px; height:80px; background:radial-gradient(ellipse, rgba(255,200,80,.25) 0%, transparent 70%); animation:ira-light 5s ease-in-out infinite alternate; }
@keyframes ira-ring { 0%{transform:translateY(0) rotate(0);opacity:.8;} 50%{transform:translateY(-3px) rotate(10deg);opacity:1;} 100%{transform:translateY(0) rotate(0);opacity:.9;} }
@keyframes ira-hand { 0%{transform:translateX(0) rotate(-2deg);} 50%{transform:translateX(4px) rotate(2deg);} 100%{transform:translateX(0) rotate(0);} }
@keyframes ira-scroll { 0%{opacity:.7;transform:rotate(-15deg) translateY(0);} 50%{opacity:1;transform:rotate(-10deg) translateY(-2px);} 100%{opacity:.8;transform:rotate(-18deg) translateY(0);} }
@keyframes ira-light { 0%{opacity:.3;transform:scale(1);} 50%{opacity:.6;transform:scale(1.15);} 100%{opacity:.4;transform:scale(.9);} }

/* child-birth-announced */
.scn-child-birth-announced {
  background:
    radial-gradient(ellipse at 60% 30%, #c08a4a 0%, #3a2010 70%),
    linear-gradient(180deg, #4a2a12 0%, #1a0e06 100%);
}
.scn-child-birth-announced .chamber { position:absolute; inset:0; background:linear-gradient(180deg, #5a3820 0%, #241408 100%); }
.scn-child-birth-announced .door { position:absolute; bottom:20%; left:10%; width:80px; height:100px; background:linear-gradient(180deg, #704830 0%, #3a2212 100%); border-radius:10% 10% 5% 5% / 20% 20% 10% 10%; box-shadow:inset 4px 0 8px rgba(0,0,0,.5); animation:cba-door 10s ease-in-out infinite; }
.scn-child-birth-announced .old-lady { position:absolute; bottom:22%; left:12%; width:35px; height:60px; background:linear-gradient(180deg,#5a3a28 0%,#2a1810 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:cba-old-lady 4s ease-in-out infinite; }
.scn-child-birth-announced .king-figure { position:absolute; bottom:20%; left:60%; width:45px; height:80px; background:linear-gradient(180deg,#3a1e0e 0%,#1a0a04 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:cba-king 7s ease-in-out infinite; }
.scn-child-birth-announced .baby-bundle { position:absolute; bottom:25%; left:35%; width:30px; height:25px; background:linear-gradient(180deg, #f5e0c0 0%, #d4b08a 100%); border-radius:50% 50% 40% 40% / 60% 60% 50% 50%; box-shadow:0 2px 6px rgba(0,0,0,.3); animation:cba-baby 3s ease-in-out infinite; }
.scn-child-birth-announced .rays { position:absolute; top:10%; left:30%; right:30%; height:40%; background:linear-gradient(180deg, rgba(255,215,130,.4) 0%, transparent 100%); clip-path:polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation:cba-rays 6s ease-in-out infinite alternate; }
.scn-child-birth-announced .warm-glow { position:absolute; top:20%; left:25%; width:150px; height:150px; background:radial-gradient(circle, rgba(255,200,80,.15) 0%, transparent 60%); animation:cba-warm 5s ease-in-out infinite alternate; }
@keyframes cba-door { 0%{opacity:.8;transform:scaleX(1);} 50%{opacity:1;transform:scaleX(1.02);} 100%{opacity:.9;transform:scaleX(1);} }
@keyframes cba-old-lady { 0%{transform:translateX(0) rotate(-2deg);} 50%{transform:translateX(5px) rotate(2deg);} 100%{transform:translateX(0) rotate(0);} }
@keyframes cba-king { 0%{transform:translateY(0) rotate(-1deg);} 50%{transform:translateY(-3px) rotate(1deg);} 100%{transform:translateY(0) rotate(0);} }
@keyframes cba-baby { 0%{transform:scale(1);opacity:.85;} 50%{transform:scale(1.05);opacity:1;} 100%{transform:scale(.98);opacity:.9;} }
@keyframes cba-rays { 0%{opacity:.3;transform:scaleY(.8);} 50%{opacity:.6;transform:scaleY(1.1);} 100%{opacity:.4;transform:scaleY(.9);} }
@keyframes cba-warm { 0%{opacity:.4;transform:scale(1);} 50%{opacity:.7;transform:scale(1.2);} 100%{opacity:.5;transform:scale(.95);} }

/* Scene: surveyor-testifies */
.scn-surveyor-testifies {
  background: linear-gradient(180deg, #d4c9a0 0%, #b8a87a 40%, #8a7a5a 100%), radial-gradient(ellipse at 60% 20%, #fff5d0 0%, transparent 60%);
}
.scn-surveyor-testifies .bg-room {
  position: absolute; inset: 0; background: linear-gradient(45deg, #c0b090 0%, #d4c9a0 50%, #a89878 100%);
  animation: sv-bg 20s ease-in-out infinite;
}
.scn-surveyor-testifies .window-light {
  position: absolute; left: 12%; top: 8%; width: 80px; height: 120px;
  background: linear-gradient(135deg, #fff8e0 0%, #d4c090 50%, transparent 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 0 40px 20px rgba(255,248,224,0.3);
  animation: sv-light 5s ease-in-out infinite alternate;
}
.scn-surveyor-testifies .witness {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a3020 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sv-witness 3s ease-in-out infinite;
}
.scn-surveyor-testifies .judge {
  position: absolute; bottom: 30%; right: 30%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform: scaleX(-1);
  animation: sv-judge 6s ease-in-out infinite;
}
.scn-surveyor-testifies .desk {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 12px;
  background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-surveyor-testifies .shadow-cast {
  position: absolute; bottom: 12%; left: 35%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 60% 100%, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: sv-shadow 4s ease-in-out infinite;
}
.scn-surveyor-testifies .candle-glow {
  position: absolute; left: 20%; bottom: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd770 0%, #b08030 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,215,112,0.5);
  animation: sv-candle 2s ease-in-out infinite alternate;
}
.scn-surveyor-testifies .papers {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #f0e4c8 0%, #d4c094 100%);
  border-radius: 2px; transform: rotate(-5deg);
  animation: sv-papers 5s ease-in-out infinite;
}
@keyframes sv-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sv-light { 0% { opacity: 0.7; box-shadow: 0 0 30px 10px rgba(255,248,224,0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,248,224,0.5); } 100% { opacity: 0.75; box-shadow: 0 0 35px 15px rgba(255,248,224,0.3); } }
@keyframes sv-witness { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sv-judge { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes sv-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(1); } }
@keyframes sv-candle { 0% { opacity: 0.8; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.85; transform: scale(0.95); } }
@keyframes sv-papers { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-7deg) translateY(0); } }

/* Scene: prophecy-nicholas-hopkins */
.scn-prophecy-nicholas-hopkins {
  background: linear-gradient(180deg, #b8a878 0%, #8a7a5a 50%, #5a4a3a 100%), radial-gradient(ellipse at 30% 40%, #e0d0a0 0%, transparent 70%);
}
.scn-prophecy-nicholas-hopkins .bg-chamber {
  position: absolute; inset: 0; background: linear-gradient(135deg, #a89870 0%, #c8b890 50%, #908060 100%);
  animation: nh-bg 25s ease-in-out infinite;
}
.scn-prophecy-nicholas-hopkins .monk {
  position: absolute; bottom: 25%; left: 35%; width: 45px; height: 90px;
  background: linear-gradient(180deg, #4a3a20 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: nh-monk 4s ease-in-out infinite;
}
.scn-prophecy-nicholas-hopkins .king {
  position: absolute; bottom: 28%; right: 25%; width: 55px; height: 95px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: nh-king 6s ease-in-out infinite;
}
.scn-prophecy-nicholas-hopkins .altar {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-prophecy-nicholas-hopkins .candle {
  position: absolute; left: 42%; bottom: 38%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d070 0%, #b08030 100%);
  border-radius: 4px; box-shadow: 0 0 12px 4px #f0d070;
  animation: nh-candle 3s ease-in-out infinite alternate;
}
.scn-prophecy-nicholas-hopkins .candle-halo {
  position: absolute; left: 42%; bottom: 38%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(240,208,112,0.6) 0%, transparent 100%);
  animation: nh-halo 3s ease-in-out infinite alternate;
}
.scn-prophecy-nicholas-hopkins .window-arch {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 150px;
  background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: nh-window 12s ease-in-out infinite;
}
.scn-prophecy-nicholas-hopkins .step {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 6px;
  background: linear-gradient(90deg, transparent, #7a6a4a 30%, #8a7a5a 70%, transparent);
}
.scn-prophecy-nicholas-hopkins .scroll {
  position: absolute; bottom: 20%; left: 50%; width: 25px; height: 15px;
  background: linear-gradient(135deg, #f0e0b0 0%, #d0c090 100%);
  border-radius: 2px; transform: rotate(15deg);
  animation: nh-scroll 8s ease-in-out infinite;
}
@keyframes nh-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nh-monk { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nh-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nh-candle { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.9; transform: scale(1); } }
@keyframes nh-halo { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 0.9; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes nh-window { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.35; } }
@keyframes nh-scroll { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }

/* Scene: buckingham-threat-to-king */
.scn-buckingham-threat-to-king {
  background: linear-gradient(180deg, #c8b898 0%, #a09070 50%, #706050 100%), radial-gradient(ellipse at 50% 30%, #e8d8b0 0%, transparent 70%);
}
.scn-buckingham-threat-to-king .bg-hall {
  position: absolute; inset: 0; background: linear-gradient(45deg, #b0a080 0%, #d0c0a0 50%, #908060 100%);
  animation: bt-bg 22s ease-in-out infinite;
}
.scn-buckingham-threat-to-king .buckingham {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 85px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bt-buck 3.5s ease-in-out infinite;
}
.scn-buckingham-threat-to-king .king {
  position: absolute; bottom: 28%; right: 30%; width: 55px; height: 95px;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  animation: bt-king 5s ease-in-out infinite;
}
.scn-buckingham-threat-to-king .table {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 10px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-buckingham-threat-to-king .map {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #e0d0a0 0%, #c0b080 100%);
  border-radius: 4px; transform: rotate(-3deg);
  animation: bt-map 7s ease-in-out infinite;
}
.scn-buckingham-threat-to-king .torch {
  position: absolute; left: 15%; bottom: 60%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #f0d070 0%, #b08030 100%);
  border-radius: 5px; box-shadow: 0 0 20px 8px #f0d070;
  animation: bt-torch 2s ease-in-out infinite alternate;
}
.scn-buckingham-threat-to-king .torch-glow {
  position: absolute; left: 12%; bottom: 55%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(240,208,112,0.5) 0%, transparent 100%);
  animation: bt-glow 2.5s ease-in-out infinite alternate;
}
.scn-buckingham-threat-to-king .stone-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #706050 0%, #504030 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
@keyframes bt-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bt-buck { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bt-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bt-map { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes bt-torch { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes bt-glow { 0% { opacity: 0.4; transform: scale(0.9); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }

/* Scene: item-knife-dagger */
.scn-item-knife-dagger {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a1010 50%, #0a0606 100%), radial-gradient(ellipse at 50% 60%, #4a2a2a 0%, transparent 70%);
}
.scn-item-knife-dagger .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2020 0%, #1a1010 100%);
  animation: kd-bg 30s ease-in-out infinite;
}
.scn-item-knife-dagger .table-top {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-item-knife-dagger .knife-blade {
  position: absolute; left: 50%; bottom: 35%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 50%, #404040 100%);
  border-radius: 4px 4px 2px 2px;
  transform: translateX(-50%) rotate(-15deg);
  animation: kd-blade 4s ease-in-out infinite;
}
.scn-item-knife-dagger .knife-handle {
  position: absolute; left: 50%; bottom: 25%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 4px;
  transform: translateX(-50%) rotate(-15deg);
  animation: kd-handle 4s ease-in-out infinite;
}
.scn-item-knife-dagger .hand {
  position: absolute; left: 55%; bottom: 28%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: kd-hand 3s ease-in-out infinite;
}
.scn-item-knife-dagger .blood-pool {
  position: absolute; left: 40%; bottom: 18%; width: 40px; height: 15px;
  background: radial-gradient(ellipse, #5e1a1d 0%, transparent 100%);
  border-radius: 50%;
  animation: kd-blood 6s ease-in-out infinite;
}
.scn-item-knife-dagger .light-glint {
  position: absolute; left: 45%; bottom: 60%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffffff 0%, #c0c0c0 50%);
  border-radius: 50%; box-shadow: 0 0 10px 5px rgba(255,255,255,0.5);
  animation: kd-glint 2s ease-in-out infinite alternate;
}
@keyframes kd-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes kd-blade { 0% { transform: translateX(-50%) rotate(-15deg) translateY(0); } 50% { transform: translateX(-50%) rotate(-10deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(-20deg) translateY(0); } }
@keyframes kd-handle { 0% { transform: translateX(-50%) rotate(-15deg); } 50% { transform: translateX(-50%) rotate(-10deg); } 100% { transform: translateX(-50%) rotate(-20deg); } }
@keyframes kd-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes kd-blood { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.5; transform: scale(0.95); } }
@keyframes kd-glint { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.8); } }

/* Scene: cardinal-advises-cromwell (cac) */
.scn-cardinal-advises-cromwell {
  background:
    linear-gradient(180deg, #c8b89a 0%, #a88a6a 50%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 30%, #e0c8a0 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-cardinal-advises-cromwell .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d4c0a8 0%, #b49878 100%);
  animation: cac-wall 12s ease-in-out infinite alternate;
}
.scn-cardinal-advises-cromwell .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5038 0%, #4a3828 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3);
}
.scn-cardinal-advises-cromwell .window {
  position: absolute; top: 12%; left: 60%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b0d0e0 0%, #90b8c8 100%);
  border: 6px solid #5a3a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.3);
  animation: cac-window 8s ease-in-out infinite alternate;
  opacity: 0.7;
}
.scn-cardinal-advises-cromwell .desk {
  position: absolute; bottom: 28%; left: 25%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-cardinal-advises-cromwell .chair {
  position: absolute; bottom: 18%; left: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10%; transform: skewX(-5deg);
  box-shadow: 2px 0 6px rgba(0,0,0,.5);
}
.scn-cardinal-advises-cromwell .figure-cromwell {
  position: absolute; bottom: 22%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cac-walk 6s ease-in-out infinite;
}
.scn-cardinal-advises-cromwell .figure-cardinal {
  position: absolute; bottom: 22%; left: 55%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cac-bow 4s ease-in-out infinite;
}
.scn-cardinal-advises-cromwell .glow-candle {
  position: absolute; bottom: 32%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,208,128,.6);
  animation: cac-candle 2s ease-in-out infinite alternate;
}
.scn-cardinal-advises-cromwell .book {
  position: absolute; bottom: 29%; left: 28%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
}
@keyframes cac-wall { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes cac-window { 0% { opacity: .6; transform: scaleY(1) } 50% { opacity: .8; transform: scaleY(1.02) } 100% { opacity: .7; transform: scaleY(1) } }
@keyframes cac-walk { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-4px) translateY(-2px) rotate(-2deg) } }
@keyframes cac-bow { 0%,100% { transform: rotate(0) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } }
@keyframes cac-candle { 0% { box-shadow: 0 0 16px 6px rgba(255,208,128,.5); opacity: .8 } 50% { box-shadow: 0 0 30px 12px rgba(255,208,128,.8); opacity: 1 } 100% { box-shadow: 0 0 20px 8px rgba(255,208,128,.6); opacity: .9 } }

/* Scene: cardinal-hears-anne-married (cha) */
.scn-cardinal-hears-anne-married {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 50%, #3a2a4e 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a5e 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-cardinal-hears-anne-married .bg-dark-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  animation: cha-wall 14s ease-in-out infinite alternate;
}
.scn-cardinal-hears-anne-married .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 15% 15% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.6);
}
.scn-cardinal-hears-anne-married .table {
  position: absolute; bottom: 28%; left: 35%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-cardinal-hears-anne-married .candle {
  position: absolute; bottom: 33%; left: 40%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0c8a0 0%, #c0a080 100%);
  border-radius: 2px 2px 0 0; box-shadow: 0 -4px 10px rgba(255,200,100,.4);
  animation: cha-candle 3s ease-in-out infinite alternate;
}
.scn-cardinal-hears-anne-married .figure-cardinal-dark {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #2a1a3e 0%, #0a0a1e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cha-slump 5s ease-in-out infinite;
}
.scn-cardinal-hears-anne-married .figure-messenger {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: cha-stand 4s ease-in-out infinite;
}
.scn-cardinal-hears-anne-married .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, #000 0%, transparent 70%);
  opacity: .5; animation: cha-shadow 8s ease-in-out infinite alternate;
}
.scn-cardinal-hears-anne-married .crest {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 50%; box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: cha-crest 10s ease-in-out infinite alternate;
}
@keyframes cha-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes cha-candle { 0% { transform: scaleY(1); opacity: .8; box-shadow: 0 -4px 8px rgba(255,200,100,.3) } 50% { transform: scaleY(1.05); opacity: 1; box-shadow: 0 -6px 14px rgba(255,200,100,.6) } 100% { transform: scaleY(1); opacity: .85; box-shadow: 0 -4px 10px rgba(255,200,100,.4) } }
@keyframes cha-slump { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(2deg) } 60% { transform: translateY(0) rotate(0) } }
@keyframes cha-stand { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cha-shadow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.1) } 100% { opacity: .45; transform: scaleX(1) } }
@keyframes cha-crest { 0% { transform: rotate(0) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(0) } }

/* Scene: street-anne-coronation-wait (sac) */
.scn-street-anne-coronation-wait {
  background:
    linear-gradient(180deg, #f0e8c8 0%, #d8c8a0 40%, #b8a888 100%),
    radial-gradient(ellipse at 50% 20%, #fff8e0 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-street-anne-coronation-wait .sky-sunny {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8e0f0 0%, #a8c8d8 100%);
  animation: sac-sky 20s ease-in-out infinite alternate;
}
.scn-street-anne-coronation-wait .arch {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #c0a888 0%, #a08868 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.2);
}
.scn-street-anne-coronation-wait .building-left {
  position: absolute; bottom: 25%; left: 5%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #d0b898 0%, #b09878 100%);
  border-radius: 4px; box-shadow: inset -4px 0 8px rgba(0,0,0,.15);
}
.scn-street-anne-coronation-wait .building-right {
  position: absolute; bottom: 25%; right: 5%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #d0b898 0%, #b09878 100%);
  border-radius: 4px; box-shadow: inset 4px 0 8px rgba(0,0,0,.15);
}
.scn-street-anne-coronation-wait .cobblestones {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #988878 0%, #786858 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.2);
}
.scn-street-anne-coronation-wait .figure-gentleman-a {
  position: absolute; bottom: 12%; left: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: sac-bob-a 5s ease-in-out infinite;
}
.scn-street-anne-coronation-wait .figure-gentleman-b {
  position: absolute; bottom: 12%; left: 48%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: sac-bob-b 5s ease-in-out infinite 1s;
}
.scn-street-anne-coronation-wait .banner {
  position: absolute; top: 5%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #b87878 0%, #987070 100%); /* dusty rose */
  border-radius: 0 0 20% 20%; transform-origin: top center;
  animation: sac-banner 8s ease-in-out infinite alternate;
}
.scn-street-anne-coronation-wait .sun-glow {
  position: absolute; top: 0; right: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe8c0 40%, transparent 70%);
  opacity: .5; animation: sac-sun 12s ease-in-out infinite alternate;
}
@keyframes sac-sky { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes sac-bob-a { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(0) } }
@keyframes sac-bob-b { 0%,100% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-2px) rotate(-1deg) } 60% { transform: translateY(0) rotate(0) } }
@keyframes sac-banner { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0) } }
@keyframes sac-sun { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .6; transform: scale(1.05) } 100% { opacity: .45; transform: scale(1) } }

/* Scene: coin-sceptre-rod (csr) */
.scn-coin-sceptre-rod {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 40%, #b8a888 100%),
    radial-gradient(ellipse at 50% 10%, #fff8e0 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-coin-sceptre-rod .sky-procession {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c0d8e8 0%, #a0c0d0 100%);
  animation: csr-sky 15s ease-in-out infinite alternate;
}
.scn-coin-sceptre-rod .foreground-step {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a09080 0%, #807060 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.2);
}
.scn-coin-sceptre-rod .sceptre {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 100px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 4px 4px 0 0; transform-origin: bottom center;
  animation: csr-sway 6s ease-in-out infinite;
}
.scn-coin-sceptre-rod .rod {
  position: absolute; bottom: 35%; left: 55%; width: 6px; height: 90px;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  border-radius: 3px 3px 0 0; transform-origin: bottom center;
  animation: csr-sway 6s ease-in-out infinite 0.5s;
}
.scn-coin-sceptre-rod .arm-sceptre {
  position: absolute; bottom: 38%; left: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: csr-arm 7s ease-in-out infinite;
}
.scn-coin-sceptre-rod .arm-rod {
  position: absolute; bottom: 38%; left: 55%; width: 18px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: csr-arm 7s ease-in-out infinite 1s;
}
.scn-coin-sceptre-rod .crown {
  position: absolute; bottom: 60%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f0d080 0%, #c0a060 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: csr-crown 8s ease-in-out infinite alternate;
}
.scn-coin-sceptre-rod .crowd-silhouette {
  position: absolute; bottom: 22%; left: 10%; width: 80%; height: 30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 0 0; opacity: .6;
  animation: csr-crowd 10s ease-in-out infinite alternate;
}
.scn-coin-sceptre-rod .sun-sparkle {
  position: absolute; top: 5%; left: 45%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe8c0 30%, transparent 60%);
  animation: csr-sparkle 4s ease-in-out infinite;
}
@keyframes csr-sky { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes csr-sway { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes csr-arm { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes csr-crown { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes csr-crowd { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .7; transform: scaleX(1.02) } 100% { opacity: .55; transform: scaleX(1) } }
@keyframes csr-sparkle { 0%,100% { opacity: .3; transform: scale(1) } 50% { opacity: .7; transform: scale(1.2) } }

.scn-crowd-at-christening { background: linear-gradient(180deg, #f0e6c8 0%, #e8d4a8 60%, #c8b080 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 80%); }
.scn-crowd-at-christening .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d4c4a0 0%, #e8dcc4 50%, #c8b890 100%); }
.scn-crowd-at-christening .door { position:absolute; bottom:30%; left:20%; width:100px; height:140px; background: #6a5a4a; border-radius:20% 20% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: cac-door 4s ease-in-out infinite; }
.scn-crowd-at-christening .porter { position:absolute; bottom:30%; left:24%; width:28px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: cac-porter 3s ease-in-out infinite; }
.scn-crowd-at-christening .crowd-1 { position:absolute; bottom:30%; left:50%; width:24px; height:60px; background: #3a2a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cac-crowd 5s ease-in-out infinite; }
.scn-crowd-at-christening .crowd-2 { position:absolute; bottom:30%; left:55%; width:22px; height:55px; background: #4a3a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cac-crowd 5s ease-in-out 0.5s infinite; }
.scn-crowd-at-christening .crowd-3 { position:absolute; bottom:30%; left:60%; width:20px; height:50px; background: #2a3a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cac-crowd 5s ease-in-out 1s infinite; }
.scn-crowd-at-christening .banner { position:absolute; bottom:45%; left:70%; width:40px; height:60px; background: linear-gradient(180deg, #a0461a 0%, #c8553d 100%); border-radius:0 0 10% 10%; transform-origin: top; animation: cac-banner 6s ease-in-out infinite; }
.scn-crowd-at-christening .light-ray { position:absolute; top:0; left:10%; width:80%; height:100%; background: linear-gradient(135deg, rgba(255,240,200,.15) 0%, transparent 60%); animation: cac-light 8s ease-in-out infinite alternate; }
@keyframes cac-door { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.2) } }
@keyframes cac-porter { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes cac-crowd { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes cac-banner { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) translateY(2px) } }
@keyframes cac-light { 0% { opacity:0.3 } 100% { opacity:0.7 } }

.scn-crowd-mayhem { background: linear-gradient(180deg, #c8a060 0%, #b89050 40%, #a08040 100%), radial-gradient(ellipse at 50% 30%, #f0c860 0%, transparent 80%); }
.scn-crowd-mayhem .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #8a7a5a 0%, #a09070 50%, #7a6a4a 100%); }
.scn-crowd-mayhem .brazier { position:absolute; bottom:20%; left:45%; width:30px; height:80px; background: #3a2a1a; border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: cmh-brazier 4s ease-in-out infinite; }
.scn-crowd-mayhem .nose { position:absolute; bottom:50%; left:46%; width:16px; height:20px; background: radial-gradient(circle, #c8553d 0%, #a0461a 70%); border-radius:50%; transform: translateX(-50%); animation: cmh-nose 3s ease-in-out infinite; }
.scn-crowd-mayhem .crowd-a { position:absolute; bottom:20%; left:55%; width:22px; height:60px; background: #4a3a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cmh-recoil 5s ease-in-out infinite; }
.scn-crowd-mayhem .crowd-b { position:absolute; bottom:20%; left:60%; width:20px; height:55px; background: #3a4a3a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: cmh-recoil 5s ease-in-out 0.8s infinite; }
.scn-crowd-mayhem .spark-1 { position:absolute; bottom:55%; left:42%; width:6px; height:6px; background: #f0c860; border-radius:50%; box-shadow: 0 0 10px 2px #f0c860; animation: cmh-spark 2s ease-in-out infinite; }
.scn-crowd-mayhem .spark-2 { position:absolute; bottom:60%; left:48%; width:4px; height:4px; background: #f0a040; border-radius:50%; box-shadow: 0 0 8px 2px #f0a040; animation: cmh-spark 2.3s ease-in-out 0.5s infinite; }
.scn-crowd-mayhem .fire-drake { position:absolute; bottom:25%; left:30%; width:60px; height:30px; background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%); border-radius:40% 40% 20% 20%; transform: rotate(-15deg); animation: cmh-drake 7s ease-in-out infinite; }
@keyframes cmh-brazier { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) translateY(-2px) } }
@keyframes cmh-nose { 0%,100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 12px 4px #c8553d; } 50% { transform: translateX(-50%) scale(1.2); box-shadow: 0 0 24px 8px #c8553d; } }
@keyframes cmh-recoil { 0%,100% { transform: translateX(0) } 40% { transform: translateX(-6px) } 60% { transform: translateX(-2px) } }
@keyframes cmh-spark { 0%,100% { transform: translate(0,0) scale(0.8) } 50% { transform: translate(-8px,-12px) scale(1.5) } }
@keyframes cmh-drake { 0%,100% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-4px) } }

.scn-princess-elizabeth-christened { background: linear-gradient(180deg, #2a3a5a 0%, #3a4a7a 40%, #5a5a8a 100%), radial-gradient(ellipse at 50% 20%, #8a8ab0 0%, transparent 70%); }
.scn-princess-elizabeth-christened .hall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #4a4a6a 0%, #6a6a8a 50%, #4a4a6a 100%); }
.scn-princess-elizabeth-christened .canopy { position:absolute; top:10%; left:30%; width:120px; height:80px; background: linear-gradient(180deg, #702243 0%, #5e1a1d 100%); border-radius:40% 40% 10% 10%; box-shadow: 0 10px 20px rgba(0,0,0,.4); transform-origin: top; animation: pec-canopy 6s ease-in-out infinite; }
.scn-princess-elizabeth-christened .font { position:absolute; bottom:30%; left:50%; width:50px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #c8b080 0%, #a08860 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 30px 6px rgba(255,215,0,.3); animation: pec-font 4s ease-in-out infinite; }
.scn-princess-elizabeth-christened .noble-left { position:absolute; bottom:20%; left:30%; width:30px; height:90px; background: #3a2a4a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pec-noble 8s ease-in-out infinite; }
.scn-princess-elizabeth-christened .noble-right { position:absolute; bottom:20%; right:30%; width:30px; height:90px; background: #4a3a3a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pec-noble 8s ease-in-out 1s infinite; }
.scn-princess-elizabeth-christened .bowls { position:absolute; bottom:35%; left:35%; width:20px; height:15px; background: radial-gradient(ellipse at 50% 30%, #f0d080 0%, #c8a060 80%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 10px 2px #f0d080; animation: pec-bowls 5s ease-in-out infinite; }
.scn-princess-elizabeth-christened .trumpet { position:absolute; bottom:45%; left:60%; width:40px; height:8px; background: #c8a060; border-radius:50%; transform: rotate(-20deg); animation: pec-trumpet 10s ease-in-out infinite; }
.scn-princess-elizabeth-christened .halo { position:absolute; top:5%; left:45%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,215,0,.3) 0%, transparent 70%); border-radius:50%; animation: pec-halo 7s ease-in-out infinite alternate; }
@keyframes pec-canopy { 0%,100% { transform: rotate(-1deg) scaleY(1) } 50% { transform: rotate(1deg) scaleY(1.02) } }
@keyframes pec-font { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } }
@keyframes pec-noble { 0%,100% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } }
@keyframes pec-bowls { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } }
@keyframes pec-trumpet { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } }
@keyframes pec-halo { 0% { opacity:0.4 } 100% { opacity:0.8 } }

.scn-item-standing-bowls { background: linear-gradient(180deg, #e8dcc4 0%, #d4c4a4 60%, #c8b080 100%), radial-gradient(ellipse at 50% 50%, #fff8e0 0%, transparent 80%); }
.scn-item-standing-bowls .bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #d8c8a8 0%, #e8dcc4 50%, #d0c0a0 100%); }
.scn-item-standing-bowls .bowl-left { position:absolute; bottom:35%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #f0d080 0%, #c8a060 60%, #a08850 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.2); transform-origin: bottom; animation: isb-bowl 6s ease-in-out infinite; }
.scn-item-standing-bowls .bowl-right { position:absolute; bottom:35%; right:30%; width:80px; height:50px; background: linear-gradient(180deg, #e8c870 0%, #b89050 60%, #987848 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,.2); transform-origin: bottom; animation: isb-bowl 6s ease-in-out 1s infinite; }
.scn-item-standing-bowls .hand-left { position:absolute; bottom:30%; left:34%; width:30px; height:50px; background: #d4b090; border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: isb-hand 5s ease-in-out infinite; }
.scn-item-standing-bowls .hand-right { position:absolute; bottom:30%; right:34%; width:30px; height:50px; background: #c8a888; border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: isb-hand 5s ease-in-out 0.8s infinite; }
.scn-item-standing-bowls .glow { position:absolute; top:20%; left:40%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 50%, rgba(255,215,0,.25) 0%, transparent 70%); animation: isb-glow 4s ease-in-out infinite alternate; }
.scn-item-standing-bowls .cloth { position:absolute; bottom:20%; left:15%; width:70%; height:40px; background: linear-gradient(180deg, #702243 0%, #5e1a1d 100%); border-radius:60% 40% 10% 10% / 80% 70% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.3); animation: isb-cloth 8s ease-in-out infinite; }
@keyframes isb-bowl { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes isb-hand { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } }
@keyframes isb-glow { 0% { opacity:0.3 } 100% { opacity:0.7 } }
@keyframes isb-cloth { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-blackfriars-trial-setup {
  background: 
    radial-gradient(ellipse at 50% 40%, #6a4a2a 0%, transparent 50%),
    linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #2a1a0a 100%);
}
.scn-blackfriars-trial-setup .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); 
  animation: bt-bg 12s ease-in-out infinite alternate;
}
.scn-blackfriars-trial-setup .columns {
  position: absolute; top: 10%; bottom: 20%; left: 10%; width: 8%; 
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 6% 6% 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3); 
  animation: bt-columns 6s ease-in-out infinite;
}
.scn-blackfriars-trial-setup .columns + .columns { left: 82%; }
.scn-blackfriars-trial-setup .throne {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); width: 30%; height: 45%;
  background: linear-gradient(180deg, #7a6a3a 0%, #5a4a2a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5); 
  animation: bt-throne 8s ease-in-out infinite alternate;
}
.scn-blackfriars-trial-setup .verger-left,
.scn-blackfriars-trial-setup .verger-right {
  position: absolute; bottom: 20%; width: 5%; height: 30%; 
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
}
.scn-blackfriars-trial-setup .verger-left { left: 25%; animation: bt-verger 10s ease-in-out infinite; }
.scn-blackfriars-trial-setup .verger-right { left: 70%; animation: bt-verger 10s ease-in-out infinite reverse; }
.scn-blackfriars-trial-setup .scribe {
  position: absolute; bottom: 22%; left: 42%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: bt-bow 6s ease-in-out infinite;
}
.scn-blackfriars-trial-setup .bishop {
  position: absolute; bottom: 23%; left: 52%; width: 5%; height: 28%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: bt-bow 8s ease-in-out infinite 2s;
}
.scn-blackfriars-trial-setup .banner {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 20%; height: 18%;
  background: linear-gradient(180deg, #b87878 0%, #8a5858 100%); border-radius: 0 0 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bt-banner 20s ease-in-out infinite alternate;
}
@keyframes bt-bg { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes bt-columns { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes bt-throne { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(0.98); } }
@keyframes bt-verger { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg) translateX(2px); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-2deg) translateX(-2px); } 100% { transform: rotate(0deg); } }
@keyframes bt-bow { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px) scale(1.02); } }
@keyframes bt-banner { 0% { transform: translateX(-50%) skewX(0deg); } 50% { transform: translateX(-50%) skewX(2deg); } 100% { transform: translateX(-50%) skewX(-2deg); } }

.scn-queen-katharine-plea {
  background: 
    radial-gradient(ellipse at 50% 60%, #8a6a3a 0%, transparent 60%),
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
}
.scn-queen-katharine-plea .queen-figure {
  position: absolute; bottom: 20%; left: 30%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #7a4a3a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: qk-queen 8s ease-in-out infinite;
}
.scn-queen-katharine-plea .king-shadow {
  position: absolute; bottom: 22%; left: 60%; width: 10%; height: 42%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  opacity: 0.7;
  animation: qk-king 12s ease-in-out infinite alternate;
}
.scn-queen-katharine-plea .throne {
  position: absolute; bottom: 18%; left: 55%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: qk-throne 6s ease-in-out infinite alternate;
}
.scn-queen-katharine-plea .window {
  position: absolute; top: 10%; left: 15%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #c0a060 0%, transparent 70%), linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border: 4px solid #4a3a2a; border-radius: 8% 8% 12% 12%;
  animation: qk-window 14s ease-in-out infinite;
}
.scn-queen-katharine-plea .tapestry {
  position: absolute; top: 20%; left: 80%; width: 15%; height: 55%;
  background: linear-gradient(180deg, #5a2a2a 0%, #3a1a1a 100%); border-radius: 6% 6% 8% 8%;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.4);
  animation: qk-tapestry 10s ease-in-out infinite alternate;
}
.scn-queen-katharine-plea .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
}
.scn-queen-katharine-plea .candle {
  position: absolute; bottom: 35%; left: 48%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10% 10% 0 0;
  box-shadow: 0 0 16px 4px #c08040;
  animation: qk-candle 3s ease-in-out infinite alternate;
}
@keyframes qk-queen { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes qk-king { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.03); opacity:0.8; } 100% { transform: scale(0.97); opacity:0.7; } }
@keyframes qk-throne { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes qk-window { 0% { box-shadow: inset 0 0 10px rgba(192,160,96,0.3); } 50% { box-shadow: inset 0 0 30px rgba(192,160,96,0.5); } 100% { box-shadow: inset 0 0 15px rgba(192,160,96,0.2); } }
@keyframes qk-tapestry { 0% { transform: scale(1); } 50% { transform: scale(1.01) skewX(0.5deg); } 100% { transform: scale(1); } }
@keyframes qk-candle { 0% { box-shadow: 0 0 12px 2px #c08040, 0 0 20px 4px #a06020; height:12%; } 50% { box-shadow: 0 0 20px 6px #e0a060, 0 0 30px 8px #c08040; height:13%; } 100% { box-shadow: 0 0 14px 3px #c08040, 0 0 22px 5px #a06020; height:12%; } }

.scn-queen-challenges-cardinal {
  background: 
    radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #3a2a1a 100%);
}
.scn-queen-challenges-cardinal .queen-figure {
  position: absolute; bottom: 20%; left: 25%; width: 10%; height: 42%;
  background: linear-gradient(180deg, #7a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  animation: qc-queen 7s ease-in-out infinite;
}
.scn-queen-challenges-cardinal .cardinal-figure {
  position: absolute; bottom: 20%; right: 25%; width: 10%; height: 44%;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: qc-cardinal 9s ease-in-out infinite;
}
.scn-queen-challenges-cardinal .table {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); width: 40%; height: 8%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 4% 4% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: qc-table 6s ease-in-out infinite;
}
.scn-queen-challenges-cardinal .candle-low {
  position: absolute; bottom: 40%; left: 48%; width: 3%; height: 10%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10% 10% 0 0;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: qc-candle 3s ease-in-out infinite alternate;
}
.scn-queen-challenges-cardinal .shadow-shape {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #0a0000 0%, transparent 70%);
  opacity: 0.6;
  animation: qc-shadow 12s ease-in-out infinite alternate;
}
.scn-queen-challenges-cardinal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-queen-challenges-cardinal .wall-panel {
  position: absolute; top: 5%; left: 15%; width: 70%; height: 70%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%); border: 2px solid #4a3a2a; border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: qc-wall 15s ease-in-out infinite;
}
@keyframes qc-queen { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes qc-cardinal { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes qc-table { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes qc-candle { 0% { box-shadow: 0 0 14px 4px #c08040, 0 0 30px 8px #a06020; height:10%; } 50% { box-shadow: 0 0 24px 8px #e0a060, 0 0 50px 14px #c08040; height:11%; } 100% { box-shadow: 0 0 16px 5px #c08040, 0 0 34px 10px #a06020; height:10%; } }
@keyframes qc-shadow { 0% { opacity:0.4; transform: scaleY(1); } 50% { opacity:0.7; transform: scaleY(1.1); } 100% { opacity:0.5; transform: scaleY(0.9); } }
@keyframes qc-wall { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.4); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.6); } 100% { box-shadow: inset 0 0 25px rgba(0,0,0,0.5); } }

.scn-queen-refuses-return {
  background: 
    radial-gradient(ellipse at 70% 60%, #5a3a2a 0%, transparent 60%),
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #1a0a00 100%);
}
.scn-queen-refuses-return .king-figure {
  position: absolute; bottom: 22%; left: 35%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: qr-king 10s ease-in-out infinite;
}
.scn-queen-refuses-return .queen-exit {
  position: absolute; bottom: 20%; right: 15%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #7a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  opacity: 0.8;
  animation: qr-queen-exit 15s ease-in-out infinite;
}
.scn-queen-refuses-return .doorway {
  position: absolute; bottom: 15%; right: 5%; width: 20%; height: 70%;
  background: radial-gradient(ellipse at 50% 80%, #1a0a00 0%, transparent 70%), linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 4px solid #5a4a3a; border-radius: 10% 10% 0 0;
  animation: qr-door 12s ease-in-out infinite alternate;
}
.scn-queen-refuses-return .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
}
.scn-queen-refuses-return .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 18%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
}
.scn-queen-refuses-return .candle {
  position: absolute; bottom: 35%; left: 55%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 10% 10% 0 0;
  box-shadow: 0 0 16px 4px #c08040;
  animation: qr-candle 3s ease-in-out infinite alternate;
}
.scn-queen-refuses-return .crown {
  position: absolute; bottom: 5%; left: 60%; width: 6%; height: 6%;
  background: linear-gradient(180deg, #a08040 0%, #7a6020 100%); border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 12px 2px #c0a060;
  animation: qr-crown 20s ease-in-out infinite;
}
@keyframes qr-king { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes qr-queen-exit { 0% { transform: translateX(0) scale(1); opacity:0.9; } 50% { transform: translateX(10px) scale(0.95); opacity:0.7; } 100% { transform: translateX(20px) scale(0.9); opacity:0.5; } }
@keyframes qr-door { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.3); } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.4); } }
@keyframes qr-candle { 0% { box-shadow: 0 0 12px 2px #c08040; height:12%; } 50% { box-shadow: 0 0 20px 6px #e0a060; height:13%; } 100% { box-shadow: 0 0 14px 3px #c08040; height:12%; } }
@keyframes qr-crown { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(5deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(0.95); } }

/* cranmer-shows-ring */
.scn-cranmer-shows-ring {
  background: linear-gradient(180deg, #f0e6d0 0%, #d4b89a 30%, #8a6d52 70%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
  overflow: hidden;
}
.scn-cranmer-shows-ring .bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #b89a7a 50%, #7a5a3a 100%);
  animation: csr-bg 15s ease-in-out infinite alternate;
}
.scn-cranmer-shows-ring .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-cranmer-shows-ring .pillar-left {
  position: absolute; left: 5%; bottom: 15%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #9a7a5a 0%, #7a5a3a 50%, #5a3a1a 100%);
  border-radius: 4px; box-shadow: 4px 0 10px rgba(0,0,0,0.3);
}
.scn-cranmer-shows-ring .pillar-right {
  position: absolute; right: 5%; bottom: 15%; width: 8%; height: 70%;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a5a3a 50%, #9a7a5a 100%);
  border-radius: 4px; box-shadow: -4px 0 10px rgba(0,0,0,0.3);
}
.scn-cranmer-shows-ring .hand {
  position: absolute; bottom: 30%; left: 48%; width: 14%; height: 20%;
  background: radial-gradient(ellipse 100% 80% at 50% 90%, #d4a078 0%, #a07050 60%, #6a4020 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: csr-hand 0.8s ease-in-out infinite alternate;
}
.scn-cranmer-shows-ring .ring {
  position: absolute; bottom: 42%; left: 52%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ffd060 0%, #d4a020 40%, #a07010 70%, #503008 100%);
  border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,200,80,0.6), 0 0 40px 10px rgba(255,150,30,0.3);
  animation: csr-ring 1.2s ease-in-out infinite;
}
.scn-cranmer-shows-ring .shadow {
  position: absolute; bottom: 20%; left: 42%; width: 20%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(3px);
  animation: csr-shadow 2s ease-in-out infinite alternate;
}
@keyframes csr-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes csr-hand { 0% { transform: rotate(-2deg) scaleX(0.98); } 50% { transform: rotate(1deg) scaleX(1.02); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes csr-ring { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 0 20px 6px rgba(255,200,80,0.6); } 50% { transform: scale(1.1) rotate(10deg); box-shadow: 0 0 30px 10px rgba(255,200,80,0.8); } 100% { transform: scale(0.95) rotate(5deg); box-shadow: 0 0 15px 4px rgba(255,150,30,0.5); } }
@keyframes csr-shadow { 0% { transform: translateX(-5px) scaleX(0.9); opacity: 0.7; } 50% { transform: translateX(2px) scaleX(1.1); opacity: 1; } 100% { transform: translateX(-1px) scaleX(1); opacity: 0.8; } }

/* king-intervenes */
.scn-king-intervenes {
  background: linear-gradient(180deg, #e8dcc0 0%, #c4a880 40%, #8a6a4a 70%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 50%);
  overflow: hidden;
}
.scn-king-intervenes .bg-throne {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d8c8a0 0%, #a88860 50%, #705030 100%);
  animation: ki-bg 20s ease-in-out infinite alternate;
}
.scn-king-intervenes .king-figure {
  position: absolute; bottom: 20%; left: 25%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -8px 0 15px rgba(0,0,0,0.5);
  animation: ki-king 4s ease-in-out infinite;
}
.scn-king-intervenes .table {
  position: absolute; bottom: 20%; left: 40%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-king-intervenes .ring-large {
  position: absolute; bottom: 28%; left: 52%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd060 0%, #d4a020 30%, #a07010 60%, #503008 100%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(255,200,80,0.7), 0 0 60px 15px rgba(255,150,30,0.4);
  animation: ki-ring 3s ease-in-out infinite;
}
.scn-king-intervenes .council-1 {
  position: absolute; bottom: 30%; right: 20%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: ki-council 5s ease-in-out infinite alternate;
}
.scn-king-intervenes .council-2 {
  position: absolute; bottom: 32%; right: 8%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: ki-council 5s ease-in-out infinite alternate-reverse;
}
.scn-king-intervenes .light-ray {
  position: absolute; top: 10%; left: 45%; width: 12%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%);
  animation: ki-light 8s ease-in-out infinite;
}
@keyframes ki-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ki-king { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ki-ring { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.15) rotate(15deg); } 100% { transform: scale(0.9) rotate(-5deg); } }
@keyframes ki-council { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-3px) scaleY(0.97); } 100% { transform: translateX(2px) scaleY(1.03); } }
@keyframes ki-light { 0% { opacity: 0.3; transform: translateX(-5px) rotate(-2deg); } 50% { opacity: 0.6; transform: translateX(5px) rotate(2deg); } 100% { opacity: 0.2; transform: translateX(0) rotate(0deg); } }

/* king-reprimands-council */
.scn-king-reprimands-council {
  background: linear-gradient(180deg, #d8c8a8 0%, #b89870 40%, #7a5a3a 70%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
  overflow: hidden;
}
.scn-king-reprimands-council .bg-court {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d8c8a8 0%, #a88860 50%, #705030 100%);
  animation: krc-bg 18s ease-in-out infinite alternate;
}
.scn-king-reprimands-council .king-profile {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 55%;
  background: linear-gradient(90deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 30% 40% 40% / 60% 50% 40% 40%;
  box-shadow: 8px 0 12px rgba(0,0,0,0.4);
  animation: krc-king 3s ease-in-out infinite;
}
.scn-king-reprimands-council .council-group {
  position: absolute; bottom: 30%; right: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: krc-council 4s ease-in-out infinite alternate;
}
.scn-king-reprimands-council .table {
  position: absolute; bottom: 18%; left: 35%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-king-reprimands-council .shadow-king {
  position: absolute; bottom: 10%; left: 25%; width: 25%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  filter: blur(4px);
  animation: krc-shadow 3s ease-in-out infinite alternate;
}
.scn-king-reprimands-council .window-back {
  position: absolute; top: 8%; right: 5%; width: 30%; height: 40%;
  background: linear-gradient(180deg, rgba(255,255,220,0.4) 0%, rgba(200,200,180,0.1) 100%);
  clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%);
  animation: krc-window 12s ease-in-out infinite;
}
.scn-king-reprimands-council .glint {
  position: absolute; top: 15%; left: 40%; width: 4%; height: 4%;
  background: radial-gradient(circle, #fff8e0 0%, transparent 100%);
  border-radius: 50%;
  animation: krc-glint 2s ease-in-out infinite;
}
@keyframes krc-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes krc-king { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes krc-council { 0% { transform: translateY(0) scaleX(0.98); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(1px) scaleX(1); } }
@keyframes krc-shadow { 0% { transform: scaleX(0.9); opacity: 0.7; } 50% { transform: scaleX(1.1); opacity: 1; } 100% { transform: scaleX(1); opacity: 0.8; } }
@keyframes krc-window { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes krc-glint { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.3; } }

/* king-makes-peace */
.scn-king-makes-peace {
  background: linear-gradient(180deg, #f5e8d0 0%, #e0c8a0 40%, #c0a070 70%, #8a6a4a 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
  overflow: hidden;
}
.scn-king-makes-peace .bg-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 50%, #a08060 100%);
  animation: kmp-bg 16s ease-in-out infinite alternate;
}
.scn-king-makes-peace .king-figure {
  position: absolute; bottom: 20%; left: 28%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -6px 0 12px rgba(0,0,0,0.3);
  animation: kmp-king 5s ease-in-out infinite;
}
.scn-king-makes-peace .lord-figure {
  position: absolute; bottom: 22%; left: 52%; width: 16%; height: 46%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 6px 0 12px rgba(0,0,0,0.3);
  animation: kmp-lord 5s ease-in-out infinite reverse;
}
.scn-king-makes-peace .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.4);
}
.scn-king-makes-peace .window-warm {
  position: absolute; top: 10%; left: 5%; width: 25%; height: 40%;
  background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, rgba(200,180,150,0.1) 100%);
  clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%);
  animation: kmp-window 10s ease-in-out infinite;
}
.scn-king-makes-peace .glow-ambient {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,220,150,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: kmp-glow 6s ease-in-out infinite;
}
.scn-king-makes-peace .carpet {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(90deg, #a05030 0%, #c06040 30%, #b85838 70%, #a05030 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: kmp-carpet 12s ease-in-out infinite alternate;
}
@keyframes kmp-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes kmp-king { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes kmp-lord { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-6px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(0deg); } }
@keyframes kmp-window { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes kmp-glow { 0% { transform: scale(0.9); opacity: 0.5; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.6; } }
@keyframes kmp-carpet { 0% { transform: scaleX(0.98); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }

.scn-ante-chamber-new-customs {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e1cba0 20%, #d4b87a 60%, #bfa36a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-ante-chamber-new-customs .back-wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d9c9a0 0%, #c8b488 100%);
  border-radius: 0 0 30% 30%;
  animation: ac-wall 12s ease-in-out infinite alternate;
}
.scn-ante-chamber-new-customs .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(135deg, #c5a86a 0%, #b09050 50%, #a08040 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
  animation: ac-floor 8s ease-in-out infinite alternate;
}
.scn-ante-chamber-new-customs .column-left {
  position: absolute; bottom: 30%; left: 15%; width: 30px; height: 70%;
  background: linear-gradient(90deg, #dcc08a 0%, #f0d6a0 50%, #c8a870 100%);
  border-radius: 8px; box-shadow: 4px 0 8px rgba(0,0,0,0.15);
  animation: ac-column 15s ease-in-out infinite alternate;
}
.scn-ante-chamber-new-customs .column-right {
  position: absolute; bottom: 30%; right: 15%; width: 30px; height: 70%;
  background: linear-gradient(90deg, #dcc08a 0%, #f0d6a0 50%, #c8a870 100%);
  border-radius: 8px; box-shadow: -4px 0 8px rgba(0,0,0,0.15);
  animation: ac-column 15s ease-in-out infinite alternate-reverse;
}
.scn-ante-chamber-new-customs .window-glow {
  position: absolute; top: 10%; left: 38%; width: 120px; height: 140px;
  background: radial-gradient(ellipse, #fffbe6 0%, #f0d090 40%, transparent 70%);
  border-radius: 20% 40% 20% 40% / 30% 50% 30% 50%;
  filter: blur(8px);
  animation: ac-glow 6s ease-in-out infinite alternate;
}
.scn-ante-chamber-new-customs .throne {
  position: absolute; bottom: 10%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b08040 0%, #906a30 40%, #705020 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: ac-throne 9s ease-in-out infinite;
}
.scn-ante-chamber-new-customs .crown {
  position: absolute; bottom: 78%; left: 50%; width: 30px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #efc050 0%, #c89030 60%, #a07020 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  animation: ac-crown 3s ease-in-out infinite alternate;
}
@keyframes ac-wall { 0% { opacity: 0.85; transform: scaleY(1); } 50% { opacity: 0.95; transform: scaleY(0.98); } 100% { opacity: 0.85; transform: scaleY(1); } }
@keyframes ac-floor { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-2px) skewX(0.5deg); } 100% { transform: translateY(0) skewX(0deg); } }
@keyframes ac-column { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes ac-glow { 0% { opacity: 0.7; box-shadow: 0 0 30px 10px rgba(240,208,144,0.4); } 50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(255,230,160,0.6); } 100% { opacity: 0.7; box-shadow: 0 0 30px 10px rgba(240,208,144,0.4); } }
@keyframes ac-throne { 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.5deg); } }
@keyframes ac-crown { 0% { transform: translateX(-50%) rotate(-3deg) scaleY(1); } 50% { transform: translateX(-50%) rotate(3deg) scaleY(1.1); } 100% { transform: translateX(-50%) rotate(-3deg) scaleY(1); } }

.scn-item-proclamation {
  background:
    linear-gradient(180deg, #e8dcc0 0%, #d4c4a0 30%, #bfad80 70%, #a89460 100%),
    radial-gradient(ellipse at 40% 70%, #fff2d0 0%, transparent 60%);
}
.scn-item-proclamation .podium {
  position: absolute; bottom: 15%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b89868 0%, #9a7a4a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: ip-podium 12s ease-in-out infinite alternate;
}
.scn-item-proclamation .scroll {
  position: absolute; bottom: 40%; left: 50%; width: 80px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #f0e4c0 0%, #d8c8a0 50%, #c0ac80 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ip-scroll 6s ease-in-out infinite;
}
.scn-item-proclamation .herald {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-60%);
  background: linear-gradient(180deg, #8a6a4a 0%, #6a5030 100%);
  border-radius: 40% 60% 30% 30% / 50% 50% 40% 40%;
  animation: ip-herald 4s ease-in-out infinite alternate;
}
.scn-item-proclamation .cape {
  position: absolute; bottom: 30%; left: 42%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 50% 20% 20% 50% / 60% 30% 30% 60%;
  animation: ip-cape 5s ease-in-out infinite alternate;
}
.scn-item-proclamation .trumpet {
  position: absolute; bottom: 38%; left: 55%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0c070 0%, #b08840 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(20deg);
  animation: ip-trumpet 3s ease-in-out infinite;
}
.scn-item-proclamation .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 140px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3), transparent);
  border-radius: 50%;
  animation: ip-shadow 8s ease-in-out infinite alternate;
}
.scn-item-proclamation .papers {
  position: absolute; bottom: 20%; left: 44%; width: 20px; height: 10px;
  background: #f0e8d0;
  border-radius: 5px;
  transform: rotate(-15deg);
  animation: ip-papers 7s ease-in-out infinite;
}
@keyframes ip-podium { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ip-scroll { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.05); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ip-herald { 0% { transform: translateX(-60%) rotate(-2deg); } 50% { transform: translateX(-60%) rotate(2deg) translateY(-2px); } 100% { transform: translateX(-60%) rotate(-2deg); } }
@keyframes ip-cape { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(3px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes ip-trumpet { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(1.1); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes ip-shadow { 0% { transform: scaleX(1); opacity: 0.5; } 50% { transform: scaleX(1.2); opacity: 0.3; } 100% { transform: scaleX(1); opacity: 0.5; } }
@keyframes ip-papers { 0%,100% { transform: rotate(-15deg) translate(0,0); } 50% { transform: rotate(-5deg) translate(2px,-2px); } }

.scn-court-gallants-mockery {
  background:
    linear-gradient(180deg, #f2e8d0 0%, #e0d0b0 30%, #cbb898 70%, #b49e78 100%),
    radial-gradient(ellipse at 70% 30%, #fff5d0 0%, transparent 50%);
}
.scn-court-gallants-mockery .floor-gallants {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(135deg, #c5a86a 0%, #b09050 50%, #9a7a3a 100%);
  box-shadow: inset 0 15px 20px rgba(0,0,0,0.2);
  animation: cg-floor 10s ease-in-out infinite alternate;
}
.scn-court-gallants-mockery .bg-gallants {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #d8c8a0 60%, #c5b080 100%);
  border-radius: 0 0 20% 20%;
  animation: cg-bg 14s ease-in-out infinite alternate;
}
.scn-court-gallants-mockery .courtier-left {
  position: absolute; bottom: 28%; left: 15%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #a08060 0%, #7a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cg-left 5s ease-in-out infinite alternate;
}
.scn-court-gallants-mockery .courtier-right {
  position: absolute; bottom: 28%; right: 15%; width: 40px; height: 65px;
  background: linear-gradient(180deg, #b09070 0%, #8a6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cg-right 5.5s ease-in-out infinite alternate-reverse;
}
.scn-court-gallants-mockery .courtier-center {
  position: absolute; bottom: 25%; left: 50%; width: 45px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: cg-center 4s ease-in-out infinite;
}
.scn-court-gallants-mockery .fan {
  position: absolute; bottom: 45%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 50% 30% 20% 50% / 60% 40% 40% 60%;
  transform: rotate(30deg);
  animation: cg-fan 2s ease-in-out infinite alternate;
}
.scn-court-gallants-mockery .ribbon {
  position: absolute; bottom: 35%; left: 55%; width: 20px; height: 5px;
  background: #5e1a1d;
  border-radius: 30%;
  animation: cg-ribbon 3s ease-in-out infinite;
}
.scn-court-gallants-mockery .laugh-burst {
  position: absolute; top: 15%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,220,120,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: cg-burst 2.5s ease-in-out infinite alternate;
}
@keyframes cg-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cg-bg { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes cg-left { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(0.95) translateY(-3px); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes cg-right { 0% { transform: rotate(5deg) scaleX(1); } 50% { transform: rotate(-5deg) scaleX(0.95) translateY(-2px); } 100% { transform: rotate(5deg) scaleX(1); } }
@keyframes cg-center { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-4px); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes cg-fan { 0% { transform: rotate(20deg) scaleY(1); } 50% { transform: rotate(40deg) scaleY(1.15); } 100% { transform: rotate(20deg) scaleY(1); } }
@keyframes cg-ribbon { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cg-burst { 0% { transform: translateX(-50%) scale(0.8); opacity: 0.3; } 50% { transform: translateX(-50%) scale(1.2); opacity: 0.6; } 100% { transform: translateX(-50%) scale(0.8); opacity: 0.3; } }

.scn-cardinals-supper-invitation {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 40%, #8a6a40 0%, transparent 70%);
}
.scn-cardinals-supper-invitation .table-banquet {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.5);
  animation: cs-table 15s ease-in-out infinite alternate;
}
.scn-cardinals-supper-invitation .candle-left {
  position: absolute; bottom: 40%; left: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a0 60%, #b09870 100%);
  border-radius: 2px;
  animation: cs-candle 7s ease-in-out infinite alternate;
}
.scn-cardinals-supper-invitation .candle-right {
  position: absolute; bottom: 40%; right: 20%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a0 60%, #b09870 100%);
  border-radius: 2px;
  animation: cs-candle 7s ease-in-out infinite alternate-reverse;
  animation-delay: -3.5s;
}
.scn-cardinals-supper-invitation .goblet-left {
  position: absolute; bottom: 32%; left: 28%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  animation: cs-goblet 5s ease-in-out infinite;
}
.scn-cardinals-supper-invitation .goblet-right {
  position: absolute; bottom: 32%; right: 28%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  animation: cs-goblet 5s ease-in-out infinite reverse;
  animation-delay: -2.5s;
}
.scn-cardinals-supper-invitation .guest-left {
  position: absolute; bottom: 30%; left: 12%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-guest 8s ease-in-out infinite alternate;
}
.scn-cardinals-supper-invitation .guest-right {
  position: absolute; bottom: 30%; right: 12%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-guest 8s ease-in-out infinite alternate-reverse;
  animation-delay: -4s;
}
.scn-cardinals-supper-invitation .chandelier {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #e0c080 0%, #a08040 50%, #6a4a2a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px 10px rgba(200,160,80,0.4);
  animation: cs-chandelier 9s ease-in-out infinite;
}
.scn-cardinals-supper-invitation .plate {
  position: absolute; bottom: 38%; left: 50%; width: 40px; height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #d4b87a 0%, #c8a060 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cs-plate 6s ease-in-out infinite;
}
@keyframes cs-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0); } }
@keyframes cs-candle { 0% { transform: scaleY(0.95); opacity: 0.8; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.8; } }
@keyframes cs-goblet { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes cs-guest { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes cs-chandelier { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg) scaleY(1.03); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes cs-plate { 0%,100% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } }

/* queen-dictates-letter: calm, dim-interior */
.scn-queen-dictates-letter {
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-queen-dictates-letter .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: qdl-wall 12s ease-in-out infinite alternate;
}
.scn-queen-dictates-letter .desk {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 20px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(10deg);
  animation: qdl-desk 8s ease-in-out infinite alternate;
}
.scn-queen-dictates-letter .figure {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qdl-figure 6s ease-in-out infinite alternate;
}
.scn-queen-dictates-letter .letter {
  position: absolute; bottom: 32%; left: 48%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #e8d8c0 0%, #c8b8a0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: qdl-letter 4s ease-in-out infinite alternate;
}
.scn-queen-dictates-letter .candle {
  position: absolute; bottom: 38%; left: 55%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e8d8c0 0%, #a08060 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(200,160,100,0.3);
  animation: qdl-candle 3s ease-in-out infinite alternate;
}
.scn-queen-dictates-letter .glow {
  position: absolute; bottom: 36%; left: 53%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #c0a060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: qdl-glow 3s ease-in-out infinite alternate;
}
.scn-queen-dictates-letter .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 60px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-20px);
  animation: qdl-shadow 6s ease-in-out infinite alternate;
}
@keyframes qdl-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes qdl-desk {
  0% { transform: perspective(400px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(12deg) translateY(-2px); }
  100% { transform: perspective(400px) rotateX(10deg) translateY(0); }
}
@keyframes qdl-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 qdl-letter {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes qdl-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.85; }
}
@keyframes qdl-glow {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes qdl-shadow {
  0% { transform: translateX(-20px) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(-18px) scaleX(1.1); opacity: 0.7; }
  100% { transform: translateX(-20px) scaleX(1); opacity: 0.6; }
}

/* gallery-night: tense, gaslit */
.scn-gallery-night {
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2e 70%, #0a0a1e 100%),
              radial-gradient(ellipse at 30% 50%, #3a3a4e 0%, transparent 60%);
}
.scn-gallery-night .bg-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1e 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: gn-wall 10s ease-in-out infinite alternate;
}
.scn-gallery-night .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(5deg);
  animation: gn-floor 8s ease-in-out infinite alternate;
}
.scn-gallery-night .torch {
  position: absolute; bottom: 40%; left: 20%; width: 10px; height: 40px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(200,160,80,0.5);
  animation: gn-torch 2s ease-in-out infinite alternate;
}
.scn-gallery-night .flame {
  position: absolute; bottom: 62%; left: 19%; width: 18px; height: 24px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 40%, transparent 80%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(3px);
  animation: gn-flame 0.6s ease-in-out infinite alternate;
}
.scn-gallery-night .fig-left {
  position: absolute; bottom: 22%; left: 35%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gn-fig-left 4s ease-in-out infinite alternate;
}
.scn-gallery-night .fig-right {
  position: absolute; bottom: 22%; left: 55%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gn-fig-right 4s ease-in-out infinite alternate;
}
.scn-gallery-night .shadow {
  position: absolute; bottom: 20%; left: 25%; width: 120px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-30px);
  animation: gn-shadow 3s ease-in-out infinite alternate;
}
@keyframes gn-wall {
  0% { opacity: 0.9; }
  50% { opacity: 0.7; }
  100% { opacity: 0.85; }
}
@keyframes gn-floor {
  0% { transform: perspective(200px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(6deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(5deg) translateY(0); }
}
@keyframes gn-torch {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.02) rotate(1deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes gn-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.8; }
  25% { transform: scale(1.1) translateY(-2px); opacity: 1; }
  50% { transform: scale(0.9) translateY(1px); opacity: 0.9; }
  75% { transform: scale(1.05) translateY(-1px); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 0.8; }
}
@keyframes gn-fig-left {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(5px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes gn-fig-right {
  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 gn-shadow {
  0% { transform: translateX(-30px) scaleX(1); opacity: 0.7; }
  50% { transform: translateX(-28px) scaleX(1.2); opacity: 0.8; }
  100% { transform: translateX(-30px) scaleX(1); opacity: 0.6; }
}

/* queen-labour-news: tense, gaslit */
.scn-queen-labour-news {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2e 60%, #0a0a1e 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a4e 0%, transparent 70%);
}
.scn-queen-labour-news .bg-chamber {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1e 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
  animation: qln-bg 10s ease-in-out infinite alternate;
}
.scn-queen-labour-news .bed {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateX(8deg);
  animation: qln-bed 6s ease-in-out infinite alternate;
}
.scn-queen-labour-news .figure-lying {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%;
  transform-origin: bottom center;
  animation: qln-lying 4s ease-in-out infinite alternate;
}
.scn-queen-labour-news .figure-standing {
  position: absolute; bottom: 25%; left: 55%; 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: qln-standing 3s ease-in-out infinite alternate;
}
.scn-queen-labour-news .candle {
  position: absolute; bottom: 42%; left: 70%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #e8d8c0 0%, #a08060 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(200,160,100,0.4);
  animation: qln-candle 2.5s ease-in-out infinite alternate;
}
.scn-queen-labour-news .glow {
  position: absolute; bottom: 40%; left: 68%; width: 24px; height: 24px;
  background: radial-gradient(circle, #ffd080 0%, #c0a060 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: qln-glow 2.5s ease-in-out infinite alternate;
}
.scn-queen-labour-news .curtain {
  position: absolute; top: 10%; right: 5%; width: 15%; height: 60%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.5);
  animation: qln-curtain 8s ease-in-out infinite alternate;
}
@keyframes qln-bg {
  0% { opacity: 0.9; }
  50% { opacity: 0.7; }
  100% { opacity: 0.85; }
}
@keyframes qln-bed {
  0% { transform: perspective(300px) rotateX(8deg) translateY(0); }
  50% { transform: perspective(300px) rotateX(10deg) translateY(-2px); }
  100% { transform: perspective(300px) rotateX(8deg) translateY(0); }
}
@keyframes qln-lying {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(0); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes qln-standing {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes qln-candle {
  0% { transform: scaleY(1); opacity: 0.85; }
  50% { transform: scaleY(1.03); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.8; }
}
@keyframes qln-glow {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(1); opacity: 0.75; }
}
@keyframes qln-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}

/* king-comforts-cranmer: calm, gaslit */
.scn-king-comforts-cranmer {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 70%, #0a0a1e 100%),
              radial-gradient(ellipse at 50% 40%, #3a3a4e 0%, transparent 60%);
}
.scn-king-comforts-cranmer .bg-gallery {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0a0a1e 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
  animation: kcc-bg 12s ease-in-out infinite alternate;
}
.scn-king-comforts-cranmer .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(5deg);
  animation: kcc-floor 10s ease-in-out infinite alternate;
}
.scn-king-comforts-cranmer .king {
  position: absolute; bottom: 22%; left: 40%; width: 26px; height: 52px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kcc-king 5s ease-in-out infinite alternate;
}
.scn-king-comforts-cranmer .cranmer {
  position: absolute; bottom: 22%; left: 55%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: scaleY(0.85); /* kneeling */
  animation: kcc-cranmer 4s ease-in-out infinite alternate;
}
.scn-king-comforts-cranmer .torch {
  position: absolute; bottom: 38%; left: 30%; width: 8px; height: 36px;
  background: linear-gradient(180deg, #8a6a3a 0%, #4a3a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px rgba(200,160,80,0.5);
  animation: kcc-torch 3s ease-in-out infinite alternate;
}
.scn-king-comforts-cranmer .glow {
  position: absolute; bottom: 58%; left: 29%; width: 22px; height: 22px;
  background: radial-gradient(circle, #ffd080 0%, #c0a060 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: kcc-glow 3s ease-in-out infinite alternate;
}
.scn-king-comforts-cranmer .pillar {
  position: absolute; top: 0; right: 10%; width: 6%; height: 100%;
  background: linear-gradient(180deg, #3a3a2e 0%, #2a2a1e 100%);
  box-shadow: inset 2px 0 8px rgba(0,0,0,0.5);
  animation: kcc-pillar 15s ease-in-out infinite alternate;
}
@keyframes kcc-bg {
  0% { opacity: 0.9; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes kcc-floor {
  0% { transform: perspective(200px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(5.5deg) translateY(-1px); }
  100% { transform: perspective(200px) rotateX(5deg) translateY(0); }
}
@keyframes kcc-king {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(0); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes kcc-cranmer {
  0% { transform: scaleY(0.85) translateY(0); }
  50% { transform: scaleY(0.88) translateY(-2px); }
  100% { transform: scaleY(0.85) translateY(0); }
}
@keyframes kcc-torch {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.01) rotate(1deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes kcc-glow {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 0.9; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes kcc-pillar {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}

.scn-cardinals-visit-queen {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4a05a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 70%);
}
.scn-cardinals-visit-queen .bg-room {
  position: absolute; inset: 0; background: linear-gradient(90deg, #8b5a2b 0%, #d4a05a 50%, #8b5a2b 100%);
}
.scn-cardinals-visit-queen .window {
  position: absolute; top: 10%; left: 5%; width: 20%; height: 40%;
  background: linear-gradient(135deg, #fff8e0 0%, #f0d080 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 0 40px 20px rgba(240,208,128,0.5);
  animation: cvq-window 6s ease-in-out infinite alternate;
}
.scn-cardinals-visit-queen .throne {
  position: absolute; bottom: 30%; left: 15%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 20%, #5a3a1a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,0.4);
}
.scn-cardinals-visit-queen .queen {
  position: absolute; bottom: 30%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%;
  transform-origin: bottom center;
  animation: cvq-queen 8s ease-in-out infinite;
}
.scn-cardinals-visit-queen .cardinal1 {
  position: absolute; bottom: 30%; right: 25%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #7a2e2e 0%, #4a1818 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cvq-cardinal 10s ease-in-out infinite;
}
.scn-cardinals-visit-queen .cardinal2 {
  position: absolute; bottom: 30%; right: 10%; width: 10%; height: 45%;
  background: linear-gradient(180deg, #7a2e2e 0%, #4a1818 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cvq-cardinal 10s ease-in-out infinite reverse;
}
.scn-cardinals-visit-queen .candle-left {
  position: absolute; bottom: 30%; left: 30%; width: 1%; height: 10%;
  background: linear-gradient(180deg, #f0c060 0%, #c08020 100%);
  border-radius: 20%; box-shadow: 0 0 20px 8px rgba(240,192,96,0.6);
  animation: cvq-candle 4s ease-in-out infinite alternate;
}
.scn-cardinals-visit-queen .candle-right {
  position: absolute; bottom: 30%; right: 35%; width: 1%; height: 10%;
  background: linear-gradient(180deg, #f0c060 0%, #c08020 100%);
  border-radius: 20%; box-shadow: 0 0 20px 8px rgba(240,192,96,0.6);
  animation: cvq-candle 4s ease-in-out infinite alternate-reverse;
}
.scn-cardinals-visit-queen .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 80%, transparent 30%, rgba(0,0,0,0.3) 100%);
  animation: cvq-shadow 12s ease-in-out infinite alternate;
}
@keyframes cvq-window { 0% { opacity:0.8; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.85; transform:scale(0.98); } }
@keyframes cvq-queen { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-3px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes cvq-cardinal { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(-2px) translateY(-2px); } 100% { transform:translateX(0) translateY(0); } }
@keyframes cvq-candle { 0% { filter:brightness(0.8); } 50% { filter:brightness(1.2); } 100% { filter:brightness(0.9); } }
@keyframes cvq-shadow { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-cardinals-pretend-peace {
  background: linear-gradient(180deg, #faf0e0 0%, #e8c880 100%), radial-gradient(ellipse at 50% 30%, #fffaf0 0%, transparent 60%);
}
.scn-cardinals-pretend-peace .bg-room {
  position: absolute; inset: 0; background: linear-gradient(90deg, #c8a060 0%, #f0dab0 50%, #c8a060 100%);
}
.scn-cardinals-pretend-peace .window {
  position: absolute; top: 12%; left: 8%; width: 18%; height: 35%;
  background: linear-gradient(135deg, #fff8f0 0%, #f8e4c0 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 0 30px 15px rgba(248,228,192,0.4);
  animation: cpp-window 9s ease-in-out infinite alternate;
}
.scn-cardinals-pretend-peace .throne {
  position: absolute; bottom: 35%; left: 12%; width: 28%; height: 45%;
  background: radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, #4a3020 100%);
  border-radius: 25% 25% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-cardinals-pretend-peace .queen-sitting {
  position: absolute; bottom: 35%; left: 18%; width: 11%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 45% 45% 45% / 60% 55% 55% 50%;
  transform-origin: bottom center;
  animation: cpp-queen 12s ease-in-out infinite;
}
.scn-cardinals-pretend-peace .cardinal1-open {
  position: absolute; bottom: 32%; right: 28%; width: 9%; height: 40%;
  background: linear-gradient(180deg, #8a4040 0%, #602828 100%);
  border-radius: 35% 40% 30% 30% / 55% 60% 40% 40%;
  animation: cpp-cardinal 15s ease-in-out infinite;
}
.scn-cardinals-pretend-peace .cardinal2-open {
  position: absolute; bottom: 32%; right: 12%; width: 9%; height: 40%;
  background: linear-gradient(180deg, #8a4040 0%, #602828 100%);
  border-radius: 35% 40% 30% 30% / 55% 60% 40% 40%;
  animation: cpp-cardinal 15s ease-in-out infinite reverse;
}
.scn-cardinals-pretend-peace .candle-steady {
  position: absolute; bottom: 35%; left: 35%; width: 1%; height: 8%;
  background: linear-gradient(180deg, #f0d080 0%, #d0a040 100%);
  border-radius: 20%; box-shadow: 0 0 15px 6px rgba(240,208,128,0.5);
  animation: cpp-candle 7s ease-in-out infinite alternate;
}
.scn-cardinals-pretend-peace .flower-accent {
  position: absolute; bottom: 38%; left: 40%; width: 4%; height: 4%;
  background: radial-gradient(circle, #f0e0c0 0%, #d0b090 100%);
  border-radius: 50%; box-shadow: 0 0 10px 4px rgba(240,224,192,0.3);
  animation: cpp-flower 11s ease-in-out infinite;
}
.scn-cardinals-pretend-peace .soft-shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 70%, transparent 40%, rgba(0,0,0,0.15) 100%);
  animation: cpp-shadow 18s ease-in-out infinite alternate;
}
@keyframes cpp-window { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.01); } 100% { opacity:0.95; transform:scale(0.99); } }
@keyframes cpp-queen { 0% { transform:translateX(0) rotate(0deg); } 50% { transform:translateX(-2px) rotate(0.5deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes cpp-cardinal { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(-1px) translateY(-1px); } 100% { transform:translateX(0) translateY(0); } }
@keyframes cpp-candle { 0% { filter:brightness(0.9); } 50% { filter:brightness(1.1); } 100% { filter:brightness(0.95); } }
@keyframes cpp-flower { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(5deg) scale(1.02); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes cpp-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

.scn-queen-feels-betrayed {
  background: linear-gradient(180deg, #e8d4a0 0%, #c8a060 100%), radial-gradient(ellipse at 40% 20%, #fff0d0 0%, transparent 60%);
}
.scn-queen-feels-betrayed .bg-close {
  position: absolute; inset: 0; background: linear-gradient(135deg, #b8844a 0%, #d4b080 50%, #a07040 100%);
}
.scn-queen-feels-betrayed .window-harsh {
  position: absolute; top: 10%; right: 5%; width: 25%; height: 50%;
  background: linear-gradient(135deg, #fff8e0 0%, #e8c880 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 0 60px 30px rgba(232,200,128,0.7);
  animation: qfb-window 4s ease-in-out infinite alternate;
}
.scn-queen-feels-betrayed .queen-profile {
  position: absolute; bottom: 30%; left: 15%; width: 14%; height: 45%;
  background: linear-gradient(180deg, #2a1a0a 0%, #120804 100%);
  border-radius: 45% 40% 40% 40% / 60% 50% 50% 40%;
  transform-origin: bottom right;
  animation: qfb-queen 5s ease-in-out infinite;
}
.scn-queen-feels-betrayed .cardinal-bg1 {
  position: absolute; bottom: 30%; right: 30%; width: 9%; height: 40%;
  background: linear-gradient(180deg, #6a2222 0%, #401010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: qfb-cardinal 8s ease-in-out infinite;
}
.scn-queen-feels-betrayed .cardinal-bg2 {
  position: absolute; bottom: 30%; right: 15%; width: 9%; height: 40%;
  background: linear-gradient(180deg, #6a2222 0%, #401010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: qfb-cardinal 8s ease-in-out infinite reverse;
}
.scn-queen-feels-betrayed .candle-fast {
  position: absolute; bottom: 32%; left: 30%; width: 1.2%; height: 12%;
  background: linear-gradient(180deg, #f0c060 0%, #c08020 100%);
  border-radius: 20%; box-shadow: 0 0 30px 10px rgba(240,192,96,0.8);
  animation: qfb-candle 2.5s ease-in-out infinite alternate;
}
.scn-queen-feels-betrayed .shadow-harsh {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.4) 100%);
  animation: qfb-shadow 6s ease-in-out infinite alternate;
}
@keyframes qfb-window { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.03); } 100% { opacity:0.75; transform:scale(0.97); } }
@keyframes qfb-queen { 0% { transform:translateX(0) rotate(-1deg); } 50% { transform:translateX(4px) rotate(2deg); } 100% { transform:translateX(0) rotate(-1deg); } }
@keyframes qfb-cardinal { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(3px) translateY(2px); } 100% { transform:translateX(0) translateY(0); } }
@keyframes qfb-candle { 0% { filter:brightness(0.6); } 50% { filter:brightness(1.4); } 100% { filter:brightness(0.7); } }
@keyframes qfb-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

.scn-queen-accuses-cardinals {
  background: linear-gradient(180deg, #b89870 0%, #8a6a40 100%), radial-gradient(ellipse at 50% 10%, #d4b880 0%, transparent 60%);
}
.scn-queen-accuses-cardinals .bg-darkened {
  position: absolute; inset: 0; background: linear-gradient(135deg, #5a4028 0%, #7a5a38 50%, #4a3018 100%);
}
.scn-queen-accuses-cardinals .window-dim {
  position: absolute; top: 10%; left: 5%; width: 20%; height: 40%;
  background: linear-gradient(135deg, #e8d4a0 0%, #c8a060 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 0 20px 10px rgba(200,160,96,0.3);
  animation: qac-window 8s ease-in-out infinite alternate;
}
.scn-queen-accuses-cardinals .queen-accuses {
  position: absolute; bottom: 25%; left: 20%; width: 13%; height: 48%;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 45% 40% 40% 40% / 60% 50% 50% 40%;
  transform-origin: bottom left;
  animation: qac-queen 6s ease-in-out infinite;
}
.scn-queen-accuses-cardinals .cardinal-recoil1 {
  position: absolute; bottom: 28%; right: 25%; width: 10%; height: 42%;
  background: linear-gradient(180deg, #5a2020 0%, #301010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: qac-cardinal 3.5s ease-in-out infinite;
}
.scn-queen-accuses-cardinals .cardinal-recoil2 {
  position: absolute; bottom: 28%; right: 10%; width: 10%; height: 42%;
  background: linear-gradient(180deg, #5a2020 0%, #301010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: qac-cardinal 3.5s ease-in-out infinite reverse;
}
.scn-queen-accuses-cardinals .candle-dim {
  position: absolute; bottom: 30%; left: 35%; width: 1%; height: 10%;
  background: linear-gradient(180deg, #d0a040 0%, #a07020 100%);
  border-radius: 20%; box-shadow: 0 0 10px 4px rgba(208,160,64,0.4);
  animation: qac-candle 5s ease-in-out infinite alternate;
}
.scn-queen-accuses-cardinals .shadow-heavy {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, transparent 30%, rgba(0,0,0,0.5) 100%);
  animation: qac-shadow 10s ease-in-out infinite alternate;
}
@keyframes qac-window { 0% { opacity:0.5; transform:scale(1); } 50% { opacity:0.7; transform:scale(1.01); } 100% { opacity:0.4; transform:scale(0.99); } }
@keyframes qac-queen { 0% { transform:translateX(0) rotate(-2deg) scale(1); } 50% { transform:translateX(-6px) rotate(4deg) scale(1.03); } 100% { transform:translateX(0) rotate(-2deg) scale(1); } }
@keyframes qac-cardinal { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(5px) translateY(3px); } 100% { transform:translateX(0) translateY(0); } }
@keyframes qac-candle { 0% { filter:brightness(0.5); } 50% { filter:brightness(0.9); } 100% { filter:brightness(0.6); } }
@keyframes qac-shadow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }

/* Scene: treason-accusation-voiced */
.scn-treason-accusation-voiced {
  background: 
    linear-gradient(180deg, #e8d5b5 0%, #c4a582 40%, #8b6f55 100%),
    radial-gradient(ellipse at 60% 30%, #f5e8d0 0%, transparent 60%);
}
.scn-treason-accusation-voiced .bg-wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #d9c2a8 0%, #7a5f44 100%); 
  animation: tr-wall 20s ease-in-out infinite alternate; 
}
.scn-treason-accusation-voiced .window-light { 
  position: absolute; top: 15%; left: 65%; width: 80px; height: 120px; 
  background: linear-gradient(135deg, #fff8e0 0%, #f0d8a0 100%); 
  border-radius: 4px; 
  box-shadow: 0 0 60px 30px rgba(240,216,160,0.6), 0 0 120px 60px rgba(240,216,160,0.3); 
  animation: tr-window 6s ease-in-out infinite alternate; 
}
.scn-treason-accusation-voiced .figure-accuser { 
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 120px; 
  background: linear-gradient(180deg, #2b1f14 0%, #1a120a 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; 
  transform-origin: bottom center; 
  animation: tr-accuser 3s ease-in-out infinite; 
}
.scn-treason-accusation-voiced .figure-accuser::after { /* arm */
  content: ''; position: absolute; top: 20%; right: -20px; 
  width: 40px; height: 8px; 
  background: #2b1f14; border-radius: 4px; 
  transform-origin: left center; 
  animation: tr-arm 2.5s ease-in-out infinite; 
}
.scn-treason-accusation-voiced .figure-accused { 
  position: absolute; bottom: 22%; left: 55%; width: 35px; height: 100px; 
  background: linear-gradient(180deg, #3a2a1a 0%, #22150a 100%); 
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%; 
  animation: tr-accused 8s ease-in-out infinite; 
}
.scn-treason-accusation-voiced .table { 
  position: absolute; bottom: 18%; left: 35%; width: 120px; height: 20px; 
  background: linear-gradient(180deg, #6b4f32 0%, #4a3520 100%); 
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); 
}
.scn-treason-accusation-voiced .candle { 
  position: absolute; bottom: 35%; left: 40%; width: 6px; height: 18px; 
  background: linear-gradient(180deg, #f5e0a0 0%, #d4b070 100%); 
  border-radius: 2px; 
  box-shadow: 0 0 12px 6px rgba(245,224,160,0.8); 
  animation: tr-candle 2s ease-in-out infinite alternate; 
}
.scn-treason-accusation-voiced .shadow-stripe { 
  position: absolute; bottom: 0; left: 0; width: 100%; height: 60%; 
  background: linear-gradient(180deg, transparent 0%, rgba(20,12,6,0.5) 100%); 
  animation: tr-shadow 15s ease-in-out infinite alternate; 
}
@keyframes tr-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes tr-window {
  0% { box-shadow: 0 0 30px 15px rgba(240,216,160,0.4); }
  50% { box-shadow: 0 0 80px 40px rgba(255,248,224,0.7); }
  100% { box-shadow: 0 0 40px 20px rgba(240,216,160,0.5); }
}
@keyframes tr-accuser {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes tr-arm {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(0deg); }
}
@keyframes tr-accused {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-1px) scale(1.02); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.9; }
}
@keyframes tr-candle {
  0% { opacity: 0.8; box-shadow: 0 0 8px 4px rgba(245,224,160,0.6); }
  50% { opacity: 1; box-shadow: 0 0 16px 8px rgba(245,224,160,0.9); }
  100% { opacity: 0.85; box-shadow: 0 0 10px 5px rgba(245,224,160,0.7); }
}
@keyframes tr-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.35; }
}

/* Scene: imperial-intrigue-revealed */
.scn-imperial-intrigue-revealed {
  background: 
    linear-gradient(180deg, #c8b89a 0%, #8a7554 50%, #4a3c2a 100%),
    radial-gradient(ellipse at 40% 30%, #dac8a8 0%, transparent 70%);
}
.scn-imperial-intrigue-revealed .bg-columns { 
  position: absolute; inset: 0; 
  background: repeating-linear-gradient(90deg, #715d3e 0px, #5a4a30 8px, #715d3e 12px, transparent 12px, transparent 80px); 
  opacity: 0.3; 
  animation: im-columns 30s linear infinite; 
}
.scn-imperial-intrigue-revealed .bg-tapestry { 
  position: absolute; top: 10%; left: 10%; width: 40%; height: 70%; 
  background: linear-gradient(135deg, #5a1a2a 0%, #3a1020 100%); 
  border-radius: 6px; opacity: 0.4; 
}
.scn-imperial-intrigue-revealed .figure-left { 
  position: absolute; bottom: 22%; left: 25%; width: 40px; height: 130px; 
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%); 
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; 
  animation: im-fig-left 4s ease-in-out infinite; 
}
.scn-imperial-intrigue-revealed .figure-right { 
  position: absolute; bottom: 22%; right: 25%; width: 40px; height: 130px; 
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%); 
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; 
  animation: im-fig-right 4s ease-in-out infinite 1s; 
}
.scn-imperial-intrigue-revealed .table { 
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%); 
  width: 160px; height: 18px; 
  background: linear-gradient(180deg, #8a7554 0%, #5a4a30 100%); 
  border-radius: 6px; box-shadow: 0 6px 15px rgba(0,0,0,0.6); 
}
.scn-imperial-intrigue-revealed .document { 
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%); 
  width: 80px; height: 12px; 
  background: linear-gradient(90deg, #f0e0c0 0%, #d8c8a8 100%); 
  border-radius: 2px; 
  animation: im-doc 5s ease-in-out infinite alternate; 
}
.scn-imperial-intrigue-revealed .seal { 
  position: absolute; bottom: 27%; left: 55%; width: 14px; height: 14px; 
  background: radial-gradient(circle, #b04020 0%, #6a2810 100%); 
  border-radius: 50%; 
  box-shadow: 0 0 8px 2px rgba(176,64,32,0.6); 
  animation: im-seal 3s ease-in-out infinite; 
}
.scn-imperial-intrigue-revealed .candle { 
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 24px; 
  background: linear-gradient(180deg, #f5e0a0 0%, #d4b070 100%); 
  border-radius: 2px; 
  box-shadow: 0 0 20px 8px rgba(245,224,160,0.7); 
  animation: im-candle 2.5s ease-in-out infinite alternate; 
}
@keyframes im-columns {
  0% { background-position: 0 0; }
  100% { background-position: 80px 0; }
}
@keyframes im-fig-left {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes im-fig-right {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes im-doc {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes im-seal {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes im-candle {
  0% { opacity: 0.8; box-shadow: 0 0 12px 4px rgba(245,224,160,0.5); }
  50% { opacity: 1; box-shadow: 0 0 28px 10px rgba(255,240,180,0.9); }
  100% { opacity: 0.85; box-shadow: 0 0 16px 6px rgba(245,224,160,0.6); }
}

/* Scene: buckingham-arrest */
.scn-buckingham-arrest {
  background: 
    linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 50%, #1a1008 100%),
    radial-gradient(ellipse at 50% 20%, #8a7a6a 0%, transparent 60%);
}
.scn-buckingham-arrest .bg-wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #4a3a2a 0%, #221810 100%); 
  animation: ba-wall 12s ease-in-out infinite alternate; 
}
.scn-buckingham-arrest .doorway { 
  position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); 
  width: 100px; height: 200px; 
  background: #0a0604; 
  border-radius: 60px 60px 0 0; 
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8); 
}
.scn-buckingham-arrest .guard-left { 
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 150px; 
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%); 
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; 
  transform-origin: bottom; 
  animation: ba-guard-l 6s ease-in-out infinite; 
}
.scn-buckingham-arrest .guard-left::after { /* spear */
  content: ''; position: absolute; top: -20px; left: -8px; 
  width: 4px; height: 60px; 
  background: #5a4a3a; border-radius: 2px; 
  transform: rotate(-15deg); 
}
.scn-buckingham-arrest .guard-right { 
  position: absolute; bottom: 15%; right: 20%; width: 30px; height: 150px; 
  background: linear-gradient(180deg, #2a1e14 0%, #0f0a06 100%); 
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; 
  transform-origin: bottom; 
  animation: ba-guard-r 6s ease-in-out infinite 2s; 
}
.scn-buckingham-arrest .guard-right::after {
  content: ''; position: absolute; top: -20px; right: -8px; 
  width: 4px; height: 60px; 
  background: #5a4a3a; border-radius: 2px; 
  transform: rotate(15deg); 
}
.scn-buckingham-arrest .prisoner { 
  position: absolute; bottom: 12%; left: 50%; transform: translateX(-50%); 
  width: 35px; height: 140px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #221810 100%); 
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; 
  animation: ba-prisoner 10s ease-in-out infinite; 
}
.scn-buckingham-arrest .chains { 
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%); 
  width: 40px; height: 8px; 
  background: repeating-linear-gradient(90deg, #8a7a6a 0px, #6a5a4a 6px, #8a7a6a 10px, transparent 10px, transparent 14px); 
  border-radius: 4px; 
  animation: ba-chains 2s ease-in-out infinite alternate; 
}
.scn-buckingham-arrest .torch { 
  position: absolute; bottom: 40%; left: 75%; width: 8px; height: 28px; 
  background: linear-gradient(180deg, #e08030 0%, #a05020 100%); 
  border-radius: 2px; 
  box-shadow: 0 0 40px 20px rgba(224,128,48,0.7), 0 0 80px 40px rgba(224,128,48,0.3); 
  animation: ba-torch 0.8s ease-in-out infinite alternate; 
}
@keyframes ba-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ba-guard-l {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes ba-guard-r {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ba-prisoner {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes ba-chains {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes ba-torch {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.9; transform: scaleY(0.95); }
}

/* Scene: council-chamber-intro */
.scn-council-chamber-intro {
  background: 
    linear-gradient(180deg, #d4c4a8 0%, #b8a080 40%, #8a7050 100%),
    radial-gradient(ellipse at 50% 20%, #f0e0c8 0%, transparent 70%);
}
.scn-council-chamber-intro .bg-grand { 
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #c8b89a 0%, #7a6a4a 100%); 
  animation: cc-bg 25s ease-in-out infinite alternate; 
}
.scn-council-chamber-intro .throne { 
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%); 
  width: 100px; height: 140px; 
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); 
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; 
  box-shadow: 0 10px 30px rgba(0,0,0,0.4); 
  animation: cc-throne 8s ease-in-out infinite; 
}
.scn-council-chamber-intro .king { 
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%); 
  width: 50px; height: 130px; 
  background: linear-gradient(180deg, #603020 0%, #3a1a10 100%); 
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; 
  box-shadow: 0 0 20px 10px rgba(96,48,32,0.5); 
  animation: cc-king 6s ease-in-out infinite; 
}
.scn-council-chamber-intro .cardinal { 
  position: absolute; bottom: 25%; left: 40%; transform: translateX(-50%); 
  width: 40px; height: 120px; 
  background: linear-gradient(180deg, #5e1a1d 0%, #3a1012 100%); /* burgundy not crimson */
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; 
  animation: cc-cardinal 7s ease-in-out infinite 1s; 
}
.scn-council-chamber-intro .nobles-left { 
  position: absolute; bottom: 20%; left: 15%; width: 30px; height: 90px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #221810 100%); 
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; 
  animation: cc-nobles 12s ease-in-out infinite; 
}
.scn-council-chamber-intro .nobles-right { 
  position: absolute; bottom: 20%; right: 15%; width: 30px; height: 90px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #221810 100%); 
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; 
  animation: cc-nobles 12s ease-in-out infinite 6s; 
}
.scn-council-chamber-intro .column-left { 
  position: absolute; top: 0; left: 5%; width: 20px; height: 100%; 
  background: linear-gradient(90deg, #b8a080 0%, #8a7050 50%, #b8a080 100%); 
  border-radius: 4px; 
  animation: cc-column 40s linear infinite; 
}
.scn-council-chamber-intro .column-right { 
  position: absolute; top: 0; right: 5%; width: 20px; height: 100%; 
  background: linear-gradient(90deg, #b8a080 0%, #8a7050 50%, #b8a080 100%); 
  border-radius: 4px; 
  animation: cc-column 40s linear infinite reverse; 
}
.scn-council-chamber-intro .floor-pattern { 
  position: absolute; bottom: 0; left: 0; width: 100%; height: 20%; 
  background: repeating-conic-gradient(#5a4a30 0% 25%, transparent 0% 50%) 0 0 / 40px 40px; 
  opacity: 0.3; 
  animation: cc-floor 10s ease-in-out infinite alternate; 
}
@keyframes cc-bg {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cc-throne {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes cc-king {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes cc-cardinal {
  0% { transform: translateX(-50%) rotate(0); }
  50% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(0); }
}
@keyframes cc-nobles {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cc-column {
  0% { background-position: 0 0; }
  100% { background-position: 100% 0; }
}
@keyframes cc-floor {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.25; }
}

/* CSS block per scene id. Append to style.css */
.scn-king-confronts-cardinal {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #d4c4a8 60%, #b8a88c 100%),
    radial-gradient(ellipse at 70% 30%, #ffffff66 0%, transparent 70%);
}
.scn-king-confronts-cardinal .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e8dcc4 0%, #c8b89a 100%);
  animation: kc-wall 15s ease-in-out infinite alternate;
}
.scn-king-confronts-cardinal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08870 0%, #7a6650 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: kc-floor 12s ease-in-out infinite alternate;
}
.scn-king-confronts-cardinal .king-silhouette {
  position: absolute; bottom: 25%; left: 20%; width: 60px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: kc-king 4s ease-in-out infinite;
}
.scn-king-confronts-cardinal .cardinal-silhouette {
  position: absolute; bottom: 25%; right: 20%; width: 55px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kc-cardinal 3.5s ease-in-out infinite;
}
.scn-king-confronts-cardinal .table {
  position: absolute; bottom: 18%; left: 30%; width: 180px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: kc-table 10s ease-in-out infinite alternate;
}
.scn-king-confronts-cardinal .paper {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #f5deb3 0%, #d4c49a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: kc-paper 2s ease-in-out infinite;
}
.scn-king-confronts-cardinal .window-light {
  position: absolute; top: 0; left: 10%; width: 80%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,235,180,0.25) 30%, rgba(255,235,180,0.1) 60%, transparent 100%);
  clip-path: polygon(10% 0, 90% 0, 70% 100%, 30% 100%);
  animation: kc-light 6s ease-in-out infinite alternate;
}
@keyframes kc-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes kc-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes kc-king {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(1px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes kc-cardinal {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  30% { transform: translateX(-2px) rotate(-2deg) scaleY(0.98); }
  60% { transform: translateX(2px) rotate(2deg) scaleY(1.02); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes kc-table {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
  50% { box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
}
@keyframes kc-paper {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  25% { transform: translateX(1px) rotate(3deg) scale(1.02); }
  50% { transform: translateX(-1px) rotate(-3deg) scale(0.98); }
  75% { transform: translateX(2px) rotate(1deg) scale(1.01); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes kc-light {
  0% { opacity: 0.1; transform: skewX(-5deg); }
  50% { opacity: 0.3; transform: skewX(0deg); }
  100% { opacity: 0.15; transform: skewX(5deg); }
}

/* ---- scene 2 ---- */
.scn-item-inventory-paper {
  background:
    linear-gradient(180deg, #d2b48c 0%, #b09070 50%, #8a6a4a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-item-inventory-paper .desk {
  position: absolute; bottom: 10%; left: 5%; width: 90%; height: 40%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 8px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-item-inventory-paper .parchment {
  position: absolute; bottom: 25%; left: 20%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a0 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ip-parchment 6s ease-in-out infinite;
}
.scn-item-inventory-paper .quill {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #d4b8a0 0%, #a08060 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: ip-quill 2s ease-in-out infinite;
}
.scn-item-inventory-paper .inkwell {
  position: absolute; bottom: 20%; right: 30%; width: 24px; height: 28px;
  background: radial-gradient(circle, #2a1a0a 0%, #0a0500 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-item-inventory-paper .hand {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8a880 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom left;
  animation: ip-hand 3s ease-in-out infinite;
}
.scn-item-inventory-paper .chest {
  position: absolute; bottom: 12%; right: 10%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ip-chest 10s ease-in-out infinite alternate;
}
.scn-item-inventory-paper .coins {
  position: absolute; bottom: 15%; right: 20%; width: 20px; height: 8px;
  background: radial-gradient(circle, #d4b040 0%, #a08020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ip-coins 4s ease-in-out infinite;
}
@keyframes ip-parchment {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ip-quill {
  0% { transform: translateX(0) rotate(-10deg) scaleY(1); }
  25% { transform: translateX(5px) rotate(-5deg) scaleY(1.05); }
  50% { transform: translateX(10px) rotate(0deg) scaleY(1); }
  75% { transform: translateX(5px) rotate(-5deg) scaleY(0.95); }
  100% { transform: translateX(0) rotate(-10deg) scaleY(1); }
}
@keyframes ip-hand {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(3px, -2px) rotate(-5deg); }
  50% { transform: translate(-1px, -4px) rotate(3deg); }
  75% { transform: translate(2px, -1px) rotate(-2deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes ip-chest {
  0% { box-shadow: inset 0 0 0 0 rgba(0,0,0,0.3); }
  50% { box-shadow: inset 0 0 10px 2px rgba(0,0,0,0.5); }
  100% { box-shadow: inset 0 0 0 0 rgba(0,0,0,0.3); }
}
@keyframes ip-coins {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(15deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

/* ---- scene 3 ---- */
.scn-king-exposes-cardinal-greed {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #b09878 40%, #8a7050 100%),
    radial-gradient(ellipse at 40% 20%, #fff8e0 0%, transparent 60%);
}
.scn-king-exposes-cardinal-greed .throne-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c8b89a 0%, #a08870 100%);
  border-radius: 0 0 30% 30%;
  animation: kg-wall 18s ease-in-out infinite alternate;
}
.scn-king-exposes-cardinal-greed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-king-exposes-cardinal-greed .king-figure {
  position: absolute; bottom: 20%; left: 15%; width: 70px; height: 130px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: kg-king 5s ease-in-out infinite;
}
.scn-king-exposes-cardinal-greed .cardinal-figure {
  position: absolute; bottom: 20%; right: 15%; width: 55px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kg-cardinal 3s ease-in-out infinite;
}
.scn-king-exposes-cardinal-greed .scroll {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 25px;
  background: linear-gradient(180deg, #f5deb3 0%, #d4c49a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: kg-scroll 2.5s ease-in-out infinite;
}
.scn-king-exposes-cardinal-greed .crown {
  position: absolute; bottom: 62%; left: 18%; width: 20px; height: 15px;
  background: radial-gradient(circle, #d4b040 0%, #a08020 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 12px 4px rgba(212,176,64,0.5);
  animation: kg-crown 4s ease-in-out infinite alternate;
}
.scn-king-exposes-cardinal-greed .beam-light {
  position: absolute; top: 0; left: 10%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(255,235,180,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: kg-beam 6s ease-in-out infinite alternate;
}
@keyframes kg-wall {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1); }
}
@keyframes kg-king {
  0% { transform: translateX(0) rotate(0deg) scaleX(1); }
  25% { transform: translateX(3px) rotate(2deg) scaleX(1.02); }
  50% { transform: translateX(-2px) rotate(-1deg) scaleX(0.98); }
  75% { transform: translateX(1px) rotate(1deg) scaleX(1.01); }
  100% { transform: translateX(0) rotate(0deg) scaleX(1); }
}
@keyframes kg-cardinal {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  30% { transform: translateX(2px) rotate(-3deg) scaleY(0.95); }
  60% { transform: translateX(-3px) rotate(3deg) scaleY(1.05); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes kg-scroll {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.8; }
  50% { transform: translateX(3px) rotate(15deg); opacity: 1; }
  100% { transform: translateX(0) rotate(0deg); opacity: 0.8; }
}
@keyframes kg-crown {
  0% { transform: translateY(0) scale(1); filter: brightness(1); }
  50% { transform: translateY(-2px) scale(1.1); filter: brightness(1.3); }
  100% { transform: translateY(0) scale(1); filter: brightness(1); }
}
@keyframes kg-beam {
  0% { opacity: 0.1; transform: skewX(-3deg); }
  50% { opacity: 0.3; transform: skewX(3deg); }
  100% { opacity: 0.15; transform: skewX(-2deg); }
}

/* ---- scene 4 ---- */
.scn-cardinal-realizes-downfall {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #b09878 50%, #8a7050 100%),
    radial-gradient(ellipse at 50% 30%, #fff0c0 0%, transparent 70%);
}
.scn-cardinal-realizes-downfall .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8b89a 0%, #a08870 100%);
  border-radius: 0 0 20% 20%;
  animation: cr-wall 20s ease-in-out infinite alternate;
}
.scn-cardinal-realizes-downfall .desk {
  position: absolute; bottom: 15%; left: 20%; width: 160px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cr-desk 12s ease-in-out infinite alternate;
}
.scn-cardinal-realizes-downfall .chair {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: cr-chair 8s ease-in-out infinite;
}
.scn-cardinal-realizes-downfall .cardinal-figure {
  position: absolute; bottom: 22%; left: 28%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cr-figure 4s ease-in-out infinite;
}
.scn-cardinal-realizes-downfall .letter {
  position: absolute; bottom: 23%; left: 38%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #f5deb3 0%, #d4c49a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cr-letter 2s ease-in-out infinite;
}
.scn-cardinal-realizes-downfall .candle {
  position: absolute; bottom: 35%; left: 55%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b080 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 12px 4px rgba(255,200,100,0.6);
  animation: cr-candle 3s ease-in-out infinite alternate;
}
.scn-cardinal-realizes-downfall .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: cr-shadow 7s ease-in-out infinite alternate;
}
@keyframes cr-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes cr-desk {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
  50% { box-shadow: 0 6px 12px rgba(0,0,0,0.5); }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
}
@keyframes cr-chair {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cr-figure {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(-2px) rotate(-2deg) scaleY(0.97); }
  50% { transform: translateX(3px) rotate(2deg) scaleY(1.03); }
  75% { transform: translateX(-1px) rotate(-1deg) scaleY(0.99); }
  100% { transform: translateX(0) rotate(0deg) scaleY(1); }
}
@keyframes cr-letter {
  0% { transform: translateX(0) rotate(0deg) scaleX(1); }
  30% { transform: translateX(2px) rotate(5deg) scaleX(1.02); }
  60% { transform: translateX(-2px) rotate(-5deg) scaleX(0.98); }
  100% { transform: translateX(0) rotate(0deg) scaleX(1); }
}
@keyframes cr-candle {
  0% { transform: scaleY(1); opacity: 0.8; filter: brightness(1); }
  50% { transform: scaleY(1.1); opacity: 1; filter: brightness(1.4); }
  100% { transform: scaleY(1); opacity: 0.85; filter: brightness(0.9); }
}
@keyframes cr-shadow {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

.scn-anne-declines-queenship {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #ead4b8 30%, #d9c2a3 70%, #c4a882 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e7 0%, transparent 60%);
}
.scn-anne-declines-queenship .wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(90deg, #ead4b8 0%, #f5e6d3 50%, #ead4b8 100%);
  animation: adq-wall 18s ease-in-out infinite alternate;
}
.scn-anne-declines-queenship .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(0deg, #8b6f4a 0%, #a88b5e 40%, #c4a882 100%);
  transform: scaleY(0.6) translateY(30%);
  border-radius: 30% 30% 0 0;
  animation: adq-floor 12s ease-in-out infinite alternate;
}
.scn-anne-declines-queenship .window {
  position: absolute;
  top: 15%; left: 12%;
  width: 28%; height: 40%;
  background: linear-gradient(180deg, #c9e2f0 0%, #e6f0f5 60%, #f0f8ff 100%);
  border: 6px solid #8b6f4a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(192, 160, 120, 0.3);
  animation: adq-window 6s ease-in-out infinite alternate;
}
.scn-anne-declines-queenship .light-beam {
  position: absolute;
  top: 20%; left: 15%;
  width: 35%; height: 70%;
  background: linear-gradient(135deg, rgba(255,248,231,0.4) 0%, transparent 80%);
  transform: rotate(-8deg);
  border-radius: 50% 0 50% 0;
  filter: blur(8px);
  animation: adq-beam 9s ease-in-out infinite alternate;
}
.scn-anne-declines-queenship .figure-left {
  position: absolute;
  bottom: 20%; left: 35%;
  width: 12%; height: 50%;
  background: radial-gradient(ellipse 60% 100% at 50% 0%, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: adq-figure-left 4s ease-in-out infinite;
}
.scn-anne-declines-queenship .figure-right {
  position: absolute;
  bottom: 20%; right: 30%;
  width: 14%; height: 55%;
  background: radial-gradient(ellipse 60% 100% at 50% 0%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: adq-figure-right 5s ease-in-out infinite;
}
.scn-anne-declines-queenship .table {
  position: absolute;
  bottom: 20%; left: 40%;
  width: 30%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: adq-table 8s ease-in-out infinite alternate;
}
.scn-anne-declines-queenship .vase {
  position: absolute;
  bottom: 28%; left: 52%;
  width: 6%; height: 14%;
  background: linear-gradient(180deg, #a08060 0%, #706040 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: adq-vase 7s ease-in-out infinite alternate;
}
@keyframes adq-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes adq-floor { 0% { transform: scaleY(0.6) translateY(30%) rotate(0deg); } 50% { transform: scaleY(0.62) translateY(28%) rotate(0.5deg); } 100% { transform: scaleY(0.6) translateY(30%) rotate(0deg); } }
@keyframes adq-window { 0% { box-shadow: inset 0 0 30px rgba(192,160,120,0.3); } 50% { box-shadow: inset 0 0 50px rgba(192,160,120,0.5); } 100% { box-shadow: inset 0 0 30px rgba(192,160,120,0.3); } }
@keyframes adq-beam { 0% { opacity:0.4; transform: rotate(-8deg) translateX(0px); } 50% { opacity:0.7; transform: rotate(-5deg) translateX(5px); } 100% { opacity:0.4; transform: rotate(-8deg) translateX(0px); } }
@keyframes adq-figure-left { 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(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes adq-figure-right { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 66% { transform: translateX(-1px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes adq-table { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes adq-vase { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }

.scn-chamberlain-announces-honour {
  background:
    linear-gradient(135deg, #d4b896 0%, #c4a07a 40%, #b08860 100%),
    radial-gradient(ellipse at 70% 50%, #fff0d0 0%, transparent 70%);
}
.scn-chamberlain-announces-honour .backdrop {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c4a07a 0%, #d4b896 50%, #c4a07a 100%);
  animation: cah-backdrop 15s ease-in-out infinite alternate;
}
.scn-chamberlain-announces-honour .throne {
  position: absolute;
  bottom: 20%; left: 20%;
  width: 30%; height: 40%;
  background: linear-gradient(180deg, #8b6f4a 0%, #6a4f30 50%, #5a3f20 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: cah-throne 8s ease-in-out infinite alternate;
}
.scn-chamberlain-announces-honour .chamberlain {
  position: absolute;
  bottom: 15%; left: 50%;
  width: 12%; height: 55%;
  background: radial-gradient(ellipse 70% 100% at 50% 0%, #5a3f20 0%, #3a2a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cah-bow 4s ease-in-out infinite;
}
.scn-chamberlain-announces-honour .lady {
  position: absolute;
  bottom: 15%; right: 25%;
  width: 14%; height: 60%;
  background: radial-gradient(ellipse 60% 100% at 50% 0%, #b08060 0%, #6a4a30 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cah-lady 5s ease-in-out infinite;
}
.scn-chamberlain-announces-honour .crown {
  position: absolute;
  bottom: 55%; left: 35%;
  width: 8%; height: 12%;
  background: radial-gradient(ellipse 50% 100% at 50% 0%, #ffd060 0%, #b09020 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 20px rgba(255,208,96,0.5);
  animation: cah-crown 6s ease-in-out infinite alternate;
}
.scn-chamberlain-announces-honour .sceptre {
  position: absolute;
  bottom: 60%; left: 44%;
  width: 3%; height: 20%;
  background: linear-gradient(180deg, #d4a040 0%, #b08020 50%, #8a6010 100%);
  border-radius: 4px;
  transform: rotate(15deg);
  animation: cah-sceptre 7s ease-in-out infinite alternate;
}
.scn-chamberlain-announces-honour .floor-tile {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 20%;
  background: repeating-conic-gradient(#8b6f4a 0% 25%, #a88b5e 0% 50%) 0 0 / 20% 100%;
  transform: perspective(200px) rotateX(30deg);
  animation: cah-floor 12s linear infinite;
}
@keyframes cah-backdrop { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes cah-throne { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cah-bow { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(5deg); } 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 cah-lady { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 33% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 66% { transform: translateX(-1px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes cah-crown { 0% { transform: translateY(0) rotate(-3deg); box-shadow: 0 0 20px rgba(255,208,96,0.5); } 50% { transform: translateY(-4px) rotate(0deg); box-shadow: 0 0 35px rgba(255,208,96,0.7); } 100% { transform: translateY(0) rotate(3deg); box-shadow: 0 0 20px rgba(255,208,96,0.5); } }
@keyframes cah-sceptre { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(18deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes cah-floor { 0% { background-position: 0 0; } 100% { background-position: 20% 0; } }

.scn-item-marchioness-title {
  background:
    linear-gradient(135deg, #c4a07a 0%, #b08860 50%, #a07050 100%),
    radial-gradient(ellipse at 50% 60%, #e8d4b8 0%, transparent 70%);
}
.scn-item-marchioness-title .desk {
  position: absolute;
  bottom: 10%; left: 5%;
  width: 90%; height: 50%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20px;
  transform: perspective(400px) rotateX(20deg);
  box-shadow: 0 -10px 20px rgba(0,0,0,0.3);
  animation: imt-desk 20s ease-in-out infinite alternate;
}
.scn-item-marchioness-title .document {
  position: absolute;
  bottom: 30%; left: 40%;
  width: 30%; height: 20%;
  background: linear-gradient(135deg, #f5e6d3 0%, #ead4b8 100%);
  border: 2px solid #8b6f4a;
  border-radius: 4px;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.2);
  animation: imt-doc 6s ease-in-out infinite alternate;
}
.scn-item-marchioness-title .quill {
  position: absolute;
  bottom: 35%; left: 50%;
  width: 2%; height: 20%;
  background: linear-gradient(180deg, #f0e0c0 0%, #a08060 50%, #4a3a2a 100%);
  border-radius: 4px;
  transform: rotate(-25deg);
  transform-origin: bottom center;
  animation: imt-quill 3s ease-in-out infinite;
}
.scn-item-marchioness-title .wax-seal {
  position: absolute;
  bottom: 28%; left: 55%;
  width: 6%; height: 6%;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, #6a2210 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: imt-seal 8s ease-in-out infinite alternate;
}
.scn-item-marchioness-title .hand {
  position: absolute;
  bottom: 30%; left: 35%;
  width: 12%; height: 18%;
  background: radial-gradient(ellipse 80% 100% at 50% 0%, #c4a882 0%, #a08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  transform-origin: 50% 100%;
  animation: imt-hand 4s ease-in-out infinite;
}
.scn-item-marchioness-title .inkwell {
  position: absolute;
  bottom: 32%; left: 65%;
  width: 6%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: imt-inkwell 10s ease-in-out infinite alternate;
}
@keyframes imt-desk { 0% { transform: perspective(400px) rotateX(20deg) translateY(0); } 50% { transform: perspective(400px) rotateX(18deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(20deg) translateY(0); } }
@keyframes imt-doc { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes imt-quill { 0% { transform: rotate(-25deg) translateX(0) translateY(0); } 25% { transform: rotate(-20deg) translateX(2px) translateY(-3px); } 50% { transform: rotate(-25deg) translateX(0) translateY(0); } 75% { transform: rotate(-30deg) translateX(-1px) translateY(2px); } 100% { transform: rotate(-25deg) translateX(0) translateY(0); } }
@keyframes imt-seal { 0% { transform: scale(1) rotate(0deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); } 50% { transform: scale(1.1) rotate(5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); } 100% { transform: scale(1) rotate(0deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); } }
@keyframes imt-hand { 0% { transform: rotate(10deg) translateX(0) translateY(0); } 33% { transform: rotate(15deg) translateX(5px) translateY(-2px); } 66% { transform: rotate(8deg) translateX(-2px) translateY(1px); } 100% { transform: rotate(10deg) translateX(0) translateY(0); } }
@keyframes imt-inkwell { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }

.scn-old-lady-envy {
  background:
    linear-gradient(135deg, #f0d0a0 0%, #e0b880 40%, #d0a060 100%),
    radial-gradient(ellipse at 80% 30%, #fff0d0 0%, transparent 60%);
}
.scn-old-lady-envy .wall-pattern {
  position: absolute;
  inset: 0 0 10% 0;
  background: repeating-linear-gradient(45deg, #d0a060 0px, #d0a060 8px, #e0b880 8px, #e0b880 16px);
  opacity: 0.4;
  animation: ole-wall 20s linear infinite;
}
.scn-old-lady-envy .old-lady {
  position: absolute;
  bottom: 10%; left: 20%;
  width: 20%; height: 60%;
  background: radial-gradient(ellipse 60% 100% at 50% 0%, #b08060 0%, #7a5a3a 50%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ole-old 3s ease-in-out infinite;
}
.scn-old-lady-envy .old-lady::before {
  content: '';
  position: absolute;
  top: -25%; left: 15%;
  width: 70%; height: 40%;
  background: radial-gradient(ellipse 80% 100% at 50% 0%, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(10deg);
  animation: ole-hat 3s ease-in-out infinite;
}
.scn-old-lady-envy .young-fish {
  position: absolute;
  bottom: 10%; right: 25%;
  width: 15%; height: 55%;
  background: radial-gradient(ellipse 70% 100% at 50% 0%, #c0a080 0%, #8a6a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ole-young 4s ease-in-out infinite alternate;
}
.scn-old-lady-envy .coin-bag {
  position: absolute;
  bottom: 30%; left: 45%;
  width: 12%; height: 15%;
  background: radial-gradient(ellipse 100% 100% at 50% 0%, #a08040 0%, #806020 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ole-bag 6s ease-in-out infinite alternate;
}
.scn-old-lady-envy .coin-1 {
  position: absolute;
  bottom: 40%; left: 40%;
  width: 4%; height: 4%;
  background: radial-gradient(circle, #ffd060 0%, #b09020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ole-coin1 2s ease-in-out infinite;
}
.scn-old-lady-envy .coin-2 {
  position: absolute;
  bottom: 35%; left: 50%;
  width: 3%; height: 3%;
  background: radial-gradient(circle, #ffd060 0%, #b09020 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ole-coin2 2.5s ease-in-out infinite 0.5s;
}
.scn-old-lady-envy .cushion {
  position: absolute;
  bottom: 5%; left: 10%;
  width: 25%; height: 10%;
  background: radial-gradient(ellipse 100% 100% at 50% 0%, #a06040 0%, #703020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ole-cushion 10s ease-in-out infinite alternate;
}
@keyframes ole-wall { 0% { background-position: 0 0; } 100% { background-position: 100% 100%; } }
@keyframes ole-old { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(0) translateY(0) rotate(-2deg); } 75% { transform: translateX(-3px) translateY(1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes ole-hat { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(15deg) translateX(4px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ole-young { 0% { transform: translateX(0) scaleY(1) rotate(0deg); } 50% { transform: translateX(-5px) scaleY(0.95) rotate(-2deg); } 100% { transform: translateX(0) scaleY(1) rotate(0deg); } }
@keyframes ole-bag { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ole-coin1 { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 50% { transform: translateY(-10px) rotate(180deg); opacity:0.8; } 100% { transform: translateY(0) rotate(360deg); opacity:1; } }
@keyframes ole-coin2 { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 50% { transform: translateY(-8px) rotate(-180deg); opacity:0.9; } 100% { transform: translateY(0) rotate(-360deg); opacity:1; } }
@keyframes ole-cushion { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }

.scn-kimbolton-queen-judges-cardinal {
  background: linear-gradient(180deg, #1a1410 0%, #2a1f18 40%, #1a1410 100%), radial-gradient(ellipse at 50% 30%, #3a2a20 0%, transparent 70%);
}
.scn-kimbolton-queen-judges-cardinal .bg-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(135deg, #2a2018 0%, #1a1410 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-kimbolton-queen-judges-cardinal .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1f1815 0%, #0d0a08 100%); transform: perspective(500px) rotateX(25deg); transform-origin: bottom center; }
.scn-kimbolton-queen-judges-cardinal .pillar-l { position:absolute; top:0; left:5%; width:8%; height:95%; background: linear-gradient(90deg, #1a1410 0%, #2a2018 30%, #1a1410 100%); border-radius: 4px; box-shadow: inset -2px 0 8px rgba(0,0,0,.6), 4px 0 12px rgba(0,0,0,.4); }
.scn-kimbolton-queen-judges-cardinal .pillar-r { position:absolute; top:0; right:5%; width:8%; height:95%; background: linear-gradient(90deg, #1a1410 0%, #2a2018 70%, #1a1410 100%); border-radius: 4px; box-shadow: inset 2px 0 8px rgba(0,0,0,.6), -4px 0 12px rgba(0,0,0,.4); }
.scn-kimbolton-queen-judges-cardinal .throne { position:absolute; bottom:18%; left:50%; transform: translateX(-50%); width:30%; height:40%; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 -4px 20px rgba(0,0,0,.7); }
.scn-kimbolton-queen-judges-cardinal .figure-cardinal { position:absolute; bottom:20%; left:25%; width:15%; height:45%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: kqjc-cloak 6s ease-in-out infinite; }
.scn-kimbolton-queen-judges-cardinal .figure-queen { position:absolute; bottom:20%; right:25%; width:18%; height:50%; background: linear-gradient(180deg, #2a2018 0%, #0f0a08 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform: rotate(-3deg); }
.scn-kimbolton-queen-judges-cardinal .torch-glow { position:absolute; bottom:30%; right:15%; width:20%; height:30%; background: radial-gradient(circle, rgba(180, 130, 60, .4) 0%, transparent 70%); animation: kqjc-torch 2s ease-in-out infinite alternate; }
.scn-kimbolton-queen-judges-cardinal .vignette { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 50%, rgba(0,0,0,.6) 100%); animation: kqjc-vignette 8s ease-in-out infinite alternate; }
@keyframes kqjc-cloak { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(3px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes kqjc-torch { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .7; transform: scale(.95); } }
@keyframes kqjc-vignette { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }

.scn-queen-dreams {
  background: linear-gradient(180deg, #0f0e1a 0%, #1a182a 40%, #0f0e1a 100%), radial-gradient(ellipse at 50% 80%, #2a243a 0%, transparent 70%);
}
.scn-queen-dreams .bg-soft { position:absolute; inset:0; background: linear-gradient(180deg, #1a182a 0%, transparent 100%); }
.scn-queen-dreams .figure-queen-repose { position:absolute; bottom:10%; left:50%; transform:translateX(-50%); width:40%; height:35%; background: linear-gradient(180deg, #2a243a 0%, #0f0e1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 8px 30px rgba(0,0,0,.5); animation: qd-breathe 8s ease-in-out infinite; }
.scn-queen-dreams .chair { position:absolute; bottom:8%; left:50%; transform: translateX(-50%); width:45%; height:20%; background: linear-gradient(180deg, #1a182a 0%, #0a0a12 100%); border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%; }
.scn-queen-dreams .instrument { position:absolute; bottom:12%; left:35%; width:18%; height:8%; background: linear-gradient(135deg, #4a3a4a 0%, #2a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-20deg); box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.scn-queen-dreams .candle-glow { position:absolute; bottom:20%; right:20%; width:15%; height:25%; background: radial-gradient(circle, rgba(240, 200, 120, .6) 0%, rgba(240, 200, 120, .1) 40%, transparent 70%); animation: qd-candle 4s ease-in-out infinite alternate; }
.scn-queen-dreams .shadow-veil { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.6) 100%); animation: qd-veil 12s ease-in-out infinite alternate; }
@keyframes qd-breathe { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-4px) scale(1.02); } 100% { transform: translateX(-50%) translateY(0) scale(1); } }
@keyframes qd-candle { 0% { opacity: .5; transform: scale(1); } 50% { opacity: .8; transform: scale(1.2); } 100% { opacity: .6; transform: scale(.9); } }
@keyframes qd-veil { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }

.scn-queen-vision {
  background: linear-gradient(180deg, #1a1410 0%, #2a1a10 40%, #1a1410 100%), radial-gradient(ellipse at 50% 30%, #4a3018 0%, transparent 70%);
}
.scn-queen-vision .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #1a1410 100%); }
.scn-queen-vision .light-ray-left { position:absolute; top:-10%; left:20%; width:15%; height:120%; background: linear-gradient(180deg, rgba(255, 220, 150, .6) 0%, transparent 100%); transform: rotate(15deg); animation: qv-ray 6s ease-in-out infinite alternate; }
.scn-queen-vision .light-ray-right { position:absolute; top:-10%; right:20%; width:15%; height:120%; background: linear-gradient(180deg, rgba(255, 220, 150, .6) 0%, transparent 100%); transform: rotate(-15deg); animation: qv-ray 7s ease-in-out infinite alternate reverse; }
.scn-queen-vision .angel-troop-1 { position:absolute; top:15%; left:15%; width:20%; height:25%; background: radial-gradient(circle at 50% 50%, rgba(200, 220, 255, .7) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: qv-float 9s ease-in-out infinite; animation-delay: 0s; }
.scn-queen-vision .angel-troop-2 { position:absolute; top:10%; right:15%; width:25%; height:30%; background: radial-gradient(circle at 50% 50%, rgba(200, 220, 255, .6) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: qv-float 11s ease-in-out infinite reverse; animation-delay: 2s; }
.scn-queen-vision .angel-troop-3 { position:absolute; top:25%; left:50%; transform: translateX(-50%); width:30%; height:35%; background: radial-gradient(circle at 50% 50%, rgba(255, 235, 200, .8) 0%, transparent 60%); border-radius: 50%; filter: blur(8px); animation: qv-float 13s ease-in-out infinite; animation-delay: 4s; }
.scn-queen-vision .chalice { position:absolute; bottom:20%; left:50%; transform: translateX(-50%); width:10%; height:15%; background: linear-gradient(180deg, #c8a050 0%, #8a6020 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 0 40px rgba(200, 160, 80, .6); animation: qv-chalice 4s ease-in-out infinite alternate; }
.scn-queen-vision .halo-burst { position:absolute; top:5%; left:50%; transform: translateX(-50%); width:50%; height:40%; background: radial-gradient(circle, rgba(255, 200, 100, .5) 0%, transparent 70%); animation: qv-pulse 3s ease-in-out infinite alternate; }
@keyframes qv-ray { 0% { transform: rotate(15deg) translateY(-20px); opacity: .5; } 50% { transform: rotate(15deg) translateY(10px); opacity: 1; } 100% { transform: rotate(15deg) translateY(-10px); opacity: .6; } }
@keyframes qv-float { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-15px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes qv-chalice { 0% { box-shadow: 0 0 20px rgba(200, 160, 80, .4); } 50% { box-shadow: 0 0 60px rgba(200, 160, 80, .8); } 100% { box-shadow: 0 0 30px rgba(200, 160, 80, .5); } }
@keyframes qv-pulse { 0% { opacity: .3; transform: translateX(-50%) scale(1); } 100% { opacity: .8; transform: translateX(-50%) scale(1.2); } }

.scn-queen-last-moments {
  background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%), radial-gradient(ellipse at 30% 20%, #2a2a2a 0%, transparent 70%);
}
.scn-queen-last-moments .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%); }
.scn-queen-last-moments .light-shaft { position:absolute; top:-10%; left:10%; width:25%; height:120%; background: linear-gradient(180deg, rgba(200, 200, 220, .3) 0%, transparent 100%); transform: rotate(20deg); animation: qlm-light 5s ease-in-out infinite alternate; }
.scn-queen-last-moments .figure-queen-stern { position:absolute; bottom:15%; right:20%; width:22%; height:60%; background: linear-gradient(180deg, #1a1a1a 0%, #000000 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); box-shadow: -10px 0 20px rgba(0,0,0,.8); }
.scn-queen-last-moments .figure-messenger { position:absolute; bottom:10%; left:30%; width:20%; height:35%; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); animation: qlm-kneel 0.8s ease-in-out infinite alternate; }
.scn-queen-last-moments .floor-line { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%); transform: perspective(400px) rotateX(30deg); transform-origin: bottom center; border-top: 2px solid rgba(100,100,100,.2); }
.scn-queen-last-moments .shadow-cast { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 100%); animation: qlm-shadow 6s ease-in-out infinite alternate; }
@keyframes qlm-light { 0% { transform: rotate(20deg) translateX(-10px); opacity: .4; } 50% { transform: rotate(20deg) translateX(5px); opacity: .8; } 100% { transform: rotate(20deg) translateX(0); opacity: .5; } }
@keyframes qlm-kneel { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes qlm-shadow { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }

.scn-king-in-pensive-mood {
  background: 
    linear-gradient(180deg, #2a1e1c 0%, #1a1210 40%, #0e0907 100%),
    radial-gradient(ellipse at 70% 30%, #3a2a20 0%, transparent 60%);
}
.scn-king-in-pensive-mood .kpm-bg {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #2a1e1c 0%, #3a2a20 50%, #2a1e1c 100%);
  animation: kpm-bg-drift 20s ease-in-out infinite;
}
.scn-king-in-pensive-mood .kpm-window {
  position:absolute; top:10%; right:15%; width:120px; height:150px;
  background: radial-gradient(#ffe4b5 0%, #cc8844 70%, #6b3a1a 100%);
  border:4px solid #4a3a30; border-radius:4px;
  box-shadow: 0 0 30px rgba(204,136,68,0.5);
  animation: kpm-window-glow 4s ease-in-out infinite alternate;
}
.scn-king-in-pensive-mood .kpm-bars {
  position:absolute; top:10%; right:15%; width:120px; height:150px;
  background: 
    repeating-linear-gradient(0deg, #0a0806 0px, #0a0806 3px, transparent 3px, transparent 8px),
    repeating-linear-gradient(90deg, #0a0806 0px, #0a0806 3px, transparent 3px, transparent 12px);
  border-radius:4px; pointer-events:none;
  animation: kpm-bars-sway 8s ease-in-out infinite;
}
.scn-king-in-pensive-mood .kpm-throne {
  position:absolute; bottom:25%; left:15%; width:80px; height:100px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius:10px; box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: kpm-throne-sway 6s ease-in-out infinite;
}
.scn-king-in-pensive-mood .kpm-king {
  position:absolute; bottom:25%; left:22%; width:40px; height:70px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kpm-king-breathe 4s ease-in-out infinite;
}
.scn-king-in-pensive-mood .kpm-desk {
  position:absolute; bottom:15%; left:10%; width:120px; height:20px;
  background: #4a3a30; border-radius:4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: kpm-desk-still 12s ease-in-out infinite;
}
.scn-king-in-pensive-mood .kpm-candle {
  position:absolute; bottom:25%; left:35%; width:8px; height:20px;
  background: linear-gradient(180deg, #ffd700 0%, #cc8844 100%);
  border-radius:2px; box-shadow: 0 0 10px #ffd700;
  animation: kpm-candle-flicker 1.5s ease infinite;
}
.scn-king-in-pensive-mood .kpm-light {
  position:absolute; bottom:15%; right:10%; width:80px; height:100px;
  background: linear-gradient(90deg, rgba(255,228,181,0.3), transparent);
  clip-path: polygon(0 0, 100% 40%, 100% 60%, 0 100%);
  animation: kpm-light-sweep 10s ease-in-out infinite alternate;
}
@keyframes kpm-bg-drift {
  0% { opacity:0.8; transform:scale(1); }
  50% { opacity:1; transform:scale(1.02); }
  100% { opacity:0.85; transform:scale(1); }
}
@keyframes kpm-window-glow {
  0% { box-shadow: 0 0 20px rgba(204,136,68,0.3); }
  50% { box-shadow: 0 0 40px rgba(204,136,68,0.7); }
  100% { box-shadow: 0 0 25px rgba(204,136,68,0.4); }
}
@keyframes kpm-bars-sway {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes kpm-throne-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes kpm-king-breathe {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes kpm-desk-still {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes kpm-candle-flicker {
  0% { opacity:0.7; transform:scaleY(1); }
  25% { opacity:1; transform:scaleY(1.05); }
  50% { opacity:0.8; transform:scaleY(0.95); }
  75% { opacity:0.9; transform:scaleY(1.02); }
  100% { opacity:0.7; transform:scaleY(1); }
}
@keyframes kpm-light-sweep {
  0% { opacity:0.3; transform:rotate(-3deg); }
  50% { opacity:0.6; transform:rotate(3deg); }
  100% { opacity:0.3; transform:rotate(-3deg); }
}

.scn-king-welcomes-campeius {
  background: 
    linear-gradient(180deg, #b8860b 0%, #8b6508 40%, #5a4204 100%),
    radial-gradient(ellipse at 50% 30%, #d4a060 0%, transparent 70%);
}
.scn-king-welcomes-campeius .kwc-bg {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #8b5e3c 0%, #a07040 50%, #8b5e3c 100%);
  animation: kwc-bg-pulse 20s ease-in-out infinite;
}
.scn-king-welcomes-campeius .kwc-column-left {
  position:absolute; bottom:0; left:10%; width:30px; height:80%;
  background: linear-gradient(180deg, #d4b896 0%, #a08060 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: kwc-column-stand 20s ease-in-out infinite;
}
.scn-king-welcomes-campeius .kwc-column-right {
  position:absolute; bottom:0; right:10%; width:30px; height:80%;
  background: linear-gradient(180deg, #d4b896 0%, #a08060 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: kwc-column-stand 20s ease-in-out infinite reverse;
}
.scn-king-welcomes-campeius .kwc-king {
  position:absolute; bottom:20%; left:30%; width:45px; height:75px;
  background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kwc-king-reach 4s ease-in-out infinite;
}
.scn-king-welcomes-campeius .kwc-campeius {
  position:absolute; bottom:20%; right:30%; width:40px; height:70px;
  background: linear-gradient(180deg, #6b3a1a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kwc-campeius-bow 6s ease-in-out infinite;
}
.scn-king-welcomes-campeius .kwc-tapestry {
  position:absolute; top:15%; left:50%; transform:translateX(-50%);
  width:120px; height:180px;
  background: repeating-linear-gradient(45deg, #d4a060 0px, #d4a060 10px, #b8860b 10px, #b8860b 20px);
  border-radius:4px;
  animation: kwc-tapestry-wave 15s ease-in-out infinite;
}
.scn-king-welcomes-campeius .kwc-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #6b4e2e 0%, #3a2818 100%);
  animation: kwc-floor-sway 8s ease-in-out infinite;
}
.scn-king-welcomes-campeius .kwc-window {
  position:absolute; top:10%; right:5%; width:60px; height:80px;
  background: radial-gradient(#fff8dc 0%, #f5de b3 100%);
  border:3px solid #6b5b4e; border-radius:4px;
  box-shadow: 0 0 30px rgba(245,222,179,0.6);
  animation: kwc-window-glow 3s ease-in-out infinite alternate;
}
.scn-king-welcomes-campeius .kwc-light {
  position:absolute; bottom:10%; right:5%; width:100px; height:80px;
  background: linear-gradient(90deg, rgba(245,222,179,0.2), transparent);
  clip-path: polygon(0 0, 100% 20%, 100% 80%, 0 100%);
  animation: kwc-light-sweep 12s ease-in-out infinite alternate;
}
@keyframes kwc-bg-pulse {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes kwc-column-stand {
  0% { transform:translateY(0); }
  50% { transform:translateY(-2px); }
  100% { transform:translateY(0); }
}
@keyframes kwc-king-reach {
  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 kwc-campeius-bow {
  0% { transform:translateY(0) rotate(0deg); }
  25% { transform:translateY(-1px) rotate(5deg); }
  50% { transform:translateY(0) rotate(0deg); }
  75% { transform:translateY(-1px) rotate(-5deg); }
  100% { transform:translateY(0) rotate(0deg); }
}
@keyframes kwc-tapestry-wave {
  0% { transform:translateX(-50%) scaleX(1); }
  50% { transform:translateX(-50%) scaleX(1.03); }
  100% { transform:translateX(-50%) scaleX(1); }
}
@keyframes kwc-floor-sway {
  0% { transform:translateY(0); }
  50% { transform:translateY(-2px); }
  100% { transform:translateY(0); }
}
@keyframes kwc-window-glow {
  0% { box-shadow: 0 0 20px rgba(245,222,179,0.4); }
  50% { box-shadow: 0 0 40px rgba(245,222,179,0.8); }
  100% { box-shadow: 0 0 20px rgba(245,222,179,0.4); }
}
@keyframes kwc-light-sweep {
  0% { opacity:0.2; transform:rotate(-5deg); }
  50% { opacity:0.5; transform:rotate(5deg); }
  100% { opacity:0.2; transform:rotate(-5deg); }
}

.scn-gardiner-appointment {
  background: 
    linear-gradient(180deg, #d4c4a8 0%, #c0b098 50%, #a09078 100%),
    radial-gradient(ellipse at 40% 60%, #e0d0b8 0%, transparent 60%);
}
.scn-gardiner-appointment .ga-bg {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #d4c4a8 0%, #e0d0b8 50%, #d4c4a8 100%);
  animation: ga-bg-drift 25s ease-in-out infinite;
}
.scn-gardiner-appointment .ga-desk {
  position:absolute; bottom:20%; left:30%; width:140px; height:20px;
  background: #8b7355; border-radius:4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: ga-desk-still 10s ease-in-out infinite;
}
.scn-gardiner-appointment .ga-chair {
  position:absolute; bottom:20%; left:30%; width:40px; height:60px;
  background: #6b5b4e;
  border-radius: 10px 10px 0 0;
  transform-origin: bottom center;
  animation: ga-chair-rock 8s ease-in-out infinite;
}
.scn-gardiner-appointment .ga-gardiner {
  position:absolute; bottom:20%; left:35%; width:30px; height:50px;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ga-figure-breathe 5s ease-in-out infinite;
}
.scn-gardiner-appointment .ga-secretary {
  position:absolute; bottom:20%; left:55%; width:25px; height:60px;
  background: linear-gradient(180deg, #5a4a3e 0%, #4a3a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ga-secretary-nod 6s ease-in-out infinite;
}
.scn-gardiner-appointment .ga-bookshelf {
  position:absolute; top:10%; right:10%; width:40px; height:120px;
  background: repeating-linear-gradient(180deg, #6b5b4e 0px, #6b5b4e 8px, #4a3a2e 8px, #4a3a2e 16px);
  border-radius:4px;
  animation: ga-bookshelf-stand 20s linear infinite;
}
.scn-gardiner-appointment .ga-scroll {
  position:absolute; bottom:22%; left:38%; width:30px; height:8px;
  background: #d4c4a8; border-radius:2px;
  animation: ga-scroll-roll 7s ease-in-out infinite;
}
.scn-gardiner-appointment .ga-inkwell {
  position:absolute; bottom:22%; left:42%; width:10px; height:10px;
  background: #1a1210; border-radius:50%;
  box-shadow: 0 0 4px #1a1210;
  animation: ga-inkwell-shimmer 4s ease-in-out infinite;
}
@keyframes ga-bg-drift {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.95; }
}
@keyframes ga-desk-still {
  0%,100% { transform:translateY(0); }
  50% { transform:translateY(-1px); }
}
@keyframes ga-chair-rock {
  0% { transform:rotate(-2deg) translateY(0); }
  50% { transform:rotate(2deg) translateY(-2px); }
  100% { transform:rotate(-2deg) translateY(0); }
}
@keyframes ga-figure-breathe {
  0% { transform:translateY(0) scale(1); }
  50% { transform:translateY(-2px) scale(1.02); }
  100% { transform:translateY(0) scale(1); }
}
@keyframes ga-secretary-nod {
  0% { transform:rotate(0deg); }
  25% { transform:rotate(-3deg); }
  50% { transform:rotate(0deg); }
  75% { transform:rotate(3deg); }
  100% { transform:rotate(0deg); }
}
@keyframes ga-bookshelf-stand {
  0% { transform:scaleY(1); }
  50% { transform:scaleY(1.005); }
  100% { transform:scaleY(1); }
}
@keyframes ga-scroll-roll {
  0% { transform:translateX(0) rotate(0deg); }
  50% { transform:translateX(5px) rotate(10deg); }
  100% { transform:translateX(0) rotate(0deg); }
}
@keyframes ga-inkwell-shimmer {
  0% { opacity:0.6; box-shadow: 0 0 2px #1a1210; }
  50% { opacity:1; box-shadow: 0 0 6px #1a1210; }
  100% { opacity:0.6; box-shadow: 0 0 2px #1a1210; }
}

.scn-anne-pities-queen {
  background: 
    linear-gradient(180deg, #f5e6d0 0%, #e0cbb0 50%, #d0b8a0 100%),
    radial-gradient(ellipse at 70% 40%, #fff0e0 0%, transparent 60%);
}
.scn-anne-pities-queen .apq-bg {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #f5e6d0 0%, #fff0e0 50%, #f5e6d0 100%);
  animation: apq-bg-soft 30s ease-in-out infinite;
}
.scn-anne-pities-queen .apq-window {
  position:absolute; top:10%; left:15%; width:80px; height:100px;
  background: radial-gradient(#fffacd 0%, #f5deb3 70%, #d4b080 100%);
  border:3px solid #c0a080; border-radius:4px;
  box-shadow: 0 0 30px rgba(245,222,179,0.5);
  animation: apq-window-glow 6s ease-in-out infinite alternate;
}
.scn-anne-pities-queen .apq-curtain {
  position:absolute; top:10%; left:12%; width:30px; height:150px;
  background: linear-gradient(90deg, #c08060 0%, #a06050 50%, #c08060 100%);
  border-radius: 0 20px 20px 0;
  animation: apq-curtain-sway 10s ease-in-out infinite;
}
.scn-anne-pities-queen .apq-anne {
  position:absolute; bottom:30%; left:35%; width:25px; height:60px;
  background: linear-gradient(180deg, #d4a080 0%, #b08060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: apq-anne-gesture 8s ease-in-out infinite;
}
.scn-anne-pities-queen .apq-old-lady {
  position:absolute; bottom:30%; left:50%; width:30px; height:50px;
  background: linear-gradient(180deg, #8b6b5b 0%, #6b4b3b 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: apq-old-nod 7s ease-in-out infinite;
}
.scn-anne-pities-queen .apq-chair {
  position:absolute; bottom:20%; left:40%; width:40px; height:50px;
  background: #5a3a2a; border-radius:8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  animation: apq-chair-still 12s ease-in-out infinite;
}
.scn-anne-pities-queen .apq-cushion {
  position:absolute; bottom:20%; left:41%; width:20px; height:15px;
  background: #8b5a3a; border-radius:10px;
  animation: apq-cushion-settle 5s ease-in-out infinite;
}
.scn-anne-pities-queen .apq-pillow {
  position:absolute; bottom:15%; left:35%; width:15px; height:10px;
  background: #a07050; border-radius:50%;
  animation: apq-pillow-roll 15s ease-in-out infinite;
}
@keyframes apq-bg-soft {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.95; }
}
@keyframes apq-window-glow {
  0% { box-shadow: 0 0 20px rgba(245,222,179,0.3); }
  50% { box-shadow: 0 0 40px rgba(245,222,179,0.7); }
  100% { box-shadow: 0 0 20px rgba(245,222,179,0.3); }
}
@keyframes apq-curtain-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes apq-anne-gesture {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-3px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes apq-old-nod {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-5deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes apq-chair-still {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes apq-cushion-settle {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes apq-pillow-roll {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(15deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.drape { position: absolute; pointer-events: none; }
.raven { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* item-schedule-inventory */
.scn-item-schedule-inventory { background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 30%, #3a2a22 70%, #1a1210 100%), radial-gradient(ellipse at 50% 80%, #4a3a30 0%, transparent 60%); }
.scn-item-schedule-inventory .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(135deg, #2a1e1a 0%, #1a1210 40%, #2a1e1a 80%); animation: si-wal1 12s ease-in-out infinite alternate; }
.scn-item-schedule-inventory .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 20px 30px rgba(0,0,0,.6); }
.scn-item-schedule-inventory .table { position: absolute; bottom: 28%; left: 30%; width: 40%; height: 18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-item-schedule-inventory .candle { position: absolute; bottom: 44%; left: 38%; width: 8px; height: 30px; background: linear-gradient(180deg, #c8a860 0%, #8a6a30 100%); border-radius: 30% 30% 10% 10%; animation: si-cnd1 3s ease-in-out infinite; }
.scn-item-schedule-inventory .candle::before { content: ''; position: absolute; top: -12px; left: -6px; width: 20px; height: 20px; background: radial-gradient(circle, #ffd080 0%, #ffa030 40%, transparent 70%); border-radius: 50%; animation: si-halo1 2s ease-in-out infinite alternate; }
.scn-item-schedule-inventory .schedule { position: absolute; bottom: 30%; left: 42%; width: 12%; height: 8%; background: linear-gradient(135deg, #e8d0a0 0%, #c8b080 100%); transform: rotate(-5deg); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: si-pap1 6s ease-in-out infinite; }
.scn-item-schedule-inventory .figure-wolsey { position: absolute; bottom: 22%; left: 35%; width: 22%; height: 32%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-walk1 9s ease-in-out infinite; }
.scn-item-schedule-inventory .figure-cromwell { position: absolute; bottom: 22%; right: 30%; width: 18%; height: 30%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: si-stand1 12s ease-in-out infinite; }
.scn-item-schedule-inventory .shadow-shaft { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 60%); animation: si-shad1 15s ease-in-out infinite alternate; }
@keyframes si-wal1 { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes si-cnd1 { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } }
@keyframes si-halo1 { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .9; transform: scale(1.3) } 100% { opacity: .7; transform: scale(1.1) } }
@keyframes si-pap1 { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes si-walk1 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes si-stand1 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes si-shad1 { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .4 } }

/* item-great-seal */
.scn-item-great-seal { background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1a1210 100%), radial-gradient(ellipse at 70% 50%, #3a2a20 0%, transparent 60%); }
.scn-item-great-seal .wall-deep { position: absolute; inset: 0 0 50% 0; background: linear-gradient(135deg, #1a1210 0%, #2a1e1a 30%, #1a1210 60%); animation: gs-wal1 18s ease-in-out infinite alternate; }
.scn-item-great-seal .floor-tile { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: repeating-linear-gradient(45deg, #3a2a22 0px, #3a2a22 20px, #2a1e1a 20px, #2a1e1a 40px); box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-item-great-seal .lords-three { position: absolute; bottom: 22%; left: 10%; width: 30%; height: 40%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(1.2); animation: gs-lords1 12s ease-in-out infinite; }
.scn-item-great-seal .figure-wolsey-stand { position: absolute; bottom: 18%; right: 15%; width: 20%; height: 35%; background: linear-gradient(180deg, #4a3a30 0%, #2a1e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gs-wol1 6s ease-in-out infinite alternate; }
.scn-item-great-seal .great-seal { position: absolute; bottom: 30%; right: 22%; width: 12%; height: 8%; background: radial-gradient(circle, #c8a860 0%, #8a6a30 60%, #4a3a20 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #c8a860, 0 0 40px 10px rgba(200,168,96,.4); animation: gs-seal1 4s ease-in-out infinite alternate; }
.scn-item-great-seal .seal-arm { position: absolute; bottom: 28%; right: 18%; width: 6%; height: 14%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom; animation: gs-arm1 3s ease-in-out infinite; }
.scn-item-great-seal .shadow-bars { position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(0,0,0,.3) 0px, rgba(0,0,0,.3) 10px, transparent 10px, transparent 30px); animation: gs-bars1 20s linear infinite; }
@keyframes gs-wal1 { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes gs-lords1 { 0%,100% { transform: scaleX(1.2) translateX(0) } 50% { transform: scaleX(1.2) translateX(-5px) } }
@keyframes gs-wol1 { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gs-seal1 { 0% { box-shadow: 0 0 20px 6px #c8a860, 0 0 40px 10px rgba(200,168,96,.4); } 50% { box-shadow: 0 0 30px 12px #e0c080, 0 0 60px 20px rgba(224,192,128,.6); } 100% { box-shadow: 0 0 20px 6px #c8a860, 0 0 40px 10px rgba(200,168,96,.4); } }
@keyframes gs-arm1 { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(-10deg) } }
@keyframes gs-bars1 { 0% { transform: translateY(0) } 100% { transform: translateY(-30px) } }

/* anne-coronation-procession */
.scn-anne-coronation-procession { background: linear-gradient(180deg, #f8e8c8 0%, #e8d0a8 30%, #c8b090 70%, #a08070 100%), radial-gradient(ellipse at 50% 30%, #ffeedd 0%, transparent 50%); }
.scn-anne-coronation-procession .sky-bright { position: absolute; top: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #b0d8f0 0%, #d8e8f8 50%, #f0e8d0 100%); animation: ac-sky1 25s ease-in-out infinite alternate; }
.scn-anne-coronation-procession .street { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #c8b090 0%, #a08070 100%); border-radius: 0 0 30% 30%; }
.scn-anne-coronation-procession .crowd-left { position: absolute; bottom: 10%; left: 0; width: 20%; height: 60%; background: repeating-linear-gradient(0deg, #3a3a3a 0px, #3a3a3a 8px, #4a4a4a 8px, #4a4a4a 16px); border-radius: 40% 0 0 40%; animation: ac-crowd1 8s ease-in-out infinite alternate; }
.scn-anne-coronation-procession .crowd-right { position: absolute; bottom: 10%; right: 0; width: 20%; height: 60%; background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 8px, #5a4a3a 8px, #5a4a3a 16px); border-radius: 0 40% 40% 0; animation: ac-crowd2 10s ease-in-out infinite alternate; }
.scn-anne-coronation-procession .canopy { position: absolute; bottom: 40%; left: 30%; width: 40%; height: 15%; background: linear-gradient(135deg, #c08050 0%, #a06030 100%); border-radius: 20% 20% 0 0; box-shadow: 0 10px 20px rgba(0,0,0,.3); animation: ac-can1 20s ease-in-out infinite; }
.scn-anne-coronation-procession .figure-anne { position: absolute; bottom: 32%; left: 47%; width: 6%; height: 18%; background: linear-gradient(180deg, #f0d8b0 0%, #d0b090 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 15px 5px #ffd080; animation: ac-anne1 3s ease-in-out infinite alternate; }
.scn-anne-coronation-procession .pennant { position: absolute; bottom: 50%; left: 35%; width: 3%; height: 12%; background: linear-gradient(180deg, #b03030 0%, #802020 100%); border-radius: 0 0 20% 20%; transform-origin: top; animation: ac-penn1 4s ease-in-out infinite; }
.scn-anne-coronation-procession .confetti { position: absolute; inset: 0; background: radial-gradient(circle at 20% 30%, #ffd080 2px, transparent 2px), radial-gradient(circle at 70% 60%, #ffb0b0 2px, transparent 2px), radial-gradient(circle at 40% 80%, #b0d0f0 2px, transparent 2px); background-size: 60px 60px, 40px 40px, 80px 80px; animation: ac-conf1 12s linear infinite; }
@keyframes ac-sky1 { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes ac-crowd1 { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes ac-crowd2 { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes ac-can1 { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes ac-anne1 { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-2px) scale(1.02) } }
@keyframes ac-penn1 { 0%,100% { transform: rotate(0) } 50% { transform: rotate(15deg) } }
@keyframes ac-conf1 { 0% { background-position: 0 0, 0 0, 0 0 } 100% { background-position: 60px 120px, 40px 80px, 80px 160px } }

/* item-letter-to-king */
.scn-item-letter-to-king { background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 70%, #3a3a4a 0%, transparent 60%); }
.scn-item-letter-to-king .wall-dim { position: absolute; inset: 0 0 40% 0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%); animation: lk-wall1 20s ease-in-out infinite alternate; }
.scn-item-letter-to-king .bedframe { position: absolute; bottom: 0; left: 20%; width: 60%; height: 60%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); }
.scn-item-letter-to-king .figure-katharine { position: absolute; bottom: 12%; left: 38%; width: 24%; height: 30%; background: linear-gradient(180deg, #5a4a4a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: lk-que1 6s ease-in-out infinite alternate; }
.scn-item-letter-to-king .letter-desk { position: absolute; bottom: 15%; right: 15%; width: 20%; height: 10%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-item-letter-to-king .letter-text { position: absolute; bottom: 18%; right: 18%; width: 12%; height: 6%; background: linear-gradient(135deg, #d0c8b0 0%, #b0a890 100%); transform: rotate(10deg); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: lk-letter1 8s ease-in-out infinite; }
.scn-item-letter-to-king .spirit-1 { position: absolute; top: 20%; left: 30%; width: 15%; height: 15%; background: radial-gradient(circle, rgba(200,220,255,0.6) 0%, transparent 70%); border-radius: 50%; animation: lk-spi1 10s ease-in-out infinite; }
.scn-item-letter-to-king .spirit-2 { position: absolute; top: 10%; right: 25%; width: 12%; height: 12%; background: radial-gradient(circle, rgba(200,220,255,0.4) 0%, transparent 70%); border-radius: 50%; animation: lk-spi2 14s ease-in-out infinite reverse; }
.scn-item-letter-to-king .spirit-3 { position: absolute; top: 30%; right: 40%; width: 10%; height: 10%; background: radial-gradient(circle, rgba(220,240,255,0.5) 0%, transparent 70%); border-radius: 50%; animation: lk-spi3 18s ease-in-out infinite alternate; }
@keyframes lk-wall1 { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes lk-que1 { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes lk-letter1 { 0%,100% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(8deg) translateX(-2px) } }
@keyframes lk-spi1 { 0% { transform: translate(0, 0) scale(1); opacity: .3 } 33% { transform: translate(30px, -20px) scale(1.2); opacity: .7 } 66% { transform: translate(-10px, 10px) scale(0.9); opacity: .5 } 100% { transform: translate(0, 0) scale(1); opacity: .3 } }
@keyframes lk-spi2 { 0% { transform: translate(0, 0) scale(1); opacity: .2 } 50% { transform: translate(-20px, -30px) scale(1.3); opacity: .6 } 100% { transform: translate(0, 0) scale(1); opacity: .2 } }
@keyframes lk-spi3 { 0% { transform: translate(0, 0) scale(1); opacity: .4 } 50% { transform: translate(10px, -40px) scale(1.1); opacity: .8 } 100% { transform: translate(0, 0) scale(1); opacity: .4 } }

.scn-king-disguised-dance-anne {
  background: linear-gradient(180deg, #4a2a1a 0%, #7a4a2a 30%, #b07040 60%, #d09060 100%), 
              radial-gradient(ellipse at 50% 30%, #f0c080 0%, transparent 60%);
}
.scn-king-disguised-dance-anne .great-hall {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 30%, #8a4a2a 60%, #6a3a1a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
  animation: kda-shadow 12s ease-in-out infinite alternate;
}
.scn-king-disguised-dance-anne .pillar-l {
  position:absolute; left:8%; bottom:0; width:5%; height:90%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  box-shadow: inset -6px 0 20px rgba(0,0,0,.5);
  border-radius: 4% 4% 0 0;
}
.scn-king-disguised-dance-anne .pillar-r {
  position:absolute; right:8%; bottom:0; width:5%; height:90%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  box-shadow: inset 6px 0 20px rgba(0,0,0,.5);
  border-radius: 4% 4% 0 0;
}
.scn-king-disguised-dance-anne .lanterns {
  position:absolute; top:12%; left:20%; right:20%; height:6%;
  background: radial-gradient(circle at 20% 50%, #f0c060 0%, transparent 12%),
              radial-gradient(circle at 50% 50%, #f0c060 0%, transparent 12%),
              radial-gradient(circle at 80% 50%, #f0c060 0%, transparent 12%);
  filter: blur(4px);
  animation: kda-lanterns 4s ease-in-out infinite alternate;
}
.scn-king-disguised-dance-anne .king-dancer {
  position:absolute; bottom:22%; left:42%; width:24px; height:48px;
  background: linear-gradient(180deg, #8a5a2a 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 16px 4px rgba(200,150,80,.3);
  animation: kda-dance-king 1.8s ease-in-out infinite;
}
.scn-king-disguised-dance-anne .queen-dancer {
  position:absolute; bottom:22%; left:52%; width:20px; height:46px;
  background: linear-gradient(180deg, #c09060 0%, #8a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px 3px rgba(200,150,80,.2);
  animation: kda-dance-queen 1.8s ease-in-out infinite;
}
.scn-king-disguised-dance-anne .wolsey-figure {
  position:absolute; bottom:24%; right:14%; width:22px; height:44px;
  background: linear-gradient(180deg, #6a2020 0%, #3a1010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kda-bow 6s ease-in-out infinite;
}
.scn-king-disguised-dance-anne .courtier-1 {
  position:absolute; bottom:20%; left:18%; width:16px; height:38px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: kda-bob 3s ease-in-out infinite;
}
.scn-king-disguised-dance-anne .courtier-2 {
  position:absolute; bottom:20%; right:24%; width:14px; height:36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: kda-bob 3s ease-in-out infinite 1.5s;
}
@keyframes kda-shadow { 0% { opacity:.6 } 50% { opacity:.4 } 100% { opacity:.7 } }
@keyframes kda-lanterns { 0% { opacity:.6; filter: blur(5px) } 50% { opacity:1; filter: blur(3px) } 100% { opacity:.7; filter: blur(4px) } }
@keyframes kda-dance-king { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(2px,-3px) rotate(2deg) } 50% { transform: translate(0,-1px) rotate(-1deg) } 75% { transform: translate(-2px,-3px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes kda-dance-queen { 0% { transform: translate(0,0) rotate(2deg) } 25% { transform: translate(-2px,-3px) rotate(-2deg) } 50% { transform: translate(0,-1px) rotate(1deg) } 75% { transform: translate(2px,-3px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes kda-bow { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-5deg) } }
@keyframes kda-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-buckingham-execution-street {
  background: linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 30%, #5a5a6a 60%, #3a3a4a 100%),
              radial-gradient(ellipse at 50% 100%, #6a6a7a 0%, transparent 70%);
}
.scn-buckingham-execution-street .bleak-sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #5a5a6a 30%, #6a6a7a 50%, #4a4a5a 100%);
  animation: bes-sky 20s ease-in-out infinite alternate;
}
.scn-buckingham-execution-street .street-wall {
  position:absolute; bottom:0; left:0; right:0; height:70%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-top: 2px solid #3a3a4a;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.7);
}
.scn-buckingham-execution-street .scaffold {
  position:absolute; bottom:20%; left:50%; width:30%; height:12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 4%;
  box-shadow: 0 8px 24px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,255,255,.1);
}
.scn-buckingham-execution-street .bound-figure {
  position:absolute; bottom:24%; left:50%; width:16px; height:32px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: bes-kneel 8s ease-in-out infinite;
}
.scn-buckingham-execution-street .crowd-left {
  position:absolute; bottom:22%; left:8%; width:20%; height:18%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: bes-crowd 12s ease-in-out infinite;
}
.scn-buckingham-execution-street .crowd-right {
  position:absolute; bottom:22%; right:8%; width:20%; height:18%;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: bes-crowd 12s ease-in-out infinite 6s;
}
.scn-buckingham-execution-street .raven-1 {
  position:absolute; top:18%; left:15%; width:20px; height:10px;
  background: #1a1a2a;
  border-radius: 50% 50% 30% 30%;
  animation: bes-raven 16s linear infinite;
}
.scn-buckingham-execution-street .raven-2 {
  position:absolute; top:24%; right:22%; width:16px; height:8px;
  background: #1a1a2a;
  border-radius: 50% 50% 30% 30%;
  animation: bes-raven 22s linear infinite 8s;
}
@keyframes bes-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes bes-kneel { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-50%) translateY(-2px) rotate(3deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0) } 75% { transform: translateX(-50%) translateY(-1px) rotate(-3deg) } }
@keyframes bes-crowd { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) translateY(-2px) } }
@keyframes bes-raven { 0% { transform: translate(-30px, 0) } 50% { transform: translate(20px, -10px) } 100% { transform: translate(120vw, -20px) } }

.scn-divorce-rumor-plans {
  background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 40%, #5a5a6a 70%, #4a4a5a 100%),
              radial-gradient(ellipse at 50% 20%, #6a6a7a 0%, transparent 60%);
}
.scn-divorce-rumor-plans .garden-wall {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 70%, #1a1a2a 100%);
  border-top: 3px solid #5a5a6a;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
  animation: drp-wall 12s ease-in-out infinite alternate;
}
.scn-divorce-rumor-plans .sky-slit {
  position:absolute; top:0; left:35%; right:35%; height:25%;
  background: linear-gradient(180deg, #7a7a8a 0%, #5a5a6a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: drp-slit 18s ease-in-out infinite alternate;
}
.scn-divorce-rumor-plans .gentleman-left {
  position:absolute; bottom:32%; left:28%; width:20px; height:48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: drp-lean-left 4s ease-in-out infinite;
}
.scn-divorce-rumor-plans .gentleman-right {
  position:absolute; bottom:32%; left:42%; width:20px; height:48px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: drp-lean-right 4s ease-in-out infinite;
}
.scn-divorce-rumor-plans .whisper-arc {
  position:absolute; bottom:42%; left:34%; width:8%; height:4%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: drp-whisper 3s ease-in-out infinite alternate;
}
.scn-divorce-rumor-plans .startled-bird {
  position:absolute; top:12%; left:45%; width:14px; height:8px;
  background: #2a2a3a;
  border-radius: 50% 50% 30% 30%;
  animation: drp-bird 6s ease-in-out infinite;
}
.scn-divorce-rumor-plans .shadow-pool {
  position:absolute; bottom:20%; left:25%; right:25%; height:10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.3) 0%, transparent 70%);
  animation: drp-shadow 5s ease-in-out infinite alternate;
}
@keyframes drp-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes drp-slit { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes drp-lean-left { 0%,100% { transform: translate(0,0) rotate(5deg) } 50% { transform: translate(2px,-2px) rotate(10deg) } }
@keyframes drp-lean-right { 0%,100% { transform: translate(0,0) rotate(-5deg) } 50% { transform: translate(-2px,-2px) rotate(-10deg) } }
@keyframes drp-whisper { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.5; transform: scale(1.2) } 100% { opacity:.2; transform: scale(1) } }
@keyframes drp-bird { 0%,100% { transform: translate(0,0) } 30% { transform: translate(-20px,-15px) rotate(-10deg) } 60% { transform: translate(40px,-30px) rotate(5deg) } }
@keyframes drp-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }

.scn-item-commission-from-rome {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 70%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 80%, #4a4a5a 0%, transparent 60%);
}
.scn-item-commission-from-rome .antechamber {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.7);
}
.scn-item-commission-from-rome .drape-left {
  position:absolute; left:0; top:0; bottom:0; width:18%;
  background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%);
  border-right: 2px solid #5a3030;
  box-shadow: inset -10px 0 30px rgba(0,0,0,.5);
  animation: icr-drape 16s ease-in-out infinite alternate;
}
.scn-item-commission-from-rome .drape-right {
  position:absolute; right:0; top:0; bottom:0; width:18%;
  background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%);
  border-left: 2px solid #5a3030;
  box-shadow: inset 10px 0 30px rgba(0,0,0,.5);
  animation: icr-drape 16s ease-in-out infinite alternate 8s;
}
.scn-item-commission-from-rome .king-table {
  position:absolute; bottom:18%; left:40%; right:40%; height:8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2%;
  box-shadow: 0 6px 20px rgba(0,0,0,.6);
}
.scn-item-commission-from-rome .king-figure {
  position:absolute; bottom:18%; left:44%; width:22px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px 2px rgba(200,180,120,.2);
  animation: icr-king-read 8s ease-in-out infinite;
}
.scn-item-commission-from-rome .cardinal-in {
  position:absolute; bottom:20%; right:20%; width:18px; height:38px;
  background: linear-gradient(180deg, #6a2040 0%, #3a1020 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: icr-enter 10s ease-in-out infinite;
}
.scn-item-commission-from-rome .candle-glow {
  position:absolute; bottom:28%; left:46%; width:12%; height:20%;
  background: radial-gradient(circle, #c0a060 0%, #806030 40%, transparent 70%);
  filter: blur(6px);
  animation: icr-candle 4s ease-in-out infinite alternate;
}
.scn-item-commission-from-rome .document-scroll {
  position:absolute; bottom:22%; left:42%; width:4%; height:2%;
  background: #8a7a5a;
  border-radius: 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: icr-scroll 8s ease-in-out infinite;
}
@keyframes icr-drape { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes icr-king-read { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-3deg) } }
@keyframes icr-enter { 0% { transform: translateX(30px) opacity(0) } 30% { transform: translateX(0) opacity(1) } 70% { transform: translateX(0) opacity(1) } 100% { transform: translateX(30px) opacity(0) } }
@keyframes icr-candle { 0% { opacity:.5; filter: blur(8px) } 50% { opacity:1; filter: blur(4px) } 100% { opacity:.6; filter: blur(7px) } }
@keyframes icr-scroll { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } }

/* palace-antechamber-intro (pa0) */
.scn-palace-antechamber-intro {
  background: 
    linear-gradient(180deg, #1a1620 0%, #2c2533 40%, #161218 100%),
    radial-gradient(ellipse at 50% 60%, #2c2533 0%, transparent 60%);
}
.scn-palace-antechamber-intro .bg-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(90deg, #2a1f1f 0%, #3a2a2a 50%, #2a1f1f 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-palace-antechamber-intro .arch-left {
  position: absolute; left: 5%; top: 15%; width: 45%; height: 70%;
  background: linear-gradient(135deg, #3a2a2a 0%, transparent 70%);
  border-radius: 0 0 50% 0 / 0 0 30% 0;
  filter: blur(2px);
}
.scn-palace-antechamber-intro .arch-right {
  position: absolute; right: 5%; top: 15%; width: 45%; height: 70%;
  background: linear-gradient(225deg, #3a2a2a 0%, transparent 70%);
  border-radius: 0 0 0 50% / 0 0 0 30%;
  filter: blur(2px);
}
.scn-palace-antechamber-intro .window-glow {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 28%;
  background: radial-gradient(ellipse at center, rgba(200,170,130,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: pa0-glow 6s ease-in-out infinite alternate;
}
.scn-palace-antechamber-intro .figure-norfolk {
  position: absolute; bottom: 28%; left: 22%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1414 100%);
  border-radius: 50% 40% 20% 20% / 60% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pa0-figure1 4s ease-in-out infinite;
}
.scn-palace-antechamber-intro .figure-buckingham {
  position: absolute; bottom: 28%; right: 22%; width: 12%; height: 45%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1414 100%);
  border-radius: 40% 50% 20% 20% / 50% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pa0-figure2 4.5s ease-in-out infinite;
}
.scn-palace-antechamber-intro .candle {
  position: absolute; bottom: 30%; left: 48%; width: 1.5%; height: 6%;
  background: linear-gradient(180deg, #6a4a20 0%, #3a2a10 100%);
  border-radius: 2px;
}
.scn-palace-antechamber-intro .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: pa0-shadow 8s ease-in-out infinite alternate;
}
@keyframes pa0-glow {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes pa0-figure1 {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes pa0-figure2 {
  0%,100% { transform: translateY(0) rotate(0deg) scaleX(1); }
  30% { transform: translateY(-3px) rotate(2deg) scaleX(1.02); }
  60% { transform: translateY(0) rotate(-1deg) scaleX(0.98); }
}
@keyframes pa0-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

/* field-of-cloth-gold-splendor (fcg) */
.scn-field-of-cloth-gold-splendor {
  background: 
    linear-gradient(180deg, #5a8a9a 0%, #7aafc0 30%, #c8d8a0 60%, #e0c070 100%),
    radial-gradient(ellipse at 50% 0%, #e8d8a0 0%, transparent 70%);
}
.scn-field-of-cloth-gold-splendor .bg-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #3a7a8a 0%, #6aaac0 50%, #88b8c8 100%);
}
.scn-field-of-cloth-gold-splendor .bg-field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #b8a060 0%, #8a7030 100%);
  border-radius: 60% 40% 0 0 / 20% 10% 0 0;
}
.scn-field-of-cloth-gold-splendor .tent-1 {
  position: absolute; bottom: 25%; left: 20%; width: 30%; height: 50%;
  background: linear-gradient(135deg, #d8b060 0%, #a08040 70%, #806030 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: fcg-tent 10s ease-in-out infinite alternate;
}
.scn-field-of-cloth-gold-splendor .tent-2 {
  position: absolute; bottom: 25%; right: 15%; width: 35%; height: 55%;
  background: linear-gradient(225deg, #d8b060 0%, #a08040 70%, #806030 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: fcg-tent 12s ease-in-out infinite alternate-reverse;
}
.scn-field-of-cloth-gold-splendor .flag-1 {
  position: absolute; top: 5%; left: 18%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #d8a030 0%, #b08020 100%);
  border-radius: 0 50% 0 0;
  transform-origin: bottom left;
  animation: fcg-flag 3s ease-in-out infinite alternate;
}
.scn-field-of-cloth-gold-splendor .flag-2 {
  position: absolute; top: 8%; right: 20%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #d8a030 0%, #b08020 100%);
  border-radius: 50% 0 0 0;
  transform-origin: bottom right;
  animation: fcg-flag 3.5s ease-in-out infinite alternate-reverse;
}
.scn-field-of-cloth-gold-splendor .king-figure {
  position: absolute; bottom: 20%; left: 48%; width: 8%; height: 35%;
  background: radial-gradient(ellipse at 50% 20%, #d8c080 0%, #a08040 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fcg-king 5s ease-in-out infinite;
}
.scn-field-of-cloth-gold-splendor .gold-cloth {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(90deg, transparent 0%, #e0c070 20%, #f0d890 50%, #e0c070 80%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: fcg-cloth 8s linear infinite;
}
.scn-field-of-cloth-gold-splendor .sunburst {
  position: absolute; top: 2%; left: 40%; width: 20%; height: 25%;
  background: radial-gradient(circle, #fff8e0 0%, #f0d0a0 30%, transparent 70%);
  border-radius: 50%;
  animation: fcg-sun 15s ease-in-out infinite alternate;
}
@keyframes fcg-tent {
  0% { transform: skewX(-2deg); }
  50% { transform: skewX(2deg); }
  100% { transform: skewX(-1deg); }
}
@keyframes fcg-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-3deg); }
}
@keyframes fcg-king {
  0%,100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
}
@keyframes fcg-cloth {
  0% { transform: translateX(-5%) scaleX(1); }
  50% { transform: translateX(5%) scaleX(1.05); }
  100% { transform: translateX(-5%) scaleX(1); }
}
@keyframes fcg-sun {
  0% { opacity: 0.7; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}

/* buckingham-resentment-prophecy (brp) */
.scn-buckingham-resentment-prophecy {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #1a1620 40%, #100e18 100%),
    radial-gradient(ellipse at 40% 50%, #1a1620 0%, transparent 70%);
}
.scn-buckingham-resentment-prophecy .bg-darkness {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #0e0c12 0%, #1c1824 100%);
}
.scn-buckingham-resentment-prophecy .figure-profile {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #2c2430 0%, #141018 100%);
  border-radius: 60% 30% 30% 40% / 70% 40% 40% 50%;
  transform-origin: bottom center;
  animation: brp-figure 6s ease-in-out infinite;
}
.scn-buckingham-resentment-prophecy .shoulder {
  position: absolute; bottom: 15%; left: 27%; width: 25%; height: 25%;
  background: linear-gradient(180deg, #242020 0%, #141018 100%);
  border-radius: 50% 20% 20% 50% / 60% 30% 30% 60%;
}
.scn-buckingham-resentment-prophecy .candle-flame {
  position: absolute; bottom: 35%; left: 48%; width: 3%; height: 5%;
  background: radial-gradient(ellipse at center, #ffd080 0%, #d08020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  animation: brp-flame 1.2s ease-in-out infinite alternate;
}
.scn-buckingham-resentment-prophecy .candle-body {
  position: absolute; bottom: 30%; left: 47.5%; width: 1.5%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
}
.scn-buckingham-resentment-prophecy .glow-ring {
  position: absolute; bottom: 32%; left: 44%; width: 12%; height: 12%;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: brp-glow 3s ease-in-out infinite alternate;
}
.scn-buckingham-resentment-prophecy .hand {
  position: absolute; bottom: 22%; left: 40%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #2c2430 0%, #1a1620 100%);
  border-radius: 40% 60% 20% 20% / 50% 70% 30% 30%;
  transform-origin: top left;
  animation: brp-hand 5s ease-in-out infinite;
}
@keyframes brp-figure {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-3px) rotate(1deg); }
  60% { transform: translateY(0) rotate(0deg); }
}
@keyframes brp-flame {
  0% { transform: scaleY(0.8) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.3) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(0); opacity: 0.95; }
}
@keyframes brp-glow {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}
@keyframes brp-hand {
  0% { transform: rotate(-5deg); }
  30% { transform: rotate(0deg); }
  60% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}

/* buckingham-confrontation-arrest (bca) */
.scn-buckingham-confrontation-arrest {
  background: 
    linear-gradient(180deg, #6a5a4a 0%, #8a7a6a 30%, #ad9a80 60%, #c8b8a0 100%),
    radial-gradient(ellipse at 50% 0%, #d8c8b0 0%, transparent 60%);
}
.scn-buckingham-confrontation-arrest .bg-court {
  position: absolute; inset: 0 0 0 0;
  background: 
    linear-gradient(90deg, #7a6a5a 0%, #9a8a7a 50%, #7a6a5a 100%),
    repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(0,0,0,0.05) 20px, rgba(0,0,0,0.05) 21px);
}
.scn-buckingham-confrontation-arrest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-buckingham-confrontation-arrest .column-left {
  position: absolute; left: 10%; top: 0; width: 5%; height: 100%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-buckingham-confrontation-arrest .column-right {
  position: absolute; right: 10%; top: 0; width: 5%; height: 100%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
}
.scn-buckingham-confrontation-arrest .figure-buckingham {
  position: absolute; bottom: 15%; left: 25%; width: 10%; height: 55%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bca-fig-left 3s ease-in-out infinite;
}
.scn-buckingham-confrontation-arrest .figure-wolsey {
  position: absolute; bottom: 15%; right: 25%; width: 10%; height: 55%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bca-fig-right 3.2s ease-in-out infinite;
}
.scn-buckingham-confrontation-arrest .light-beam {
  position: absolute; top: 5%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,200,0.15) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: bca-beam 4s ease-in-out infinite alternate;
}
@keyframes bca-fig-left {
  0%,100% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-4px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  80% { transform: translateY(-2px) rotate(0deg); }
}
@keyframes bca-fig-right {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  55% { transform: translateY(0) rotate(1deg); }
}
@keyframes bca-beam {
  0% { opacity: 0.1; transform: scaleX(0.8); }
  50% { opacity: 0.3; transform: scaleX(1.2); }
  100% { opacity: 0.15; transform: scaleX(1); }
}

/* Scene: anne-gives-birth-cranmer-rising (dark dim interior) */
.scn-anne-gives-birth-cranmer-rising {
  background: linear-gradient(135deg, #1b0e0e 0%, #2b1416 40%, #0f0707 100%),
              radial-gradient(ellipse at 70% 60%, #3a1a1c 0%, transparent 60%);
}
.scn-anne-gives-birth-cranmer-rising .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1315 0%, #14080a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
  animation: agb-wall 12s ease-in-out infinite alternate;
}
.scn-anne-gives-birth-cranmer-rising .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1b0e0e 0%, #0f0707 100%);
}
.scn-anne-gives-birth-cranmer-rising .bed {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1414 100%);
  border-radius: 12px 12px 4px 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: agb-bed 6s ease-in-out infinite;
}
.scn-anne-gives-birth-cranmer-rising .queen {
  position: absolute; bottom: 28%; left: 48%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #5a2e2e 0%, #2a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: agb-queen 4s ease-in-out infinite;
}
.scn-anne-gives-birth-cranmer-rising .old-lady {
  position: absolute; bottom: 26%; left: 58%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #3a1e1e 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: agb-old-lady 5s ease-in-out infinite alternate;
}
.scn-anne-gives-birth-cranmer-rising .king {
  position: absolute; bottom: 24%; left: 30%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #2a1414 0%, #0f0707 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: agb-king 7s ease-in-out infinite;
}
.scn-anne-gives-birth-cranmer-rising .window {
  position: absolute; top: 10%; left: 65%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #5a3a2a 0%, #2a1a10 70%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px #7a5a4a, 0 0 30px rgba(90,58,42,0.3);
  animation: agb-window 8s ease-in-out infinite alternate;
}
.scn-anne-gives-birth-cranmer-rising .candle {
  position: absolute; bottom: 32%; left: 38%; width: 6px; height: 10px;
  background: radial-gradient(ellipse at center, #d08050 0%, #a06030 50%, #3a2010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 18px 6px #c07050;
  animation: agb-candle 2s ease-in-out infinite alternate;
}
@keyframes agb-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes agb-bed { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes agb-queen { 0% { transform: translate(0, 0) rotate(-1deg); } 25% { transform: translate(1px, -2px) rotate(0deg); } 50% { transform: translate(2px, -1px) rotate(1deg); } 75% { transform: translate(1px, -3px) rotate(0deg); } 100% { transform: translate(0, 0) rotate(-1deg); } }
@keyframes agb-old-lady { 0% { transform: translate(0, 0) rotate(-2deg); } 50% { transform: translate(3px, -2px) rotate(3deg); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes agb-king { 0%,100% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(4px, -3px) rotate(2deg); } }
@keyframes agb-window { 0% { opacity: 0.6; box-shadow: inset 0 0 10px #5a3a2a; } 50% { opacity: 0.9; box-shadow: inset 0 0 20px #8a5a4a, 0 0 40px rgba(90,58,42,0.5); } 100% { opacity: 0.7; } }
@keyframes agb-candle { 0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 18px 6px #c07050; } 50% { transform: scale(1.05) translate(1px, -1px); box-shadow: 0 0 24px 8px #e09070; } 100% { transform: scale(1) translate(0, 0); } }

/* Scene: item-kings-ring (tense bright interior) */
.scn-item-kings-ring {
  background: linear-gradient(135deg, #f5ecd0 0%, #d4bf90 40%, #e8dab0 100%),
              radial-gradient(ellipse at 50% 40%, #ffffff 0%, transparent 60%);
}
.scn-item-kings-ring .chamber-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8dab0 0%, #c4ae80 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.2);
  animation: ikr-wall 16s ease-in-out infinite alternate;
}
.scn-item-kings-ring .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.5);
  animation: ikr-table 10s ease-in-out infinite;
}
.scn-item-kings-ring .council-left {
  position: absolute; bottom: 25%; left: 5%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ikr-council 6s ease-in-out infinite alternate;
}
.scn-item-kings-ring .council-right {
  position: absolute; bottom: 25%; right: 5%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: ikr-council 6s ease-in-out infinite alternate-reverse;
}
.scn-item-kings-ring .cranmer {
  position: absolute; bottom: 22%; left: 44%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: ikr-cranmer 4s ease-in-out infinite;
}
.scn-item-kings-ring .ring-glow {
  position: absolute; bottom: 32%; left: 46%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd070 0%, #c09050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffc060, 0 0 60px 20px rgba(255,192,96,0.4);
  animation: ikr-ring 1.5s ease-in-out infinite alternate;
}
.scn-item-kings-ring .king-standing {
  position: absolute; bottom: 24%; left: 52%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0f0700 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ikr-king 8s ease-in-out infinite;
}
@keyframes ikr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ikr-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ikr-council { 0% { transform: translate(0, 0) rotate(-1deg); } 50% { transform: translate(2px, -2px) rotate(2deg); } 100% { transform: translate(0, 0) rotate(-1deg); } }
@keyframes ikr-cranmer { 0% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(2px, -1px) rotate(0); } 50% { transform: translate(0, -3px) rotate(2deg); } 75% { transform: translate(-2px, -1px) rotate(0); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes ikr-ring { 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.3) rotate(10deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); opacity: 0.85; } }
@keyframes ikr-king { 0%,100% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(3px, -2px) rotate(3deg); } }

/* Scene: christening-prophetcy-part1 (warm bright interior) */
.scn-christening-prophetcy-part1 {
  background: linear-gradient(135deg, #fef0d0 0%, #e8d4a0 40%, #f5e6c0 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 60%);
}
.scn-christening-prophetcy-part1 .arch {
  position: absolute; top: 0; left: 50%; width: 180px; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4bf90 0%, #b8a070 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 8px 30px rgba(0,0,0,0.3);
  animation: cpp-arch 14s ease-in-out infinite alternate;
}
.scn-christening-prophetcy-part1 .crowd-left {
  position: absolute; bottom: 20%; left: 2%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: cpp-crowd 5s ease-in-out infinite alternate;
}
.scn-christening-prophetcy-part1 .crowd-right {
  position: absolute; bottom: 20%; right: 2%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: cpp-crowd 5s ease-in-out infinite alternate-reverse;
}
.scn-christening-prophetcy-part1 .porter {
  position: absolute; bottom: 22%; left: 35%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cpp-porter 3s ease-in-out infinite;
}
.scn-christening-prophetcy-part1 .porter-man {
  position: absolute; bottom: 22%; left: 43%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: cpp-porter-man 3.2s ease-in-out infinite alternate;
}
.scn-christening-prophetcy-part1 .procession-front {
  position: absolute; bottom: 18%; left: 48%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #e8d4a0 0%, #c4ae80 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cpp-procession 8s ease-in-out infinite;
}
.scn-christening-prophetcy-part1 .baby-banner {
  position: absolute; bottom: 24%; left: 50%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b090 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 5px rgba(255,223,186,0.5);
  animation: cpp-banner 4s ease-in-out infinite alternate;
}
@keyframes cpp-arch { 0% { opacity: 0.9; transform: translateX(-50%) scaleY(1); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.02); } 100% { opacity: 0.95; } }
@keyframes cpp-crowd { 0% { transform: translate(0, 0) rotate(-2deg); } 50% { transform: translate(3px, -2px) rotate(3deg); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes cpp-porter { 0%,100% { transform: translate(0, 0) rotate(-3deg); } 25% { transform: translate(3px, -2px) rotate(0); } 50% { transform: translate(0, -4px) rotate(3deg); } 75% { transform: translate(-3px, -2px) rotate(0); } }
@keyframes cpp-porter-man { 0% { transform: translate(0, 0) rotate(-2deg); } 50% { transform: translate(4px, -3px) rotate(4deg); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes cpp-procession { 0%,100% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(2px, -2px) rotate(2deg); } }
@keyframes cpp-banner { 0% { transform: translateX(-50%) scale(1) rotate(-5deg); } 50% { transform: translateX(-50%) scale(1.1) rotate(5deg); } 100% { transform: translateX(-50%) scale(1) rotate(-5deg); } }

/* Scene: final-scene-headings (warm bright interior) */
.scn-final-scene-headings {
  background: linear-gradient(135deg, #fef4d0 0%, #e8d4a0 30%, #f5e6c0 100%),
              radial-gradient(ellipse at 50% 40%, #fff0c0 0%, transparent 60%);
}
.scn-final-scene-headings .great-hall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d4a0 0%, #c4ae80 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.15);
  animation: fsh-hall 18s ease-in-out infinite alternate;
}
.scn-final-scene-headings .throne {
  position: absolute; bottom: 18%; left: 50%; width: 60px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b8a070 0%, #8a6a4a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: fsh-throne 10s ease-in-out infinite;
}
.scn-final-scene-headings .king-throned {
  position: absolute; bottom: 24%; left: 50%; width: 26px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #0f0700 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: fsh-king 7s ease-in-out infinite;
}
.scn-final-scene-headings .cranmer-bow {
  position: absolute; bottom: 20%; left: 42%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: fsh-cranmer 5s ease-in-out infinite;
}
.scn-final-scene-headings .courtier-left {
  position: absolute; bottom: 22%; left: 10%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: fsh-courtier 8s ease-in-out infinite alternate;
}
.scn-final-scene-headings .courtier-right {
  position: absolute; bottom: 22%; right: 10%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: fsh-courtier 8s ease-in-out infinite alternate-reverse;
}
.scn-final-scene-headings .celebrate-ribbon {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #e8c050 0%, #c09030 100%);
  border-radius: 4px;
  transform: translateX(-50%) rotate(-10deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: fsh-ribbon 3s ease-in-out infinite alternate;
}
@keyframes fsh-hall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fsh-throne { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes fsh-king { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(2deg); } }
@keyframes fsh-cranmer { 0% { transform: translate(0, 0) rotate(-3deg); } 25% { transform: translate(2px, -2px) rotate(0); } 50% { transform: translate(0, -4px) rotate(3deg); } 75% { transform: translate(-2px, -2px) rotate(0); } 100% { transform: translate(0, 0) rotate(-3deg); } }
@keyframes fsh-courtier { 0% { transform: translate(0, 0) rotate(-1deg); } 50% { transform: translate(3px, -2px) rotate(2deg); } 100% { transform: translate(0, 0) rotate(-1deg); } }
@keyframes fsh-ribbon { 0% { transform: translateX(-50%) rotate(-10deg) scaleX(1); } 50% { transform: translateX(-50%) rotate(5deg) scaleX(1.2); } 100% { transform: translateX(-50%) rotate(-10deg) scaleX(1); } }

/* --- scene: item-letters-pardon (tense, bright interior) --- */
.scn-item-letters-pardon {
  background:
    linear-gradient(180deg, #f5efe0 0%, #e8dcc8 40%, #c4b89a 100%),
    radial-gradient(circle at 70% 30%, #fff8e0 30%, transparent 80%);
  background-blend-mode: overlay;
}
.scn-item-letters-pardon .bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #fff8e8 0%, #d4c8b0 40%, #a89878 100%);
}
.scn-item-letters-pardon .window {
  position: absolute; top: 12%; left: 65%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 40%, #b0d0f0 0%, #7a9cc0 100%);
  border-radius: 8px; box-shadow: 0 0 60px 30px rgba(255,255,200,0.4) inset;
  animation: ilp-window 8s ease-in-out infinite alternate;
}
.scn-item-letters-pardon .lightbeam {
  position: absolute; top: 12%; left: 65%; width: 100px; height: 200px;
  background: linear-gradient(135deg, rgba(255,255,220,0.5) 0%, transparent 100%);
  filter: blur(4px); transform-origin: top left;
  animation: ilp-beam 3s ease-in-out infinite alternate;
}
.scn-item-letters-pardon .queen {
  position: absolute; bottom: 22%; left: 40%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ilp-queen 4s ease-in-out infinite;
}
.scn-item-letters-pardon .scroll {
  position: absolute; bottom: 20%; left: 46%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #f0e8d0 0%, #c8b898 100%);
  border-radius: 30% / 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: ilp-scroll 6s ease-in-out infinite;
}
.scn-item-letters-pardon .throne {
  position: absolute; bottom: 20%; right: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 0 10px 30px rgba(0,0,0,0.6);
}
@keyframes ilp-window {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 0.9; filter: brightness(1.1); }
  100% { opacity: 0.8; filter: brightness(1.0); }
}
@keyframes ilp-beam {
  0% { transform: scaleX(0.95) rotate(-2deg); opacity: 0.6; }
  50% { transform: scaleX(1.05) rotate(2deg); opacity: 0.8; }
  100% { transform: scaleX(0.98) rotate(0deg); opacity: 0.7; }
}
@keyframes ilp-queen {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ilp-scroll {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.7; }
  50% { transform: translateY(-4px) rotate(5deg); opacity: 0.9; }
  100% { transform: translateY(0) rotate(2deg); opacity: 0.8; }
}

/* --- scene: surveyor-testimony-treason (dark, bright interior) --- */
.scn-surveyor-testimony-treason {
  background:
    linear-gradient(135deg, #1e1e2a 0%, #2a2a3e 40%, #3a3a4e 100%),
    radial-gradient(circle at 50% 20%, #ffffff 10%, transparent 70%);
}
.scn-surveyor-testimony-treason .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #151520 0%, #252538 50%, #181828 100%);
}
.scn-surveyor-testimony-treason .spotlight {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(240,240,255,0.3) 0%, rgba(200,200,220,0.1) 50%, transparent 100%);
  filter: blur(8px);
  animation: stt-spotlight 5s ease-in-out infinite alternate;
}
.scn-surveyor-testimony-treason .surveyor {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stt-surveyor 6s ease-in-out infinite;
}
.scn-surveyor-testimony-treason .bench {
  position: absolute; bottom: 30%; right: 15%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.8);
}
.scn-surveyor-testimony-treason .table {
  position: absolute; bottom: 22%; left: 20%; width: 70px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px; box-shadow: 0 6px 15px rgba(0,0,0,0.5);
}
.scn-surveyor-testimony-treason .paper {
  position: absolute; bottom: 23%; left: 22%; width: 20px; height: 15px;
  background: #d8d0b8; border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: stt-paper 4s ease-in-out infinite;
}
@keyframes stt-spotlight {
  0% { opacity: 0.6; filter: blur(10px); }
  50% { opacity: 0.8; filter: blur(6px); }
  100% { opacity: 0.7; filter: blur(8px); }
}
@keyframes stt-surveyor {
  0% { transform: translateX(0) rotate(-1deg); }
  30% { transform: translateX(3px) rotate(2deg); }
  60% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes stt-paper {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(10deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}

/* --- scene: mock-french-fashions (funny, dim interior) --- */
.scn-mock-french-fashions {
  background:
    linear-gradient(180deg, #3a2a3e 0%, #2a1a2e 50%, #1a0a1e 100%),
    radial-gradient(circle at 40% 30%, #4a3a4e 30%, transparent 80%);
}
.scn-mock-french-fashions .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a4a 0%, #2a1a2a 50%, #1a0a1a 100%);
}
.scn-mock-french-fashions .figure-hat {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mff-hat-figure 2s ease-in-out infinite;
}
.scn-mock-french-fashions .figure-puff {
  position: absolute; bottom: 30%; right: 25%; width: 35px; height: 65px;
  background: linear-gradient(180deg, #5a7a3a 0%, #2a4a1a 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 60% 60%;
  transform-origin: bottom center;
  animation: mff-puff-figure 2.5s ease-in-out infinite alternate;
}
.scn-mock-french-fashions .ruff {
  position: absolute; bottom: 35%; left: 22%; width: 40px; height: 15px;
  background: radial-gradient(ellipse at 50% 50%, #f0e8d0 0%, #d8c8b0 100%);
  border-radius: 50%; filter: blur(2px);
  animation: mff-ruff 3s ease-in-out infinite;
}
.scn-mock-french-fashions .mirror {
  position: absolute; top: 20%; left: 50%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #a0a0b0 0%, #606070 100%);
  border-radius: 10% / 20%; box-shadow: 0 0 30px rgba(200,200,220,0.2);
  animation: mff-mirror 6s ease-in-out infinite;
}
@keyframes mff-hat-figure {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-8px) rotate(3deg); }
  50% { transform: translateY(-4px) rotate(-8deg); }
  75% { transform: translateY(-2px) rotate(6deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes mff-puff-figure {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-8px) scaleY(0.95); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes mff-ruff {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(10deg); }
  100% { transform: scale(0.95) rotate(-5deg); }
}
@keyframes mff-mirror {
  0% { opacity: 0.6; filter: blur(2px); }
  50% { opacity: 0.9; filter: blur(0px); }
  100% { opacity: 0.7; filter: blur(1px); }
}

/* --- scene: wolsey-feast-york-place (warm, firelit) --- */
.scn-wolsey-feast-york-place {
  background:
    linear-gradient(180deg, #3a1a0a 0%, #2a1208 40%, #1a0804 100%),
    radial-gradient(circle at 30% 50%, #c8553d 20%, transparent 80%);
  background-blend-mode: screen;
}
.scn-wolsey-feast-york-place .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1208 0%, #1a0804 100%);
}
.scn-wolsey-feast-york-place .fireplace {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 130px;
  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.8);
}
.scn-wolsey-feast-york-place .fire {
  position: absolute; bottom: 30%; left: 23%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #ffaa40 0%, #c8553d 70%, transparent 100%);
  filter: blur(6px);
  animation: wfy-fire 3s ease-in-out infinite alternate;
}
.scn-wolsey-feast-york-place .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-wolsey-feast-york-place .goblet {
  position: absolute; bottom: 22%; left: 50%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 15px rgba(200,150,80,0.4);
  animation: wfy-goblet 5s ease-in-out infinite;
}
.scn-wolsey-feast-york-place .wolsey {
  position: absolute; bottom: 20%; left: 38%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wfy-wolsey 7s ease-in-out infinite;
}
.scn-wolsey-feast-york-place .dancers {
  position: absolute; bottom: 20%; right: 15%; width: 50px; height: 80px;
  background: linear-gradient(135deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: wfy-dancers 4s ease-in-out infinite alternate;
}
@keyframes wfy-fire {
  0% { transform: scaleY(0.9) translateY(0); opacity: 0.7; filter: blur(8px); }
  50% { transform: scaleY(1.1) translateY(-5px); opacity: 1; filter: blur(4px); }
  100% { transform: scaleY(1) translateY(-2px); opacity: 0.8; filter: blur(6px); }
}
@keyframes wfy-goblet {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-3px); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  75% { transform: rotate(4deg) translateY(-4px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes wfy-wolsey {
  0% { transform: translateX(0) rotate(0); }
  30% { transform: translateX(-4px) rotate(-2deg); }
  60% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes wfy-dancers {
  0% { transform: translateX(0) rotate(-10deg) scaleX(1); }
  50% { transform: translateX(-10px) rotate(10deg) scaleX(0.95); }
  100% { transform: translateX(0) rotate(-5deg) scaleX(1); }
}

/* anne-bullen-marchioness – warm, dim-interior */
.scn-anne-bullen-marchioness {
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 50%, #1a0e08 100%),
              radial-gradient(ellipse at 50% 100%, #c8553d 0%, transparent 60%);
}
.scn-anne-bullen-marchioness .background {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(135deg, #6a5040 0%, #3a2a1e 100%);
  border-radius: 10% 10% 0 0;
}
.scn-anne-bullen-marchioness .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  box-shadow: inset 0 20px 20px rgba(0,0,0,0.5);
}
.scn-anne-bullen-marchioness .table {
  position:absolute; bottom:25%; left:35%; width:25%; height:8%;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2215 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: amb-table 12s ease-in-out infinite;
}
.scn-anne-bullen-marchioness .candle {
  position:absolute; bottom:30%; left:45%; width:6px; height:20px;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a070 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,160,112,0.6);
  animation: amb-candle 3s ease-in-out infinite alternate;
}
.scn-anne-bullen-marchioness .figure.anne {
  position:absolute; bottom:20%; left:30%; width:24px; height:50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: amb-figureA 8s ease-in-out infinite;
}
.scn-anne-bullen-marchioness .figure.lady {
  position:absolute; bottom:20%; left:55%; width:22px; height:48px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: amb-figureB 10s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-anne-bullen-marchioness .curtain {
  position:absolute; top:0; left:75%; width:20%; height:100%;
  background: linear-gradient(180deg, #7a4a30 0%, #4a2a18 100%);
  border-radius: 0 0 20% 0;
  box-shadow: -10px 0 20px rgba(0,0,0,0.4);
  animation: amb-curtain 20s linear infinite alternate;
}
@keyframes amb-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98) rotate(0.5deg); } 100% { transform: scaleY(1); } }
@keyframes amb-candle { 0% { box-shadow: 0 0 15px 6px rgba(200,160,112,0.5); opacity:0.9; } 50% { box-shadow: 0 0 25px 10px rgba(200,160,112,0.8); opacity:1; } 100% { box-shadow: 0 0 18px 7px rgba(200,160,112,0.6); opacity:0.92; } }
@keyframes amb-figureA { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes amb-figureB { 0% { transform: translateY(0) rotate(1deg); } 30% { transform: translateY(-3px) rotate(-1deg); } 60% { transform: translateY(0) rotate(0.5deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes amb-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(5px); } }

/* katharine-challenges-court – tense, bright-interior */
.scn-katharine-challenges-court {
  background: linear-gradient(180deg, #e8d8c0 0%, #c8b8a0 40%, #a89880 100%),
              radial-gradient(ellipse at 50% 80%, #f0e8d8 0%, transparent 70%);
}
.scn-katharine-challenges-court .backdrop {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #d8c8b0 0%, #b8a888 100%);
  border-bottom: 4px solid #8a7a6a;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.2);
}
.scn-katharine-challenges-court .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-katharine-challenges-court .throne {
  position:absolute; bottom:28%; left:45%; width:40px; height:60px;
  background: linear-gradient(180deg, #c8a050 0%, #a08040 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: kcc-throne 6s ease-in-out infinite alternate;
}
.scn-katharine-challenges-court .figure.king {
  position:absolute; bottom:30%; left:38%; width:28px; height:60px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: kcc-king 4s ease-in-out infinite;
}
.scn-katharine-challenges-court .figure.queen {
  position:absolute; bottom:20%; left:55%; width:24px; height:45px;
  background: linear-gradient(180deg, #5a3a28 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg) translateY(-5px);
  transform-origin: bottom center;
  animation: kcc-queen 5s ease-in-out infinite;
}
.scn-katharine-challenges-court .figure.wolsey {
  position:absolute; bottom:28%; left:65%; width:22px; height:55px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e08 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kcc-wolsey 7s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-katharine-challenges-court .banner {
  position:absolute; top:10%; left:10%; width:30px; height:60px;
  background: linear-gradient(180deg, #a0461a 0%, #702010 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
  transform-origin: top left;
  animation: kcc-banner 8s ease-in-out infinite alternate;
}
@keyframes kcc-throne { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.02) rotate(1deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes kcc-king { 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(0deg); } }
@keyframes kcc-queen { 0% { transform: rotate(-20deg) translateY(-5px); } 50% { transform: rotate(-18deg) translateY(-6px); } 100% { transform: rotate(-20deg) translateY(-5px); } }
@keyframes kcc-wolsey { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(-1deg); } 60% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(1px) rotate(0deg); } }
@keyframes kcc-banner { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* katharine-rejects-cardinals – dark mood, bright-interior */
.scn-katharine-rejects-cardinals {
  background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 50%, #5a4a3a 100%),
              radial-gradient(ellipse at 30% 50%, #e8d8c8 0%, transparent 60%);
}
.scn-katharine-rejects-cardinals .background {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(135deg, #c8b8a8 0%, #a89888 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 -40px 40px rgba(0,0,0,0.4);
}
.scn-katharine-rejects-cardinals .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-katharine-rejects-cardinals .chair {
  position:absolute; bottom:22%; left:40%; width:30px; height:40px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: krc-chair 10s ease-in-out infinite alternate;
}
.scn-katharine-rejects-cardinals .figure.queen {
  position:absolute; bottom:20%; left:42%; width:22px; height:45px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: krc-queen 6s ease-in-out infinite;
}
.scn-katharine-rejects-cardinals .figure.cardinal1 {
  position:absolute; bottom:22%; left:55%; width:20px; height:50px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: krc-card1 8s ease-in-out infinite;
}
.scn-katharine-rejects-cardinals .figure.cardinal2 {
  position:absolute; bottom:22%; left:30%; width:20px; height:50px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e10 100%);
  border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: krc-card2 9s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-katharine-rejects-cardinals .cross {
  position:absolute; top:15%; left:48%; width:4px; height:30px;
  background: #c8a070;
  border-radius: 20%;
  box-shadow: 0 0 10px 2px rgba(200,160,112,0.5);
  animation: krc-cross 5s ease-in-out infinite alternate;
}
@keyframes krc-chair { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.01) rotate(1deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes krc-queen { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(-0.5deg); } }
@keyframes krc-card1 { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(1px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes krc-card2 { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(2px) rotate(-1deg); } 40% { transform: translateX(0) rotate(0.5deg); } 60% { transform: translateX(-1px) rotate(-0.5deg); } 80% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes krc-cross { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }

/* lords-plot-against-wolsey – tense, dim-interior */
.scn-lords-plot-against-wolsey {
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1e 50%, #060610 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-lords-plot-against-wolsey .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-bottom: 4px solid #0a0a14;
}
.scn-lords-plot-against-wolsey .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-lords-plot-against-wolsey .table {
  position:absolute; bottom:20%; left:20%; width:60%; height:8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  transform-origin: center;
  animation: lpw-table 15s ease-in-out infinite alternate;
}
.scn-lords-plot-against-wolsey .figure.lord1 {
  position:absolute; bottom:18%; left:25%; width:20px; height:40px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpw-lord1 7s ease-in-out infinite;
}
.scn-lords-plot-against-wolsey .figure.lord2 {
  position:absolute; bottom:18%; left:48%; width:20px; height:40px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpw-lord2 9s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-lords-plot-against-wolsey .figure.lord3 {
  position:absolute; bottom:18%; left:70%; width:20px; height:40px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lpw-lord3 8s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-lords-plot-against-wolsey .candle {
  position:absolute; bottom:28%; left:45%; width:4px; height:18px;
  background: linear-gradient(180deg, #e8c8a0 0%, #c8a070 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,160,112,0.5);
  animation: lpw-candle 3s ease-in-out infinite alternate;
}
.scn-lords-plot-against-wolsey .scroll {
  position:absolute; bottom:22%; left:35%; width:20px; height:6px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: center left;
  animation: lpw-scroll 12s ease-in-out infinite;
}
@keyframes lpw-table { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(0.99) rotate(0.5deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes lpw-lord1 { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-1px) rotate(1deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes lpw-lord2 { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lpw-lord3 { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(2deg); } 40% { transform: translateY(0) rotate(-1deg); } 60% { transform: translateY(-1px) rotate(0deg); } 80% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lpw-candle { 0% { box-shadow: 0 0 14px 5px rgba(200,160,112,0.4); opacity:0.9; } 50% { box-shadow: 0 0 24px 10px rgba(200,160,112,0.7); opacity:1; } 100% { box-shadow: 0 0 16px 6px rgba(200,160,112,0.5); opacity:0.93; } }
@keyframes lpw-scroll { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
/* end per-scene blocks */
