Ir para o conteúdo

MediaWiki:Vector-2022.css: mudanças entre as edições

De Guia Galáctico
Sem resumo de edição
Sem resumo de edição
Linha 1: Linha 1:
/**
/* ==========================================================================
* ══════════════════════════════════════════════════════════════════
  GUIA GALÁCTICO — MediaWiki:Vector-2022.css
GUIA GALÁCTICO — CSS personalizado para Vector 2022
  Estilo do skin: contêiner, cabeçalho, colunas, tipografia, rodapé.
*  Uma wiki sobre SPORE 🌀
* ══════════════════════════════════════════════════════════════════
*
*  INSTALAÇÃO
*  1. Cole este arquivo em MediaWiki:Vector-2022.css
*    (ou MediaWiki:Common.css se quiser aplicar a todas as skins).
*  2. Hospede as fontes e ajuste os caminhos em @font-face abaixo.
*    Sugestão de caminho: /resources/assets/fonts/ no servidor,
*    ou faça upload da imagem de fundo (tiling_glyph_background.jpg)
*    via Special:Upload e use a URL direta do arquivo.
*  3. O tema escuro segue a preferência do leitor: funciona tanto
*    com o seletor de aparência do Vector 2022 (noite/automático)
*    quanto com prefers-color-scheme.
*
*  PALETA (amostrada do material oficial)
*  Azul Spore ......... #0081C9
*  Azul profundo ...... #1E3469
*  Navy espacial ...... #04375B → #021A2E
*  Glifos claros ...... #EBEBEB sobre #FBFBFB
*  Magenta criatura ... #C21F90 (acento, usar com parcimônia)
*/


/* ──────────────────────────────────────────────────────────────────
   Depende dos tokens (--gg-*) definidos em MediaWiki:Common.css.
  1. FONTES
   Instale os dois — este arquivo sozinho não pinta nada.
  Atkinson Hyperlegible Next e Mono são fontes variáveis
   (peso 200–800, eixo itálico). Declaramos duas faces por família
   apontando pro mesmo arquivo: o navegador ativa o eixo `ital`
  conforme o font-style pedido.
  ────────────────────────────────────────────────────────────────── */


@font-face {
  AVISO HONESTO: os nomes de classe internos do Vector 2022 mudam entre
  font-family: 'Atkinson Hyperlegible Next';
  versões do MediaWiki. As seções 3, 6 e 7 são as mais sujeitas a isso.
  src: url('/images/fonts/AtkinsonHyperlegibleNext.woff2') format('woff2');
  Se algo não pegar, inspecione o elemento e ajuste o seletor — a estrutura
  font-weight: 200 800;
  das regras continua válida.
  font-style: normal;
  ========================================================================== */
  font-display: swap;
}
@font-face {
  font-family: 'Atkinson Hyperlegible Next';
  src: url('/images/fonts/AtkinsonHyperlegibleNext.woff2') format('woff2');
  font-weight: 200 800;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'Atkinson Hyperlegible Mono';
  src: url('/images/fonts/AtkinsonHyperlegibleMono.woff2') format('woff2');
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Atkinson Hyperlegible Mono';
  src: url('/images/fonts/AtkinsonHyperlegibleMono.woff2') format('woff2');
  font-weight: 200 800;
  font-style: italic;
  font-display: swap;
}
@font-face {
  font-family: 'SPORE';
  src: url('/images/fonts/SPORELight.woff2') format('woff2');
  font-weight: 300;
  font-display: swap;
}
@font-face {
  font-family: 'SPORE';
  src: url('/images/fonts/SPORERegular.woff2') format('woff2');
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'SPORE';
  src: url('/images/fonts/SPOREBold.woff2') format('woff2');
  font-weight: 700;
  font-display: swap;
}


/* ──────────────────────────────────────────────────────────────────
/* --------------------------------------------------------------------------
   2. VARIÁVEIS DE TEMA
   1. TOKENS DO CODEX
   ────────────────────────────────────────────────────────────────── */
   O Vector 2022 pinta botões, links e ícones a partir dos design tokens do
  Codex. Remapeá-los aqui faz a interface inteira falar a mesma língua da
  wiki, em vez de deixar o azul padrão brigando com o roxo.
  Se preferir manter o azul do MediaWiki, apague este bloco inteiro.
  -------------------------------------------------------------------------- */


:root {
:root {
  /* Marca */
--color-progressive: var(--gg-link);
  --gg-azul: #0081C9;
--color-progressive--hover: #94319f;
  --gg-azul-claro: #2FA8E0;
--color-progressive--active: #5d1c6e;
  --gg-azul-profundo: #1E3469;
--color-visited: var(--gg-link-visitado);
  --gg-navy: #123C78;
--border-color-progressive--focus: var(--gg-ambar);
  --gg-magenta: #C21F90;
--background-color-progressive: var(--gg-nebulosa);
 
--background-color-progressive--hover: #7d3199;
  /* Tipografia */
--background-color-progressive--active: #55206a;
  --gg-fonte-corpo: 'Atkinson Hyperlegible Next', 'Atkinson Hyperlegible', sans-serif;
  --gg-fonte-mono: 'Atkinson Hyperlegible Mono', ui-monospace, monospace;
  --gg-fonte-titulo: 'SPORE', 'Atkinson Hyperlegible Next', sans-serif;
 
  /* Tema claro (padrão) */
  --gg-fundo: #FBFBFB;
  --gg-fundo-conteudo: #FFFFFF;
  --gg-fundo-suave: #F0F5FA;
  --gg-texto: #1A2733;
  --gg-texto-suave: #4A5A6A;
  --gg-borda: #D8E2EC;
  --gg-link: #0074B8;
  --gg-link-visitado: #1E3469;
  --gg-glifos: url('/images/background.jpg');
  --gg-sombra: 0 2px 10px rgba(30, 52, 105, 0.08);
}
}


