/* RETRO POP . PONTE DE TOKENS - nivel 2 de 4 (PLANO-APLICACAO.md 1.4)
   Carregada em todas as familias, depois de retro-pop.css e antes de
   retro/<familia>.css. Nenhuma pagina e tocada; nenhuma prioridade forcada.
   O site e escuro e o tema e papel creme: cada custom property que as paginas
   leem e redeclarada aqui no token --rp-* equivalente, e e assim que a pagina
   troca de polaridade sem ser editada.

   TRES REGRAS, em cada linha:
   1. Pelo PAPEL, nao pelo nome: --card-bg vale rgba(15,15,25,.8) e e superficie;
      --pokemon-red vale #2196f3 em metade das paginas e e acento.
   2. Dois niveis. `html.retro-pop body` = (0,1,2) vence qualquer `body.<classe>`
      = (0,1,1): cobre body.nexus-skin, body.og-games-portal-v2,
      body.arcade-theme-v4/-v5, body.modern-ui-theme, body.og-station,
      body.ui-theme-* e html.ogc-on de uma vez. Ilha presa a id tem regra propria
      na secao 2. Declaracao no proprio elemento vence valor herdado, e custom
      property desce RESOLVIDO: cada ilha de polaridade invertida entra na lista
      ou o token da pagina vale tinta CLARA ali - por isso .ds-settings,
      .og-guide-panel-root e as tres ilhas escuras de retro-pop.css:177.
   3. Token ambiguo (fundo E borda, como --arcade-stone-dark) recebe o valor de
      SUPERFICIE: regua fraca e deslize, texto invisivel e bug.

   FORA: geometria, pads de toque, launcher Electron, /admin e token que nenhum
   dos 1.951 arquivos le. DENTRO de proposito: --bg, --text e --muted alcancam o
   bundle do PPSSPP (:root = (0,1,0) perde desta folha) - 48 leituras
   dependem dos tres, no player os --rp-* sao escuros e hunter/player.css:117 ja
   faz o mesmo hoje; a medicao 7 (6.2) captura o PPSSPP em jogo (risco 5.1). */


/* 0. ACENTO DE CONSOLE (--c) - dos 22 `:root{--c}` de pages/console/*.html, 18
   reprovam como texto sobre creme (#FFD700 1,19:1) e snes.html le --c em 4
   color:, 4 border-color: e 1 text-shadow:. color-mix (ja em producao em
   games-portal.css) com 40% da marca + 60% de tinta mantem o matiz e leva os 22
   a >= 5,05:1. --rp-c guarda a cor crua para o logo (2.5); o style inline dos
   cards vence esta folha. Duas regras: --c e --rp-c-raw fariam ciclo de var(). */
html.retro-pop{ --rp-c-raw:var(--c,var(--rp-cyan)); --rp-c:var(--c,var(--rp-cyan)); }
html.retro-pop body,
html.retro-pop .rp-dark{ --c:color-mix(in srgb,var(--rp-c-raw) 40%,var(--rp-ink)); }


/* 1. PONTE PRINCIPAL - o mesmo valor em todos os niveis computa igual, e e isso
   que barra o sombreamento. */
