@keyframes heroBounce {
  0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
  40% { transform: translateY(-10px); }
  60% { transform: translateY(-5px); }
}

.hero-video-wrap {
  height: 100vh;
  height: 100dvh;
  min-height: 560px;
  max-height: 900px;
  display: grid;
  place-items: center;
  text-align: center;
}

.hero-video-wrap > video {
  object-fit: cover;
}

.hero-image-wrap {
  min-height: 70vh;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
  display: grid;
  place-items: center;
  text-align: center;
}

.hero-legal-wrap {
  display: grid;
  place-items: center;
  text-align: center;
}

.hero-video-wrap > .relative,
.hero-image-wrap > .relative {
  width: 100%;
  align-self: stretch;
}

.hero-overlay {
  background: linear-gradient(135deg, rgba(26, 26, 46, 0.85) 0%, rgba(22, 33, 62, 0.75) 100%);
}

.hero-copy h1 { font-size: 4.2rem; }
.hero-copy p { font-size: 1.25rem; }
.hero-cta { font-size: 1rem; }
.hero-eyebrow {
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.3);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.hero-meta {
  background: rgba(26, 26, 46, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.22);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.hero-legal-title { font-size: clamp(2rem, 5vw, 3rem); }
.hero-legal-subtitle { font-size: 1.125rem; }
.hero-legal-caption { font-size: 0.875rem; }
.hero-legal-date { font-size: 0.75rem; }

@media (max-width: 767px) {
  .hero-video-wrap {
    height: auto;
    min-height: 0;
    max-height: none;
    aspect-ratio: 16 / 9;
    background: #1a1a2e;
  }
  .hero-video-wrap > video { object-fit: contain; }
  .hero-copy { max-width: 72%; }
  .hero-copy h1 { font-size: 2.2rem; line-height: 1.15; margin-bottom: 0.5rem; }
  .hero-copy p { font-size: 0.9rem; line-height: 1.4; margin-bottom: 0.75rem; }
  .hero-actions { gap: 0.5rem; }
  .hero-cta { font-size: 0.85rem; padding: 0.55rem 1rem; }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .hero-video-wrap,
  .hero-image-wrap,
  .hero-legal-wrap {
    height: auto;
    min-height: 0;
    max-height: none;
    aspect-ratio: 16 / 9;
  }

  .hero-image-wrap { background-attachment: scroll; }
}

@media (min-width: 1024px) and (max-width: 1366px) and (pointer: coarse) {
  .hero-video-wrap,
  .hero-image-wrap,
  .hero-legal-wrap {
    height: auto;
    min-height: 0;
    max-height: none;
    aspect-ratio: 16 / 9;
  }

  .hero-image-wrap { background-attachment: scroll; }
}

@media (min-width: 1024px) and (max-height: 420px) {
  .hero-video-wrap { min-height: 380px; padding: 80px 0 40px; }
}

@media (max-width: 767px) {
  .hero-image-wrap {
    min-height: 0;
    aspect-ratio: 16 / 9;
    background-attachment: scroll;
  }
  .hero-overlay {
    background: linear-gradient(135deg, rgba(26, 26, 46, 0.45) 0%, rgba(22, 33, 62, 0.35) 100%);
  }
  .hero-copy {
    padding: 0.5rem 0.6rem;
    background: rgba(26, 26, 46, 0.22);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 6px;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }
  .hero-copy h1,
  .hero-copy p,
  .hero-scroll { opacity: 0.72; }
}

@media (max-width: 639px) {
  .hero-copy { max-width: 88%; }
  .hero-copy h1 { font-size: 0.896rem; line-height: 1.15; margin-bottom: 0.28rem; }
  .hero-copy p { font-size: 0.461rem; line-height: 1.35; margin-bottom: 0.4rem; }
  .hero-cta { font-size: 0.448rem; padding: 0.32rem 0.56rem; }
  .hero-eyebrow,
  .hero-meta { font-size: 0.64rem; }
  .hero-scroll { font-size: 0.384rem; }
  .hero-scroll div { height: 14px; margin-top: 0.2rem; }
  .hero-legal-title { font-size: 1.6rem; }
  .hero-legal-subtitle { font-size: 0.9rem; }
  .hero-legal-caption { font-size: 0.7rem; }
  .hero-legal-date { font-size: 0.6rem; }
}