.animate-shimmer{animation:shimmer 2s infinite linear;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);background-size:200% 100%}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .5s ease-out forwards}@keyframes softPulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.page-transition-enter{opacity:0;transform:translateY(20px)}.page-transition-enter-active{opacity:1;transform:translateY(0);transition:opacity .3s,transform .3s}.page-transition-exit{opacity:1;transform:translateY(0)}.page-transition-exit-active{opacity:0;transform:translateY(-20px);transition:opacity .3s,transform .3s}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background:#555}.dark .scrollbar-thin::-webkit-scrollbar-track{background:#2d3748}.dark .scrollbar-thin::-webkit-scrollbar-thumb{background:#4a5568}.dark .scrollbar-thin::-webkit-scrollbar-thumb:hover{background:#718096}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.animate-gradient-text{background-size:200% auto;animation:gradientShift 3s ease infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow{animation:spin 3s linear infinite}@keyframes statusPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.status-pulse{animation:statusPulse 2s ease-in-out infinite}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.animate-shimmer{position:relative;overflow:hidden}.animate-shimmer:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shimmer 2s infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .5s ease-out}@keyframes softPulse{0%,to{opacity:1}50%{opacity:.8}}.animate-soft-pulse{animation:softPulse 2s ease-in-out infinite}@keyframes softBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.animate-soft-bounce{animation:softBounce 2s ease-in-out infinite}@keyframes slideIn{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}.animate-slide-in{animation:slideIn .3s ease-out forwards}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.animate-scale-in{animation:scaleIn .3s ease-out forwards}.hover-lift{transition:transform .2s ease,box-shadow .2s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 12px 24px -8px #00000026}
