/* launch.css — the LAUNCH STATE of turnme.app (launch-swap lane).
   Every rule is scoped under html[data-launch="1"]: the waitlist state
   renders byte-identical without it. launch.js builds the two seats
   (.launch-offer in the offer's place, .store-btn in the form's place).

   Beat 3's column in the launch state keeps the round-7 fixed steps:
   head (h2 → October-scale monument) → the offer's seat (eyebrow + line,
   the offer's own grammar) → 28 (the claim's step) → the button. The
   column stays centered by the round-8 3:2 spacers (.air-a / .air-b). */

/* the waitlist pieces retire */
html[data-launch="1"] .s4b .offer:not(.launch-offer),
html[data-launch="1"] .s4b .launch-sub,
html[data-launch="1"] .s4b .form-live,
html[data-launch="1"] .s4b .form-done,
html[data-launch="1"] .s4b .facts { display: none; }

/* the App Store button = the page's own button (.btn-slab: wine, wine-ink,
   sans 600 at --fs-nav, 52px, --r-card); an <a>, so it centers its label */
html[data-launch="1"] .s4b .store-btn {
  display: flex; align-items: center; justify-content: center;
  margin-top: 0; text-decoration: none; text-align: center;
  -webkit-tap-highlight-color: transparent;
}
html[data-launch="1"] .s4b .store-btn:active { opacity: 0.85; }
html[data-launch="1"] .s4b .store-btn:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }

/* the fill variant (html[data-launch-fill="1"]): one line under the
   button in the consent paragraph's register (.facts: 14.5 / 1.5,
   text-2, 14 below the button; 13.5 / 1.45, 12 in the compact tier) */
html[data-launch="1"] .s4b .launch-fill { display: none; }
html[data-launch="1"][data-launch-fill="1"] .s4b .launch-fill {
  display: block; margin: 14px 0 0; max-width: 34ch;
  font-size: 14.5px; line-height: 1.5; color: var(--text-2);
}
@media (max-height: 760px) {
  html[data-launch="1"][data-launch-fill="1"] .s4b .launch-fill { margin-top: 12px; font-size: 13.5px; line-height: 1.45; }
}
