body.is-playing{overscroll-behavior:none;touch-action:none}
.can.is-overdrive{filter:drop-shadow(0 0 8px #f8c35a) drop-shadow(-12px 5px 9px #f36f45);animation:can-overdrive-shake .08s linear infinite alternate}
.can.is-overdrive:after{content:"";position:absolute;right:72%;top:43%;width:110%;height:18%;z-index:-1;border-radius:999px;background:linear-gradient(90deg,transparent 0 8%,#f36f45 45%,#f8c35a 78%,#fffaf0);filter:blur(1px);transform:translateY(-50%)}
.feedback[data-mode="overdrive"]{border-left-color:#f8c35a;background:#fff0cf}
.playfield.is-wall-hit{animation:wall-hit-shake .34s ease-out}
.playfield.is-wall-hit:after{content:"";position:absolute;left:61.25%;top:47%;width:15%;aspect-ratio:1;z-index:20;pointer-events:none;transform:translate(-50%,-50%);background:radial-gradient(circle,#fffaf0 0 9%,#f8c35a 10% 22%,#d9563f 23% 31%,transparent 32%);clip-path:polygon(50% 0,61% 31%,86% 14%,72% 40%,100% 50%,69% 59%,86% 86%,60% 70%,50% 100%,40% 70%,14% 86%,31% 60%,0 50%,30% 40%,14% 14%,40% 31%);animation:wall-impact-pop .5s ease-out forwards}
.can.is-wall-hit{animation:can-wall-bounce .56s cubic-bezier(.2,.8,.3,1) forwards!important;filter:drop-shadow(5px 7px 0 #07132335)}
.feedback[data-mode="wall"]{background:#fff0ed}
@keyframes can-overdrive-shake{from{margin-top:-2px}to{margin-top:2px}}
@keyframes wall-hit-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(7px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}
@keyframes wall-impact-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(0)}35%{opacity:1;transform:translate(-50%,-50%) scale(1.1) rotate(12deg)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.45) rotate(20deg)}}
@keyframes can-wall-bounce{0%{transform:translate(-50%,-50%) rotate(var(--can-rot))}35%{transform:translate(calc(-50% - 34px),calc(-50% + 8px)) rotate(-32deg)}100%{transform:translate(calc(-50% - 58px),calc(-50% + 38px)) rotate(-74deg)}}
@media(prefers-reduced-motion:reduce){.can.is-overdrive,.playfield.is-wall-hit,.playfield.is-wall-hit:after,.can.is-wall-hit{animation:none}}