/* Tema escuro — via seletor do Vector 2022 e via preferência do SO */
@media screen {
@media screen {
  html.skin-theme-clientpref-night {
html.skin-theme-clientpref-night {
--gg-fundo: #021A2E;
--color-progressive: var(--gg-link);
--gg-fundo-conteudo: #06283F;
--color-progressive--hover: #eecaff;
--gg-fundo-suave: #04375B;
--color-progressive--active: #c893e6;
--gg-texto: #E2E9F0;
--color-visited: var(--gg-link-visitado);
--gg-texto-suave: #9FB4C6;
--background-color-progressive: #7d3199;
--gg-borda: #0E4A6E;
--background-color-progressive--hover: #94319f;
--gg-link: #4FB8EC;
}
--gg-link-visitado: #9FC4E8;
--gg-glifos: none;
--gg-sombra: 0 2px 12px rgba(0, 0, 0, 0.4);
  }
}
}
@media screen and (prefers-color-scheme: dark) {
@media screen and (prefers-color-scheme: dark) {
  html.skin-theme-clientpref-os {
html.skin-theme-clientpref-os {
--gg-fundo: #021A2E;
--color-progressive: var(--gg-link);
--gg-fundo-conteudo: #06283F;
--color-progressive--hover: #eecaff;
--gg-fundo-suave: #04375B;
--color-progressive--active: #c893e6;
--gg-texto: #E2E9F0;
--color-visited: var(--gg-link-visitado);
--gg-texto-suave: #9FB4C6;
--background-color-progressive: #7d3199;
--gg-borda: #0E4A6E;
--background-color-progressive--hover: #94319f;
--gg-link: #4FB8EC;
}
--gg-link-visitado: #9FC4E8;
--gg-glifos: none;
--gg-sombra: 0 2px 12px rgba(0, 0, 0, 0.4);
  }
}
}


/* ──────────────────────────────────────────────────────────────────
/* --------------------------------------------------------------------------
   3. ESTRUTURA GERAL
   2. FUNDO E CONTÊINER
   Fundo com o padrão de glifos (claro) ou gradiente espacial (escuro)
   O espaço fica atrás; o conteúdo flutua sobre ele como uma placa.
   ────────────────────────────────────────────────────────────────── */
   -------------------------------------------------------------------------- */


body {
body {
  font-family: var(--gg-fonte-corpo);
background-color: var(--gg-cosmo-900);
  background-color: var(--gg-fundo);
background-image: var(--gg-estrelas), var(--gg-nebulosa-fundo);
  background-image: var(--gg-glifos);
background-size: 420px 420px, cover;
  background-attachment: fixed;
background-attachment: fixed;
  color: var(--gg-texto);
font-family: var(--gg-fonte-texto);
}
}


html.skin-theme-clientpref-night body {
  background-image: linear-gradient(180deg, #04375B 0%, #021A2E 60%, #010F1C 100%);
}
@media screen and (prefers-color-scheme: dark) {
  html.skin-theme-clientpref-os body {
background-image: linear-gradient(180deg, #04375B 0%, #021A2E 60%, #010F1C 100%);
  }
}
/* "Cartão" do conteúdo flutuando sobre o fundo, bem arredondado
  como as letras-bolha da marca */
.mw-page-container {
.mw-page-container {
  background: transparent;
background-color: var(--gg-superficie);
color: var(--gg-texto);
border-radius: var(--gg-raio-g);
box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.55);
}
}


.mw-body,
/* Nos monitores largos o contêiner destaca do fundo; nos estreitos ele
.vector-body {
  ocupa a tela inteira e o arredondamento só atrapalha. */
  font-family: var(--gg-fonte-corpo);
@media (max-width: 1000px) {
  font-size: 1rem;
.mw-page-container {
  line-height: 1.65;
border-radius: 0;
  color: var(--gg-texto);
box-shadow: none;
}
}
}


#content.mw-body {
/* --------------------------------------------------------------------------
  background-color: var(--gg-fundo-conteudo);
   3. CABEÇALHO
  border: 1px solid var(--gg-borda);
   -------------------------------------------------------------------------- */
  border-radius: 20px;
  box-shadow: var(--gg-sombra);
  padding: 1.75rem 2rem;
}
 
/* ──────────────────────────────────────────────────────────────────
   4. CABEÇALHO DO SITE E TÍTULOS
   ────────────────────────────────────────────────────────────────── */


/* Faixa superior com gradiente Spore */
.vector-header-container .vector-header {
.vector-header-container .vector-header {
  background: linear-gradient(180deg, var(--gg-azul-claro) 0%, var(--gg-azul) 45%, var(--gg-navy) 100%);
border-bottom: 1px solid var(--gg-borda);
  border-radius: 0 0 18px 18px;
  box-shadow: var(--gg-sombra);
}
}


.vector-header .mw-logo-wordmark,
/* Filete de nebulosa sob o cabeçalho — 3px de identidade por um custo
.vector-header .mw-logo-tagline {
  praticamente zero. */
  color: #fff;
.vector-header-container {
position: relative;
}
}


/* Ícones e links do cabeçalho legíveis sobre o azul.
.vector-header-container::after {
  Atenção: apenas links e botões "quiet" (sem fundo próprio) —
content: '';
  botões com fundo, como o de busca, têm cor própria na seção 7. */
position: absolute;
.vector-header .vector-menu-content,
inset-inline: 0;
.vector-header a,
bottom: 0;
.vector-header a:visited,
height: 3px;
.vector-header .cdx-button--weight-quiet {
background: linear-gradient(
  color: #fff;
90deg,
var(--gg-nebulosa-viva) 0%,
var(--gg-ciano) 35%,
var(--gg-celula-viva) 65%,
var(--gg-ambar-vivo) 100%
);
}
}


/* Nome de usuário em destaque */
.vector-sticky-header {
.vector-user-links #pt-userpage a,
background-color: var(--gg-superficie);
.vector-user-links #pt-userpage-2 a,
border-bottom-color: var(--gg-borda);
.vector-user-links a.mw-userlink {
  color: #fff;
  font-weight: 700;
}
}


