.gw-page-transition[hidden] {
  display: none !important;
}

/* A quiet, consistent cover makes the mark the only visual focal point. */
.gw-page-transition {
  position: fixed;
  z-index: 60;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: var(--gw-ink, #171a18);
  color: var(--gw-white, #fff);
  pointer-events: none;
  isolation: isolate;
  contain: strict;
  opacity: 0;
  transition: opacity 220ms cubic-bezier(.22, 1, .36, 1);
}

.gw-page-transition.is-covering,
.gw-page-transition.is-arriving {
  opacity: 1;
}

.gw-page-transition.is-covering {
  pointer-events: auto;
}

.gw-page-transition.is-arriving {
  transition: none;
}

.gw-page-transition.is-arriving.is-revealing {
  opacity: 0;
  transition: opacity 260ms cubic-bezier(.22, 1, .36, 1);
}

.gw-page-transition__mark {
  position: relative;
  display: grid;
  width: clamp(64px, 6vw, 80px);
  aspect-ratio: 1;
  place-items: center;
  opacity: 0;
  transform: translateY(5px) scale(.96);
  transition: opacity 160ms ease-out, transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.gw-page-transition:is(.is-covering, .is-arriving) .gw-page-transition__mark {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* A fine signature line settles beneath the mark without becoming a loader. */
.gw-page-transition__mark::after {
  content: '';
  position: absolute;
  width: 34px;
  height: 1px;
  bottom: -8px;
  background: rgba(255, 255, 255, .65);
  transform: scaleX(0);
  transition: transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.gw-page-transition:is(.is-covering, .is-arriving) .gw-page-transition__mark::after {
  transform: scaleX(1);
}

.gw-page-transition.is-revealing .gw-page-transition__mark {
  opacity: 0;
  transform: translateY(-3px);
  transition: opacity 140ms ease-out, transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.gw-page-transition__logo {
  width: clamp(50px, 4.5vw, 64px);
  height: auto;
  filter: invert(1);
}

.gw-page-transition__wordmark {
  font-family: var(--gw-display, sans-serif);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .14em;
}

.gw-page-transition__ring,
.gw-page-transition__slash {
  display: none;
}

@media print {
  .gw-page-transition {
    display: none !important;
  }
}
