/* Small, finite feedback beats. Gameplay geometry stays untouched. */
.primary,.icon-btn,#share-x{-webkit-tap-highlight-color:transparent;transition:transform 130ms ease,background-color 130ms ease,border-color 130ms ease,box-shadow 130ms ease,filter 130ms ease;touch-action:manipulation}
@media(hover:hover) and (pointer:fine){
 .primary:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:inset -3px -3px #647e8d,inset 3px 3px #ffffff,3px 5px #02060c,0 0 20px #b9e6f22b}
 .icon-btn:hover,#share-x:hover{transform:translateY(-1px);border-color:#d5f0ef;background:#173040;box-shadow:0 3px 0 #02060c}
 .primary:hover .arrow{display:inline-block;animation:juice-arrow 320ms ease-out both}
}
.primary:active,.primary:hover:active{transform:translate(1px,2px);filter:brightness(.95);box-shadow:inset 3px 3px #647e8d,inset -2px -2px #f3fcff,1px 1px #02060c;transition-duration:55ms}
.icon-btn:active,#share-x:active{transform:translateY(2px);box-shadow:inset 2px 2px #02060c;transition-duration:55ms}
.primary:focus-visible,.icon-btn:focus-visible,#share-x:focus-visible{outline:2px solid #c4e7f1;outline-offset:4px}
.score-bump{transform-origin:25% 60%;animation:juice-score 360ms cubic-bezier(.2,.7,.2,1) both}
#flight-toast{position:absolute;top:82px;left:50%;z-index:6;max-width:calc(100% - 34px);padding:7px 11px;border:1px solid #c4e7f199;background:#07131eeb;box-shadow:2px 2px #02060c;color:#c4e7f1;font-family:'Courier New',monospace;font-size:9px;font-weight:700;line-height:1.3;letter-spacing:1px;text-align:center;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%,-7px);transition:opacity 160ms ease,transform 220ms cubic-bezier(.2,.8,.2,1)}
#flight-toast.show{opacity:1;transform:translate(-50%,0)}
#start .tiny{animation:juice-pilot 2400ms ease-in-out 3;animation-delay:1200ms}
#end.revealed>.over-kicker,#end.revealed>h2,#end.revealed>.result,#end.revealed>#reward-panel,#end.revealed>.primary,#end.revealed>#share-x,#end.revealed>.tiny{animation:juice-result 330ms cubic-bezier(.2,.8,.2,1) backwards}
#end.revealed>.over-kicker{animation-delay:40ms}
#end.revealed>h2{animation-delay:90ms}
#end.revealed>.result{animation-delay:150ms}
#end.revealed>#reward-panel{animation-delay:210ms}
#end.revealed>.primary{animation-delay:270ms}
#end.revealed>#share-x{animation-delay:310ms}
#end.revealed>.tiny{animation-delay:340ms}
#end.revealed .reward-summary>.reward-medal{transform-origin:50% 10%;animation:juice-medal 570ms cubic-bezier(.2,.7,.2,1) both;animation-delay:410ms}
.game.launch-pulse{animation:juice-launch 520ms ease-out both}
@keyframes juice-score{0%{transform:scale(1);color:#fff}28%{transform:scale(1.23);color:#c4e7f1;text-shadow:2px 2px #000,0 0 15px #c4e7f166}65%{transform:scale(.97);color:#fff}100%{transform:scale(1);color:#fff}}
@keyframes juice-result{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes juice-medal{0%{transform:translateY(-7px) rotate(-10deg) scale(.8)}38%{transform:translateY(2px) rotate(7deg) scale(1.16)}65%{transform:translateY(-2px) rotate(-3deg) scale(.98)}100%{transform:translateY(0) rotate(0) scale(1)}}
@keyframes juice-launch{0%{box-shadow:inset 0 0 0 2px #c4e7f1aa,0 0 35px #b9e6f24d}100%{box-shadow:inset 0 0 0 2px transparent,0 0 0 #b9e6f200}}
@keyframes juice-pilot{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes juice-arrow{from{transform:translate(-3px,3px)}to{transform:translate(0,0)}}
@media(prefers-reduced-motion:reduce){
 .primary,.icon-btn,#share-x,#flight-toast{transition:none!important}
 .score-bump,#start .tiny,#end.revealed>*,#end.revealed .reward-summary>.reward-medal,.game.launch-pulse,.primary:hover .arrow{animation:none!important}
 .primary:hover,.primary:active,.primary:hover:active,.icon-btn:hover,.icon-btn:active,#share-x:hover,#share-x:active{transform:none!important}
 #flight-toast{transform:translateX(-50%)}
}
