.page-stack {
  position: relative;
  display: grid;
  isolation: isolate;
  overflow: hidden;
  --page-transition-duration: 320ms;
  --page-transition-easing: cubic-bezier(0.2, 0.8, 0.2, 1);
}

.page-stack > .page-view {
  grid-area: 1 / 1;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  transform: translateX(0%);
  padding-bottom: calc(105px + env(safe-area-inset-bottom, 0px));
}

body.is-welcome .page-stack > .page-view {
  padding-bottom: 0;
}

.page-stack[data-transitioning="true"] > .page-view {
  transition: transform var(--page-transition-duration) var(--page-transition-easing);
  will-change: transform;
}

.page-view.is-exiting {
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .page-stack[data-transitioning="true"] > .page-view {
    transition: none;
  }
}
