/* Habillage de /eleve : même ciel que le hub des mini-jeux. */
.free-student-night {
    --free-ink: #f8fafc;
    --free-muted: #d8e1f2;
    color-scheme: dark;
    min-height: 100vh;
    background: #0a1628;
}
.free-night-sky {
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
    background:
        radial-gradient(ellipse at 20% 20%, rgba(99, 102, 241, 0.3) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 80%, rgba(236, 72, 153, 0.2) 0%, transparent 50%),
        radial-gradient(ellipse at 50% 50%, rgba(245, 158, 11, 0.15) 0%, transparent 50%),
        linear-gradient(180deg, #0a1628 0%, #1a2744 50%, #0f3460 100%);
}
.free-night-sky::before {
    content: '';
    position: absolute;
    inset: 0 0 auto;
    height: 4px;
    background: linear-gradient(90deg, #f59e0b, #10b981, #6366f1, #ec4899, #f59e0b);
}
.free-night-stars {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(2px 2px at 20px 30px, rgba(255, 255, 255, 0.8), transparent),
        radial-gradient(2px 2px at 40px 70px, rgba(255, 255, 255, 0.5), transparent),
        radial-gradient(1px 1px at 90px 40px, rgba(255, 255, 255, 0.6), transparent),
        radial-gradient(2px 2px at 130px 80px, rgba(255, 255, 255, 0.4), transparent);
    background-size: 200px 150px;
    animation: free-night-twinkle 4s ease-in-out infinite;
}
@keyframes free-night-twinkle {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}
.free-student-night :is(.free-topbar, .free-hub, .free-footer) {
    position: relative;
    z-index: 1;
}
.free-student-night :is(a, button, input, summary, select):focus-visible {
    outline: 3px solid #fde68a;
    outline-offset: 4px;
}
.free-student-night .free-skip {
    color: #172554;
}
.free-student-night .free-access {
    background: rgba(16, 185, 129, 0.12);
    border-color: rgba(110, 231, 183, 0.5);
    color: #a7f3d0;
}
.free-student-night .free-hero {
    border-color: rgba(196, 181, 253, 0.4);
    background:
        radial-gradient(ellipse at 15% 65%, rgba(139, 92, 246, 0.2), transparent 55%),
        linear-gradient(120deg, rgba(99, 102, 241, 0.18), rgba(255, 255, 255, 0.06));
    box-shadow: 0 18px 50px rgba(3, 10, 30, 0.18);
}
.free-student-night .free-plume {
    filter: drop-shadow(0 12px 24px rgba(167, 139, 250, 0.3));
}
.free-student-night .free-plume-message {
    background: #f5f3ff;
    border-color: #ddd6fe;
    color: #4c1d95;
}
.free-student-night .free-eyebrow {
    color: #ddd6fe;
}
.free-student-night .free-hero h1 {
    color: #fef3c7;
}
.free-student-night .free-hero-content > p:last-of-type {
    color: var(--free-muted);
}
.free-student-night .free-levels fieldset {
    min-inline-size: 0;
}
.free-student-night .free-levels legend {
    max-width: 100%;
    text-align: center;
}
.free-student-night .free-level-buttons button {
    color: #fff;
    border-color: rgba(196, 181, 253, 0.5);
    background: rgba(255, 255, 255, 0.08);
}
.free-student-night .free-level-buttons button:hover {
    background: rgba(255, 255, 255, 0.18);
}
.free-student-night .free-level-buttons button[aria-pressed='true'] {
    background: linear-gradient(135deg, #4f46e5, #6d28d9);
    border-color: #c4b5fd;
    box-shadow: 0 4px 16px rgba(99, 102, 241, 0.35);
}
.free-student-night .free-join {
    border: 1px solid rgba(165, 180, 252, 0.5);
    background: rgba(15, 28, 55, 0.65);
    box-shadow: 0 8px 24px rgba(3, 10, 30, 0.15);
}
.free-student-night .free-join-field input {
    color-scheme: light;
    color: #172554;
    background: #f8fafc;
    border-color: #a5b4fc;
}
.free-student-night .free-join-field input::placeholder {
    color: #526077;
    opacity: 1;
}
.free-student-night .free-join-form button {
    background: #4f46e5;
    box-shadow: 0 4px 16px rgba(99, 102, 241, 0.25);
}
.free-student-night .free-join-form button:hover {
    background: #4338ca;
}
.free-student-night .free-join-error {
    color: #fecaca;
}
.free-student-night .free-card {
    --free-card-accent: #a5b4fc;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-top: 3px solid var(--free-card-accent);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 28px rgba(3, 10, 30, 0.16);
}
.free-student-night .free-card-training {
    --free-card-accent: #6ee7b7;
}
.free-student-night .free-card-adventure {
    --free-card-accent: #fcd34d;
}
.free-student-night .free-card:hover {
    border-color: var(--free-card-accent);
    background: rgba(255, 255, 255, 0.13);
}
.free-student-night .free-card-action {
    color: var(--free-card-accent);
}
.free-student-night :is(.free-subject, .free-discover-grid a) {
    border-color: rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.07);
}
.free-student-night :is(.free-subject, .free-discover-grid a):hover {
    border-color: #a5b4fc;
    background: rgba(255, 255, 255, 0.14);
}
.free-student-night .free-subject-arrow {
    color: #c7d2fe;
}
.free-student-night .free-privacy {
    border: 1px solid rgba(165, 180, 252, 0.25);
    background: rgba(10, 22, 40, 0.45);
    color: var(--free-muted);
}
.free-student-night .free-footer {
    border-color: rgba(255, 255, 255, 0.16);
    color: var(--free-muted);
    background: rgba(10, 22, 40, 0.3);
}
.free-student-night .learning-controls {
    border-color: rgba(165, 180, 252, 0.4);
    background: rgba(15, 28, 55, 0.65);
    color: #e2e8f0;
}
.free-student-night.learning-contrast {
    --free-ink: #172554;
    --free-muted: #334155;
    color-scheme: light;
}
.free-student-night.learning-contrast .free-night-sky {
    display: none;
}
.free-student-night.learning-contrast :is(.free-hero, .free-join, .free-card, .free-subject, .free-discover-grid a, .free-privacy, .free-footer, .learning-controls) {
    background: #fff;
    border-color: #475569;
    color: #172554;
    box-shadow: none;
}
.free-student-night.learning-contrast :is(.free-eyebrow, .free-card-action, .free-subject-arrow, .free-access) {
    color: #172554;
}
.free-student-night.learning-contrast .free-level-buttons button:not([aria-pressed='true']) {
    color: #172554;
    border-color: #475569;
    background: #fff;
}
.free-student-night.learning-contrast :is(a, button, input, summary, select):focus-visible {
    outline-color: #2563eb;
}
@media screen and (min-width: 701px) {
    .free-student-night .free-hero-plume {
        transform: translateX(-1.25rem);
    }
}
@media screen and (max-width: 700px) {
    .free-student-night .free-level-buttons {
        flex-wrap: wrap;
    }
    .free-student-night .free-level-buttons button {
        flex: 1 0 44px;
    }
}
@media screen and (max-width: 400px) {
    .free-student-night .free-topbar {
        flex-wrap: wrap;
        gap: 0.6rem;
    }
    .free-student-night .free-discover-grid {
        grid-template-columns: 1fr;
    }
}
@media (prefers-reduced-motion: reduce) {
    .free-night-stars {
        animation: none;
    }
}
