/* ============================================================
   AÉTHER Parfums — Animations
   ============================================================ */
.reveal,.reveal-up,.reveal-left,.reveal-right{opacity:0;transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal{transform:translateY(24px)}
.reveal-up{transform:translateY(32px)}
.reveal-left{transform:translateX(-32px)}
.reveal-right{transform:translateX(32px)}
.reveal.visible,.reveal-up.visible,.reveal-left.visible,.reveal-right.visible{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

.ripple{position:relative;overflow:hidden}
.ripple-circle{position:absolute;border-radius:50%;background:rgba(255,255,255,.3);transform:scale(0);animation:ripple .6s ease-out;pointer-events:none}

@keyframes loadBar{0%{width:0}50%{width:70%}100%{width:100%}}
@keyframes bounce{0%,100%,50%,80%{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}
@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@keyframes ripple{to{transform:scale(4);opacity:0}}
@keyframes heartBeat{0%,100%{transform:scale(1)}25%{transform:scale(1.25)}50%{transform:scale(1)}75%{transform:scale(1.1)}}
.heart-beat{animation:heartBeat .6s ease}
.bounce{animation:heartBeat .5s ease}
.pop{animation:heartBeat .4s ease}

.fly-cart{position:fixed;width:50px;height:50px;border-radius:50%;object-fit:cover;z-index:9999;pointer-events:none;transition:all .8s cubic-bezier(.25,.46,.45,.94)}

/* Product & category images always visible */
.product-card-img img,.cat-card img,.cat-round-img img,.type-card-img img,.collection-card img{opacity:1!important}

.parallax-bg{background-attachment:fixed;background-size:cover;background-position:center}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
.reveal,.reveal-up,.reveal-left,.reveal-right{opacity:1;transform:none}}
