/* ============================================================
   animations.css — Keyframes & reusable animation classes
   ============================================================ */

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

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

@keyframes dragonBreath {
  0%, 100% {
    transform: scale(1);
    opacity: 0.08;
  }
  50% {
    transform: scale(1.025);
    opacity: 0.13;
  }
}

@keyframes scrollBounce {
  0%, 100% { transform: translateY(0); opacity: 1; }
  50%       { transform: translateY(8px); opacity: 0.4; }
}

@keyframes shimmer {
  from { transform: translateX(-100%); }
  to   { transform: translateX(100%); }
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.5; }
}

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

@keyframes goldScanRight {
  0%   { transform: translateX(-100%) skewX(-20deg); opacity: 0; }
  20%  { opacity: 1; }
  80%  { opacity: 1; }
  100% { transform: translateX(400%) skewX(-20deg); opacity: 0; }
}

@keyframes floatUp {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-6px); }
}

@keyframes borderGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201,169,110,0); }
  50%       { box-shadow: 0 0 20px 4px rgba(201,169,110,0.15); }
}

/* Gold scan on section titles — add class .title--scan to trigger on hover */
.title--scan {
  position: relative;
  overflow: hidden;
  display: inline-block;
}

.title--scan::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(201,169,110,0.18) 50%,
    transparent 100%
  );
  width: 40%;
  animation: goldScanRight 4s ease-in-out 1s infinite;
  pointer-events: none;
}

/* Float animation for icons */
.float-anim {
  animation: floatUp 3s ease-in-out infinite;
}

/* Glow pulse on cards */
.glow-pulse {
  animation: borderGlow 3s ease-in-out infinite;
}
