/* animations.css */

/* ============================================================
   KEYFRAMES
   ============================================================ */
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 12px var(--neon)}50%{opacity:.4;box-shadow:0 0 4px var(--neon)}}
@keyframes breathe{0%,100%{transform:scale(.8);opacity:.10}50%{transform:scale(1.15);opacity:.18}}
@keyframes cardPulse{
  0%,100%{box-shadow:0 20px 50px rgba(0,0,0,.5),0 0 0 1px rgba(var(--neon-rgb),.06),inset 0 0 40px rgba(var(--neon-rgb),.03)}
  50%{box-shadow:0 22px 60px rgba(0,0,0,.55),0 0 0 1px rgba(var(--neon-rgb),.14),inset 0 0 80px rgba(var(--neon-rgb),.08)}
}
@keyframes metalShine{0%{left:-100%;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:200%;opacity:0}}
@keyframes popIn{from{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes tooltipIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes helpFade{from{opacity:0}to{opacity:1}}
@keyframes helpSlide{from{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes bottomSheet{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

/* ============================================================
   A11Y — reduced motion
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
}