@keyframes fadeIn {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes slideInLeft {
  0% {
    opacity: 0;
    transform: translateX(-60px) skewX(-8deg);
    filter: blur(4px);
  }

  60% {
    opacity: 1;
    transform: translateX(8px) skewX(2deg);
    filter: blur(0);
  }

  100% {
    opacity: 1;
    transform: translateX(0) skewX(0);
    filter: blur(0);
  }
}

@keyframes slideInRight {
  0% {
    opacity: 0;
    transform: translateX(60px) skewX(8deg);
    filter: blur(4px);
  }

  60% {
    opacity: 1;
    transform: translateX(-8px) skewX(-2deg);
    filter: blur(0);
  }

  100% {
    opacity: 1;
    transform: translateX(0) skewX(0);
    filter: blur(0);
  }
}

@keyframes popUpFadeIn {
  0% {
    opacity: 0;
    transform: translateY(40px) scale(0.95);
  }

  80% {
    opacity: 1;
    transform: translateY(-8px) scale(1.04);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.story-grid-animate {
  opacity: 0;
}

.story-grid-animate.animate {
  animation: slideInLeft 1s 0.1s cubic-bezier(0.77, 0, 0.175, 1) forwards;
}

.story-content-animate {
  opacity: 0;
}

.story-content-animate.animate {
  animation: slideInRight 1s 0.2s cubic-bezier(0.77, 0, 0.175, 1) forwards;
}

.story-btn-animate {
  opacity: 0;
}

.story-btn-animate.animate {
  animation: popUpFadeIn 0.8s 0.7s cubic-bezier(0.77, 0, 0.175, 1) forwards;
}

/* ========== STORY SECTION ========== */
.image-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 2vh;
  aspect-ratio: 1;
}

.image-grid img {
  border-radius: 15px;
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.grid-img-1 {
  grid-row: span 2;
}

.story-content h2 {
  margin-bottom: 3vh;
}

.story-content .btn {
  margin-top: 2vh;
}

/* Divider line between sections */
.divider-line-between-sections {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 0 !important;
  margin-top: 0 !important;
  padding-bottom: 0 !important;
  padding-top: 0 !important;
}

#story.section>.container {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

.divider-line-img.flipped {
  transform: scaleX(-1);
  max-width: 350px;
  width: 100%;
}

@media (max-width: 1023px) {
  .image-grid {
    gap: 10px;
    margin-bottom: 30px;
  }

  .story-content {
    text-align: center;
  }

  .cta-buttons {
    display: flex;
    justify-content: center;
    width: 100%;
  }

  .divider-line-between-sections {
    display: none;
  }
}

#story.section {
  padding-top: 0 !important;
  margin-top: 0 !important;
}