/* Ações do cabeçalho (notificações, mensagens, vigiados):
/* Busca: o foco é âmbar, quente, difícil de perder de vista. */
  ícones brancos direto no gradiente, com halo translúcido
.vector-search-box .cdx-text-input__input {
  no hover */
border-radius: 999px;
.vector-user-links .mw-echo-notifications-badge,
border-color: var(--gg-borda-forte);
.vector-user-links .cdx-button--icon-only {
background-color: var(--gg-superficie-2);
  color: #fff;
color: var(--gg-texto);
  border: none;
  border-radius: 999px;
  transition: background-color 120ms ease;
}
}
.vector-user-links .mw-echo-notifications-badge:hover,
 
.vector-user-links .cdx-button--icon-only:hover {
.vector-search-box .cdx-text-input__input:focus {
  background-color: rgba(255, 255, 255, 0.18);
border-color: var(--gg-realce);
box-shadow: inset 0 0 0 1px var(--gg-realce);
}
}


/* Menu do usuário: bolha branca com ícone navy — sem isso,
/* --------------------------------------------------------------------------
   o ícone herda o branco do cabeçalho e some na bolha */
  4. MENUS LATERAIS E SUMÁRIO
.vector-user-links .vector-dropdown-label.cdx-button {
   -------------------------------------------------------------------------- */
  background-color: rgba(255, 255, 255, 0.92);
 
  color: var(--gg-azul-profundo);
.vector-main-menu .vector-menu-heading,
  border: none;
.vector-page-tools .vector-menu-heading,
  border-radius: 999px;
.vector-toc-menu-heading,
  padding-left: 10px;
#vector-toc .vector-toc-heading {
  padding-right: 10px;
color: var(--gg-texto-suave);
  transition: background-color 120ms ease, box-shadow 120ms ease;
font-family: var(--gg-fonte-titulo);
font-size: 0.8125rem;
font-weight: 700;
letter-spacing: 0.04em;
text-transform: uppercase;
}
}
.vector-user-links .vector-dropdown-label.cdx-button:hover {
 
  background-color: #fff;
.vector-toc-link {
  color: var(--gg-azul-profundo);
border-radius: 0 8px 8px 0;
  box-shadow: 0 2px 8px rgba(2, 26, 46, 0.3);
border-left: 3px solid transparent;
padding-left: 0.6rem;
}
}


/* No modo escuro, o skin inverte os ícones (ficam claros),
.vector-toc-link:hover {
  então a bolha branca vira translúcida — o ícone claro
background-color: var(--gg-superficie-2);
  funciona sobre ela, no mesmo espírito do halo dos vizinhos */
html.skin-theme-clientpref-night .vector-user-links .vector-dropdown-label.cdx-button {
  background-color: rgba(255, 255, 255, 0.16);
  color: #fff;
}
}
html.skin-theme-clientpref-night .vector-user-links .vector-dropdown-label.cdx-button:hover {
 
  background-color: rgba(255, 255, 255, 0.28);
.vector-toc-list-item-active > .vector-toc-link {
  color: #fff;
border-left-color: var(--gg-celula);
  box-shadow: none;
background-color: var(--gg-superficie-2);
}
font-weight: 700;
@media screen and (prefers-color-scheme: dark) {
  html.skin-theme-clientpref-os .vector-user-links .vector-dropdown-label.cdx-button {
background-color: rgba(255, 255, 255, 0.16);
color: #fff;
  }
  html.skin-theme-clientpref-os .vector-user-links .vector-dropdown-label.cdx-button:hover {
background-color: rgba(255, 255, 255, 0.28);
color: #fff;
box-shadow: none;
  }
}
}


/* Respiro entre as ações */
/* --------------------------------------------------------------------------
.vector-user-links > div,
  5. TÍTULO DA PÁGINA E CONTEÚDO
.vector-user-links > nav {
  -------------------------------------------------------------------------- */
  margin-left: 4px;
 
#firstHeading,
.mw-first-heading {
font-family: var(--gg-fonte-titulo);
font-size: clamp(1.9rem, 4vw, 2.6rem);
font-weight: 700;
font-variation-settings: 'SOFT' 50, 'WONK' 1;
line-height: 1.1;
letter-spacing: -0.01em;
border-bottom: 0;
text-wrap: balance;
}
}


/* Título da página: a fonte SPORE em degradê azul, em
/* A página inicial já traz o próprio <h1> dentro do conteúdo. Dois <h1>
   maiúsculas, com leve "respiro" bolhas precisam de espaço */
   na mesma página é ruído para leitor de tela escondemos o do skin.
.mw-body h1,
  (Alternativa melhor a longo prazo: rebaixar o título do conteúdo para
h1#firstHeading,
  == e deixar só o <h1> do MediaWiki.) */
.mw-body-header .firstHeading {
.page-Página_principal .vector-page-titlebar,
  font-family: var(--gg-fonte-titulo);
.page-Página_principal #firstHeading {
  font-weight: 700;
display: none;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  border-bottom: none;
  background: linear-gradient(180deg, var(--gg-azul-claro) 0%, var(--gg-azul) 55%, var(--gg-azul-profundo) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-bottom: 0.15em;
}
}


/* Prefixo de namespace ("Guia:", "Usuário:"…) em SPORE Light,
.mw-body-content {
  pra hierarquizar visualmente: o nome da página é o astro,
font-size: 1rem;
  o namespace é a órbita */
line-height: 1.65;
.mw-body h1 .mw-page-title-namespace,
color: var(--gg-texto);
.mw-body h1 .mw-page-title-separator {
  font-weight: 300;
}
}


/* h2 também em SPORE, mas em cor sólida e com o "traço-cometa" */
.mw-body-content p {
.mw-body h2,
max-width: 78ch;
.vector-body h2 {
text-wrap: pretty;
  font-family: var(--gg-fonte-titulo);
  font-weight: 400;
  color: var(--gg-azul-profundo);
  border-bottom: 3px solid transparent;
  border-image: linear-gradient(90deg, var(--gg-azul) 0%, var(--gg-azul-claro) 40%, transparent 100%) 1;
  padding-bottom: 0.2em;
}
}


