@charset "utf-8";

/* Matrix Canvas */
.matrix-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0.3;
    z-index: 3;
}

/* Particle Container */
.particle-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}

/* Grid Lines */
.grid-lines {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}

.grid-line {
    position: absolute;
    background: linear-gradient(90deg,
        transparent 0%,
        rgba(0, 200, 255, 0.4) 50%,
        transparent 100%);
}

.grid-line--h {
    width: 100%;
    height: 2px;
    animation: moveHorizontal 8s ease-in-out infinite;
}

.grid-line--v {
    width: 2px;
    height: 100%;
    background: linear-gradient(180deg,
        transparent 0%,
        rgba(0, 200, 255, 0.4) 50%,
        transparent 100%);
    animation: moveVertical 8s ease-in-out infinite;
}

.grid-line--h.grid-line--1 {
    top: 30%;
    animation-delay: 0s;
}

.grid-line--h.grid-line--2 {
    top: 70%;
    animation-delay: 2s;
}

.grid-line--v.grid-line--1 {
    left: 25%;
    animation-delay: 1s;
}

.grid-line--v.grid-line--2 {
    left: 75%;
    animation-delay: 3s;
}

@keyframes moveHorizontal {
    0%, 100% {
        transform: translateY(-20px);
        opacity: 0.3;
    }
    50% {
        transform: translateY(20px);
        opacity: 0.8;
    }
}

@keyframes moveVertical {
    0%, 100% {
        transform: translateX(-20px);
        opacity: 0.3;
    }
    50% {
        transform: translateX(20px);
        opacity: 0.8;
    }
}

/* Particle Canvas */
.particle-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 4;
    pointer-events: none;
}

/* Data Particles */
.data-particles {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 5;
    pointer-events: none;
}

.data-particle {
    position: absolute;
    width: 10px;
    height: 10px;
    background: rgba(0, 255, 255, 0.9);
    border-radius: 50%;
    box-shadow: 0 0 25px rgba(0, 255, 255, 0.9),
                0 0 50px rgba(0, 255, 255, 0.5);
    transition: transform 0.3s ease;
    animation: particlePulse 2s ease-in-out infinite;
}

@keyframes particlePulse {
    0%, 100% {
        transform: scale(1);
        opacity: 0.7;
    }
    50% {
        transform: scale(1.3);
        opacity: 1;
    }
}