/* VARIÁVEIS DO TEMA */
:root {
    --neon-blue: #0ff;
    --neon-purple: #f0f;
    --neon-yellow: #ff0;
    --fire-orange: #ffaa00;
    --fire-red: #ff4400;
    --bg-dark: #0d0d0d;
    --card-bg: #1a1a1a;
    /* Sombras Neon prontas para uso */
    --shadow-blue: 0 0 15px rgba(0, 255, 255, 0.6);
    --shadow-yellow: 0 0 15px rgba(255, 255, 0, 0.6);
}

/* RESET E CONFIGURAÇÕES GERAIS */
* { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box; 
    scroll-behavior: smooth; 
}

body { 
    background-color: var(--bg-dark); 
    color: #f0f0f0; 
    font-family: 'Segoe UI', Tahoma, sans-serif; 
    line-height: 1.6;
    overflow-x: hidden;
}

/* HEADER - ONDE O FOGO ACONTECE */
header {
    background: #000 !important;
    padding: 80px 20px; 
    text-align: center; 
    border-bottom: 3px solid var(--neon-blue);
    box-shadow: 0 0 30px rgba(0, 255, 255, 0.3);
    position: relative;
    overflow: hidden;
}

header h1 {
    font-size: 3.5rem;
    text-transform: uppercase;
    color: #fff;
    font-weight: 900;
    letter-spacing: 3px;
    text-shadow: 
        0 0 4px #fff, 
        0 -5px 4px #ff3, 
        2px -10px 6px #fd3, 
        -2px -15px 11px #f80, 
        2px -25px 18px #f20;
    animation: queimar 1.5s infinite alternate;
}

@keyframes queimar {
    0% {
        text-shadow: 0 0 4px #fff, 0 -5px 4px #ff3, 2px -10px 6px #fd3, -2px -15px 11px #f80, 2px -25px 18px #f20;
        transform: scale(1);
    }
    100% {
        text-shadow: 0 0 4px #fff, 0 -12px 8px #ff3, 3px -20px 18px #fd3, -3px -30px 25px #f80, 3px -45px 45px #f20;
        transform: scale(1.02);
    }
}

/* NAVEGAÇÃO E LINKS */
nav { 
    display: flex; 
    justify-content: center; 
    flex-wrap: wrap; 
    background: #000; 
    padding: 15px; 
    position: sticky; 
    top: 0; 
    z-index: 1000;
    border-bottom: 1px solid #222;
}

nav a { 
    margin: 5px 15px; 
    font-weight: bold; 
    color: var(--neon-blue); 
    text-decoration: none; 
    text-transform: uppercase; 
    font-size: 0.8em;
    letter-spacing: 1px; 
    transition: 0.3s;
}

nav a:hover { 
    color: var(--neon-yellow); 
    text-shadow: var(--shadow-yellow); 
}

/* CONTAINER PRINCIPAL */
.container { 
    max-width: 1200px; 
    margin: 0 auto; 
    padding: 30px 20px; 
}

/* SEÇÃO SOBRE COM NEON */
.sobre-container {
    background: #111; 
    border: 1px solid var(--neon-blue);
    padding: 30px; 
    border-radius: 15px; 
    margin-bottom: 40px;
    box-shadow: var(--shadow-blue);
}

/* INPUT DE BUSCA NEON */
.search-section { 
    text-align: center; 
    margin-bottom: 50px; 
}

#searchInput {
    width: 100%; 
    max-width: 650px; 
    padding: 15px 25px; 
    border-radius: 50px;
    border: 2px solid var(--neon-blue); 
    background: #000; 
    color: #fff;
    font-size: 1.1em; 
    outline: none; 
    transition: 0.3s;
    box-shadow: 0 0 5px var(--neon-blue);
}

#searchInput:focus { 
    box-shadow: var(--shadow-blue); 
    border-color: var(--neon-yellow); 
}

/* TÍTULOS DE SEÇÃO */
h2 { 
    border-left: 5px solid var(--neon-purple); 
    padding-left: 15px; 
    margin: 50px 0 25px; 
    color: var(--neon-blue); 
    text-transform: uppercase; 
}

/* --- ANIMAÇÕES ESPECIAIS PARA A TABELA --- */

.titulo-tabela {
    text-align: center;
    color: var(--neon-blue);
    margin: 60px 0 30px;
    animation: pulsarTexto 2s infinite ease-in-out;
}

@keyframes pulsarTexto {
    0%, 100% { 
        text-shadow: 0 0 10px var(--neon-blue); 
        transform: scale(1); 
    }
    50% { 
        text-shadow: 0 0 25px var(--neon-blue), 0 0 5px #fff; 
        transform: scale(1.05); 
    }
}

.legendary { 
    background: linear-gradient(90deg, #ffd700, #fff8dc, #ffd700) !important; 
    color: #000 !important; 
    font-weight: bold;
    animation: pulsarLendario 1.5s infinite alternate;
}

@keyframes pulsarLendario {
    from { 
        box-shadow: inset 0 0 10px #fff; 
    }
    to { 
        box-shadow: inset 0 0 20px #ffd700, 0 0 15px #ffd700; 
    }
}

/* GRID DE CARDS */
.grid { 
    display: grid; 
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); 
    gap: 25px; 
    align-items: stretch;
}

