@keyframes stack-pull-up-in {
  from {
    transform: translateY(100vh);
  }

  to {
    transform: translateY(0);
  }
}

@keyframes stack-pull-up-out {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(-100vh);
  }
}

@keyframes stack-pull-down-in {
  from {
    transform: translateY(-100vh);
  }

  to {
    transform: translateY(0);
  }
}

@keyframes stack-pull-down-out {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(100vh);
  }
}

@keyframes stack-push-in {
  from {
    transform: translateX(100vw);
  }

  to {
    transform: translateX(0);
  }
}

@keyframes stack-push-out {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-100vw);
  }
}

@keyframes stack-pop-in {
  from {
    transform: translateX(-100vw);
  }

  to {
    transform: translateX(0);
  }
}

@keyframes stack-pop-out {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(100vw);
  }
}

@keyframes stack-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes stack-fade-out {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes stack-grow-fade-in {
  from {
    opacity: 0;
    transform: scale(0.75) translateY(7vh);
  }

  to {
    opacity: 1;
    transform: scale(1.0) translateY(0);
  }
}

@keyframes stack-grow-fade-out {
  from {
    opacity: 1;
    transform: scale(1.00) translateY(0);
  }

  to {
    opacity: 0;
    transform: scale(1.33) translateY(-7vh);
  }
}

@keyframes stack-shrink-fade-in {
  from {
    opacity: 0;
    transform: scale(1.33) translateY(-7vh);
  }

  to {
    opacity: 1;
    transform: scale(1.0) translateY(0);
  }
}

@keyframes stack-shrink-fade-out {
  from {
    opacity: 1;
    transform: scale(1.0) translateY(0vh);
  }

  to {
    opacity: 0;
    transform: scale(0.75) translateY(7vh);
  }
}