html.retro-pop,
html.retro-pop body,
html.retro-pop .rp-dark,
html.retro-pop .rp-colophon,
html.retro-pop .rp-con__band,
html.retro-pop .ds-settings,
html.retro-pop .og-guide-panel-root{

 /* index.html :root inline + nexus-emulator-player.css */
 --void:var(--rp-paper); --deep:var(--rp-paper-2);
 --glass:var(--rp-paper-2); --glass-2:var(--rp-paper-3);
 --stroke:var(--rp-ink-soft); --stroke-2:var(--rp-ink);
 --cyan:var(--rp-cyan); --violet:var(--rp-purple); --magenta:var(--rp-red);
 --lime:var(--rp-lime); --amber:var(--rp-yellow);
 --txt:var(--rp-ink); --txt-2:var(--rp-ink-2); --txt-3:var(--rp-ink-3);
 --disp:var(--rp-ff-display); --ui:var(--rp-ff-body);

 /* avulsos: main, modern-theme-2026, namco, launcher-*, blog/*.css */
 --bg:var(--rp-paper); --dark:var(--rp-ink); --darker:var(--rp-paper-2);
 --panel:var(--rp-paper-2); --panel-2:var(--rp-paper-2);
 --card:var(--rp-paper-w); --white:var(--rp-ink); --stone:var(--rp-paper-3);
 --ink:var(--rp-ink); --ink-2:var(--rp-ink-2); --text:var(--rp-ink);
 --dim:var(--rp-ink-3); --muted:var(--rp-ink-3); --help:var(--rp-ink-3);
 --faint:var(--rp-ink-3);   /* #5e4d38: texto fraco, nao borda */
 --line:var(--rp-ink-soft); --edge:var(--rp-ink-soft);
 --edge-2:var(--rp-ink-soft); --edge-hot:var(--rp-ink);
 --red:var(--rp-red); --pink:var(--rp-pink); --purple:var(--rp-purple);
 --yellow:var(--rp-yellow); --yellow-2:var(--rp-yellow); --gold:var(--rp-yellow);
 --green:var(--rp-lime); --blue:var(--rp-cyan-deep);
 --orange:var(--rp-orange); --orange-2:var(--rp-orange); --ember:var(--rp-orange);
 --mono:var(--rp-ff-mono);   /* lido, nunca declarado em folha alguma */
 --hex:var(--rp-pat-ht); --reticle:var(--rp-pat-ht-fine);
 --octa:var(--rp-pat-specks); --octa-line:var(--rp-pat-ht-fine);

 /* nexus-theme.css + console-library.css (as duas body.* da regra 2) */
 --nx-void:var(--rp-paper); --nx-glass:var(--rp-paper-2);
 --nx-glass2:var(--rp-paper-3);
 --nx-stroke:var(--rp-ink-soft); --nx-stroke-soft:var(--rp-ink-soft);
 --nx-stroke2:var(--rp-ink);
 --nx-cyan:var(--rp-cyan); --nx-violet:var(--rp-purple);
 --nx-magenta:var(--rp-red); --nx-lime:var(--rp-lime); --nx-amber:var(--rp-yellow);
 --nx-txt:var(--rp-ink); --nx-txt2:var(--rp-ink-2); --nx-txt3:var(--rp-ink-3);
 --nx-disp:var(--rp-ff-display); --nx-ui:var(--rp-ff-body);

 /* game-page.css - 1.201 paginas de jogo */
 --gp-bg:var(--rp-paper); --gp-line:var(--rp-ink-soft);
 --gp-text:var(--rp-ink); --gp-muted:var(--rp-ink-3);
 --gp-cyan:var(--rp-cyan); --gp-blue:var(--rp-cyan-deep);
 --gp-magenta:var(--rp-red); --gp-green:var(--rp-lime); --gp-gold:var(--rp-yellow);

 /* :root inline das 28 paginas de jogo feitas a mao + pages/console/*.html (5.5) */
 --card-bg:var(--rp-paper-2); --card-border:var(--rp-ink-soft);
 --bg-dark:var(--rp-paper); --bg-darker:var(--rp-paper-2);
 --neon-pink:var(--rp-pink); --neon-purple:var(--rp-purple);
 --neon-orange:var(--rp-orange); --neon-yellow:var(--rp-yellow);
 --neon-green:var(--rp-lime);
 --pokemon-red:var(--rp-red); --pokemon-orange:var(--rp-orange);
 --sf-red:var(--rp-red); --sf-blue:var(--rp-cyan-deep);

 /* game-guides.css - 19 guias */
 --guide-bg:var(--rp-paper); --guide-panel:var(--rp-paper-2);
 --guide-text:var(--rp-ink); --guide-muted:var(--rp-ink-3);
 --guide-line:var(--rp-ink-soft); --guide-line-strong:var(--rp-ink);
 --guide-cyan:var(--rp-cyan); --guide-violet:var(--rp-purple);
 --guide-gold:var(--rp-yellow); --guide-green:var(--rp-lime);
 --guide-pink:var(--rp-pink); --guide-red:var(--rp-red);

 /* game-guide-panel.css */
 --og-guide-text:var(--rp-ink); --og-guide-muted:var(--rp-ink-3);
 --og-guide-cyan:var(--rp-cyan); --og-guide-violet:var(--rp-purple);

 /* games-portal + console-library - portal */
 --ogp-panel:var(--rp-paper-2); --ogp-border:var(--rp-ink-soft);
 --ogp-yellow:var(--rp-yellow); --ogp-cyan:var(--rp-cyan);
 --ogp-red:var(--rp-red); --ogp-green:var(--rp-lime);
 --library-accent:var(--rp-purple); --library-ink:var(--rp-ink);
 --library-muted:var(--rp-ink-3); --library-line:var(--rp-ink-soft);

 /* online-play-guides.css + n64wasm.html - paginas online */
 --og-bg:var(--rp-paper); --og-panel:var(--rp-paper-2);
 --og-border:var(--rp-ink-soft);
 --og-text:var(--rp-ink); --og-muted:var(--rp-ink-3);
 --og-cyan:var(--rp-cyan); --og-green:var(--rp-lime);
 --og-violet:var(--rp-purple); --og-magenta:var(--rp-red);

 /* console-station-skin + station-console + gemeos; --ogc1..4 = botoes de face */
 --og-line:var(--rp-ink-soft); --og-seam:var(--rp-ink-soft);
 --og-px:var(--rp-ff-sticker); --og-vt:var(--rp-ff-mono);
 --ogc-room:var(--rp-paper-3); --room:var(--rp-paper-3);
 --ogc-plastic:var(--rp-paper-2); --plastic:var(--rp-paper-2);
 --ogc-plastic-2:var(--rp-paper-w); --plastic-2:var(--rp-paper-w);
 --ogc-plastic-3:var(--rp-paper-3);
 --ogc-seam:var(--rp-ink-soft); --seam:var(--rp-ink-soft);
 --ogc-line:var(--rp-ink-soft);
 --ogc-txt:var(--rp-ink); --ogc-txt-dim:var(--rp-ink-3); --txt-dim:var(--rp-ink-3);
 --ogc-px:var(--rp-ff-sticker); --ogc-vt:var(--rp-ff-mono);
 --ogc1:var(--rp-cyan-deep); --ogc2:var(--rp-lime);
 --ogc3:var(--rp-red); --ogc4:var(--rp-yellow); --ogac:var(--rp-cyan);

 /* retro-pixel-refresh.css - boot */
 --og-gate-ink:var(--rp-ink); --og-gate-gold:var(--rp-yellow);
 --og-gate-red:var(--rp-red); --og-gate-cyan:var(--rp-cyan);
 --og-gate-green:var(--rp-lime);

 /* arcade-theme-v4.css (body.arcade-theme-v4) */
 --arcade-stone:var(--rp-paper-3);
 --arcade-stone-dark:var(--rp-ink-soft);  /* uso: border 3px/8px */
 --arcade-ink:var(--rp-ink); --arcade-muted:var(--rp-ink-3);
 --arcade-cyan:var(--rp-cyan); --arcade-gold:var(--rp-yellow);
 --arcade-magenta:var(--rp-red); --arcade-green:var(--rp-lime);
 --arcade-purple:var(--rp-purple);
 --arcade-pixel-font:var(--rp-ff-sticker);
 --arcade-display-font:var(--rp-ff-display);
 --og-pixel-border:var(--rp-ink); --og-pixel-shadow:var(--rp-sh-2);

 /* arcade-theme-v5.css; --stone-d/--stone-l leem --og-v5-stone-* e seguem */
 --og-v5-bg:var(--rp-paper);
 --og-v5-stone:var(--rp-paper-3); --og-v5-stone-light:var(--rp-paper-3);
 --og-v5-stone-dark:var(--rp-ink-soft);   /* uso: border */
 --og-v5-ink:var(--rp-ink); --og-v5-muted:var(--rp-ink-3);
 --og-v5-cyan:var(--rp-cyan); --og-v5-gold:var(--rp-yellow);
 --og-v5-magenta:var(--rp-red); --og-v5-purple:var(--rp-purple);
 --og-v5-green:var(--rp-lime);

 /* live-now-toast.css */
 --lnt-shell:var(--rp-paper); --lnt-shell-2:var(--rp-paper-2);
 --lnt-text:var(--rp-ink); --lnt-muted:var(--rp-ink-3);
 --lnt-line:var(--rp-ink); --lnt-line-soft:var(--rp-ink-soft);
 --lnt-red:var(--rp-red); --lnt-pink:var(--rp-pink); --lnt-cyan:var(--rp-cyan);
 --lnt-green:var(--rp-lime); --lnt-lime:var(--rp-lime);
 --lnt-orange:var(--rp-orange);
 --og-live-ink:var(--rp-ink); --og-live-dim:var(--rp-ink-3);

 /* multiplayer-lobby.css + multiplayer-game.css */
 --mpl-panel:var(--rp-paper-2);
 --mpl-text:var(--rp-ink); --mpl-muted:var(--rp-ink-3);
 --mpl-line:var(--rp-ink-soft); --mpl-line-strong:var(--rp-ink);
 --mpl-cyan:var(--rp-cyan); --mpl-lime:var(--rp-lime);
 --mpl-amber:var(--rp-yellow); --mpl-danger:var(--rp-red);
 --mpl-shadow:var(--rp-sh-soft);
 --mp-bg:var(--rp-paper); --mp-panel:var(--rp-paper-2);
 --mp-panel-2:var(--rp-paper-3);
 --mp-text:var(--rp-ink); --mp-muted:var(--rp-ink-3);
 --mp-line:var(--rp-ink-soft); --mp-line-strong:var(--rp-ink);
 --mp-cyan:var(--rp-cyan); --mp-blue:var(--rp-cyan-deep);
 --mp-lime:var(--rp-lime); --mp-amber:var(--rp-yellow);
 --mp-danger:var(--rp-red); --mp-shadow:var(--rp-sh-soft);

 /* tournaments.css */
 --ogt-bg:var(--rp-paper); --ogt-panel:var(--rp-paper-2);
 --ogt-text:var(--rp-ink); --ogt-muted:var(--rp-ink-3);
 --ogt-line:var(--rp-ink-soft); --ogt-line-strong:var(--rp-ink);
 --ogt-cyan:var(--rp-cyan); --ogt-lime:var(--rp-lime);
 --ogt-amber:var(--rp-yellow); --ogt-magenta:var(--rp-red);
 --ogt-display:var(--rp-ff-display); --ogt-font:var(--rp-ff-body);

 /* emulator-command-center + emulator-player-refresh - cromo do player (2.3) */
 --ecc-bg:var(--rp-paper); --ecc-panel-2:var(--rp-paper-3);
 --ecc-text:var(--rp-ink); --ecc-muted:var(--rp-ink-3);
 --ecc-line:var(--rp-ink-soft); --ecc-line-hot:var(--rp-ink);
 --ecc-cyan:var(--rp-cyan); --ecc-blue:var(--rp-cyan-deep);
 --ecc-lime:var(--rp-lime);
 --emu-bg:var(--rp-paper); --emu-panel:var(--rp-paper-2);
 --emu-text:var(--rp-ink); --emu-muted:var(--rp-ink-3);
 --emu-line:var(--rp-ink-soft);
 --emu-cyan:var(--rp-cyan); --emu-red:var(--rp-red);
 --emu-gold:var(--rp-yellow); --emu-amber:var(--rp-yellow);
 --emu-gold-deep:var(--rp-orange); --emu-green:var(--rp-lime);
 --emu2-bg:var(--rp-paper); --emu2-panel-strong:var(--rp-paper-3);
 --emu2-ink:var(--rp-ink); --emu2-line:var(--rp-ink-soft);
 --emu2-red:var(--rp-red); --emu2-teal:var(--rp-teal);
 --emu2-yellow:var(--rp-yellow); --emu2-shadow:var(--rp-sh-soft);

 /* ps2-player.css + psp-nexus-shell.css - conchas de player */
 --ps2-panel:var(--rp-paper-2);
 --ps2-text:var(--rp-ink); --ps2-muted:var(--rp-ink-3);
 --ps2-line:var(--rp-ink-soft); --ps2-line-hot:var(--rp-ink);
 --ps2-cyan:var(--rp-cyan); --ps2-green:var(--rp-lime);
 --ps2-pink:var(--rp-pink); --ps2-gold:var(--rp-yellow); --ps2-red:var(--rp-red);
 --ps2-display:var(--rp-ff-display); --ps2-ui:var(--rp-ff-body);
 --psp-text:var(--rp-ink); --psp-muted:var(--rp-ink-3);
 --psp-border:var(--rp-ink-soft); --psp-border-hot:var(--rp-ink);
 --psp-cyan:var(--rp-cyan); --psp-green:var(--rp-lime); --psp-pink:var(--rp-pink);
 --psp-display:var(--rp-ff-display); --psp-ui:var(--rp-ff-body);

 /* nds-wireless.css (.ds-settings) */
 --ds-ink:var(--rp-ink); --ds-dim:var(--rp-ink-3); --ds-edge:var(--rp-ink-soft);
 --ds-yellow:var(--rp-yellow); --ds-orange:var(--rp-orange);

 /* modern-theme-2026.css (body.modern-ui-theme) */
 --modern-text:var(--rp-ink); --modern-muted:var(--rp-ink-3);

 /* --og-accent* NAO entra aqui: ver a secao 1b, logo abaixo deste bloco. */

 /* optimized.css */
 --cosmic-purple:var(--rp-purple); --cosmic-pink:var(--rp-pink);
 --cosmic-orange:var(--rp-orange);

 /* launcher-auth.css + launcher-live.css - 5 paginas do launcher */
 --font-hud:var(--rp-ff-display); --font-text:var(--rp-ff-body);
 --font-mono:var(--rp-ff-mono);
 --ease-out:var(--rp-e-out); --ease-io:var(--rp-e-io);
}

