@keyframes gridMove      { to { transform: translate(50px,50px); } }
@keyframes gradientShift { 0%,100%{background-position:0% 50%} 50%{background-position:100% 50%} }
@keyframes logoFloat     { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-5px) rotate(5deg)} }
@keyframes logoRotate    { from{filter:hue-rotate(0deg)} to{filter:hue-rotate(360deg)} }
@keyframes textGlow      { 0%,100%{filter:drop-shadow(0 0 20px rgba(0,247,255,.6))} 50%{filter:drop-shadow(0 0 40px rgba(181,55,255,.8))} }
@keyframes heartBeat     { 0%,100%{transform:scale(1)} 10%,30%{transform:scale(1.15)} 20%,40%{transform:scale(1)} }
@keyframes countPulse    { 0%,100%{transform:scale(1)} 50%{transform:scale(1.1)} }
@keyframes navSlideDown  { from{transform:translateY(-100%);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes heroFadeIn    { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeInUp      { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes floatIn       { from{opacity:0;transform:translateY(30px) scale(.9)} to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes glowPulse     { 0%,100%{opacity:.3;transform:scale(1)} 50%{opacity:.6;transform:scale(1.05)} }
@keyframes modeGlow      { 0%,100%{transform:translate(0,0) rotate(0deg)} 50%{transform:translate(10%,10%) rotate(180deg)} }
@keyframes iconPulse     { 0%,100%{transform:scale(1);filter:drop-shadow(0 0 10px rgba(0,247,255,.5))} 50%{transform:scale(1.1);filter:drop-shadow(0 0 20px rgba(181,55,255,.8))} }
@keyframes spin          { to{transform:rotate(360deg)} }
@keyframes iconSpin      { to{transform:rotate(360deg)} }
@keyframes bounce-beep   { 0%,100%{transform:scale(1) rotate(0deg)} 25%{transform:scale(1.05) rotate(2deg)} 75%{transform:scale(1.05) rotate(-2deg)} }
@keyframes wave-dance    { 0%,100%{height:12px;transform:scaleY(1)} 50%{height:60px;transform:scaleY(1.5)} }
@keyframes playerSlideIn { from{opacity:0;transform:translateY(50px)} to{opacity:1;transform:translateY(0)} }
@keyframes cardFadeIn    { from{opacity:0;transform:translateY(20px) scale(.95)} to{opacity:1;transform:translateY(0) scale(1)} }
@keyframes skeletonPulse { 0%,100%{opacity:1} 50%{opacity:.5} }
@keyframes skeletonShimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes slideIn       { from{transform:translateX(120%);opacity:0} to{transform:translateX(0);opacity:1} }
@keyframes slideOut      { from{transform:translateX(0);opacity:1} to{transform:translateX(120%);opacity:0} }
@keyframes successPop    { 0%{transform:scale(0)} 50%{transform:scale(1.2)} 100%{transform:scale(1)} }
@keyframes errorShake    { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-5px)} 75%{transform:translateX(5px)} }
@keyframes heartBurst    { 0%{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(0) scale(1);opacity:1} 100%{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-60px) scale(0);opacity:0} }
@keyframes likedHeartBeat{ 0%,100%{transform:scale(1)} 25%{transform:scale(1.4)} 50%{transform:scale(.9)} 75%{transform:scale(1.2)} }
@keyframes badgePulse    { 0%,100%{box-shadow:0 0 15px rgba(181,55,255,.3)} 50%{box-shadow:0 0 30px rgba(181,55,255,.6),0 0 50px rgba(0,247,255,.3)} }
@keyframes robotBlink    { 0%,100%{opacity:1} 50%{opacity:.5} }
@keyframes playingPulse  { 0%,100%{opacity:1} 50%{opacity:.4} }
@keyframes moveDNA       { 0%{transform:translateY(-100vh) rotate(0deg) scale(.8);opacity:0} 10%{opacity:.15} 90%{opacity:.15} 100%{transform:translateY(100vh) rotate(360deg) scale(1.2);opacity:0} }
@keyframes npThumbPulse  { 0%,100%{box-shadow:0 0 15px rgba(0,247,255,.4)} 50%{box-shadow:0 0 30px rgba(181,55,255,.6)} }
@keyframes musicNote     { from{transform:scale(1) rotate(-5deg)} to{transform:scale(1.15) rotate(5deg)} }
@keyframes badgePop      { from{transform:scale(0);opacity:0} to{transform:scale(1);opacity:1} }