/* ===== Animations ===== */

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

@keyframes float-1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(40px, -50px) scale(1.05); }
  66% { transform: translate(-30px, 30px) scale(0.95); }
}

@keyframes float-2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(-40px, -30px) scale(0.95); }
  66% { transform: translate(30px, 40px) scale(1.05); }
}

@keyframes float-3 {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(25px, -25px); }
}

@keyframes phone-float {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-12px) rotate(-1deg); }
}

@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes scan-line {
  0%, 100% { top: 0; }
  50% { top: calc(100% - 3px); }
}

.animate-fade-in {
  animation: fade-in 1.4s cubic-bezier(0.25, 0.1, 0.25, 1) both;
}

.animate-fade-in-up {
  animation: fade-in-up 1.4s cubic-bezier(0.25, 0.1, 0.25, 1) both;
}

.delay-1 { animation-delay: 0.25s; }
.delay-2 { animation-delay: 0.5s; }
.delay-3 { animation-delay: 0.75s; }
.delay-4 { animation-delay: 1s; }

/* Scroll-triggered animations */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.2s cubic-bezier(0.25, 0.1, 0.25, 1),
              transform 1.2s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.animate-on-scroll.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Grid items stagger */
.problem-card.animate-on-scroll,
.feature-card.animate-on-scroll,
.stat-item.animate-on-scroll,
.pricing-card.animate-on-scroll {
  transition: opacity 1.4s cubic-bezier(0.25, 0.1, 0.25, 1),
              transform 1.4s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.stat-item.visible .stat-number {
  animation: fade-in-up 1s ease both;
}

/* ===== Responsive ===== */

@media (max-width: 1024px) {
  .hero-container {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 48px;
  }

  .hero h1 {
    font-size: 2.5rem;
  }

  .hero-subtitle {
    margin-left: auto;
    margin-right: auto;
  }

  .hero-actions {
    justify-content: center;
  }

  .hero-trust {
    justify-content: center;
  }

  .nav-links {
    display: none;
  }

  .problem-grid,
  .features-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .comparison-table {
    min-width: 580px;
  }
}

@media (max-width: 768px) {
  .hero {
    min-height: auto;
    padding: 100px 0 60px;
  }

  .hero h1 {
    font-size: 2rem;
  }

  .hero-subtitle br {
    display: none;
  }

  .hero-actions {
    flex-direction: column;
    align-items: center;
  }

  .hero-trust {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }

  .phone-mockup {
    width: 240px;
  }

  .section-title {
    font-size: 1.7rem;
  }

  .problem-grid,
  .features-grid,
  .stats-grid {
    grid-template-columns: 1fr;
  }

  .pricing-grid {
    grid-template-columns: 1fr;
    max-width: 380px;
  }

  .stat-number {
    font-size: 3rem;
  }

  .stats {
    padding: 60px 0;
  }

  .problem,
  .features,
  .screenshots,
  .how-it-works,
  .comparison,
  .pricing,
  .cta {
    padding: 72px 0;
  }

  .screenshot-item {
    width: 180px;
  }

  .steps-container::before {
    left: 28px;
  }

  .step-number {
    width: 56px;
    height: 56px;
    font-size: 1.1rem;
  }

  .step {
    gap: 20px;
  }

  .cta h2 {
    font-size: 1.8rem;
  }
}

@media (max-width: 480px) {
  .container {
    padding: 0 16px;
  }

  .hero h1 {
    font-size: 1.7rem;
  }

  .phone-mockup {
    width: 220px;
  }

  .problem-card,
  .feature-card {
    padding: 28px 20px;
  }

  .pricing-card {
    padding: 32px 24px;
  }
}
