/* ==========================================================================
   Homepage intro — short splash, no asset blocking
   ========================================================================== */

.page-intro {
  position: fixed;
  inset: 0;
  z-index: 10000;
  overflow: hidden;
}

.page-intro__bg {
  position: absolute;
  inset: 0;
  background: #100D0B url("/images/intro-splash-bg.jpg?v=local-1785145239561") center center / cover no-repeat;
  filter: grayscale(100%) brightness(0.26) contrast(1.08);
  transform: scale(1.05);
}

.page-intro__veil {
  position: absolute;
  inset: 0;
  background: #100D0B;
  opacity: 1;
}

.page-intro.is-ready .page-intro__veil {
  animation: intro-veil-out 0.55s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

.page-intro__logo {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

.page-intro__svg {
  width: min(42vw, 11.5rem);
  height: auto;
  overflow: visible;
  opacity: 0;
  transform: scale(0.96);
}

.page-intro__path {
  fill: #fff;
}

.page-intro.is-ready .page-intro__svg {
  animation: intro-logo-in 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.18s forwards;
}

.page-intro.is-exiting {
  animation: intro-slide-up 0.5s cubic-bezier(0.65, 0, 0.35, 1) forwards;
  pointer-events: none;
}

body.page-intro-active {
  overflow: hidden;
}

@keyframes intro-veil-out {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

@keyframes intro-logo-in {
  from {
    opacity: 0;
    transform: scale(0.96);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes intro-slide-up {
  from {
    transform: translateY(0);
  }

  to {
    transform: translateY(-100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-intro,
  .page-intro__veil,
  .page-intro__svg,
  .page-intro.is-exiting {
    animation: none !important;
    transition: none !important;
  }

  .page-intro {
    display: none;
  }

  body.page-intro-active:not(.hero-reveal-active) .hero-reveal--header,
  body.page-intro-active:not(.hero-reveal-active) .hero-reveal--up {
    opacity: 1;
    transform: none;
  }
}

/* ==========================================================================
   Hero entrance — staggered after intro slide-up
   ========================================================================== */

body.page-intro-active:not(.hero-reveal-active) .hero-reveal--header {
  opacity: 0;
}

body.page-intro-active:not(.hero-reveal-active) .hero-reveal--up {
  opacity: 0;
  transform: translateY(1.85rem);
}

body.page-intro-active:not(.hero-reveal-active) .hero__highlight-bg {
  animation: none;
  transform: translateY(calc(-50% - 0.06em)) scaleX(0);
}

body.hero-reveal-active .hero-reveal--header:not(.is-header-scroll-ready) {
  animation: hero-header-enter 0.82s cubic-bezier(0.22, 1, 0.36, 1) 0s both;
}

.site-header.is-header-scroll-ready {
  opacity: 1;
}

body.hero-reveal-active .hero-reveal--title-1 {
  animation: hero-enter-up 0.78s cubic-bezier(0.22, 1, 0.36, 1) 0.08s both;
}

body.hero-reveal-active .hero-reveal--title-2 {
  animation: hero-enter-up 0.78s cubic-bezier(0.22, 1, 0.36, 1) 0.16s both;
}

body.hero-reveal-active .hero-reveal--title-3 {
  animation: hero-enter-up 0.78s cubic-bezier(0.22, 1, 0.36, 1) 0.24s both;
}

body.hero-reveal-active .hero-reveal--subtitle {
  animation: hero-enter-up 0.78s cubic-bezier(0.22, 1, 0.36, 1) 0.32s both;
}

body.hero-reveal-active .hero-reveal--cta {
  animation: hero-enter-up 0.78s cubic-bezier(0.22, 1, 0.36, 1) 0.4s both;
}

body.hero-reveal-active .hero-reveal--proof-text {
  animation: hero-enter-up 0.78s cubic-bezier(0.22, 1, 0.36, 1) 0.48s both;
}

body.hero-reveal-active .hero-reveal--proof-avatars {
  animation: hero-enter-up 0.78s cubic-bezier(0.22, 1, 0.36, 1) 0.56s both;
}

body.hero-reveal-active .hero__title-line--1 .hero__highlight-bg {
  animation: hero-highlight-reveal 0.85s cubic-bezier(0.25, 0.1, 0.25, 1) 0.14s both;
}

@keyframes hero-header-enter {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes hero-enter-up {
  from {
    opacity: 0;
    transform: translateY(1.85rem);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.hero-reveal-active .hero-reveal--header,
  body.hero-reveal-active .hero-reveal--up,
  body.hero-reveal-active .hero__title-line--1 .hero__highlight-bg {
    animation: none !important;
    opacity: 1;
    transform: none;
  }

  body.hero-reveal-active .hero__title-line--1 .hero__highlight-bg {
    transform: translateY(calc(-50% - 0.06em)) scaleX(1);
  }
}
