:root {
  --page-cut-surface: #081421;
  --page-cut-signal: #58ff78;
  --page-cut-ease: cubic-bezier(0.77, 0, 0.175, 1);
}

html::before,
html::after {
  position: fixed;
  z-index: 2147483646;
  top: 0;
  bottom: 0;
  content: "";
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  will-change: transform;
}

html::before {
  right: 0;
  left: 0;
  background: var(--page-cut-surface);
  transform: translate3d(100%, 0, 0);
}

html::after {
  right: 0;
  width: 1px;
  background: var(--page-cut-signal);
  transform: translate3d(0, 0, 0);
}

html.page-transition-leaving {
  cursor: progress;
}

html.page-transition-leaving::before,
html.page-transition-leaving::after,
html.page-transition-entering::before,
html.page-transition-entering::after {
  opacity: 1;
  visibility: visible;
}

html.page-transition-leaving::before {
  animation: page-cut-cover 440ms var(--page-cut-ease) both;
  pointer-events: auto;
}

html.page-transition-leaving::after {
  animation: page-cut-register 440ms var(--page-cut-ease) both;
}

html.page-transition-entering::before {
  transform: translate3d(0, 0, 0);
}

html.page-transition-entering.page-transition-ready::before {
  animation: page-cut-reveal 560ms var(--page-cut-ease) both;
}

html.page-transition-entering.page-transition-ready::after {
  animation: page-cut-register 560ms var(--page-cut-ease) both;
}

@keyframes page-cut-cover {
  from {
    transform: translate3d(100%, 0, 0);
  }

  to {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes page-cut-reveal {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes page-cut-register {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-100vw, 0, 0);
  }
}

@media (prefers-reduced-motion: reduce) {
  html::before,
  html::after {
    display: none !important;
    animation: none !important;
  }
}
