html, body {
    overflow-x: hidden; /* Impede rolagem lateral acidental */
    width: 100%;
    margin: 0;
    padding: 0;
}

/* --- Base --- */
body { margin: 0; padding: 0; font-family: sans-serif; background-color: #050505; color: white; }

/* --- Navbar Principal --- */
.navbar { display: flex; justify-content: space-between; align-items: center; padding: 20px 50px; background-color: #050505; }

/* --- Lado Esquerdo e Logo --- */
.nav-left { display: flex; align-items: center; gap: 20px; }
.nav-left img { height: 40px; width: auto; max-width: 120px; display: block; } /* Limita o tamanho da logo */

.links { display: flex; gap: 25px; }
.links a { color: #ccc; text-decoration: none; font-size: 14px; }

/* --- Lado Direito --- */
.nav-right { display: flex; align-items: center; gap: 20px; }
.btn-cta { background-color: #007bff; color: white; text-decoration: none; padding: 10px 20px; border-radius: 50px; }
/* --- Desktop (Padrão) --- */
.menu-hamburguer { display: none; } /* Escondido por padrão no desktop */

/* --- Mobile (Responsivo) --- */
@media (max-width: 900px) {
    .navbar {
        display: flex;
        justify-content: space-between; /* Mantém os grupos alinhados nas pontas */
        align-items: center;
        padding: 15px 20px;
    }

    .nav-left {
        display: flex;
        align-items: center;
        gap: 15px; /* Espaço entre hambúrguer e logo */
    }

    .menu-hamburguer {
        display: block; /* Aparece no mobile */
        font-size: 24px;
        cursor: pointer;
    }

    .links {
        display: none; /* Esconde os links por padrão no mobile */
        flex-direction: column;
        position: absolute;
        top: 70px;
        left: 0;
        width: 100%;
        background: #050505;
        padding: 20px;
        align-items: center;
    }

    .links.active {
        display: flex; /* Mostra ao clicar */
    }
}

.icon-close {
    font-family: 'Courier New', monospace;
    font-size: 20px;
    font-weight: 900;
    color: #00ff41;
    white-space: nowrap;
    overflow: hidden;
    border-right: 3px solid #00ff41;
    display: inline-block;
    
    /* O 'infinite' aqui faz a mágica acontecer */
    animation: 
        digitar 3s steps(8) infinite, 
        piscar-cursor 0.7s infinite;
}

@keyframes digitar {
    0% { width: 0; }
    50% { width: 7.5ch; } /* Escreve até o fim */
    80% { width: 7.5ch; } /* Pausa um pouco no final */
    100% { width: 0; }    /* Apaga tudo para começar de novo */
}

body { margin: 0; background: #050505; color: #fff; font-family: sans-serif; }

.hero-container {
    display: flex; align-items: center; justify-content: space-between;
    padding: 100px 5%; min-height: 80vh; position: relative; overflow: hidden;
}

#heroCanvas { position: absolute; top: 0; left: 0; z-index: 0; }

.hero-content { position: relative; z-index: 1; max-width: 550px; }

h1 { font-size: 52px; margin: 20px 0; }
.badge { color: #00ff41; font-weight: bold; }
.btn-primary { background: #00ff41; padding: 15px 30px; text-decoration: none; color: #000; font-weight: bold; border-radius: 5px; }
.btn-secondary { color: #fff; margin-left: 20px; text-decoration: none; }

.hero-img { 
    max-width: 500px; 
    filter: drop-shadow(0 0 20px rgba(0, 255, 65, 0.2)); 
}

.authorities-grid { 
    display: flex; flex-wrap: wrap; justify-content: center; 
    gap: 40px; padding: 40px; background: #050505; border-top: 1px solid #1a1a1a;
}
.authorities-grid span { color: #555; font-weight: 600; transition: 0.3s; }
.authorities-grid span:hover { color: #00ff41; cursor: default; }

/* O Palco: Esconde o que sai da tela */
.carousel-container {
    overflow: hidden;
    background: #050505; /* Fundo escuro igual ao seu site */
    padding: 40px 0;
    border-top: 1px solid #1a1a1a;
}

/* A Pista: Contém todos os itens em uma linha reta */
.carousel-track {
    display: flex;
    gap: 60px; /* Espaçamento entre as empresas */
    animation: marquee 40s linear infinite; /* Duração de 40s, linear e infinito */
    white-space: nowrap; /* Garante que o texto não quebre de linha */
}

/* Cada item da empresa */
.company-item {
    font-size: 18px;
    color: #666; /* Cor cinza elegante */
    font-weight: 600;
    text-transform: uppercase;
    transition: 0.3s;
}

/* Efeito de Hover (quando passa o mouse, o nome acende) */
.company-item:hover {
    color: #00ff41; /* Cor verde neon do DevClub */
    cursor: default;
}

/* A Animação: Move a pista da direita para a esquerda */
@keyframes marquee {
    0% {
        transform: translateX(0%); /* Começa com a lista original na tela */
    }
    100% {
        transform: translateX(-50%); /* Termina mostrando a lista duplicada */
    }
}

.authorities-label {
    text-align: center;
    margin-bottom: 40px;
    font-family: 'Courier New', monospace; /* Fonte tipo terminal de código */
    font-size: 16px;
    color: #00ff41; /* Verde neon */
    text-transform: uppercase;
    letter-spacing: 3px;
    text-shadow: 0 0 10px rgba(0, 255, 65, 0.5); /* Efeito de brilho */
}

/* Efeito de digitação */
.typing-text {
    border-right: 3px solid #00ff41; /* O "cursor" piscando */
    white-space: nowrap;
    overflow: hidden;
    animation: typing 3s steps(40, end), blink 0.75s step-end infinite;
}

@keyframes typing {
    from { width: 0 }
    to { width: 100% }
}

@keyframes blink {
    from, to { border-color: transparent }
    50% { border-color: #00ff41 }
}

.morph-container {
    display: flex;
    justify-content: center;
    margin-top: 25px;
    perspective: 800px; /* Dá o efeito 3D real */
}

.morph-object {
    width: 60px; /* Ajuste o tamanho aqui */
    height: 60px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    /* Animação infinita de 6 segundos */
    animation: morphRotate 6s infinite linear;
    filter: drop-shadow(0 0 10px rgba(0, 255, 65, 0.7));
}

@keyframes morphRotate {
    0%, 45% {
        transform: rotateY(0deg);
        /* AQUI VOCÊ COLOCA O CAMINHO DO SEU GLOBO */
        background-image: url('img-logo/globo-icon.png'); 
    }
    50% {
        transform: rotateY(90deg); /* O momento em que o objeto fica de lado e "some" */
    }
    55%, 100% {
        transform: rotateY(180deg);
        /* AQUI VOCÊ COLOCA O CAMINHO DO SEU LOGO DEVCLUB */
        background-image: url('img-logo/logodevclub.png');
    }
}

.globe-container {
    margin-top: 20px;
    display: flex;
    justify-content: center;
    perspective: 1000px; /* Profundidade 3D */
    height: 60px;
}

.globe-icon {
    width: 60px;
    height: 60px;
    color: #00ff41;
    filter: drop-shadow(0 0 10px rgba(0, 255, 65, 0.8));
    
    /* Animação que alterna entre o ícone e o logo */
    animation: morphRotate 6s infinite linear;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

@keyframes morphRotate {
    0%, 45% {
        transform: rotateY(0deg);
        /* Mantém o ícone original ou você pode definir um background-image aqui */
        opacity: 1;
    }
    50% {
        transform: rotateY(90deg);
        opacity: 0; /* Momento da troca */
    }
    55%, 100% {
        transform: rotateY(180deg);
        /* Aqui o seu Logo assume o lugar */
        background-image: url('img-logo/logodevclub.png'); 
        opacity: 1;
        stroke: none; /* Remove o contorno do SVG para aparecer a imagem */
    }
}

/* --- Ajuste da Velocidade e Comportamento --- */

.carousel-container {
    overflow: hidden;
    background: #050505;
    padding: 40px 0;
    
    /* É ISSO AQUI QUE ESTÁ CRIANDO AS LINHAS */
    border-top: 1px solid #1a1a1a; 
    border-bottom: 1px solid #1a1a1a; 
}

.carousel-track {
    display: flex;
    width: max-content;
    /* Aqui está a velocidade base: 30s é um bom começo */
    animation: infiniteScroll 30s linear infinite;
    animation-play-state: running;
}

/* Quando passar o mouse, ele desacelera */
.carousel-track:hover {
    /* 120s faz ele ficar super lento quando o mouse encosta */
    animation-duration: 120s; 
    cursor: pointer;
}

@keyframes infiniteScroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Estilo elegante dos logos */
.logo-item {
    height: 32px;
    width: auto;
    object-fit: contain;
    margin: 0 40px;
    /* Filtro para manter a cor branca e discreta */
    filter: grayscale(100%) brightness(0) invert(1);
    opacity: 0.25;
    transition: all 0.3s ease-in-out;
}

.logo-item:hover {
    opacity: 0.7;
    filter: grayscale(100%) brightness(0) invert(1) drop-shadow(0 0 8px rgba(255, 255, 255, 0.3));
}
/* Animação */
@keyframes scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); } /* Como você duplicou os itens, -50% é o ponto perfeito */
}

/* Estilo dos logos */
.logo-item {
    height: 40px;      /* Altura fixa para padronizar */
    width: auto;       /* Largura automática para não distorcer */
    margin: 0 40px;    /* Espaçamento lateral */
    filter: brightness(0) invert(0.8); /* Cor cinza suave */
    opacity: 0.6;
    transition: opacity 0.3s;
}

.logo-item:hover {
    opacity: 1;
}

/* A lógica da animação */
@keyframes scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); } /* Ajuste conforme a quantidade de logos */
}

/* Ajuste dos logos */
.logo-item {
    height: 40px;
    width: auto;
    filter: brightness(0) invert(0.8);
    opacity: 0.6;
    margin: 0 30px;
    transition: opacity 0.3s ease;
}

.logo-item:hover {
    opacity: 1; /* O logo brilha quando o mouse passa em cima */
}
/* O SEGREDO DO VISUAL: Filtro de Cor e Opacidade */
.logo-item {
    height: 32px; /* Altura elegante para logos de rodapé */
    width: auto;
    object-fit: contain;
    
    /* 1. Transforma qualquer cor em escala de cinza
       2. Zera o brilho (fica preto)
       3. Inverte o preto para virar Branco Puro */
    filter: grayscale(100%) brightness(0) invert(1);
    
    /* Deixa o logo discretamente mesclado ao fundo escuro */
    opacity: 0.25; 
    
    transition: all 0.3s ease-in-out;
}

/* Quando o usuário passa o mouse, o logo "acende" suavemente */
.logo-item:hover {
    opacity: 0.7;
    filter: grayscale(100%) brightness(0) invert(1) drop-shadow(0 0 8px rgba(255, 255, 255, 0.3));
    cursor: pointer;
}

/* Animação de rolagem contínua */
@keyframes infiniteScroll {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%); /* Move metade do container (lista duplicada) */
    }
}

/* Isso vai remover qualquer linha que esteja aparecendo NO CARROCEL */
.authorities-grid, 
.carousel-container, 
section {
    border-top: none !important;
    border-bottom: none !important;
    border: none !important;
    box-shadow: none !important;
}

@media (max-width: 768px) {
    /* Ajusta o Hero para o celular */
    .hero-container {
        flex-direction: column; /* Coloca o conteúdo um embaixo do outro */
        text-align: center;      /* Centraliza tudo */
        padding: 40px 20px;      /* Padding menor para aproveitar o espaço */
    }

    .hero-content {
        max-width: 100%;         /* Faz o texto ocupar a largura toda da tela */
    }

    h1 {
        font-size: 32px;         /* Diminui a fonte para não estourar a tela */
        line-height: 1.2;        /* Ajusta o espaçamento entre linhas */
    }

    .hero-img {
        display: none;           /* Opcional: esconde a imagem no mobile se estiver atrapalhando */
    }
}

@media (max-width: 600px) {
    .navbar {
        padding: 10px 15px; /* Menos espaçamento no topo */
    }
    
    .nav-left {
        gap: 10px; /* Reduz o espaço entre o menu e a logo */
    }
    
    .btn-cta {
        padding: 8px 15px; /* Botão um pouco menor no mobile */
        font-size: 12px;
    }
}

@media (max-width: 600px) {
    .hero-container {
        padding: 40px 15px; /* Adiciona respiro nas laterais (15px) */
    }

    .hero-content h1 {
        font-size: 28px; /* Título um pouco menor para caber melhor */
    }
}

