/* Professional Duolingo-style dots loader */
.dots-loader {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 1em;
    line-height: 1;
    vertical-align: middle;
}

.dot {
    width: 6px;
    height: 6px;
    background-color: currentColor;
    border-radius: 50%;
    animation: duolingo-bounce 0.8s infinite ease-in-out;
    display: inline-block;
}

.dot:nth-child(2) { animation-delay: 0.2s; }
.dot:nth-child(3) { animation-delay: 0.4s; }

@keyframes duolingo-bounce {
    0%, 100% { transform: translateY(0); opacity: 0.6; }
    50% { transform: translateY(-5px); opacity: 1; }
}

/* Button state when loading */
.button-loading {
    pointer-events: none !important;
    opacity: 0.8 !important;
    position: relative;
    cursor: not-allowed !important;
}

/* Prevent layout shift */
[data-original-text] {
    transition: all 0.2s ease;
}
