@keyframes fadeInUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInUp{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
@keyframes pulse-ring{0%,100%{transform:scale(.9);opacity:.8}70%{transform:scale(1.2);opacity:0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes barSlide{0%{transform:translateX(-100%)}100%{transform:translateX(400%)}}
@keyframes staggerIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.animate-fade-in-up{animation:fadeInUp 360ms cubic-bezier(.4,0,.2,1) both}
.animate-fade-in{animation:fadeIn 300ms ease both}
.animate-scale-in{animation:scaleIn 280ms cubic-bezier(.34,1.56,.64,1) both}
[data-stagger]{opacity:0;animation:staggerIn 460ms cubic-bezier(.34,1.56,.64,1) forwards}