html.skin-theme-clientpref-night .mw-body h2 { color: #7FCBF2; }
/* Títulos de seção com um "núcleo celular" antes — o único enfeite
@media screen and (prefers-color-scheme: dark) {
  repetido no corpo do texto, e ele carrega o tema sozinho. */
  html.skin-theme-clientpref-os .mw-body h2 { color: #7FCBF2; }
.mw-body-content .mw-heading2,
.mw-body-content > h2 {
position: relative;
margin-top: 2.25rem;
padding-bottom: 0.35rem;
border-bottom: 2px solid var(--gg-borda);
}
}


/* h3 em diante: Atkinson pesada, pra não saturar a fonte display */
.mw-body-content h2 {
.mw-body h3, .mw-body h4, .mw-body h5, .mw-body h6 {
font-family: var(--gg-fonte-titulo);
  font-family: var(--gg-fonte-corpo);
font-size: 1.6rem;
  font-weight: 700;
font-weight: 700;
  color: var(--gg-texto);
font-variation-settings: 'SOFT' 40;
line-height: 1.25;
border-bottom: 0;
padding-bottom: 0;
}
}


/* ──────────────────────────────────────────────────────────────────
.mw-body-content .mw-heading2::after,
  5. LINKS
.mw-body-content > h2::after {
  ────────────────────────────────────────────────────────────────── */
content: '';
 
position: absolute;
.mw-body a,
inset-inline-start: 0;
.vector-body a,
bottom: -2px;
.vector-toc a,
width: 2.75rem;
.vector-menu a {
height: 2px;
  color: var(--gg-link);
background: var(--gg-celula);
  text-decoration: none;
}
.mw-body a:visited { color: var(--gg-link-visitado); }
.mw-body a:hover,
.vector-body a:hover {
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}
}


/* Redlinks: o magenta da fase de criatura, em vez do vermelho padrão */
.mw-body-content h3,
.mw-body a.new,
.mw-body-content h4,
.mw-body a.new:visited {
.mw-body-content h5,
  color: var(--gg-magenta);
.mw-body-content h6 {
font-family: var(--gg-fonte-titulo);
font-weight: 700;
font-variation-settings: 'SOFT' 30;
line-height: 1.3;
}
}


/* Seleção de texto */
.mw-body-content h3 { font-size: 1.25rem; }
::selection {
.mw-body-content h4 { font-size: 1.08rem; }
  background: var(--gg-azul-claro);
  color: #fff;
}


/* ──────────────────────────────────────────────────────────────────
/* -- Links ----------------------------------------------------------------- */
  6. NAVEGAÇÃO LATERAL, SUMÁRIO E MENUS
  ────────────────────────────────────────────────────────────────── */


.vector-pinnable-element,
.mw-parser-output a:not(.image):not(.mw-file-description) {
.vector-toc,
text-underline-offset: 0.16em;
#vector-toc-pinned-container .vector-toc {
text-decoration-thickness: 1px;
  background-color: var(--gg-fundo-conteudo);
transition: text-decoration-thickness 100ms ease;
  border: 1px solid var(--gg-borda);
  border-radius: 16px;
  box-shadow: var(--gg-sombra);
  padding: 0.5rem 0.75rem;
}
}


/* Os contêineres externos dos painéis fixados devem ser
.mw-parser-output a:hover {
  transparentes — quem tem fundo é o cartão interno acima.
text-decoration-thickness: 2px;
  Sem isso, o modo escuro pinta um retângulo atrás dos cantos
  arredondados. */
.vector-pinned-container,
#vector-main-menu-pinned-container,
#vector-toc-pinned-container,
#vector-page-tools-pinned-container,
.vector-column-start,
.vector-column-end {
  background-color: transparent;
  box-shadow: none;
}
}


/* Mesma lógica pros menus "escondidos": eles abrem num popup
.mw-parser-output a.new,
  (.vector-dropdown-content) com fundo e sombra próprios, que
.mw-parser-output a.new:visited {
  viram uma caixa escura ao redor do cartão. Quando o popup
color: var(--gg-link-novo);
  contém um cartão nosso, ele fica transparente e o cartão
  assume o papel de popup. */
.vector-dropdown .vector-dropdown-content:has(> .vector-pinnable-element) {
  background-color: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}
.vector-dropdown .vector-dropdown-content > .vector-pinnable-element {
  margin: 0;
}
}


/* Botão "Esconder"/"Mover para a barra lateral": pílula discreta
/* Foco: âmbar grosso, offset generoso, funciona sobre claro e sobre escuro. */
  em vez da caixa cinza padrão */
a:focus-visible,
.vector-pinnable-header-toggle-button,
button:focus-visible,
.vector-pinnable-header-toggle-button.cdx-button {
input:focus-visible,
  border-radius: 999px;
summary:focus-visible,
  background-color: transparent;
[tabindex]:focus-visible {
  color: var(--gg-link);
outline: 3px solid var(--gg-realce);
  font-family: var(--gg-fonte-corpo);
outline-offset: 2px;
  font-size: 0.85em;
border-radius: 3px;
}
.vector-pinnable-header-toggle-button:hover,
.vector-pinnable-header-toggle-button.cdx-button:hover {
  background-color: var(--gg-fundo-suave);
  color: var(--gg-link);
}
}


.vector-pinnable-header-label,
/* -- Tabelas --------------------------------------------------------------- */
.vector-toc .vector-toc-pinnable-header {
  font-family: var(--gg-fonte-titulo);
  font-weight: 400;
  color: var(--gg-azul-profundo);
  letter-spacing: 0.03em;
}


