@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.animate-shimmer{animation:shimmer 1.5s ease-in-out infinite}.animate-slideDown{animation:slideDown .3s ease-out}.animate-scaleIn{animation:scaleIn .3s ease-out}.animate-fadeInUp{animation:fadeInUp .5s ease-out}.animate-bounceIn{animation:bounceIn .6s ease-out}.animate-float{animation:float 3s ease-in-out infinite}.gradient-text{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-border{position:relative;background:linear-gradient(135deg,#667eea,#764ba2);padding:2px;border-radius:12px}.gradient-border:before{content:"";position:absolute;top:2px;left:2px;right:2px;bottom:2px;background:#fff;border-radius:10px;z-index:-1}@media (prefers-color-scheme:dark){.gradient-border:before{background:#1f2937}}