* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: "Inter", system-ui, sans-serif;
    background-color: #0a0a0a;
    color: #fafafa;
    min-height: 100vh;
    overflow-x: hidden;
}

/* Progress bar animation */
#progress {
    transition: width 0.025s linear;
}

/* Tile animations */
.tile {
    transition: all 0.2s ease;
}

.tile:hover {
    transform: scale(1.05);
}

.tile.correct-all {
    background: linear-gradient(135deg, #22c55e, #16a34a) !important;
    border-color: #22c55e !important;
    animation: pulse 0.3s ease;
    box-shadow: 0 0 20px rgba(34, 197, 94, 0.5);
}

.tile.wrong {
    background: linear-gradient(135deg, #ef4444, #dc2626) !important;
    border-color: #ef4444 !important;
    animation: shake 0.3s ease;
    box-shadow: 0 0 20px rgba(239, 68, 68, 0.5);
}

/* Button animations */
.num-btn {
    transition: all 0.15s ease;
}

.num-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(34, 197, 94, 0.3);
}

.num-btn:active {
    transform: translateY(0);
}

.num-btn.is-correct {
    background: linear-gradient(135deg, #22c55e, #16a34a) !important;
    border-color: #22c55e !important;
    box-shadow: 0 0 20px rgba(34, 197, 94, 0.5);
}

.num-btn.is-absent {
    background: linear-gradient(135deg, #ef4444, #dc2626) !important;
    border-color: #ef4444 !important;
    animation: shake 0.3s ease;
}

/* Modal styles */
.modal {
    transition:
        opacity 0.3s ease,
        visibility 0.3s ease;
}

.modal.hidden {
    opacity: 0;
    visibility: hidden;
}

.modal-content {
    transform: scale(0.95);
    transition: transform 0.3s ease;
}

.modal:not(.hidden) .modal-content {
    transform: scale(1);
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: #141414;
}

::-webkit-scrollbar-thumb {
    background: #2a2a2a;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #3a3a3a;
}

/* Glass effect */
.glass {
    background: rgba(20, 20, 20, 0.8);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

@keyframes shake {
    0%,
    100% {
        transform: translateX(0);
    }
    25% {
        transform: translateX(-5px);
    }
    75% {
        transform: translateX(5px);
    }
}