/* ---------------------------------------------------------------
   O atributo hidden do HTML e regra de user-agent: QUALQUER display
   declarado pelo autor ganha dele. Isso ja escondeu um defeito aqui -
   a caixa de Termos nao fechava porque .nt-modal declarava flex.
   Esta linha fecha a familia inteira do problema.
---------------------------------------------------------------- */
[hidden] { display: none !important; }

/* ---------------------------------------------------------------
   Night Tale - identidade do site
   Paleta tirada da arte do escudo: azul-marinho profundo com ceu
   estrelado, azul eletrico dos raios e prata da tipografia.
   --------------------------------------------------------------- */

/* Cores amostradas da arte oficial (emblema, molduras e cenario):
   os azuis tem R quase zero, G baixo e B alto - e o que da o tom
   "cristal a noite" da marca. */
:root {
   --nt-abismo:    #01030f;
   --nt-noite:     #050a24;
   --nt-escudo:    #081334;
   --nt-painel:    #0a1740;
   --nt-borda:     #1a2f7a;
   --nt-borda-viva:#2a4fb8;

   --nt-azul:      #1d4ed8;
   --nt-cristal:   #3b8ff5;
   --nt-eletrico:  #7fd4ff;
   --nt-brilho:    #b8e6ff;

   --nt-prata:     #e8eef8;
   --nt-texto:     #a9b8d8;
   --nt-suave:     #6b7ba3;

   /* Dourado: usado com parcimônia, só onde há valor ou destaque —
      1º lugar, números de conteúdo, detalhes do emblema e da faixa. */
   --nt-ouro:      #e0b757;
   --nt-ouro-claro:#f2d288;
   --nt-ouro-fundo:rgba(224, 183, 87, 0.12);
   --nt-ouro-borda:rgba(224, 183, 87, 0.40);

   --nt-online:    #4fd07a;
   --nt-offline:   #e2606a;

   --nt-largura:   1180px;
   --nt-raio:      10px;
   --nt-raio-p:    7px;

   /* Cinzel para titulos (pegada de fantasia sem virar gotico de 2005) e
      Inter para leitura. Ambas com pilha de reserva do sistema. */
   --nt-fonte-titulo: 'Cinzel', 'Palatino Linotype', Georgia, serif;
   --nt-fonte: 'Inter', 'Segoe UI', Roboto, -apple-system, 'Helvetica Neue', Arial, sans-serif;

   --nt-sombra:    0 1px 2px rgba(0,0,0,.35), 0 8px 24px -12px rgba(0,0,0,.7);
   --nt-sombra-luz:0 0 0 1px rgba(59,143,245,.18), 0 10px 34px -14px rgba(29,78,216,.55);
}

* { box-sizing: border-box; }

html, body {
   margin: 0;
   padding: 0;
}

body {
   background-color: var(--nt-abismo);
   background-image:
      radial-gradient(ellipse 80% 50% at 50% 0%, rgba(29, 78, 216, 0.20), transparent 70%),
      radial-gradient(ellipse 60% 40% at 85% 15%, rgba(59, 143, 245, 0.10), transparent 70%);
   background-repeat: no-repeat;
   background-attachment: fixed;
   color: var(--nt-texto);
   font-family: var(--nt-fonte);
   font-size: 15px;
   line-height: 1.65;
   -webkit-font-smoothing: antialiased;
   text-rendering: optimizeLegibility;
}

a { color: var(--nt-eletrico); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--nt-brilho); text-decoration: underline; }

img { max-width: 100%; height: auto; }

h1, h2, h3, h4 {
   color: var(--nt-prata);
   font-family: var(--nt-fonte-titulo);
   font-weight: 600;
   letter-spacing: 0.04em;
   margin: 0 0 12px 0;
   line-height: 1.25;
}

.nt-wrap {
   max-width: var(--nt-largura);
   margin: 0 auto;
   padding: 0 18px;
}

/* ---------- Cabecalho ---------- */

.nt-topo {
   position: sticky;
   top: 0;
   z-index: 40;
   background: rgba(1, 3, 15, 0.92);
   border-bottom: 1px solid var(--nt-borda);
   backdrop-filter: blur(8px);
}

.nt-topo-in {
   display: flex;
   align-items: center;
   gap: 18px;
   min-height: 64px;
   flex-wrap: wrap;
}

.nt-marca {
   display: flex;
   align-items: center;
   gap: 10px;
   text-decoration: none;
   margin-right: auto;
}
.nt-marca:hover { text-decoration: none; }

.nt-marca img { height: 40px; width: auto; display: block; }

.nt-marca-txt {
   font-family: 'Trajan Pro', 'Palatino Linotype', Georgia, serif;
   font-size: 20px;
   font-weight: 700;
   letter-spacing: 0.16em;
   color: var(--nt-prata);
   text-shadow: 0 0 14px rgba(59, 143, 245, 0.45);
   white-space: nowrap;
}

.nt-nav {
   display: flex;
   align-items: center;
   gap: 4px;
   flex-wrap: wrap;
}

.nt-nav a {
   display: block;
   padding: 8px 13px;
   color: var(--nt-texto);
   font-size: 13px;
   font-weight: 600;
   letter-spacing: 0.04em;
   text-transform: uppercase;
   border-radius: var(--nt-raio);
}
.nt-nav a:hover,
.nt-nav a.ativo {
   color: var(--nt-prata);
   background: rgba(29, 78, 216, 0.16);
   text-decoration: none;
}

/* ---------- Botoes ---------- */

.nt-btn {
   display: inline-block;
   padding: 11px 24px;
   border-radius: var(--nt-raio-p);
   border: 1px solid var(--nt-borda-viva);
   background: linear-gradient(180deg, #2456c8, #132f86);
   color: #ffffff;
   font-family: var(--nt-fonte);
   font-size: 13px;
   font-weight: 600;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   text-align: center;
   cursor: pointer;
   transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.nt-btn:hover {
   background: linear-gradient(180deg, #3a72e8, #1b3ea0);
   color: #ffffff;
   text-decoration: none;
   transform: translateY(-1px);
   box-shadow: var(--nt-sombra-luz);
}
.nt-btn:active { transform: translateY(0); }

.nt-btn-g { padding: 14px 34px; font-size: 14px; }

.nt-btn-fantasma {
   background: transparent;
   border-color: var(--nt-borda);
   color: var(--nt-prata);
}
.nt-btn-fantasma:hover {
   background: rgba(29, 78, 216, 0.14);
   box-shadow: none;
}

.nt-btn-bloco { display: block; width: 100%; }

/* ---------- Hero ---------- */

.nt-hero {
   position: relative;
   padding: 54px 0 44px 0;
   text-align: center;
   border-bottom: 1px solid var(--nt-borda);
   overflow: hidden;

   /* cenario oficial ao fundo; o gradiente por cima garante que o texto
      continue legivel e emenda com o fundo do resto da pagina */
   background-image:
      linear-gradient(180deg, rgba(1, 3, 15, 0.62) 0%, rgba(1, 3, 15, 0.80) 55%, rgba(1, 3, 15, 0.97) 100%),
      url('/images/nt/cenario-hero.jpg');
   background-size: cover, cover;
   background-position: center top, center 28%;
   background-repeat: no-repeat, no-repeat;
}

.nt-hero > .nt-wrap { position: relative; z-index: 2; }

@media (max-width: 900px) {
   .nt-hero {
      background-image:
         linear-gradient(180deg, rgba(1, 3, 15, 0.68) 0%, rgba(1, 3, 15, 0.84) 55%, rgba(1, 3, 15, 0.97) 100%),
         url('/images/nt/cenario-mob.jpg');
   }
}

.nt-hero-emblema {
   display: block;
   width: 100%;
   max-width: 380px;
   margin: 0 auto 18px auto;
   filter: drop-shadow(0 10px 40px rgba(29, 78, 216, 0.55));
   animation: nt-flutua 7s ease-in-out infinite;
}

@keyframes nt-flutua {
   0%, 100% { transform: translateY(0); }
   50%      { transform: translateY(-9px); }
}

@media (prefers-reduced-motion: reduce) {
   .nt-hero-emblema { animation: none; }
}

.nt-hero h1 {
   font-size: 42px;
   letter-spacing: 0.22em;
   margin: 0 0 10px 0;
   text-indent: 0.22em; /* compensa o espaco que o letter-spacing deixa no fim */
}

.nt-hero p.sub {
   color: var(--nt-texto);
   font-size: 16px;
   margin: 0 auto 28px auto;
   max-width: 560px;
}

.nt-hero-acoes {
   display: flex;
   gap: 12px;
   justify-content: center;
   flex-wrap: wrap;
}

.nt-hero-nota {
   margin: 20px 0 0 0;
   font-size: 12px;
   letter-spacing: 0.10em;
   text-transform: uppercase;
   color: var(--nt-suave);
}

/* ---------- Selo de status ---------- */

.nt-status {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   padding: 5px 14px;
   margin-bottom: 18px;
   border: 1px solid var(--nt-borda);
   border-radius: 999px;
   background: rgba(5, 10, 36, 0.8);
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.12em;
   text-transform: uppercase;
}

.nt-ponto {
   width: 9px;
   height: 9px;
   border-radius: 50%;
   flex: none;
}
.nt-on  { background: var(--nt-online);  box-shadow: 0 0 10px var(--nt-online); }
.nt-off { background: var(--nt-offline); box-shadow: 0 0 10px var(--nt-offline); }

.nt-status.on  { color: var(--nt-online); }
.nt-status.off { color: var(--nt-offline); }

/* ---------- Grade ---------- */

.nt-grade {
   display: grid;
   grid-template-columns: minmax(0, 1fr) 330px;
   gap: 22px;
   padding: 34px 0 44px 0;
   align-items: start;
}

/* ---------- Painel ---------- */

.nt-painel {
   background:
      linear-gradient(180deg, rgba(12, 26, 72, 0.62), rgba(5, 10, 36, 0.72));
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio);
   margin-bottom: 22px;
   overflow: hidden;
   box-shadow: var(--nt-sombra);
}

.nt-painel-cab {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 10px;
   padding: 14px 18px;
   border-bottom: 1px solid rgba(26, 47, 122, 0.7);
   background: linear-gradient(180deg, rgba(29, 78, 216, 0.14), transparent);
}

.nt-painel-cab h2,
.nt-painel-cab h3 {
   margin: 0;
   font-size: 13px;
   letter-spacing: 0.16em;
   text-transform: uppercase;
}

.nt-painel-corpo { padding: 18px; }
.nt-painel-corpo > :last-child { margin-bottom: 0; }

/* ---------- Lista de itens (noticias, eventos) ---------- */

.nt-itens { list-style: none; margin: 0; padding: 0; }

.nt-itens li {
   position: relative;
   padding: 9px 0 9px 20px;
   border-bottom: 1px solid rgba(26, 47, 122, 0.5);
}
.nt-itens li:last-child { border-bottom: none; }

.nt-itens li::before {
   content: '';
   position: absolute;
   left: 2px;
   top: 17px;
   width: 6px;
   height: 6px;
   background: var(--nt-eletrico);
   box-shadow: 0 0 8px var(--nt-eletrico);
   transform: rotate(45deg);
}

.nt-itens b { color: var(--nt-prata); font-weight: 600; }
.nt-itens .obs { display: block; color: var(--nt-suave); font-size: 12px; }

/* ---------- Tabela ---------- */

.nt-tabela-rolagem { overflow-x: auto; }

.nt-tabela {
   width: 100%;
   border-collapse: collapse;
   font-size: 13px;
}

.nt-tabela th {
   padding: 8px 10px;
   text-align: left;
   color: var(--nt-suave);
   font-size: 11px;
   font-weight: 700;
   letter-spacing: 0.1em;
   text-transform: uppercase;
   border-bottom: 1px solid var(--nt-borda);
   white-space: nowrap;
}

.nt-tabela td {
   padding: 8px 10px;
   border-bottom: 1px solid rgba(26, 47, 122, 0.4);
   white-space: nowrap;
}
.nt-tabela tr:last-child td { border-bottom: none; }
.nt-tabela tbody tr:hover { background: rgba(29, 78, 216, 0.08); }

.nt-tabela .nome { color: var(--nt-prata); font-weight: 600; }
.nt-tabela .pos  { color: var(--nt-suave); width: 34px; }
.nt-tabela .pos-1 { color: var(--nt-ouro); font-weight: 700; }

.nt-classe { width: 24px; height: 24px; vertical-align: middle; }

/* ---------- Ficha de dados ---------- */

.nt-ficha { list-style: none; margin: 0; padding: 0; }

.nt-ficha li {
   display: flex;
   justify-content: space-between;
   align-items: baseline;
   gap: 12px;
   padding: 7px 0;
   border-bottom: 1px solid rgba(26, 47, 122, 0.4);
}
.nt-ficha li:last-child { border-bottom: none; }

.nt-ficha .rot { color: var(--nt-suave); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; }
.nt-ficha .val { color: var(--nt-prata); font-weight: 600; text-align: right; }

/* ---------- Passos ---------- */

.nt-passos {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
   gap: 16px;
   margin: 0;
   padding: 0;
   list-style: none;
   counter-reset: passo;
}

.nt-passos li {
   counter-increment: passo;
   position: relative;
   padding: 18px 18px 18px 58px;
   background: rgba(5, 10, 36, 0.6);
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio);
}

.nt-passos li::before {
   content: counter(passo);
   position: absolute;
   left: 16px;
   top: 15px;
   width: 28px;
   height: 28px;
   display: flex;
   align-items: center;
   justify-content: center;
   border: 1px solid var(--nt-borda-viva);
   border-radius: 50%;
   color: var(--nt-eletrico);
   font-family: 'Trajan Pro', Georgia, serif;
   font-size: 13px;
   font-weight: 700;
}

.nt-passos b { display: block; color: var(--nt-prata); margin-bottom: 2px; }

.nt-grupo-sistema { margin-top: 18px; }
.nt-grupo-sistema.primeiro { margin-top: 0; }

.nt-grupo-sistema h3 {
   margin-bottom: 4px;
   font-size: 12px;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--nt-eletrico);
}

