/* ── Playful boutique animations (respects reduced motion) ── */

@keyframes funWiggle {
    0%, 100% { transform: rotate(0deg); }
    15% { transform: rotate(-4deg) scale(1.02); }
    30% { transform: rotate(4deg); }
    45% { transform: rotate(-3deg); }
    60% { transform: rotate(2deg); }
    75% { transform: rotate(-1deg); }
}

@keyframes funBoing {
    0% { transform: scale(1); }
    35% { transform: scale(1.08) translateY(-3px); }
    55% { transform: scale(.96) translateY(1px); }
    75% { transform: scale(1.03); }
    100% { transform: scale(1); }
}

@keyframes funFloatDance {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    25% { transform: translateY(-6px) rotate(-3deg); }
    50% { transform: translateY(-2px) rotate(3deg); }
    75% { transform: translateY(-8px) rotate(-2deg); }
}

@keyframes funCartShake {
    0%, 100% { transform: rotate(0); }
    20% { transform: rotate(-14deg) scale(1.15); }
    40% { transform: rotate(12deg) scale(1.1); }
    60% { transform: rotate(-8deg); }
    80% { transform: rotate(6deg); }
}

@keyframes funToastWobble {
    0% { opacity: 0; transform: translateX(-50%) translateY(16px) scale(.85) rotate(-4deg); }
    55% { transform: translateX(-50%) translateY(-4px) scale(1.04) rotate(2deg); }
    75% { transform: translateX(-50%) translateY(2px) scale(.98) rotate(-1deg); }
    100% { opacity: 1; transform: translateX(-50%) translateY(0) scale(1) rotate(0); }
}

@keyframes funRocket {
    0% { transform: translateY(0) scale(1); }
    40% { transform: translateY(-8px) scale(1.12); }
    100% { transform: translateY(-120vh) scale(.6); opacity: 0; }
}

@keyframes funHeartPop {
    0% { transform: scale(1); }
    35% { transform: scale(1.35); }
    55% { transform: scale(.88); }
    100% { transform: scale(1); }
}

@keyframes funChipPop {
    0% { transform: scale(1); }
    45% { transform: scale(1.12); }
    100% { transform: scale(1); }
}

@keyframes funPeekBounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-5px); }
}

@keyframes funCardTilt {
    0% { transform: translateY(0) rotate(0deg); }
    100% { transform: translateY(-8px) rotate(-1.2deg) scale(1.01); }
}

@keyframes funEmojiPop {
    0% { opacity: 0; transform: translate(-50%, 0) scale(.3) rotate(-20deg); }
    20% { opacity: 1; transform: translate(-50%, -12px) scale(1.1) rotate(8deg); }
    100% { opacity: 0; transform: translate(-50%, -56px) scale(.7) rotate(12deg); }
}

/* Hero logo — hello wiggle on load */
.hero-logo.fun-wiggle-on-load {
    animation: funWiggle 1.1s ease .6s both;
}

/* Primary CTAs — bouncy hover */
.btn-orange:hover,
.btn-glow:hover {
    animation: funBoing .55s ease;
}

/* Floating action buttons */
.whatsapp-float {
    animation: funFloatDance 4.5s ease-in-out infinite;
}
.chat-float {
    animation: funPeekBounce 2.8s ease-in-out infinite;
}
.chat-float::after {
    content: "👋";
    position: absolute;
    top: -.45rem;
    right: -.2rem;
    font-size: .95rem;
    opacity: 0;
    transform: scale(.5) rotate(-15deg);
    transition: opacity .2s ease, transform .25s cubic-bezier(.34, 1.56, .64, 1);
    pointer-events: none;
}
.chat-float:hover::after {
    opacity: 1;
    transform: scale(1.1) rotate(8deg);
}

/* Cart badge shake */
[data-cart-count].fun-cart-shake {
    animation: funCartShake .55s ease;
    display: inline-block;
    transform-origin: center bottom;
}

/* Toast — wobbly entrance (messages stay plain from store.js) */
.toast.show {
    animation: funToastWobble .55s cubic-bezier(.34, 1.2, .64, 1) both;
}

/* Product cards — playful tilt */
.product-card:hover {
    animation: funCardTilt .35s ease forwards;
}

/* Favourite button pop */
[data-favourite-toggle].is-active,
[data-favourite-toggle].fun-heart-pop {
    animation: funHeartPop .45s cubic-bezier(.34, 1.56, .64, 1);
}

/* Category / audience chips */
.audience-chip:active,
.category-chip:active,
.chip:active {
    animation: funChipPop .35s ease;
}

/* Back to top — rocket on click */
.back-to-top.fun-rocket {
    animation: funRocket .85s cubic-bezier(.4, 0, .2, 1) forwards;
}

/* Floating emoji burst particles */
.fun-emoji-burst {
    position: fixed;
    z-index: 9999;
    pointer-events: none;
    font-size: 1.35rem;
    animation: funEmojiPop .9s ease forwards;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,.15));
}

/* Section headings — subtle eyebrow bounce when revealed */
.reveal-on-scroll.is-visible .eyebrow {
    animation: funPeekBounce .8s ease .15s both;
}

@media (prefers-reduced-motion: reduce) {
    .hero-logo.fun-wiggle-on-load,
    .whatsapp-float,
    .chat-float,
    .btn-orange:hover,
    .btn-glow:hover,
    .product-card:hover,
    .toast.show,
    [data-cart-count].fun-cart-shake,
    [data-favourite-toggle].fun-heart-pop,
    .reveal-on-scroll.is-visible .eyebrow {
        animation: none !important;
    }
    .chat-float::after { display: none; }
}
