/* Only document loads show this state; hash navigation stays instant. */
:root {
  --wordmark-font: 'Inter Display', Arial, sans-serif;
  --wordmark-weight: 700;
  --wordmark-tracking: -.055em;
  --wordmark-dot: #c29756;
}
.page-loader { display: none; }
/* Internal navigation opens the new page without an entrance transition. */
#main.instant-navigation .fade-in,
#main.instant-navigation .hero-art { animation: none; }
.is-loading { overflow: hidden; }
.is-loading body > :not(.page-loader) { visibility: hidden; }
.is-revealing body > :not(.page-loader) {
  animation: page-focus-in 900ms cubic-bezier(.22, 1, .36, 1) both;
}
.is-loading .page-loader, .page-loader.is-leaving {
  display: grid;
  place-items: center;
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: #f6f5ef;
  color: #0a294b;
  padding: 24px;
  opacity: 1;
  transition: opacity 700ms cubic-bezier(.4, 0, .2, 1);
}
.page-loader-content {
  max-width: 100%;
  text-align: center;
  transform: translateY(-16px);
  transition: filter 550ms ease, opacity 550ms ease;
}
.page-loader-wordmark {
  font-family: var(--wordmark-font);
  font-size: clamp(42px, 9vw, 60px);
  font-weight: var(--wordmark-weight);
  letter-spacing: var(--wordmark-tracking);
  line-height: 1.1;
}
.page-loader-wordmark span { color: var(--wordmark-dot); }
.page-loader-track {
  width: 120px;
  height: 2px;
  margin: auto;
  background: #deded4;
  overflow: hidden;
  border-radius: 2px;
}
.page-loader-track span {
  display: block;
  width: 50%;
  height: 100%;
  background: #c29756;
  animation: loading-line 1.1s ease-in-out infinite;
}
.page-loader.is-leaving { opacity: 0; pointer-events: none; }
.page-loader.is-leaving .page-loader-content { filter: blur(6px); opacity: 0; }
@keyframes page-focus-in {
  from { filter: blur(6px); opacity: .3; }
  to { filter: blur(0); opacity: 1; }
}
@keyframes loading-line {
  from { transform: translateX(-100%); }
  to { transform: translateX(200%); }
}
@media (prefers-reduced-motion: reduce) {
  .page-loader-track span { animation: none; margin: auto; }
  .is-revealing body > :not(.page-loader) { animation: none; }
  .is-loading .page-loader, .page-loader.is-leaving,
  .page-loader-content { transition: none; }
  .page-loader.is-leaving .page-loader-content { filter: none; }
}

.page-loader-lockup {
  display: block;
  width: clamp(240px, 60vw, 300px);
  max-width: 100%;
  height: auto;
  margin: 0 auto 24px;
}
.page-loader-tagline {
  margin: 0 0 28px;
  color: #0a294b;
  font: 400 clamp(14px, 3.6vw, 16px)/1.5 'Inter Display', Arial, sans-serif;
}
