:root {
  --elysium-page-transition-duration: 220ms;
  --elysium-page-transition-easing:
    cubic-bezier(0.22, 1, 0.36, 1);
}

body {
  animation:
    elysium-page-enter
    var(--elysium-page-transition-duration)
    var(--elysium-page-transition-easing)
    both;
}

body.elysium-page-leaving {
  pointer-events: none;
  animation: none;
  opacity: 0;
  transform: translateY(-4px) scale(0.998);
  filter: blur(0.6px);
  transition:
    opacity 170ms ease,
    transform 190ms ease,
    filter 170ms ease;
}

.page-section.active.elysium-section-entering {
  animation:
    elysium-section-enter
    230ms
    var(--elysium-page-transition-easing)
    both;
}

@keyframes elysium-page-enter {
  from {
    opacity: 0;
    transform: translateY(6px) scale(0.998);
    filter: blur(0.8px);
  }

  to {
    opacity: 1;
    transform: none;
    filter: none;
  }
}

@keyframes elysium-section-enter {
  from {
    opacity: 0;
    transform: translateY(7px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  body,
  body.elysium-page-leaving,
  .page-section.active.elysium-section-entering {
    animation: none;
    filter: none;
    transition: none;
    transform: none;
  }
}
