/* WebNELYS V6 — animations décoratives, indépendantes du système de réservation. */
@media (prefers-reduced-motion: no-preference) {
  .neon-aura { animation: wn-breathe 7s ease-in-out infinite alternate; }
  .neon-ring { animation: wn-ring 16s ease-in-out infinite alternate; }
  .desktop-device { animation: wn-desktop 6.5s ease-in-out infinite; will-change:transform; }
  .phone-device { animation: wn-phone 5.2s ease-in-out infinite; will-change:transform; }
  .tablet-device { animation: wn-tablet 7.3s ease-in-out infinite; will-change:transform; }
  .particle-one { animation: wn-sparkle 3.8s ease-in-out infinite; }
  .particle-two { animation: wn-sparkle 4.7s ease-in-out infinite 1s; }
  .device-glow { animation: wn-glow-shape 9s ease-in-out infinite alternate; }
  .contact-orbit { animation: wn-orbit 18s linear infinite; }
  .contact-asterisk,.manifesto-star { animation: wn-sparkle 5s ease-in-out infinite; }
  .ticker-track { animation: wn-marquee 28s linear infinite !important; will-change:transform; }
  .ticker:hover .ticker-track { animation-play-state:paused !important; }
  .btn-primary,.header-cta,.form-submit,.wn-quick { position:relative; overflow:hidden; }
  .btn-primary::after,.header-cta::after,.form-submit::after,.wn-quick::after { content:"";position:absolute;top:-100%;bottom:-100%;width:32%;left:-60%;transform:skewX(-25deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);pointer-events:none;transition:left .65s ease; }
  .btn-primary:hover::after,.header-cta:hover::after,.form-submit:hover::after,.wn-quick:hover::after { left:135%; }
  .wn-motion-reveal { opacity:0;transform:translateY(34px);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.75,.25,1);transition-delay:var(--wn-delay,0ms); }
  .wn-motion-reveal.wn-motion-in { opacity:1;transform:translateY(0); }
  .wn-motion-tilt { transform:perspective(900px) rotateX(var(--wn-rotate-x,0deg)) rotateY(var(--wn-rotate-y,0deg)) translateY(var(--wn-lift,0px));transition:transform .28s ease,box-shadow .28s ease;transform-style:preserve-3d; }
  .wn-motion-tilt:hover { --wn-lift:-5px; }
  .wn-ambient { position:fixed;pointer-events:none;inset:0;z-index:-1;overflow:hidden; }
  .wn-ambient::before,.wn-ambient::after { content:"";position:absolute;width:44vw;height:44vw;min-width:350px;min-height:350px;border-radius:50%;filter:blur(75px);opacity:.17; }
  .wn-ambient::before { right:-16vw;top:2vh;background:#9841ff;animation:wn-ambient-one 22s ease-in-out infinite alternate; }
  .wn-ambient::after { left:-20vw;bottom:-20vh;background:#4930cf;animation:wn-ambient-two 25s ease-in-out infinite alternate; }
}
@keyframes wn-breathe {from{opacity:.56;transform:scale(.92)}to{opacity:1;transform:scale(1.12)}}
@keyframes wn-ring {from{transform:rotate(-25deg) scaleX(1.18)}to{transform:rotate(-10deg) scaleX(1.12)}}
@keyframes wn-desktop {0%,100%{transform:perspective(900px) rotateY(-7deg) rotateZ(-2deg) translateY(0)}50%{transform:perspective(900px) rotateY(-5deg) rotateZ(-1deg) translateY(-12px)}}
@keyframes wn-phone {0%,100%{transform:rotate(-9deg) translateY(0)}50%{transform:rotate(-6deg) translateY(-16px)}}
@keyframes wn-tablet {0%,100%{transform:rotate(7deg) translateY(0)}50%{transform:rotate(9deg) translateY(-13px)}}
@keyframes wn-sparkle {0%,100%{opacity:.55;transform:scale(.86) rotate(-8deg)}50%{opacity:1;transform:scale(1.12) rotate(12deg)}}
@keyframes wn-glow-shape {from{transform:rotate(-20deg) scale(.93);border-radius:36% 64% 61% 39%}to{transform:rotate(12deg) scale(1.09);border-radius:56% 44% 40% 60%}}
@keyframes wn-orbit {to{transform:rotate(400deg) scaleX(.7)}}
@keyframes wn-marquee {to{transform:translateX(-50%)}}
@keyframes wn-ambient-one {to{transform:translate(-18vw,18vh) scale(1.15)}}
@keyframes wn-ambient-two {to{transform:translate(17vw,-15vh) scale(1.2)}}
@media(max-width:850px){.wn-ambient::before,.wn-ambient::after{opacity:.10}.ticker-track{animation-duration:36s!important}}
@media(prefers-reduced-motion:reduce){.wn-motion-reveal{opacity:1!important;transform:none!important}.wn-motion-tilt{transform:none!important}.ticker-track{animation:none!important}}
