/* ==================== SUBTLE PARTICLE SYSTEM ==================== */
.particles {
    position: fixed;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: 1;
}

/* Subtle noise texture */
.particles::after {
    content: '';
    position: fixed;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.02'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 1;
    opacity: 0.4;
}

/* Base particle styles */
.particle {
    position: absolute;
    width: 3px;
    height: 3px;
    background: var(--brand-gold-dim, rgba(255, 215, 0, 0.4));
    border-radius: 50%;
    animation: particleFloat var(--duration, 20s) linear infinite;
    opacity: 0;
}

/* 8 particles with varied positions and timings */
.particle:nth-child(1) {
    --duration: 18s;
    left: 8%;
    animation-delay: 0s;
}

.particle:nth-child(2) {
    --duration: 22s;
    left: 22%;
    animation-delay: 3s;
    background: rgba(255, 71, 87, 0.3);
}

.particle:nth-child(3) {
    --duration: 25s;
    left: 35%;
    animation-delay: 6s;
}

.particle:nth-child(4) {
    --duration: 20s;
    left: 48%;
    animation-delay: 2s;
    background: rgba(255, 71, 87, 0.3);
}

.particle:nth-child(5) {
    --duration: 24s;
    left: 62%;
    animation-delay: 5s;
}

.particle:nth-child(6) {
    --duration: 19s;
    left: 75%;
    animation-delay: 1s;
    background: rgba(255, 71, 87, 0.3);
}

.particle:nth-child(7) {
    --duration: 23s;
    left: 85%;
    animation-delay: 4s;
}

.particle:nth-child(8) {
    --duration: 21s;
    left: 92%;
    animation-delay: 7s;
    background: rgba(255, 71, 87, 0.3);
}

@keyframes particleFloat {
    0% {
        transform: translateY(100vh) translateX(0);
        opacity: 0;
    }
    5% {
        opacity: 0.6;
    }
    95% {
        opacity: 0.6;
    }
    100% {
        transform: translateY(-50px) translateX(30px);
        opacity: 0;
    }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    .particle {
        animation: none;
        opacity: 0.3;
        top: 50%;
    }
}
