:root{
    --animation-duration: 0.75s;
}

.reveal {
  position: relative;
  opacity: 0;
}
.reveal.revealed {
  opacity: 1;
}
.revealed.fade-top {
  animation: fade-top var(--animation-duration) ease-in;
}
.revealed.fade-bottom {
  animation: fade-bottom var(--animation-duration) ease-in;
}
.revealed.fade-left {
  animation: fade-left var(--animation-duration) ease-in;
}
.revealed.fade-right {
  animation: fade-right var(--animation-duration) ease-in;
}

@keyframes fade-bottom {
  0% {
    transform: translateY(50px);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}
@keyframes fade-top {
  0% {
    transform: translateY(-100px);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
    opacity: 1;
  }
}
@keyframes fade-left {
  0% {
    transform: translateX(-100px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}
@keyframes fade-right {
  0% {
    transform: translateX(100px);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}