/* 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-plot-revealed-to-tailor {
  background: linear-gradient(180deg, #1b1b2f 0%, #2d2d44 40%, #0d0d1a 100%), radial-gradient(ellipse at 50% 100%, #1b1b2f 0%, transparent 70%);
}
.scn-plot-revealed-to-tailor .bg-wall {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #1c1c2e 0%, #13132a 50%, #0a0a1c 100%);
  animation: prt-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-plot-revealed-to-tailor .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2b231a 0%, #1c1610 50%, #0f0b07 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-plot-revealed-to-tailor .bed {
  position: absolute; bottom: 18%; left: 50%; width: 140px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3c2e 0%, #2e241a 100%);
  border-radius: 4px 4px 12px 12px;
  box-shadow: 0 6px 10px rgba(0,0,0,.5);
}
.scn-plot-revealed-to-tailor .blanket {
  position: absolute; bottom: 20%; left: 46%; width: 110px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  border-radius: 0 8px 8px 0;
  animation: prt-blanket-shift 8s ease-in-out infinite alternate;
}
.scn-plot-revealed-to-tailor .figure-tailor {
  position: absolute; bottom: 24%; left: 50%; width: 28px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #12121e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: prt-sit-shiver 3s ease-in-out infinite;
}
.scn-plot-revealed-to-tailor .window {
  position: absolute; top: 15%; left: 70%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #d0d8e8 0%, #8090b0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(255,255,255,.3), 0 0 20px 4px rgba(180,200,255,.15);
  animation: prt-window-glow 5s ease-in-out infinite alternate;
}
.scn-plot-revealed-to-tailor .candle {
  position: absolute; bottom: 30%; left: 30%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #e8a040 60%, #a06020 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 6px #e8a040, 0 0 40px 12px rgba(232,160,64,.3);
  animation: prt-candle-flicker 2s ease-in-out infinite alternate;
}
@keyframes prt-wall-pulse {
  0% { opacity: .85; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes prt-blanket-shift {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}
@keyframes prt-sit-shiver {
  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(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes prt-window-glow {
  0% { box-shadow: inset 0 0 10px rgba(255,255,255,.2), 0 0 15px 2px rgba(180,200,255,.1); opacity: .8; }
  50% { box-shadow: inset 0 0 15px rgba(255,255,255,.4), 0 0 25px 6px rgba(180,200,255,.2); opacity: 1; }
  100% { box-shadow: inset 0 0 10px rgba(255,255,255,.25), 0 0 18px 3px rgba(180,200,255,.15); opacity: .85; }
}
@keyframes prt-candle-flicker {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 18px 4px #e8a040, 0 0 30px 8px rgba(232,160,64,.2); }
  50% { transform: scaleY(1.08) scaleX(0.97); opacity: 1; box-shadow: 0 0 24px 8px #f0b050, 0 0 40px 14px rgba(240,176,80,.35); }
  100% { transform: scaleY(0.95) scaleX(1.02); opacity: .85; box-shadow: 0 0 16px 3px #d09030, 0 0 25px 5px rgba(208,144,48,.2); }
}

.scn-item-doublet {
  background: linear-gradient(180deg, #1a1410 0%, #0f0b07 40%, #050302 100%), radial-gradient(ellipse at 50% 20%, #2a1e14 0%, transparent 80%);
}
.scn-item-doublet .bg-workshop {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1c1610 0%, #120c08 60%, #080502 100%);
}
.scn-item-doublet .wall-shelf {
  position: absolute; top: 8%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #2c221a 0%, #1e1610 100%);
  border-radius: 2px;
  box-shadow: inset 0 4px 6px rgba(0,0,0,.5), 0 2px 4px rgba(0,0,0,.3);
}
.scn-item-doublet .floor-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a120a 100%);
  box-shadow: inset 0 8px 10px rgba(0,0,0,.6);
}
.scn-item-doublet .tailor {
  position: absolute; bottom: 22%; left: 30%; width: 36px; height: 56px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: itd-tailor-pose 4s ease-in-out infinite;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-item-doublet .boy {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 34px;
  background: linear-gradient(180deg, #2e2218 0%, #1a100c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: itd-boy-cower 3.5s ease-in-out infinite alternate;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
.scn-item-doublet .lantern {
  position: absolute; top: 20%; left: 10%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #ffc050 0%, #b08030 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 30px 8px #ffb040, 0 0 50px 16px rgba(255,176,64,.3);
  animation: itd-lantern-swing 6s ease-in-out infinite;
  transform-origin: top center;
}
.scn-item-doublet .stool {
  position: absolute; bottom: 14%; left: 38%; width: 24px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%);
  border-radius: 2px;
}
.scn-item-doublet .thread-spool {
  position: absolute; bottom: 8%; left: 20%; width: 12px; height: 16px;
  background: linear-gradient(90deg, #a08060 0%, #c8b090 50%, #a08060 100%);
  border-radius: 50%;
  animation: itd-spool-roll 8s linear infinite;
}
@keyframes itd-tailor-pose {
  0% { transform: translateX(0) rotate(0deg) scaleX(1); }
  20% { transform: translateX(2px) rotate(-3deg) scaleX(1.02); }
  40% { transform: translateX(-1px) rotate(4deg) scaleX(0.98); }
  60% { transform: translateX(1px) rotate(-2deg) scaleX(1.01); }
  80% { transform: translateX(-2px) rotate(3deg) scaleX(0.99); }
  100% { transform: translateX(0) rotate(0deg) scaleX(1); }
}
@keyframes itd-boy-cower {
  0% { transform: translateX(0) translateY(0) scaleY(1); }
  50% { transform: translateX(-3px) translateY(-2px) scaleY(0.9); }
  100% { transform: translateX(0) translateY(0) scaleY(1); }
}
@keyframes itd-lantern-swing {
  0% { transform: rotate(-5deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(-7deg); }
  75% { transform: rotate(7deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes itd-spool-roll {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(90deg); }
  50% { transform: translateX(16px) rotate(180deg); }
  75% { transform: translateX(24px) rotate(270deg); }
  100% { transform: translateX(32px) rotate(360deg); }
}

.scn-unicorn-led-to-king { background: linear-gradient(180deg, #fce4b3 0%, #f8d279 40%, #c9975c 100%), radial-gradient(ellipse at 40% 30%, #fff3d4 0%, transparent 60%); }
.scn-unicorn-led-to-king .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fce4b3 0%, #f8d279 100%); animation: ulk-sky 20s ease-in-out infinite alternate; }
.scn-unicorn-led-to-king .field { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #7ab648 0%, #a3d96b 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; transform-origin: bottom; animation: ulk-field 8s ease-in-out infinite alternate; }
.scn-unicorn-led-to-king .castle { position:absolute; right:8%; bottom:30%; width:80px; height:90px; background: linear-gradient(180deg, #dbb06a, #b8863a); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.2); }
.scn-unicorn-led-to-king .castle::after { content:''; position:absolute; top:-16px; left:20px; width:40px; height:20px; background: #dbb06a; border-radius: 50% 50% 0 0; }
.scn-unicorn-led-to-king .tailor { position:absolute; bottom:12%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #6b88b0, #3a5a7a); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ulk-walk 4s ease-in-out infinite; }
.scn-unicorn-led-to-king .unicorn { position:absolute; bottom:10%; left:50%; width:50px; height:60px; background: linear-gradient(180deg, #f0e6d0, #d0b890); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: ulk-trot 3s ease-in-out infinite; }
.scn-unicorn-led-to-king .unicorn::before { content:''; position:absolute; top:-8px; left:20px; width:6px; height:14px; background: linear-gradient(180deg, #f0e0b0, #c8a86a); border-radius: 40% 40% 0 0; transform: rotate(-15deg); }
.scn-unicorn-led-to-king .rope { position:absolute; bottom:24%; left:38%; width:60px; height:2px; background: #6a4a2a; transform-origin: left center; animation: ulk-rope 4s ease-in-out infinite; box-shadow: 0 1px 2px rgba(0,0,0,0.2); }
.scn-unicorn-led-to-king .sunburst { position:absolute; top:5%; left:20%; width:60px; height:60px; background: radial-gradient(circle, #fff8d0 0%, transparent 70%); filter: blur(6px); animation: ulk-sun 8s ease-in-out infinite alternate; }
@keyframes ulk-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ulk-field { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(2px); } 100% { transform: scaleY(1); } }
@keyframes ulk-walk { 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(32px) rotate(0deg); } }
@keyframes ulk-trot { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ulk-rope { 0% { transform: rotate(2deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(2deg); } }
@keyframes ulk-sun { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(0.9); } }

.scn-boar-captured { background: linear-gradient(180deg, #fce4b3 0%, #e8c86a 60%, #a07940 100%), radial-gradient(ellipse at 50% 20%, #fff3d4 0%, transparent 70%); }
.scn-boar-captured .bground { position:absolute; inset:0; background: linear-gradient(180deg, #f0d89a 0%, #c8a86a 100%); }
.scn-boar-captured .bush { position:absolute; bottom:0; left:-10%; width:120%; height:30%; background: linear-gradient(180deg, #7ab648, #4a8030); border-radius: 50% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); animation: boc-bush 6s ease-in-out infinite alternate; }
.scn-boar-captured .boar { position:absolute; bottom:15%; right:20%; width:55px; height:40px; background: linear-gradient(180deg, #5a3a2a, #3a2210); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: boc-charge 2s ease-in-out infinite; }
.scn-boar-captured .boar::before { content:''; position:absolute; top:-10px; left:30px; width:12px; height:10px; background: #2a1a0a; border-radius: 50%; }
.scn-boar-captured .tailor-b { position:absolute; bottom:10%; left:15%; width:18px; height:45px; background: linear-gradient(180deg, #6b88b0, #3a5a7a); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: boc-defend 1.5s ease-in-out infinite; }
.scn-boar-captured .cape { position:absolute; bottom:18%; left:12%; width:30px; height:20px; background: linear-gradient(180deg, #c8553d, #8a2a1a); border-radius: 50% 50% 30% 30%; transform-origin: bottom right; animation: boc-cape 1.5s ease-in-out infinite alternate; }
.scn-boar-captured .dust { position:absolute; bottom:12%; left:45%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,180,130,0.8) 0%, transparent 70%); filter: blur(3px); animation: boc-dust 0.8s ease-out infinite; }
.scn-boar-captured .sparkle { position:absolute; top:20%; left:30%; width:8px; height:8px; background: #fff8d0; border-radius: 50%; box-shadow: 0 0 12px 2px #fff8d0; animation: boc-sparkle 3s ease-in-out infinite alternate; }
@keyframes boc-bush { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(0.98); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes boc-charge { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-10px) rotate(5deg); } 50% { transform: translateX(-20px) rotate(-3deg); } 75% { transform: translateX(-10px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes boc-defend { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(-5deg); } 60% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-1px) rotate(5deg); } }
@keyframes boc-cape { 0% { transform: rotate(0deg) scaleX(1); } 100% { transform: rotate(-20deg) scaleX(0.9); } }
@keyframes boc-dust { 0% { opacity:0.8; transform: translateY(0) scale(1); } 100% { opacity:0; transform: translateY(-20px) scale(2); } }
@keyframes boc-sparkle { 0% { opacity:0.4; transform: scale(0.8) rotate(0deg); } 50% { opacity:1; transform: scale(1.2) rotate(180deg); } 100% { opacity:0.6; transform: scale(0.9) rotate(360deg); } }

.scn-wedding-king-made { background: linear-gradient(180deg, #faf0e6 0%, #f0d8c0 30%, #d0b090 70%, #a08060 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 50%); }
.scn-wedding-king-made .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d0b0, #b09878); }
.scn-wedding-king-made .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #d0b090, #a08060); box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); }
.scn-wedding-king-made .throne { position:absolute; bottom:20%; left:50%; width:60px; height:80px; background: linear-gradient(180deg, #dbb06a, #b8863a); border-radius: 20% 20% 10% 10%; transform: translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: wed-throne 5s ease-in-out infinite alternate; }
.scn-wedding-king-made .king { position:absolute; bottom:22%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #c8553d, #8a2a1a); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: translateX(-50%); animation: wed-king 4s ease-in-out infinite; }
.scn-wedding-king-made .princess { position:absolute; bottom:20%; left:58%; width:16px; height:44px; background: linear-gradient(180deg, #f0d8c0, #d0a880); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: translateX(-50%); animation: wed-princess 4s ease-in-out infinite alternate; }
.scn-wedding-king-made .tailor-w { position:absolute; bottom:18%; left:32%; width:16px; height:46px; background: linear-gradient(180deg, #6b88b0, #3a5a7a); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: translateX(-50%); animation: wed-tailor 4s ease-in-out infinite; }
.scn-wedding-king-made .arch { position:absolute; top:5%; left:20%; width:60%; height:40%; border: 6px solid #9a7a5a; border-bottom: none; border-radius: 50% 50% 0 0; background: transparent; }
.scn-wedding-king-made .pennant { position:absolute; top:2%; left:35%; width:30%; height:16px; background: linear-gradient(90deg, #b87878, #e8b0b0, #b87878); border-radius: 4px; animation: wed-pennant 6s ease-in-out infinite alternate; }
@keyframes wed-throne { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes wed-king { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-52%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes wed-princess { 0% { transform: translateX(-50%) rotate(-3deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes wed-tailor { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes wed-pennant { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.9); } }

.scn-queen-discovers-secret { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 70%); }
.scn-queen-discovers-secret .chamber { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a44, #1a1a2e); }
.scn-queen-discovers-secret .bed { position:absolute; bottom:5%; left:5%; width:90%; height:40%; background: linear-gradient(180deg, #3a3a5a, #2a2a3a); border-radius: 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-queen-discovers-secret .queen { position:absolute; bottom:15%; left:35%; width:16px; height:42px; background: linear-gradient(180deg, #5a4a6a, #3a2a4a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: que-queen 6s ease-in-out infinite alternate; }
.scn-queen-discovers-secret .king-sleep { position:absolute; bottom:15%; left:55%; width:22px; height:44px; background: linear-gradient(180deg, #4a4a5a, #2a2a3a); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(10deg); animation: que-king 8s ease-in-out infinite; }
.scn-queen-discovers-secret .candle { position:absolute; bottom:30%; left:20%; width:4px; height:16px; background: #f0d8b0; border-radius: 2px; box-shadow: 0 0 16px 6px #f0d8b0, 0 0 32px 12px rgba(240,216,176,0.3); animation: que-candle 4s ease-in-out infinite alternate; }
.scn-queen-discovers-secret .shadow { position:absolute; bottom:0; left:30%; width:60%; height:20%; background: linear-gradient(180deg, transparent, rgba(0,0,0,0.6)); animation: que-shadow 8s ease-in-out infinite alternate; }
.scn-queen-discovers-secret .curtain { position:absolute; top:0; left:0; width:20%; height:100%; background: linear-gradient(90deg, #4a3a5a, #2a1a3a); border-radius: 0 30% 0 0; animation: que-curtain 12s ease-in-out infinite alternate; }
@keyframes que-queen { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes que-king { 0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(8deg) scaleX(0.98); } 100% { transform: rotate(12deg) scaleX(1); } }
@keyframes que-candle { 0% { opacity:0.8; transform: translateY(0) scale(1); } 50% { opacity:1; transform: translateY(-2px) scale(1.1); } 100% { opacity:0.7; transform: translateY(1px) scale(0.95); } }
@keyframes que-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes que-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1.05); } }

.scn-tailor-workshop-morning {
  background:
    linear-gradient(180deg, #fef5e7 0%, #fce4c9 40%, #f0d4b0 100%),
    radial-gradient(ellipse at 70% 20%, #fff3e0 0%, transparent 50%);
}
.scn-tailor-workshop-morning .window {
  position: absolute; top: 0; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(135deg, #c6e2ff 0%, #e3f2fd 50%, #b3d9ff 100%);
  border: 8px solid #d7b68e; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: twm-window 12s ease-in-out infinite alternate;
}
.scn-tailor-workshop-morning .light-beam {
  position: absolute; top: 20%; left: 18%; width: 60%; height: 70%;
  background: linear-gradient(135deg, rgba(255,240,180,0.4) 0%, transparent 70%);
  -webkit-mask-image: linear-gradient(135deg, #000 30%, transparent 70%);
  mask-image: linear-gradient(135deg, #000 30%, transparent 70%);
  animation: twm-beam 8s ease-in-out infinite alternate;
}
.scn-tailor-workshop-morning .table {
  position: absolute; bottom: 18%; left: 15%; width: 70%; height: 14%;
  background: linear-gradient(180deg, #b8976a 0%, #9a7a4e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 6px 15px rgba(0,0,0,0.2);
}
.scn-tailor-workshop-morning .tailor {
  position: absolute; bottom: 32%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a6a4a 0%, #2a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: twm-tailor 4s ease-in-out infinite;
}
.scn-tailor-workshop-morning .basket {
  position: absolute; bottom: 32%; left: 55%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #c49a6c 0%, #8b6a40 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: twm-basket 6s ease-in-out infinite;
}
.scn-tailor-workshop-morning .jam-pot {
  position: absolute; bottom: 36%; left: 58%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #c44536 0%, #a33229 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: twm-jam 3s ease-in-out infinite alternate;
}
.scn-tailor-workshop-morning .stool {
  position: absolute; bottom: 18%; left: 25%; width: 28px; height: 8px;
  background: #8b6a40; border-radius: 20%;
}
@keyframes twm-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes twm-beam   { 0% { transform: translateX(-5px) scaleX(0.95); opacity:0.8; } 50% { transform: translateX(5px) scaleX(1.05); opacity:1; } 100% { transform: translateX(0) scaleX(1); opacity:0.85; } }
@keyframes twm-tailor { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes twm-basket { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes twm-jam    { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-1px) scale(1.02); } }

.scn-tailor-workshop {
  background:
    linear-gradient(180deg, #fef5e7 0%, #fce4c9 40%, #f0d4b0 100%),
    radial-gradient(ellipse at 60% 30%, #fff3e0 0%, transparent 60%);
}
.scn-tailor-workshop .window {
  position: absolute; top: 0; left: 15%; width: 35%; height: 45%;
  background: linear-gradient(135deg, #c6e2ff 0%, #e3f2fd 50%, #b3d9ff 100%);
  border: 8px solid #d7b68e; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: tw-window 12s ease-in-out infinite alternate;
}
.scn-tailor-workshop .light-beam {
  position: absolute; top: 15%; left: 20%; width: 55%; height: 75%;
  background: linear-gradient(135deg, rgba(255,240,180,0.4) 0%, transparent 70%);
  -webkit-mask-image: linear-gradient(135deg, #000 30%, transparent 70%);
  mask-image: linear-gradient(135deg, #000 30%, transparent 70%);
  animation: tw-beam 8s ease-in-out infinite alternate;
}
.scn-tailor-workshop .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(180deg, #b8976a 0%, #9a7a4e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 6px 15px rgba(0,0,0,0.2);
}
.scn-tailor-workshop .tailor {
  position: absolute; bottom: 27%; left: 30%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #4a6a4a 0%, #2a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: tw-tailor 4s ease-in-out infinite;
}
.scn-tailor-workshop .woman {
  position: absolute; bottom: 18%; left: 55%; width: 28px; height: 52px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: tw-woman 5s ease-in-out infinite alternate;
}
.scn-tailor-workshop .steps {
  position: absolute; bottom: 12%; left: 52%; width: 50px; height: 18px;
  background: linear-gradient(180deg, #b8976a 0%, #9a7a4e 100%);
  border-radius: 4px; box-shadow: 0 -3px 6px rgba(0,0,0,0.2);
  animation: tw-steps 10s ease-in-out infinite alternate;
}
.scn-tailor-workshop .basket {
  position: absolute; bottom: 31%; left: 58%; width: 36px; height: 26px;
  background: radial-gradient(ellipse at 50% 30%, #c49a6c 0%, #8b6a40 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: tw-basket 6s ease-in-out infinite;
}
.scn-tailor-workshop .jam-pot {
  position: absolute; bottom: 25%; left: 60%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #c44536 0%, #a33229 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: tw-jam 3s ease-in-out infinite alternate;
}
@keyframes tw-window { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes tw-beam   { 0% { transform: translateX(-3px) scaleX(0.95); opacity:0.8; } 50% { transform: translateX(3px) scaleX(1.03); opacity:1; } 100% { transform: translateX(0) scaleX(1); opacity:0.85; } }
@keyframes tw-tailor { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes tw-woman  { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes tw-steps  { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes tw-basket { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes tw-jam    { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-1px) scale(1.02); } }

.scn-flies-invasion {
  background:
    linear-gradient(180deg, #fce4c9 0%, #e8ccaa 40%, #d4b48a 100%),
    radial-gradient(ellipse at 50% 80%, #c4a080 0%, transparent 70%);
}
.scn-flies-invasion .window {
  position: absolute; top: 0; left: 20%; width: 50%; height: 40%;
  background: linear-gradient(135deg, #b0d4f0 0%, #d0e8f8 50%, #90b8d8 100%);
  border: 6px solid #b8976a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,200,180,0.4);
  animation: fi-window 8s ease-in-out infinite alternate;
}
.scn-flies-invasion .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(180deg, #b8976a 0%, #9a7a4e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 6px 15px rgba(0,0,0,0.3);
}
.scn-flies-invasion .jam-pot-big {
  position: absolute; bottom: 27%; left: 38%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #a83828 0%, #8c2c1e 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.4), inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: fi-pot 4s ease-in-out infinite alternate;
}
.scn-flies-invasion .cloth {
  position: absolute; bottom: 25%; left: 30%; width: 60px; height: 15px;
  background: linear-gradient(180deg, #e8d0b8 0%, #d0b898 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: fi-cloth 5s ease-in-out infinite alternate;
}
.scn-flies-invasion .fly {
  position: absolute;
  width: 8px; height: 6px;
  background: radial-gradient(circle, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: fi-fly 2s ease-in-out infinite;
}
.scn-flies-invasion .fly-1 { bottom: 38%; left: 40%; animation-delay: 0s; }
.scn-flies-invasion .fly-2 { bottom: 42%; left: 48%; animation-delay: 0.3s; }
.scn-flies-invasion .fly-3 { bottom: 35%; left: 55%; animation-delay: 0.6s; }
.scn-flies-invasion .hand {
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #c8a880 0%, #a88860 100%);
  border-radius: 30% 30% 40% 40%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: fi-hand 3s ease-in-out infinite;
}
@keyframes fi-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes fi-pot    { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fi-cloth  { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes fi-fly    { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(5px,-4px) scale(1.1); } 50% { transform: translate(10px,2px) scale(1); } 75% { transform: translate(6px,-3px) scale(0.9); } 100% { transform: translate(0,0) scale(1); } }
@keyframes fi-hand   { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }

.scn-item-girdle {
  background:
    linear-gradient(180deg, #fef5e7 0%, #fce4c9 40%, #f0d4b0 100%),
    radial-gradient(ellipse at 50% 40%, #fff3e0 0%, transparent 60%);
}
.scn-item-girdle .table-close {
  position: absolute; bottom: 10%; left: 5%; width: 90%; height: 20%;
  background: linear-gradient(180deg, #b8976a 0%, #9a7a4e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 6px 15px rgba(0,0,0,0.2);
}
.scn-item-girdle .girdle {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a868 0%, #b88848 100%);
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3), inset 0 0 10px rgba(255,215,0,0.3);
  animation: ig-girdle 6s ease-in-out infinite alternate;
}
.scn-item-girdle .tailor-hands {
  position: absolute; bottom: 33%; left: 40%; width: 40px; height: 25px;
  background: linear-gradient(180deg, #c8a880 0%, #a88860 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-10deg);
  transform-origin: bottom right;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ig-hands 4s ease-in-out infinite;
}
.scn-item-girdle .scissors {
  position: absolute; bottom: 27%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(30deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ig-scissors 5s ease-in-out infinite alternate;
}
.scn-item-girdle .thread-spool {
  position: absolute; bottom: 25%; left: 20%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #d4a868 0%, #b88848 100%);
  border-radius: 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ig-spool 8s linear infinite;
}
.scn-item-girdle .needle {
  position: absolute; bottom: 35%; left: 55%; width: 4px; height: 18px;
  background: #c0c0c0;
  border-radius: 50%;
  transform: rotate(15deg);
  box-shadow: 0 1px 2px rgba(0,0,0,0.3);
  animation: ig-needle 3s ease-in-out infinite alternate;
}
.scn-item-girdle .glow-embroidery {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, rgba(255,215,0,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: ig-glow 3s ease-in-out infinite alternate;
}
@keyframes ig-girdle { 0% { transform: translateX(-50%) scale(1); opacity:0.9; } 50% { transform: translateX(-50%) scale(1.02); opacity:1; } 100% { transform: translateX(-50%) scale(0.98); opacity:0.95; } }
@keyframes ig-hands { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ig-scissors { 0% { transform: rotate(30deg); } 50% { transform: rotate(35deg); } 100% { transform: rotate(30deg); } }
@keyframes ig-spool { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes ig-needle { 0% { transform: rotate(15deg) translateY(0); } 100% { transform: rotate(10deg) translateY(-1px); } }
@keyframes ig-glow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

.scn-gathering-supplies {
  background:
    linear-gradient(180deg, #d4c8a8 0%, #c0b090 30%, #a09070 60%, #806850 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8c8 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-gathering-supplies .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8ccb0 0%, #c8b898 60%, #b8a080 100%);
  animation: gs-wall 15s ease-in-out infinite alternate;
}
.scn-gathering-supplies .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #6a5a42 0%, #5a4a32 40%, #4a3a28 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-gathering-supplies .window-frame {
  position: absolute; top: 8%; left: 50%; width: 140px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a62 0%, #6a5a42 100%);
  border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
.scn-gathering-supplies .window-light {
  position: absolute; top: 12%; left: 50%; width: 120px; height: 140px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #f0e8b0 0%, #d8c880 50%, #b8a060 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(240,232,176,0.3), inset 0 0 30px rgba(240,232,176,0.4);
  animation: gs-light-pulse 5s ease-in-out infinite alternate;
}
.scn-gathering-supplies .table {
  position: absolute; bottom: 28%; left: 50%; width: 160px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 60%, #5a4020 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-gathering-supplies .cheese {
  position: absolute; bottom: 36%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 40% 40%, #e8c850 0%, #c8a030 60%, #a08020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: gs-cheese-bob 4s ease-in-out infinite;
}
.scn-gathering-supplies .bird-silhouette {
  position: absolute; top: 16%; left: 35%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 70% 70% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(-10deg);
  animation: gs-bird-sway 6s ease-in-out infinite;
}
.scn-gathering-supplies .shelf {
  position: absolute; top: 45%; left: 30%; width: 60px; height: 6px;
  background: linear-gradient(180deg, #7a6a52 0%, #5a4a32 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-gathering-supplies .shelf-jar {
  position: absolute; top: 38%; left: 33%; width: 20px; height: 30px;
  background: linear-gradient(180deg, rgba(180,220,200,0.6) 0%, rgba(140,180,160,0.4) 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 8px rgba(255,255,255,0.3);
  animation: gs-jar-glimmer 8s ease-in-out infinite alternate;
}
@keyframes gs-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes gs-light-pulse { 0% { opacity: 0.8; box-shadow: 0 0 20px 10px rgba(240,232,176,0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 30px rgba(240,232,176,0.4); } 100% { opacity: 0.85; box-shadow: 0 0 30px 15px rgba(240,232,176,0.25); } }
@keyframes gs-cheese-bob { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes gs-bird-sway { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes gs-jar-glimmer { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }

.scn-mountain-meeting-giant {
  background:
    linear-gradient(180deg, #7ab8e0 0%, #a0d0f0 30%, #d0e8f8 60%, #e8f0e0 100%),
    radial-gradient(ellipse at 70% 20%, #f8e8a0 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-mountain-meeting-giant .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5090d0 0%, #78b0e0 40%, #a0c8e8 100%);
  animation: mm-sky 20s ease-in-out infinite alternate;
}
.scn-mountain-meeting-giant .mountains-far {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6080a0 0%, #486080 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: mm-far-mtn 30s ease-in-out infinite alternate;
}
.scn-mountain-meeting-giant .mountains-near {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #5a8a5a 0%, #3a6a3a 60%, #2a4a2a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 4px 16px rgba(0,0,0,0.3);
}
.scn-mountain-meeting-giant .giant-body {
  position: absolute; bottom: 30%; left: 60%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 60%, #4a3018 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: mm-giant-breathe 6s ease-in-out infinite;
}
.scn-mountain-meeting-giant .giant-head {
  position: absolute; bottom: 70%; left: 60%; width: 50px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a080 0%, #a08060 60%, #806040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: mm-giant-look 8s ease-in-out infinite;
}
.scn-mountain-meeting-giant .tailor-figure {
  position: absolute; bottom: 32%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4060a0 0%, #204080 60%, #102060 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mm-tailor-walk 5s ease-in-out infinite;
}
.scn-mountain-meeting-giant .path {
  position: absolute; bottom: 30%; left: 20%; right: 40%; height: 8px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
}
.scn-mountain-meeting-giant .sun-glow {
  position: absolute; top: 10%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #f8e8a0 0%, #e8d880 40%, transparent 70%);
  border-radius: 50%;
  animation: mm-sun-pulse 4s ease-in-out infinite alternate;
}
@keyframes mm-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes mm-far-mtn { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes mm-giant-breathe { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } }
@keyframes mm-giant-look { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-5deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes mm-tailor-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-2deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(32px) translateY(0) rotate(-1deg); } }
@keyframes mm-sun-pulse { 0% { opacity: 0.7; transform: scale(1); } 100% { opacity: 1; transform: scale(1.08); } }

.scn-item-cheese-trick {
  background:
    linear-gradient(180deg, #c8d8e0 0%, #a0b8c8 40%, #88a0b0 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-item-cheese-trick .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #b8c8d0 0%, #a0b0c0 60%, #8898a8 100%);
  animation: ct-bg 12s ease-in-out infinite alternate;
}
.scn-item-cheese-trick .giant-hand-bg {
  position: absolute; top: 10%; right: 5%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #c8a880 0%, #a88860 60%, #886840 100%);
  border-radius: 60% 40% 50% 50% / 70% 50% 60% 60%;
  transform: rotate(20deg);
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
  animation: ct-giant-hand 5s ease-in-out infinite;
}
.scn-item-cheese-trick .tailor-arm {
  position: absolute; bottom: 35%; left: 15%; width: 60px; height: 14px;
  background: linear-gradient(180deg, #4060a0 0%, #304880 100%);
  border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%;
  transform: rotate(-30deg);
  transform-origin: right center;
  animation: ct-arm 3s ease-in-out infinite;
}
.scn-item-cheese-trick .cheese-squeeze {
  position: absolute; bottom: 38%; left: 32%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at 40% 40%, #e8c850 0%, #d0a830 40%, #b89020 80%, #a08010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: ct-cheese-squeeze 2s ease-in-out infinite alternate;
}
.scn-item-cheese-trick .cheese-drops {
  position: absolute; bottom: 18%; left: 20%; width: 4px; height: 70px;
  background: linear-gradient(180deg, #e8d060 0%, #d0b840 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ct-drops 1.5s ease-in-out infinite;
}
.scn-item-cheese-trick .giant-eyes {
  position: absolute; top: 8%; right: 30%; width: 24px; height: 10px;
  background: radial-gradient(circle, #f0e8d0 0%, #d0c8a0 40%, #a09070 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(240,232,208,0.3);
  animation: ct-eyes-blink 4s ease-in-out infinite;
}
.scn-item-cheese-trick .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 26%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 60%, #3a4a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
}
@keyframes ct-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes ct-giant-hand { 0%,100% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-4px); } }
@keyframes ct-arm { 0%,100% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } }
@keyframes ct-cheese-squeeze { 0% { transform: scale(1); opacity: 1; } 25% { transform: scale(0.9) rotate(-3deg); opacity: 0.8; } 50% { transform: scale(1.05) rotate(2deg); opacity: 1; } 75% { transform: scale(0.95) rotate(-1deg); opacity: 0.9; } 100% { transform: scale(1); opacity: 1; } }
@keyframes ct-drops { 0% { opacity: 0; transform: translateY(0); } 20% { opacity: 0.8; } 80% { opacity: 0.6; } 100% { opacity: 0; transform: translateY(60px); } }
@keyframes ct-eyes-blink { 0%,90%,100% { transform: scaleY(1); } 95% { transform: scaleY(0.1); } }

.scn-item-bird-trick {
  background:
    linear-gradient(180deg, #e0e8f0 0%, #b8d0e0 30%, #88b0d0 60%, #6098b8 100%),
    radial-gradient(ellipse at 30% 20%, #f8f0d0 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-item-bird-trick .sky-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8e8f8 0%, #b8d0e8 40%, #98b8d8 100%);
  animation: bt-sky 15s ease-in-out infinite alternate;
}
.scn-item-bird-trick .mountain-top {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 60%, #2a4a2a 100%);
  border-radius: 70% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
  animation: bt-mtn 20s ease-in-out infinite alternate;
}
.scn-item-bird-trick .giant-throw {
  position: absolute; bottom: 35%; right: 15%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #b09878 0%, #907858 60%, #705840 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bt-giant-throw 2.5s ease-in-out infinite;
}
.scn-item-bird-trick .stone {
  position: absolute; bottom: 60%; right: 15%; width: 18px; height: 18px;
  background: radial-gradient(circle at 40% 40%, #b0a090 0%, #807060 60%, #605040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: bt-stone-fly 3s linear infinite;
}
.scn-item-bird-trick .tailor-point {
  position: absolute; bottom: 30%; left: 25%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #4060a0 0%, #204080 60%, #102060 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: bt-tailor-point 4s ease-in-out infinite;
}
.scn-item-bird-trick .bird-fly {
  position: absolute; top: 20%; left: 20%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 70% 70% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(20deg);
  animation: bt-bird-fly 6s linear infinite;
}
.scn-item-bird-trick .bird-trail {
  position: absolute; top: 22%; left: 10%; width: 40px; height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(74,58,42,0.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: bt-trail 6s linear infinite;
}
.scn-item-bird-trick .ground-far {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 60%, #3a5a2a 100%);
  border-radius: 20% 80% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.3);
}
@keyframes bt-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes bt-mtn { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes bt-giant-throw { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-15deg) translateY(-4px); } 50% { transform: rotate(5deg) translateY(-2px); } 75% { transform: rotate(-5deg) translateY(-1px); } }
@keyframes bt-stone-fly { 0% { transform: translate(0, 0) rotate(0deg); opacity: 1; } 30% { transform: translate(60px, -80px) rotate(180deg); opacity: 0.9; } 60% { transform: translate(120px, -140px) rotate(360deg); opacity: 0.7; } 100% { transform: translate(200px, -200px) rotate(720deg); opacity: 0; } }
@keyframes bt-tailor-point { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-10deg) translateX(4px); } 50% { transform: rotate(5deg) translateX(8px); } 75% { transform: rotate(-5deg) translateX(4px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes bt-bird-fly { 0% { transform: rotate(20deg) translateX(-30px); opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { transform: rotate(20deg) translateX(180px); opacity: 0; } }
@keyframes bt-trail { 0% { transform: translateX(-20px); opacity: 0; } 10% { opacity: 0.8; } 90% { opacity: 0.6; } 100% { transform: translateX(60px); opacity: 0; } }

.scn-item-sword {
  background:
    linear-gradient(180deg, #fbe9d7 0%, #f3d4b5 40%, #d9a67a 100%),
    radial-gradient(ellipse at 30% 40%, #fce4c3 0%, transparent 60%);
  overflow: hidden;
}
.scn-item-sword .sky-glow {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fff6e8 0%, #fae1c6 100%);
  animation: isw-sky 8s ease-in-out infinite alternate;
}
.scn-item-sword .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #6b8a5e 0%, #8caa7d 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-item-sword .giant {
  position: absolute; bottom: 25%; width: 60px;
  background: linear-gradient(180deg, #4d5a3e 0%, #2d3520 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
}
.scn-item-sword .giant-1 {
  left: 15%; height: 110px;
  transform-origin: bottom center;
  animation: isw-fall 4s ease-in-out infinite;
}
.scn-item-sword .giant-2 {
  right: 20%; height: 130px;
  transform-origin: bottom center;
  animation: isw-fall 5s ease-in-out infinite 0.5s;
}
.scn-item-sword .tailor {
  position: absolute; bottom: 28%; left: 48%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #2f4f4f 0%, #1c2e2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: isw-lunge 2s ease-in-out infinite;
}
.scn-item-sword .tailor-sword {
  position: absolute; bottom: 40%; left: 52%; width: 4px; height: 24px;
  background: linear-gradient(180deg, #d4c9b0 0%, #b0a080 100%);
  border-radius: 2px;
  transform: rotate(25deg);
  box-shadow: 0 0 6px 2px rgba(255,200,100,0.4);
  animation: isw-stab 2s ease-in-out infinite;
}
.scn-item-sword .blood-pool {
  position: absolute; bottom: 10%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, #8a3a2a 0%, #5a1a1a 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  opacity: 0.7;
}
.scn-item-sword .blood-1 { left: 10%; animation: isw-spread 6s ease-in-out infinite; }
.scn-item-sword .blood-2 { right: 15%; animation: isw-spread 7s ease-in-out infinite 1s; }
.scn-item-sword .sparkle {
  position: absolute; top: 30%; left: 45%; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(255,230,150,0.6);
  animation: isw-sparkle 1.5s ease-in-out infinite alternate;
}
@keyframes isw-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes isw-fall { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-3px); } 50% { transform: rotate(-2deg) translateY(1px); } 75% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes isw-lunge { 0% { transform: translateX(0) rotate(-2deg); } 40% { transform: translateX(-4px) rotate(3deg); } 60% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes isw-stab { 0% { transform: rotate(20deg) translateX(0); } 40% { transform: rotate(30deg) translateX(-2px); } 60% { transform: rotate(10deg) translateX(1px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes isw-spread { 0% { opacity:0.5; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.2); } 100% { opacity:0.5; transform: scaleX(1); } }
@keyframes isw-sparkle { 0% { opacity:0.3; transform: scale(0.5); } 100% { opacity:1; transform: scale(1.3); } }

.scn-tailor-returns-claim {
  background:
    linear-gradient(180deg, #b8cba0 0%, #8ea87b 50%, #5a7048 100%),
    radial-gradient(ellipse at 50% 100%, #3a5030 0%, transparent 70%);
  overflow: hidden;
}
.scn-tailor-returns-claim .forest-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #a3bf8a 0%, #7a9a60 100%);
  animation: trc-sky 12s ease-in-out infinite alternate;
}
.scn-tailor-returns-claim .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #4a5a38 0%, #6a7a58 100%);
  border-radius: 20% 30% 0 0 / 50% 40% 0 0;
}
.scn-tailor-returns-claim .tree {
  position: absolute; bottom: 30%; width: 8px;
  background: linear-gradient(180deg, #5a4a38 0%, #3a2a18 100%);
  border-radius: 4px;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
}
.scn-tailor-returns-claim .tree-left {
  left: 15%; height: 140px;
  transform-origin: bottom center;
  animation: trc-sway 8s ease-in-out infinite;
}
.scn-tailor-returns-claim .tree-right {
  right: 20%; height: 160px;
  transform-origin: bottom center;
  animation: trc-sway 10s ease-in-out infinite 1s;
}
.scn-tailor-returns-claim .giant-body {
  position: absolute; bottom: 20%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  filter: blur(1px);
  opacity: 0.8;
}
.scn-tailor-returns-claim .body-1 { left: 25%; animation: trc-twitch 3s step-end infinite; }
.scn-tailor-returns-claim .body-2 { right: 30%; animation: trc-twitch 4s step-end infinite 0.5s; }
.scn-tailor-returns-claim .blood-mist {
  position: absolute; bottom: 15%; left: 30%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, #8a3a2a 0%, #4a1a1a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: trc-drift 20s linear infinite;
}
.scn-tailor-returns-claim .tailor-figure {
  position: absolute; bottom: 28%; left: 45%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2f4f4f 0%, #1c2e2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: trc-strut 6s ease-in-out infinite;
}
.scn-tailor-returns-claim .horses-group {
  position: absolute; bottom: 25%; right: 10%; width: 40px; height: 20px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  filter: blur(1px);
  animation: trc-trot 4s ease-in-out infinite alternate;
}
@keyframes trc-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes trc-sway { 0% { transform: rotate(0deg); } 30% { transform: rotate(3deg); } 60% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes trc-twitch { 0% { opacity:0.6; width:70px; } 50% { opacity:0.8; width:72px; } 100% { opacity:0.6; width:70px; } }
@keyframes trc-drift { 0% { opacity:0.3; transform: translateX(0); } 50% { opacity:0.5; transform: translateX(20px); } 100% { opacity:0.3; transform: translateX(0); } }
@keyframes trc-strut { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes trc-trot { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(4px) scaleY(0.9); } 100% { transform: translateX(0) scaleY(1); } }

.scn-king-unicorn-demand {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #b8a080 40%, #8a7050 100%),
    radial-gradient(ellipse at 70% 30%, #e8d8b8 0%, transparent 60%);
  overflow: hidden;
}
.scn-king-unicorn-demand .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #c4b090 0%, #a08870 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
}
.scn-king-unicorn-demand .throne {
  position: absolute; bottom: 20%; left: 65%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #a08050 0%, #705030 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.3);
}
.scn-king-unicorn-demand .king-silhouette {
  position: absolute; bottom: 25%; left: 63%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: kud-breathe 4s ease-in-out infinite;
}
.scn-king-unicorn-demand .king-crown {
  position: absolute; bottom: 68%; left: 65%; width: 18px; height: 8px;
  background: linear-gradient(135deg, #c8a84a 0%, #a08028 50%, #7050a0 100%);
  clip-path: polygon(0% 100%, 20% 0%, 40% 30%, 60% 0%, 80% 30%, 100% 0%, 100% 100%);
  animation: kud-crown 3s ease-in-out infinite;
}
.scn-king-unicorn-demand .king-hand {
  position: absolute; bottom: 40%; left: 58%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: kud-point 5s ease-in-out infinite;
}
.scn-king-unicorn-demand .tailor-stand {
  position: absolute; bottom: 22%; left: 30%; width: 12px; height: 34px;
  background: linear-gradient(180deg, #2f4f4f 0%, #1c2e2e 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: kud-stand 6s ease-in-out infinite;
}
.scn-king-unicorn-demand .sword-sheathed {
  position: absolute; bottom: 28%; left: 25%; width: 3px; height: 18px;
  background: linear-gradient(180deg, #b0a080 0%, #8a7050 100%);
  border-radius: 2px;
  transform: rotate(30deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
}
.scn-king-unicorn-demand .shadow-stripe {
  position: absolute; top: 0; left: 45%; width: 10%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.08) 50%, transparent 100%);
  animation: kud-sweep 8s ease-in-out infinite alternate;
}
@keyframes kud-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes kud-crown { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes kud-point { 0% { transform: rotate(-25deg) translateX(0); } 30% { transform: rotate(-15deg) translateX(2px); } 60% { transform: rotate(-30deg) translateX(-1px); } 100% { transform: rotate(-25deg) translateX(0); } }
@keyframes kud-stand { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes kud-sweep { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.3; } }

.scn-item-rope {
  background:
    linear-gradient(180deg, #dce8c0 0%, #b8c89a 40%, #8aa06a 100%),
    radial-gradient(ellipse at 80% 50%, #e0ecc8 0%, transparent 60%);
  overflow: hidden;
}
.scn-item-rope .forest-opening {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c4d4a8 0%, #a8b888 100%);
  filter: blur(2px);
  animation: irp-light 10s ease-in-out infinite;
}
.scn-item-rope .tree-trunk {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 120px;
  background: linear-gradient(90deg, #5a4a38 0%, #7a6a58 50%, #5a4a38 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
}
.scn-item-rope .unicorn-body {
  position: absolute; bottom: 27%; left: 40%; width: 50px; height: 35px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b8 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: irp-struggle 3s ease-in-out infinite;
}
.scn-item-rope .unicorn-head {
  position: absolute; bottom: 48%; left: 38%; width: 20px; height: 20px;
  background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b8 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(0.5px);
  animation: irp-head-shake 2s ease-in-out infinite;
}
.scn-item-rope .horn-stuck {
  position: absolute; bottom: 60%; left: 48%; width: 6px; height: 25px;
  background: linear-gradient(180deg, #e8d8a0 0%, #c8a86a 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(200,150,60,0.5);
  animation: irp-horn 2s ease-in-out infinite alternate;
}
.scn-item-rope .rope-coil {
  position: absolute; bottom: 34%; left: 44%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #a08050 0%, #c8a86a 50%, #a08050 100%);
  border-radius: 20%;
  filter: blur(0.5px);
  animation: irp-coil 4s ease-in-out infinite;
}
.scn-item-rope .tailor-hiding {
  position: absolute; bottom: 24%; left: 58%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #2f4f4f 0%, #1c2e2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: irp-peek 5s ease-in-out infinite;
}
.scn-item-rope .ground-leaf {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: irp-drift 15s linear infinite;
}
@keyframes irp-light { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes irp-struggle { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(1px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes irp-head-shake { 0% { transform: rotate(0deg); } 30% { transform: rotate(5deg); } 60% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes irp-horn { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-15deg); } }
@keyframes irp-coil { 0% { width:30px; opacity:0.7; } 50% { width:34px; opacity:1; } 100% { width:30px; opacity:0.7; } }
@keyframes irp-peek { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes irp-drift { 0% { transform: translateX(0); } 50% { transform: translateX(90px); } 100% { transform: translateX(0); } }

/* item-iron-bar */
.scn-item-iron-bar {
  background: linear-gradient(180deg, #0a0a12 0%, #1a0f0a 40%, #2a1808 100%),
              radial-gradient(ellipse at 70% 80%, #3a1a0a 0%, transparent 60%);
}
.scn-item-iron-bar .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0d0d1a 0%, #1a0a05 100%);
}
.scn-item-iron-bar .fire-glow {
  position: absolute; bottom: 20%; left: 15%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #c8553d 30%, transparent 70%);
  border-radius: 50%;
  animation: ib-fire 1.2s ease-in-out infinite alternate;
}
.scn-item-iron-bar .bed {
  position: absolute; bottom: 10%; right: 10%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  transform: perspective(600px) rotateX(5deg);
}
.scn-item-iron-bar .corner-shadow {
  position: absolute; bottom: 8%; left: 5%; width: 25%; height: 50%;
  background: radial-gradient(ellipse at 30% 100%, #0a0500 0%, transparent 80%);
}
.scn-item-iron-bar .tailor {
  position: absolute; bottom: 15%; left: 12%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ib-crouch 4s ease-in-out infinite;
}
.scn-item-iron-bar .iron-bar {
  position: absolute; bottom: 12%; right: 25%; width: 6px; height: 70%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 3px;
  box-shadow: 2px 0 6px rgba(255,140,66,.4);
  animation: ib-bar-glow 5s ease-in-out infinite;
}
.scn-item-iron-bar .flicker {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 90%, rgba(255,150,50,.15) 0%, transparent 70%);
  animation: ib-flicker 0.8s ease-in-out infinite alternate;
}
@keyframes ib-fire {
  0% { opacity: .95; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.05) rotate(2deg); }
}
@keyframes ib-crouch {
  0%,100% { transform: translate(0,0) rotate(2deg); }
  50% { transform: translate(2px,-1px) rotate(-2deg); }
}
@keyframes ib-bar-glow {
  0%,100% { box-shadow: 2px 0 6px rgba(255,140,66,.3); }
  50% { box-shadow: 2px 0 12px rgba(255,140,66,.7); }
}
@keyframes ib-flicker {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}

