.season-overlay {
    pointer-events: none;
    position: fixed;
    inset: 0;
    z-index: 50;
    overflow: hidden;
}
.theme-normal .season-overlay { display: none; }

.theme-christmas .season-overlay::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 12% 8%, rgba(255,255,255,.55) 0 2px, transparent 3px),
        radial-gradient(circle at 78% 14%, rgba(255,215,140,.35) 0 2px, transparent 3px),
        radial-gradient(circle at 40% 4%, rgba(255,255,255,.4) 0 1px, transparent 2px);
    animation: drift 18s linear infinite;
}
.theme-christmas .brand-ring {
    box-shadow: 0 0 18px rgba(255, 215, 140, .45), 0 10px 22px rgba(90,60,20,.22);
}

.theme-sinterklaas .site-header::after {
    content: "";
    position: absolute;
    left: 8%; right: 8%; top: 6px;
    height: 4px;
    background: repeating-linear-gradient(90deg, #9b2b2b 0 14px, #f4ead6 14px 28px);
    opacity: .35;
    border-radius: 4px;
}

.theme-pasen .season-overlay::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 8% 90%, rgba(244, 214, 176, .45) 0 18px, transparent 19px),
        radial-gradient(circle at 92% 88%, rgba(216, 186, 220, .35) 0 14px, transparent 15px);
}

.theme-halloween .season-overlay::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(80,40,10,.04), transparent 30%, rgba(80,40,10,.05));
}
.theme-halloween .btn-gold { background: #b56a2b; }

.theme-zomer .season-overlay::before {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(600px 180px at 80% 0%, rgba(255, 214, 120, .18), transparent 70%);
}

.flake {
    position: absolute;
    top: -10px;
    color: rgba(255,255,255,.8);
    font-size: 10px;
    animation: fall linear infinite;
}
@keyframes fall {
    to { transform: translateY(105vh); }
}
@keyframes drift {
    from { background-position: 0 0, 0 0, 0 0; }
    to { background-position: 0 40px, 20px 60px, -10px 30px; }
}