/* Tabela de requisitos: primeira coluna é rótulo, as outras são valores */
.nt-tabela-req td { white-space: normal; }
.nt-tabela-req .req {
   color: var(--nt-suave);
   font-size: 11px;
   font-weight: 600;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   white-space: nowrap;
   width: 110px;
}
.nt-tabela-req thead th:last-child { color: var(--nt-ouro); }
.nt-tabela-req tbody td:last-child { color: var(--nt-prata); }

.nt-nota-tabela {
   margin: 10px 4px 4px 4px;
   padding-top: 10px;
   border-top: 1px solid rgba(26, 47, 122, 0.4);
   font-size: 12px;
   color: var(--nt-suave);
}
.nt-nota-tabela b { color: var(--nt-texto); }

/* ---------- Numeros de conteudo ---------- */

.nt-numeros {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
   gap: 12px;
   text-align: center;
}

.nt-numero {
   padding: 14px 8px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio);
   background: rgba(5, 10, 36, 0.6);
}

.nt-numero b {
   display: block;
   font-family: 'Trajan Pro', 'Palatino Linotype', Georgia, serif;
   font-size: 26px;
   line-height: 1.1;
   color: var(--nt-eletrico);
   text-shadow: 0 0 16px rgba(59, 143, 245, 0.4);
}

.nt-numero span {
   display: block;
   margin-top: 3px;
   font-size: 11px;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: var(--nt-suave);
}

/* ---------- Destaques da comunidade ---------- */

.nt-destaques {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
   gap: 14px;
   margin-top: 22px;
}

.nt-destaque {
   padding: 14px 16px;
   border: 1px solid var(--nt-borda);
   border-left: 3px solid var(--nt-cristal);
   border-radius: var(--nt-raio);
   background: linear-gradient(180deg, rgba(10, 23, 64, 0.85), rgba(5, 10, 36, 0.85));
}

.nt-destaque .rot {
   display: block;
   font-size: 10px;
   font-weight: 700;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--nt-suave);
}

.nt-destaque .val {
   display: block;
   margin: 3px 0 1px 0;
   font-family: 'Trajan Pro', 'Palatino Linotype', Georgia, serif;
   font-size: 17px;
   font-weight: 700;
   color: var(--nt-prata);
   word-break: break-word;
}

.nt-destaque .obs { display: block; font-size: 12px; color: var(--nt-eletrico); }

/* ---------- Grade de classes ---------- */

.nt-classes {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
   gap: 10px;
}

.nt-classe-card {
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 4px;
   padding: 14px 8px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio);
   background: rgba(5, 10, 36, 0.6);
   text-align: center;
   color: var(--nt-texto);
}

.nt-classe-card:hover {
   border-color: var(--nt-cristal);
   background: rgba(29, 78, 216, 0.16);
   box-shadow: 0 0 14px rgba(59, 143, 245, 0.25);
   text-decoration: none;
}

.nt-classe-card img {
   width: 35px;
   height: 35px;
   image-rendering: -webkit-optimize-contrast;
}

.nt-classe-card b { color: var(--nt-prata); font-size: 13px; }
.nt-classe-card span { font-size: 11px; color: var(--nt-suave); }

/* ---------- Abas ---------- */

.nt-abas {
   display: flex;
   gap: 4px;
   flex-wrap: wrap;
   margin-bottom: 14px;
   border-bottom: 1px solid var(--nt-borda);
}

.nt-abas a {
   padding: 9px 18px;
   color: var(--nt-texto);
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   border: 1px solid transparent;
   border-bottom: none;
   border-radius: var(--nt-raio) var(--nt-raio) 0 0;
   margin-bottom: -1px;
}

.nt-abas a:hover {
   color: var(--nt-prata);
   background: rgba(29, 78, 216, 0.10);
   text-decoration: none;
}

.nt-abas a.ativa {
   color: var(--nt-prata);
   background: rgba(10, 23, 64, 0.9);
   border-color: var(--nt-borda);
   border-bottom: 1px solid var(--nt-abismo);
}

.nt-aba-num {
   display: inline-block;
   margin-left: 6px;
   padding: 1px 6px;
   border-radius: 999px;
   background: rgba(29, 78, 216, 0.30);
   color: var(--nt-eletrico);
   font-size: 10px;
   font-weight: 700;
   letter-spacing: 0;
   vertical-align: 1px;
}

/* ---------- Emblema de clã e ícone de classe ----------
   Os dois usam a MESMA caixa, para as colunas ficarem alinhadas
   entre si e entre abas diferentes. */

.nt-clan-img,
.nt-clan-sem,
.nt-classe-img {
   display: inline-block;
   width: 24px;
   height: 24px;
   margin-right: 8px;
   vertical-align: -7px;
   border-radius: 4px;
   border: 1px solid var(--nt-borda);
   background: rgba(1, 3, 15, 0.6);
   /* arte pequena, desenhada pixel a pixel: sem suavização */
   image-rendering: pixelated;
   object-fit: contain;
}

.nt-clan-sem { opacity: 0.35; }

.nt-clan-img-g {
   width: 34px;
   height: 34px;
   vertical-align: -11px;
}

/* ---------- Formulário em linha e botões pequenos (painel admin) ---------- */

.nt-linha-form {
   display: flex;
   align-items: flex-end;
   gap: 12px;
   flex-wrap: wrap;
}

.nt-btn-mini {
   padding: 5px 12px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio-p);
   background: rgba(1, 3, 15, 0.6);
   color: var(--nt-texto);
   font-family: var(--nt-fonte);
   font-size: 12px;
   cursor: pointer;
}
.nt-btn-mini:hover { background: rgba(29, 78, 216, 0.2); color: var(--nt-prata); }
.nt-btn-mini.ok { border-color: rgba(79, 208, 122, 0.45); color: var(--nt-online); }
.nt-btn-mini.ok:hover { background: rgba(79, 208, 122, 0.14); }

/* ---------- Nome da classe ---------- */

.nt-classe-nome { color: var(--nt-texto); }

/* Em telas apertadas fica só o ícone, que já tem o nome no title */
@media (max-width: 760px) {
   .nt-classe-nome { display: none; }
   .nt-classe-img { margin-right: 0; }
}

/* ---------- Indicador de quem está jogando ---------- */

.nt-on-ponto {
   display: inline-block;
   width: 7px;
   height: 7px;
   margin-right: 7px;
   border-radius: 50%;
   background: var(--nt-online);
   box-shadow: 0 0 8px var(--nt-online);
   vertical-align: 1px;
   animation: nt-pulsa 2.4s ease-in-out infinite;
}

@keyframes nt-pulsa {
   0%, 100% { opacity: 1; }
   50%      { opacity: 0.45; }
}

@media (prefers-reduced-motion: reduce) {
   .nt-on-ponto { animation: none; }
}

.nt-tabela tr.jogando td { background: rgba(79, 208, 122, 0.06); }

/* ---------- Barra de progresso de experiência ---------- */

.nt-barra {
   height: 7px;
   border-radius: 999px;
   background: rgba(1, 3, 15, 0.75);
   border: 1px solid var(--nt-borda);
   overflow: hidden;
}

.nt-barra span {
   display: block;
   height: 100%;
   background: linear-gradient(90deg, var(--nt-azul), var(--nt-eletrico));
   box-shadow: 0 0 10px rgba(127, 212, 255, 0.5);
}

.nt-tabela td small {
   display: block;
   margin-top: 3px;
   font-size: 11px;
   color: var(--nt-suave);
}

/* ---------- Busca, itens por página e paginação ---------- */

.nt-ferramentas {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 14px;
   flex-wrap: wrap;
   margin-bottom: 14px;
}

.nt-busca { display: flex; align-items: center; gap: 8px; }

.nt-busca input[type="search"] {
   width: 240px;
   max-width: 100%;
   padding: 9px 12px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio-p);
   background: rgba(1, 3, 15, 0.7);
   color: var(--nt-prata);
   font-family: var(--nt-fonte);
   font-size: 14px;
}
.nt-busca input[type="search"]:focus {
   outline: none;
   border-color: var(--nt-cristal);
   box-shadow: 0 0 0 3px rgba(59, 143, 245, 0.16);
}

.nt-busca button {
   padding: 9px 16px;
   border: 1px solid var(--nt-borda-viva);
   border-radius: var(--nt-raio-p);
   background: linear-gradient(180deg, #2456c8, #132f86);
   color: #fff;
   font-family: var(--nt-fonte);
   font-size: 13px;
   font-weight: 600;
   cursor: pointer;
}
.nt-busca button:hover { background: linear-gradient(180deg, #3a72e8, #1b3ea0); }

.nt-limpar { font-size: 12px; color: var(--nt-suave); }

.nt-porpagina {
   display: flex;
   align-items: center;
   gap: 5px;
   font-size: 12px;
   color: var(--nt-suave);
}
.nt-porpagina span { margin-right: 3px; text-transform: uppercase; letter-spacing: 0.08em; }
.nt-porpagina a {
   padding: 5px 10px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio-p);
   color: var(--nt-texto);
}
.nt-porpagina a:hover { background: rgba(29, 78, 216, 0.16); text-decoration: none; }
.nt-porpagina a.ativa {
   background: rgba(29, 78, 216, 0.28);
   border-color: var(--nt-cristal);
   color: var(--nt-prata);
}

.nt-paginas {
   display: flex;
   align-items: center;
   gap: 5px;
   flex-wrap: wrap;
   padding: 14px 4px 6px 4px;
}
.nt-paginas a {
   min-width: 34px;
   padding: 7px 11px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio-p);
   color: var(--nt-texto);
   font-size: 13px;
   text-align: center;
}
.nt-paginas a:hover { background: rgba(29, 78, 216, 0.16); text-decoration: none; }
.nt-paginas a.ativa {
   background: rgba(29, 78, 216, 0.30);
   border-color: var(--nt-cristal);
   color: var(--nt-prata);
   font-weight: 600;
}
.nt-paginas-info { margin-left: auto; font-size: 12px; color: var(--nt-suave); }

/* Cabeçalho de coluna clicável */
.nt-tabela th a { color: inherit; }
.nt-tabela th a:hover { color: var(--nt-eletrico); text-decoration: none; }
.nt-tabela th.ordenada a { color: var(--nt-eletrico); }

.nt-tag-neutra { background: rgba(107, 123, 163, 0.16); color: var(--nt-suave); }
.nt-tag .nt-on-ponto { margin-right: 5px; }

/* ---------- Filtro por classe ---------- */

.nt-filtro-classes {
   display: flex;
   align-items: center;
   gap: 6px;
   flex-wrap: wrap;
   margin-bottom: 16px;
}

.nt-filtro-classes a {
   display: flex;
   align-items: center;
   justify-content: center;
   min-width: 38px;
   height: 38px;
   padding: 0 8px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio);
   background: rgba(5, 10, 36, 0.7);
   color: var(--nt-texto);
   font-size: 12px;
   font-weight: 600;
}

