.login-effect {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    pointer-events: none; z-index: 9999; overflow: hidden;
}

.lightning_yellow-effect {
    animation: flashYellow 0.15s ease-in-out 3;
}
@keyframes flashYellow {
    0%, 100% { background: transparent; }
    50% { background: rgba(255, 255, 0, 0.4); box-shadow: inset 0 0 100px white; }
}

.neon_ring-effect::after {
    content: ''; position: absolute; top: 50%; left: 50%;
    width: 10px; height: 10px; border: 5px solid #00f3ff;
    border-radius: 50%; transform: translate(-50%, -50%);
    animation: ringExpand 2s ease-out forwards;
    box-shadow: 0 0 20px #00f3ff, inset 0 0 20px #00f3ff;
}
@keyframes ringExpand {
    0% { width: 0; height: 0; opacity: 1; border-width: 20px; }
    100% { width: 150vw; height: 150vw; opacity: 0; border-width: 2px; }
}

.matrix-particle {
    position: absolute; top: -50px; color: #00ff41;
    font-family: monospace; font-size: 20px;
    text-shadow: 0 0 5px #00ff41; animation: fall linear forwards 3s;
}

.ember-particle {
    position: absolute; bottom: -20px; width: 8px; height: 8px;
    border-radius: 50%; filter: blur(2px);
    animation: riseUp linear forwards 3s;
}

.particle {
    position: absolute; top: -50px; font-size: 25px;
    animation: fall linear forwards 3.5s;
}

.rainbow-effect {
    background: linear-gradient(90deg, rgba(255,0,0,0.1), rgba(0,255,0,0.1), rgba(0,0,255,0.1));
    animation: rainbowShift 4s infinite linear;
}

@keyframes fall {
    to { transform: translateY(110vh) rotate(360deg); opacity: 0.3; }
}

@keyframes riseUp {
    to { transform: translateY(-110vh) translateX(50px); opacity: 0; }
}

@keyframes rainbowShift {
    from { filter: hue-rotate(0deg); }
    to { filter: hue-rotate(360deg); }
}

.firework-particle {
    position: absolute; width: 5px; height: 5px; border-radius: 50%;
    animation: explode 1.5s ease-out forwards;
}
@keyframes explode {
    0% { transform: translate(0,0) scale(1); opacity: 1; }
    100% { transform: translate(var(--x), var(--y)) scale(0.1); opacity: 0; }
}

.fade-out { opacity: 0; transition: opacity 0.5s; }
