/* ============================================================
   ZONE85 — Micro-animations front (chargé après zone85.css)
   Sobre, chaleureux, « QG des Zonautes ». Tout est désactivé
   si l'utilisateur a demandé à réduire les animations.
   ============================================================ */

/* ── Keyframes (inoffensifs, toujours définis) ── */
@keyframes z85Float   {0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes z85Wiggle  {0%,100%{transform:rotate(0)}25%{transform:rotate(-9deg)}50%{transform:rotate(7deg)}75%{transform:rotate(-4deg)}}
@keyframes z85Bell    {0%,88%,100%{transform:rotate(0)}90%{transform:rotate(13deg)}92%{transform:rotate(-11deg)}94%{transform:rotate(8deg)}96%{transform:rotate(-5deg)}98%{transform:rotate(2deg)}}
@keyframes z85Pop     {0%{transform:scale(0)}70%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes z85StampIn {0%{opacity:0;transform:scale(1.5) rotate(-8deg)}60%{opacity:1;transform:scale(.94) rotate(-2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes z85Flash   {0%{color:#C9962A;text-shadow:0 0 14px rgba(201,150,42,.5)}100%{}}
@keyframes z85ToastIn {0%{opacity:0;transform:translateY(16px)}100%{opacity:1;transform:none}}
@keyframes z85ConfettiFall{0%{opacity:1;transform:translateY(-10px) rotate(0)}100%{opacity:.85;transform:translateY(104vh) rotate(680deg)}}

/* ── Confetti (créé par le JS, classe toujours active) ── */
.z85-confetti-piece{position:fixed;top:-14px;width:9px;height:14px;border-radius:2px;z-index:100000;pointer-events:none;will-change:transform,opacity;animation:z85ConfettiFall linear forwards}

@media (prefers-reduced-motion: no-preference){

  /* 4 · Cartes randos au survol */
  .rando-card{transition:transform .22s ease, box-shadow .22s ease}
  .rando-card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(18,49,78,.14)}
  .rando-card-visual{overflow:hidden}
  .rando-card-visual img{transition:transform .55s cubic-bezier(.2,.8,.2,1)}
  .rando-card:hover .rando-card-visual img{transform:scale(1.05)}

  /* 7 · Boutons tactiles */
  .rando-passport-btn,.rando-proof-btn,.nav-btn,.wq-submit,.mmenu-join,.pp-btn,.rando-fb-btn,.cp-btn,.profil-cta-btn{transition:transform .12s ease, box-shadow .12s ease}
  .rando-passport-btn:active,.rando-proof-btn:active,.nav-btn:active,.wq-submit:active,.mmenu-join:active,.pp-btn:active,.rando-fb-btn:active,.cp-btn:active,.profil-cta-btn:active{transform:scale(.97)}

  /* 5 · Reveal au scroll (classe .reveal posée par le JS) */
  .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s cubic-bezier(.2,.8,.2,1)}
  .reveal.visible{opacity:1;transform:none}

  /* 9 · Avatar de profil — flottement lent */
  .sidebar-avatar-hero img,.sidebar-avatar-emoji{animation:z85Float 5s ease-in-out infinite}

  /* 10 · Émojis qui frétillent au survol */
  .rando-card-emoji,.echos-card-emoji,.season-row-emoji,.ccm-step-emoji,.trophy-emoji,.pp-clan-emoji{display:inline-block;transition:transform .2s ease}
  .rando-card:hover .rando-card-emoji,
  .echos-card-emoji:hover,.season-row-emoji:hover,.ccm-step-emoji:hover,.trophy-emoji:hover,.pp-clan-emoji:hover{animation:z85Wiggle .5s ease}

  /* 8 · Cloche notifications — shake quand un badge est présent + pop du badge */
  .nav-icon-btn:has(.nav-icon-badge) .nav-icon-btn-symbol{display:inline-block;transform-origin:50% 4px;animation:z85Bell 2.8s ease-in-out 1.2s infinite}
  .nav-icon-badge{animation:z85Pop .42s cubic-bezier(.2,.9,.25,1.5) both}

  /* 6 · Tampons du Passeport — cascade à l'apparition */
  .pp-stamps-grid .pp-stamp-card{animation:z85StampIn .42s cubic-bezier(.2,.85,.25,1.3) both}
  .pp-stamps-grid .pp-stamp-card:nth-child(1){animation-delay:.02s}
  .pp-stamps-grid .pp-stamp-card:nth-child(2){animation-delay:.08s}
  .pp-stamps-grid .pp-stamp-card:nth-child(3){animation-delay:.14s}
  .pp-stamps-grid .pp-stamp-card:nth-child(4){animation-delay:.20s}
  .pp-stamps-grid .pp-stamp-card:nth-child(5){animation-delay:.26s}
  .pp-stamps-grid .pp-stamp-card:nth-child(6){animation-delay:.32s}
  .pp-stamps-grid .pp-stamp-card:nth-child(7){animation-delay:.38s}
  .pp-stamps-grid .pp-stamp-card:nth-child(8){animation-delay:.44s}
  .pp-stamps-grid .pp-stamp-card:nth-child(9){animation-delay:.50s}
  .pp-stamps-grid .pp-stamp-card:nth-child(n+10){animation-delay:.56s}

  /* 1 · Flash doré sur un compteur qui monte */
  .z85-countup.z85-flash{animation:z85Flash .7s ease}

  /* 11 · Toasts — entrée slide + fade */
  #z85-toast>*{animation:z85ToastIn .35s cubic-bezier(.2,.8,.2,1)}
}