.nt-filtro-classes a:hover {
   border-color: var(--nt-borda-viva);
   background: rgba(29, 78, 216, 0.16);
   text-decoration: none;
}

.nt-filtro-classes a.ativa {
   border-color: var(--nt-cristal);
   background: rgba(29, 78, 216, 0.28);
   box-shadow: 0 0 12px rgba(59, 143, 245, 0.35);
   color: var(--nt-prata);
}

.nt-filtro-classes img { width: 26px; height: 26px; display: block; }

/* ---------- Rodape ---------- */

.nt-rodape {
   border-top: 1px solid var(--nt-borda);
   background: rgba(1, 3, 15, 0.7);
   padding: 26px 0;
   margin-top: 20px;
   color: var(--nt-suave);
   font-size: 12px;
}

.nt-rodape-colunas {
   display: grid;
   grid-template-columns: 1.6fr repeat(3, 1fr);
   gap: 26px;
   align-items: start;
}

.nt-rodape-colunas h4 {
   font-size: 12px;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--nt-prata);
   margin-bottom: 10px;
}

.nt-rodape-colunas ul { list-style: none; margin: 0; padding: 0; }
.nt-rodape-colunas li { padding: 3px 0; }
.nt-rodape-colunas a { color: var(--nt-texto); }
.nt-rodape-colunas a:hover { color: var(--nt-eletrico); }

.nt-rodape-marca {
   display: flex;
   align-items: center;
   gap: 12px;
}
.nt-rodape-marca img { width: 54px; height: auto; flex: none; }

.nt-rodape-base {
   margin-top: 22px;
   padding-top: 16px;
   border-top: 1px solid rgba(26, 47, 122, 0.5);
   font-size: 11px;
   color: var(--nt-suave);
}

@media (max-width: 760px) {
   .nt-rodape-colunas { grid-template-columns: 1fr 1fr; gap: 20px; }
   .nt-rodape-marca { grid-column: 1 / -1; }
}

/* ---------- Utilidades ---------- */

.nt-vazio {
   padding: 22px 6px;
   text-align: center;
   color: var(--nt-suave);
   font-size: 13px;
}

.nt-aviso {
   padding: 10px 14px;
   border-left: 3px solid var(--nt-ouro);
   background: rgba(216, 180, 90, 0.08);
   color: var(--nt-prata);
   font-size: 13px;
   margin-bottom: 16px;
}

/* =====================================================================
   Painel do jogador
   ===================================================================== */

.nt-painel-layout {
   display: grid;
   grid-template-columns: 250px minmax(0, 1fr);
   gap: 24px;
   align-items: start;
   padding: 28px 18px 48px 18px;
}

.nt-titulo-pagina {
   font-size: 24px;
   letter-spacing: 0.10em;
   margin: 0 0 18px 0;
}

/* ---------- Cartao da conta ---------- */

.nt-cartao-conta {
   display: flex;
   align-items: center;
   gap: 12px;
   padding: 14px;
   margin-bottom: 14px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio);
   background: linear-gradient(180deg, rgba(29, 78, 216, 0.16), rgba(5, 10, 36, 0.7));
}

.nt-avatar {
   width: 44px;
   height: 44px;
   flex: none;
   display: flex;
   align-items: center;
   justify-content: center;
   border-radius: 50%;
   border: 1px solid var(--nt-borda-viva);
   background: rgba(1, 3, 15, 0.6);
   color: var(--nt-eletrico);
   font-family: var(--nt-fonte-titulo);
   font-size: 19px;
   font-weight: 700;
}

.nt-cartao-nome b { display: block; color: var(--nt-prata); font-size: 15px; }

.nt-tag {
   display: inline-block;
   margin-top: 3px;
   padding: 1px 9px;
   border-radius: 999px;
   font-size: 10px;
   font-weight: 600;
   letter-spacing: 0.08em;
   text-transform: uppercase;
}
.nt-tag-on  { background: rgba(79, 208, 122, 0.16); color: var(--nt-online); }
.nt-tag-off { background: rgba(226, 96, 106, 0.16); color: var(--nt-offline); }

/* ---------- Menu lateral ---------- */

.nt-menu-lateral {
   display: flex;
   flex-direction: column;
   gap: 2px;
   padding: 8px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio);
   background: rgba(5, 10, 36, 0.55);
}

.nt-menu-lateral a {
   display: flex;
   align-items: center;
   gap: 10px;
   padding: 10px 12px;
   border-radius: var(--nt-raio-p);
   border-left: 3px solid transparent;
   color: var(--nt-texto);
   font-size: 14px;
   font-weight: 500;
}

.nt-menu-lateral a:hover {
   background: rgba(29, 78, 216, 0.14);
   color: var(--nt-prata);
   text-decoration: none;
}

.nt-menu-lateral a.ativo {
   background: rgba(29, 78, 216, 0.22);
   border-left-color: var(--nt-cristal);
   color: var(--nt-prata);
}

.nt-menu-lateral .ic { color: var(--nt-cristal); font-size: 15px; width: 18px; text-align: center; }

.nt-menu-lateral .saida {
   margin-top: 6px;
   padding-top: 12px;
   border-top: 1px solid rgba(26, 47, 122, 0.6);
   border-radius: 0;
   color: var(--nt-suave);
}
.nt-menu-lateral .saida .ic { color: var(--nt-suave); }

.nt-nav a.nt-sair { color: var(--nt-suave); }

/* ---------- Cartoes de numero ---------- */

.nt-cartoes {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
   gap: 12px;
   margin-bottom: 22px;
}

.nt-cartao {
   padding: 15px 16px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio);
   background: linear-gradient(180deg, rgba(12, 26, 72, 0.6), rgba(5, 10, 36, 0.7));
}

.nt-cartao .rot {
   display: block;
   font-size: 10px;
   font-weight: 600;
   letter-spacing: 0.14em;
   text-transform: uppercase;
   color: var(--nt-suave);
}

.nt-cartao b {
   display: block;
   margin-top: 3px;
   font-family: var(--nt-fonte-titulo);
   font-size: 23px;
   line-height: 1.2;
   color: var(--nt-prata);
}

/* ---------- Cartoes de personagem ---------- */

.nt-chars {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
   gap: 16px;
}

.nt-char {
   padding: 16px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio);
   background: linear-gradient(180deg, rgba(12, 26, 72, 0.6), rgba(5, 10, 36, 0.72));
   box-shadow: var(--nt-sombra);
   transition: border-color .15s ease, box-shadow .15s ease;
}
.nt-char:hover { border-color: var(--nt-borda-viva); box-shadow: var(--nt-sombra-luz); }

/* Personagem que está jogando neste momento */
.nt-char.jogando {
   border-color: rgba(79, 208, 122, 0.45);
   box-shadow: 0 0 0 1px rgba(79, 208, 122, 0.18), var(--nt-sombra);
}

.nt-char-topo {
   display: flex;
   align-items: center;
   gap: 12px;
   padding-bottom: 12px;
   margin-bottom: 8px;
   border-bottom: 1px solid rgba(26, 47, 122, 0.55);
}
.nt-char-topo img { width: 35px; height: 35px; flex: none; }
.nt-char-topo b { display: block; color: var(--nt-prata); font-size: 15px; }
.nt-char-topo span { font-size: 12px; color: var(--nt-suave); }

.nt-char-lvl { margin-left: auto; text-align: right; }
.nt-char-lvl b {
   display: block;
   font-family: var(--nt-fonte-titulo);
   font-size: 24px;
   line-height: 1;
   color: var(--nt-eletrico);
}
.nt-char-lvl span { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--nt-suave); }

/* ---------- Grade de dois paineis ---------- */

.nt-grade-painel {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: 18px;
   align-items: start;
}

/* ---------- Vazio com destaque ---------- */

.nt-vazio-grande {
   padding: 42px 22px;
   text-align: center;
}
.nt-vazio-grande h2 { margin: 14px 0 6px 0; font-size: 18px; }
.nt-vazio-grande p { max-width: 430px; margin: 0 auto 18px auto; color: var(--nt-suave); }

/* =====================================================================
   Formularios e telas de entrar / criar conta
   ===================================================================== */

.nt-auth {
   display: flex;
   justify-content: center;
   padding: 44px 18px 64px 18px;
}

.nt-auth-caixa {
   width: 100%;
   max-width: 400px;
   padding: 30px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio);
   background: linear-gradient(180deg, rgba(12, 26, 72, 0.72), rgba(5, 10, 36, 0.82));
   box-shadow: var(--nt-sombra);
   text-align: center;
}
.nt-auth-larga { max-width: 520px; }

.nt-auth-emblema {
   width: 108px;
   margin: 0 auto 14px auto;
   display: block;
   filter: drop-shadow(0 6px 22px rgba(29, 78, 216, 0.5));
}

.nt-auth-caixa h1 { font-size: 21px; letter-spacing: 0.10em; margin-bottom: 4px; }
.nt-auth-sub { margin: 0 0 22px 0; color: var(--nt-suave); font-size: 13px; }

.nt-auth-caixa form { text-align: left; }

.nt-auth-rodape {
   margin-top: 20px;
   padding-top: 16px;
   border-top: 1px solid rgba(26, 47, 122, 0.55);
   font-size: 13px;
   color: var(--nt-suave);
}

.nt-auth-acoes { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 20px; }

/* ---------- Campos ---------- */

.nt-campo { display: block; margin-bottom: 15px; }

.nt-campo > span {
   display: block;
   margin-bottom: 5px;
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: var(--nt-texto);
}

.nt-tabela select {
   padding: 4px 8px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio-p);
   background: rgba(1, 3, 15, 0.7);
   color: var(--nt-prata);
   font-family: var(--nt-fonte);
   font-size: 13px;
}

.nt-campo input,
.nt-campo select {
   display: block;
   width: 100%;
   padding: 11px 13px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio-p);
   background: rgba(1, 3, 15, 0.7);
   color: var(--nt-prata);
   font-family: var(--nt-fonte);
   font-size: 15px;
   transition: border-color .15s ease, box-shadow .15s ease;
}

.nt-campo input:focus,
.nt-campo select:focus {
   outline: none;
   border-color: var(--nt-cristal);
   box-shadow: 0 0 0 3px rgba(59, 143, 245, 0.16);
}

.nt-campo input::placeholder { color: var(--nt-suave); }
.nt-campo small { display: block; margin-top: 5px; font-size: 12px; color: var(--nt-suave); }

