/* ============================================
   瑞泉水处理 - 动画样式
   ============================================ */

/* 滚动渐入 */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .8s ease, transform .8s ease;
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* 错位渐入 */
.reveal[data-delay="1"] { transition-delay: .08s; }
.reveal[data-delay="2"] { transition-delay: .16s; }
.reveal[data-delay="3"] { transition-delay: .24s; }
.reveal[data-delay="4"] { transition-delay: .32s; }
.reveal[data-delay="5"] { transition-delay: .4s; }
.reveal[data-delay="6"] { transition-delay: .48s; }
.reveal[data-delay="7"] { transition-delay: .56s; }
.reveal[data-delay="8"] { transition-delay: .64s; }

/* 数字滚动 */
@keyframes countUp {
  from { transform: translateY(8px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
.hero-stat-num { animation: none; }

/* Header 下沉阴影 */
@keyframes headerShadow {
  from { box-shadow: none; }
  to { box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); }
}
.site-header.is-scrolled .top-nav { animation: headerShadow .3s ease forwards; }

/* Banner 装饰元素浮动 */
@keyframes floatY {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}
@keyframes floatY2 {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-8px) rotate(2deg); }
}

.float-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(40px);
  opacity: 0.5;
  pointer-events: none;
  animation: floatY 6s ease-in-out infinite;
}
.float-blob.b1 { width: 240px; height: 240px; background: rgba(6, 182, 212, 0.4); top: 20%; left: 8%; }
.float-blob.b2 { width: 180px; height: 180px; background: rgba(255, 255, 255, 0.18); top: 50%; right: 10%; animation-delay: -3s; }
.float-blob.b3 { width: 140px; height: 140px; background: rgba(6, 182, 212, 0.3); bottom: 10%; left: 35%; animation-delay: -1.5s; }

/* 标题渐入 */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero-eyebrow, .hero h1, .hero-sub, .hero-actions, .hero-stats {
  animation: fadeUp .8s ease both;
}
.hero-eyebrow { animation-delay: 0s; }
.hero h1 { animation-delay: .1s; }
.hero-sub { animation-delay: .25s; }
.hero-actions { animation-delay: .4s; }
.hero-stats { animation-delay: .55s; }

/* Hover 箭头移动 */
.sister-card .sister-arrow {
  transition: transform .25s ease, color .2s ease;
}

/* 菜单打开动画 */
@keyframes slideDown {
  from { opacity: 0; transform: translateY(-10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* 按钮 hover 微动 */
.btn { transition: transform .2s, box-shadow .2s, background .2s, color .2s; }
.btn:active { transform: translateY(0) scale(.98); }

/* 减少动画偏好 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal { opacity: 1; transform: none; }
}
