/* RESET */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* FUNDO CYBER */
body {
    background: radial-gradient(circle at top, #001a0f, #000);
    color: #00ff88;
    font-family: 'Segoe UI', sans-serif;
    overflow-x: hidden;
}

/* GRID BACKGROUND (efeito hacker) */
body::before {
    content: "";
    position: fixed;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(#00ff8822 1px, transparent 1px),
                      linear-gradient(90deg, #00ff8822 1px, transparent 1px);
    background-size: 40px 40px;
    z-index: -1;
}

/* LOGO ANIMADO */
img {
    filter: drop-shadow(0 0 10px #00ff88);
    animation: glow 2s infinite alternate;
}

@keyframes glow {
    from { filter: drop-shadow(0 0 5px #00ff88); }
    to { filter: drop-shadow(0 0 25px #00ff88); }
}

/* CARD */
.w3-card-4 {
    background: rgba(0, 0, 0, 0.85) !important;
    border: 1px solid #00ff88;
    box-shadow: 0 0 20px #00ff88;
    backdrop-filter: blur(10px);
}

/* HOVER CARD */
.w3-card-4:hover {
    transform: translateY(-5px) scale(1.03);
    box-shadow: 0 0 40px #00ff88;
}

/* BOTÃO CYBER */
.w3-btn {
    background: transparent !important;
    border: 1px solid #00ff88 !important;
    color: #00ff88 !important;
    position: relative;
    overflow: hidden;
}

/* EFEITO ENERGIA BOTÃO */
.w3-btn::before {
    content: "";
    position: absolute;
    width: 100%;
    height: 2px;
    background: #00ff88;
    top: 0;
    left: -100%;
    animation: energy 2s linear infinite;
}

@keyframes energy {
    0% { left: -100%; }
    100% { left: 100%; }
}

.w3-btn:hover {
    background: #00ff88 !important;
    color: #000 !important;
    box-shadow: 0 0 20px #00ff88;
}

/* MENU */
.menu {
    background: rgba(0,0,0,0.95) !important;
    border: 1px solid #00ff88;
    box-shadow: 0 0 20px #00ff88;
}

/* LINKS */
a {
    color: #00ff88 !important;
}

a:hover {
    text-shadow: 0 0 15px #00ff88;
}

/* TITULOS */
h1, h2, h3 {
    text-shadow: 0 0 15px #00ff88;
}

/* OVERLAY FULL SCREEN */
.overlay {
    background: rgba(0,0,0,0.97);
    backdrop-filter: blur(5px);
}

/* FUNDO IMAGENS */
.bg_video img {
    opacity: 0.05;
    filter: blur(3px);
}

/* SCANLINE (efeito monitor antigo) */
body::after {
    content: "";
    position: fixed;
    width: 100%;
    height: 100%;
    background: repeating-linear-gradient(
        to bottom,
        rgba(0,0,0,0.2) 0px,
        rgba(0,0,0,0.2) 1px,
        transparent 1px,
        transparent 3px
    );
    pointer-events: none;
}

/* RESPONSIVO */
@media (max-width: 768px) {
    .w3-third {
        width: 100% !important;
    }
}
.glitch {
    position: relative;
    color: #00ff88;
}

.glitch::before,
.glitch::after {
    content: attr(data-text);
    position: absolute;
    left: 0;
}

.glitch::before {
    animation: glitchTop 1s infinite;
    color: #0f0;
}

.glitch::after {
    animation: glitchBottom 1.5s infinite;
    color: #0ff;
}

@keyframes glitchTop {
    0% { transform: translate(0); }
    20% { transform: translate(-2px, -2px); }
    40% { transform: translate(2px, 2px); }
    60% { transform: translate(-1px, 1px); }
    100% { transform: translate(0); }
}

@keyframes glitchBottom {
    0% { transform: translate(0); }
    20% { transform: translate(2px, 2px); }
    40% { transform: translate(-2px, -2px); }
    60% { transform: translate(1px, -1px); }
    100% { transform: translate(0); }
}
.w3-padding-16 {
    text-align: center;
}

.typing {
    display: inline-block;
    overflow: hidden;
    border-right: 3px solid #00ff88;
    white-space: nowrap;
    width: 0;
    animation: typingLoop 6s steps(18, end) infinite,
               blink 0.7s infinite;
}

/* DIGITA + APAGA */
@keyframes typingLoop {
    0%   { width: 0 }
    40%  { width: 18ch }  /* digitou */
    60%  { width: 18ch }  /* pausa */
    100% { width: 0 }     /* apaga */
}

/* CURSOR */
@keyframes blink {
    50% { border-color: transparent }
}