/* ============================================
   MOTION — La Tarzonie
   Animations additives, desactivees si prefers-reduced-motion
   Tout est conditionne a html.mo (ajoute par un script inline)
   ============================================ */
.mo body { animation: moPage .6s var(--ease-soft) both; }
@keyframes moPage { from { opacity: 0; } to { opacity: 1; } }
.mo.mo-leave body { opacity: 0; transition: opacity .22s ease; animation: none; }

/* nav */
.mo nav { animation: moNav .9s var(--ease) .1s both; }
@keyframes moNav { from { transform: translateY(-100%); } to { transform: none; } }

/* hero : entree echelonnee */
.mo :is(.hero-tag,.page-hero-tag) { animation: fadeUp .9s var(--ease) .15s both; }
.mo :is(.hero-title,.page-hero-title) { animation: fadeUp 1s var(--ease) .3s both; }
.mo :is(.hero-desc,.page-hero-text) { animation: fadeUp 1s var(--ease) .5s both; }
.mo .hero-cta { animation: fadeUp 1s var(--ease) .65s both; }
.mo .hero-stats .stat { animation: fadeUp .9s var(--ease) both; }
.mo .hero-stats .stat:nth-child(1) { animation-delay: .8s; }
.mo .hero-stats .stat:nth-child(2) { animation-delay: .92s; }
.mo .hero-stats .stat:nth-child(3) { animation-delay: 1.04s; }
.mo .hero-title em, .mo .page-hero-title em { display: inline-block; animation: moEm 1.4s var(--ease) .9s both; }
@keyframes moEm { from { opacity: .2; letter-spacing: .12em; } to { opacity: 1; letter-spacing: normal; } }
.mo .hero-bg-img { animation: moKen 22s ease-out both; }
@keyframes moKen { from { scale: 1.12; } to { scale: 1; } }

/* revelation au scroll (elements ajoutes automatiquement par motion.js) */
.mo .mo-r {
  opacity: 0; transform: translateY(26px);
  transition: opacity .9s var(--ease) var(--mo-d,0s), transform .9s var(--ease) var(--mo-d,0s),
              translate .35s var(--ease), box-shadow .35s var(--ease), background-color .3s var(--ease),
              border-color .3s var(--ease), color .3s var(--ease);
}
.mo .mo-r.mo-in { opacity: 1; transform: none; }
.mo .section-divider.mo-r { opacity: 1; transform: scaleX(0); transform-origin: left; transition: transform 1.3s var(--ease) var(--mo-d,0s); }
.mo .section-divider.mo-r.mo-in { transform: scaleX(1); }
.mo .section-title.mo-r { transform: translateY(34px); }

/* survols */
.mo :is(.member-card,.value-item,.step-card,.mon-card,.stat-card,.support-card,.file-card,.stat-block).mo-r:hover { translate: 0 -4px; }
.mo :is(.member-card,.step-card,.mon-card,.stat-card,.support-card,.file-card).mo-r:hover { box-shadow: 0 18px 40px rgba(20,18,15,.08); }
.mo .btn-primary, .mo .nav-join, .mo .form-submit { position: relative; overflow: hidden; }
.mo :is(.btn-primary,.nav-join,.form-submit)::before {
  content: ''; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.28), transparent);
  transform: skewX(-18deg); transition: left .7s var(--ease); pointer-events: none;
}
.mo :is(.btn-primary,.nav-join,.form-submit):hover::before { left: 130%; }

/* barre de progression de lecture */
.mo-prog { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 101; background: var(--accent);
  transform: scaleX(0); transform-origin: left; pointer-events: none; }

@media (prefers-reduced-motion: reduce) {
  .mo *, .mo *::before, .mo *::after { animation: none !important; transition: none !important; }
  .mo .mo-r { opacity: 1 !important; transform: none !important; }
}
