/* Alternate horizon hero. The opaque sphere becomes the film's dark surface. */
.hero-sequence {
  height: 210svh;
  margin-top: -92px;
}
.hero-sequence .hero {
  position: sticky;
  top: 0;
  height: 100svh;
  min-height: 0;
  margin-top: 0;
  padding: 0;
  overflow: hidden;
  isolation: isolate;
}
.hero .hero-intro {
  position: absolute;
  inset: 0;
  animation: none;
}
.hero .hero-content {
  position: absolute;
  inset: 0;
  gap: 0;
  transform: none;
}
.hero .hero-lockup {
  position: absolute;
  top: 27%;
  opacity: .8;
}
.hero h1 {
  position: absolute;
  top: calc(58% - 16.3vw);
  left: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  line-height: 1;
  animation: none;
}
.hero h1 svg { display: block; width: 100%; overflow: visible; }
.hero h1 text {
  font-family: system-ui, sans-serif;
  font-size: 180px;
  font-weight: 700;
  letter-spacing: -.055em;
  fill: #fff;
  filter: drop-shadow(0 0 1px #fff6) drop-shadow(0 8px 16px #dfebff36);
}
.hero .hero-search-anchor {
  position: absolute;
  top: 73%;
  margin: 0;
}
.hero-planet {
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
}
#planet-renderer { width: 100%; height: 100%; display: block; }
html[data-hero-intro="pending"] .hero h1,
html[data-hero-intro="ready"] .hero h1 { opacity: 0; }
html[data-hero-intro] #planet-renderer { opacity: 0; }
html[data-hero-intro="ready"] #planet-renderer {
  opacity: 1;
  transition: opacity 700ms cubic-bezier(.22, 1, .36, 1);
}
/* Independent translate preserves the form's scroll-driven docking transform. */
.global-search.search-flight {
  opacity: 1;
  translate: 0 0;
  visibility: visible;
  transition: opacity 650ms cubic-bezier(.22, 1, .36, 1),
    translate 650ms cubic-bezier(.22, 1, .36, 1),
    background-color 180ms ease, box-shadow 180ms ease;
}
html:is([data-hero-intro="pending"], [data-hero-intro="ready"]):not([data-hero-search="visible"]) .global-search.search-flight {
  opacity: 0;
  translate: 0 12px;
  visibility: hidden;
  pointer-events: none;
}
html[data-hero-intro="fallback"] .hero-planet,
.hero-planet[data-renderer="fallback"] {
  top: 58%; left: -35%; width: 170%; height: 170vw;
  border-radius: 50%; background: #030407;
  box-shadow: 0 -2px 20px #b9dcff66;
  transform: translateY(var(--planet-lift, 0px));
}
.hero-sequence + .film-track {
  height: 135svh;
  margin: -75svh 0 0;
  padding: 0 24px;
  transform: none;
  background: linear-gradient(transparent 0%, #030407 18%, #030407 65%, transparent 100%);
}
.hero-sequence + .film-track .film-sticky {
  top: 112px;
  height: calc(100svh - 112px);
  margin-bottom: 0;
  justify-content: center;
  background: none;
}
.hero-sequence + .film-track .film-card {
  max-width: calc(100vw - 48px);
}
.gh-orbit {
  position: relative;
  min-height: 100svh;
  overflow: visible;
  isolation: isolate;
}
.gh-search,
.gh-methods {
  position: relative;
  z-index: 1;
}
.gh-orbit-mask {
  position: absolute;
  inset: -32svh 0;
  z-index: 0;
  pointer-events: none;
  contain: layout style paint;
  mask: radial-gradient(
    ellipse 43% 38% at 50% 50%,
    rgb(0 0 0 / var(--orbit-core-alpha, 0)) 0 45%,
    #000 76%
  );
}
.gh-orbit-stage {
  position: absolute;
  inset: 0;
}
.gh-orbit-content {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100svh;
  padding: 10svh 24px;
  pointer-events: none;
}
.gh-orbit-heading {
  max-width: 900px;
  color: var(--ink);
  text-wrap: balance;
}
@keyframes horizon-rise {
  from { transform: translateY(45%); opacity: .15; }
  to { transform: translateY(0); opacity: 1; }
}
@media (max-width: 767px) {
  .hero-sequence { margin-top: -58px; }
  .hero .hero-lockup { top: 30%; }
  .hero h1 { top: calc(56% - 20.4vw); left: -10%; width: 120%; }
  .hero .hero-search-anchor { top: 72%; }
  .hero-sequence + .film-track { height: auto; padding: 80px 16px 100px; }
  .hero-sequence + .film-track .film-sticky { position: relative; top: 0; height: auto; }
  .hero-sequence + .film-track .film-card { width: 100%; max-width: calc(100vw - 32px); }
  .hero-sequence + .film-track .film-content { width: 100%; }
  .gh-orbit,
  .gh-orbit-content { min-height: 78svh; }
}
@media (prefers-reduced-motion: reduce) {
  .global-search.search-flight { transition: none; translate: none; }
  html[data-hero-intro="ready"] #planet-renderer { transition: none; }
  .hero h1 { animation: none; }
  .hero-sequence { height: 100svh; }
  .hero-sequence + .film-track { margin-top: -1px; }
  .hero-sequence .hero { position: relative; }
  .hero-planet { will-change: auto; }
  .gh-orbit-stage canvas { transition: none; }
}
/* The expanded film sits above its backdrop without blocking the close control. */
.film-playing .hero-sequence + .film-track {
  pointer-events: none;
  background: none;
}
/* The accessible heading remains in the document; its visible counterpart is 3D. */
.hero[data-scene="ready"] h1 { opacity: 0; animation: none; }
