/* Custom Application Theme Enhancements */
body {
    font-family: 'Plus Jakarta Sans', sans-serif;
    transition: background-color 0.3s ease, color 0.3s ease;
}
.glass {
    background: rgba(15, 23, 42, 0.45);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.08);
}
.light .glass {
    background: rgba(255, 255, 255, 0.7);
    border: 1px solid rgba(15, 23, 42, 0.08);
}
.glow-cyan { box-shadow: 0 0 40px -5px rgba(6, 182, 212, 0.15); }
.glow-indigo { box-shadow: 0 0 40px -5px rgba(99, 102, 241, 0.15); }

[hidden] { display: none !important; }

@keyframes float-in {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes soft-pulse {
    0%, 100% { transform: scale(1); box-shadow: 0 18px 60px rgba(14, 165, 233, 0.10); }
    50% { transform: scale(1.012); box-shadow: 0 22px 75px rgba(99, 102, 241, 0.22); }
}

header > *, section > * {
    animation: float-in 0.7s ease-out both;
}

header figure {
    animation: float-in 0.8s ease-out both, soft-pulse 7s ease-in-out 1s infinite;
}

.question-card {
    scroll-margin-top: 7rem;
}

.question-card:has(.selected-answer) {
    border-color: rgba(99, 102, 241, 0.6);
}

.answer-option:hover {
    transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}
