/* 
   Custom Animations & Global Overrides 
   (Tailwind handled most styles)
*/

@keyframes slideUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes modalIn {
  from { opacity: 0; transform: scale(0.9) translateY(20px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}

.animate-slide-up { animation: slideUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) both; }
.animate-fade-in { animation: fadeIn 1s ease both; }
.animate-modal-in { animation: modalIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both; }

.animation-delay-200 { animation-delay: 200ms; }
.animation-delay-300 { animation-delay: 300ms; }
.animation-delay-500 { animation-delay: 500ms; }

/* Custom Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #0a0a14; }
::-webkit-scrollbar-thumb { background: #16162a; border-radius: 10px; border: 2px solid #0a0a14; }
::-webkit-scrollbar-thumb:hover { background: #7c6aff; }

/* Global Font tweak */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

@keyframes spin {
  to { transform: translateY(-50%) rotate(360deg); }
}


/* Better pulse for skeletons */
@keyframes skeletonPulse {
  0%, 100% { opacity: 0.5; background: rgba(22, 22, 42, 0.5); }
  50% { opacity: 0.8; background: rgba(124, 106, 255, 0.05); }
}

.animate-pulse-slow {
  animation: skeletonPulse 1.5s ease-in-out infinite;
}

/* Helper to prevent text selection on icons */
.icon-card {
  user-select: none;
}
