/* AUBIN GROUP — animations (texte, images, cartes, transitions). Pilotées depuis l'administration (Appli, chat & langue → Animations). */
html[data-mx]{--mx-dist:24px;--mx-dur:.7s;--mx-st:.08s;--mx-ease:cubic-bezier(.2,.7,.2,1)}
html[data-mx="soft"]{--mx-dist:12px;--mx-dur:.5s;--mx-st:.05s}
html[data-mx="lively"]{--mx-dist:44px;--mx-dur:.95s;--mx-st:.11s}
/* Éléments en attente d'apparition (la classe est posée par le script : sans JavaScript, tout reste visible) */
.mx-h{opacity:1;transform:translate3d(0,calc(var(--mx-dist)*.5),0);transition:transform var(--mx-dur) var(--mx-ease),clip-path calc(var(--mx-dur)*1.3) var(--mx-ease);transition-delay:var(--d,0s);will-change:opacity,transform}
.mx-h.mx-in{opacity:1;transform:none}
.mx-h.mx-l{transform:translate3d(calc(var(--mx-dist)*-1.4),0,0)}
.mx-h.mx-r{transform:translate3d(calc(var(--mx-dist)*1.4),0,0)}
.mx-h.mx-z{transform:scale(.93)}
.mx-h.mx-in.mx-l,.mx-h.mx-in.mx-r,.mx-h.mx-in.mx-z{transform:none}
/* Images : révélation par rideau + léger zoom */
img.mx-h.mx-rev{opacity:1;clip-path:inset(0 0 100% 0);transform:scale(1.07)}
img.mx-h.mx-rev.mx-in{clip-path:inset(0 0 0 0);transform:none}
img.mx-h.mx-zm{transform:scale(1.1)}
img.mx-h.mx-zm.mx-in{transform:none}
/* Titres : mot par mot */
.mx-words .mx-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.mx-words .mx-w>span{display:inline-block;transform:translateY(112%);transition:transform calc(var(--mx-dur)*1.1) var(--mx-ease);transition-delay:calc(var(--i,0)*45ms + var(--d,0s))}
.mx-words.mx-in .mx-w>span{transform:none}
.mx-words.mx-h{opacity:1;transform:none}
/* Transition de page */
@keyframes mxPage{from{opacity:0}to{opacity:1}}
html[data-mx-trans] body{animation:mxPage .45s var(--mx-ease) both}
body.mx-leave{opacity:0;transition:opacity .22s ease}
/* Barre de progression de lecture (couleur AUBIN) */
#mxBar{position:fixed;top:0;left:0;right:0;height:3px;z-index:100000;background:linear-gradient(90deg,#072C4A,#b82228);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
/* Ondulation des boutons */
.mx-rip{position:relative;overflow:hidden}
.mx-rip .mx-rp{position:absolute;border-radius:50%;background:rgba(255,255,255,.38);transform:scale(0);animation:mxRp .6s ease-out forwards;pointer-events:none}
@keyframes mxRp{to{transform:scale(1);opacity:0}}
/* Survol : cartes et images (additif) */
html[data-mx] main .card:hover,html[data-mx] .tile:hover{transform:translateY(-4px)}
@media(prefers-reduced-motion:reduce){.mx-h,.mx-words .mx-w>span{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}html[data-mx-trans] body{animation:none}#mxBar{display:none}}

/* Aucun texte ne disparaît : seuls les images et les cartes glissent doucement */
.mx-h,.js .rv{opacity:1!important}
@media (hover:none){.rtile-info em{opacity:.9!important;max-height:80px!important}.rtile-go{opacity:1!important;transform:none!important}}
