/* V43 · every scenario has a non-fatal, 3-second themed decoy hazard. */
#stageTrapImpact{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;z-index:8;pointer-events:none;display:none;visibility:hidden;opacity:0;overflow:hidden;--trap-main:#ffd75a;--trap-edge:#e8964b;--trap-ink:#6c3b50;background:radial-gradient(ellipse at 52% 42%,rgba(255,239,169,.34),rgba(56,32,73,.56));transition:none}
#stageTrapImpact.active{display:block;visibility:visible;opacity:1}
.stage-trap-visual{position:absolute;inset:0;top:0;right:0;bottom:0;left:0;filter:drop-shadow(0 5px 8px rgba(65,32,74,.28))}
.stage-trap-spray{position:absolute;border:5px solid rgba(255,255,255,.38);background:var(--trap-main);border-radius:38% 62% 57% 43% / 63% 44% 56% 37%;box-shadow:inset 15px -8px 0 rgba(30,15,68,.09),0 0 22px var(--trap-edge);transform:scale(.1) rotate(-12deg)}
#stageTrapImpact.active .stage-trap-spray{animation:stageTrapSplat .45s cubic-bezier(.13,.87,.21,1.2) forwards}
.spray-a{width:84%;height:28%;left:-13%;top:10%;}.spray-b{width:83%;height:28%;right:-24%;top:43%;animation-delay:.08s!important}.spray-c{width:76%;height:21%;left:-19%;bottom:6%;animation-delay:.13s!important}
.stage-trap-message{position:absolute;left:7%;right:7%;top:40%;border:3px solid #fff8e0;border-radius:24px;background:rgba(55,35,77,.95);padding:12px 8px;text-align:center;color:#fff8e8;font-size:20px;font-weight:1000;box-shadow:0 9px 0 rgba(39,28,63,.6),0 0 0 6px rgba(255,243,176,.28)}
.stage-trap-message strong,.stage-trap-message small,.stage-trap-message b{display:block}.stage-trap-message strong{font-size:17px;line-height:1.35}.stage-trap-message small{font-size:11px;margin:5px 0 7px;color:#ffecc2}.stage-trap-message b{font-size:12px;color:#ffeb82}.stage-trap-glyph{display:block;font-size:40px;margin:-25px auto 4px;filter:drop-shadow(1px 3px 0 #59436f)}
.stage-trap-stick,.stage-trap-petal{display:none}
#stageTrapImpact.trap-pumpkin{--trap-main:#FFDC4D;--trap-edge:#FF9D32;background:radial-gradient(circle,rgba(255,209,47,.28),rgba(121,60,36,.5))}
#stageTrapImpact.trap-pumpkin .stage-trap-spray{border-color:#FFE886;box-shadow:inset 6px 8px 0 #FFBB39,0 0 24px #FFB951}
#stageTrapImpact.trap-lab{--trap-main:#B8F85A;--trap-edge:#57CA59}
#stageTrapImpact.trap-coffee{--trap-main:#B87B50;--trap-edge:#6D4437}
#stageTrapImpact.trap-echo{--trap-main:#A9B6F5;--trap-edge:#6671CF}
#stageTrapImpact.trap-paint{--trap-main:#F2A3DB;--trap-edge:#7DC5FA}
#stageTrapImpact.trap-ink{--trap-main:#44345E;--trap-edge:#A284D1}
#stageTrapImpact.trap-metro{--trap-main:#BFD7F6;--trap-edge:#76A5E8}
#stageTrapImpact.trap-fan{--trap-main:#D3B5E4;--trap-edge:#9C80C2}
#stageTrapImpact.trap-chili{--trap-main:#F57C68;--trap-edge:#E54351}
#stageTrapImpact.trap-glitch{--trap-main:#77EDD9;--trap-edge:#479DE0}
#stageTrapImpact.trap-petal{--trap-main:#F0B9CF;--trap-edge:#E781A9}
#stageTrapImpact.trap-battery{--trap-main:#B6AACF;--trap-edge:#615A80}
#stageTrapImpact.trap-bamboo{--trap-main:#8BD37C;--trap-edge:#3F8F62;background:radial-gradient(circle,rgba(184,235,146,.38),rgba(37,75,48,.59))}
#stageTrapImpact.trap-bamboo .stage-trap-spray{background:rgba(92,163,90,.42);box-shadow:none}
#stageTrapImpact.trap-bamboo .stage-trap-stick{display:block;position:absolute;top:-5%;width:15%;height:110%;border:6px solid #327C4C;border-radius:22px;background:repeating-linear-gradient(to bottom,#B4E98C 0%,#7FC86E 14%,#337B50 15%,#A7E58B 17%,#97D478 29%);transform:translateY(-130%)}
#stageTrapImpact.active.trap-bamboo .stage-trap-stick{animation:bambooSlide .42s cubic-bezier(.2,.95,.25,1) forwards}
#stageTrapImpact.trap-bamboo .stick-a{left:10%;transform:translateY(-130%) rotate(-8deg)}
#stageTrapImpact.trap-bamboo .stick-b{left:45%;width:13%;animation-delay:.08s!important}
#stageTrapImpact.trap-bamboo .stick-c{right:9%;width:17%;animation-delay:.14s!important}
#stageTrapImpact.trap-bamboo .stage-trap-petal{display:block;position:absolute;top:22%;width:41%;height:15%;background:#3F8E54;border-radius:1% 94% 5% 94%;transform:rotate(-28deg);opacity:.92}
#stageTrapImpact.trap-bamboo .petal-a{left:0;top:34%}
#stageTrapImpact.trap-bamboo .petal-b{right:2%;top:62%;transform:rotate(145deg)}
#stageTrapImpact.trap-glitch .stage-trap-visual{background:repeating-linear-gradient(0deg,transparent 0 18px,rgba(79,229,213,.4) 19px 21px)}
@keyframes stageTrapSplat{0%{transform:scale(.1) rotate(-18deg);opacity:0}67%{transform:scale(1.08) rotate(3deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:.93}}
@keyframes bambooSlide{0%{transform:translateY(-130%) rotate(-4deg)}70%{transform:translateY(4%) rotate(2deg)}100%{transform:translateY(0) rotate(0)}}
#game.stage-trap-shake #canvas{animation:stageTrapJitter .22s steps(2,end) 3}
@keyframes stageTrapJitter{25%{transform:translate(3px,-1px)}50%{transform:translate(-3px,2px)}75%{transform:translate(2px,1px)}}
@media(prefers-reduced-motion:reduce){#stageTrapImpact.active .stage-trap-spray,#stageTrapImpact.active.trap-bamboo .stage-trap-stick,#game.stage-trap-shake #canvas{animation:none!important;transform:none!important;opacity:.88}}
@media(max-height:640px){.stage-trap-message{top:35%;padding:7px 6px}.stage-trap-message strong{font-size:15px}.stage-trap-glyph{font-size:30px}}
/* Per-scene object language: splashes for liquid, echo rings, paper tickets,
   pixel bars, smoke, petals and power-outage shade; all are CSS-only assets. */
#stageTrapImpact.trap-echo .stage-trap-spray{border:8px double #d7d7ff;background:transparent;box-shadow:0 0 0 14px rgba(141,158,252,.17),0 0 0 31px rgba(141,158,252,.13)}
#stageTrapImpact.trap-paint .spray-a{background:radial-gradient(circle at 35% 20%,#fcd1e6,#f39cdc 65%,#f16d9e)}
#stageTrapImpact.trap-paint .spray-b{background:radial-gradient(circle at 45% 38%,#8af3ef,#7cbcff 65%,#a78eff)}
#stageTrapImpact.trap-ink .stage-trap-spray{border-radius:15% 62% 17% 57%;background:#554165}
#stageTrapImpact.trap-metro .stage-trap-spray{border-radius:12px;border:6px dashed #f0faff;background:repeating-linear-gradient(90deg,#99bbea 0 32px,#cfe3ff 33px 47px);transform:rotate(-16deg)}
#stageTrapImpact.trap-fan .stage-trap-spray{border-radius:12px 60px 17px 60px;background:repeating-linear-gradient(-15deg,#f9edff 0 19px,#dec3ea 20px 25px)}
#stageTrapImpact.trap-chili .stage-trap-spray{border-radius:50%;background:radial-gradient(circle at center,#FFAF80 0,#F9676A 45%,rgba(244,71,73,.42) 78%);filter:blur(5px)}
#stageTrapImpact.trap-petal .stage-trap-spray{border-radius:88% 3% 87% 6%;background:linear-gradient(130deg,#FCE0E8,#EE87B7)}
#stageTrapImpact.trap-glitch .stage-trap-spray{border-radius:3px;border:0;box-shadow:0 4px #453f8b;background:repeating-linear-gradient(90deg,#88faec 0 14px,#d68cef 14px 19px,#4373b6 20px 27px)}
#stageTrapImpact.trap-battery{background:radial-gradient(ellipse,rgba(80,67,99,.55),rgba(24,21,47,.88))}
#stageTrapImpact.trap-battery .stage-trap-spray{background:#645b78;border-color:#b8b3ca;opacity:.85}
#stageTrapImpact.trap-bamboo .stage-trap-message{background:rgba(31,72,50,.95);border-color:#d1f4a1}
#stageTrapImpact.trap-pumpkin .stage-trap-message{background:rgba(99,50,69,.95);border-color:#ffe781}