/* tailor-leaves-giants */
.scn-tailor-leaves-giants {
  background: linear-gradient(180deg, #ffdd77 0%, #ffb347 30%, #f07f5c 60%, #3a1a0a 100%),
              radial-gradient(ellipse at 50% 0%, #fff0aa 0%, transparent 60%);
}
.scn-tailor-leaves-giants .dawn-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ffdd77 0%, #ffaa55 100%);
  animation: lg-sky 20s ease-in-out infinite alternate;
}
.scn-tailor-leaves-giants .sun-glow {
  position: absolute; top: 10%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff5cc 0%, #ffdd77 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: lg-sun 6s ease-in-out infinite;
}
.scn-tailor-leaves-giants .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 30% 40% 0 0;
}
.scn-tailor-leaves-giants .giant-a {
  position: absolute; bottom: 30%; right: 10%; width: 80px; height: 160px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: lg-run-a 3s linear infinite;
}
.scn-tailor-leaves-giants .giant-b {
  position: absolute; bottom: 30%; right: -20%; width: 70px; height: 140px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: lg-run-b 3.5s linear infinite;
}
.scn-tailor-leaves-giants .tailor-fg {
  position: absolute; bottom: 8%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lg-walk 4s ease-in-out infinite;
}
@keyframes lg-sky {
  0% { opacity: .9; }
  100% { opacity: 1; }
}
@keyframes lg-sun {
  0%,100% { transform: translateX(-50%) scale(1); opacity: .9; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
}
@keyframes lg-run-a {
  0% { transform: translateX(0) rotate(2deg); }
  100% { transform: translateX(-80vw) rotate(-5deg); }
}
@keyframes lg-run-b {
  0% { transform: translateX(0) rotate(-2deg); }
  100% { transform: translateX(-70vw) rotate(3deg); }
}
@keyframes lg-walk {
  0%,100% { transform: translate(0,0) rotate(-2deg); }
  25% { transform: translate(8px,-2px) rotate(2deg); }
  50% { transform: translate(16px,0) rotate(-1deg); }
  75% { transform: translate(24px,-1px) rotate(1deg); }
}

/* palace-courtyard */
.scn-palace-courtyard {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 100%),
              radial-gradient(ellipse at 50% 100%, #c3d9ff 0%, transparent 70%);
}
.scn-palace-courtyard .courtyard-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: pc-sky 15s ease-in-out infinite alternate;
}
.scn-palace-courtyard .palace-wall {
  position: absolute; left: 0; top: 20%; width: 100%; height: 50%;
  background: repeating-linear-gradient(90deg, #d2b48c 0px, #d2b48c 30px, #c3a570 30px, #c3a570 32px);
  border-radius: 0 0 8% 8%;
  box-shadow: 0 -4px 20px rgba(0,0,0,.2);
  transform: scaleY(.9);
}
.scn-palace-courtyard .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #98fb98 0%, #7ccd7c 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-palace-courtyard .sleeper {
  position: absolute; bottom: 12%; left: 25%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #c4a882 0%, #8b6914 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: pc-sleep 8s ease-in-out infinite;
}
.scn-palace-courtyard .inquirer {
  position: absolute; bottom: 18%; right: 20%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: pc-bend 6s ease-in-out infinite;
}
.scn-palace-courtyard .shade-tree {
  position: absolute; left: 5%; bottom: 25%; width: 60px; height: 80px;
  background: radial-gradient(ellipse 80% 60% at 50% 100%, #2e8b57 0%, #006400 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  filter: blur(2px);
  animation: pc-tree-sway 12s ease-in-out infinite;
}
@keyframes pc-sky {
  0% { opacity: .95; }
  100% { opacity: 1; }
}
@keyframes pc-sleep {
  0%,100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes pc-bend {
  0%,100% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(-3px, -2px) rotate(10deg); }
}
@keyframes pc-tree-sway {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
}

/* kings-offer */
.scn-kings-offer {
  background: linear-gradient(180deg, #fff8e7 0%, #ffdab9 40%, #e2a76f 100%),
              radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%);
}
.scn-kings-offer .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
}
.scn-kings-offer .sunbeam {
  position: absolute; top: 0; left: 30%; width: 30%; height: 100%;
  background: linear-gradient(135deg, rgba(255,255,200,.5) 0%, transparent 80%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ko-beam 10s ease-in-out infinite alternate;
}
.scn-kings-offer .resting-place {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #c4a882 0%, #8b6914 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
}
.scn-kings-offer .tailor-waking {
  position: absolute; bottom: 12%; left: 35%; width: 30px; height: 38px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ko-stretch 5s ease-in-out infinite;
}
.scn-kings-offer .courtier {
  position: absolute; bottom: 16%; right: 20%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ko-bow 6s ease-in-out infinite;
}
.scn-kings-offer .offering-glow {
  position: absolute; bottom: 20%; right: 18%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd700 0%, transparent 70%);
  border-radius: 50%;
  animation: ko-glow 3s ease-in-out infinite alternate;
}
@keyframes ko-beam {
  0% { opacity: .5; transform: skewX(-5deg); }
  50% { opacity: .8; transform: skewX(0deg); }
  100% { opacity: .6; transform: skewX(5deg); }
}
@keyframes ko-stretch {
  0%,100% { transform: translate(0,0) rotate(0deg) scaleY(1); }
  25% { transform: translate(0,-4px) rotate(-10deg) scaleY(1.1); }
  50% { transform: translate(0,-2px) rotate(5deg) scaleY(1.05); }
  75% { transform: translate(0,-5px) rotate(-5deg) scaleY(1.15); }
}
@keyframes ko-bow {
  0%,100% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(-2px, -4px) rotate(20deg); }
}
@keyframes ko-glow {
  0% { opacity: .4; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.3); }
}

