@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-30px,0)}70%{transform:translate3d(0,-15px,0)}90%{transform:translate3d(0,-4px,0)}}@keyframes slideInFromLeft{0%{transform:translateX(-100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInFromRight{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slideInFromTop{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInFromBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes rotateIn{0%{opacity:0;transform:rotate(-200deg)}to{opacity:1;transform:rotate(0)}}.animate-shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);background-size:200% 100%;animation:shimmer 2s infinite}.animate-heartbeat{animation:heartbeat 1s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-bounce{animation:bounce 1s ease-in-out}.animate-slide-in-left{animation:slideInFromLeft .8s ease-out}.animate-slide-in-right{animation:slideInFromRight .8s ease-out}.animate-slide-in-top{animation:slideInFromTop .8s ease-out}.animate-slide-in-bottom{animation:slideInFromBottom .8s ease-out}.animate-fade-in-scale{animation:fadeInScale .6s ease-out}.animate-rotate-in{animation:rotateIn .8s ease-out}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-5px);box-shadow:0 10px 25px rgba(0,0,0,.15)}.hover-glow{transition:box-shadow .3s ease}.hover-glow:hover{box-shadow:0 0 20px rgba(0,112,243,.3)}.hover-scale{transition:transform .3s ease}.hover-scale:hover{transform:scale(1.05)}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.pulse-ring{position:relative}.pulse-ring:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1);opacity:1}to{transform:scale(1.5);opacity:0}}.gradient-text{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass{background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.smooth-transition{transition:all .3s cubic-bezier(.4,0,.2,1)}.focus-ring:focus{outline:none;box-shadow:0 0 0 3px rgba(0,112,243,.3)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}