.fade-in {
  opacity: 0;
  transform: translateY(30px);
  animation: fadeInUp 1s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

@keyframes fadeInUp {
  to {
    opacity: 1;
    transform: none;
  }
}

.card-animate {
  transition: transform 0.25s cubic-bezier(.4, 2, .6, 1), box-shadow 0.25s;
}

.card-animate:hover {
  transform: translateY(-8px) scale(1.03);
  box-shadow: 0 8px 32px 0 rgba(56, 189, 248, 0.15);
  z-index: 2;
}

.icon-pulse {
  animation: iconPulse 1.2s infinite alternate;
}

@keyframes iconPulse {
  0% {
    filter: drop-shadow(0 0 0 #38bdf8);
  }

  100% {
    filter: drop-shadow(0 0 8px #38bdf8);
  }
}
