/**
 * Animations — 所有关键帧动画集中管理
 */

/* ── Loading pulse ── */
@keyframes loading-pulse {
  0%, 100% {
    opacity: 0.3;
    transform: scale(0.95);
  }
  50% {
    opacity: 1;
    transform: scale(1.05);
  }
}

/* ── Hero character reveal ── */
@keyframes char-reveal-in {
  0% {
    opacity: 0;
    transform: translateY(40px) scale(0.8);
  }
  60% {
    opacity: 1;
    transform: translateY(-5px) scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* ── Fade in up ── */
@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ── Scroll arrow bounce ── */
@keyframes bounce-down {
  0%, 20%, 50%, 80%, 100% {
    transform: rotate(45deg) translateY(0);
  }
  40% {
    transform: rotate(45deg) translateY(8px);
  }
  60% {
    transform: rotate(45deg) translateY(4px);
  }
}

/* ── Terminal line slide in ── */
@keyframes terminal-line-in {
  from {
    opacity: 0;
    transform: translateX(-8px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* ── Cursor blink ── */
@keyframes cursor-blink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0; }
}

/* ── Float (for decorative elements) ── */
@keyframes float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

/* ── Gentle glow pulse ── */
@keyframes glow-pulse {
  0%, 100% {
    box-shadow: 0 0 20px var(--color-accent-glow);
  }
  50% {
    box-shadow: 0 0 40px var(--color-accent-glow), 0 0 60px rgba(201, 117, 107, 0.15);
  }
}

/* ── Heartbeat ── */
@keyframes heartbeat {
  0%, 100% {
    transform: scale(1);
  }
  15% {
    transform: scale(1.25);
  }
  30% {
    transform: scale(1);
  }
  45% {
    transform: scale(1.15);
  }
  60% {
    transform: scale(1);
  }
}

/* ── Hero title shimmer ── */
@keyframes hero-title-shimmer {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* ── Hero glow pulse behind title ── */
@keyframes hero-glow-pulse {
  0%, 100% {
    opacity: 0.6;
    transform: translate(-50%, -50%) scale(1);
  }
  50% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1.1);
  }
}

/* ── Seal stamp breathing glow ── */
@keyframes seal-breathe {
  0%, 100% {
    box-shadow: 0 0 20px rgba(201, 117, 107, 0.15);
    opacity: 0.8;
  }
  50% {
    box-shadow: 0 0 35px rgba(201, 117, 107, 0.3), 0 0 60px rgba(201, 117, 107, 0.1);
    opacity: 1;
  }
}