.card { 
    background: var(--card-bg); 
    border: 1px solid #333; 
    padding: 20px; 
    border-radius: 12px; 
    transition: 0.3s;
    display: flex; 
    flex-direction: column;
}

.card:hover { 
    border-color: var(--neon-yellow); 
    transform: translateY(-5px); 
    box-shadow: var(--shadow-yellow); 
}

.card h3 { 
    color: var(--neon-yellow); 
    margin-bottom: 10px; 
    text-shadow: 0 0 5px rgba(255, 255, 0, 0.3);
}

/* IMAGENS DOS CARDS */
.card-img {
    width: 100%;
    height: 180px; 
    object-fit: contain; 
    background-color: #050505; 
    padding: 10px; 
    border-radius: 8px;
    margin-bottom: 15px;
    border: 1px solid #222;
    display: block;
    transition: 0.3s;
}

.card:hover .card-img {
    border-color: var(--neon-yellow);
}

/* BOTÃO DE LINK NO CARD */
.btn-link { 
    color: var(--neon-blue); 
    text-decoration: none; 
    font-size: 0.9em; 
    font-weight: bold;
    margin-top: auto; 
    padding-top: 15px;
    transition: 0.3s;
}

.btn-link:hover { 
    color: var(--neon-yellow); 
    text-shadow: 0 0 8px var(--neon-yellow);
}

/* TABELA TECH NEON */
.table-container { 
    overflow-x: auto; 
    margin-bottom: 60px; 
    border: 1px solid var(--neon-blue); 
    border-radius: 10px; 
    box-shadow: var(--shadow-blue);
}

table { 
    width: 100%; 
    border-collapse: collapse; 
    background: #1a1a1a; 
    min-width: 600px; 
}

th, td { 
    border: 1px solid #333; 
    padding: 12px; 
    text-align: center; 
    font-size: 0.9em; 
}

th { 
    background: #111; 
    color: var(--neon-blue); 
    text-shadow: 0 0 5px var(--neon-blue);
}

/* BOTÃO VOLTAR AO TOPO NEON */
.back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    background: var(--neon-blue);
    color: #000 !important;
    padding: 12px 20px;
    border-radius: 50px;
    font-weight: bold;
    text-decoration: none;
    z-index: 2000; 
    display: none; 
    box-shadow: var(--shadow-blue);
    transition: 0.3s;
    border: none;
    cursor: pointer;
}

.back-to-top:hover {
    background: var(--neon-yellow);
    box-shadow: var(--shadow-yellow);
    transform: scale(1.1);
}

/* REDES SOCIAIS */
.redes-sociais { 
    background: #111; 
    border: 1px solid var(--neon-blue); 
    padding: 40px; 
    text-align: center; 
    border-radius: 15px; 
    margin-top: 40px;
    box-shadow: var(--shadow-blue);
}

.links-redes a { 
    color: var(--neon-blue); 
    text-decoration: none; 
    font-weight: bold; 
    padding: 0 10px; 
    transition: 0.3s; 
}

.links-redes a:hover { 
    color: var(--neon-yellow); 
    text-shadow: var(--shadow-yellow);
}

/* FOOTER */
.footer-final { 
    text-align: center; 
    padding: 50px; 
    color: #555; 
    font-size: 0.8em; 
}

/* RESPONSIVIDADE */
@media (max-width: 768px) {
    .grid { grid-template-columns: 1fr; }
    header h1 { font-size: 2.2rem; }
}

@media (max-width: 480px) {
    header h1 { font-size: 1.8rem; letter-spacing: 1px; }
    .card-img { height: 140px; }
    .back-to-top { padding: 10px 15px; bottom: 20px; right: 20px; }
}


/* Estado especial para os portfólios em destaque (Top 10) */
.card.top-vistos {
    border: 2px solid var(--neon-purple) !important;
    box-shadow: 0 0 20px rgba(240, 0, 240, 0.5);
    position: relative;
}

.card.top-vistos::before {
    content: "🔥 TOP DO MÊS";
    position: absolute;
    top: -10px;
    right: 10px;
    background: var(--neon-purple);
    color: white;
    font-size: 0.7em;
    padding: 2px 8px;
    border-radius: 5px;
    font-weight: bold;
    box-shadow: 0 0 10px var(--neon-purple);
}

