body {
  animation: page-enter 340ms cubic-bezier(.22, 1, .36, 1);
}

html.page-is-leaving body {
  pointer-events: none;
  animation: page-exit 180ms cubic-bezier(.4, 0, 1, 1) both;
}

@keyframes page-enter {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes page-exit {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-7px);
  }
}

@media (prefers-reduced-motion: reduce) {
  body,
  html.page-is-leaving body {
    animation: none;
  }
}
