/**
 * AvianVisit — استایل‌های مناسبتی و فصلی
 *
 * بارش برف، برگ‌ریزان، شکوفه بهار، کریسمس، بلک‌فرایدی، روز/شب
 *
 * @package    AvianVisit
 * @author     محسن فولادی <m.fuladi@yahoo.com>
 * @since      3.0.0
 */

/* ═══════════════════════════════════════════════════════════════
   لایه پس‌زمینه فصلی
   ═══════════════════════════════════════════════════════════════ */

.av-seasonal-layer {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

/* ── ذرات فصلی (shared) ─────────────────────────────────── */
.av-seasonal-particle {
    position: absolute;
    pointer-events: none;
    will-change: transform;
}

/* ═══════════════════════════════════════════════════════════════
   ❄️ زمستان — بارش برف
   ═══════════════════════════════════════════════════════════════ */

.av-snowflake {
    position: absolute;
    color: #fff;
    opacity: 0;
    animation: avSnowfall linear infinite;
    text-shadow: 0 0 6px rgba(200, 220, 255, 0.6);
}

@keyframes avSnowfall {
    0%   { opacity: 0; transform: translateY(-20px) rotate(0deg) translateX(0); }
    10%  { opacity: 0.8; }
    90%  { opacity: 0.6; }
    100% { opacity: 0; transform: translateY(100vh) rotate(360deg) translateX(40px); }
}

/* ═══════════════════════════════════════════════════════════════
   🍂 پاییز — برگ‌ریزان
   ═══════════════════════════════════════════════════════════════ */

.av-leaf {
    position: absolute;
    font-size: 20px;
    opacity: 0;
    animation: avLeafFall linear infinite;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
}

@keyframes avLeafFall {
    0%   { opacity: 0; transform: translateY(-30px) rotate(0deg) translateX(0); }
    10%  { opacity: 0.85; }
    50%  { transform: translateY(50vh) rotate(180deg) translateX(60px); }
    90%  { opacity: 0.5; }
    100% { opacity: 0; transform: translateY(100vh) rotate(360deg) translateX(-30px); }
}

/* ═══════════════════════════════════════════════════════════════
   🌸 بهار — شکوفه‌ها
   ═══════════════════════════════════════════════════════════════ */

.av-blossom {
    position: absolute;
    font-size: 16px;
    opacity: 0;
    animation: avBlossomDrift linear infinite;
    filter: drop-shadow(0 2px 6px rgba(255, 182, 193, 0.4));
}

@keyframes avBlossomDrift {
    0%   { opacity: 0; transform: translateY(-20px) rotate(0deg) scale(0.8); }
    10%  { opacity: 0.9; }
    50%  { transform: translateY(50vh) rotate(180deg) translateX(50px) scale(1); }
    90%  { opacity: 0.4; }
    100% { opacity: 0; transform: translateY(100vh) rotate(340deg) translateX(-20px) scale(0.6); }
}

/* ═══════════════════════════════════════════════════════════════
   🎄 کریسمس — درخت متحرک + ستاره
   ═══════════════════════════════════════════════════════════════ */

.av-christmas-tree {
    position: absolute;
    bottom: 20px;
    font-size: 80px;
    animation: avTreeGlow 2s ease-in-out infinite alternate;
    filter: drop-shadow(0 0 20px rgba(34, 197, 94, 0.4));
    z-index: 2;
}
.av-christmas-tree-left  { left: 30px; }
.av-christmas-tree-right { right: 30px; transform: scaleX(-1); }

@keyframes avTreeGlow {
    0%   { filter: drop-shadow(0 0 15px rgba(34, 197, 94, 0.3)); }
    100% { filter: drop-shadow(0 0 30px rgba(34, 197, 94, 0.6)); }
}

.av-christmas-star {
    position: absolute;
    font-size: 24px;
    animation: avStarTwinkle 1.5s ease-in-out infinite alternate;
}

@keyframes avStarTwinkle {
    0%   { opacity: 0.4; transform: scale(0.8); }
    100% { opacity: 1; transform: scale(1.2); }
}

.av-christmas-light {
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    animation: avLightBlink 1s ease-in-out infinite alternate;
}

@keyframes avLightBlink {
    0%   { opacity: 0.3; box-shadow: 0 0 4px currentColor; }
    100% { opacity: 1; box-shadow: 0 0 12px currentColor; }
}

/* ═══════════════════════════════════════════════════════════════
   💜 بلک‌فرایدی — نئون
   ═══════════════════════════════════════════════════════════════ */

.av-neon-line {
    position: absolute;
    height: 2px;
    background: linear-gradient(90deg, transparent, #a855f7, #ec4899, transparent);
    animation: avNeonSlide linear infinite;
    opacity: 0.6;
    filter: blur(1px);
}

@keyframes avNeonSlide {
    0%   { transform: translateX(-100%); }
    100% { transform: translateX(100vw); }
}

.av-neon-glow {
    position: absolute;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(168, 85, 247, 0.15) 0%, transparent 70%);
    animation: avNeonPulse 3s ease-in-out infinite;
}

@keyframes avNeonPulse {
    0%, 100% { opacity: 0.3; transform: scale(1); }
    50%      { opacity: 0.7; transform: scale(1.2); }
}

/* ═══════════════════════════════════════════════════════════════
   ☀️🌙 روز / شب — خورشید و ماه و ستاره
   ═══════════════════════════════════════════════════════════════ */

.av-sun {
    position: absolute;
    top: 30px;
    right: 40px;
    font-size: 48px;
    animation: avSunRotate 20s linear infinite;
    filter: drop-shadow(0 0 20px rgba(250, 204, 21, 0.5));
}

@keyframes avSunRotate {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.av-moon {
    position: absolute;
    top: 30px;
    left: 40px;
    font-size: 40px;
    filter: drop-shadow(0 0 15px rgba(148, 163, 184, 0.5));
    animation: avMoonFloat 6s ease-in-out infinite;
}

@keyframes avMoonFloat {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-8px); }
}

.av-star-bg {
    position: absolute;
    width: 3px;
    height: 3px;
    background: #fff;
    border-radius: 50%;
    animation: avStarTwinkle 2s ease-in-out infinite;
}

/* ═══════════════════════════════════════════════════════════════
   گرادیان‌های پس‌زمینه فصلی
   ═══════════════════════════════════════════════════════════════ */

.av-bg-winter {
    background: linear-gradient(135deg, #0c1445 0%, #1a237e 30%, #283593 60%, #1565c0 100%);
}
.av-bg-spring {
    background: linear-gradient(135deg, #fce4ec 0%, #f8bbd0 30%, #e1bee7 60%, #d1c4e9 100%);
}
.av-bg-autumn {
    background: linear-gradient(135deg, #3e2723 0%, #4e342e 30%, #5d4037 60%, #6d4c41 100%);
}
.av-bg-christmas {
    background: linear-gradient(135deg, #1b5e20 0%, #2e7d32 30%, #c62828 60%, #b71c1c 100%);
}
.av-bg-blackfriday {
    background: linear-gradient(135deg, #0a0a0a 0%, #1a0033 30%, #2d004f 60%, #0a0a0a 100%);
}
.av-bg-day {
    background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 30%, #90caf9 60%, #64b5f6 100%);
}
.av-bg-night {
    background: linear-gradient(135deg, #0d1b2a 0%, #1b2838 30%, #162447 60%, #1f4068 100%);
}
.av-bg-default {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
