﻿/* animations.css — all @keyframes */
/* Chip drop (2026-08-30): falls in from above, squashes on landing, settles — a real drop,
   paired with the haptic in wmChipDrop. */
@keyframes td{
  0%{transform:translate(-50%,-160%) scale(1.45);opacity:0}
  55%{transform:translate(-50%,-50%) scale(0.92);opacity:1}
  75%{transform:translate(-50%,-58%) scale(1.06)}
  100%{transform:translate(-50%,-50%) scale(1)}
}
@media (prefers-reduced-motion:reduce){ .token{animation:none} }
@keyframes scanSpin{to{transform:rotate(360deg)}}
@keyframes scanProgress{0%{width:5%;background-position:0% 0}50%{width:80%;background-position:100% 0}100%{width:95%;background-position:0% 0}}
@keyframes scanFlash{0%{box-shadow:0 0 0 0 rgba(59,109,17,0.5)}50%{box-shadow:0 0 20px 4px rgba(59,109,17,0.3)}100%{box-shadow:none}}
@keyframes dspin{to{transform:rotate(360deg)}}
@keyframes waitSpin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
@keyframes waitPulse{0%,100%{opacity:0.5}50%{opacity:1}}
@keyframes waitDots{0%{content:''}25%{content:'.'}50%{content:'..'}75%{content:'...'}}
@keyframes billFall{
  0%{transform:translateY(-180px) rotate(var(--rot-start,5deg));opacity:0}
  8%{opacity:1}
  85%{opacity:1}
  100%{transform:translateY(calc(100vh + 100px)) rotate(var(--rot-end,15deg));opacity:1}
}
@keyframes confettiBurst{0%{transform:translate(0,0) scale(0);opacity:0}8%{opacity:1;transform:scale(1)}60%{opacity:1}100%{opacity:0}}
@keyframes confettiDrift0{0%{transform:translate(0,0) rotate(0deg)}100%{transform:translate(-120px,-300px) rotate(720deg)}}
@keyframes confettiDrift1{0%{transform:translate(0,0) rotate(0deg)}100%{transform:translate(130px,-280px) rotate(-540deg)}}
@keyframes confettiDrift2{0%{transform:translate(0,0) rotate(0deg)}100%{transform:translate(-80px,-350px) rotate(480deg)}}
@keyframes confettiDrift3{0%{transform:translate(0,0) rotate(0deg)}100%{transform:translate(90px,-320px) rotate(-660deg)}}
@keyframes confettiDrift4{0%{transform:translate(0,0) rotate(0deg)}100%{transform:translate(-160px,-200px) rotate(540deg)}}
@keyframes confettiDrift5{0%{transform:translate(0,0) rotate(0deg)}100%{transform:translate(150px,-250px) rotate(-480deg)}}
@keyframes confettiDrift6{0%{transform:translate(0,0) rotate(0deg)}100%{transform:translate(-40px,-380px) rotate(360deg)}}
@keyframes confettiDrift7{0%{transform:translate(0,0) rotate(0deg)}100%{transform:translate(50px,-360px) rotate(-720deg)}}
@keyframes confettiFall{0%{transform:translateY(0)}100%{transform:translateY(110vh)}}
@keyframes tpulse{0%,100%{opacity:0.7}50%{opacity:1}}
@keyframes tblink{0%,100%{opacity:1}50%{opacity:0.15}}
@keyframes tshake{0%,100%{transform:translateX(0)}20%,60%{transform:translateX(-4px)}40%,80%{transform:translateX(4px)}}
