/* Home Logo Launch header-flight reveal (2026-05-23 r60)
   Gives the logo enough readable time before a clear, stable header landing. */
html.home-launch-active body.home-page .home-logo-launch {
  overflow: hidden;
  background: transparent;
}

html.home-launch-active body.home-page .home-logo-launch::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(17, 17, 17, 0.035) 1px, transparent 1px) center / clamp(84px, 8vw, 128px) 100%,
    #fff;
  transform: translateY(0);
  will-change: transform;
}

html.home-launch-active.home-launch-running body.home-page .home-logo-launch::before {
  animation: hm-logo-launch-surface 3600ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

html.home-launch-active body.home-page .site-header,
html.home-launch-active body.home-page .home-hero {
  opacity: 1;
}

html.home-launch-active body.home-page .site-header .logo-mark {
  opacity: 0;
}

html.home-launch-done:not(.home-launch-skip) body.home-page .site-header,
html.home-launch-done:not(.home-launch-skip) body.home-page .home-hero {
  animation: none;
}

body.home-page .home-logo-launch__stage {
  z-index: 1;
  opacity: 0;
  transform: translate3d(0, 14px, 0) scale(0.96);
  will-change: transform, opacity;
}

html.home-launch-active.home-launch-running body.home-page .home-logo-launch__stage {
  animation: hm-logo-launch-stage 3600ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes hm-logo-launch-stage {
  0% {
    opacity: 0;
    transform: translate3d(0, 14px, 0) scale(0.96);
  }

  14%,
  42% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }

  80%,
  100% {
    opacity: 1;
    transform: translate3d(var(--hm-launch-target-x, 0px), var(--hm-launch-target-y, 0px), 0) scale(var(--hm-launch-target-scale, 1));
  }
}

@keyframes hm-logo-launch-surface {
  0%,
  42% {
    opacity: 1;
    transform: translateY(0);
  }

  80%,
  100% {
    opacity: 1;
    transform: translateY(-101%);
  }
}