.scn-tailor-enters-forest {
  background: linear-gradient(180deg, #a4d8ff 0%, #f9e68c 30%, #ffd57a 60%, #c67a3a 100%);
}
.scn-tailor-enters-forest .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 60%, transparent 100%);
  animation: tef-sky 12s ease-in-out infinite alternate;
}
.scn-tailor-enters-forest .sun {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8a0 0%, #ffc040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,200,80,0.4);
  animation: tef-sun 8s ease-in-out infinite alternate;
}
.scn-tailor-enters-forest .tree-bg {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 160px;
  background: radial-gradient(ellipse at 50% 30%, #2d6a2d 0%, #1a4a1a 70%, transparent 100%);
  border-radius: 60% 60% 20% 20%;
  filter: blur(6px);
  opacity: 0.5;
  animation: tef-treebg 15s ease-in-out infinite;
}
.scn-tailor-enters-forest .tree-trunk {
  position: absolute; bottom: 18%; left: 45%; width: 18px; height: 110px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-tailor-enters-forest .tailor {
  position: absolute; bottom: 34%; left: 38%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0f0f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tef-walk 3s ease-in-out infinite;
}
.scn-tailor-enters-forest .stones {
  position: absolute; bottom: 38%; left: 42%; width: 16px; height: 16px;
  background: radial-gradient(circle, #bbb 0%, #777 100%);
  border-radius: 50%;
  box-shadow: 20px 2px 0 #aaa, -10px 8px 0 #999;
  animation: tef-drop 4s ease-in-out infinite;
}
.scn-tailor-enters-forest .branch {
  position: absolute; bottom: 40%; left: 38%; width: 60px; height: 6px;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 3px;
  transform: rotate(-5deg);
}
@keyframes tef-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes tef-sun {
  0% { transform: scale(1) translate(0,0); box-shadow: 0 0 60px 20px rgba(255,200,80,0.4); }
  50% { transform: scale(1.1) translate(5px,-3px); box-shadow: 0 0 80px 30px rgba(255,200,80,0.6); }
  100% { transform: scale(0.95) translate(-2px,2px); box-shadow: 0 0 50px 15px rgba(255,200,80,0.3); }
}
@keyframes tef-treebg {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(3px); }
}
@keyframes tef-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0); }
}
@keyframes tef-drop {
  0% { transform: translateY(0) rotate(0); opacity:1; }
  30% { transform: translateY(20px) rotate(20deg); opacity:0.8; }
  60% { transform: translateY(40px) rotate(-10deg); opacity:0.6; }
  100% { transform: translateY(70px) rotate(10deg); opacity:0; }
}

