html.motion-ready [data-reveal] {
  opacity: 0;
  translate: 0 18px;
  filter: blur(4px);
  transition: opacity .82s var(--ease), translate .82s var(--ease), filter .82s var(--ease);
  transition-delay: var(--reveal-delay, 0ms);
}

html.motion-ready [data-reveal="left"] { translate: -24px 0; }
html.motion-ready [data-reveal="right"] { translate: 24px 0; }
html.motion-ready [data-reveal="zoom"] { translate: 0 16px; scale: .965; }
html.motion-ready [data-reveal].is-in-view { opacity: 1; translate: 0 0; scale: 1; filter: blur(0); }

html.motion-ready .service-hero-visual[data-reveal],
html.motion-ready .example-photo[data-reveal],
html.motion-ready .creation-sample[data-reveal] {
  clip-path: inset(5% 0 0 round 20px);
  transition: opacity .82s var(--ease), translate .82s var(--ease), filter .82s var(--ease), clip-path 1.1s var(--ease);
}
html.motion-ready .service-hero-visual[data-reveal].is-in-view,
html.motion-ready .example-photo[data-reveal].is-in-view,
html.motion-ready .creation-sample[data-reveal].is-in-view { clip-path: inset(0 0 0 round 20px); }

/* Photos : dévoilement doux, puis zoom lent qui se pose */
html.motion-ready .photo-band[data-reveal] {
  clip-path: inset(9% 3% 0 round 28px);
  transition: opacity 1s var(--ease), translate 1s var(--ease), filter 1s var(--ease), clip-path 1.4s var(--ease);
}
html.motion-ready .photo-band[data-reveal] img { --photo-scale: 1.14; }
html.motion-ready .photo-band[data-reveal].is-in-view { clip-path: inset(0 0 0 round 28px); }
html.motion-ready .photo-band[data-reveal].is-in-view img { --photo-scale: 1; }
html.motion-ready .photo-band[data-reveal].is-in-view:hover img { --photo-scale: 1.035; }
html.motion-ready .photo-band figcaption { opacity: 0; translate: 0 10px; transition: opacity .8s var(--ease) .7s, translate .8s var(--ease) .7s; }
html.motion-ready .photo-band.is-in-view figcaption { opacity: 1; translate: 0 0; }

.nav-links > a, .nav-dropdown > button, .creation-row, .audience-feature, .audience-card, .price-card, .solution-card, .faq-item summary, .contact-form input, .contact-form select, .contact-form textarea {
  transition-timing-function: var(--ease);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  html.motion-ready [data-reveal] { opacity: 1 !important; translate: none !important; scale: 1 !important; filter: none !important; clip-path: none !important; }
  html.motion-ready .photo-band img, html.motion-ready .photo-band figcaption { --photo-scale: 1 !important; opacity: 1 !important; translate: none !important; }
}
