#effects{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:7;touch-action:auto}#modal{z-index:8}.top,#objective,#gameFooter,#mapFooter,#mapTitle{z-index:5}.curtain{z-index:20}.phone.impact #game{animation:impact-shake .28s}.celebrating #badge{animation:happy-bounce .8s ease-in-out 3}.celebrating .result-star.earned{animation:star-pop .6s backwards,star-shimmer 1.3s .6s ease-in-out 2}.celebrating .card{animation:result-arrival .38s ease-out}.celebrating #resultPanel b{animation:score-glow 1s ease-in-out 2}@keyframes impact-shake{0%,100%{transform:translate(0)}20%{transform:translate(-3px,1px)}40%{transform:translate(3px,-2px)}60%{transform:translate(-2px,1px)}80%{transform:translate(2px,0)}}@keyframes happy-bounce{0%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-7px) rotate(-7deg)}65%{transform:translateY(-3px) rotate(7deg)}}@keyframes star-shimmer{0%,100%{filter:brightness(1)}50%{filter:brightness(1.45);transform:scale(1.1)}}@keyframes result-arrival{from{opacity:0;transform:translateY(20px) scale(.92)}to{opacity:1;transform:none}}@keyframes score-glow{50%{color:#e98619}}@media(prefers-reduced-motion:reduce){.phone.impact #game,.celebrating #badge,.celebrating .result-star.earned,.celebrating .card,.celebrating #resultPanel b{animation:none}}