html.skin-theme-clientpref-night .vector-pinnable-header-label { color: #7FCBF2; }
.mw-body-content .wikitable {
@media screen and (prefers-color-scheme: dark) {
border: 1px solid var(--gg-borda);
  html.skin-theme-clientpref-os .vector-pinnable-header-label { color: #7FCBF2; }
border-radius: var(--gg-raio);
border-collapse: separate;
border-spacing: 0;
overflow: hidden;
background: var(--gg-superficie);
color: var(--gg-texto);
box-shadow: 0 6px 18px -12px var(--gg-sombra);
}
}


/* Todos os links do sumário recebem o mesmo padding horizontal:
.mw-body-content .wikitable > * > tr > th {
  a pílula do item ativo ganha respiro e o texto continua
background: var(--gg-superficie-2);
  alinhado com os itens vizinhos */
border-color: var(--gg-borda);
.vector-toc .vector-toc-link {
color: var(--gg-texto);
  border-radius: 999px;
font-family: var(--gg-fonte-titulo);
  padding-left: 0.75em;
font-weight: 700;
  padding-right: 0.75em;
}
}


/* Item ativo do sumário: pílula com a cor de link do tema.
.mw-body-content .wikitable > * > tr > td {
  O texto fica num elemento interno (.vector-toc-text), então
border-color: var(--gg-borda);
  precisamos alcançá-lo explicitamente. */
.vector-toc .vector-toc-list-item-active > .vector-toc-link,
.vector-toc .vector-toc-level-1-active > .vector-toc-link {
  background: var(--gg-fundo-suave);
  border-radius: 999px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link,
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text,
.vector-toc .vector-toc-level-1-active > .vector-toc-link,
.vector-toc .vector-toc-level-1-active > .vector-toc-link .vector-toc-text {
  color: var(--gg-link);
  font-weight: 700;
}
}


/* Abas (Artigo / Discussão / Editar…) */
.mw-body-content .wikitable > tbody > tr:hover > td {
.vector-menu-tabs .mw-list-item.selected a,
background: color-mix(in srgb, var(--gg-celula) 8%, transparent);
.vector-menu-tabs .mw-list-item.selected a:visited {
  color: var(--gg-azul);
  font-weight: 700;
}
}


/* ──────────────────────────────────────────────────────────────────
/* -- Miniaturas, citações, código ------------------------------------------ */
  7. BOTÕES E BUSCA — tudo em pílula, no espírito bolha
  ────────────────────────────────────────────────────────────────── */


.cdx-button {
.mw-body-content figure[typeof~='mw:File/Thumb'],
  border-radius: 999px;
.mw-body-content .thumbinner {
  font-family: var(--gg-fonte-corpo);
border-radius: var(--gg-raio);
  font-weight: 600;
border-color: var(--gg-borda);
background: var(--gg-superficie-2);
overflow: hidden;
}
}


.cdx-button--action-progressive.cdx-button--weight-primary {
.mw-body-content figcaption,
  background: linear-gradient(180deg, var(--gg-azul-claro) 0%, var(--gg-azul) 100%);
.mw-body-content .thumbcaption {
  border-color: var(--gg-azul);
padding: 0.5rem 0.7rem 0.65rem;
}
color: var(--gg-texto-suave);
.cdx-button--action-progressive.cdx-button--weight-primary:hover {
font-size: 0.8125rem;
  background: linear-gradient(180deg, #45B5E8 0%, #0090DE 100%);
line-height: 1.4;
}
}


.cdx-text-input__input,
.mw-body-content blockquote {
.cdx-search-input .cdx-text-input__input {
margin-inline: 0;
  border-radius: 999px;
padding: 0.9rem 1.2rem;
  font-family: var(--gg-fonte-corpo);
border-inline-start: 4px solid var(--gg-nebulosa);
}
border-radius: 0 var(--gg-raio) var(--gg-raio) 0;
.cdx-text-input__input:focus {
background: var(--gg-superficie-2);
  border-color: var(--gg-azul);
font-size: 1.05rem;
  box-shadow: 0 0 0 2px rgba(0, 129, 201, 0.35);
}
}


/* Busca com botão acoplado ("Pesquisar"): input e botão viram
.mw-body-content code,
  uma pílula única — cantos retos onde se encontram, botão em
.mw-body-content pre,
  azul Spore com texto branco */
.mw-body-content .mw-code {
.cdx-search-input--has-end-button {
border-color: var(--gg-borda);
  border-radius: 999px;
border-radius: 8px;
  overflow: hidden;
background: var(--gg-superficie-2);
}
color: var(--gg-texto);
.cdx-search-input--has-end-button .cdx-text-input__input,
font-family: var(--gg-fonte-mono);
.cdx-search-input--has-end-button .cdx-text-input__input:focus {
font-size: 0.9em;
  border-radius: 999px 0 0 999px;
}
.cdx-search-input__end-button.cdx-button,
.cdx-search-input--has-end-button .cdx-search-input__end-button {
  border-radius: 0 999px 999px 0;
  background: linear-gradient(180deg, var(--gg-azul-claro) 0%, var(--gg-azul) 100%);
  border: 1px solid var(--gg-azul);
  color: #fff;
  font-weight: 600;
  padding-left: 1.1em;
  padding-right: 1.2em;
}
.cdx-search-input__end-button.cdx-button:hover {
  background: linear-gradient(180deg, #45B5E8 0%, #0090DE 100%);
  color: #fff;
}
.cdx-search-input__end-button.cdx-button:focus-visible {
  outline: 3px solid var(--gg-azul-claro);
  outline-offset: -3px;
}
}


/* ──────────────────────────────────────────────────────────────────
/* -- Caixas de mensagem / esboço ------------------------------------------- */
  8. CONTEÚDO: TABELAS, CÓDIGO, CITAÇÕES, MISC
  ────────────────────────────────────────────────────────────────── */


/* Tabelas wiki */
.mw-body-content .ambox,
.mw-body .wikitable {
.mw-body-content .gg-aviso {
  background-color: var(--gg-fundo-conteudo);
margin: 1.25rem 0;
  border: 1px solid var(--gg-borda);
padding: 0.85rem 1.1rem;
  border-radius: 14px;
border: 1px solid var(--gg-borda);
  border-collapse: separate;
border-inline-start: 5px solid var(--gg-ambar);
  border-spacing: 0;
border-radius: var(--gg-raio);
  overflow: hidden;
background: var(--gg-superficie-2);
  box-shadow: var(--gg-sombra);
color: var(--gg-texto-suave);
}
font-size: 0.9375rem;
.mw-body .wikitable > * > tr > th {
  background: linear-gradient(180deg, var(--gg-azul) 0%, var(--gg-navy) 100%);
  color: #fff;
  font-family: var(--gg-fonte-corpo);
  font-weight: 700;
  border: none;
  padding: 0.5em 0.9em;
}
.mw-body .wikitable > * > tr > td {
  border: none;
  border-top: 1px solid var(--gg-borda);
  padding: 0.45em 0.9em;
}
.mw-body .wikitable > tbody > tr:nth-child(even) > td {
  background-color: var(--gg-fundo-suave);
}
}


/* Código e pré-formatado */
/* -- Link de editar seção -------------------------------------------------- */
.mw-body code,
 
.mw-body pre,
.mw-editsection {
.mw-body tt,
font-family: var(--gg-fonte-texto);
.mw-body kbd,
font-size: 0.8125rem;
.mw-body samp,
opacity: 0.55;
.mw-body .mw-code {
transition: opacity 120ms ease;
  font-family: var(--gg-fonte-mono);
  font-size: 0.925em;
  background-color: var(--gg-fundo-suave);
  border: 1px solid var(--gg-borda);
  border-radius: 8px;
  color: var(--gg-texto);
}
}
.mw-body pre {
  padding: 0.9em 1.1em;
  border-radius: 14px;
  line-height: 1.55;
}
.mw-body code { padding: 0.1em 0.4em; }


/* Citações: cometa magenta na margem */
.mw-heading:hover .mw-editsection,
.mw-body blockquote {
.mw-editsection:focus-within {
  border-left: 4px solid var(--gg-magenta);
opacity: 1;
  background: var(--gg-fundo-suave);
  border-radius: 0 14px 14px 0;
  padding: 0.75em 1.1em;
  color: var(--gg-texto-suave);
  font-style: italic;
}
}


/* Miniaturas de imagem */
/* --------------------------------------------------------------------------
.mw-body figure[typeof~='mw:File/Thumb'],
  6. RODAPÉ
.mw-body .thumbinner {
  Aqui o cósmico volta, fechando a página do jeito que ela começou.
  background-color: var(--gg-fundo-conteudo);
  -------------------------------------------------------------------------- */
  border: 1px solid var(--gg-borda);
  border-radius: 14px;
  box-shadow: var(--gg-sombra);
  overflow: hidden;
}
.mw-body figure[typeof~='mw:File/Thumb'] > figcaption,
.mw-body .thumbcaption {
  font-size: 0.85em;
  color: var(--gg-texto-suave);
  border-top: 1px solid var(--gg-borda);
}


/* Link "editar" das seções, discreto */
.mw-footer-container,
.mw-editsection {
.mw-footer {
  font-family: var(--gg-fonte-corpo);
border-top: 3px solid var(--gg-nebulosa);
  font-size: 0.55em;
background-color: var(--gg-cosmo-800);
  vertical-align: middle;
background-image: var(--gg-estrelas), var(--gg-nebulosa-fundo);
background-size: 380px 380px, cover;
color: var(--gg-cosmo-texto-2);
border-radius: 0 0 var(--gg-raio-g) var(--gg-raio-g);
}
}


/* Linha horizontal como traço de órbita */
.mw-footer a,
.mw-body hr {
.mw-footer a:visited {
  border: none;
color: var(--gg-celula-viva);
  height: 3px;
  border-radius: 3px;
  background: linear-gradient(90deg, transparent, var(--gg-azul), transparent);
  margin: 2em auto;
  max-width: 60%;
}
}


/* Notas de rodapé / referências */
.mw-footer li {
.mw-body .mw-references-wrap,
color: var(--gg-cosmo-texto-2);
.mw-body ol.references {
  font-size: 0.9em;
  color: var(--gg-texto-suave);
}
}


/* ──────────────────────────────────────────────────────────────────
@media (max-width: 1000px) {
  9. RODAPÉ
.mw-footer-container,
  ────────────────────────────────────────────────────────────────── */
.mw-footer { border-radius: 0; }
 
.mw-footer-container {
  background: transparent;
  color: var(--gg-texto-suave);
}
}
.mw-footer-container a { color: var(--gg-link); }
/* ──────────────────────────────────────────────────────────────────
  10. ACESSIBILIDADE E DETALHES FINAIS
  ────────────────────────────────────────────────────────────────── */


/* Foco visível e consistente em todo lugar */
/* --------------------------------------------------------------------------
a:focus-visible,
  7. MOVIMENTO E IMPRESSÃO
button:focus-visible,
  -------------------------------------------------------------------------- */
.cdx-button:focus-visible,
input:focus-visible {
  outline: 3px solid var(--gg-azul-claro);
  outline-offset: 2px;
  border-radius: 6px;
}


/* Respeita quem prefere menos movimento */
@media (prefers-reduced-motion: reduce) {
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
*,
animation-duration: 0.01ms !important;
*::before,
transition-duration: 0.01ms !important;
*::after {
  }
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
scroll-behavior: auto !important;
}
}
}


