/* Available before the React bundle or its route styles arrive. */
#homepage-loader {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 10000;
  box-sizing: border-box;
  min-height: 100svh;
  padding: 24px;
  place-items: center;
  color: #f6effb;
  background: radial-gradient(ellipse at 50% 42%, #581c87 0%, #381256 48%, #270c3b 100%);
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  opacity: 1;
  transition: opacity 120ms ease-out;
}
html[data-home-loading="loading"] { overflow: hidden; }
html[data-home-loading] #homepage-loader { display: grid; }
html[data-home-loading="loading"] #root { visibility: hidden; }
html[data-home-loading="leaving"] #homepage-loader { opacity: 0; pointer-events: none; }
.homepage-loader-content { display: grid; justify-items: center; max-width: 100%; text-align: center; }
.homepage-loader-mark { width: clamp(140px, 24vw, 196px); height: auto; overflow: visible; fill: none; stroke-linejoin: round; stroke-linecap: round; }
.homepage-loader-outline { stroke: #d2b4e7; stroke-width: 2.4; opacity: .42; }
.homepage-loader-trail, .homepage-loader-light { stroke: white; fill: none; }
.homepage-loader-trail { stroke-width: 6; opacity: .15; }
.homepage-loader-light { stroke-width: 2.8; filter: drop-shadow(0 0 4px #ffffffb3); }
.homepage-loader-trail use { stroke-dasharray: 160 840; animation: homepage-logo-trace 3s linear infinite; }
.homepage-loader-light use { stroke-dasharray: 62 938; animation: homepage-logo-trace 3s linear infinite; }
.homepage-loader-trail use:nth-child(2), .homepage-loader-light use:nth-child(2) { animation-delay: -.8s; }
.homepage-loader-trail use:nth-child(3), .homepage-loader-light use:nth-child(3) { animation-delay: -1.6s; }
.homepage-loader-name { margin-top: 20px; font-size: clamp(24px, 4vw, 30px); font-weight: 700; letter-spacing: -.04em; }
#homepage-loader-status { margin: 12px 0 0; max-width: 28ch; color: #d4bfdf; font-size: 12px; line-height: 1.7; }
#homepage-loader-retry { margin-top: 20px; border: 1px solid #d4bfdf80; border-radius: 10px; padding: 10px 20px; background: #ffffff0d; color: white; font: inherit; cursor: pointer; }
#homepage-loader-retry:focus-visible { outline: 2px solid white; outline-offset: 4px; }
#homepage-loader[data-stalled] use { animation-play-state: paused; }
/* Start the hero's entrance when the loading overlay has finished leaving. */
html[data-home-loading] .bv-world-hero[data-entrance="opening"] .bv-world-entry > *,
html[data-home-loading] .bv-world-hero[data-entrance="opening"] .bv-world-letter,
html[data-home-loading] .bv-world-hero[data-entrance="opening"] .bv-world-autograph-stroke,
html[data-home-loading] .bv-world-hero[data-entrance="opening"] .bv-world-background { animation-play-state: paused; }
@keyframes homepage-logo-trace { from { stroke-dashoffset: 0; } to { stroke-dashoffset: -1000; } }
@media (prefers-reduced-motion: reduce) {
  #homepage-loader { transition: none; }
  .homepage-loader-trail use, .homepage-loader-light use { animation: none; }
}
