/*
 * 805StreetFoods - Seasonal Effects CSS
 * Auto-switching festive themes throughout the year
 */

/* ==================== SEASONAL CSS VARIABLES ==================== */

:root {
    /* Default - No seasonal override */
    --seasonal-accent: var(--accent-primary);
    --seasonal-glow: var(--glow-primary);
}

/* Season-specific overrides applied via JS */
[data-season="winter"] {
    --seasonal-accent: #E63946;
    --seasonal-secondary: #FFD700;
    --seasonal-glow: rgba(230, 57, 70, 0.5);
}

[data-season="newYear"] {
    --seasonal-accent: #FFD700;
    --seasonal-secondary: #C0C0C0;
    --seasonal-glow: rgba(255, 215, 0, 0.5);
}

[data-season="valentine"] {
    --seasonal-accent: #E91E63;
    --seasonal-secondary: #F48FB1;
    --seasonal-glow: rgba(233, 30, 99, 0.5);
}

[data-season="stPatrick"] {
    --seasonal-accent: #2E7D32;
    --seasonal-secondary: #FFD700;
    --seasonal-glow: rgba(46, 125, 50, 0.5);
}

[data-season="spring"] {
    --seasonal-accent: #EC407A;
    --seasonal-secondary: #81C784;
    --seasonal-glow: rgba(236, 64, 122, 0.5);
}

[data-season="fourthOfJuly"] {
    --seasonal-accent: #B71C1C;
    --seasonal-secondary: #1565C0;
    --seasonal-glow: rgba(183, 28, 28, 0.5);
}

[data-season="halloween"] {
    --seasonal-accent: #FF6F00;
    --seasonal-secondary: #7B1FA2;
    --seasonal-glow: rgba(255, 111, 0, 0.5);
}

[data-season="fall"] {
    --seasonal-accent: #BF360C;
    --seasonal-secondary: #F57C00;
    --seasonal-glow: rgba(191, 54, 12, 0.5);
}

/* ==================== SEASONAL CONTAINER ==================== */

.seasonal-effects-container {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9998;
    overflow: hidden;
}

/* ==================== SNOWFALL EFFECT (Winter) ==================== */

.snowflake {
    position: absolute;
    top: -20px;
    color: white;
    font-size: var(--snow-size, 1rem);
    opacity: var(--snow-opacity, 0.8);
    animation: snowfall var(--snow-duration, 10s) linear infinite;
    animation-delay: var(--snow-delay, 0s);
    text-shadow: 0 0 5px rgba(255, 255, 255, 0.5);
}

@keyframes snowfall {
    0% {
        transform: translateY(-20px) rotate(0deg) translateX(0);
        opacity: var(--snow-opacity, 0.8);
    }
    50% {
        transform: translateY(50vh) rotate(180deg) translateX(var(--snow-drift, 30px));
    }
    100% {
        transform: translateY(100vh) rotate(360deg) translateX(calc(var(--snow-drift, 30px) * -1));
        opacity: 0;
    }
}

/* ==================== STRING LIGHTS (Winter/Halloween/July 4th/New Year) ==================== */

.string-lights {
    position: fixed;
    top: 60px;
    left: 0;
    right: 0;
    height: 50px;
    z-index: 100;
    pointer-events: none;
    overflow: visible;
}

.string-lights-wire {
    position: absolute;
    top: 15px;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(50, 50, 50, 0.8) 5%,
        rgba(50, 50, 50, 0.8) 95%,
        transparent 100%
    );
}

.light-bulb {
    position: absolute;
    width: 12px;
    height: 16px;
    border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
    top: 18px;
    animation: bulb-glow 1.5s ease-in-out infinite alternate;
    box-shadow:
        0 0 10px var(--bulb-color),
        0 0 20px var(--bulb-color),
        0 0 30px var(--bulb-color);
}

.light-bulb::before {
    content: '';
    position: absolute;
    top: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 6px;
    height: 6px;
    background: #444;
    border-radius: 2px;
}

@keyframes bulb-glow {
    0% {
        opacity: 0.7;
        filter: brightness(0.8);
    }
    100% {
        opacity: 1;
        filter: brightness(1.3);
    }
}

