/* Launch-readiness improvements; the approved film and logo remain unchanged. */
.story-stage .story-poster {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain;
}
body .story-stage:not(.film-ready) video { visibility: hidden; }
body .story-stage.film-error { background: #132432; }
.story-stage.film-ready .story-poster { visibility: hidden; }
.inquire-shortcut {
  position: fixed; z-index: 25; top: max(16px, env(safe-area-inset-top));
  right: max(24px, env(safe-area-inset-right));
  display: inline-flex; align-items: center; gap: .75rem; min-height: 44px;
  padding: 0 14px; border: 1px solid rgba(169,201,220,.26); border-radius: 2px;
  background: rgba(5,8,15,.86); color: var(--ice); text-decoration: none;
  font: 12px var(--mono); letter-spacing: .06em;
  opacity: 0; visibility: hidden; transition: opacity .25s, border-color .25s;
}
body.story-ready:not([data-chapter="arrival"]) .inquire-shortcut,
body:has(.logo-intro[data-intro-state="complete"]) .inquire-shortcut,
body:not(.story-ready) .inquire-shortcut { opacity: 1; visibility: visible; }
.inquire-shortcut:hover { border-color: var(--beam); }
a:focus-visible { outline: 2px solid var(--beam); outline-offset: 4px; }
.rail { gap: 0; }
.rail button { min-width: 44px; min-height: 44px; padding: 8px 0 8px 12px; }
.rail button:focus-visible .lbl { opacity: 1; transform: none; }
.chapter-caption { display: none; }
.development-note {
  margin-top: 1rem; color: #aab4c1; font: .75rem/1.5 var(--body); max-width: 38em;
}
.modules a {
  display: inline-flex; align-items: center; min-height: 44px;
  font: .75rem var(--mono); letter-spacing: .06em; text-transform: uppercase;
  padding: .55em .7em; border: 1px solid var(--line); color: var(--beam); text-decoration: none;
}
.modules span { display: inline-flex; align-items: center; }
.spec-inquiry { text-underline-offset: 4px; display: inline-flex; align-items: center; min-height: 24px; }
.specs-grid .v { min-width: 0; overflow-wrap: anywhere; }
.film-notice {
  position: fixed; z-index: 21; bottom: 52px; left: 6vw; max-width: 30rem;
  padding: .65rem .85rem; margin-right: 48px; color: #c3cedb;
  background: rgba(5,8,15,.94); border-left: 1px solid var(--beam);
  font: .75rem/1.5 var(--body);
}
body[data-chapter="arrival"] .film-notice { display: none; }
.reading-link { display: none; }

/* Readable by default. Only a successfully initialized controller opts into
   fixed chapter panels; a blocked/missing script cannot leave an empty page. */
body:not(.story-ready) .story-stage,
body:not(.story-ready) .rail,
body:not(.story-ready) .counter,
body:not(.story-ready) .chapter-caption,
body:not(.story-ready) .chapter-snap-point,
body:not(.story-ready) #descend-btn { display: none; }
body:not(.story-ready) .reading-link {
  display: flex; gap: 1rem; align-items: center; min-height: 44px;
  color: var(--steel); font: .875rem var(--mono); text-decoration: none;
}
body:not(.story-ready) section:not(#arrival) {
  height: auto; min-height: 80svh; padding: 6rem max(7vw, 24px);
  border-top: 1px solid var(--line); scroll-snap-align: none;
}
body:not(.story-ready) section:not(#arrival) > .inner {
  position: relative; inset: auto; width: min(880px, 100%); max-height: none;
  transform: none; opacity: 1; visibility: visible; pointer-events: auto; overflow: visible;
}
body:not(.story-ready) .fx { opacity: 1; transform: none; }
body:not(.story-ready) .foot { position: absolute; bottom: 1rem; opacity: 1; }
body:not(.story-ready) .contact-logo { max-width: 520px; }
body:not(.story-ready) section#contact { min-height: 100svh; }

@media (max-aspect-ratio: 4/3) {
  .inquire-shortcut { top: max(10px, env(safe-area-inset-top)); right: max(12px, env(safe-area-inset-right)); }
  .story-ready .chapter-caption {
    display: block; position: fixed; top: max(25px, calc(env(safe-area-inset-top) + 15px));
    left: 7vw; right: 130px; z-index: 21; color: var(--steel);
    font: .65rem/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase;
  }
  body[data-chapter="arrival"] .chapter-caption { display: none; }
  .story-ready section:not(#arrival) > .inner {
    top: max(74px, 9svh); width: min(83vw, calc(93vw - 48px));
  }
  .story-ready section#platform > .inner { max-height: 50svh; }
  #platform h1 { font-size: min(clamp(1.75rem, 5.2vw, 2.6rem), 8.5cqw); }
  .story-ready section#specs > .inner { top: max(70px, 8svh); max-height: calc(100svh - 155px); }
  .story-ready section#contact > .inner { top: max(80px, 10svh); }
  .rail { right: 0; }
  .rail button { padding-right: 12px; }
  .story-stage .story-poster {
    inset: auto; bottom: 3svh; left: 50%; transform: translateX(-50%);
    height: min(58svh, 80vw); width: min(100vw, 72.5svh); object-fit: cover;
    object-position: 78% center;
    -webkit-mask-image: linear-gradient(180deg, transparent, black 5%, black 95%, transparent);
    mask-image: linear-gradient(180deg, transparent, black 5%, black 95%, transparent);
  }
  body .story-stage.film-error { background: #03060a; }
  .film-notice { left: 7vw; bottom: 30px; }
  .modules a { font-size: .7rem; }
}
@media (max-height: 500px) {
  .rail { top: 72px; bottom: 16px; transform: none; justify-content: center; overflow-y: auto; }
  .rail button { flex: 1 0 24px; min-height: 24px; max-height: 36px; padding-block: 2px; }
}
@media (prefers-reduced-motion: reduce) {
  .inquire-shortcut { transition: none; }
}
