.cb-btn-0731ba29.has-loop-anim {
    animation-iteration-count: infinite;
}

.cb-btn-0731ba29.anim-pulse {
    animation-name: cbPulse0731ba29;
}

.cb-btn-0731ba29.anim-bounce {
    animation-name: cbBounce0731ba29;
}

.cb-btn-0731ba29.anim-shake {
    animation-name: cbShake0731ba29;
}

.cb-btn-0731ba29.anim-flash {
    animation-name: cbFlash0731ba29;
}

/* Opacity variation logic */
.cb-btn-0731ba29.cb-disabled-0731ba29 {
    opacity: 0.3 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

@keyframes cbPulse0731ba29 {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

@keyframes cbBounce0731ba29 {
    0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-8px); }
    60% { transform: translateY(-4px); }
}

@keyframes cbShake0731ba29 {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-4px); }
    40%, 80% { transform: translateX(4px); }
}

@keyframes cbFlash0731ba29 {
    0%, 50%, 100% { opacity: 1; }
    25%, 75% { opacity: 0.6; }
}
