/* =============================================
   ROTARY CLUB CUTTACK MILLENNIUM — ANIMATIONS
   ============================================= */

/* Floating animation for cards */
@keyframes floatY {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
}

/* Shimmer animation for loading states */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Glow pulse */
@keyframes glowPulse {
  0%, 100% { box-shadow: 0 0 20px rgba(247, 168, 0, 0.3); }
  50% { box-shadow: 0 0 40px rgba(247, 168, 0, 0.6), 0 0 80px rgba(247, 168, 0, 0.2); }
}

/* Slide in from left */
@keyframes slideInLeft {
  from { opacity: 0; transform: translateX(-50px); }
  to { opacity: 1; transform: translateX(0); }
}

/* Slide in from right */
@keyframes slideInRight {
  from { opacity: 0; transform: translateX(50px); }
  to { opacity: 1; transform: translateX(0); }
}

/* Scale in */
@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.8); }
  to { opacity: 1; transform: scale(1); }
}

/* Rotate entrance */
@keyframes rotateIn {
  from { opacity: 0; transform: rotate(-10deg) scale(0.9); }
  to { opacity: 1; transform: rotate(0deg) scale(1); }
}

/* Text gradient animation */
@keyframes gradientShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Number count up (via JS) */
.count-up-done {
  animation: scaleIn 0.3s ease;
}

/* Hero particle dot */
.particle-dot {
  position: absolute;
  border-radius: 50%;
  background: rgba(247, 168, 0, 0.6);
  pointer-events: none;
  animation: particleFloat linear infinite;
}

@keyframes particleFloat {
  0% { opacity: 0; transform: translateY(0) scale(0); }
  10% { opacity: 1; }
  90% { opacity: 0.5; }
  100% { opacity: 0; transform: translateY(-100vh) scale(1); }
}

/* Ripple effect on buttons */
.btn {
  position: relative;
  overflow: hidden;
}
.btn::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, rgba(255,255,255,0.2) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.btn:active::after { opacity: 1; }

/* Underline animation for nav links */
.nav-link {
  position: relative;
}

/* Card entrance animations */
.leader-card, .event-card, .project-card, .achievement-card, .news-card {
  animation-fill-mode: both;
}

/* Floating rotary emblem */
.rotary-emblem {
  animation: floatY 4s ease-in-out infinite;
}

/* Gold text gradient animation */
.animated-gold-text {
  background: linear-gradient(90deg, #f7a800, #ffc933, #f7a800);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: gradientShift 3s ease-in-out infinite;
}

/* Loading skeleton */
.skeleton {
  background: linear-gradient(90deg, #1a2035 0%, #2a3045 50%, #1a2035 100%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: var(--radius-sm);
}
