/* HOME — THE LAND FILM */
.hero { position: relative; height: var(--hero-len, 560vh); color: var(--cream); background: var(--coal); }
.hero__stage { position: sticky; top: 0; height: 100svh; min-height: 560px; overflow: hidden; }
.hero__poster, .hero__canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero__canvas { opacity: 0; transition: opacity .6s var(--ease); }
/* the base wash: the island's band at the top, a deep foot for the
   captions, seal and chapter bar; the frame stays bright in the middle */
.hero__wash { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(10, 10, 9, .5) 0%, rgba(10, 10, 9, 0) 26%), linear-gradient(180deg, rgba(10, 10, 9, 0) 36%, rgba(10, 10, 9, .42) 60%, rgba(10, 10, 9, .88) 84%, rgba(10, 10, 9, .96) 100%); }
.hero .seal { text-shadow: 0 1px 12px rgba(10, 10, 9, .6); }
/* the opening title carries its own wash, which leaves with it */
.hero__intro { position: absolute; inset: 0; display: flex; align-items: flex-end; padding-bottom: clamp(140px, 22vh, 220px); pointer-events: none; }
.hero__intro::before { content: ""; position: absolute; inset: 0; background: linear-gradient(98deg, rgba(10, 10, 9, .84) 0%, rgba(10, 10, 9, .68) 28%, rgba(10, 10, 9, .34) 54%, rgba(10, 10, 9, 0) 74%); }
.hero__intro .container { position: relative; width: 100%; }
.hero__h1 { max-width: 14ch; text-shadow: 0 2px 34px rgba(10, 10, 9, .55), 0 1px 3px rgba(10, 10, 9, .4); }
.hero__sub { margin-top: 24px; max-width: 46ch; font-size: clamp(1.02rem, 1.35vw, 1.22rem); font-weight: 400; line-height: 1.6; color: var(--cream); text-shadow: 0 1px 18px rgba(10, 10, 9, .6); }
.hero__captions { position: absolute; left: 0; right: 0; bottom: clamp(140px, 22vh, 220px); pointer-events: none; }
.hero__cap { position: absolute; left: var(--pad); right: var(--pad); bottom: 0; max-width: 640px; opacity: 0; visibility: hidden; isolation: isolate; }
/* a soft halo behind each caption, densest under the kicker and
   title, so it reads on any frame */
.hero__cap::before { content: ""; position: absolute; z-index: -1; inset: -120px -150px -80px -150px; pointer-events: none; background: radial-gradient(closest-side at 50% 50%, rgba(10, 10, 9, .8) 0%, rgba(10, 10, 9, .55) 52%, rgba(10, 10, 9, 0) 100%); }
.hero__cap-kicker { font-family: var(--font-display); font-style: italic; font-size: 1.15rem; color: var(--amber-light); text-shadow: 0 1px 14px rgba(10, 10, 9, .6); }
.hero__cap-title { margin-top: 10px; max-width: 22ch; font-family: var(--font-display); font-weight: 500; font-size: clamp(1.7rem, 3.2vw, 3.1rem); line-height: 1.08; letter-spacing: -.01em; text-shadow: 0 2px 30px rgba(10, 10, 9, .6), 0 1px 3px rgba(10, 10, 9, .4); }
.hero__cap-ctas { margin-top: 28px; pointer-events: auto; }
.hero__foot { position: absolute; left: 0; right: 0; bottom: 92px; pointer-events: none; }
.hero__foot-row { display: flex; justify-content: space-between; align-items: flex-end; }
.hero__cue { display: flex; align-items: center; gap: 14px; font-family: var(--font-display); font-style: italic; font-size: 1rem; color: var(--cream); }
.hero__cue-line { width: 56px; height: 1px; background: rgba(232, 145, 43, .4); position: relative; overflow: hidden; }
.hero__cue-line::after { content: ""; position: absolute; inset: 0; left: -100%; background: var(--amber); animation: cue-sweep 2.4s var(--ease) infinite; }
@keyframes cue-sweep { 0% { transform: translateX(0); } 60%, 100% { transform: translateX(200%); } }
/* the chapter bar: six words, each with a filling line */
.hero__bar { position: absolute; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; padding: 0 var(--pad) 22px; }
.hero__seg { display: block; text-align: left; padding: 10px 0 0; color: rgba(244, 241, 233, .8); font-size: .78rem; font-weight: 500; letter-spacing: .02em; cursor: pointer; transition: color var(--dur-fast) var(--ease); }
.hero__seg::before { content: ""; display: block; height: 1px; margin-bottom: 10px; background: rgba(244, 241, 233, .22); }
.hero__seg-fill { position: absolute; left: 0; top: 0; height: 1px; width: 100%; background: var(--amber); transform: scaleX(0); transform-origin: left center; }
.hero__seg { position: relative; }
.hero__seg.is-active { color: var(--cream); }
.hero__seg:hover { color: var(--cream); }
.hero .media-pause { bottom: auto; top: calc(var(--nav-h) + 8px); right: var(--pad); }
@media (max-width: 899px) {
  .hero { height: var(--hero-len-m, 480vh); }
  .hero__cue { display: none; }
  .hero__intro { padding-bottom: 120px; }
  .hero__intro::before { background: linear-gradient(180deg, rgba(10, 10, 9, 0) 16%, rgba(10, 10, 9, .5) 42%, rgba(10, 10, 9, .86) 100%); }
  .hero__captions { bottom: 120px; }
  .hero__cap::before { inset: -48px -40px -48px -40px; }
  .hero__foot { bottom: 72px; }
  .hero__bar { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; padding-bottom: 16px; }
  .hero__seg { font-size: .75rem; letter-spacing: 0; }
}
body.is-static .hero { height: auto; min-height: 100svh; }
body.is-static .hero__stage { position: relative; }
body.is-static .hero__canvas, body.is-static .hero__cue, body.is-static .hero__captions, body.is-static .hero__bar { display: none; }
body.is-static .hero__intro { padding-bottom: 170px; }
body.is-static .hero__foot { bottom: 56px; }
/* static mode: the last chapter's routes sit under the title */
body.is-static .hero__intro .hero__cap-ctas { margin-top: 32px; }
