/* Shared, bottom-to-top curved wipe for native document navigation. */
html.page-transition-arriving::before {
  content:"";
  position:fixed;
  inset:0;
  z-index:10000;
  background:#1b1b1b;
}
html.page-transition-arriving::after {
  content:"";
  position:fixed;
  z-index:10001;
  top:50%;
  left:50%;
  width:clamp(180px,18vw,300px);
  aspect-ratio:210 / 107.232;
  background:url("/assets/signature.svg") center / contain no-repeat;
  filter:brightness(0) invert(1);
  transform:translate(-50%,-50%);
}
html.page-transition-ready::before,
html.page-transition-ready::after { display:none; }
html.page-transition-arriving .hero h1>span,
html.page-transition-arriving .hero-description,
html.page-transition-arriving .hero-cta,
html.page-transition-arriving .hero-portrait,
html.page-transition-arriving .hero-disc,
html.page-transition-arriving .headline-underline { animation-play-state:paused; }

.page-wipe {
  position:fixed;
  inset:0;
  z-index:10000;
  overflow:hidden;
  pointer-events:auto;
  isolation:isolate;
}
.page-wipe[hidden] { display:none !important; }
.page-wipe__panel {
  position:absolute;
  top:100%;
  left:0;
  width:100%;
  height:100%;
  color:#1b1b1b;
  background:currentColor;
  will-change:transform;
}
.page-wipe__curve {
  position:absolute;
  left:0;
  width:100%;
  display:flex;
  align-items:center;
  flex-direction:column;
  overflow:hidden;
  will-change:transform;
}
.page-wipe__curve--top {
  bottom:calc(100% - 1px);
  height:15vw;
  transform-origin:bottom;
}
.page-wipe__curve--bottom {
  top:calc(100% - 1px);
  height:20vw;
  justify-content:flex-end;
  transform-origin:top;
}
.page-wipe__ellipse {
  position:absolute;
  width:125%;
  height:500%;
  border-radius:50%;
  background:currentColor;
}
.page-wipe__logo {
  position:absolute;
  top:50%;
  left:50%;
  width:clamp(180px,18vw,300px);
  overflow:hidden;
  transform:translate(-50%,-50%);
}
.page-wipe__logo img {
  display:block;
  width:100%;
  height:auto;
  filter:brightness(0) invert(1);
  will-change:transform;
}
@media(prefers-reduced-motion:reduce) {
  html.page-transition-arriving::before,
  html.page-transition-arriving::after,
  .page-wipe { display:none !important; }
}
