/* ---------- Le mouvement du site, mobile d'abord : révélations plus vivantes, gestes au doigt, et rien qui tourne hors écran ---------- */
:root{--mv-ease:cubic-bezier(.22,1,.36,1);--mv-pop:cubic-bezier(.2,1.25,.3,1)}
/* tout ce qui est sorti de l'écran arrête ses boucles (feuillages, soleils, vapeur…) */
.off,.off *{animation-play-state:paused!important}
/* révélation de base : monte un peu plus loin, se pose avec une pointe de dépassement */
.rv{opacity:0;transform:translate3d(0,44px,0) scale(.985)}
.rv.in{opacity:1;transform:none;transition:opacity .75s var(--mv-ease),transform 1.05s var(--mv-ease)}
/* les lettres des grands titres : elles se relèvent en pivotant depuis leur pied */
.sp .c{transform:translateY(112%) rotate(7deg);transform-origin:0 100%;transition:transform .95s var(--mv-pop)}
.sp.in .c{transform:none}
/* les photos : le voile se lève, l'image se pose, puis l'étiquette se colle */
.clip img{transition:clip-path .9s var(--mv-ease),transform 1.5s var(--mv-ease)}
/* les feuilles de la carte (pages La carte et Boissons) : arrivent d'en bas en se redressant */
.msec .paper.rv{transform:translate3d(0,48px,0) rotate(.7deg);transform-origin:50% 100%}
.msec.alt .paper.rv{transform:translate3d(0,48px,0) rotate(-.7deg)}
.msec .paper.rv.in{transform:none}
/* les pastilles de mots (barres d'accroche) : une par une */
.hl-bar.rv span{opacity:0;transform:translateY(14px) scale(.94);transition:opacity .5s var(--mv-ease),transform .7s var(--mv-pop)}
.hl-bar.rv.in span{opacity:1;transform:none}
.hl-bar.rv.in span:nth-child(1){transition-delay:.15s}.hl-bar.rv.in span:nth-child(2){transition-delay:.25s}.hl-bar.rv.in span:nth-child(3){transition-delay:.35s}.hl-bar.rv.in span:nth-child(4){transition-delay:.45s}.hl-bar.rv.in span:nth-child(5){transition-delay:.55s}
/* les blocs d'horaires, valeurs, étapes, colonnes du pied : cascade */
[data-cascade] > *{opacity:0;transform:translate3d(0,26px,0);transition:opacity .6s var(--mv-ease),transform .8s var(--mv-ease)}
[data-cascade].in > *{opacity:1;transform:none}
[data-cascade].in > :nth-child(1){transition-delay:.05s}[data-cascade].in > :nth-child(2){transition-delay:.14s}[data-cascade].in > :nth-child(3){transition-delay:.23s}[data-cascade].in > :nth-child(4){transition-delay:.32s}[data-cascade].in > :nth-child(5){transition-delay:.41s}[data-cascade].in > :nth-child(6){transition-delay:.5s}[data-cascade].in > :nth-child(7){transition-delay:.59s}[data-cascade].in > :nth-child(8){transition-delay:.68s}
/* le pied de page se relève doucement */
.ft.rv{transform:translate3d(0,24px,0)}
/* boutons : sous le doigt, ils s'enfoncent ; une onde part du point touché */
.btn{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.btn.press{transform:scale(.96)!important;transition:transform .12s ease-out}
.btn .rip{position:absolute;left:var(--rx,50%);top:var(--ry,50%);width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:rgba(255,255,255,.45);pointer-events:none;transform:scale(0);animation:mvRip .6s var(--mv-ease) forwards}
.btn.ghost .rip{background:rgba(62,106,42,.22)}
@keyframes mvRip{to{transform:scale(24);opacity:0}}
/* liens de navigation : le trait se tire sous le mot */
.nav-l a,.nav-r a{position:relative}
.nav-l a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--g);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--mv-ease)}
.nav-l a:hover::after,.nav-l a.on::after{transform:none;transform-origin:left}
/* écran tactile : pas de survol, pas de lueur, du mouvement plus court */
html.coarse .btn:hover{transform:none}
html.coarse .rv{transform:translate3d(0,32px,0)}
html.coarse .rv.in{transition-duration:.6s,.8s}
html.coarse .sp .c{transition-duration:.75s}
@media(prefers-reduced-motion:reduce){
  .rv,.rv.in,.msec .paper.rv,[data-cascade] > *,.hl-bar.rv span,.sp .c{opacity:1;transform:none;transition:none}
  .btn .rip{display:none}
}
