/* Keep hero artwork and parallax inside their own stacking context. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.hero { isolation: isolate; z-index: 0; }
.hero-art {
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}
.world-background { z-index: 1; overflow: clip; }
.introduction { position: relative; clear: both; scroll-margin-top: -100px; }
.introduction > .eyebrow { position: relative; z-index: 1; }
.introduction > .intro-copy + .intro-copy { margin-top: 16px; }
.introduction > .intro-scope { font-size: 12px; color: #cfbb91; }

@media (max-width: 780px) {
  .hero {
    height: 100svh;
    min-height: 560px;
    max-height: none;
  }
  .site-header, .site-header.scrolled {
    top: 0;
    height: 64px;
    padding-block: 0;
    background: #080e16d9;
  }
  .hero-art {
    inset: 0;
    width: 100%;
    height: 79%;
    object-fit: cover;
    object-position: 50% 42%;
    transform: none;
  }
  .hero-vignette {
    background: linear-gradient(180deg, #080e161a 0%, transparent 22%, #080e1610 43%, #080e16d9 65%, #080e16 85%);
  }
  .hero-topline {
    top: 85px;
    width: calc(100% - 32px);
    justify-content: center;
    gap: 8px;
    font-size: 7px;
    letter-spacing: 1px;
  }
  .hero-bottom {
    bottom: 64px;
    padding-inline: 20px;
  }
  .hero-title {
    font-size: clamp(29px, 8.5vw, 46px);
    line-height: 1.05;
    letter-spacing: -.7px;
  }
  .hero-bottom > .hero-language {
    font-size: 13px;
    letter-spacing: 2.8px;
    line-height: 1.4;
    margin-top: 9px;
  }
  .hero-bottom > .hero-tagline {
    max-width: 340px;
    margin: 14px auto 0;
    font-size: 18px;
    line-height: 1.35;
    text-wrap: balance;
  }
  .hero-actions { margin-top: 19px; }
  .hero-actions .button-gold {
    width: 310px;
    max-width: 100%;
    min-height: 60px;
    padding: 18px 18px;
    font-size: 18px;
  }
  .scroll-cue { bottom: 13px; height: 27px; }
  .introduction { padding-top: 52px; scroll-margin-top: -52px; }
  .site-header nav.open {
    align-items: center;
    text-align: center;
    padding: 26px 24px 30px;
    gap: 18px;
    max-height: calc(100svh - 64px);
    overflow-y: auto;
    background: #080e16fc;
  }
  .site-header nav > a:not(.nav-download) {
    text-align: center;
    width: 100%;
    padding-block: 9px;
  }
  .site-header nav > a:not(.nav-download)::after {
    left: 50%;
    transform: translateX(-50%);
  }
  .site-header nav > .nav-download {
    width: min(100%, 320px);
    flex-shrink: 0;
  }
}