/* Impressão: sem fundos decorativos, tinta é cara */
@media print {
@media print {
  body { background: #fff !important; }
body,
  #content.mw-body { box-shadow: none; border: none; }
.mw-footer-container,
.mw-footer {
background: none !important;
color: #000 !important;
}
.mw-page-container {
box-shadow: none;
border-radius: 0;
}
.vector-header-container::after { display: none; }
}
}

Edição das 20h40min de 27 de julho de 2026

/* ==========================================================================
   GUIA GALÁCTICO — MediaWiki:Vector-2022.css
   Estilo do skin: contêiner, cabeçalho, colunas, tipografia, rodapé.

   Depende dos tokens (--gg-*) definidos em MediaWiki:Common.css.
   Instale os dois — este arquivo sozinho não pinta nada.

   AVISO HONESTO: os nomes de classe internos do Vector 2022 mudam entre
   versões do MediaWiki. As seções 3, 6 e 7 são as mais sujeitas a isso.
   Se algo não pegar, inspecione o elemento e ajuste o seletor — a estrutura
   das regras continua válida.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TOKENS DO CODEX
   O Vector 2022 pinta botões, links e ícones a partir dos design tokens do
   Codex. Remapeá-los aqui faz a interface inteira falar a mesma língua da
   wiki, em vez de deixar o azul padrão brigando com o roxo.
   Se preferir manter o azul do MediaWiki, apague este bloco inteiro.
   -------------------------------------------------------------------------- */

:root {
	--color-progressive: var(--gg-link);
	--color-progressive--hover: #94319f;
	--color-progressive--active: #5d1c6e;
	--color-visited: var(--gg-link-visitado);
	--border-color-progressive--focus: var(--gg-ambar);
	--background-color-progressive: var(--gg-nebulosa);
	--background-color-progressive--hover: #7d3199;
	--background-color-progressive--active: #55206a;
}

@media screen {
	html.skin-theme-clientpref-night {
		--color-progressive: var(--gg-link);
		--color-progressive--hover: #eecaff;
		--color-progressive--active: #c893e6;
		--color-visited: var(--gg-link-visitado);
		--background-color-progressive: #7d3199;
		--background-color-progressive--hover: #94319f;
	}
}

@media screen and (prefers-color-scheme: dark) {
	html.skin-theme-clientpref-os {
		--color-progressive: var(--gg-link);
		--color-progressive--hover: #eecaff;
		--color-progressive--active: #c893e6;
		--color-visited: var(--gg-link-visitado);
		--background-color-progressive: #7d3199;
		--background-color-progressive--hover: #94319f;
	}
}

/* --------------------------------------------------------------------------
   2. FUNDO E CONTÊINER
   O espaço fica atrás; o conteúdo flutua sobre ele como uma placa.
   -------------------------------------------------------------------------- */

body {
	background-color: var(--gg-cosmo-900);
	background-image: var(--gg-estrelas), var(--gg-nebulosa-fundo);
	background-size: 420px 420px, cover;
	background-attachment: fixed;
	font-family: var(--gg-fonte-texto);
}

.mw-page-container {
	background-color: var(--gg-superficie);
	color: var(--gg-texto);
	border-radius: var(--gg-raio-g);
	box-shadow: 0 24px 60px -24px rgba(0, 0, 0, 0.55);
}

/* Nos monitores largos o contêiner destaca do fundo; nos estreitos ele
   ocupa a tela inteira e o arredondamento só atrapalha. */
@media (max-width: 1000px) {
	.mw-page-container {
		border-radius: 0;
		box-shadow: none;
	}
}

/* --------------------------------------------------------------------------
   3. CABEÇALHO
   -------------------------------------------------------------------------- */

.vector-header-container .vector-header {
	border-bottom: 1px solid var(--gg-borda);
}

/* Filete de nebulosa sob o cabeçalho — 3px de identidade por um custo
   praticamente zero. */
.vector-header-container {
	position: relative;
}

.vector-header-container::after {
	content: '';
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	height: 3px;
	background: linear-gradient(
		90deg,
		var(--gg-nebulosa-viva) 0%,
		var(--gg-ciano) 35%,
		var(--gg-celula-viva) 65%,
		var(--gg-ambar-vivo) 100%
	);
}

.vector-sticky-header {
	background-color: var(--gg-superficie);
	border-bottom-color: var(--gg-borda);
}

/* Busca: o foco é âmbar, quente, difícil de perder de vista. */
.vector-search-box .cdx-text-input__input {
	border-radius: 999px;
	border-color: var(--gg-borda-forte);
	background-color: var(--gg-superficie-2);
	color: var(--gg-texto);
}

.vector-search-box .cdx-text-input__input:focus {
	border-color: var(--gg-realce);
	box-shadow: inset 0 0 0 1px var(--gg-realce);
}

/* --------------------------------------------------------------------------
   4. MENUS LATERAIS E SUMÁRIO
   -------------------------------------------------------------------------- */

.vector-main-menu .vector-menu-heading,
.vector-page-tools .vector-menu-heading,
.vector-toc-menu-heading,
#vector-toc .vector-toc-heading {
	color: var(--gg-texto-suave);
	font-family: var(--gg-fonte-titulo);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.vector-toc-link {
	border-radius: 0 8px 8px 0;
	border-left: 3px solid transparent;
	padding-left: 0.6rem;
}

.vector-toc-link:hover {
	background-color: var(--gg-superficie-2);
}

.vector-toc-list-item-active > .vector-toc-link {
	border-left-color: var(--gg-celula);
	background-color: var(--gg-superficie-2);
	font-weight: 700;
}

/* --------------------------------------------------------------------------
   5. TÍTULO DA PÁGINA E CONTEÚDO
   -------------------------------------------------------------------------- */

#firstHeading,
.mw-first-heading {
	font-family: var(--gg-fonte-titulo);
	font-size: clamp(1.9rem, 4vw, 2.6rem);
	font-weight: 700;
	font-variation-settings: 'SOFT' 50, 'WONK' 1;
	line-height: 1.1;
	letter-spacing: -0.01em;
	border-bottom: 0;
	text-wrap: balance;
}

/* A página inicial já traz o próprio <h1> dentro do conteúdo. Dois <h1>
   na mesma página é ruído para leitor de tela — escondemos o do skin.
   (Alternativa melhor a longo prazo: rebaixar o título do conteúdo para
   == e deixar só o <h1> do MediaWiki.) */
.page-Página_principal .vector-page-titlebar,
.page-Página_principal #firstHeading {
	display: none;
}

