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

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

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

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.9); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes slideInLeft {
  from { opacity: 0; transform: translateX(-40px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes slideInRight {
  from { opacity: 0; transform: translateX(40px); }
  to { opacity: 1; transform: translateX(0); }
}

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

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 20px var(--color-primary-glow); }
  50% { box-shadow: 0 0 40px var(--color-primary-glow), 0 0 60px rgba(0,180,180,0.1); }
}

@keyframes gradientShift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

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

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

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

.hero-stat .count { display: inline-block; }

.dot.charging { animation: pulse 1.5s infinite; }

.cms-chart .chart-bar {
  animation: chartGrow 0.8s ease forwards;
  transform-origin: bottom;
}

@keyframes chartGrow {
  from { transform: scaleY(0); }
  to { transform: scaleY(1); }
}

.stagger-children > * {
  opacity: 0;
  transform: translateY(20px);
}

.stagger-children.aos-animate > * {
  animation: fadeInUp 0.5s ease forwards;
}

.stagger-children.aos-animate > *:nth-child(1) { animation-delay: 0.05s; }
.stagger-children.aos-animate > *:nth-child(2) { animation-delay: 0.1s; }
.stagger-children.aos-animate > *:nth-child(3) { animation-delay: 0.15s; }
.stagger-children.aos-animate > *:nth-child(4) { animation-delay: 0.2s; }
.stagger-children.aos-animate > *:nth-child(5) { animation-delay: 0.25s; }
.stagger-children.aos-animate > *:nth-child(6) { animation-delay: 0.3s; }

.theme-toggle i { transition: transform var(--transition-bounce); }
.theme-toggle:hover i { transform: rotate(30deg) scale(1.1); }

.counter { display: inline-block; }

.hero-badge { animation: fadeInUp 0.6s ease 0.3s both; }
.hero-title { animation: fadeInUp 0.6s ease 0.5s both; }
.hero-description { animation: fadeInUp 0.6s ease 0.7s both; }
.hero-cta { animation: fadeInUp 0.6s ease 0.9s both; }
.hero-stats { animation: fadeInUp 0.6s ease 1.1s both; }

.section { transition: background var(--transition-base); }

@keyframes successCheck {
  0% { transform: scale(0); opacity: 0; }
  50% { transform: scale(1.2); }
  100% { transform: scale(1); opacity: 1; }
}

.form-success i { animation: successCheck 0.4s ease forwards; }

.swiper-slide-active .testimonial-card { animation: scaleIn 0.5s ease; }

.download-card .download-icon i { transition: transform var(--transition-bounce); }
.download-card:hover .download-icon i { transform: scale(1.15) rotate(-5deg); }

.solution-card .solution-icon i { transition: transform var(--transition-bounce); }
.solution-card:hover .solution-icon i { transform: scale(1.15); }

.social-links a i { transition: transform var(--transition-base); }
.social-links a:hover i { transform: scale(1.2); }

.nav-menu.show { animation: slideInRight 0.4s ease forwards; }

.phone-mockup { animation: float 4s ease-in-out infinite; }

.hidden {
  opacity: 0;
  filter: blur(5px);
  transform: translateX(-150px);
  transition: all 0.3s;
  transition-delay: 0.15s;
}

@media (prefers-reduced-motion) {
  .hidden { transition: none; }
}

.show {
  opacity: 1;
  filter: blur(0);
  transform: translateX(0);
}