/* Estilo Especial Hall da Fama */
.hall-fama-border {
    border: 2px solid var(--neon-yellow) !important;
    box-shadow: 0 0 25px rgba(255, 255, 0, 0.2);
    background: linear-gradient(145deg, #111, #1a1a1a);
}

.titulo-hall {
    text-align: center;
    border: none !important;
    padding: 0 !important;
    color: var(--neon-yellow) !important;
    text-shadow: 0 0 10px var(--neon-yellow);
    margin-bottom: 30px !important;
    font-size: 2rem !important;
}

/* Badge de Posição */
.rank-badge {
    position: absolute;
    top: -15px;
    left: -15px;
    width: 40px;
    height: 40px;
    background: var(--neon-yellow);
    color: #000;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 1.2rem;
    box-shadow: 0 0 15px var(--neon-yellow);
    z-index: 20;
}

/* SISTEMA DE NÍVEIS (XP) */
.xp-badge {
    font-size: 0.65rem;
    padding: 2px 10px;
    border-radius: 4px;
    font-weight: bold;
    letter-spacing: 1px;
    display: inline-block;
    margin-bottom: 10px;
    text-transform: uppercase;
}
.xp-newbie { background: #333; color: #aaa; border: 1px solid #444; }
.xp-pro { background: rgba(0, 255, 255, 0.2); color: var(--neon-blue); border: 1px solid var(--neon-blue); box-shadow: 0 0 8px var(--neon-blue); }
.xp-elite { background: rgba(255, 255, 0, 0.2); color: var(--neon-yellow); border: 1px solid var(--neon-yellow); box-shadow: 0 0 8px var(--neon-yellow); }
.xp-legendary { 
    background: var(--neon-purple); color: #fff; 
    animation: pulsarTexto 1s infinite; 
    box-shadow: 0 0 15px var(--neon-purple);
}

/* Botão de Compartilhar sempre visível */
.btn-share {
    background: transparent;
    border: 1px solid var(--neon-blue); /* Borda Azul Neon */
    color: var(--neon-blue) !important; /* Texto Azul Neon sempre */
    padding: 10px;
    border-radius: 5px;
    cursor: pointer;
    font-weight: bold;
    transition: all 0.3s ease;
}

/* Quando passa o mouse ou clica, ele brilha em vez de ficar rosa */
.btn-share:hover {
    background: rgba(0, 243, 255, 0.1);
    box-shadow: 0 0 10px var(--neon-blue);
    color: white !important;
}

/* AJUSTE NO RANK BADGE */
.rank-badge {
    position: absolute;
    top: -10px;
    left: -10px;
    width: 35px;
    height: 35px;
    background: var(--neon-yellow);
    color: #000;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    box-shadow: 0 0 15px var(--neon-yellow);
    z-index: 10;
}

/* CONTAINER DA BARRA DE XP */
.xp-container {
    width: 100%;
    background: #222;
    height: 6px;
    border-radius: 10px;
    margin: 5px 0 15px 0;
    overflow: hidden;
    position: relative;
    border: 1px solid #333;
}

/* A BARRA QUE ENCHE */
.xp-bar {
    height: 100%;
    width: 0%; /* O JS vai controlar isso */
    transition: width 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    box-shadow: 0 0 10px currentColor;
}

/* CORES DINÂMICAS PARA A BARRA */
.bar-newbie { color: #555; background-color: #555; }
.bar-pro { color: var(--neon-blue); background-color: var(--neon-blue); }
.bar-elite { color: var(--neon-yellow); background-color: var(--neon-yellow); }
.bar-legendary { color: var(--neon-purple); background-color: var(--neon-purple); }


/* Efeito Magnético na Barra de XP */
.card:hover .xp-bar {
    filter: brightness(1.5);
    box-shadow: 0 0 20px currentColor;
}

/* Estilo dos Botões de Ordenação */
.filter-controls {
    text-align: center;
    margin-bottom: 30px;
    display: flex;
    justify-content: center;
    gap: 15px;
}

.btn-filter {
    background: #111;
    border: 1px solid var(--neon-blue);
    color: var(--neon-blue);
    padding: 8px 16px;
    border-radius: 20px;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: bold;
    text-transform: uppercase;
    transition: 0.3s;
}

.btn-filter:hover, .btn-filter.active {
    background: var(--neon-blue);
    color: #000;
    box-shadow: 0 0 15px var(--neon-blue);
}

.btn-filter.fire:hover, .btn-filter.fire.active {
    border-color: var(--fire-orange);
    background: var(--fire-orange);
    box-shadow: 0 0 15px var(--fire-orange);
}

/* Mensagem de confirmação (Toast) */
.toast-sucesso {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background: #28a745;
    color: white;
    padding: 12px 24px;
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
    z-index: 10000;
    font-weight: bold;
    animation: subir 0.3s ease-out;
}

@keyframes subir {
    from { bottom: -50px; opacity: 0; }
    to { bottom: 20px; opacity: 1; }
}

/* Efeito de Aura Dourada para o 1º lugar */
#gridTop3 .card:first-child {
    border: 2px solid gold;
    box-shadow: 0 0 20px rgba(255, 215, 0, 0.6);
    animation: auraGuerreiro 2s infinite alternate;
}

@keyframes auraGuerreiro {
    from { box-shadow: 0 0 10px rgba(255, 215, 0, 0.4); transform: scale(1); }
    to { box-shadow: 0 0 25px rgba(255, 215, 0, 0.8); transform: scale(1.02); }
}

/* Badge especial para o primeiro */
#gridTop3 .card:first-child .rank-badge {
    background: linear-gradient(45deg, gold, #ffaa00);
    color: black;
    font-size: 1.5em;
}
