/* WearMA : ecran de chargement (accueil, 1x par session) + transitions de page + defilement doux */
html{scroll-behavior:smooth;scroll-padding-top:96px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---------- Ecran de chargement ---------- */
.wm-loader{display:none}
html.wm-loading{overflow:hidden}
html.wm-loading .wm-loader{display:block}
.wm-loader{position:fixed;inset:0;z-index:99999;background:#0d0c0b;color:#F3EFE7;transition:opacity .6s cubic-bezier(.76,0,.24,1)}
.wm-loader.is-out{display:block;opacity:0;pointer-events:none}
.wm-loader__label{position:absolute;left:24px;top:24px;font-family:'DM Sans',sans-serif;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:#8f877b;
  opacity:0;transform:translateY(-20px);animation:wmLabelIn .8s cubic-bezier(.25,.1,.25,1) .1s forwards}
.wm-loader__word{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.wm-loader__word span{position:absolute;font-family:'Archivo',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:-.01em;
  font-size:clamp(40px,7vw,88px);color:rgba(243,239,231,.82);opacity:0;transform:translateY(20px);transition:opacity .35s ease-out,transform .35s ease-out}
.wm-loader__word span.is-in{opacity:1;transform:translateY(0)}
.wm-loader__word span.is-out{opacity:0;transform:translateY(-20px)}
.wm-loader__count{position:absolute;right:24px;bottom:28px;font-family:'Archivo',sans-serif;font-weight:800;line-height:1;
  font-size:clamp(64px,12vw,150px);font-variant-numeric:tabular-nums;color:#F3EFE7}
.wm-loader__bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(227,215,195,.12)}
.wm-loader__bar i{display:block;height:100%;transform-origin:0 50%;transform:scaleX(0);
  background:linear-gradient(90deg,#E3D7C3 0%,#8C6B3F 100%);box-shadow:0 0 8px rgba(227,200,160,.35)}
@media (min-width:768px){.wm-loader__label{left:40px;top:40px}.wm-loader__count{right:40px;bottom:44px}}
@keyframes wmLabelIn{to{opacity:1;transform:none}}

/* ---------- Transition de page : rideau ---------- */
/* Seulement apres un clic interne (html.wm-arrive pose dans le <head>) : le rideau se retire
   vers le haut en CSS pur, donc la page ne reste jamais couverte meme si le JS echoue.
   Une visite directe (Google, lien externe) n'a aucun rideau. */
.wm-curtain{position:fixed;inset:0;z-index:99998;background:#161513;pointer-events:none;transform-origin:50% 0;transform:scaleY(0)}
html.wm-arrive .wm-curtain{animation:wmCurtainOff .6s cubic-bezier(.76,0,.24,1) .05s both}
html.wm-loading .wm-curtain{animation:none;transform:scaleY(0)}
.wm-curtain.is-leaving{animation:none;transform-origin:50% 100%;transform:scaleY(1);transition:transform .5s cubic-bezier(.76,0,.24,1)}
.wm-curtain.is-leaving.is-start{transform:scaleY(0);transition:none}
@keyframes wmCurtainOff{from{transform:scaleY(1)}to{transform:scaleY(0)}}
/* "Reduire les animations" : on garde le loader et la transition, mais en fondu, sans glissement */
@media (prefers-reduced-motion:reduce){
  .wm-loader__word span,.wm-loader__word span.is-out{transform:none}
  .wm-loader__label{transform:none}
  .wm-curtain{transform:none;opacity:0;transform-origin:50% 50%}
  html.wm-arrive .wm-curtain{animation:wmCurtainFade .45s ease .05s both}
  .wm-curtain.is-leaving{transform:none;opacity:1;transition:opacity .4s ease}
  .wm-curtain.is-leaving.is-start{opacity:0}
}
@keyframes wmCurtainFade{from{opacity:1}to{opacity:0}}
