:root {
  --ghn-preloader-z: 2147483000;
  --ghn-preloader-base-width: 1440;
  --ghn-preloader-base-height: 810;
}

html.ghn-preloader-lock,
body.ghn-preloader-lock {
  overflow: hidden !important;
  overscroll-behavior: none;
}

.ghn-preloader {
  position: fixed;
  inset: 0;
  z-index: var(--ghn-preloader-z);
  overflow: hidden;
  background: #0a0a0a;
  pointer-events: auto;
  isolation: isolate;
}

.ghn-preloader.is-complete {
  pointer-events: none;
}

.ghn-preloader-stage {
  position: absolute;
  top: 50%;
  left: 50%;
  width: max(100vw, calc(100vh * 16 / 9));
  height: max(100vh, calc(100vw * 9 / 16));
  overflow: hidden;
  transform: translate(-50%, -50%);
  transform-origin: center;
}

.ghn-preloader-bg,
.ghn-preloader-chevron,
.ghn-preloader-logo,
.ghn-preloader-mark,
.ghn-preloader-color-wash {
  position: absolute;
  display: block;
  user-select: none;
  pointer-events: none;
}

.ghn-preloader-bg {
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ghn-preloader-bg-glow {
  opacity: 0;
}

.ghn-preloader-chevron {
  top: 0;
  height: 100%;
  object-fit: fill;
  will-change: transform, opacity;
}

.ghn-preloader-chevron-back {
  left: 7.916667%;
  width: 98.020833%;
}

.ghn-preloader-chevron-mid {
  left: -2.604167%;
  width: 82.03125%;
}

.ghn-preloader-chevron-front {
  left: -13.541667%;
  width: 68.75%;
}

.ghn-preloader-logo {
  top: 50%;
  left: 50%;
  width: clamp(260px, 29.6875%, 428px);
  height: auto;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.96);
  will-change: transform, opacity;
}

.ghn-preloader-mark {
  top: 50%;
  left: 50%;
  width: clamp(620px, 62.5%, 900px);
  height: auto;
  opacity: 0;
  overflow: visible;
  transform: none;
  transform-origin: center center;
  will-change: transform, opacity;
}

.ghn-preloader-mark-shape {
  shape-rendering: geometricPrecision;
  vector-effect: non-scaling-stroke;
}

.ghn-preloader-color-wash {
  inset: -5%;
  background: #00a19a;
  opacity: 0;
  transform: none;
  will-change: background-color, opacity;
}

[data-intro-target] {
  transition: opacity 350ms ease;
}

.site-header {
  transition: opacity 350ms ease;
}

html.ghn-preloader-active .site-header,
html.ghn-preloader-active [data-intro-target]:not(.is-visible) {
  opacity: 0;
}

[data-intro-target].is-visible {
  opacity: 1;
}

@media (max-width: 767px) {
  .ghn-preloader-stage {
    left: 58%;
  }

  .ghn-preloader-logo {
    width: clamp(248px, 46vw, 340px);
  }

  .ghn-preloader-mark {
    width: clamp(580px, 130vw, 860px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ghn-preloader-chevron,
  .ghn-preloader-logo,
  .ghn-preloader-mark,
  .ghn-preloader-color-wash {
    will-change: auto;
  }
}