/* 1b. TEMA DE INTERFACE DA LOJA (store-cosmetics.css). "classic" e o padrao gratuito de todo
   visitante (store-modal.js:1586) e recebe as tintas do Retro Pop. Os 6 temas COMPRADOS
   (arcade, cyber, galaxy, ocean, sakura, sunset) ficam intocados de proposito: body.ui-theme-<id>
   declara no proprio body e vence o valor herdado de html. Cosmetico pago nunca e sobrescrito. */
html.retro-pop,
html.retro-pop body.ui-theme-classic{
 --og-accent:var(--rp-red); --og-accent-2:var(--rp-cyan); --og-accent-rgb:255,46,77;
}


/* 2. ILHAS - `html.retro-pop body` = (0,1,2) nao vence seletor com id; as quatro
   regras abaixo existem so por especificidade. */

html.retro-pop body #storeModal{            /* `body #storeModal` = (1,0,1) */
 --store-cyan:var(--rp-cyan); --store-pink:var(--rp-pink);
 --store-gold:var(--rp-yellow);
}
html.retro-pop body #liveNowToast{  /* `body.arcade-theme-v5 #liveNowToast` (1,1,1) */
 --lnt-arcade-bg:var(--rp-paper); --lnt-arcade-panel:var(--rp-paper-2);
 --lnt-arcade-cyan:var(--rp-cyan); --lnt-arcade-pink:var(--rp-pink);
 --lnt-arcade-purple:var(--rp-purple);
}
/* `body.arcade-theme-v4 .loading-screen.arcade-boot-screen` = (0,3,1) */
html.retro-pop body .loading-screen.arcade-boot-screen{
 --gate-cyan:var(--rp-cyan); --gate-gold:var(--rp-yellow);
 --gate-red:var(--rp-red);
}
/* `body[data-mp-system="nds"|"psp"] .mp-game-container` = (0,2,2): empate de
   especificidade resolvido pela ordem, e esta folha entra antes de </head>. */
html.retro-pop body .mp-game-container{
 --mp-cyan:var(--rp-cyan); --mp-blue:var(--rp-cyan-deep);
}


/* 3. FORMA - SO NA RAIZ. Papel recortado tem canto duro. Estes raios vivem em
   :root = (0,1,0) e `html.retro-pop` = (0,1,1) os vence; nao se repete em body
   para nao atropelar declaracao local (`.auth-form-panel{--cut:16px}`). */
html.retro-pop{
 --guide-radius:var(--rp-r-2); --ogt-radius:var(--rp-r-1);
 --mp-radius:var(--rp-r-1); --mpl-radius:var(--rp-r-1);
 --ps2-radius:var(--rp-r-2); --psp-radius:var(--rp-r-2);
}
