/* --- mouvement (Kestrel motion v1) : n'agit que sous html.mo --- */
.mo{--e1:cubic-bezier(.22,.61,.36,1);--e2:cubic-bezier(.16,1,.3,1);--ei:cubic-bezier(.77,0,.18,1);--d:.9s;--y:26px}
.mo[data-mo=crisp]{--d:.75s;--y:34px;--e1:cubic-bezier(.16,1,.3,1);--ei:cubic-bezier(.83,0,.17,1)}
.mo[data-mo=soft]{--d:.8s;--y:22px;--e1:cubic-bezier(.22,1,.36,1)}
.mo[data-mo=gentle]{--d:1.05s;--y:18px;--e1:cubic-bezier(.25,1,.5,1)}
.mo[data-mo=pop]{--d:.75s;--y:40px;--e1:cubic-bezier(.34,1.45,.64,1)}
.mo[data-mo=editorial]{--d:1s;--y:24px}
@media (max-width:760px){.mo{--y:18px}}
/* blocs */
.mo .mo-u:not(.mo-end){opacity:0;transform:translate3d(0,var(--y),0)}
.mo[data-mo=gentle] .mo-u:not(.mo-end){filter:blur(8px)}
.mo[data-mo=pop] .mo-u:not(.mo-end){transform:translate3d(0,var(--y),0) scale(.94) rotate(-1.2deg)}
.mo .mo-u.in:not(.mo-end){opacity:1;transform:none;filter:none;
  transition:opacity var(--d) var(--e1) var(--dl,0s),transform var(--d) var(--e1) var(--dl,0s),filter var(--d) var(--e1) var(--dl,0s)}
/* titres en mots masques */
.mo .mo-w .mw{display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .08em .14em .02em;margin:0 -.08em -.14em -.02em}
.mo .mo-w .mi{display:inline-block;transform:translate3d(0,112%,0) rotate(3deg);transform-origin:0 100%}
.mo[data-mo=soft] .mo-w .mi,.mo[data-mo=gentle] .mo-w .mi{transform:translate3d(0,105%,0)}
.mo .mo-w.in .mi{transform:none;transition:transform calc(var(--d) * 1.15) var(--e1) calc(var(--dl,0s) + var(--wi) * 55ms)}
.mo[data-mo=pop] .mo-w.in .mi{transition-timing-function:cubic-bezier(.34,1.4,.64,1)}
.mo .mo-w.mo-end .mw{overflow:visible}
.mo .mo-w.mo-end .mi{transform:none;transition:none}
/* images devoilees */
.mo .mo-img{transition:clip-path 1.2s var(--ei) var(--dl,0s),scale 1.8s var(--e1) var(--dl,0s),opacity 1s var(--e1) var(--dl,0s)}
.mo .mo-img.mo-up:not(.in){clip-path:inset(100% 0 0 0);scale:1.14}
.mo .mo-img.mo-left:not(.in){clip-path:inset(0 100% 0 0);scale:1.1}
.mo .mo-img.mo-fade:not(.in){opacity:0;scale:1.06}
.mo .mo-img.mo-round:not(.in){clip-path:inset(12% 12% 12% 12% round 48px);opacity:0;scale:1.08}
.mo .mo-img.mo-pop:not(.in){clip-path:circle(0% at 50% 60%);scale:1.15}
.mo .mo-img.in{clip-path:inset(0 0 0 0 round 0);scale:1}
.mo .mo-img.mo-pop.in{clip-path:circle(75% at 50% 50%)}
.mo .mo-img.mo-end.mo-end{clip-path:none;transition:scale 1.2s var(--e1)}
/* accueil */
.mo .mo-hi{transition:clip-path 1.35s var(--ei),scale 2.4s var(--e1),opacity 1.4s var(--e1)}
.mo:not(.mo-go) .mo-hi.mo-h-up{clip-path:inset(0 0 100% 0);scale:1.16}
.mo:not(.mo-go) .mo-hi.mo-h-left{clip-path:inset(0 100% 0 0);scale:1.12}
.mo:not(.mo-go) .mo-hi.mo-h-fade{opacity:0;scale:1.1}
.mo:not(.mo-go) .mo-hi.mo-h-pop{clip-path:circle(0% at 60% 50%);scale:1.2}
.mo.mo-go .mo-hi{clip-path:inset(0 0 0 0);scale:1}
.mo.mo-go .mo-hi.mo-h-pop{clip-path:circle(100% at 60% 50%)}
.mo .mo-hi.mo-end{clip-path:none}
.mo .mo-hd0{transition:opacity .9s var(--e1) .1s,transform .9s var(--e1) .1s}
.mo:not(.mo-go) .mo-hd0{opacity:0;transform:translate3d(0,-14px,0)}
/* en-tete au defilement */
.mo header.mo-hd0,.mo .mo-hd0{will-change:transform}
.mo.mo-go header{transition:transform .5s var(--e2),box-shadow .4s,background-color .4s}
.mo header.mo-away{transform:translate3d(0,-110%,0)!important}
.mo.mo-scrolled body>header:not(.hero){box-shadow:0 10px 30px -18px rgba(0,0,0,.35)}
/* micro-interactions */
@media (hover:hover){
 .mo a.btn,.mo .btn,.mo button[type=submit],.mo .badge{transition:transform .35s var(--e2),box-shadow .35s var(--e2),background-color .25s,color .25s}
 .mo a.btn:hover,.mo .btn:hover,.mo button[type=submit]:hover{transform:translateY(-2px);box-shadow:0 12px 26px -14px rgba(0,0,0,.45)}
 .mo .btn svg,.mo a svg{transition:transform .35s var(--e2)}
 .mo .btn:hover svg,.mo a:hover>svg:last-child{transform:translateX(4px)}
 .mo .mo-img.mo-end:hover{scale:1.035}
 .mo li.mo-end,.mo article.mo-end{transition:transform .45s var(--e2),box-shadow .45s var(--e2)}
}
/* changement de version */
.mo body{transition:opacity .35s ease,filter .35s ease}
.mo.mo-leave body{opacity:0;filter:blur(4px)}
/* Lenis */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:clip}
