/* ============================================
   中创合科技 — 动画样式
   ============================================ */

/* === AOS Base === */
[data-aos] {
  pointer-events: none;
}

[data-aos].aos-animate {
  pointer-events: auto;
}

/* Fade animations */
[data-aos="fade-up"] {
  opacity: 0;
  transform: translateY(30px);
}

[data-aos="fade-down"] {
  opacity: 0;
  transform: translateY(-30px);
}

[data-aos="fade-left"] {
  opacity: 0;
  transform: translateX(-30px);
}

[data-aos="fade-right"] {
  opacity: 0;
  transform: translateX(30px);
}

[data-aos="zoom-in"] {
  opacity: 0;
  transform: scale(0.95);
}

[data-aos="zoom-out"] {
  opacity: 0;
  transform: scale(1.05);
}

/* Delay variants */
[data-aos-delay="100"] { transition-delay: 0.1s; }
[data-aos-delay="200"] { transition-delay: 0.2s; }
[data-aos-delay="300"] { transition-delay: 0.3s; }
[data-aos-delay="400"] { transition-delay: 0.4s; }
[data-aos-delay="500"] { transition-delay: 0.5s; }
[data-aos-delay="600"] { transition-delay: 0.6s; }
[data-aos-delay="700"] { transition-delay: 0.7s; }
[data-aos-delay="800"] { transition-delay: 0.8s; }

/* === Floating animation for icons === */
.float-anim {
  animation: float 4s ease-in-out infinite;
}

.float-anim--slow {
  animation: float 6s ease-in-out infinite;
}

.float-anim--fast {
  animation: float 2.5s ease-in-out infinite;
}

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

/* === Spin === */
.spin-slow {
  animation: spin-slow 20s linear infinite;
}

/* === Shimmer loading === */
.shimmer {
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(108, 92, 231, 0.05) 25%,
    rgba(108, 92, 231, 0.1) 50%,
    rgba(108, 92, 231, 0.05) 75%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: shimmer 2s infinite;
}

/* === Page transition === */
.page-enter {
  animation: pageIn 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

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

/* === Number counter animation === */
.counter-number {
  display: inline-block;
  font-variant-numeric: tabular-nums;
}

/* === Hero particles canvas === */
#particles-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
}

/* === Marquee scroll === */
.marquee-track {
  display: flex;
  gap: var(--space-3xl);
  animation: marquee 30s linear infinite;
}

.marquee-track:hover {
  animation-play-state: paused;
}

@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
