* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Orbitron', sans-serif;
}

body {
    background-color: #050505;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

/* Fundo Estelar */
.stars {
    position: absolute;
    width: 200%; height: 200%;
    background-image: radial-gradient(1px 1px at 20px 30px, #fff, transparent), 
                      radial-gradient(1.5px 1.5px at 100px 150px, rgba(10, 189, 227, 0.4), transparent);
    background-repeat: repeat;
    background-size: 250px 250px;
    animation: move 150s linear infinite;
    z-index: -1;
}
@keyframes move { from {transform: translate(0,0);} to {transform: translate(-50%, -50%);} }

.nav-menu {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.nav-menu a {
    text-decoration: none;
    font-size: 3.5rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 8px;
    position: relative;
    display: inline-block;
    padding: 5px 20px;
    cursor: pointer;

    /* ESTADO INICIAL: VAZADO BRANCO */
    color: transparent;
    -webkit-text-stroke: 1px rgba(255, 255, 255, 0.7);
    
    /* GRADIENTE DE PREENCHIMENTO (AZUL) */
    background: linear-gradient(to right, #0abde3 50%, transparent 50%);
    background-size: 200% 100%;
    background-position: 100% 0;
    -webkit-background-clip: text;
    
    /* Transição sincronizada */
    transition: background-position 0.7s cubic-bezier(0.19, 1, 0.22, 1), 
                -webkit-text-stroke 0.7s cubic-bezier(0.19, 1, 0.22, 1);
}

/* A BARRA AZUL QUE PASSA EM CIMA */
.nav-menu a::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 6px;
    height: 100%;
    background: #0abde3;
    box-shadow: 0 0 20px #0abde3, 0 0 40px #0abde3;
    z-index: 10; /* Garante que está em cima da letra */
    transition: left 0.7s cubic-bezier(0.19, 1, 0.22, 1);
    pointer-events: none;
}

/* HOVER: AÇÃO DO SCANNER */
.nav-menu a:hover {
    background-position: 0% 0; /* Preenche de azul */
    -webkit-text-stroke: 1px #0abde3; /* Borda fica azul junto */
}

.nav-menu a:hover::before {
    left: 100%; /* A barra atravessa a palavra até o final */
}

/* Partículas para a desintegração no clique */
.particle { display: inline-block; transition: all 0.8s ease-out; }