/* Homepage motion layer. Content remains visible until JavaScript opts in. */
.home-page.home-motion-ready .hero-portrait {
  animation: homePortraitSettle 1.15s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.home-page.home-motion-ready .hero-headline,
.home-page.home-motion-ready .hero-sub,
.home-page.home-motion-ready .hero-actions,
.home-page.home-motion-ready .hero-roles,
.home-page.home-motion-ready .hero-roles-mobile,
.home-page.home-motion-ready .hero-sig-mobile {
  animation: homeHeroRise 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.home-page.home-motion-ready .hero-scroll-indicator {
  animation: homeScrollIndicatorIn 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.home-page.home-motion-ready .hero-headline { animation-delay: 90ms; }
.home-page.home-motion-ready .hero-sub { animation-delay: 180ms; }
.home-page.home-motion-ready .hero-actions { animation-delay: 260ms; }
.home-page.home-motion-ready .hero-roles,
.home-page.home-motion-ready .hero-roles-mobile,
.home-page.home-motion-ready .hero-sig-mobile { animation-delay: 360ms; }
.home-page.home-motion-ready .hero-scroll-indicator { animation-delay: 520ms; }

@keyframes homeHeroRise {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes homePortraitSettle {
  from { opacity: 0; transform: scale(1.035); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes homeScrollIndicatorIn {
  from { opacity: 0; transform: translate(-50%, 12px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

.home-page .home-motion-item {
  opacity: 0;
  transform: translateY(26px);
  transition:
    opacity 0.72s ease var(--home-motion-delay, 0ms),
    transform 0.72s cubic-bezier(0.22, 1, 0.36, 1) var(--home-motion-delay, 0ms);
}

.home-page .home-motion-item.is-home-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Buttons get a small lift and a passing amber glint. */
.home-page .btn-primary,
.home-page .btn-outline {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.28s ease, box-shadow 0.28s ease, background 0.2s, color 0.2s, border-color 0.2s;
}

.home-page .btn-primary::before,
.home-page .btn-outline::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: -40% auto -40% -55%;
  width: 34%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.34), transparent);
  transform: skewX(-18deg);
  transition: left 0.58s ease;
}

.home-page .btn-primary:hover,
.home-page .btn-outline:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0,0,0,0.22);
}

.home-page .btn-primary:hover::before,
.home-page .btn-outline:hover::before { left: 125%; }

.home-page .btn-primary .arrow,
.home-page .btn-outline .arrow { transition: transform 0.25s ease, color 0.2s; }
.home-page .btn-primary:hover .arrow,
.home-page .btn-outline:hover .arrow { transform: translateX(3px); }

/* Section details respond just enough to reward exploration. */
.home-page .thinking-label .divider {
  transform-origin: left center;
  transition: width 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.home-page .thinking-label:hover .divider { width: 52px; }

.home-page .logo-img {
  transition:
    opacity 0.5s ease var(--home-motion-delay, 0ms),
    filter 0.35s ease,
    transform 0.3s ease;
}
.home-page .logo-img:hover {
  opacity: 0.9;
  filter: brightness(0) invert(1) drop-shadow(0 7px 12px rgba(245,166,35,0.16));
  transform: translateY(-3px);
}

.home-page .human-signal-qualities li {
  transition: color 0.25s ease, transform 0.25s ease;
}
.home-page .human-signal-qualities li:hover {
  color: #bc7410;
  transform: translateY(-2px);
}

.home-page .signal-step {
  transition: background 0.28s ease, padding-left 0.28s ease, padding-right 0.28s ease;
}
.home-page .signal-step:hover {
  background: rgba(245,166,35,0.055);
  padding-left: 10px;
  padding-right: 10px;
}
.home-page .signal-step-name { transition: color 0.25s ease; }
.home-page .signal-step:hover .signal-step-name { color: var(--amber); }

.home-page .about-img-wrap img {
  transform: scale(1.001);
  filter: saturate(0.82);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1), filter 0.65s ease;
}
.home-page .about-img-wrap:hover img {
  transform: scale(1.035);
  filter: saturate(1);
}

.home-page .wwm-item {
  position: relative;
  overflow: hidden;
  transition: background 0.25s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.home-page .wwm-item::after {
  content: '';
  position: absolute;
  right: 100%;
  bottom: 0;
  left: 0;
  height: 2px;
  background: var(--amber);
  transition: right 0.38s cubic-bezier(0.22, 1, 0.36, 1);
}
.home-page .wwm-item:hover { transform: translateY(-4px); }
.home-page .wwm-item:hover::after { right: 0; }

@media (prefers-reduced-motion: reduce) {
  .home-page *,
  .home-page *::before,
  .home-page *::after {
    animation: none !important;
    scroll-behavior: auto !important;
    transition: none !important;
  }

  .home-page .home-motion-item {
    opacity: 1 !important;
    transform: none !important;
  }
}
