/* Reaction Test Colors States */
.state-idle {
    background-color: #1f2937; /* bg-gray-800 */
    border-color: #374151; /* border-gray-700 */
    color: #9ca3af; /* text-gray-400 */
}
.state-idle:hover {
    background-color: #2d3748;
}
.state-waiting {
    background-color: #991b1b; /* bg-red-800 */
    border-color: #ef4444; /* border-red-500 */
    color: #fca5a5;
}
.state-ready {
    background-color: #166534; /* bg-green-800 */
    border-color: #22c55e; /* border-green-500 */
    color: #86efac;
}

/* Aim Trainer Targets Style */
.aim-target {
    position: absolute;
    border-radius: 50%;
    background: radial-gradient(circle, #3b82f6 30%, #1d4ed8 70%);
    border: 3px solid #93c5fd;
    box-shadow: 0 0 15px rgba(59, 130, 246, 0.6);
    cursor: crosshair;
    transform: scale(0);
    animation: targetSpawn 0.12s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
.aim-target::after {
    content: '';
    position: absolute;
    inset: 30%;
    background-color: #ffffff;
    border-radius: 50%;
}

@keyframes targetSpawn {
    to { transform: scale(1); }
}

/* General Animations */
.animate-fade-in {
    animation: fadeIn 0.25s ease-out forwards;
}
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Hide scrollbar for horizontal mobile navigation */
.hide-scrollbar::-webkit-scrollbar {
    display: none;
}
.hide-scrollbar {
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}