/* Deliberately separate from the complete site's stylesheet. */
/* Intrinsic metrics for end cards: Safari need not implement the font-metric
   overrides used by the scene stylesheet. Keep the existing face name so the
   already-approved mobile typography continues to use exactly the same face. */
@font-face {
  font-family: "Evolve Mobile Card";
  src: url("../assets/fonts/anton-latin-v27.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: block;
}
html { background: #000; scroll-behavior: auto; scrollbar-gutter: auto; scrollbar-width: none; overscroll-behavior-y: none; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
html::-webkit-scrollbar { display: none; }
body[data-version="prelaunch"] {
  --prelaunch-safe-top: env(safe-area-inset-top, 0px);
  --prelaunch-safe-right: env(safe-area-inset-right, 0px);
  --prelaunch-safe-bottom: env(safe-area-inset-bottom, 0px);
  --prelaunch-safe-left: env(safe-area-inset-left, 0px);
  background: #000; overscroll-behavior-y: none;
  -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
}
.prelaunch-header .header-logo { grid-column: 2; grid-row: 1; }
.prelaunch-header { mix-blend-mode: normal; }
.prelaunch-wordmark { display: block; width: 100%; height: 100%; color: var(--scene-ivory); }
.prelaunch-sound-hint {
  grid-column: 1; grid-row: 1; justify-self: start;
  border: 0; padding: 8px 0; margin: 0; min-height: 48px;
  background: none; color: var(--scene-ivory); text-align: left;
  cursor: pointer; -webkit-tap-highlight-color: transparent;
  transition: opacity 420ms ease, transform 600ms cubic-bezier(.16,1,.3,1), visibility 0s;
}
.prelaunch-sound-hint[hidden] { display: none; }
.prelaunch-sound-hint__inner, .prelaunch-cue-copy { display: grid; gap: 7px; }
.prelaunch-hint-kicker {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: .75rem; line-height: 1.2; font-weight: 500;
  letter-spacing: .1em; text-transform: uppercase; color: var(--scene-mint);
}
.prelaunch-hint-display {
  font-family: var(--scene-display); font-size: 1.5rem; line-height: 1;
  font-weight: 400; font-synthesis: none; letter-spacing: .015em; text-transform: uppercase;
}
.prelaunch-sound-hint .prelaunch-hint-display { transition: color 250ms ease; }
.prelaunch-sound-hint:hover .prelaunch-hint-display { color: var(--scene-mint); }
.prelaunch-sound-hint:focus-visible { outline: 1px solid var(--scene-mint); outline-offset: 8px; }
.prelaunch-sound-hint[data-state="dismissed"] {
  opacity: 0; transform: translateY(-6px); pointer-events: none; visibility: hidden;
  transition: opacity 420ms ease, transform 600ms cubic-bezier(.16,1,.3,1), visibility 0s 420ms;
}
.prelaunch-tap-label { display: none; }
#prelaunch-track { min-height: 100svh; }
.prelaunch-stage { position: fixed; inset: 0; height: 100vh; height: 100svh; isolation: isolate; overflow: hidden; background: #000; }
.prelaunch-canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; pointer-events: none; }
.prelaunch-canvas { z-index: 0; }
.prelaunch-decoder, .prelaunch-opening { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.prelaunch-static { position: fixed; inset: 0; z-index: 50; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 40px; background: #000; color: #f6f2e7; font-family: var(--scene-display); font-size: clamp(24px,5vw,90px); }
.is-prelaunch-opening .prelaunch-header,
.is-prelaunch-opening .hero-film__titles,
.is-prelaunch-opening .hero-film__cue { visibility: hidden; opacity: 0; }
html.is-prelaunch-opening, body.is-prelaunch-opening { overflow: hidden; }
.prelaunch-stage .hero-film__titles { display: none; }
.prelaunch-enhanced .prelaunch-stage .hero-film__titles { display: block; }
.prelaunch-shade { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, transparent 48%, #0003 70%, #000b); opacity: var(--hero-caption-shade, 0); }
.prelaunch-end-card { position: absolute; z-index: 4; top: 55%; left: 50%; transform: translate(-50%, -50%); width: 100%; padding-inline: max(18px, env(safe-area-inset-left)); text-align: center; color: #f6f2e7; }
.prelaunch-launch { margin: 0; font-family: "Evolve Mobile Card", Impact, "Arial Narrow", sans-serif; font-weight: 400; line-height: 1; letter-spacing: 0; text-transform: uppercase; font-synthesis: none; }
.launch-line { display: block; overflow: hidden; height: .876em; padding-bottom: .025em; box-sizing: content-box; }
/* Anton's native 2409/-674 metrics (2048 UPM) put a 1em line's baseline at
   .923584em. This offset keeps the approved .868em ink baseline without the
   ascent/descent overrides Safari ignores; box sizes and reveal masks stay
   unchanged. The mobile rule below still owns its intrinsic, unshifted layout. */
.launch-line > span { display: block; transform: translateY(-.0556em) scaleX(var(--launch-squeeze)); transform-origin: center top; }
.launch-line--lead { --launch-squeeze: .82; font-size: min(6.35vw, 11.5svh); margin-bottom: min(.4vw, .72svh); }
.launch-line--main { --launch-squeeze: .83; font-size: min(19.5vw, 35.3svh); }
.prelaunch-contact { top: 83%; }
.prelaunch-email { display: inline-block; font-family: var(--scene-display); font-size: min(4.9vw, 8.9svh); line-height: 1.15; letter-spacing: -.025em; text-transform: uppercase; color: #f6f2e7; }
.prelaunch-email > span { display: inline-block; }
.prelaunch-email:focus-visible { outline: 1px solid #aff5f4; outline-offset: 14px; }
.prelaunch-email::after { content: ""; display: block; height: 1px; background: #aff5f4; transform: scaleX(0); transform-origin: left; transition: transform 450ms cubic-bezier(.16,1,.3,1); }
.prelaunch-email:hover::after, .prelaunch-email:focus-visible::after { transform: scaleX(1); }
/* Absolute placement keeps the approved email baseline unchanged. */
.prelaunch-socials { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: clamp(18px, 3svh, 32px); display: flex; align-items: center; gap: clamp(16px, 2vw, 28px); }
.prelaunch-social-item { display: block; }
.prelaunch-social-link { display: grid; place-items: center; width: 48px; height: 48px; color: var(--scene-ivory); border-radius: 50%; -webkit-tap-highlight-color: transparent; transition: color 220ms ease, background-color 220ms ease; }
.prelaunch-social-link svg { display: block; width: 28px; height: 28px; transition: transform 350ms cubic-bezier(.16,1,.3,1); }
.prelaunch-social-link[data-social="x"] svg { width: 25px; height: 25px; }
.prelaunch-social-link:focus-visible { outline: 1px solid var(--scene-mint); outline-offset: 3px; color: var(--scene-mint); }
.prelaunch-social-link[aria-disabled="true"] { pointer-events: none; }
@media (hover: hover) {
  .prelaunch-social-link[href]:hover { color: var(--scene-mint); background: rgb(175 245 244 / 7%); }
  .prelaunch-social-link[href]:hover svg { transform: translateY(-2px); }
}
.prelaunch-enhanced .prelaunch-end-card { visibility: hidden; pointer-events: none; }
.prelaunch-enhanced .prelaunch-contact { top: 51%; }
.prelaunch-enhanced .prelaunch-signature { top: 50%; color: var(--scene-ivory); pointer-events: none; }
.prelaunch-signature__mark { width: clamp(220px, 34vw, 540px); max-width: min(76vw, 70svh); margin-inline: auto; }
.prelaunch-signature__mark svg { display: block; width: 100%; height: auto; }
.prelaunch-stage .hero-film__cue { display: none; }
.prelaunch-enhanced .hero-film__cue {
  display: flex; left: auto; right: max(4.5vw, env(safe-area-inset-right));
  bottom: max(9.06svh, calc(env(safe-area-inset-bottom) + 42px));
  transform: none; color: var(--scene-ivory); white-space: nowrap; pointer-events: none;
  transition: opacity 420ms ease, translate 600ms cubic-bezier(.16,1,.3,1), visibility 0s;
}
.prelaunch-stage .hero-entry-cue { gap: 22px; align-items: center; }
.prelaunch-cue-copy .prelaunch-hint-display { font-size: 1.75rem; }
.prelaunch-cue-arrow { flex: none; color: var(--scene-mint); animation: prelaunch-scroll-nudge 2600ms cubic-bezier(.45,0,.25,1) infinite; }
.prelaunch-boot .prelaunch-cue-arrow,
.is-prelaunch-opening .prelaunch-cue-arrow,
.hero-film__cue[data-dismissed="true"] .prelaunch-cue-arrow { animation-play-state: paused; }
.prelaunch-enhanced .hero-film__cue[data-dismissed="true"] {
  translate: 0 7px; visibility: hidden;
  transition: opacity 420ms ease, translate 600ms cubic-bezier(.16,1,.3,1), visibility 0s 420ms;
}
@keyframes prelaunch-scroll-nudge {
  0%, 100% { transform: translateY(-3px); opacity: .65; }
  55% { transform: translateY(5px); opacity: 1; }
}
.prelaunch-recovery { position: absolute; z-index: 20; bottom: 28px; left: 24px; right: 24px; padding: 12px; text-align: center; font-size: 12px; background: #000d; }
.prelaunch-recovery a { text-decoration: underline; text-underline-offset: 4px; }
.prelaunch-recovery[hidden] { display: none; }
.prelaunch-skip { position: fixed; top: 16px; left: 16px; z-index: 2000; transform: translateY(-200%); padding: 12px; background: #000; color: #f6f2e7; }
.prelaunch-skip:focus-visible { transform: none; }
audio[data-prelaunch-sound] { display: none; }
@media (max-width: 900px), (any-pointer: coarse) {
  .site-header.prelaunch-header {
    padding-top: var(--prelaunch-safe-top);
    padding-left: max(18px, var(--prelaunch-safe-left));
    padding-right: max(18px, var(--prelaunch-safe-right));
    height: calc(72px + var(--prelaunch-safe-top));
  }
  .prelaunch-stage .hero-caption,
  .prelaunch-stage [data-hero-caption="machine"] {
    left: max(18px, var(--prelaunch-safe-left));
    right: max(18px, var(--prelaunch-safe-right));
  }
  .prelaunch-end-card {
    padding-left: max(18px, var(--prelaunch-safe-left));
    padding-right: max(18px, var(--prelaunch-safe-right));
  }
  .prelaunch-enhanced .prelaunch-end-card {
    /* Center the complete composition inside the visible safe viewport, not
       just the email baseline. Toolbar resizing does not move the film clock. */
    top: calc((var(--prelaunch-ui-height, 100svh) + var(--prelaunch-safe-top) - var(--prelaunch-safe-bottom)) / 2);
    left: max(18px, var(--prelaunch-safe-left));
    right: max(18px, var(--prelaunch-safe-right));
    width: auto;
    padding: 0;
    transform: translateY(-50%);
  }
  .prelaunch-enhanced .prelaunch-contact {
    display: flex; flex-direction: column; align-items: center;
    gap: clamp(10px, 1.5svh, 14px);
  }
  .prelaunch-enhanced .prelaunch-socials {
    position: static; transform: none; margin: 0;
    justify-content: center; flex-wrap: nowrap;
  }
  .prelaunch-launch, .prelaunch-email { font-family: "Evolve Mobile Card", Impact, "Arial Narrow", sans-serif; }
  .prelaunch-launch { line-height: 1.18; }
  .launch-line { height: auto; padding: 0; overflow: visible; }
  .launch-line > span { transform: scaleX(var(--launch-squeeze)); }
  .launch-line--lead { margin-bottom: -.46em; }
  .prelaunch-email {
    position: relative; min-height: 44px; display: inline-flex; align-items: center;
    justify-content: center; max-width: 100%; white-space: nowrap; line-height: 1.35;
  }
  .prelaunch-email::after { position: absolute; bottom: 0; left: 0; right: 0; }
  /* Enlarge the real anchor, not just its text. Negative outer margins keep
     the approved email baseline and the nearby social row in the same place:
     max(60px, line-height + 16px) - 16px = max(44px, line-height). */
  .prelaunch-enhanced .prelaunch-email {
    min-height: 60px; padding: 8px 12px; margin-block: -8px;
    touch-action: manipulation;
  }
  .prelaunch-enhanced .prelaunch-email::after { bottom: 8px; left: 12px; right: 12px; }
}
@media (max-width: 900px) and (max-aspect-ratio: 1/1) {
  .launch-line--lead { font-size: 12.8vw; margin-bottom: -.46em; }
  .launch-line--main { font-size: 39.3vw; }
  .prelaunch-email { font-size: 8.7vw; }
  .prelaunch-end-card { top: 51%; }
  .prelaunch-contact { top: 76%; }
  .prelaunch-stage .hero-caption,
  .prelaunch-stage [data-hero-caption="machine"] { bottom: max(10svh, calc(var(--prelaunch-safe-bottom) + 70px)); }
  .prelaunch-enhanced .hero-film__cue { right: max(22px, var(--prelaunch-safe-right)); bottom: max(24px, calc(var(--prelaunch-safe-bottom) + 16px)); }
  .prelaunch-stage .hero-entry-cue { gap: 15px; }
  .prelaunch-cue-copy { display: flex; align-items: baseline; gap: 8px; }
  .prelaunch-cue-copy .prelaunch-hint-display { font-size: 1.375rem; }
  .prelaunch-cue-arrow { width: 16px; height: 36px; }
  .prelaunch-sound-hint__inner { gap: 5px; }
  .prelaunch-sound-hint .prelaunch-hint-display { font-size: 1.25rem; }
}
@media (max-height: 500px) and (min-aspect-ratio: 1/1) {
  body:not(.prelaunch-enhanced) .prelaunch-end-card:not(.prelaunch-contact) { top: 38%; }
  body:not(.prelaunch-enhanced) .prelaunch-contact { top: 68%; }
  .prelaunch-stage .hero-caption,
  .prelaunch-stage [data-hero-caption="machine"] { bottom: max(54px, calc(var(--prelaunch-safe-bottom) + 38px)); }
  .prelaunch-enhanced .hero-film__cue {
    right: max(24px, calc(var(--prelaunch-safe-right) + 12px));
    bottom: max(30px, calc(var(--prelaunch-safe-bottom) + 16px));
  }
  .prelaunch-stage .hero-entry-cue { gap: 14px; }
  .prelaunch-cue-arrow { height: 36px; }
}
@media (pointer: coarse) {
  .prelaunch-click-label { display: none; }
  .prelaunch-tap-label { display: inline; }
}
@media (prefers-reduced-motion: reduce) {
  .prelaunch-email::after, .prelaunch-social-link, .prelaunch-social-link svg { transition: none; }
  .prelaunch-social-link[href]:hover svg { transform: none; }
  .prelaunch-cue-arrow { animation: none; }
  .prelaunch-sound-hint, .prelaunch-sound-hint[data-state="dismissed"],
  .prelaunch-enhanced .hero-film__cue, .prelaunch-enhanced .hero-film__cue[data-dismissed="true"] { transition: none; }
}