.mw-body-content {
	font-size: 1rem;
	line-height: 1.65;
	color: var(--gg-texto);
}

.mw-body-content p {
	max-width: 78ch;
	text-wrap: pretty;
}

/* Títulos de seção com um "núcleo celular" antes — o único enfeite
   repetido no corpo do texto, e ele carrega o tema sozinho. */
.mw-body-content .mw-heading2,
.mw-body-content > h2 {
	position: relative;
	margin-top: 2.25rem;
	padding-bottom: 0.35rem;
	border-bottom: 2px solid var(--gg-borda);
}

.mw-body-content h2 {
	font-family: var(--gg-fonte-titulo);
	font-size: 1.6rem;
	font-weight: 700;
	font-variation-settings: 'SOFT' 40;
	line-height: 1.25;
	border-bottom: 0;
	padding-bottom: 0;
}

.mw-body-content .mw-heading2::after,
.mw-body-content > h2::after {
	content: '';
	position: absolute;
	inset-inline-start: 0;
	bottom: -2px;
	width: 2.75rem;
	height: 2px;
	background: var(--gg-celula);
}

.mw-body-content h3,
.mw-body-content h4,
.mw-body-content h5,
.mw-body-content h6 {
	font-family: var(--gg-fonte-titulo);
	font-weight: 700;
	font-variation-settings: 'SOFT' 30;
	line-height: 1.3;
}

