/* Animazioni GALAXYBET (le comanda animazioni.js, scritto in React) */
.gb-livello{position:fixed;inset:0;pointer-events:none;z-index:300;overflow:hidden}

/* variazione del saldo: sale o scende dal numero */
.gb-delta{position:fixed;transform:translateX(-50%);font-weight:900;font-size:17px;white-space:nowrap;text-shadow:0 2px 8px #000a;animation:gb-sale 1.6s cubic-bezier(.2,.7,.3,1) forwards}
.gb-delta.su{color:var(--accent,#19d98b)}
.gb-delta.giu{color:var(--danger,#ff5d6c)}
@keyframes gb-sale{0%{opacity:0;transform:translate(-50%,6px) scale(.8)}15%{opacity:1;transform:translate(-50%,10px) scale(1.12)}100%{opacity:0;transform:translate(-50%,46px) scale(1)}}
.gb-scatto-su{animation:gb-su .7s ease}
.gb-scatto-giu{animation:gb-giu .5s ease}
@keyframes gb-su{30%{transform:scale(1.25);color:var(--accent,#19d98b);text-shadow:0 0 14px var(--accent,#19d98b)}}
@keyframes gb-giu{30%{transform:scale(.92);color:var(--danger,#ff5d6c)}}

/* particelle di vincita */
.gb-cori{position:fixed;width:0;height:0}
.gb-cori i{position:absolute;left:0;top:0;width:7px;height:11px;border-radius:2px;opacity:0;animation:gb-cori 1.4s cubic-bezier(.15,.8,.3,1) forwards}
@keyframes gb-cori{0%{opacity:1;transform:translate(0,0) rotate(0)}70%{opacity:1}100%{opacity:0;transform:translate(var(--dx),calc(var(--dy) + 90px)) rotate(var(--r))}}

/* etichetta del coupon */
.gb-quota{position:fixed;right:18px;bottom:84px;background:var(--panel2,#18214a);border:1px solid var(--accent,#19d98b);color:var(--text,#eef2ff);padding:9px 14px;border-radius:10px;font-weight:700;font-size:13px;box-shadow:0 6px 24px #0008;animation:gb-entra 1.7s cubic-bezier(.2,.8,.3,1) forwards}
.gb-quota.tolta{border-color:var(--danger,#ff5d6c)}
@keyframes gb-entra{0%{opacity:0;transform:translateX(40px)}12%{opacity:1;transform:none}85%{opacity:1;transform:none}100%{opacity:0;transform:translateY(8px)}}
.gb-bump{display:inline-block;animation:gb-bump .35s ease}
@keyframes gb-bump{40%{transform:scale(1.18);color:var(--accent,#19d98b)}}

/* blocchi che entrano a cascata */
.gb-in{animation:gb-cascata .45s cubic-bezier(.2,.8,.3,1) backwards;animation-delay:calc(var(--i,0) * 45ms)}
@keyframes gb-cascata{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
/* una card dei giochi sale anche al tocco */
.game:active{transform:scale(.97)}

@media (prefers-reduced-motion:reduce){.gb-livello{display:none}.gb-in,.gb-bump,.gb-scatto-su,.gb-scatto-giu{animation:none}}