.scn-item-stones {
  background: linear-gradient(180deg, #e8f0c0 0%, #d4c080 40%, #a08050 100%);
}
.scn-item-stones .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8e0c0 0%, #f0e8a0 100%);
  animation: ist-sky 10s ease-in-out infinite alternate;
}
.scn-item-stones .hand-l {
  position: absolute; bottom: 30%; left: 25%; width: 28px; height: 34px;
  background: radial-gradient(ellipse at 50% 60%, #e8c8a0 0%, #c09060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(15deg);
  animation: ist-hand-l 3s ease-in-out infinite;
}
.scn-item-stones .hand-r {
  position: absolute; bottom: 30%; right: 25%; width: 28px; height: 34px;
  background: radial-gradient(ellipse at 50% 60%, #e8c8a0 0%, #c09060 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-15deg);
  animation: ist-hand-r 3s ease-in-out infinite 1.5s;
}
.scn-item-stones .pocket {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #7a5a3a 0%, #4a3a1a 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 60% 60%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: ist-pocket 5s ease-in-out infinite;
}
.scn-item-stones .stones-group {
  position: absolute; bottom: 35%; left: 32%; width: 40px; height: 20px;
  background: transparent;
  box-shadow: 2px 2px 0 #888, 14px 4px 0 #777, 24px 0 0 #999, 8px 10px 0 #666;
  border-radius: 50%;
  animation: ist-stones 4s ease-in-out infinite;
}
.scn-item-stones .tree-branch {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 8px;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px;
  transform: rotate(10deg);
  animation: ist-branch 8s ease-in-out infinite;
}
@keyframes ist-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ist-hand-l {
  0% { transform: rotate(10deg) translateY(0); }
  33% { transform: rotate(20deg) translateY(-5px); }
  66% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes ist-hand-r {
  0% { transform: rotate(-10deg) translateY(0); }
  33% { transform: rotate(-20deg) translateY(-5px); }
  66% { transform: rotate(-5deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ist-pocket {
  0% { transform: scaleY(1); }
  35% { transform: scaleY(1.2); }
  70% { transform: scaleY(0.9); }
  100% { transform: scaleY(1); }
}
@keyframes ist-stones {
  0% { transform: translateY(0); opacity:1; }
  25% { transform: translateY(-10px); opacity:0.8; }
  50% { transform: translateY(-5px); opacity:1; }
  75% { transform: translateY(5px); opacity:0.9; }
  100% { transform: translateY(0); opacity:1; }
}
@keyframes ist-branch {
  0% { transform: rotate(8deg) translateX(0); }
  50% { transform: rotate(12deg) translateX(10px); }
  100% { transform: rotate(8deg) translateX(0); }
}

.scn-giants-quarrel {
  background: linear-gradient(180deg, #b0d8f0 0%, #f0e090 40%, #c0a060 100%), radial-gradient(ellipse at 50% 100%, #80b080 0%, transparent 70%);
}
.scn-giants-quarrel .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, #e8f0a0 100%);
  animation: gq-sky 14s ease-in-out infinite alternate;
}
.scn-giants-quarrel .giant-a {
  position: absolute; bottom: 15%; left: 10%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 30%, #c0a080 0%, #7a5a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.3);
  animation: gq-giant-a 4s ease-in-out infinite;
}
.scn-giants-quarrel .giant-b {
  position: absolute; bottom: 15%; right: 10%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 30%, #b09070 0%, #6a4a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 4px 0 10px rgba(0,0,0,0.3);
  animation: gq-giant-b 4.5s ease-in-out infinite;
}
.scn-giants-quarrel .tree-between {
  position: absolute; bottom: 20%; left: 46%; width: 20px; height: 140px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 0 12px rgba(0,0,0,0.2);
  animation: gq-tree 12s ease-in-out infinite;
}
.scn-giants-quarrel .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-giants-quarrel .cloud1 {
  position: absolute; top: 8%; left: 15%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: gq-cloud1 30s linear infinite;
}
.scn-giants-quarrel .cloud2 {
  position: absolute; top: 16%; right: 20%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: gq-cloud2 40s linear infinite reverse;
}
@keyframes gq-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gq-giant-a {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-10px) rotate(-5deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  75% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes gq-giant-b {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(10px) rotate(5deg); }
  50% { transform: translateX(-5px) rotate(-3deg); }
  75% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes gq-tree {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(0.95) translateY(5px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes gq-cloud1 {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}
@keyframes gq-cloud2 {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-giants-fight-to-death {
  background: linear-gradient(180deg, #4a3a1a 0%, #8a6a3a 30%, #b08a5a 60%, #6a4a2a 100%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 80%);
}
.scn-giants-fight-to-death .sky-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a1a 0%, #6a5a2a 60%, transparent 100%);
  animation: gfd-sky 10s ease-in-out infinite alternate;
}
.scn-giants-fight-to-death .giant-left {
  position: absolute; bottom: 10%; left: 5%; width: 100px; height: 140px;
  background: radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 35% 35%;
  box-shadow: -6px 0 15px rgba(0,0,0,0.5);
  animation: gfd-giant-left 0.8s ease-in-out infinite;
}
.scn-giants-fight-to-death .giant-right {
  position: absolute; bottom: 10%; right: 5%; width: 100px; height: 140px;
  background: radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 35% 35%;
  box-shadow: 6px 0 15px rgba(0,0,0,0.5);
  animation: gfd-giant-right 0.9s ease-in-out infinite;
}
.scn-giants-fight-to-death .tree-fallen {
  position: absolute; bottom: 5%; left: 30%; width: 140px; height: 14px;
  background: linear-gradient(90deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 7px;
  transform: rotate(-15deg);
  animation: gfd-fallen 3s ease-in-out infinite;
}
.scn-giants-fight-to-death .dust {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,150,100,0.6) 0%, transparent 70%);
  filter: blur(12px);
  animation: gfd-dust 2s ease-in-out infinite;
}
.scn-giants-fight-to-death .rock {
  position: absolute; bottom: 12%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #888 0%, #555 100%);
  border-radius: 50%;
  box-shadow: -10px 10px 0 #777, 15px -5px 0 #666;
  animation: gfd-rock 1.5s ease-in-out infinite;
}
.scn-giants-fight-to-death .light-flash {
  position: absolute; top: 20%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 100%);
  border-radius: 50%;
  opacity: 0;
  animation: gfd-flash 1.2s ease-in-out infinite;
}
@keyframes gfd-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes gfd-giant-left {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  25% { transform: translateX(-15px) translateY(5px) rotate(8deg); }
  50% { transform: translateX(5px) translateY(-10px) rotate(-3deg); }
  75% { transform: translateX(-10px) translateY(5px) rotate(6deg); }
  100% { transform: translateX(0) translateY(0) rotate(-5deg); }
}
@keyframes gfd-giant-right {
  0% { transform: translateX(0) translateY(0) rotate(5deg); }
  25% { transform: translateX(15px) translateY(5px) rotate(-8deg); }
  50% { transform: translateX(-5px) translateY(-10px) rotate(3deg); }
  75% { transform: translateX(10px) translateY(5px) rotate(-6deg); }
  100% { transform: translateX(0) translateY(0) rotate(5deg); }
}
@keyframes gfd-fallen {
  0% { transform: rotate(-12deg) translateY(0); }
  50% { transform: rotate(-18deg) translateY(8px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes gfd-dust {
  0% { opacity: 0.3; transform: scaleY(0.9); }
  50% { opacity: 0.7; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(0.9); }
}
@keyframes gfd-rock {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-15px) rotate(30deg); }
  50% { transform: translateY(-5px) rotate(60deg); }
  75% { transform: translateY(10px) rotate(90deg); }
  100% { transform: translateY(0) rotate(120deg); }
}
@keyframes gfd-flash {
  0% { opacity: 0; }
  30% { opacity: 1; }
  60% { opacity: 0; }
  100% { opacity: 0; }
}

/* one block per scene id. Append to style.css. */
.scn-oak-tree-challenge {
  background: linear-gradient(180deg, #f9e8c0 0%, #e0c898 40%, #c8a870 100%),
              radial-gradient(ellipse at 50% 100%, #b89060 0%, transparent 70%);
}
.scn-oak-tree-challenge .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8d8f8 0%, #d8e8f0 50%, transparent 100%);
  animation: otc-sky 12s ease-in-out infinite alternate;
}
.scn-oak-tree-challenge .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a8a4a 0%, #4a5a2a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
  animation: otc-ground 15s ease-in-out infinite;
}
.scn-oak-tree-challenge .tree-trunk {
  position: absolute; bottom: 42%; left: 30%; width: 28px; height: 80px;
  background: linear-gradient(90deg, #5a3a1a 0%, #8a6a3a 50%, #5a3a1a 100%);
  border-radius: 12% / 6%;
  transform-origin: bottom center;
  animation: otc-trunk 20s ease-in-out infinite alternate;
}
.scn-oak-tree-challenge .tree-canopy {
  position: absolute; bottom: 58%; left: 22%; width: 140px; height: 110px;
  background: radial-gradient(ellipse at 40% 60%, #3a6a2a 0%, #2a4a1a 70%, transparent 100%);
  border-radius: 50% 40% 60% 50% / 70% 60% 40% 50%;
  filter: blur(2px);
  animation: otc-canopy 8s ease-in-out infinite alternate;
}
.scn-oak-tree-challenge .giant {
  position: absolute; bottom: 20%; left: 10%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: otc-giant 6s ease-in-out infinite;
}
.scn-oak-tree-challenge .tailor {
  position: absolute; bottom: 22%; left: 58%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: otc-tailor 2.5s ease-in-out infinite;
}
.scn-oak-tree-challenge .stone {
  position: absolute; bottom: 38%; left: 60%; width: 10px; height: 10px;
  background: radial-gradient(circle, #a0a0a0 0%, #707070 100%);
  border-radius: 50%;
  animation: otc-stone 3s ease-in-out infinite;
}
.scn-oak-tree-challenge .sunrays {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background: radial-gradient(ellipse at 80% 20%, rgba(255,240,200,0.3) 0%, transparent 60%);
  animation: otc-rays 10s ease-in-out infinite alternate;
}
@keyframes otc-sky { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes otc-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes otc-trunk { 0% { transform: rotate(-0.5deg) } 50% { transform: rotate(0.5deg) } 100% { transform: rotate(-0.3deg) } }
@keyframes otc-canopy { 0% { transform: scale(1) rotate(-2deg) } 50% { transform: scale(1.02) rotate(2deg) } 100% { transform: scale(1) rotate(-1deg) } }
@keyframes otc-giant { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes otc-tailor { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(3deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes otc-stone { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(20px,-60px) scale(0.8) } 50% { transform: translate(40px,-100px) scale(0.5) } 75% { transform: translate(60px,-140px) scale(0.3) } 100% { transform: translate(80px,-180px) scale(0) opacity(0) } }
@keyframes otc-rays { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .2 } }

.scn-oak-tree-carried {
  background: linear-gradient(180deg, #f0e0b0 0%, #d8c898 40%, #b0a070 100%),
              radial-gradient(ellipse at 50% 100%, #908050 0%, transparent 60%);
}
.scn-oak-tree-carried .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0d8e8 0%, #e0e8f0 50%, transparent 100%);
  animation: otcar-sky 14s ease-in-out infinite alternate;
}
.scn-oak-tree-carried .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a7a3a 0%, #3a4a1a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,.25);
  animation: otcar-ground 12s ease-in-out infinite;
}
.scn-oak-tree-carried .tree-trunk-horiz {
  position: absolute; bottom: 35%; left: 10%; width: 240px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% / 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: otcar-trunk 5s ease-in-out infinite;
}
.scn-oak-tree-carried .giant {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 140px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: otcar-giant 7s ease-in-out infinite;
}
.scn-oak-tree-carried .tailor-on-branch {
  position: absolute; bottom: 50%; left: 36%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: otcar-tailor 3s ease-in-out infinite;
}
.scn-oak-tree-carried .branches {
  position: absolute; bottom: 50%; left: 20%; width: 200px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  transform-origin: 0% 50%;
  animation: otcar-branches 6s ease-in-out infinite alternate;
}
.scn-oak-tree-carried .leaves {
  position: absolute; bottom: 48%; left: 25%; width: 180px; height: 80px;
  background: radial-gradient(ellipse at 30% 40%, #4a7a3a 0%, #2a5a1a 70%, transparent 100%);
  border-radius: 50% 30% 60% 40% / 40% 50% 50% 60%;
  filter: blur(3px);
  animation: otcar-leaves 8s ease-in-out infinite alternate;
}
@keyframes otcar-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .75 } }
@keyframes otcar-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes otcar-trunk { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-0.5deg) } 75% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes otcar-giant { 0% { transform: translateX(0) rotate(-0.5deg) } 25% { transform: translateX(3px) rotate(0.5deg) } 50% { transform: translateX(0) rotate(-0.3deg) } 75% { transform: translateX(-3px) rotate(0.3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes otcar-tailor { 0% { transform: translateY(0) rotate(-3deg) scale(1) } 25% { transform: translateY(-2px) rotate(3deg) scale(1.05) } 50% { transform: translateY(0) rotate(-1deg) scale(1) } 75% { transform: translateY(-1px) rotate(2deg) scale(1.02) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes otcar-branches { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes otcar-leaves { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }

.scn-cherry-tree-trick {
  background: linear-gradient(180deg, #f0e8c0 0%, #d8c898 40%, #b8a068 100%),
              radial-gradient(ellipse at 50% 100%, #a08050 0%, transparent 60%);
}
.scn-cherry-tree-trick .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d0e8 0%, #d0e0f0 50%, transparent 100%);
  animation: ctt-sky 10s ease-in-out infinite alternate;
}
.scn-cherry-tree-trick .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6a8a3a 0%, #3a5a1a 100%);
  border-radius: 40% 60% 0 0 / 50% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.2);
  animation: ctt-grass 18s ease-in-out infinite;
}
.scn-cherry-tree-trick .cherry-tree-trunk {
  position: absolute; bottom: 50%; left: 40%; width: 22px; height: 60px;
  background: linear-gradient(90deg, #5a3a1a 0%, #8a5a3a 50%, #5a3a1a 100%);
  border-radius: 10% / 6%;
  transform-origin: bottom center;
  animation: ctt-trunk 20s ease-in-out infinite alternate;
}
.scn-cherry-tree-trick .cherry-tree-top {
  position: absolute; bottom: 62%; left: 28%; width: 160px; height: 120px;
  background: radial-gradient(ellipse at 50% 70%, #4a7a3a 0%, #2a5a1a 60%, transparent 100%);
  border-radius: 50% 40% 60% 50% / 70% 60% 40% 50%;
  filter: blur(3px);
  animation: ctt-top 6s ease-in-out infinite alternate;
}
.scn-cherry-tree-trick .giant-bending {
  position: absolute; bottom: 28%; left: 55%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ctt-giant 8s ease-in-out infinite;
}
.scn-cherry-tree-trick .tailor-standing {
  position: absolute; bottom: 25%; left: 30%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ctt-tailor 4s ease-in-out infinite;
}
.scn-cherry-tree-trick .cherries {
  position: absolute; bottom: 72%; left: 38%; width: 60px; height: 60px;
  background: radial-gradient(circle at 30% 30%, #5e1a1d 0%, #3a0a0a 70%);
  border-radius: 50%;
  animation: ctt-cherries 3s ease-in-out infinite alternate;
}
@keyframes ctt-sky { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ctt-grass { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ctt-trunk { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-0.5deg) } }
@keyframes ctt-top { 0% { transform: scale(1) rotate(-3deg) } 50% { transform: scale(1.03) rotate(3deg) } 100% { transform: scale(1) rotate(-2deg) } }
@keyframes ctt-giant { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ctt-tailor { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ctt-cherries { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }

.scn-giants-cave-arrival {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 30%, #3a2a0a 60%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 60%, #4a2a0a 0%, transparent 80%);
}
.scn-giants-cave-arrival .cave-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a0a 0%, #1a0a0a 50%, #0a0a0a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.8);
  animation: gca-cave 20s ease-in-out infinite alternate;
}
.scn-giants-cave-arrival .fire {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ff8c30 0%, #c04010 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 60px 20px rgba(255,140,48,0.4), 0 0 120px 40px rgba(192,64,16,0.3);
  animation: gca-fire 2s ease-in-out infinite alternate;
}
.scn-giants-cave-arrival .giant-left {
  position: absolute; bottom: 18%; left: 15%; width: 55px; height: 130px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: gca-giant-left 10s ease-in-out infinite;
}
.scn-giants-cave-arrival .giant-right {
  position: absolute; bottom: 20%; right: 12%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: gca-giant-right 12s ease-in-out infinite alternate;
}
.scn-giants-cave-arrival .giant-back {
  position: absolute; bottom: 25%; left: 40%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  filter: blur(2px);
  animation: gca-giant-back 15s ease-in-out infinite;
}
.scn-giants-cave-arrival .tailor-entering {
  position: absolute; bottom: 14%; left: 5%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gca-tailor 8s ease-in-out infinite;
}
.scn-giants-cave-arrival .sheep {
  position: absolute; bottom: 20%; left: 32%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 50% 40% 30% 40% / 60% 50% 50% 40%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.4);
  animation: gca-sheep 6s ease-in-out infinite alternate;
}
@keyframes gca-cave { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes gca-fire { 0% { transform: translateX(-50%) scale(1) rotate(-2deg); box-shadow: 0 0 50px 15px rgba(255,140,48,0.3), 0 0 100px 30px rgba(192,64,16,0.2); } 50% { transform: translateX(-50%) scale(1.1) rotate(2deg); box-shadow: 0 0 70px 25px rgba(255,140,48,0.5), 0 0 140px 50px rgba(192,64,16,0.4); } 100% { transform: translateX(-50%) scale(1) rotate(-1deg); box-shadow: 0 0 55px 18px rgba(255,140,48,0.35), 0 0 110px 35px rgba(192,64,16,0.25); } }
@keyframes gca-giant-left { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-0.5deg) } 75% { transform: translateY(-1px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes gca-giant-right { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes gca-giant-back { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes gca-tailor { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(2px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes gca-sheep { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }

/* soldiers-complain — tense, bright-interior tavern */
.scn-soldiers-complain {
  background: linear-gradient(180deg, #4a2e1b 0%, #7a4a2a 50%, #3a1e0b 100%), radial-gradient(ellipse at 50% 0%, #b08040 0%, transparent 70%);
}
.scn-soldiers-complain .wall-planks {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
}
.scn-soldiers-complain .table {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a10 100%);
  border-radius: 12px 12px 4px 4px;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-soldiers-complain .soldier {
  position: absolute; bottom: 27%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #8b3a2a 0%, #4a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-soldiers-complain .soldier-1 { left: 15%; animation: sc-sway 5s ease-in-out infinite; }
.scn-soldiers-complain .soldier-2 { left: 30%; animation: sc-sway 6s ease-in-out infinite 0.5s; }
.scn-soldiers-complain .soldier-3 { left: 70%; animation: sc-sway 5.5s ease-in-out infinite 1s; }
.scn-soldiers-complain .tailor-person {
  position: absolute; bottom: 27%; left: 50%; width: 26px; height: 55px;
  background: linear-gradient(180deg, #c08040 0%, #7a4a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sc-tailor 4s ease-in-out infinite;
}
.scn-soldiers-complain .lantern-glow {
  position: absolute; bottom: 55%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd680 0%, #b08040 100%);
  border-radius: 20%;
  box-shadow: 0 0 40px 12px #ffd680, 0 0 80px 24px rgba(255, 214, 128, 0.4);
  transform: translateX(-50%);
  animation: sc-lantern 3s ease-in-out infinite alternate;
}
.scn-soldiers-complain .sharp-shadow {
  position: absolute; bottom: 15%; left: 30%; right: 10%; height: 6px;
  background: #1a0a00; filter: blur(3px); border-radius: 50%;
  animation: sc-shadow 4s ease-in-out infinite;
}
@keyframes sc-sway {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc-tailor {
  0% { transform: translateX(-50%) scale(1); }
  30% { transform: translateX(-48%) scale(1.02) translateY(-1px); }
  60% { transform: translateX(-52%) scale(0.98); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes sc-lantern {
  0% { box-shadow: 0 0 30px 8px #b08040, 0 0 60px 16px rgba(176,128,64,0.3); opacity: 0.85; }
  50% { box-shadow: 0 0 50px 16px #ffd680, 0 0 90px 28px rgba(255,214,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 35px 10px #b08040, 0 0 70px 18px rgba(176,128,64,0.35); opacity: 0.9; }
}
@keyframes sc-shadow {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(1.1); opacity: 0.4; }
  100% { transform: scaleX(1); opacity: 0.8; }
}

/* king-plots-request — tense, bright-interior throne room */
.scn-king-plots-request {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #c08040 0%, transparent 70%);
}
.scn-king-plots-request .throne-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0a00 100%);
}
.scn-king-plots-request .window-bars {
  position: absolute; top: 8%; left: 10%; width: 25%; height: 35%;
  background: radial-gradient(circle, #c0a080 0%, #806040 100%);
  border: 4px solid #2a1a0a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: kp-window 8s ease-in-out infinite alternate;
}
.scn-king-plots-request .throne-seat {
  position: absolute; bottom: 18%; left: 50%; width: 70px; height: 85px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-king-plots-request .king-figure {
  position: absolute; bottom: 18%; left: 50%; width: 32px; height: 65px;
  background: linear-gradient(180deg, #a0522d 0%, #5e1a1d 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: kp-king 6s ease-in-out infinite;
}
.scn-king-plots-request .crown-hat {
  position: absolute; bottom: 72%; left: 50%; width: 22px; height: 18px;
  background: linear-gradient(180deg, #ffd680 0%, #c08040 100%);
  clip-path: polygon(0% 100%, 20% 0%, 50% 30%, 80% 0%, 100% 100%);
  transform: translateX(-50%);
  animation: kp-crown 3s ease-in-out infinite alternate;
}
.scn-king-plots-request .advisor-dark {
  position: absolute; bottom: 18%; left: 20%; width: 40px; height: 65px;
  background: #1a0a00;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(5px);
  opacity: 0.7;
  animation: kp-shadow 12s ease-in-out infinite;
}
.scn-king-plots-request .scepter {
  position: absolute; bottom: 40%; left: 55%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #ffd680 0%, #b08040 100%);
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: kp-scepter 5s ease-in-out infinite alternate;
}
@keyframes kp-window {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes kp-king {
  0% { transform: translateX(-50%) scale(1) rotate(0deg); }
  30% { transform: translateX(-48%) scale(1.02) rotate(1deg); }
  60% { transform: translateX(-52%) scale(0.98) rotate(-1deg); }
  100% { transform: translateX(-50%) scale(1) rotate(0deg); }
}
@keyframes kp-crown {
  0% { transform: translateX(-50%) translateY(0) rotate(-3deg); }
  50% { transform: translateX(-48%) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-52%) translateY(0) rotate(-1deg); }
}
@keyframes kp-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(5px) scaleX(1.1); opacity: 0.9; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.6; }
}
@keyframes kp-scepter {
  0% { transform: rotate(10deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(1.05); }
  100% { transform: rotate(10deg) scaleY(1); }
}

/* king-proposes-giants — funny, sunlit wide landscape */
.scn-king-proposes-giants {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #f4a460 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 80%);
}
.scn-king-proposes-giants .open-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, #fffacd 100%);
}
.scn-king-proposes-giants .far-hills {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.2);
}
.scn-king-proposes-giants .giant-hulk {
  position: absolute; bottom: 15%; width: 55px; height: 110px;
  background: linear-gradient(180deg, #9a9a9a 0%, #4a4a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-king-proposes-giants .giant-1 {
  left: 15%;
  animation: kg-giant-1 6s ease-in-out infinite alternate;
}
.scn-king-proposes-giants .giant-2 {
  right: 15%; width: 65px; height: 130px;
  animation: kg-giant-2 8s ease-in-out infinite alternate;
}
.scn-king-proposes-giants .tiny-castle {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 35px;
  background: linear-gradient(180deg, #d2b48c 0%, #8b7355 100%);
  transform: translateX(-50%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: kg-castle 5s ease-in-out infinite;
}
.scn-king-proposes-giants .sun-ball {
  position: absolute; top: 8%; right: 10%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fffacd 0%, #ffd700 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #ffd700, 0 0 100px 40px rgba(255,215,0,0.3);
  animation: kg-sun 10s ease-in-out infinite alternate;
}
.scn-king-proposes-giants .cloud-a {
  position: absolute; top: 12%; left: 5%; width: 120px; height: 30px;
  background: rgba(255,255,255,0.8);
  border-radius: 50%;
  filter: blur(10px);
  animation: kg-cloud 40s linear infinite;
}
.scn-king-proposes-giants .cloud-b {
  position: absolute; top: 22%; right: 5%; width: 90px; height: 24px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(8px);
  animation: kg-cloud 50s linear infinite reverse;
  animation-delay: -15s;
}
@keyframes kg-giant-1 {
  0% { transform: translateY(0) scale(1) rotate(0deg); }
  50% { transform: translateY(-6px) scale(1.04) rotate(2deg); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}
@keyframes kg-giant-2 {
  0% { transform: translateY(0) scale(1) rotate(0deg); }
  50% { transform: translateY(-8px) scale(1.03) rotate(-2deg); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}
@keyframes kg-castle {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.05) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes kg-sun {
  0% { transform: scale(0.95); opacity: 0.9; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.9; }
}
@keyframes kg-cloud {
  0% { transform: translateX(-100px); }
  100% { transform: translateX(100vw); }
}

/* tailor-bragging-and-leaving — funny, sunlit silhouette exit */
.scn-tailor-bragging-and-leaving {
  background: linear-gradient(180deg, #ffa07a 0%, #ffd700 50%, #ff8c00 100%), radial-gradient(ellipse at 50% 100%, #ffd700 0%, transparent 70%);
}
.scn-tailor-bragging-and-leaving .setting-sky {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #ffb347 0%, #ffcc80 100%);
}
.scn-tailor-bragging-and-leaving .dusty-road {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
}
.scn-tailor-bragging-and-leaving .tailor-back {
  position: absolute; bottom: 15%; left: 50%; width: 24px; height: 60px;
  background: #1a0a00;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: tb-walk 4s ease-in-out infinite;
}
.scn-tailor-bragging-and-leaving .pack-stick {
  position: absolute; bottom: 35%; left: 52%; width: 4px; height: 45px;
  background: #3a2a1a;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: tb-pack 4s ease-in-out infinite;
}
.scn-tailor-bragging-and-leaving .flying-bird {
  position: absolute; top: 15%; left: 5%; width: 24px; height: 12px;
  background: #2a1a0a;
  border-radius: 50% 50% 0 0;
  animation: tb-bird 14s linear infinite;
}
.scn-tailor-bragging-and-leaving .wayside-tree {
  position: absolute; right: 8%; bottom: 10%; width: 35px; height: 110px;
  background: linear-gradient(180deg, #228b22 0%, #006400 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: tb-tree 7s ease-in-out infinite alternate;
}
.scn-tailor-bragging-and-leaving .tall-grass {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #556b2f 0%, #2e4a1e 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: tb-grass 5s ease-in-out infinite alternate;
}
@keyframes tb-walk {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-45%) translateY(-3px) rotate(3deg); }
  50% { transform: translateX(-40%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-45%) translateY(-3px) rotate(-3deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes tb-pack {
  0% { transform: rotate(10deg) scaleY(1); }
  25% { transform: rotate(20deg) scaleY(1.05); }
  50% { transform: rotate(15deg) scaleY(0.95); }
  75% { transform: rotate(25deg) scaleY(1.05); }
  100% { transform: rotate(10deg) scaleY(1); }
}
@keyframes tb-bird {
  0% { transform: translateX(0) translateY(0) scale(1); }
  25% { transform: translateX(20vw) translateY(-8px) scale(1.1); }
  50% { transform: translateX(40vw) translateY(0) scale(0.9); }
  75% { transform: translateX(60vw) translateY(-12px) scale(1.05); }
  100% { transform: translateX(80vw) translateY(0) scale(1); }
}
@keyframes tb-tree {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-2deg) scale(1); }
}
@keyframes tb-grass {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.9; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-fundevogel-escape-transformation {
  background: linear-gradient(180deg, #f4e4c0 0%, #e8c880 40%, #d4a050 100%), radial-gradient(ellipse at 40% 20%, rgba(255,230,160,0.6) 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-fundevogel-escape-transformation .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 50%, transparent 100%); animation: fe-sky 8s ease-in-out infinite alternate;
}
.scn-fundevogel-escape-transformation .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px; background: radial-gradient(circle, #fff8e0 0%, #ffd700 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.4); animation: fe-sun 6s ease-in-out infinite;
}
.scn-fundevogel-escape-transformation .hills {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6b8e5e 0%, #3e5c3a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3); animation: fe-hills 12s ease-in-out infinite alternate;
}
.scn-fundevogel-escape-transformation .child-left {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 40px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fe-morph-left 4s ease-in-out infinite alternate;
}
.scn-fundevogel-escape-transformation .child-right {
  position: absolute; bottom: 28%; right: 30%; width: 18px; height: 38px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fe-morph-right 4s ease-in-out infinite alternate 2s;
}
.scn-fundevogel-escape-transformation .aura-left {
  position: absolute; bottom: 25%; left: 26%; width: 50px; height: 50px; background: radial-gradient(circle, rgba(255,220,100,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: fe-aura 2s ease-in-out infinite;
}
.scn-fundevogel-escape-transformation .aura-right {
  position: absolute; bottom: 25%; right: 26%; width: 50px; height: 50px; background: radial-gradient(circle, rgba(200,230,255,0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: fe-aura 2s ease-in-out infinite 1s;
}
.scn-fundevogel-escape-transformation .bush-shadow {
  position: absolute; bottom: 22%; left: 24%; width: 30px; height: 25px; background: #2d4a2d; border-radius: 40% 60% 50% 50% / 60% 50% 50% 40%; opacity: 0.3; animation: fe-fade 4s ease-in-out infinite alternate;
}
.scn-fundevogel-escape-transformation .tower-shadow {
  position: absolute; bottom: 22%; right: 25%; width: 15px; height: 50px; background: #4a4a3a; border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%; opacity: 0.2; animation: fe-fade 4s ease-in-out infinite alternate 2s;
}
@keyframes fe-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes fe-sun { 0% { transform: scale(0.9); } 50% { transform: scale(1.1); box-shadow: 0 0 80px 30px rgba(255,215,0,0.6); } 100% { transform: scale(0.95); } }
@keyframes fe-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fe-morph-left { 0% { border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; width: 20px; height: 40px; } 50% { border-radius: 30% 70% 50% 50% / 70% 50% 50% 30%; width: 25px; height: 35px; } 100% { border-radius: 40% 60% 50% 50% / 60% 50% 50% 40%; width: 30px; height: 30px; } }
@keyframes fe-morph-right { 0% { border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; width: 18px; height: 38px; } 50% { border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; width: 14px; height: 50px; } 100% { border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%; width: 15px; height: 55px; } }
@keyframes fe-aura { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 0.5; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }
@keyframes fe-fade { 0% { opacity: 0.1; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }

.scn-item-tailor-belt {
  background: linear-gradient(180deg, #b8d4f0 0%, #e8f0d4 50%, #c8d8a0 100%), radial-gradient(ellipse at 50% 100%, rgba(255,255,200,0.3) 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-item-tailor-belt .sky {
  position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #a0c8f0 0%, #d0e8ff 50%, transparent 100%); animation: tb-sky 10s ease-in-out infinite alternate;
}
.scn-item-tailor-belt .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #7ba55a 0%, #5a7a3a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-item-tailor-belt .tailor {
  position: absolute; bottom: 25%; left: 30%; width: 16px; height: 36px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tb-strut 3s ease-in-out infinite;
}
.scn-item-tailor-belt .belt {
  position: absolute; bottom: 35%; left: 28%; width: 20px; height: 4px; background: #7a5a3a; border-radius: 2px; box-shadow: 0 0 0 2px #b08040; animation: tb-strut 3s ease-in-out infinite;
}
.scn-item-tailor-belt .belt::before {
  content: ''; position: absolute; top: -2px; left: 2px; width: 16px; height: 8px; background: repeating-linear-gradient(90deg, #c08040 0px, #c08040 3px, transparent 4px, transparent 7px);
}
.scn-item-tailor-belt .giant {
  position: absolute; bottom: 0; right: 10%; width: 80px; height: 120px; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: tb-giant 5s ease-in-out infinite;
}
.scn-item-tailor-belt .cheese {
  position: absolute; bottom: 20%; left: 22%; width: 10px; height: 8px; background: #d4b84a; border-radius: 30% 40% 20% 20%; transform: rotate(-15deg); animation: tb-bounce 2s ease-in-out infinite;
}
.scn-item-tailor-belt .bird {
  position: absolute; bottom: 22%; left: 40%; width: 12px; height: 10px; background: #a08060; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg); animation: tb-flutter 1.5s ease-in-out infinite;
}
.scn-item-tailor-belt .stone-splash {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 20px; background: linear-gradient(to top, #c8e0ff, transparent); border-radius: 50%; opacity: 0.6; animation: tb-splash 1s ease-out infinite;
}
@keyframes tb-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tb-strut { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(6px) rotate(-2deg); } 75% { transform: translateX(9px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes tb-giant { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1); } }
@keyframes tb-bounce { 0%,100% { transform: translateY(0) rotate(-15deg); } 50% { transform: translateY(-3px) rotate(-10deg); } }
@keyframes tb-flutter { 0%,100% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(25deg) translateX(2px); } }
@keyframes tb-splash { 0% { opacity: 0.8; height: 0; } 50% { opacity: 0.5; height: 20px; } 100% { opacity: 0; height: 30px; } }

.scn-tailor-oak-cherry {
  background: linear-gradient(180deg, #c8e0f0 0%, #e0f0d0 50%, #b0c880 100%), radial-gradient(ellipse at 60% 40%, rgba(255,250,200,0.4) 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-tailor-oak-cherry .sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #a8d0f0 0%, #d8eaff 50%, transparent 100%); animation: oc-sky 8s ease-in-out infinite alternate;
}
.scn-tailor-oak-cherry .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #6b8e5e 0%, #4d7040 100%); border-radius: 40% 60% 0 0 / 50% 60% 0 0;
}
.scn-tailor-oak-cherry .giant {
  position: absolute; bottom: 20%; left: 20%; width: 70px; height: 100px; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: oc-giant-walk 6s ease-in-out infinite;
}
.scn-tailor-oak-cherry .tree-trunk {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 80px; background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #6a4a2a 100%); border-radius: 5px; transform-origin: bottom center; animation: oc-sway 4s ease-in-out infinite;
}
.scn-tailor-oak-cherry .branch {
  position: absolute; bottom: 60%; left: 30%; width: 60px; height: 8px; background: #6a4a2a; border-radius: 4px; transform-origin: left center; animation: oc-sway 4s ease-in-out infinite -1s;
}
.scn-tailor-oak-cherry .tailor {
  position: absolute; bottom: 64%; left: 38%; width: 14px; height: 28px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oc-bounce 2s ease-in-out infinite;
}
.scn-tailor-oak-cherry .leaves {
  position: absolute; bottom: 70%; left: 28%; width: 50px; height: 30px; background: #4a7a4a; border-radius: 50% 60% 40% 50% / 60% 50% 50% 40%; filter: blur(2px); animation: oc-drift 5s ease-in-out infinite;
}
.scn-tailor-oak-cherry .cherry {
  position: absolute; bottom: 58%; left: 45%; width: 6px; height: 6px; background: #c8553d; border-radius: 50%; box-shadow: 0 0 6px rgba(200,85,61,0.4); animation: oc-swing 3s ease-in-out infinite;
}
@keyframes oc-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes oc-giant-walk { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(10px) scaleY(1.02); } 50% { transform: translateX(20px) scaleY(1); } 75% { transform: translateX(30px) scaleY(1.01); } 100% { transform: translateX(40px) scaleY(1); } }
@keyframes oc-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes oc-bounce { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } }
@keyframes oc-drift { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(5px, -2px) rotate(10deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes oc-swing { 0%,100% { transform: translate(0, 0); } 50% { transform: translate(2px, -1px); } }

.scn-tailor-cave-night {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0e0e1a 100%), radial-gradient(ellipse at 50% 60%, rgba(40,30,60,0.5) 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%;
}
.scn-tailor-cave-night .cave-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2e2e4a 0%, #1a1a2e 60%, #0a0a14 100%); border-radius: 30% 70% 50% 50% / 40% 60% 50% 50%; animation: cn-cave 15s ease-in-out infinite alternate;
}
.scn-tailor-cave-night .cave-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%;
}
.scn-tailor-cave-night .giant-silhouette {
  position: absolute; bottom: 10%; left: 20%; width: 80px; height: 100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 30% 30% 10% 10% / 60% 60% 30% 30%; filter: blur(1px); animation: cn-breathe 6s ease-in-out infinite;
}
.scn-tailor-cave-night .tailor-silhouette {
  position: absolute; bottom: 15%; left: 50%; width: 12px; height: 30px; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cn-crouch 4s ease-in-out infinite;
}
.scn-tailor-cave-night .lantern {
  position: absolute; bottom: 45%; left: 60%; width: 8px; height: 12px; background: #d4a050; border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px rgba(212,160,80,0.5); animation: cn-sway 3s ease-in-out infinite;
}
.scn-tailor-cave-night .lantern-glow {
  position: absolute; bottom: 40%; left: 55%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(212,160,80,0.4) 0%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: cn-glow 2s ease-in-out infinite;
}
.scn-tailor-cave-night .stalactite {
  position: absolute; top: 0; left: 30%; width: 6px; height: 40px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 0 0 30% 30%; animation: cn-drip 5s ease-in-out infinite;
}
@keyframes cn-cave { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes cn-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes cn-crouch { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cn-sway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes cn-glow { 0% { opacity: 0.5; transform: scale(0.9); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.95); } }
@keyframes cn-drip { 0% { height: 40px; } 50% { height: 45px; } 100% { height: 40px; } }
/* end per-scene blocks */

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* --- fundevogel-escape --- */
.scn-fundevogel-escape {
  background:
    linear-gradient(180deg, #0f0f2a 0%, #1a1a3e 45%, #2c2244 70%, #4a3a6e 100%),
    radial-gradient(ellipse at 50% 90%, #4a3a6e 0%, transparent 70%);
}
.scn-fundevogel-escape .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #2a2a4e 0%, #1a1a3e 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-fundevogel-escape .floor {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: repeating-linear-gradient(90deg,
    #3a2a1a 0px, #3a2a1a 6px,
    #2a1a0a 6px, #2a1a0a 12px);
  transform: perspective(300px) rotateX(20deg);
}
.scn-fundevogel-escape .window {
  position: absolute; top:12%; left:55%; width:80px; height:100px;
  background: radial-gradient(ellipse at 50% 20%, #2a4a7a 0%, #0a1a2a 100%);
  border: 4px solid #1a1a2a;
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(40,80,180,.3);
  animation: fe-glow 6s ease-in-out infinite alternate;
}
.scn-fundevogel-escape .candle {
  position: absolute; bottom:40%; left:30%; width:8px; height:50px;
  background: linear-gradient(180deg, #d0a050 0%, #8a6030 100%);
  border-radius: 2px 2px 4px 4px;
}
.scn-fundevogel-escape .candle::after {
  content: ''; position: absolute; top:-20px; left:50%; transform:translateX(-50%);
  width:16px; height:24px;
  background: radial-gradient(ellipse, #ffe080 0%, #d08040 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px #b06030;
  animation: fe-flame 1.2s ease-in-out infinite alternate;
}
.scn-fundevogel-escape .figure-lina {
  position: absolute; bottom:32%; left:38%; width:22px; height:44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fe-sneak 5s ease-in-out infinite;
}
.scn-fundevogel-escape .figure-funde {
  position: absolute; bottom:34%; left:42%; width:18px; height:38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fe-sneak 5s ease-in-out infinite -1.2s;
}
.scn-fundevogel-escape .door {
  position: absolute; bottom:10%; left:18%; width:50px; height:90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  border-right: 2px solid #1a0a00;
}
@keyframes fe-glow {
  0% { opacity:.6; box-shadow: 0 0 20px 5px rgba(40,80,180,.2); }
  100% { opacity:1; box-shadow: 0 0 40px 15px rgba(60,120,220,.4); }
}
@keyframes fe-flame {
  0% { transform:translateX(-50%) scaleY(1) scaleX(.8); opacity:.9; }
  30% { transform:translateX(-50%) scaleY(1.2) scaleX(.9); }
  60% { transform:translateX(-50%) scaleY(.9) scaleX(1); opacity:1; }
  100% { transform:translateX(-50%) scaleY(1.1) scaleX(.7); opacity:.8; }
}
@keyframes fe-sneak {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0deg); }
}

/* --- item-belt-with-stitching --- */
.scn-item-belt-with-stitching {
  background:
    linear-gradient(180deg, #c4e0f0 0%, #e8f4ff 40%, #fffbe0 100%),
    radial-gradient(ellipse at 30% 20%, #fff5d0 0%, transparent 60%);
}
.scn-item-belt-with-stitching .bg-sky {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #a0d0e8 0%, transparent 100%);
  opacity:.5;
}
.scn-item-belt-with-stitching .belt {
  position: absolute; top:25%; left:5%; right:5%; height:40%;
  background: linear-gradient(135deg, #8a6a3a 0%, #5a4020 50%, #7a5a30 100%);
  border-radius: 20px;
  box-shadow: 0 8px 20px rgba(0,0,0,.3), inset 0 2px 4px #d0b080;
  transform: perspective(400px) rotateX(10deg) rotateY(-5deg);
  animation: ibs-belt 8s ease-in-out infinite alternate;
}
.scn-item-belt-with-stitching .stitch-row {
  position: absolute; top:38%; left:15%; right:15%; height:4px;
  background: repeating-linear-gradient(90deg,
    #f0d080 0px, #f0d080 6px,
    transparent 6px, transparent 12px);
  animation: ibs-stitch 3s linear infinite;
}
.scn-item-belt-with-stitching .fly {
  position: absolute; top:30%; width:10px; height:10px;
  background: radial-gradient(circle, #8a3a1a 0%, #5a2010 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px #2a0a00;
  animation: ibs-fly 2s ease-in-out infinite;
}
.scn-item-belt-with-stitching .fly-1 { left:8%; animation-delay:-.2s; }
.scn-item-belt-with-stitching .fly-2 { left:22%; animation-delay:.3s; }
.scn-item-belt-with-stitching .fly-3 { left:36%; animation-delay:-.5s; }
.scn-item-belt-with-stitching .fly-4 { left:50%; animation-delay:.8s; }
.scn-item-belt-with-stitching .fly-5 { left:64%; animation-delay:-.1s; }
.scn-item-belt-with-stitching .fly-6 { left:78%; animation-delay:.6s; }
.scn-item-belt-with-stitching .fly-7 { left:92%; animation-delay:-.3s; }
.scn-item-belt-with-stitching .thread {
  position: absolute; top:50%; left:20%; width:60%; height:2px;
  background: linear-gradient(90deg, #d0a060 0%, #f0d080 50%, #d0a060 100%);
  transform: rotate(15deg);
  animation: ibs-thread 4s ease-in-out infinite alternate;
}
.scn-item-belt-with-stitching .needle {
  position: absolute; top:48%; left:15%;
  width:30px; height:30px;
  background: radial-gradient(circle at 30% 30%, #c0c0c0 0%, #808080 100%);
  clip-path: polygon(0 0,100% 30%,80% 100%,20% 100%);
  transform: rotate(-20deg);
  animation: ibs-needle 5s ease-in-out infinite alternate;
}
@keyframes ibs-belt {
  0% { transform: perspective(400px) rotateX(10deg) rotateY(-5deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(12deg) rotateY(-8deg) translateY(-3px); }
  100% { transform: perspective(400px) rotateX(8deg) rotateY(-2deg) translateY(2px); }
}
@keyframes ibs-stitch { 0% { background-position:0 0; } 100% { background-position:120px 0; } }
@keyframes ibs-fly {
  0% { transform: translate(0,0) scale(1); }
  30% { transform: translate(-3px,-5px) scale(1.1); opacity:.8; }
  60% { transform: translate(4px,3px) scale(.9); opacity:1; }
  100% { transform: translate(0,0) scale(1); }
}
@keyframes ibs-thread {
  0% { transform: rotate(10deg) scaleX(1); }
  50% { transform: rotate(20deg) scaleX(1.1); }
  100% { transform: rotate(10deg) scaleX(1); }
}
@keyframes ibs-needle {
  0% { transform: rotate(-20deg) translateY(0); }
  100% { transform: rotate(-10deg) translateY(-5px); }
}

/* --- tailor-carries-tree --- */
.scn-tailor-carries-tree {
  background:
    linear-gradient(180deg, #6ab0d0 0%, #a0d8e8 40%, #c8e8f0 70%, #e0f0e8 100%),
    radial-gradient(ellipse at 30% 10%, #b0dce8 0%, transparent 70%);
}
.scn-tailor-carries-tree .bg-sky-tree {
  position: absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a90b0 0%, transparent 100%);
  animation: tc-sky 12s ease-in-out infinite alternate;
}
.scn-tailor-carries-tree .ground {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  animation: tc-ground 15s ease-in-out infinite alternate;
}
.scn-tailor-carries-tree .giant {
  position: absolute; bottom:20%; left:10%; width:120px; height:160px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 12px 30px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: tc-giant 8s ease-in-out infinite alternate;
}
.scn-tailor-carries-tree .tree-trunk {
  position: absolute; bottom:20%; left:35%; width:30px; height:180px;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a5a2a 50%, #4a2a0a 100%);
  border-radius: 6px;
  transform: rotate(-15deg);
  transform-origin: bottom center;
  animation: tc-trunk 6s ease-in-out infinite alternate;
}
.scn-tailor-carries-tree .tree-branches {
  position: absolute; bottom:50%; left:30%; width:80px; height:60px;
  background:
    radial-gradient(ellipse at 20% 80%, #3a2a0a 0%, transparent 70%),
    radial-gradient(ellipse at 80% 20%, #4a3a1a 0%, transparent 60%);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: tc-branches 7s ease-in-out infinite alternate;
}
.scn-tailor-carries-tree .tailor-on-branch {
  position: absolute; bottom:65%; left:45%; width:16px; height:28px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc-tailor 3s ease-in-out infinite;
}
.scn-tailor-carries-tree .leaves-cluster {
  position: absolute; bottom:55%; left:25%; right:15%; height:50px;
  background: radial-gradient(ellipse at 30% 50%, #5a8a3a 0%, #3a6a1a 70%, transparent 100%);
  filter: blur(4px);
  animation: tc-leaves 9s ease-in-out infinite alternate;
}
@keyframes tc-sky {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.7; }
}
@keyframes tc-ground {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes tc-giant {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(2deg); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes tc-trunk {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes tc-branches {
  0% { transform: rotate(-20deg) scale(1); }
  50% { transform: rotate(-22deg) scale(1.05); }
  100% { transform: rotate(-18deg) scale(.95); }
}
@keyframes tc-tailor {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(12px) rotate(3deg); }
  100% { transform: translateX(16px) rotate(0); }
}
@keyframes tc-leaves {
  0% { opacity:.6; transform: scaleY(1); }
  100% { opacity:1; transform: scaleY(1.1); }
}

/* --- tailor-cherry-tree-cave --- */
.scn-tailor-cherry-tree-cave {
  background:
    linear-gradient(180deg, #6ab0d0 0%, #a0d8e8 35%, #c8e8f0 65%, #e0f0e8 100%),
    radial-gradient(ellipse at 70% 30%, #b0dce8 0%, transparent 70%);
}
.scn-tailor-cherry-tree-cave .sky-cherry {
  position: absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #4a90b0 0%, transparent 100%);
  animation: tct-sky 14s ease-in-out infinite alternate;
}
.scn-tailor-cherry-tree-cave .ground-cherry {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: tct-ground 12s ease-in-out infinite alternate;
}
.scn-tailor-cherry-tree-cave .giant-looking {
  position: absolute; bottom:15%; right:15%; width:100px; height:140px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: tct-giant 5s ease-in-out infinite alternate;
}
.scn-tailor-cherry-tree-cave .cherry-tree {
  position: absolute; bottom:20%; left:20%; width:40px; height:160px;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a5a2a 50%, #4a2a0a 100%);
  border-radius: 6px;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: tct-tree 6s ease-in-out infinite alternate;
}
.scn-tailor-cherry-tree-cave .cherry-branch-bent {
  position: absolute; bottom:40%; left:15%; width:100px; height:20px;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a5a2a 80%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: tct-branch 3s ease-in-out infinite alternate;
}
.scn-tailor-cherry-tree-cave .tailor-flying {
  position: absolute; bottom:60%; left:30%; width:18px; height:30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-25deg);
  animation: tct-fly 2s ease-in-out infinite alternate;
}
.scn-tailor-cherry-tree-cave .cherries-falling {
  position: absolute; top:20%; left:10%; right:20%; height:80%;
  background:
    radial-gradient(circle at 20% 10%, #b87878 0%, #8a5050 50%, transparent 50%) 20% 10% / 12px 12px,
    radial-gradient(circle at 40% 25%, #b87878 0%, #8a5050 50%, transparent 50%) 40% 25% / 10px 10px,
    radial-gradient(circle at 60% 15%, #b87878 0%, #8a5050 50%, transparent 50%) 60% 15% / 14px 14px,
    radial-gradient(circle at 80% 30%, #b87878 0%, #8a5050 50%, transparent 50%) 80% 30% / 11px 11px;
  background-repeat: no-repeat;
  animation: tct-cherries 4s ease-in-out infinite alternate;
}
.scn-tailor-cherry-tree-cave .cherry-leaves {
  position: absolute; bottom:45%; left:10%; right:30%; height:40px;
  background: radial-gradient(ellipse at 50% 50%, #5a8a3a 0%, #3a6a1a 70%, transparent 100%);
  filter: blur(3px);
  animation: tct-leaves 8s ease-in-out infinite alternate;
}
@keyframes tct-sky {
  0% { opacity:.8; }
  100% { opacity:1; }
}
@keyframes tct-ground {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes tct-giant {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes tct-tree {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes tct-branch {
  0% { transform: rotate(-30deg) scaleY(1); }
  50% { transform: rotate(-25deg) scaleY(1.1); }
  100% { transform: rotate(-30deg) scaleY(1); }
}
@keyframes tct-fly {
  0% { transform: rotate(-25deg) translateY(0); }
  50% { transform: rotate(-35deg) translateY(-10px); opacity:.9; }
  100% { transform: rotate(-25deg) translateY(0); }
}
@keyframes tct-cherries {
  0% { background-position: 20% 10%, 40% 25%, 60% 15%, 80% 30%; opacity:.7; }
  100% { background-position: 20% 40%, 40% 55%, 60% 45%, 80% 60%; opacity:1; }
}
@keyframes tct-leaves {
  0% { opacity:.5; transform: scaleY(1); }
  100% { opacity:1; transform: scaleY(1.15); }
}
/* end per-scene blocks */
