/* 9. MOUVEMENT — révélations au défilement ---------------------------- */
.js .rv { opacity: 0; transform: translateY(var(--a3)); transition: opacity var(--t3) var(--ease), transform var(--t3) var(--ease); transition-delay: calc(var(--d, 0) * var(--stg)); }
.js .rv.l { transform: translateX(calc(var(--a3) * -1)); }
.js .rv.sc { transform: scale(.94); }
.js .rv.mask { opacity: 1; transform: none; clip-path: inset(0 0 100% 0); transition: clip-path var(--t3) var(--ease); transition-delay: calc(var(--d, 0) * var(--stg)); }
.js .rv.is-in { opacity: 1; transform: none; }
.js .rv.mask.is-in { clip-path: inset(0 0 0 0); }
/* sans JavaScript, rien n’est masqué : les révélations ne s’appliquent qu’avec la classe .js posée sur <html> */
[data-par] { will-change: transform; }

/* 10. RÉDUCTION DES ANIMATIONS ---------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  html.smooth-native { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .js .rv, .js .rv.mask { opacity: 1; transform: none; clip-path: none; }
  .js .hero h1 .ln > span { transform: none; }
  .ticker-t { animation: none; flex-wrap: wrap; width: auto; }
  .ticker-t a[aria-hidden="true"] { display: none; }
  .ticker-t a { white-space: normal; }
  .stair { height: auto; } .stair-pin { position: static; height: auto; padding-block: 80px; }
  .stair-txt { min-height: 0; display: grid; gap: 40px; } .stair-step { position: static; opacity: 1; transform: none; }
  .stair-prog { display: none; }
  .method { height: auto; } .method-pin { position: static; height: auto; padding-block: 64px; } .method-track { flex-wrap: wrap; transform: none !important; } .method-line { display: none; }
  .js .pas.draw path.st { stroke-dashoffset: 0; }
}
html.rm.js .rv, html.rm.js .rv.mask { opacity: 1; transform: none; clip-path: none; }
@media (max-width: 1100px) { .mega { display: none; } }

input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
@media (max-width: 860px) { .fmt[aria-expanded="false"] .k { display: none; } }
@media (max-width: 640px) { .toasts { bottom: auto; top: 12px; } }

/* tableau de jetons (design system) */
.kv-t { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.kv-t th { text-align: left; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--tx2); font-weight: 800; padding: 0 12px 10px 0; border-bottom: 1px solid var(--ln); }
.kv-t td { padding: 10px 12px 10px 0; border-bottom: 1px solid var(--ln); vertical-align: top; }
.in:disabled { background: var(--n100); color: var(--n500); border-color: var(--n200); cursor: not-allowed; }

