/* RP Helper homepage: slow ambient color handoff and soft section reveals. */
@property --home-section-color {
  syntax: '<color>';
  inherits: true;
  initial-value: rgba(132, 116, 255, .19);
}
@property --home-section-x {
  syntax: '<percentage>';
  inherits: true;
  initial-value: 18%;
}
@property --home-section-y {
  syntax: '<percentage>';
  inherits: true;
  initial-value: 28%;
}
body.is-home .home-transition-atmosphere {
  position: fixed; inset: -18vh -14vw; z-index: 0; pointer-events: none; user-select: none;
  opacity: .82; filter: blur(18px); transform: translate3d(0,0,0);
  background:
    radial-gradient(ellipse at var(--home-section-x, 18%) var(--home-section-y, 28%), var(--home-section-color, rgba(132,116,255,.19)), transparent 38%),
    radial-gradient(ellipse at 82% 78%, rgba(72,145,255,.075), transparent 42%),
    radial-gradient(ellipse at 48% 8%, rgba(255,255,255,.025), transparent 34%);
  transition: --home-section-color 1.65s cubic-bezier(.2,.7,.2,1), --home-section-x 1.45s cubic-bezier(.2,.7,.2,1), --home-section-y 1.45s cubic-bezier(.2,.7,.2,1), opacity 1.1s ease, filter 1.4s ease;
  will-change: background;
}
body.is-home main { position: relative; z-index: 1; }
body.is-home main > section.snap-page {
  position: relative;
  transition: background-color 1.15s cubic-bezier(.2,.7,.2,1), border-color 1.15s ease;
}
body.is-home main > section.snap-page .section-heading .eyebrow,
body.is-home main > section.snap-page .eyebrow {
  transition: color .9s ease, letter-spacing .9s cubic-bezier(.2,.7,.2,1);
}
body.is-home main > section.snap-page.home-section-active .section-heading .eyebrow {
  letter-spacing: .17em;
}
body.is-home.home-motion-enabled .home-reveal {
  transition:
    opacity .42s cubic-bezier(.22,.72,.24,1),
    transform .48s cubic-bezier(.22,.72,.24,1) !important;
}
body.is-home.home-motion-enabled .home-reveal:not(.is-visible) {
  transform: translate3d(0, 14px, 0) !important;
  filter: none !important;
}
body.is-home.home-motion-enabled .home-reveal.is-visible {
  transform: translate3d(0,0,0) !important;
  filter: none !important;
}
body.is-home.home-motion-enabled .home-reveal.is-visible {
  transition-delay: var(--home-reveal-delay, 0ms) !important;
}
body.is-home.home-motion-enabled .benefit-card,
body.is-home.home-motion-enabled .journey-step,
body.is-home.home-motion-enabled .faction-card,
body.is-home.home-motion-enabled .product-feature-card {
  transition: transform .65s cubic-bezier(.16,1,.3,1), border-color .5s ease, box-shadow .65s ease, background .6s ease;
}
body.is-home.home-motion-enabled .benefit-card:hover,
body.is-home.home-motion-enabled .journey-step:hover,
body.is-home.home-motion-enabled .faction-card:hover {
  transform: translate3d(0,-6px,0) scale(1.008);
}
body.is-home .section-nav button { transition: background .5s ease, box-shadow .5s ease, transform .5s cubic-bezier(.16,1,.3,1); }
body.is-home .section-nav button[aria-current="true"] { transform: scale(1.08); }
body.is-home .scroll-cue { transition: opacity .7s ease, transform .8s cubic-bezier(.16,1,.3,1); }
body.is-home .scroll-cue:hover { transform: translate3d(0,5px,0); }

/* The custom eased section animator temporarily owns the scroll position. */
html:has(body.is-home.home-programmatic-scroll) {
  scroll-snap-type: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body.is-home .home-transition-atmosphere { display: none !important; }
  body.is-home main > section.snap-page,
  body.is-home main > section.snap-page *,
  body.is-home .section-nav button { transition-duration: .01ms !important; animation-duration: .01ms !important; }
  body.is-home.home-motion-enabled .home-reveal,
  body.is-home.home-motion-enabled .home-reveal:not(.is-visible),
  body.is-home.home-motion-enabled .home-reveal.is-visible { opacity: 1 !important; transform: none !important; filter: none !important; }
}
