/* ============================================
   DYNAMIC DATA TECHNOLOGIES
   Animated Tech Background Effects
   Green-Themed Particle & Gradient System
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

body {
    font-family: Inter, sans-serif;
}

/* Animated gradient background */
@keyframes jumbo {
    from {
        background-position: 50% 50%, 50% 50%;
    }
    to {
        background-position: 350% 50%, 350% 50%;
    }
}

@keyframes pulse {
    0%, 100% {
        opacity: 0.4;
    }
    50% {
        opacity: 0.8;
    }
}

@keyframes float {
    0%, 100% {
        transform: translateY(0) rotate(0deg);
    }
    50% {
        transform: translateY(-20px) rotate(2deg);
    }
}

.jumbo {
    --stripes: repeating-linear-gradient(
        100deg,
        transparent 0%,
        transparent 7%,
        rgba(76, 175, 80, 0.03) 10%,
        transparent 12%,
        transparent 16%
    );
    --stripesDark: repeating-linear-gradient(
        100deg,
        transparent 0%,
        transparent 7%,
        rgba(76, 175, 80, 0.05) 10%,
        transparent 12%,
        transparent 16%
    );
    --gradient: repeating-linear-gradient(
        100deg,
        #4caf50 10%,
        #1de9b6 15%,
        #4caf50 20%,
        #00e5ff 25%,
        #4caf50 30%
    );
    background-image: var(--stripesDark), var(--gradient);
    background-size: 300%, 200%;
    background-position: 50% 50%, 50% 50%;
    min-height: 100%;
    min-width: 100%;
    filter: blur(80px) opacity(40%) saturate(150%);
    mask-image: radial-gradient(ellipse at 100% 0%, black 40%, transparent 70%);
    pointer-events: none;
    animation: pulse 8s ease-in-out infinite;
}

.jumbo::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--stripesDark), var(--gradient);
    background-size: 200%, 100%;
    animation: jumbo 60s linear infinite;
    background-attachment: fixed;
    mix-blend-mode: soft-light;
}

.dark .jumbo {
    background-image: var(--stripesDark), var(--gradient);
    filter: blur(80px) opacity(50%) saturate(180%);
}

.dark .jumbo::after {
    background-image: var(--stripesDark), var(--gradient);
}

/* Floating Particles */
.particles {
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
}

.particle {
    position: absolute;
    width: 4px;
    height: 4px;
    background: radial-gradient(circle, rgba(76, 175, 80, 0.8), transparent);
    border-radius: 50%;
    animation: particleRise 15s linear infinite;
}

@keyframes particleRise {
    0% {
        transform: translateY(100vh) translateX(0);
        opacity: 0;
    }
    10% {
        opacity: 1;
    }
    90% {
        opacity: 1;
    }
    100% {
        transform: translateY(-100vh) translateX(50px);
        opacity: 0;
    }
}

/* Tech grid overlay */
.tech-grid {
    position: absolute;
    inset: 0;
    background-image: 
        linear-gradient(rgba(76, 175, 80, 0.02) 1px, transparent 1px),
        linear-gradient(90deg, rgba(76, 175, 80, 0.02) 1px, transparent 1px);
    background-size: 60px 60px;
    pointer-events: none;
    mask-image: radial-gradient(ellipse at center, black 30%, transparent 70%);
}

/* Glowing orbs */
.glow-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(60px);
    pointer-events: none;
    animation: orbFloat 20s ease-in-out infinite;
}

.glow-orb-1 {
    width: 400px;
    height: 400px;
    background: rgba(76, 175, 80, 0.15);
    top: -100px;
    right: -100px;
}

.glow-orb-2 {
    width: 300px;
    height: 300px;
    background: rgba(29, 233, 182, 0.1);
    bottom: -50px;
    left: -50px;
    animation-delay: -10s;
}

.glow-orb-3 {
    width: 200px;
    height: 200px;
    background: rgba(0, 229, 255, 0.08);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation-delay: -5s;
}

@keyframes orbFloat {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    25% {
        transform: translate(30px, -20px) scale(1.1);
    }
    50% {
        transform: translate(-20px, 30px) scale(0.95);
    }
    75% {
        transform: translate(25px, 15px) scale(1.05);
    }
}

/* Scan line effect */
.scan-line {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, 
        transparent, 
        rgba(76, 175, 80, 0.4), 
        rgba(29, 233, 182, 0.6),
        rgba(76, 175, 80, 0.4),
        transparent
    );
    animation: scanMove 8s ease-in-out infinite;
    pointer-events: none;
    opacity: 0.5;
}

@keyframes scanMove {
    0%, 100% {
        top: 0;
        opacity: 0;
    }
    10% {
        opacity: 0.5;
    }
    90% {
        opacity: 0.5;
    }
    100% {
        top: 100%;
        opacity: 0;
    }
}

/* Circuit pattern decoration */
.circuit-pattern {
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg stroke='%234caf50' stroke-opacity='0.03' stroke-width='1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    pointer-events: none;
    opacity: 0.5;
}

/* Data stream effect */
@keyframes dataStream {
    0% {
        background-position: 0 0;
    }
    100% {
        background-position: 0 100vh;
    }
}

.data-stream {
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
        0deg,
        transparent 0px,
        transparent 20px,
        rgba(76, 175, 80, 0.02) 20px,
        rgba(76, 175, 80, 0.02) 21px
    );
    animation: dataStream 30s linear infinite;
    pointer-events: none;
    opacity: 0.3;
}

/* Hexagon pattern */
.hex-pattern {
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%234caf50' fill-opacity='0.02'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    pointer-events: none;
    opacity: 0.6;
}
