html.page-transition-arriving {
  background: #000;
  scroll-behavior: auto !important;
}

html.page-transition-arriving body > :not(.page-transition) {
  visibility: hidden !important;
}

.page-transition {
  position: fixed;
  z-index: 2147483000;
  inset: 0;
  display: block;
  overflow: hidden;
  background: transparent;
  perspective: 900px;
  pointer-events: all;
  cursor: wait;
}

.page-transition__backdrop {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
  background: #000;
  opacity: 0;
  pointer-events: none;
  will-change: opacity;
}

.page-transition .gds-wipe-canvas {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
}

.gds-view-frame {
  position: fixed;
  inset: 0;
  z-index: 2147482900;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #000;
  visibility: visible;
  opacity: 0;
  pointer-events: none;
  transform:translateZ(0);
  contain:strict;
}

.gds-view-frame.is-active {
  opacity: 1;
  pointer-events: auto;
}

.page-transition.active .page-transition__backdrop {
  animation: page-transition-backdrop var(--transition-duration) linear both;
  animation-delay: var(--transition-offset, 0ms);
}

@keyframes page-transition-backdrop {
  0% { opacity: 0; }
  50% { opacity: 1; }
  100% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .page-transition { display: none !important; }
  html.page-transition-arriving body > :not(.page-transition) { visibility: visible !important; }
}