/* Light colors for different seasons */
.light-bulb.red { --bulb-color: #ff3333; background: radial-gradient(circle at 30% 30%, #ff6666, #cc0000); }
.light-bulb.green { --bulb-color: #33ff33; background: radial-gradient(circle at 30% 30%, #66ff66, #00cc00); }
.light-bulb.blue { --bulb-color: #3333ff; background: radial-gradient(circle at 30% 30%, #6666ff, #0000cc); }
.light-bulb.yellow { --bulb-color: #ffff33; background: radial-gradient(circle at 30% 30%, #ffff66, #cccc00); }
.light-bulb.orange { --bulb-color: #ff9933; background: radial-gradient(circle at 30% 30%, #ffaa66, #cc6600); }
.light-bulb.purple { --bulb-color: #9933ff; background: radial-gradient(circle at 30% 30%, #aa66ff, #6600cc); }
.light-bulb.white { --bulb-color: #ffffff; background: radial-gradient(circle at 30% 30%, #ffffff, #cccccc); }
.light-bulb.gold { --bulb-color: #FFD700; background: radial-gradient(circle at 30% 30%, #FFE44D, #B8860B); }
.light-bulb.silver { --bulb-color: #C0C0C0; background: radial-gradient(circle at 30% 30%, #E8E8E8, #808080); }

/* ==================== FLOATING HEARTS (Valentine's) ==================== */

.floating-heart {
    position: absolute;
    bottom: -50px;
    font-size: var(--heart-size, 1.5rem);
    opacity: var(--heart-opacity, 0.7);
    animation: float-up var(--heart-duration, 12s) linear infinite;
    animation-delay: var(--heart-delay, 0s);
    filter: drop-shadow(0 0 8px rgba(233, 30, 99, 0.5));
}

@keyframes float-up {
    0% {
        transform: translateY(0) translateX(0) rotate(0deg) scale(1);
        opacity: 0;
    }
    10% {
        opacity: var(--heart-opacity, 0.7);
    }
    90% {
        opacity: var(--heart-opacity, 0.7);
    }
    100% {
        transform: translateY(-110vh) translateX(var(--heart-drift, 50px)) rotate(var(--heart-rotation, 30deg)) scale(0.8);
        opacity: 0;
    }
}

/* ==================== SHAMROCKS (St. Patrick's) ==================== */

.floating-shamrock {
    position: absolute;
    top: -50px;
    font-size: var(--shamrock-size, 1.5rem);
    opacity: var(--shamrock-opacity, 0.8);
    animation: shamrock-fall var(--shamrock-duration, 12s) linear infinite;
    animation-delay: var(--shamrock-delay, 0s);
    filter: drop-shadow(0 0 5px rgba(46, 125, 50, 0.4));
}

@keyframes shamrock-fall {
    0% {
        transform: translateY(0) rotate(0deg);
        opacity: 0;
    }
    10% {
        opacity: var(--shamrock-opacity, 0.8);
    }
    100% {
        transform: translateY(110vh) rotate(360deg) translateX(var(--shamrock-drift, 30px));
        opacity: 0;
    }
}

/* ==================== CHERRY BLOSSOMS (Spring) ==================== */

.cherry-blossom {
    position: absolute;
    top: -30px;
    font-size: var(--blossom-size, 1.2rem);
    opacity: var(--blossom-opacity, 0.8);
    animation: blossom-fall var(--blossom-duration, 15s) ease-in-out infinite;
    animation-delay: var(--blossom-delay, 0s);
    filter: drop-shadow(0 0 3px rgba(255, 182, 193, 0.5));
}

@keyframes blossom-fall {
    0% {
        transform: translateY(0) translateX(0) rotate(0deg);
        opacity: 0;
    }
    10% {
        opacity: var(--blossom-opacity, 0.8);
    }
    25% {
        transform: translateY(25vh) translateX(var(--blossom-drift, 40px)) rotate(90deg);
    }
    50% {
        transform: translateY(50vh) translateX(calc(var(--blossom-drift, 40px) * -0.5)) rotate(180deg);
    }
    75% {
        transform: translateY(75vh) translateX(var(--blossom-drift, 40px)) rotate(270deg);
    }
    100% {
        transform: translateY(110vh) translateX(0) rotate(360deg);
        opacity: 0;
    }
}

/* ==================== FALLING LEAVES (Fall) ==================== */

.falling-leaf {
    position: absolute;
    top: -40px;
    font-size: var(--leaf-size, 1.5rem);
    opacity: var(--leaf-opacity, 0.8);
    animation: leaf-fall var(--leaf-duration, 12s) ease-in-out infinite;
    animation-delay: var(--leaf-delay, 0s);
}

@keyframes leaf-fall {
    0% {
        transform: translateY(0) translateX(0) rotate(0deg);
        opacity: 0;
    }
    10% {
        opacity: var(--leaf-opacity, 0.8);
    }
    25% {
        transform: translateY(25vh) translateX(var(--leaf-drift, 60px)) rotate(90deg);
    }
    50% {
        transform: translateY(50vh) translateX(calc(var(--leaf-drift, 60px) * -1)) rotate(180deg);
    }
    75% {
        transform: translateY(75vh) translateX(var(--leaf-drift, 60px)) rotate(270deg);
    }
    100% {
        transform: translateY(110vh) translateX(calc(var(--leaf-drift, 60px) * -0.5)) rotate(360deg);
        opacity: 0;
    }
}

/* ==================== FIREWORKS (4th of July / New Year) ==================== */

.fireworks-canvas {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9997;
    background: transparent;
}

/* ==================== SPIDER WEBS (Halloween) ==================== */

.spider-web {
    position: fixed;
    width: 150px;
    height: 150px;
    opacity: 0.3;
    pointer-events: none;
    z-index: 99;
}

.spider-web.top-left {
    top: 60px;
    left: 0;
}

.spider-web.top-right {
    top: 60px;
    right: 0;
    transform: scaleX(-1);
}

.spider-web svg {
    width: 100%;
    height: 100%;
}

.spider {
    position: fixed;
    font-size: 1.2rem;
    animation: spider-descend 4s ease-in-out infinite alternate;
    z-index: 100;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
}

.spider::before {
    content: '';
    position: absolute;
    top: -100px;
    left: 50%;
    width: 1px;
    height: 100px;
    background: linear-gradient(to bottom, transparent, rgba(255,255,255,0.3));
}

@keyframes spider-descend {
    0% { transform: translateY(0); }
    100% { transform: translateY(40px); }
}

/* ==================== SEASONAL BADGE (Shows current season) ==================== */

.seasonal-badge {
    position: fixed;
    bottom: 100px;
    right: 20px;
    background: var(--glass-white);
    backdrop-filter: var(--blur-md);
    -webkit-backdrop-filter: var(--blur-md);
    border: 1px solid var(--glass-white-border);
    border-radius: var(--radius-full);
    padding: 8px 16px;
    font-size: 0.85rem;
    color: var(--text-glass-primary);
    display: flex;
    align-items: center;
    gap: 8px;
    z-index: 1000;
    cursor: pointer;
    transition: var(--transition-base);
    box-shadow: var(--glass-shadow);
}

.seasonal-badge:hover {
    background: var(--glass-white-strong);
    transform: scale(1.05);
}

.seasonal-badge .emoji {
    font-size: 1.2rem;
}

/* Hide badge on mobile to save space */
@media (max-width: 768px) {
    .seasonal-badge {
        bottom: 80px;
        right: 10px;
        padding: 6px 12px;
        font-size: 0.75rem;
    }
}

/* ==================== REDUCED MOTION ==================== */

@media (prefers-reduced-motion: reduce) {
    .snowflake,
    .floating-heart,
    .floating-shamrock,
    .cherry-blossom,
    .falling-leaf,
    .light-bulb,
    .spider {
        animation: none !important;
    }

    .fireworks-canvas {
        display: none;
    }
}

/* ==================== SEASONAL TOGGLE BUTTON ==================== */

.seasonal-toggle {
    position: fixed;
    bottom: 160px;
    right: 20px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--glass-white);
    backdrop-filter: var(--blur-md);
    -webkit-backdrop-filter: var(--blur-md);
    border: 1px solid var(--glass-white-border);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 1001;
    transition: var(--transition-base);
    box-shadow: var(--glass-shadow);
    font-size: 1.2rem;
}

.seasonal-toggle:hover {
    background: var(--glass-white-strong);
    transform: scale(1.1);
}

.seasonal-toggle.disabled {
    opacity: 0.5;
}

@media (max-width: 768px) {
    .seasonal-toggle {
        bottom: 140px;
        right: 10px;
        width: 40px;
        height: 40px;
    }
}