.mw-body-content h3 { font-size: 1.25rem; }
.mw-body-content h4 { font-size: 1.08rem; }

/* -- Links ----------------------------------------------------------------- */

.mw-parser-output a:not(.image):not(.mw-file-description) {
	text-underline-offset: 0.16em;
	text-decoration-thickness: 1px;
	transition: text-decoration-thickness 100ms ease;
}

.mw-parser-output a:hover {
	text-decoration-thickness: 2px;
}

.mw-parser-output a.new,
.mw-parser-output a.new:visited {
	color: var(--gg-link-novo);
}

/* Foco: âmbar grosso, offset generoso, funciona sobre claro e sobre escuro. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid var(--gg-realce);
	outline-offset: 2px;
	border-radius: 3px;
}

/* -- Tabelas --------------------------------------------------------------- */

.mw-body-content .wikitable {
	border: 1px solid var(--gg-borda);
	border-radius: var(--gg-raio);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: var(--gg-superficie);
	color: var(--gg-texto);
	box-shadow: 0 6px 18px -12px var(--gg-sombra);
}

.mw-body-content .wikitable > * > tr > th {
	background: var(--gg-superficie-2);
	border-color: var(--gg-borda);
	color: var(--gg-texto);
	font-family: var(--gg-fonte-titulo);
	font-weight: 700;
}

.mw-body-content .wikitable > * > tr > td {
	border-color: var(--gg-borda);
}

.mw-body-content .wikitable > tbody > tr:hover > td {
	background: color-mix(in srgb, var(--gg-celula) 8%, transparent);
}

/* -- Miniaturas, citações, código ------------------------------------------ */

.mw-body-content figure[typeof~='mw:File/Thumb'],
.mw-body-content .thumbinner {
	border-radius: var(--gg-raio);
	border-color: var(--gg-borda);
	background: var(--gg-superficie-2);
	overflow: hidden;
}

.mw-body-content figcaption,
.mw-body-content .thumbcaption {
	padding: 0.5rem 0.7rem 0.65rem;
	color: var(--gg-texto-suave);
	font-size: 0.8125rem;
	line-height: 1.4;
}

.mw-body-content blockquote {
	margin-inline: 0;
	padding: 0.9rem 1.2rem;
	border-inline-start: 4px solid var(--gg-nebulosa);
	border-radius: 0 var(--gg-raio) var(--gg-raio) 0;
	background: var(--gg-superficie-2);
	font-size: 1.05rem;
}

.mw-body-content code,
.mw-body-content pre,
.mw-body-content .mw-code {
	border-color: var(--gg-borda);
	border-radius: 8px;
	background: var(--gg-superficie-2);
	color: var(--gg-texto);
	font-family: var(--gg-fonte-mono);
	font-size: 0.9em;
}

/* -- Caixas de mensagem / esboço ------------------------------------------- */

.mw-body-content .ambox,
.mw-body-content .gg-aviso {
	margin: 1.25rem 0;
	padding: 0.85rem 1.1rem;
	border: 1px solid var(--gg-borda);
	border-inline-start: 5px solid var(--gg-ambar);
	border-radius: var(--gg-raio);
	background: var(--gg-superficie-2);
	color: var(--gg-texto-suave);
	font-size: 0.9375rem;
}

/* -- Link de editar seção -------------------------------------------------- */

.mw-editsection {
	font-family: var(--gg-fonte-texto);
	font-size: 0.8125rem;
	opacity: 0.55;
	transition: opacity 120ms ease;
}

.mw-heading:hover .mw-editsection,
.mw-editsection:focus-within {
	opacity: 1;
}

/* --------------------------------------------------------------------------
   6. RODAPÉ
   Aqui o cósmico volta, fechando a página do jeito que ela começou.
   -------------------------------------------------------------------------- */

.mw-footer-container,
.mw-footer {
	border-top: 3px solid var(--gg-nebulosa);
	background-color: var(--gg-cosmo-800);
	background-image: var(--gg-estrelas), var(--gg-nebulosa-fundo);
	background-size: 380px 380px, cover;
	color: var(--gg-cosmo-texto-2);
	border-radius: 0 0 var(--gg-raio-g) var(--gg-raio-g);
}

.mw-footer a,
.mw-footer a:visited {
	color: var(--gg-celula-viva);
}

.mw-footer li {
	color: var(--gg-cosmo-texto-2);
}

@media (max-width: 1000px) {
	.mw-footer-container,
	.mw-footer { border-radius: 0; }
}

/* --------------------------------------------------------------------------
   7. MOVIMENTO E IMPRESSÃO
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

@media print {
	body,
	.mw-footer-container,
	.mw-footer {
		background: none !important;
		color: #000 !important;
	}
	.mw-page-container {
		box-shadow: none;
		border-radius: 0;
	}
	.vector-header-container::after { display: none; }
}