@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse-slow{0%,to{opacity:.7}50%{opacity:1}}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.animate-slideUp{animation:slideUp .6s ease-out forwards}.animate-fadeIn{animation:fadeIn .4s ease-out}.animate-float{animation:float 3s ease-in-out infinite}.animate-pulse-slow{animation:pulse-slow 2s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);background-size:200px 100%;animation:shimmer 2s infinite}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 10px 25px #0000001a}.text-gradient{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.card-hover{transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.card-hover:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s}:is(.dark,.ocean) .card-hover:before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent)}.card-hover:hover:before{left:100%}.card-hover:hover{transform:translateY(-8px);box-shadow:0 25px 50px #00000026}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:loading 1.5s infinite}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
