.reveal{
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s ease, transform .7s ease;
}
.reveal.in{
  opacity: 1;
  transform: translateY(0);
}
.cta-btn{
  position: relative;
}
.cta-btn::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 100px;
  animation: pulse-gray 2.2s ease-out infinite;
}
@keyframes pulse-gray{
  0%{ box-shadow: 0 0 0 0 rgba(58,58,62,.45); }
  70%{ box-shadow: 0 0 0 16px rgba(58,58,62,0); }
  100%{ box-shadow: 0 0 0 0 rgba(58,58,62,0); }
}