.nt-campo-duplo { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.nt-aceite {
   display: flex;
   align-items: flex-start;
   gap: 9px;
   margin-bottom: 18px;
   font-size: 13px;
   color: var(--nt-texto);
}
.nt-aceite input { margin-top: 3px; flex: none; width: 16px; height: 16px; accent-color: var(--nt-azul); }

/* ---------- Avisos ---------- */

.nt-alerta {
   padding: 11px 14px;
   margin-bottom: 16px;
   border-radius: var(--nt-raio-p);
   border-left: 3px solid;
   font-size: 14px;
   text-align: left;
}
.nt-alerta-erro { background: rgba(226, 96, 106, 0.12); border-color: var(--nt-offline); color: #f2c3c6; }
.nt-alerta-ok   { background: rgba(79, 208, 122, 0.12); border-color: var(--nt-online);  color: #bce8cf; }

/* ---------- Modal dos termos ---------- */

/* O atributo hidden do HTML e regra de user-agent: QUALQUER display do autor
   ganha dele. Sem esta linha, o display:flex abaixo mantinha a caixa visivel
   mesmo com hidden = true, e nenhum botao de fechar funcionava. */
.nt-modal[hidden] { display: none !important; }

.nt-modal {
   position: fixed;
   inset: 0;
   z-index: 90;
   display: flex;
   align-items: center;
   justify-content: center;
   padding: 20px;
   background: rgba(1, 3, 15, 0.85);
}

.nt-modal-caixa {
   width: 100%;
   max-width: 680px;
   max-height: 84vh;
   display: flex;
   flex-direction: column;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio);
   background: var(--nt-noite);
   box-shadow: var(--nt-sombra);
}

.nt-modal-cab {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: 14px 18px;
   border-bottom: 1px solid var(--nt-borda);
   flex: 0 0 auto;
}
.nt-modal-cab h2 { margin: 0; font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase; }
.nt-modal-cab button {
   padding: 6px 14px;
   border: 1px solid var(--nt-borda);
   border-radius: var(--nt-raio-p);
   background: transparent;
   color: var(--nt-prata);
   font-family: var(--nt-fonte);
   font-size: 12px;
   cursor: pointer;
}
.nt-modal-cab button:hover { background: rgba(29, 78, 216, 0.16); }

.nt-modal-corpo {
   padding: 18px;
   overflow-y: auto;
   white-space: pre-wrap;
   font-size: 13px;
   line-height: 1.7;
   color: var(--nt-texto);
   /* min-height: 0 e o que permite este item ENCOLHER dentro do flex. Sem
      isso ele fica do tamanho do texto inteiro, empurra o cabecalho para
      fora da tela e o botao de fechar some. */
   flex: 1 1 auto;
   min-height: 0;
}

.nt-modal-rodape {
   flex: 0 0 auto;
   display: flex;
   gap: 10px;
   justify-content: flex-end;
   flex-wrap: wrap;
   padding: 14px 18px;
   border-top: 1px solid var(--nt-borda);
   background: var(--nt-escudo);
}

.nt-modal-rodape .nt-btn { padding: 10px 20px; font-size: 12px; }

@media (max-width: 520px) {
   .nt-modal { padding: 10px; }
   .nt-modal-caixa { max-height: 92vh; }
   .nt-modal-rodape .nt-btn { flex: 1 1 auto; text-align: center; }
}

/* ---------- Passos em coluna ---------- */

.nt-passos-coluna { grid-template-columns: 1fr; text-align: left; }

/* =====================================================================
   Página de leitura (novidades) - coluna única centralizada
   ===================================================================== */

.nt-leitura {
   max-width: 760px;
   margin: 0 auto;
   padding: 44px 20px 60px 20px;
}

.nt-leitura-cab {
   text-align: center;
   margin-bottom: 34px;
}

.nt-leitura-cab h1 {
   font-size: 30px;
   letter-spacing: 0.14em;
   margin: 14px 0 8px 0;
}

.nt-leitura-cab p {
   margin: 0;
   color: var(--nt-suave);
   font-size: 15px;
}

.nt-notas {
   display: flex;
   flex-direction: column;
   gap: 18px;
}

.nt-nota {
   padding: 22px 26px;
   border: 1px solid var(--nt-borda);
   border-left: 3px solid var(--nt-cristal);
   border-radius: var(--nt-raio);
   background: linear-gradient(180deg, rgba(12, 26, 72, 0.55), rgba(5, 10, 36, 0.68));
   box-shadow: var(--nt-sombra);
}

.nt-nota:first-child { border-left-color: var(--nt-ouro); }

/* Versão enxuta, para caber na coluna da home */
.nt-nota-compacta {
   padding: 14px 16px;
   margin-bottom: 10px;
   box-shadow: none;
}
.nt-nota-compacta h3 { font-size: 15px; margin-bottom: 5px; }
.nt-nota-compacta p { font-size: 14px; line-height: 1.65; }

.nt-nota h2,
.nt-nota h3 {
   margin: 0 0 8px 0;
   font-size: 17px;
   letter-spacing: 0.08em;
   color: var(--nt-prata);
}

.nt-nota:first-child h2 { color: var(--nt-ouro-claro); }

.nt-nota p {
   margin: 0;
   font-size: 15px;
   line-height: 1.75;
   color: var(--nt-texto);
}

.nt-leitura-rodape {
   margin-top: 38px;
   padding-top: 26px;
   border-top: 1px solid rgba(26, 47, 122, 0.6);
   text-align: center;
}

.nt-leitura-rodape p {
   margin: 0 0 16px 0;
   color: var(--nt-suave);
   font-size: 14px;
}

@media (max-width: 560px) {
   .nt-nota { padding: 18px; }
   .nt-leitura-cab h1 { font-size: 23px; }
}

/* =====================================================================
   Arte
   ===================================================================== */

/* Fundo das páginas internas: o mesmo cenário da home, já esmaecido no
   próprio arquivo, preso na tela para não rolar junto com o conteúdo. */
body.nt-interna {
   background-image:
      linear-gradient(180deg, rgba(1, 3, 15, 0.88) 0%, rgba(1, 3, 15, 0.96) 60%, var(--nt-abismo) 100%),
      url('/images/nt/fundo-interno.jpg');
   background-size: cover, cover;
   background-position: center top, center top;
   background-repeat: no-repeat, no-repeat;
   background-attachment: fixed, fixed;
}

/* Raio atrás do emblema (arte do nightpt.com). Fica por baixo de tudo e
   não captura clique. */
.nt-hero-raios {
   position: absolute;
   top: -6%;
   left: 50%;
   transform: translateX(-50%);
   width: min(760px, 96%);
   opacity: 0.30;
   mix-blend-mode: screen;
   pointer-events: none;
   user-select: none;
   z-index: 1;
}

@media (max-width: 700px) {
   .nt-hero-raios { opacity: 0.20; }
}

/* Painel com a moldura de cristal. Só em blocos grandes - numa caixa
   pequena a moldura come o conteúdo.
   O border-image sem `fill` descarta o miolo da arte, que é o que
   queremos: aproveita só a borda ornamentada. */
.nt-painel-ornado {
   border: none;
   background: none;
   box-shadow: none;
   border-image-source: url('/images/nt/moldura.png');
   border-image-slice: 74 96 78 96;
   border-image-width: 46px 60px 48px 60px;
   border-image-repeat: stretch;
   border-style: solid;
   border-width: 46px 60px 48px 60px;
   padding: 0;
}

.nt-painel-ornado > .nt-painel-cab {
   background: none;
   border-bottom: 1px solid rgba(224, 183, 87, 0.22);
   box-shadow: none;
   padding: 0 0 12px 0;
   margin-bottom: 14px;
}

.nt-painel-ornado > .nt-painel-corpo { padding: 0; }

/* A arte tem miolo próprio; o fundo do painel entra atrás dela */
.nt-painel-ornado-fundo {
   background: linear-gradient(180deg, rgba(10, 23, 64, 0.55), rgba(5, 10, 36, 0.75));
   border-radius: var(--nt-raio);
}

@media (max-width: 700px) {
   /* Em tela estreita a moldura ocuparia quase tudo: volta ao painel comum. */
   .nt-painel-ornado {
      border-image-source: none;
      border: 1px solid var(--nt-borda);
      border-radius: var(--nt-raio);
      background: linear-gradient(180deg, rgba(12, 26, 72, 0.62), rgba(5, 10, 36, 0.72));
      padding: 18px;
   }
   .nt-painel-ornado > .nt-painel-cab { border-bottom-color: rgba(26, 47, 122, 0.7); }
}

/* =====================================================================
   Toques de dourado
   ===================================================================== */

/* Faixa de aviso da Beta */
.nt-faixa-beta {
   background: linear-gradient(90deg, rgba(224, 183, 87, 0.05), var(--nt-ouro-fundo), rgba(224, 183, 87, 0.05));
   border-bottom: 1px solid var(--nt-ouro-borda);
   padding: 9px 0;
   font-size: 13px;
   text-align: center;
}
.nt-faixa-beta b {
   color: var(--nt-ouro-claro);
   font-family: var(--nt-fonte-titulo);
   letter-spacing: 0.12em;
   text-transform: uppercase;
   font-size: 12px;
   margin-right: 10px;
}
.nt-faixa-beta span { color: var(--nt-texto); }

/* Linha do hero */
.nt-hero-beta {
   display: inline-block;
   margin: 14px 0 0 0;
   padding: 5px 16px;
   border: 1px solid var(--nt-ouro-borda);
   border-radius: 999px;
   background: var(--nt-ouro-fundo);
   color: var(--nt-ouro-claro);
   font-size: 12px;
   font-weight: 600;
   letter-spacing: 0.10em;
   text-transform: uppercase;
}

/* Filete dourado no topo do emblema do cabeçalho */
.nt-marca-txt {
   background: linear-gradient(180deg, var(--nt-prata) 55%, var(--nt-ouro-claro) 130%);
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
}

/* Primeiro lugar de qualquer lista */
.nt-tabela .pos-1 {
   color: var(--nt-ouro);
   font-weight: 700;
   text-shadow: 0 0 12px rgba(224, 183, 87, 0.35);
}
.nt-tabela tbody tr:first-child .nome { color: var(--nt-ouro-claro); }

/* Destaque principal da home */
.nt-destaque:first-child { border-left-color: var(--nt-ouro); }
.nt-destaque:first-child .val { color: var(--nt-ouro-claro); }

/* Números de conteúdo */
.nt-numero b {
   color: var(--nt-ouro);
   text-shadow: 0 0 16px rgba(224, 183, 87, 0.28);
}

/* Botão principal ganha borda quente no hover */
.nt-btn:not(.nt-btn-fantasma):hover {
   border-color: var(--nt-ouro-borda);
}

/* Cabeçalho de painel com fio dourado */
.nt-painel-cab {
   box-shadow: inset 0 1px 0 rgba(224, 183, 87, 0.10);
}

/* Level do personagem no painel */
.nt-char-lvl b { color: var(--nt-ouro); }

/* Selo do launcher recomendado e afins */
.nt-selo-ouro {
   display: inline-block;
   padding: 2px 10px;
   border: 1px solid var(--nt-ouro-borda);
   border-radius: 999px;
   background: var(--nt-ouro-fundo);
   color: var(--nt-ouro-claro);
   font-size: 10px;
   font-weight: 700;
   letter-spacing: 0.12em;
   text-transform: uppercase;
}

/* ---------- Telas menores ---------- */

@media (max-width: 900px) {
   .nt-grade { grid-template-columns: minmax(0, 1fr); }

   .nt-painel-layout { grid-template-columns: minmax(0, 1fr); gap: 18px; }

   /* No celular o menu do painel vira uma fileira que rola de lado. */
   .nt-menu-lateral {
      flex-direction: row;
      overflow-x: auto;
      gap: 6px;
   }
   .nt-menu-lateral a {
      border-left: none;
      border-bottom: 3px solid transparent;
      white-space: nowrap;
   }
   .nt-menu-lateral a.ativo { border-left: none; border-bottom-color: var(--nt-cristal); }
   .nt-menu-lateral .saida { margin-top: 0; padding-top: 10px; border-top: none; }
}

@media (max-width: 640px) {
   .nt-topo-in { min-height: 0; padding: 10px 0; }
   .nt-marca { margin-right: 0; width: 100%; }
   .nt-nav { width: 100%; }
   .nt-nav a { padding: 7px 10px; font-size: 12px; }
   .nt-hero { padding: 34px 0 30px 0; }
   .nt-hero h1 { font-size: 25px; letter-spacing: 0.14em; }
   .nt-hero-acoes .nt-btn { width: 100%; }
}

/* ---------------------------------------------------------------
   Pacotes de coins (painel > comprar coins)
---------------------------------------------------------------- */
.nt-pacotes {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
   gap: 12px;
   margin: 4px 0 22px 0;
}

.nt-pacote {
   position: relative;
   display: flex;
   flex-direction: column;
   align-items: center;
   text-align: center;
   padding: 18px 12px 16px 12px;
   border: 1px solid var(--nt-borda);
   border-radius: 10px;
   background: linear-gradient(180deg, rgba(10, 23, 64, 0.9), rgba(5, 10, 36, 0.9));
   cursor: pointer;
   transition: border-color .15s, transform .15s, box-shadow .15s;
}

.nt-pacote:hover { border-color: var(--nt-borda-viva); transform: translateY(-2px); }

.nt-pacote input { position: absolute; opacity: 0; pointer-events: none; }

.nt-pacote.destaque { border-color: var(--nt-ouro-borda); }

.nt-pacote:has(input:checked) {
   border-color: var(--nt-ouro);
   box-shadow: 0 0 0 1px var(--nt-ouro-borda), 0 6px 22px rgba(0, 0, 0, .45);
   background: linear-gradient(180deg, var(--nt-ouro-fundo), rgba(5, 10, 36, .9));
}

.nt-pacote-nome {
   font-family: Cinzel, Georgia, serif;
   font-size: 12px;
   letter-spacing: .16em;
   text-transform: uppercase;
   color: var(--nt-texto);
   margin-bottom: 10px;
}

.nt-pacote-coins {
   font-size: 26px;
   font-weight: 700;
   line-height: 1;
   color: var(--nt-ouro-claro);
}

.nt-pacote-rot {
   font-size: 10px;
   letter-spacing: .18em;
   text-transform: uppercase;
   color: var(--nt-suave);
   margin-top: 3px;
}

.nt-pacote-preco {
   margin-top: 12px;
   padding-top: 10px;
   width: 100%;
   border-top: 1px solid var(--nt-borda);
   font-size: 15px;
   font-weight: 600;
   color: var(--nt-prata);
}

/* navegador sem :has() ainda mostra qual esta marcado */
.nt-pacote input:checked ~ .nt-pacote-nome { color: var(--nt-ouro); }

/* estado online/offline e acoes do cartao de personagem */
.nt-char-estado {
   margin: 0 0 12px 0;
}

.nt-char-acoes {
   margin-top: 14px;
   padding-top: 12px;
   border-top: 1px solid var(--nt-borda);
   display: flex;
   justify-content: flex-end;
   align-items: center;
   min-height: 30px;
}

/* linha de pacote no painel de administracao */
.nt-linha-pacote {
   display: flex;
   align-items: flex-end;
   gap: 10px;
   flex-wrap: wrap;
   padding: 12px 0;
   border-bottom: 1px solid var(--nt-borda);
}

/* opcao de valor digitado a mao */
.nt-pacote-livre .nt-pacote-campo {
   display: flex;
   align-items: center;
   gap: 6px;
   margin-top: 2px;
}

.nt-pacote-livre .nt-pacote-campo .cifrao {
   font-size: 15px;
   color: var(--nt-suave);
}

.nt-pacote-livre .nt-pacote-campo input {
   width: 86px;
   padding: 6px 8px;
   text-align: right;
   font-size: 17px;
   font-weight: 600;
   color: var(--nt-ouro-claro);
}

/* a caixa de valor livre fica sempre aberta, com cara de campo de texto */
.nt-pacote-livre .nt-pacote-campo input {
   border: 1px solid var(--nt-borda-viva);
   border-radius: 6px;
   background: rgba(1, 3, 15, .65);
}

.nt-pacote-livre .nt-pacote-campo input:focus {
   outline: none;
   border-color: var(--nt-ouro);
   background: rgba(1, 3, 15, .9);
}

.nt-pacote-livre .nt-pacote-campo input::placeholder {
   color: var(--nt-suave);
   font-weight: 400;
}

.nt-pacote-livre .nt-pacote-nome { cursor: text; }

/* ---------------------------------------------------------------
   "Ou digite quanto quer pagar" - faixa larga, fora da grade dos
   pacotes, para ficar claro que ali se escreve.
---------------------------------------------------------------- */
.nt-valor-livre {
   margin: 0 0 22px 0;
   padding: 16px 18px;
   border: 1px dashed var(--nt-borda-viva);
   border-radius: 10px;
   background: rgba(1, 3, 15, .35);
   cursor: text;
   transition: border-color .15s, background .15s, box-shadow .15s;
}

.nt-valor-livre:hover { border-color: var(--nt-cristal); }

.nt-valor-livre.escrevendo {
   border-style: solid;
   border-color: var(--nt-ouro);
   background: linear-gradient(180deg, var(--nt-ouro-fundo), rgba(1, 3, 15, .5));
   box-shadow: 0 0 0 1px var(--nt-ouro-borda), 0 6px 22px rgba(0, 0, 0, .4);
}

.nt-valor-livre > input[type="radio"] {
   position: absolute;
   opacity: 0;
   pointer-events: none;
}

.nt-valor-livre-rot {
   display: block;
   font-family: Cinzel, Georgia, serif;
   font-size: 12px;
   letter-spacing: .14em;
   text-transform: uppercase;
   color: var(--nt-texto);
   margin-bottom: 12px;
   cursor: text;
}

.nt-valor-livre.escrevendo .nt-valor-livre-rot { color: var(--nt-ouro-claro); }

.nt-valor-livre-linha {
   display: flex;
   align-items: center;
   gap: 14px;
   flex-wrap: wrap;
}

.nt-valor-livre-campo {
   display: flex;
   align-items: center;
   gap: 8px;
   padding: 8px 12px;
   border: 1px solid var(--nt-borda-viva);
   border-radius: 8px;
   background: var(--nt-abismo);
}

.nt-valor-livre.escrevendo .nt-valor-livre-campo { border-color: var(--nt-ouro); }

.nt-valor-livre-campo .cifrao {
   font-size: 16px;
   color: var(--nt-suave);
}

.nt-valor-livre-campo input {
   width: 130px;
   border: none;
   outline: none;
   background: transparent;
   padding: 2px 0;
   font-size: 22px;
   font-weight: 700;
   color: var(--nt-ouro-claro);
   caret-color: var(--nt-ouro);
}

.nt-valor-livre-campo input::placeholder {
   color: var(--nt-suave);
   font-weight: 400;
   font-size: 18px;
}

.nt-valor-livre-conta {
   font-size: 14px;
   font-weight: 600;
   color: var(--nt-eletrico);
}

.nt-valor-livre-nota {
   display: block;
   margin-top: 10px;
   font-size: 11px;
   color: var(--nt-suave);
}

/* selo de quem chegou ao teto do servidor */
.nt-tag-ouro {
   background: var(--nt-ouro-fundo);
   color: var(--nt-ouro-claro);
   border: 1px solid var(--nt-ouro-borda);
}

/* item da lista de sistemas que ainda nao esta no jogo */
.nt-itens li.breve { color: var(--nt-suave); }

.nt-selo-breve {
   display: inline-block;
   margin-left: 8px;
   padding: 1px 8px;
   border: 1px solid var(--nt-ouro-borda);
   border-radius: 999px;
   background: var(--nt-ouro-fundo);
   color: var(--nt-ouro-claro);
   font-size: 10px;
   letter-spacing: .1em;
   text-transform: uppercase;
   vertical-align: 1px;
   white-space: nowrap;
}

/* ---------------------------------------------------------------
   Historico de atualizacoes: uma leva por dia, as antigas atras do
   botao "ver mais".
---------------------------------------------------------------- */
.nt-leva { margin-bottom: 30px; }

.nt-leva-cab {
   display: flex;
   align-items: center;
   gap: 12px;
   flex-wrap: wrap;
   margin: 0 0 14px 0;
   padding-bottom: 10px;
   border-bottom: 1px solid var(--nt-borda);
}

.nt-leva-cab h2 {
   margin: 0;
   font-family: Cinzel, Georgia, serif;
   font-size: 15px;
   letter-spacing: .12em;
   color: var(--nt-prata);
}

.nt-leva-conta { font-size: 11px; color: var(--nt-suave); }

.nt-selo-novo {
   padding: 2px 10px;
   border: 1px solid rgba(79, 208, 122, .45);
   border-radius: 999px;
   background: rgba(79, 208, 122, .12);
   color: var(--nt-online);
   font-size: 10px;
   letter-spacing: .14em;
   text-transform: uppercase;
}

.nt-nota-data {
   display: block;
   margin-bottom: 4px;
   font-size: 11px;
   letter-spacing: .08em;
   color: var(--nt-suave);
}

.nt-ver-mais { margin: 8px 0 26px 0; text-align: center; }

/* ---------------------------------------------------------------
   Coroa dos tres primeiros do ranking
---------------------------------------------------------------- */
.nt-coroa {
   width: 15px;
   height: 14px;
   margin-right: 5px;
   vertical-align: -2px;
   fill: currentColor;
   flex: none;
}

.nt-coroa-1 { color: #f2d288; text-shadow: 0 0 8px rgba(224, 183, 87, .55); }
.nt-coroa-2 { color: #cfd6e4; text-shadow: 0 0 8px rgba(207, 214, 228, .40); }
.nt-coroa-3 { color: #d09a6a; text-shadow: 0 0 8px rgba(208, 154, 106, .40); }

/* a coroa dourada ganha um brilho suave; as outras ficam discretas */
.nt-coroa-1 { filter: drop-shadow(0 0 3px rgba(224, 183, 87, .75)); }
.nt-coroa-2 { filter: drop-shadow(0 0 2px rgba(207, 214, 228, .45)); }
.nt-coroa-3 { filter: drop-shadow(0 0 2px rgba(208, 154, 106, .45)); }

/* a celula da posicao alinha numero e coroa na mesma linha */
.nt-tabela td.pos { white-space: nowrap; }

/* =====================================================================
   REDESIGN 01/09/2026 - camada visual nova por cima da base.
   Objetivo: cara de RPG de fantasia (cristal, prata, noite) sem perder
   leitura. Tudo aqui sobrescreve regras acima; para voltar ao visual
   antigo basta apagar deste comentario para baixo e voltar o HTML.
   ===================================================================== */

:root {
   --nt-fonte-titulo: 'Cinzel', 'Palatino Linotype', Georgia, serif;
   --nt-metal: linear-gradient(180deg, #ffffff 0%, #dbe6f7 38%, #8fa9d6 52%, #e9f0fb 66%, #b7c8e8 100%);
   --nt-metal-ouro: linear-gradient(180deg, #fff3cf 0%, #f2d288 40%, #b98b2e 55%, #f7e2a6 70%, #d1a94c 100%);
}

/* ---------- Fundo da pagina: abismo com estrelas fixas ---------- */

body {
   background-color: var(--nt-abismo);
   background-image:
      radial-gradient(ellipse 70% 45% at 50% -5%, rgba(29, 78, 216, 0.22), transparent 70%),
      radial-gradient(ellipse 50% 40% at 90% 20%, rgba(59, 143, 245, 0.08), transparent 70%),
      radial-gradient(ellipse 50% 40% at 5% 60%, rgba(29, 78, 216, 0.07), transparent 70%);
}

body.nt-interna {
   background-image:
      linear-gradient(180deg, rgba(1, 3, 15, 0.80) 0%, rgba(1, 3, 15, 0.94) 55%, var(--nt-abismo) 100%),
      url('/images/nt/fundo-interno.jpg');
}

/* Camada de estrelas: dois padroes repetidos com brilho alternado. */
.nt-estrelas,
.nt-estrelas::after {
   content: '';
   position: absolute;
   inset: 0;
   pointer-events: none;
   background-repeat: repeat;
}
.nt-estrelas {
   z-index: 1;
   opacity: 0.9;
   background-image:
      radial-gradient(1px 1px at 12px 18px, rgba(255,255,255,0.9), transparent 60%),
      radial-gradient(1px 1px at 78px 61px, rgba(184,230,255,0.8), transparent 60%),
      radial-gradient(1.5px 1.5px at 140px 30px, rgba(255,255,255,0.7), transparent 60%),
      radial-gradient(1px 1px at 190px 120px, rgba(127,212,255,0.8), transparent 60%),
      radial-gradient(1px 1px at 52px 150px, rgba(255,255,255,0.6), transparent 60%),
      radial-gradient(1.5px 1.5px at 230px 90px, rgba(255,255,255,0.75), transparent 60%);
   background-size: 260px 190px;
   animation: nt-cintila 6s ease-in-out infinite;
}
.nt-estrelas::after {
   background-image:
      radial-gradient(1px 1px at 30px 90px, rgba(255,255,255,0.8), transparent 60%),
      radial-gradient(1.5px 1.5px at 110px 140px, rgba(184,230,255,0.9), transparent 60%),
      radial-gradient(1px 1px at 170px 40px, rgba(255,255,255,0.7), transparent 60%),
      radial-gradient(1px 1px at 250px 170px, rgba(127,212,255,0.7), transparent 60%);
   background-size: 300px 230px;
   animation: nt-cintila 6s ease-in-out infinite reverse;
}
@keyframes nt-cintila {
   0%, 100% { opacity: 0.35; }
   50%      { opacity: 1; }
}

/* ---------- Cabecalho ---------- */

.nt-topo {
   background: linear-gradient(180deg, rgba(3, 7, 26, 0.96), rgba(1, 3, 15, 0.90));
   border-bottom: 1px solid rgba(42, 79, 184, 0.55);
   box-shadow: 0 1px 0 rgba(224, 183, 87, 0.10), 0 10px 30px -18px rgba(0, 0, 0, 0.9);
}

.nt-topo-in { min-height: 70px; gap: 22px; }

.nt-marca img {
   height: 46px;
   filter: drop-shadow(0 0 10px rgba(59, 143, 245, 0.55));
   transition: filter .2s ease, transform .2s ease;
}
.nt-marca:hover img { filter: drop-shadow(0 0 16px rgba(127, 212, 255, 0.85)); transform: scale(1.03); }

.nt-marca-txt {
   font-family: var(--nt-fonte-titulo);
   font-size: 21px;
   font-weight: 700;
   letter-spacing: 0.18em;
   background: var(--nt-metal);
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
   text-shadow: none;
   filter: drop-shadow(0 0 10px rgba(59, 143, 245, 0.35));
}

.nt-nav a {
   position: relative;
   padding: 9px 12px;
   font-family: var(--nt-fonte-titulo);
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.10em;
   border-radius: 6px;
}
.nt-nav a::after {
   content: '';
   position: absolute;
   left: 12px;
   right: 12px;
   bottom: 4px;
   height: 1px;
   background: linear-gradient(90deg, transparent, var(--nt-eletrico), transparent);
   opacity: 0;
   transform: scaleX(0.4);
   transition: opacity .2s ease, transform .2s ease;
}
.nt-nav a:hover,
.nt-nav a.ativo { background: rgba(29, 78, 216, 0.14); color: var(--nt-prata); }
.nt-nav a:hover::after,
.nt-nav a.ativo::after { opacity: 1; transform: scaleX(1); }

.nt-nav a.nt-nav-cta {
   margin-left: 6px;
   padding: 9px 16px;
   color: #fff;
   background: linear-gradient(180deg, #2b62d6, #14338f);
   border: 1px solid rgba(127, 212, 255, 0.45);
   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 0 18px -6px rgba(59, 143, 245, 0.8);
}
.nt-nav a.nt-nav-cta:hover {
   background: linear-gradient(180deg, #3a78ea, #1b41a6);
   border-color: var(--nt-ouro-borda);
}
.nt-nav a.nt-nav-cta::after { display: none; }

/* ---------- Botoes: cristal com brilho passando ---------- */

.nt-btn {
   position: relative;
   overflow: hidden;
   border: 1px solid rgba(127, 212, 255, 0.45);
   background: linear-gradient(180deg, #2f66d8 0%, #1d47b4 48%, #122c86 100%);
   box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.28),
      inset 0 -1px 0 rgba(0, 0, 0, 0.35),
      0 6px 20px -8px rgba(29, 78, 216, 0.9);
   font-family: var(--nt-fonte-titulo);
   font-weight: 700;
   letter-spacing: 0.10em;
   text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.nt-btn::after {
   content: '';
   position: absolute;
   top: -40%;
   left: -70%;
   width: 45%;
   height: 180%;
   background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.35), transparent);
   transform: skewX(-22deg);
   transition: left .55s ease;
   pointer-events: none;
}
.nt-btn:hover::after { left: 130%; }
.nt-btn:hover {
   background: linear-gradient(180deg, #3f7cf0 0%, #2454c8 48%, #173796 100%);
   border-color: var(--nt-ouro-borda);
   box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.35),
      0 0 0 1px rgba(224, 183, 87, 0.25),
      0 10px 30px -10px rgba(59, 143, 245, 1);
}

.nt-btn-fantasma {
   background: rgba(5, 10, 36, 0.55);
   border-color: rgba(42, 79, 184, 0.7);
   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
   backdrop-filter: blur(4px);
}
.nt-btn-fantasma:hover {
   background: rgba(29, 78, 216, 0.22);
   border-color: var(--nt-cristal);
   box-shadow: 0 0 22px -6px rgba(59, 143, 245, 0.9);
}

.nt-btn-ouro {
   background: linear-gradient(180deg, #f3d791 0%, #d9ac4f 45%, #a7791f 100%);
   border-color: rgba(255, 236, 190, 0.7);
   color: #2a1c05;
   text-shadow: 0 1px 0 rgba(255, 255, 255, 0.35);
   box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 0 8px 24px -10px rgba(224, 183, 87, 0.9);
}
.nt-btn-ouro:hover {
   background: linear-gradient(180deg, #ffe7ad 0%, #e6bb5e 45%, #b3852a 100%);
   color: #2a1c05;
   border-color: #fff0c8;
}

/* ---------- Hero ---------- */

.nt-hero {
   padding: 0;
   border-bottom: none;
   background-image:
      linear-gradient(180deg, rgba(1, 3, 15, 0.35) 0%, rgba(1, 3, 15, 0.25) 35%, rgba(1, 3, 15, 0.72) 78%, var(--nt-abismo) 100%),
      url('/images/nt/cenario-hero.jpg');
   background-position: center top, center 30%;
}
@media (max-width: 900px) {
   .nt-hero {
      background-image:
         linear-gradient(180deg, rgba(1, 3, 15, 0.45) 0%, rgba(1, 3, 15, 0.35) 35%, rgba(1, 3, 15, 0.80) 78%, var(--nt-abismo) 100%),
         url('/images/nt/cenario-mob.jpg');
   }
}

.nt-hero-in {
   position: relative;
   z-index: 2;
   display: grid;
   grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
   align-items: center;
   gap: 20px;
   min-height: 560px;
   padding-top: 44px;
   padding-bottom: 96px;
   text-align: left;
}

.nt-hero-texto { position: relative; }

.nt-hero-emblema {
   width: 200px;
   max-width: 46vw;
   margin: 0 0 6px -8px;
   filter: drop-shadow(0 12px 34px rgba(29, 78, 216, 0.75)) drop-shadow(0 0 12px rgba(127, 212, 255, 0.35));
}

/* Selo de status e emblema formam um bloco so, com o selo centralizado em
   cima do escudo (pedido do dono: menor e alinhado ao simbolo). */
.nt-hero-marca {
   display: inline-flex;
   flex-direction: column;
   align-items: center;
   margin: 0 0 6px -8px;
}
.nt-hero-marca .nt-hero-emblema { margin: 0; }
.nt-hero .nt-status {
   margin: 0 0 -6px 0;
   padding: 3px 11px;
   font-size: 10px;
   letter-spacing: 0.14em;
   backdrop-filter: blur(4px);
   position: relative;
   z-index: 2;
}
@media (max-width: 900px) {
   .nt-hero-marca { margin-left: 0; }
}

.nt-hero h1 {
   font-size: clamp(38px, 5.2vw, 66px);
   font-weight: 700;
   letter-spacing: 0.14em;
   text-indent: 0;
   line-height: 1.05;
   margin: 0 0 14px 0;
   background: var(--nt-metal);
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
   filter: drop-shadow(0 2px 0 rgba(0, 0, 0, 0.55)) drop-shadow(0 0 22px rgba(59, 143, 245, 0.55));
}

.nt-hero h1 small {
   display: block;
   font-size: 0.30em;
   letter-spacing: 0.36em;
   text-indent: 0.36em;
   margin-bottom: 8px;
   background: var(--nt-metal-ouro);
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
   filter: none;
}

.nt-hero p.sub {
   margin: 0 0 26px 0;
   max-width: 520px;
   font-size: 17px;
   line-height: 1.6;
   color: #c9d6ee;
   text-shadow: 0 1px 6px rgba(0, 0, 0, 0.8);
}

.nt-hero-acoes { justify-content: flex-start; gap: 12px; }
.nt-btn-g { padding: 15px 34px; font-size: 14px; }

/* Selos de recursos abaixo dos botoes */
.nt-hero-selos {
   display: flex;
   flex-wrap: wrap;
   gap: 8px;
   margin: 24px 0 0 0;
   padding: 0;
   list-style: none;
}
.nt-hero-selos li {
   padding: 6px 12px;
   border: 1px solid rgba(42, 79, 184, 0.65);
   border-radius: 999px;
   background: rgba(5, 10, 36, 0.62);
   backdrop-filter: blur(4px);
   font-size: 11px;
   font-weight: 600;
   letter-spacing: 0.08em;
   text-transform: uppercase;
   color: var(--nt-texto);
}
.nt-hero-selos li b { color: var(--nt-eletrico); font-weight: 700; margin-right: 3px; }
.nt-hero-selos li.ouro { border-color: var(--nt-ouro-borda); background: rgba(224, 183, 87, 0.10); color: var(--nt-ouro-claro); }

/* Personagem do hero: fica em pe sobre um brilho no chao. Sao varias artes
   empilhadas (uma por classe) e so a .ativa aparece; a troca e um fade com
   leve deslize, controlada pelo script da home. */
.nt-hero-arte {
   position: relative;
   align-self: end;
   height: 100%;
   min-height: 520px;
}
/* A caixa tem a largura da coluna: arte larga (Lutador, Sacerdotisa) encolhe
   para caber em vez de invadir o texto ao lado. */
.nt-hero-classe {
   position: absolute;
   left: 0;
   right: 0;
   bottom: -96px;
   height: 118%;
   max-height: 680px;
   transform: translateY(16px);
   opacity: 0;
   pointer-events: none;
   transition: opacity .9s ease, transform .9s ease;
   animation: nt-flutua 8s ease-in-out infinite;
}
.nt-hero-classe.ativa {
   opacity: 1;
   transform: translateY(0);
   pointer-events: auto;
}
.nt-hero-classe img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: contain;
   object-position: bottom center;
   filter: drop-shadow(0 30px 40px rgba(0, 0, 0, 0.75)) drop-shadow(0 0 30px rgba(59, 143, 245, 0.45));
}

/* Nome da classe em cena, no canto inferior direito da arte */
.nt-hero-legenda {
   position: absolute;
   right: 6%;
   bottom: -34px;
   z-index: 5;
   padding: 6px 14px;
   border: 1px solid rgba(127, 212, 255, 0.35);
   border-radius: 999px;
   background: rgba(5, 10, 36, 0.72);
   backdrop-filter: blur(4px);
   font-family: var(--nt-fonte-titulo);
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.16em;
   text-transform: uppercase;
   color: var(--nt-eletrico);
   text-shadow: 0 0 10px rgba(127, 212, 255, 0.6);
   pointer-events: none;
}
.nt-hero-arte::before {
   content: '';
   position: absolute;
   left: 50%;
   bottom: -70px;
   width: 78%;
   height: 90px;
   transform: translateX(-50%);
   background: radial-gradient(ellipse at center, rgba(127, 212, 255, 0.55), rgba(29, 78, 216, 0.25) 40%, transparent 72%);
   filter: blur(6px);
}

/* Raio: pisca de vez em quando, como tempestade longe */
.nt-hero-raios {
   top: -4%;
   left: 62%;
   width: min(620px, 80%);
   opacity: 0.22;
   animation: nt-relampago 11s linear infinite;
}
@keyframes nt-relampago {
   0%, 86%, 100% { opacity: 0.16; }
   87%  { opacity: 0.85; }
   88%  { opacity: 0.25; }
   89.5%{ opacity: 0.95; }
   91%  { opacity: 0.20; }
}

/* Emenda inferior do hero com a pagina */
.nt-hero::after {
   content: '';
   position: absolute;
   left: 0; right: 0; bottom: 0;
   height: 2px;
   background: linear-gradient(90deg, transparent 5%, rgba(59, 143, 245, 0.55) 30%, rgba(224, 183, 87, 0.55) 50%, rgba(59, 143, 245, 0.55) 70%, transparent 95%);
   z-index: 3;
}

@media (prefers-reduced-motion: reduce) {
   .nt-hero-raios, .nt-hero-classe, .nt-estrelas, .nt-estrelas::after { animation: none; }
   .nt-hero-classe { transition: none; }
}

@media (max-width: 900px) {
   .nt-hero-in {
      grid-template-columns: minmax(0, 1fr);
      min-height: 0;
      padding-top: 34px;
      padding-bottom: 70px;
      text-align: center;
   }
   .nt-hero-emblema { margin: 0 auto 6px auto; width: 170px; }
   .nt-hero p.sub { margin-left: auto; margin-right: auto; }
   .nt-hero-acoes { justify-content: center; }
   .nt-hero-selos { justify-content: center; }
   .nt-hero-arte { display: none; }
   .nt-hero-raios { left: 50%; }
}

/* ---------- Destaques: placas que sobem por cima do hero ---------- */

.nt-destaques {
   position: relative;
   z-index: 4;
   margin-top: -58px;
   grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
   gap: 12px;
}

.nt-destaque {
   position: relative;
   display: flex;
   align-items: center;
   gap: 14px;
   padding: 16px 18px;
   border: 1px solid rgba(42, 79, 184, 0.75);
   border-left: 1px solid rgba(42, 79, 184, 0.75);
   background: linear-gradient(180deg, rgba(10, 23, 64, 0.92), rgba(4, 8, 30, 0.95));
   box-shadow: 0 18px 40px -20px rgba(0, 0, 0, 0.95), inset 0 1px 0 rgba(255, 255, 255, 0.06);
   backdrop-filter: blur(6px);
   transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.nt-destaque:hover {
   transform: translateY(-3px);
   border-color: var(--nt-cristal);
   box-shadow: 0 22px 44px -18px rgba(0, 0, 0, 0.95), 0 0 24px -8px rgba(59, 143, 245, 0.8);
}
.nt-destaque::before {
   content: '';
   position: absolute;
   top: -1px; left: 14px; right: 14px;
   height: 1px;
   background: linear-gradient(90deg, transparent, var(--nt-cristal), transparent);
}
.nt-destaque:first-child::before { background: linear-gradient(90deg, transparent, var(--nt-ouro), transparent); }
.nt-destaque:first-child { border-left-color: rgba(42, 79, 184, 0.75); }

.nt-destaque .ic {
   flex: none;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 44px;
   height: 44px;
   border-radius: 50%;
   border: 1px solid rgba(42, 79, 184, 0.8);
   background: radial-gradient(circle at 50% 35%, rgba(59, 143, 245, 0.35), rgba(1, 3, 15, 0.8));
   color: var(--nt-eletrico);
   box-shadow: 0 0 16px -4px rgba(59, 143, 245, 0.7);
}
.nt-destaque .ic svg { width: 22px; height: 22px; fill: currentColor; }
.nt-destaque:first-child .ic { color: var(--nt-ouro-claro); border-color: var(--nt-ouro-borda); box-shadow: 0 0 16px -4px rgba(224, 183, 87, 0.7); }

/* Alguns cards trazem imagem no lugar do icone: o emblema do jogo e a marca
   do cla. Mesma caixa redonda; `pixel` e para a arte do cla, desenhada pixel
   a pixel, que fica borrada se o navegador suavizar. */
.nt-destaque .ic img { width: 28px; height: 28px; object-fit: contain; }
/* A marca do cla e um quadrado cheio, com fundo opaco. Num circulo de 44px o
   maior quadrado que cabe inteiro tem ~29px de lado; 24px deixa o quadrado
   folgado por dentro do anel, sem canto passando da borda redonda. */
.nt-destaque .ic img.pixel { width: 24px; height: 24px; border-radius: 3px; image-rendering: pixelated; }

.nt-destaque .txt { min-width: 0; }
.nt-destaque .rot { font-size: 10px; letter-spacing: 0.16em; }
.nt-destaque .val {
   font-family: var(--nt-fonte-titulo);
   font-size: 17px;
   letter-spacing: 0.04em;
   margin: 2px 0 0 0;
   overflow: hidden;
   text-overflow: ellipsis;
   white-space: nowrap;
}
.nt-destaque .obs { font-size: 12px; }

@media (max-width: 900px) {
   .nt-destaques { margin-top: -40px; }
}

/* ---------- Titulo de secao com ornamento ---------- */

.nt-secao { padding: 46px 0 8px 0; }

.nt-secao-cab {
   text-align: center;
   margin-bottom: 26px;
}
.nt-secao-cab .kicker {
   display: block;
   font-size: 11px;
   font-weight: 700;
   letter-spacing: 0.26em;
   text-transform: uppercase;
   color: var(--nt-ouro);
   margin-bottom: 8px;
}
.nt-secao-cab h2 {
   font-size: clamp(22px, 3vw, 30px);
   letter-spacing: 0.14em;
   text-indent: 0.14em;
   margin: 0;
   background: var(--nt-metal);
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
   filter: drop-shadow(0 0 14px rgba(59, 143, 245, 0.35));
}
.nt-secao-cab p {
   margin: 10px auto 0 auto;
   max-width: 560px;
   color: var(--nt-suave);
   font-size: 14px;
}

/* Filete: linha - losango - linha */
.nt-ornamento {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 12px;
   margin: 14px auto 0 auto;
   width: min(360px, 80%);
   color: var(--nt-cristal);
}
.nt-ornamento::before,
.nt-ornamento::after {
   content: '';
   flex: 1;
   height: 1px;
   background: linear-gradient(90deg, transparent, var(--nt-borda-viva));
}
.nt-ornamento::after { background: linear-gradient(90deg, var(--nt-borda-viva), transparent); }
.nt-ornamento i {
   width: 8px;
   height: 8px;
   background: var(--nt-eletrico);
   transform: rotate(45deg);
   box-shadow: 0 0 10px var(--nt-eletrico);
}
.nt-ornamento i.m { width: 11px; height: 11px; background: var(--nt-ouro-claro); box-shadow: 0 0 12px rgba(224, 183, 87, 0.8); }

/* Titulo dentro da placa de cristal (arte oficial da moldura) */
.nt-placa-titulo {
   position: relative;
   display: flex;
   align-items: center;
   justify-content: center;
   width: min(520px, 94%);
   aspect-ratio: 777 / 243;
   margin: 0 auto 22px auto;
   background: url('/images/nt/moldura-barra.png') center / contain no-repeat;
   filter: drop-shadow(0 12px 26px rgba(0, 0, 0, 0.7));
}
.nt-placa-titulo h2 {
   margin: 0;
   padding: 0 18%;
   font-size: clamp(15px, 2.4vw, 22px);
   letter-spacing: 0.16em;
   text-indent: 0.16em;
   text-align: center;
   color: var(--nt-prata);
   text-shadow: 0 0 14px rgba(127, 212, 255, 0.7), 0 2px 2px rgba(0, 0, 0, 0.9);
}

/* ---------- Vitrine de classes ---------- */

.nt-vitrine {
   display: grid;
   grid-template-columns: repeat(4, minmax(0, 1fr));
   gap: 14px;
}

.nt-vitrine-card {
   position: relative;
   display: block;
   aspect-ratio: 3 / 4;
   overflow: hidden;
   border: 1px solid rgba(42, 79, 184, 0.6);
   border-radius: var(--nt-raio);
   background:
      radial-gradient(ellipse 70% 50% at 50% 100%, rgba(59, 143, 245, 0.30), transparent 70%),
      linear-gradient(180deg, #0a1740 0%, #050a24 60%, #02040f 100%);
   box-shadow: var(--nt-sombra);
   color: var(--nt-texto);
   transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.nt-vitrine-card::before {
   /* estrelas e nevoa do fundo */
   content: '';
   position: absolute;
   inset: 0;
   background:
      radial-gradient(1px 1px at 20% 25%, rgba(255,255,255,0.7), transparent 60%),
      radial-gradient(1px 1px at 70% 15%, rgba(184,230,255,0.7), transparent 60%),
      radial-gradient(1.5px 1.5px at 85% 45%, rgba(255,255,255,0.5), transparent 60%),
      radial-gradient(1px 1px at 35% 60%, rgba(127,212,255,0.6), transparent 60%),
      radial-gradient(ellipse 60% 30% at 50% 0%, rgba(29, 78, 216, 0.25), transparent 70%);
   opacity: 0.8;
   transition: opacity .22s ease;
}
.nt-vitrine-card img.arte {
   position: absolute;
   left: 50%;
   bottom: 34px;
   height: 84%;
   width: auto;
   max-width: 96%;
   object-fit: contain;
   object-position: bottom center;
   transform: translateX(-50%);
   filter: drop-shadow(0 18px 22px rgba(0, 0, 0, 0.8)) drop-shadow(0 0 16px rgba(59, 143, 245, 0.30));
   transition: transform .3s ease, filter .3s ease;
}
/* brilho no chao, atras dos pes do personagem */
.nt-vitrine-card .chao {
   position: absolute;
   left: 50%;
   bottom: 22px;
   width: 70%;
   height: 46px;
   transform: translateX(-50%);
   background: radial-gradient(ellipse at center, rgba(127, 212, 255, 0.45), rgba(29, 78, 216, 0.18) 45%, transparent 72%);
   filter: blur(5px);
   pointer-events: none;
}
.nt-vitrine-card .nome {
   position: absolute;
   left: 0; right: 0; bottom: 0;
   padding: 44px 12px 14px 12px;
   text-align: center;
   background: linear-gradient(180deg, transparent, rgba(2, 4, 15, 0.92) 55%);
}
.nt-vitrine-card .nome b {
   display: block;
   font-family: var(--nt-fonte-titulo);
   font-size: 16px;
   letter-spacing: 0.12em;
   color: var(--nt-prata);
   text-shadow: 0 0 12px rgba(59, 143, 245, 0.6);
}
.nt-vitrine-card .nome span {
   display: block;
   margin-top: 2px;
   font-size: 11px;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: var(--nt-suave);
}
.nt-vitrine-card .icone {
   position: absolute;
   top: 10px;
   left: 10px;
   width: 30px;
   height: 30px;
   border-radius: 6px;
   border: 1px solid rgba(42, 79, 184, 0.8);
   background: rgba(1, 3, 15, 0.7);
   image-rendering: pixelated;
}
.nt-vitrine-card::after {
   /* filete de cristal na base, acende no hover */
   content: '';
   position: absolute;
   left: 12%; right: 12%; bottom: 0;
   height: 2px;
   background: linear-gradient(90deg, transparent, var(--nt-eletrico), transparent);
   opacity: 0;
   transition: opacity .22s ease;
}
.nt-vitrine-card:hover {
   transform: translateY(-6px);
   border-color: var(--nt-cristal);
   box-shadow: 0 24px 40px -18px rgba(0, 0, 0, 0.95), 0 0 30px -8px rgba(59, 143, 245, 0.85);
   text-decoration: none;
}
.nt-vitrine-card:hover img.arte { transform: translateX(-50%) scale(1.06); filter: drop-shadow(0 22px 26px rgba(0, 0, 0, 0.85)) drop-shadow(0 0 14px rgba(127, 212, 255, 0.35)); }
.nt-vitrine-card:hover::after { opacity: 1; }
.nt-vitrine-card:hover .nome b { color: #fff; }

@media (max-width: 900px) { .nt-vitrine { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
@media (max-width: 420px) { .nt-vitrine-card .nome b { font-size: 14px; } }

/* ---------- Paineis: cantos de cristal e fio de luz ---------- */

.nt-painel {
   position: relative;
   border-color: rgba(42, 79, 184, 0.55);
   background: linear-gradient(180deg, rgba(10, 22, 62, 0.72), rgba(4, 8, 30, 0.82));
   box-shadow: var(--nt-sombra), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.nt-painel::before {
   content: '';
   position: absolute;
   top: 0; left: 8%; right: 8%;
   height: 1px;
   background: linear-gradient(90deg, transparent, rgba(127, 212, 255, 0.55), transparent);
   pointer-events: none;
   z-index: 1;
}
.nt-painel-cab {
   padding: 13px 18px;
   background: linear-gradient(180deg, rgba(29, 78, 216, 0.20), rgba(29, 78, 216, 0.02));
   border-bottom: 1px solid rgba(42, 79, 184, 0.5);
}
.nt-painel-cab h2,
.nt-painel-cab h3 {
   display: flex;
   align-items: center;
   gap: 9px;
   font-size: 13px;
   letter-spacing: 0.16em;
   color: var(--nt-prata);
}
.nt-painel-cab h2::before,
.nt-painel-cab h3::before {
   content: '';
   width: 7px;
   height: 7px;
   flex: none;
   background: var(--nt-eletrico);
   transform: rotate(45deg);
   box-shadow: 0 0 8px var(--nt-eletrico);
}

/* ---------- Passos com numero grande ---------- */

.nt-passos-v2 {
   display: grid;
   grid-template-columns: repeat(3, minmax(0, 1fr));
   gap: 16px;
   margin: 0;
   padding: 0;
   list-style: none;
   counter-reset: passo;
}
.nt-passos-v2 li {
   counter-increment: passo;
   position: relative;
   padding: 26px 22px 24px 22px;
   text-align: center;
   border: 1px solid rgba(42, 79, 184, 0.6);
   border-radius: var(--nt-raio);
   background: linear-gradient(180deg, rgba(10, 22, 62, 0.75), rgba(4, 8, 30, 0.85));
   box-shadow: var(--nt-sombra);
   transition: transform .18s ease, border-color .18s ease;
}
.nt-passos-v2 li:hover { transform: translateY(-3px); border-color: var(--nt-cristal); }
.nt-passos-v2 li::before {
   content: counter(passo, upper-roman);
   display: block;
   margin: 0 auto 12px auto;
   width: 54px;
   height: 54px;
   line-height: 52px;
   border-radius: 50%;
   border: 1px solid var(--nt-ouro-borda);
   background: radial-gradient(circle at 50% 30%, rgba(224, 183, 87, 0.28), rgba(1, 3, 15, 0.8));
   font-family: var(--nt-fonte-titulo);
   font-size: 20px;
   font-weight: 700;
   color: var(--nt-ouro-claro);
   box-shadow: 0 0 20px -6px rgba(224, 183, 87, 0.8);
}
.nt-passos-v2 b {
   display: block;
   margin-bottom: 6px;
   font-family: var(--nt-fonte-titulo);
   font-size: 15px;
   letter-spacing: 0.08em;
   color: var(--nt-prata);
}
.nt-passos-v2 p { margin: 0; font-size: 14px; color: var(--nt-texto); }
@media (max-width: 760px) { .nt-passos-v2 { grid-template-columns: 1fr; } }

/* ---------- Banda final de chamada ---------- */

.nt-banda-cta {
   position: relative;
   margin-top: 40px;
   padding: 70px 0;
   text-align: center;
   overflow: hidden;
   border-top: 1px solid rgba(42, 79, 184, 0.5);
   border-bottom: 1px solid rgba(42, 79, 184, 0.5);
   background:
      linear-gradient(180deg, var(--nt-abismo) 0%, rgba(1, 3, 15, 0.55) 30%, rgba(1, 3, 15, 0.55) 70%, var(--nt-abismo) 100%),
      url('/images/nt/cenario-hero.jpg') center 60% / cover no-repeat;
}
.nt-banda-cta .nt-wrap { position: relative; z-index: 2; }
.nt-banda-cta h2 {
   font-size: clamp(24px, 3.4vw, 36px);
   letter-spacing: 0.12em;
   margin: 0 0 10px 0;
   background: var(--nt-metal);
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
   filter: drop-shadow(0 2px 0 rgba(0,0,0,.6)) drop-shadow(0 0 18px rgba(59, 143, 245, 0.5));
}
.nt-banda-cta p { margin: 0 auto 26px auto; max-width: 540px; color: #c9d6ee; text-shadow: 0 1px 6px rgba(0,0,0,.8); }
.nt-banda-cta .nt-hero-acoes { justify-content: center; }
.nt-banda-cta .nt-hero-emblema { width: 130px; margin: 0 auto 10px auto; animation: none; }

/* ---------- Cabecalho das paginas internas ---------- */

.nt-pagina-cab {
   position: relative;
   padding: 40px 0 26px 0;
   text-align: center;
}
.nt-pagina-cab h1 {
   font-size: clamp(26px, 3.6vw, 38px);
   letter-spacing: 0.16em;
   text-indent: 0.16em;
   margin: 0;
   background: var(--nt-metal);
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
   filter: drop-shadow(0 2px 0 rgba(0,0,0,.6)) drop-shadow(0 0 18px rgba(59, 143, 245, 0.45));
}
.nt-pagina-cab p {
   margin: 12px auto 0 auto;
   max-width: 640px;
   color: var(--nt-suave);
   font-size: 15px;
}
.nt-pagina-cab .nt-ornamento { margin-top: 16px; }
.nt-pagina-cab .nt-selo-ouro { margin-bottom: 10px; }

/* Novidades: alinha com o cabecalho novo */
.nt-leitura-cab h1 {
   background: var(--nt-metal);
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent;
   filter: drop-shadow(0 0 18px rgba(59, 143, 245, 0.45));
}

/* ---------- Abas e filtros mais vivos ---------- */

.nt-abas a { font-family: var(--nt-fonte-titulo); letter-spacing: 0.08em; }
.nt-abas a.ativa { box-shadow: inset 0 2px 0 var(--nt-eletrico); }

/* ---------- Tabelas: primeiro lugar em destaque ---------- */

/* No tr, e nao no td: por celula a faixa vira listras, uma por coluna. */
.nt-tabela tbody tr:first-child { background: linear-gradient(90deg, rgba(224, 183, 87, 0.08), transparent 60%); }
.nt-tabela tbody tr:hover { background: rgba(29, 78, 216, 0.10); }

/* Em tela estreita o hero ja tem os botoes; o do menu so ocupa linha. */
@media (max-width: 760px) {
   .nt-nav a.nt-nav-cta { display: none; }
}

/* ---------- Rodape ---------- */

.nt-rodape {
   position: relative;
   margin-top: 0;
   padding: 40px 0 26px 0;
   border-top: 1px solid rgba(42, 79, 184, 0.55);
   background: linear-gradient(180deg, rgba(3, 7, 26, 0.9), var(--nt-abismo));
}
.nt-rodape::before {
   content: '';
   position: absolute;
   top: -1px; left: 20%; right: 20%;
   height: 1px;
   background: linear-gradient(90deg, transparent, var(--nt-ouro), transparent);
   opacity: 0.6;
}
.nt-rodape-marca img { width: 64px; filter: drop-shadow(0 0 12px rgba(59, 143, 245, 0.5)); }
.nt-rodape-marca b { font-family: var(--nt-fonte-titulo); letter-spacing: 0.12em; font-size: 15px; }
.nt-rodape-colunas h4 { color: var(--nt-eletrico); }

/* ---------- Revelar ao rolar (so com JS) ---------- */

html.js .nt-revela {
   opacity: 0;
   transform: translateY(18px);
   transition: opacity .6s ease, transform .6s ease;
}
html.js .nt-revela.visivel { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
   html.js .nt-revela { opacity: 1; transform: none; transition: none; }
}

/* ---------- Agenda de hoje (home) ---------- */

.nt-proximo {
   display: flex;
   align-items: center;
   gap: 12px;
   flex-wrap: wrap;
   padding: 12px 16px;
   margin-bottom: 14px;
   border: 1px solid var(--nt-ouro-borda);
   border-radius: var(--nt-raio-p);
   background: linear-gradient(90deg, var(--nt-ouro-fundo), rgba(224, 183, 87, 0.03));
}
.nt-proximo .rot {
   font-size: 10px;
   font-weight: 700;
   letter-spacing: 0.16em;
   text-transform: uppercase;
   color: var(--nt-ouro);
}
.nt-proximo b {
   font-family: var(--nt-fonte-titulo);
   font-size: 15px;
   letter-spacing: 0.06em;
   color: var(--nt-prata);
}
.nt-proximo .hora {
   margin-left: auto;
   padding: 3px 10px;
   border-radius: 999px;
   background: rgba(1, 3, 15, 0.6);
   border: 1px solid var(--nt-ouro-borda);
   color: var(--nt-ouro-claro);
   font-size: 13px;
   font-weight: 700;
   font-variant-numeric: tabular-nums;
}

.nt-agenda { list-style: none; margin: 0; padding: 0; }
.nt-agenda li {
   display: flex;
   align-items: baseline;
   gap: 14px;
   padding: 9px 0;
   border-bottom: 1px solid rgba(26, 47, 122, 0.5);
}
.nt-agenda li:last-child { border-bottom: none; }
.nt-agenda b { flex: 0 0 150px; color: var(--nt-prata); font-weight: 600; font-size: 14px; }
.nt-agenda .horas { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.nt-agenda .horas i {
   font-style: normal;
   padding: 2px 8px;
   border-radius: 6px;
   border: 1px solid rgba(42, 79, 184, 0.55);
   background: rgba(1, 3, 15, 0.5);
   font-size: 12px;
   font-variant-numeric: tabular-nums;
   color: var(--nt-texto);
}
.nt-agenda .horas i.prox {
   border-color: var(--nt-ouro-borda);
   background: var(--nt-ouro-fundo);
   color: var(--nt-ouro-claro);
   box-shadow: 0 0 10px -2px rgba(224, 183, 87, 0.6);
}
.nt-agenda .horas small { font-size: 11px; color: var(--nt-suave); margin-left: 4px; }
@media (max-width: 560px) {
   .nt-agenda li { flex-direction: column; gap: 6px; }
   .nt-agenda b { flex: none; }
}

/* ---------- Feed "aconteceu no servidor" ---------- */

.nt-feed { list-style: none; margin: 0; padding: 0; }
.nt-feed li {
   display: flex;
   align-items: flex-start;
   gap: 12px;
   padding: 9px 0;
   border-bottom: 1px solid rgba(26, 47, 122, 0.5);
}
.nt-feed li:last-child { border-bottom: none; }
.nt-feed .ic {
   flex: none;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 30px;
   height: 30px;
   margin-top: 1px;
   border-radius: 50%;
   border: 1px solid rgba(42, 79, 184, 0.7);
   background: radial-gradient(circle at 50% 35%, rgba(59, 143, 245, 0.30), rgba(1, 3, 15, 0.8));
   color: var(--nt-eletrico);
}
.nt-feed .ic svg { width: 15px; height: 15px; fill: currentColor; }
.nt-feed li.roleta .ic { color: var(--nt-ouro-claro); border-color: var(--nt-ouro-borda); background: radial-gradient(circle at 50% 35%, rgba(224, 183, 87, 0.25), rgba(1, 3, 15, 0.8)); }
.nt-feed li.novato .ic { color: var(--nt-online); border-color: rgba(79, 208, 122, 0.45); background: radial-gradient(circle at 50% 35%, rgba(79, 208, 122, 0.22), rgba(1, 3, 15, 0.8)); }
.nt-feed .txt { font-size: 14px; color: var(--nt-texto); min-width: 0; }
.nt-feed .txt b { color: var(--nt-prata); font-weight: 600; }
.nt-feed .txt small { display: block; margin-top: 1px; font-size: 11px; color: var(--nt-suave); }

/* ---------- Ajustes de grade da home ---------- */

.nt-grade { padding-top: 10px; }
.nt-home-secao { padding: 40px 0 0 0; }

/* ---------- Contagem regressiva do lançamento (12/09/2026) ---------- */

.nt-faixa-beta .nt-contagem {
   display: inline-block;
   margin-left: 12px;
   padding: 2px 10px;
   border: 1px solid var(--nt-ouro-borda);
   border-radius: 999px;
   background: var(--nt-ouro-fundo);
   color: var(--nt-ouro-claro);
   font-family: var(--nt-fonte-titulo), monospace;
   font-size: 12px;
   letter-spacing: 0.08em;
   font-variant-numeric: tabular-nums;
}

.nt-cadastro-fechado {
   margin: 0 0 18px 0;
   padding: 14px 16px;
   border: 1px solid var(--nt-ouro-borda);
   border-radius: 8px;
   background: var(--nt-ouro-fundo);
   color: var(--nt-texto);
   font-size: 14px;
   text-align: center;
}
.nt-cadastro-fechado b {
   display: block;
   margin-bottom: 4px;
   color: var(--nt-ouro-claro);
   font-family: var(--nt-fonte-titulo);
   letter-spacing: 0.1em;
   text-transform: uppercase;
   font-size: 12px;
}
