/* ==============================================
   Animations — 关键帧动画 + 滚动触发
   ============================================== */

/* ─── 弹性入场 ─── */
@keyframes springIn {
  0% { opacity: 0; transform: scale(0.8) translateY(20px); }
  60% { transform: scale(1.03) translateY(-4px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes slideSpringUp {
  0% { opacity: 0; transform: translateY(60px); }
  60% { transform: translateY(-6px); }
  100% { opacity: 1; transform: translateY(0); }
}

@keyframes slideSpringRight {
  0% { opacity: 0; transform: translateX(-40px); }
  60% { transform: translateX(4px); }
  100% { opacity: 1; transform: translateX(0); }
}

@keyframes scaleSpring {
  0% { opacity: 0; transform: scale(0.7); }
  60% { transform: scale(1.05); }
  100% { opacity: 1; transform: scale(1); }
}

/* ─── 光效动画 ─── */
@keyframes auroraDrift {
  0% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(5%, -3%) scale(1.05); }
  50% { transform: translate(-3%, 5%) scale(0.95); }
  75% { transform: translate(8%, 2%) scale(1.02); }
  100% { transform: translate(0, 0) scale(1); }
}

@keyframes shimmer {
  0% { background-position: -200% center; }
  100% { background-position: 200% center; }
}

@keyframes glowPulse {
  0%, 100% { filter: brightness(1) blur(4px); opacity: 0.6; }
  50% { filter: brightness(1.3) blur(6px); opacity: 0.9; }
}

/* ─── 液态流动 ─── */
@keyframes liquidBreathe {
  0% { border-radius: 38% 62% 65% 35% / 45% 50% 50% 55%; }
  33% { border-radius: 52% 48% 42% 58% / 55% 42% 58% 45%; }
  66% { border-radius: 45% 55% 55% 45% / 50% 55% 45% 50%; }
  100% { border-radius: 38% 62% 65% 35% / 45% 50% 50% 55%; }
}

/* ─── 旋转光晕 ─── */
@keyframes rotateGlow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* ─── 数字跳动 ─── */
@keyframes countUp {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ─── 光弧扫过 ─── */
@keyframes lightSweep {
  0% { transform: translateX(-100%) skewX(-15deg); }
  100% { transform: translateX(200%) skewX(-15deg); }
}

/* ─── 滚动触发：错峰延迟助手 ─── */
.stagger-1 { transition-delay: 0.05s; }
.stagger-2 { transition-delay: 0.1s; }
.stagger-3 { transition-delay: 0.15s; }
.stagger-4 { transition-delay: 0.2s; }
.stagger-5 { transition-delay: 0.25s; }
.stagger-6 { transition-delay: 0.3s; }
.stagger-7 { transition-delay: 0.35s; }
.stagger-8 { transition-delay: 0.4s; }
.stagger-9 { transition-delay: 0.45s; }
.stagger-10 { transition-delay: 0.5s; }

/* ─── 视差背景 ─── */
.parallax-bg {
  position: absolute; inset: 0;
  z-index: 0;
  will-change: transform;
}

/* ─── 浮动指示器 ─── */
.float-indicator {
  animation: floatBounce 3s ease-in-out infinite;
}

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