/* ==========================================
   ANIMATIONS
   ========================================== */

.animate-on-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94),
              transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

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

.hero__title {
  animation: fadeInUp 1s ease-out forwards;
}

.hero__subtitle {
  animation: fadeInUp 1s ease-out 0.3s forwards;
  opacity: 0;
}

.hero__btn {
  animation: fadeInUp 1s ease-out 0.6s forwards;
  opacity: 0;
}

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

.book-card,
.news-card {
  transition-delay: 0s;
}

.book-card:nth-child(2),
.news-card:nth-child(2) {
  transition-delay: 0.15s;
}

.book-card:nth-child(3),
.news-card:nth-child(3) {
  transition-delay: 0.3s;
}

.books__separator-line,
.news__separator-line {
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.6s ease-out 0.3s;
}

.animate-in .books__separator-line,
.animate-in .news__separator-line {
  transform: scaleX(1);
}

.books__separator-icon,
.news__separator-icon {
  opacity: 0;
  transition: opacity 0.4s ease-out 0.6s;
}

.animate-in .books__separator-icon,
.animate-in .news__separator-icon {
  opacity: 0.5;
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
