/* Base Hover Tooltip */
.qcwa-hover-tooltip {
    opacity: 0;
    visibility: hidden;
    background: #ffffff;
    color: #333333;
    padding: 6px 14px;
    border-radius: 4px;
    font-size: 14px;
    font-weight: 600;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    transition: all 0.3s ease;
    white-space: nowrap;
}

.qcwa-btn-wrap:hover .qcwa-hover-tooltip {
    opacity: 1;
    visibility: visible;
}

/* --- Base Animations (Keyframes) --- */
@keyframes qcwa-bounce {
    0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-20px); }
    60% { transform: translateY(-10px); }
}

@keyframes qcwa-flash {
    0%, 50%, 100% { opacity: 1; }
    25%, 75% { opacity: 0; }
}

@keyframes qcwa-pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); }
}

@keyframes qcwa-heartbeat {
    0% { transform: scale(1); }
    14% { transform: scale(1.15); }
    28% { transform: scale(1); }
    42% { transform: scale(1.15); }
    70% { transform: scale(1); }
}

@keyframes qcwa-flip {
    0% { transform: perspective(400px) rotateY(-360deg); }
    40% { transform: perspective(400px) rotateY(-190deg); }
    50% { transform: perspective(400px) rotateY(-170deg); }
    80% { transform: perspective(400px) scale(.95); }
    100% { transform: perspective(400px); }
}

/* --- Entrance Effects --- */
@keyframes qcwa-center {
    0% { opacity: 0; transform: scale(0.3); }
    100% { opacity: 1; transform: scale(1); }
}

@keyframes qcwa-corner {
    0% { opacity: 0; transform: scale(0); }
    100% { opacity: 1; transform: scale(1); }
}