@keyframes fx-shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(200%); }
}@keyframes fx-pop-in {
    0% {
        opacity: 0;
        transform: scale(0.6) translateY(10px);
    }
    70% {
        transform: scale(1.06) translateY(-2px);
    }
    100% {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}@keyframes fx-stamp {
    0% {
        opacity: 0;
        transform: scale(2.2) rotate(-15deg);
    }
    60% {
        opacity: 1;
        transform: scale(0.95) rotate(-5deg);
    }
    100% {
        transform: scale(1) rotate(-5deg);
    }
}@keyframes fx-float {
    0%, 100% {
        transform: translateY(0px);
    }
    50% {
        transform: translateY(-6px);
    }
}@keyframes fx-pulse-glow {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(225, 29, 72, 0.4);
    }
    50% {
        box-shadow: 0 0 16px 4px rgba(225, 29, 72, 0.25);
    }
}@keyframes fx-wave {
    0%, 100% { transform: rotate(0deg); }
    20% { transform: rotate(14deg); }
    40% { transform: rotate(-10deg); }
    60% { transform: rotate(12deg); }
    80% { transform: rotate(-4deg); }
}.shimmer-wrapper{position:relative;overflow:hidden}.shimmer-wrapper::after{content:'';position:absolute;top:0;left:0;bottom:0;width:60%;background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0.35) 50%,
        rgba(255, 255, 255, 0) 100%
    );transform:translateX(-100%);animation:fx-shimmer 2.2s infinite ease-in-out;pointer-events:none}.anim-pop{animation:fx-pop-in .5s cubic-bezier(.34,1.56,.64,1) forwards}.anim-stamp{animation:fx-stamp .6s cubic-bezier(.22,1,.36,1) forwards}.anim-float{animation:fx-float 3s ease-in-out infinite}.anim-glow{animation:fx-pulse-glow 2.5s infinite}.anim-wave{display:inline-block;transform-origin:70% 70%;animation:fx-wave 2s infinite ease-in-out}.hover-lift{transition:transform .25s cubic-bezier(.34,1.56,.64,1) , box-shadow .25s ease;will-change:transform , box-shadow}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 12px 24px -6px rgba(0,0,0,.1) , 0 6px 12px -4px rgba(0,0,0,.06)}.pressable{transition:transform .12s ease-out , filter .12s ease-out}.pressable:active{transform:scale(.96);filter:brightness(.96)}.count-up-active{display:inline-block;transition:transform .15s ease}#fx-confetti-canvas{position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:999999}