.motion-title-part {
  display: inline-block;
  max-inline-size: 100%;
  transform-origin: 50% 100%;
}

/* The original block-level italic retains its editorial line break. */
.cx-heading h3 em.motion-title-part { display: block; }

.home-page #contenu > section + section { position: relative; }

/* Short blends preserve the crisp editorial layout; the light belongs to the seam. */
.home-page #contenu > :where(.constellation, #realisations, .cta-band) {
  --bridge-out: 8px;
  --bridge-in: clamp(18px, 2vw, 28px);
  --seam-start: calc(var(--bridge-in) - 1px);
}

.home-page #contenu > .home-hero + .constellation {
  --bridge-out: 5px;
  --bridge-from: #141a11;
  --bridge-to: #171d16;
}

.home-page #contenu > .constellation + #realisations {
  --bridge-from: #151b15;
  --bridge-to: var(--paper);
}

.home-page #contenu > .complements + .cta-band {
  --bridge-from: #faf9f1;
  --bridge-to: var(--dark);
}

.home-page #contenu > :where(.constellation, #realisations, .cta-band)::before {
  content: '';
  position: absolute;
  inset: calc(-1 * var(--bridge-out)) 0 auto;
  height: calc(var(--bridge-out) + var(--bridge-in));
  background: linear-gradient(180deg, transparent, var(--bridge-from) 16%, var(--bridge-to) 84%, transparent);
  pointer-events: none;
}

.home-page #contenu > section + section::after {
  content: '';
  position: absolute;
  inset: var(--seam-start, 0px) var(--gutter) auto;
  height: 14px;
  background:
    linear-gradient(90deg, transparent, #70845191 9%, #c5a858b8 35%, #70845159 62%, transparent 96%) no-repeat top / 100% 1px,
    radial-gradient(ellipse at 35% 0%, #c5a8581c, transparent 65%);
  opacity: .7;
  transform-origin: 15% 0;
  pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
  :root:not([data-motion='reduced']) { scroll-behavior: smooth; }
  @supports (animation-timeline: view()) and (animation-range: entry 0% entry 100%) {
    :where(.home-page #contenu > section + section) { view-timeline-name: --section-flow; }
    .home-page .home-hero { view-timeline-name: --hero-flow; }
    :root:not([data-motion='reduced']) .home-page #contenu > section + section::after {
      animation: section-light-pass auto linear both;
      animation-timeline: --section-flow;
      animation-range: entry 0% entry 100%;
    }
    :root:not([data-motion='reduced']) .home-page .hero-background {
      animation: hero-scroll-depth auto linear both;
      animation-timeline: --hero-flow;
      animation-range: exit 0% exit 100%;
      transform-origin: 50% 100%;
    }
    @keyframes section-light-pass {
      0% { opacity: .12; transform: scaleX(.38); }
      65% { opacity: 1; }
      100% { opacity: .7; transform: scaleX(1); }
    }
    @keyframes hero-scroll-depth {
      from { translate: 0 0; scale: 1; }
      to { translate: 0 9%; scale: 1.025; }
    }
  }
}

@media (forced-colors: active) {
  .home-page #contenu > section + section::before,
  .home-page #contenu > section + section::after { content: none; }
}

:root[data-motion='reduced'],
:root[data-motion='reduced'] *,
:root[data-motion='reduced'] *::before,
:root[data-motion='reduced'] *::after {
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
}
