/* ============================================
   MajestyLauncher — Habillage de Noël
   Couche posée par-dessus theme.css, qui ne change pas.
   S'active et se retire avec $themeNoel en haut d'index.php.
   Les dessins sont en pixels, façon Minecraft, intégrés ici en SVG.
   ============================================ */

:root {
    --noel-or: #ffc83d;
    --noel-or-texte: #ffd98a;
    --noel-rouge: #ff3b30;
}

/* Neige qui tombe (créée par js/noel.js) : sous l'en-tête et les fenêtres, jamais cliquable */
#noel-neige {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: 900;
    pointer-events: none;
    image-rendering: pixelated;
}

/* Guirlande accrochée sous l'en-tête. z-index négatif : derrière le menu mobile. */
.noel-guirlande {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: -1;
    height: 26px;
    display: flex;
    overflow: hidden;
    pointer-events: none;
    border-top: 2px solid #1f4a33;
}
.noel-ampoule { position: relative; flex: 0 0 48px; }
.noel-ampoule::before {
    content: "";
    position: absolute;
    top: 0; left: 21px;
    width: 6px; height: 4px;
    background: #1f4a33;
}
.noel-ampoule::after {
    content: "";
    position: absolute;
    top: 4px; left: 20px;
    width: 8px; height: 10px;
    background: var(--couleur);
    box-shadow: 0 0 10px 1px var(--couleur);
    animation: noelScintille 2.4s ease-in-out infinite;
    animation-delay: var(--delai);
}
.noel-ampoule:nth-child(3n)::before { height: 8px; }
.noel-ampoule:nth-child(3n)::after { top: 8px; }
@keyframes noelScintille {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

/* Bonnet sur le logo de l'en-tête */
.brand { position: relative; }
.brand::before {
    content: "";
    position: absolute;
    left: -8px;
    top: -14px;
    width: 34px;
    height: 22px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 17 11' shape-rendering='crispEdges'%3E%3Cpath fill='%23d62828' d='M7 0h4v1h-4zM5 1h8v1h-8zM4 2h10v1h-10zM3 3h7v1h-7zM12 3h3v1h-3zM3 4h6v1h-6zM13 4h2v1h-2zM2 5h7v1h-7zM13 5h1v1h-1zM2 6h6v1h-6zM2 7h6v1h-6z'/%3E%3Cpath fill='%23a51d1d' d='M10 3h2v1h-2zM9 4h1v1h-1zM12 4h1v1h-1zM9 5h1v1h-1zM8 6h2v1h-2zM8 7h1v1h-1z'/%3E%3Cpath fill='%23f2f7fd' d='M15 4h2v1h-2zM14 5h3v1h-3zM14 6h2v1h-2zM0 8h12v1h-12zM0 9h12v1h-12z'/%3E%3Cpath fill='%23c9d9ec' d='M0 10h12v1h-12z'/%3E%3C/svg%3E") center / contain no-repeat;
    transform: rotate(-10deg);
    pointer-events: none;
}

/* Vœux en haut de page */
.noel-voeux {
    display: flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    margin: 0 auto 20px;
    padding: 7px 16px;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--noel-or-texte);
    background: rgba(255, 200, 61, 0.08);
    border: 1px solid rgba(255, 200, 61, 0.3);
    border-radius: 999px;
}
.noel-voeux::before {
    content: "";
    flex-shrink: 0;
    width: 16px;
    height: 18px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 9' shape-rendering='crispEdges'%3E%3Cpath fill='%23ffc83d' d='M3 0h2v1h-2z'/%3E%3Cpath fill='%231f6b43' d='M3 1h2v1h-2zM2 2h2v1h-2zM1 3h3v1h-3zM3 4h1v1h-1zM2 5h2v1h-2zM1 6h3v1h-3zM0 7h4v1h-4z'/%3E%3Cpath fill='%2317523a' d='M4 2h2v1h-2zM4 3h3v1h-3zM4 4h1v1h-1zM4 5h2v1h-2zM4 6h3v1h-3zM4 7h4v1h-4z'/%3E%3Cpath fill='%235a3a22' d='M3 8h2v1h-2z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.hero-rotator-item.noel .gradient-text { background-image: linear-gradient(135deg, var(--noel-rouge), var(--noel-or)); }

/* Tapis de neige en bas de la première section */
#hero { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 8' shape-rendering='crispEdges'%3E%3Cpath fill='%23f2f7fd' d='M19 0h2v1h-2zM18 1h1v1h-1zM21 1h1v1h-1zM5 2h2v1h-2zM17 2h1v1h-1zM22 2h1v1h-1zM34 2h2v1h-2zM4 3h1v1h-1zM7 3h1v1h-1zM15 3h2v1h-2zM23 3h1v1h-1zM33 3h1v1h-1zM36 3h2v1h-2zM2 4h2v1h-2zM8 4h1v1h-1zM14 4h1v1h-1zM24 4h2v1h-2zM32 4h1v1h-1zM38 4h1v1h-1zM41 4h2v1h-2zM0 5h2v1h-2zM9 5h2v1h-2zM13 5h1v1h-1zM26 5h2v1h-2zM30 5h2v1h-2zM39 5h2v1h-2zM43 5h1v1h-1zM46 5h2v1h-2zM11 6h2v1h-2zM28 6h2v1h-2zM44 6h2v1h-2z'/%3E%3Cpath fill='%23dfe9f6' d='M19 1h2v1h-2zM18 2h4v1h-4zM5 3h2v1h-2zM17 3h2v1h-2zM21 3h2v1h-2zM34 3h2v1h-2zM4 4h4v1h-4zM15 4h3v1h-3zM22 4h2v1h-2zM33 4h5v1h-5zM2 5h3v1h-3zM7 5h2v1h-2zM14 5h3v1h-3zM23 5h3v1h-3zM32 5h2v1h-2zM36 5h3v1h-3zM41 5h2v1h-2zM0 6h4v1h-4zM8 6h3v1h-3zM13 6h2v1h-2zM24 6h4v1h-4zM30 6h3v1h-3zM38 6h6v1h-6zM46 6h2v1h-2zM0 7h2v1h-2zM9 7h5v1h-5zM26 7h6v1h-6zM39 7h2v1h-2zM43 7h5v1h-5z'/%3E%3Cpath fill='%23c9d9ec' d='M19 3h2v1h-2zM18 4h4v1h-4zM5 5h2v1h-2zM17 5h6v1h-6zM34 5h2v1h-2zM4 6h4v1h-4zM15 6h9v1h-9zM33 6h5v1h-5zM2 7h7v1h-7zM14 7h12v1h-12zM32 7h7v1h-7zM41 7h2v1h-2z'/%3E%3C/svg%3E") left bottom / 192px 32px repeat-x; }

/* Neige en blocs posée sur les cartes de téléchargement */
.download-counter, .dl-card, .dl-exe { position: relative; }
.download-counter::before, .dl-card::before, .dl-exe::before {
    content: "";
    position: absolute;
    top: -1px; left: -1px; right: -1px;
    height: 16px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 4' shape-rendering='crispEdges'%3E%3Cpath fill='%23f2f7fd' d='M0 0h9v1h-9zM11 0h5v1h-5zM17 0h7v1h-7zM0 1h2v1h-2zM4 1h4v1h-4zM12 1h2v1h-2zM18 1h6v1h-6zM5 2h2v1h-2zM19 2h2v1h-2z'/%3E%3Cpath fill='%23c9d9ec' d='M9 0h2v1h-2zM16 0h1v1h-1zM2 1h2v1h-2zM8 1h1v1h-1zM11 1h1v1h-1zM14 1h2v1h-2zM17 1h1v1h-1zM0 2h2v1h-2zM4 2h1v1h-1zM7 2h1v1h-1zM12 2h2v1h-2zM18 2h1v1h-1zM21 2h3v1h-3zM5 3h2v1h-2zM19 3h2v1h-2z'/%3E%3C/svg%3E") left top / 96px 16px repeat-x;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    pointer-events: none;
}

/* Sapins enneigés posés sur le pied de page */
#site-footer { position: relative; }
#site-footer::before {
    content: "";
    position: absolute;
    left: 0; right: 0;
    bottom: 100%;
    height: 84px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 21' shape-rendering='crispEdges'%3E%3Cpath fill='%23ffc83d' d='M32 4h2v1h-2zM32 5h2v1h-2z'/%3E%3Cpath fill='%23f2f7fd' d='M32 6h2v1h-2zM31 7h1v1h-1zM34 7h1v1h-1zM30 8h1v1h-1zM35 8h1v1h-1zM9 9h2v1h-2zM65 9h2v1h-2zM8 10h1v1h-1zM11 10h1v1h-1zM30 10h1v1h-1zM35 10h1v1h-1zM64 10h1v1h-1zM67 10h1v1h-1zM7 11h1v1h-1zM12 11h1v1h-1zM29 11h1v1h-1zM36 11h1v1h-1zM63 11h1v1h-1zM68 11h1v1h-1zM54 12h2v1h-2zM7 13h1v1h-1zM12 13h1v1h-1zM29 13h1v1h-1zM36 13h1v1h-1zM53 13h1v1h-1zM56 13h1v1h-1zM63 13h1v1h-1zM68 13h1v1h-1zM6 14h1v1h-1zM13 14h1v1h-1zM28 14h1v1h-1zM37 14h1v1h-1zM52 14h1v1h-1zM57 14h1v1h-1zM62 14h1v1h-1zM69 14h1v1h-1zM6 16h1v1h-1zM13 16h1v1h-1zM28 16h1v1h-1zM37 16h1v1h-1zM52 16h1v1h-1zM57 16h1v1h-1zM62 16h1v1h-1zM69 16h1v1h-1zM5 17h1v1h-1zM14 17h1v1h-1zM27 17h1v1h-1zM38 17h1v1h-1zM51 17h1v1h-1zM58 17h1v1h-1zM61 17h1v1h-1zM70 17h1v1h-1z'/%3E%3Cpath fill='%231f6b43' d='M32 7h1v1h-1zM31 8h2v1h-2zM29 9h4v1h-4zM9 10h1v1h-1zM31 10h2v1h-2zM65 10h1v1h-1zM8 11h2v1h-2zM30 11h3v1h-3zM64 11h2v1h-2zM6 12h4v1h-4zM28 12h5v1h-5zM62 12h4v1h-4zM8 13h2v1h-2zM30 13h3v1h-3zM54 13h1v1h-1zM64 13h2v1h-2zM7 14h3v1h-3zM29 14h4v1h-4zM53 14h2v1h-2zM63 14h3v1h-3zM5 15h5v1h-5zM27 15h6v1h-6zM51 15h4v1h-4zM61 15h5v1h-5zM7 16h3v1h-3zM29 16h4v1h-4zM53 16h2v1h-2zM63 16h3v1h-3zM6 17h4v1h-4zM28 17h5v1h-5zM52 17h3v1h-3zM62 17h4v1h-4zM4 18h6v1h-6zM26 18h7v1h-7zM50 18h5v1h-5zM60 18h6v1h-6z'/%3E%3Cpath fill='%2317523a' d='M33 7h1v1h-1zM33 8h2v1h-2zM33 9h4v1h-4zM10 10h1v1h-1zM33 10h2v1h-2zM66 10h1v1h-1zM10 11h2v1h-2zM33 11h3v1h-3zM66 11h2v1h-2zM10 12h4v1h-4zM33 12h5v1h-5zM66 12h4v1h-4zM10 13h2v1h-2zM33 13h3v1h-3zM55 13h1v1h-1zM66 13h2v1h-2zM10 14h3v1h-3zM33 14h4v1h-4zM55 14h2v1h-2zM66 14h3v1h-3zM10 15h5v1h-5zM33 15h6v1h-6zM55 15h4v1h-4zM66 15h5v1h-5zM10 16h3v1h-3zM33 16h4v1h-4zM55 16h2v1h-2zM66 16h3v1h-3zM10 17h4v1h-4zM33 17h5v1h-5zM55 17h3v1h-3zM66 17h4v1h-4zM10 18h6v1h-6zM33 18h7v1h-7zM55 18h5v1h-5zM66 18h6v1h-6z'/%3E%3Cpath fill='%235a3a22' d='M9 19h2v1h-2zM32 19h2v1h-2zM54 19h2v1h-2zM65 19h2v1h-2zM9 20h2v1h-2zM32 20h2v1h-2zM54 20h2v1h-2zM65 20h2v1h-2z'/%3E%3C/svg%3E") left bottom / 288px 84px repeat-x;
    pointer-events: none;
}
#site-footer::after {
    content: "";
    position: absolute;
    top: -1px; left: 0; right: 0;
    height: 16px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 4' shape-rendering='crispEdges'%3E%3Cpath fill='%23f2f7fd' d='M0 0h9v1h-9zM11 0h5v1h-5zM17 0h7v1h-7zM0 1h2v1h-2zM4 1h4v1h-4zM12 1h2v1h-2zM18 1h6v1h-6zM5 2h2v1h-2zM19 2h2v1h-2z'/%3E%3Cpath fill='%23c9d9ec' d='M9 0h2v1h-2zM16 0h1v1h-1zM2 1h2v1h-2zM8 1h1v1h-1zM11 1h1v1h-1zM14 1h2v1h-2zM17 1h1v1h-1zM0 2h2v1h-2zM4 2h1v1h-1zM7 2h1v1h-1zM12 2h2v1h-2zM18 2h1v1h-1zM21 2h3v1h-3zM5 3h2v1h-2zM19 3h2v1h-2z'/%3E%3C/svg%3E") left top / 96px 16px repeat-x;
    pointer-events: none;
}
.noel-pied {
    text-align: center;
    font-weight: 700;
    color: var(--noel-or-texte);
    margin-bottom: 26px;
}

/* Sur téléphone, les sections sont moins espacées : sapins plus petits */
@media (max-width: 768px) {
    #site-footer::before { height: 63px; background-size: 216px 63px; }
}

@media (prefers-reduced-motion: reduce) {
    .noel-ampoule::after { animation: none; }
}
