@font-face{font-family:'Geist';src:url(data:font/woff2;base64,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) format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Geist Mono';src:url(data:font/woff2;base64,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) format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}

/* Projetando Realidades — sistema visual
 *
 * Estende o sistema do A11Y.md (Geist + Geist Mono, coral sobre grafite,
 * elevação por borda e tinta em vez de sombra, piso tipográfico de 14px).
 * O que é novo aqui: um tema claro — este é um site de leitura longa, e o
 * próprio objeto de estudo é respeitar a cognição de quem lê.
 *
 * Regras herdadas que NÃO devem ser quebradas:
 *   · nenhuma sombra: profundidade vem de camada de superfície
 *   · nenhum gradiente decorativo
 *   · hierarquia por tamanho, peso e espaço — nunca por cor ou caixa-alta
 *   · cor nunca é o único portador de significado (o autor tem daltonismo)
 *   · piso de 14px; o degrau de 12px não existe na escala
 */

/* ---------------------------------------------------------------- *
 * Tokens
 * ---------------------------------------------------------------- */

:root {
  /* grafite com viés quente na direção do coral — cinza escolhido, não herdado */
  --bg: 0 0% 7%;
  --bg-raised: 12 4% 11%;
  --ink: 0 0% 95%;
  --ink-muted: 14 6% 66%;
  --ink-faint: 14 6% 53%;
  --accent: 14 60% 72%;
  /* traço dos grafismos de baixo alfa — no escuro é o próprio acento */
  --traco: 14 60% 72%;
  --accent-ink: 0 0% 7%;
  --line: 14 4% 21%;
  --line-strong: 14 5% 44%;
  --plate: 0 0% 96%; /* fundo das pranchas anatômicas, sempre claro */

  --shell: 68rem;
  --prosa: 40rem;
  --radius: 0.5rem;

  color-scheme: dark;
}

@media (prefers-color-scheme: light) {
  :root {
    --bg: 20 16% 98%;
    --bg-raised: 0 0% 100%;
    --ink: 14 12% 11%;
    --ink-muted: 14 8% 38%;
    --ink-faint: 14 8% 42%;
    --accent: 14 62% 39%;
    --traco: 176 27% 46%;
    --accent-ink: 20 16% 98%;
    --line: 16 12% 88%;
    --line-strong: 14 8% 55%;
    --plate: 0 0% 100%;

    color-scheme: light;
  }
}

/* o botão de tema tem de vencer a media query nas duas direções */
:root[data-theme='light'] {
  --bg: 20 16% 98%;
  --bg-raised: 0 0% 100%;
  --ink: 14 12% 11%;
  --ink-muted: 14 8% 38%;
  --ink-faint: 14 8% 42%;
  --accent: 14 62% 39%;
  /* No claro o traço se separa do acento — em matiz, não só em intensidade.
     O acento é um vermelho, e vermelho a 62% de saturação aplicado a 15% sobre
     branco devolve 36% de saturação: rosa empoeirado. Este verde-azulado devolve
     17%, o mesmo do tema escuro, e some do eixo vermelho-verde, que é onde a
     visão de cores do autor tem menos resolução — a escolha é dele e é sobre o
     que ele consegue distinguir, não sobre o que combina no papel.
     Contraste 3,29:1 contra o papel: passa o piso de 3:1 de grafismo com
     significado, mas não o de texto. Nada aqui é texto. */
  --traco: 176 27% 46%;
  --accent-ink: 20 16% 98%;
  --line: 16 12% 88%;
  --line-strong: 14 8% 55%;
  --plate: 0 0% 100%;

  color-scheme: light;
}

:root[data-theme='dark'] {
  --bg: 0 0% 7%;
  --bg-raised: 12 4% 11%;
  --ink: 0 0% 95%;
  --ink-muted: 14 6% 66%;
  --ink-faint: 14 6% 53%;
  --accent: 14 60% 72%;
  /* traço dos grafismos de baixo alfa — no escuro é o próprio acento */
  --traco: 14 60% 72%;
  --accent-ink: 0 0% 7%;
  --line: 14 4% 21%;
  --line-strong: 14 5% 44%;
  --plate: 0 0% 96%;

  color-scheme: dark;
}

/* ---------------------------------------------------------------- *
 * Base
 * ---------------------------------------------------------------- */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: hsl(var(--bg));
  color: hsl(var(--ink));
  font-family: Geist, ui-sans-serif, system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection {
  background: hsl(var(--accent));
  color: hsl(var(--accent-ink));
}

:focus-visible {
  outline: 2px solid hsl(var(--accent));
  outline-offset: 2px;
  border-radius: 2px;
}

/* SC 2.4.11: o cabeçalho é sticky e tem 3,75rem. Sem esta margem, rolar até uma
   âncora — ou receber o foco depois de trocar de rota — deixa o alvo debaixo dele. */
:target,
[id],
#conteudo h1 {
  scroll-margin-top: 5rem;
}

/* o cabeçalho da rota recebe foco na navegação, mas não deve parecer clicável */
#conteudo h1:focus,
#conteudo:focus {
  outline: none;
}
/* Mesma razão, para o destino de um salto de âncora: ele recebe foco para que
   quem usa leitor de tela continue de onde a âncora prometeu, mas é um bloco de
   conteúdo — às vezes a seção inteira da página. O contorno global desenharia
   um retângulo em volta de metade do documento, que não indica nada e parece
   defeito. O alvo interativo (um verbete que abre, um link) mantém o seu. */
section.salto-alvo:focus-visible,
div.salto-alvo:focus-visible,
li.salto-alvo:focus-visible,
p.salto-alvo:focus-visible,
section[tabindex="-1"]:focus-visible,
div[tabindex="-1"]:focus-visible {
  outline: none;
}
#conteudo h1:focus-visible {
  outline: 2px solid hsl(var(--accent));
  outline-offset: 4px;
}

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

/* `hidden` precisa vencer qualquer `display` vindo de classe utilitária —
   sem isto, um elemento com .preco { display: grid } ignora o atributo */
[hidden] {
  display: none !important;
}

hr {
  border: 0;
  border-top: 1px solid hsl(var(--line));
  margin: 0;
}

a {
  color: inherit;
}

button {
  font: inherit;
  color: inherit;
}

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

/* ---------------------------------------------------------------- *
 * Tipografia
 * ---------------------------------------------------------------- */

.mono {
  font-family: 'Geist Mono', ui-monospace, SFMono-Regular, monospace;
}

/* rótulo de seção: mono, versalete espaçado. herdado do A11Y.md */
.eyebrow {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: hsl(var(--accent));
  margin: 0;
}

/* O título da caixa fóssil do manifesto é um `h2` com cara de eyebrow: entra
   na hierarquia (h1 → h2 → h3) sem ganhar o peso de título. */
h2.eyebrow { font-weight: 400; }

.eyebrow--quiet {
  color: hsl(var(--ink-faint));
}

h1,
h2,
h3,
h4 {
  text-wrap: balance;
  letter-spacing: -0.025em;
  font-weight: 600;
  margin: 0;
  line-height: 1.15;
}

h1 {
  font-size: clamp(2rem, 1.4rem + 3vw, 3.25rem);
}
h2 {
  font-size: clamp(1.5rem, 1.2rem + 1.5vw, 2.25rem);
}
h3 {
  font-size: 1.25rem;
  line-height: 1.3;
}
h4 {
  font-size: 1rem;
}

p {
  margin: 0;
  text-wrap: pretty;
}

.prosa {
  max-width: var(--prosa);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  font-size: 1.0625rem;
  line-height: 1.7;
  color: hsl(var(--ink-muted));
}

.prosa--ink {
  color: hsl(var(--ink));
}

.lead {
  font-size: clamp(1.125rem, 1rem + 0.6vw, 1.375rem);
  line-height: 1.55;
  color: hsl(var(--ink-muted));
  max-width: 44rem;
  text-wrap: pretty;
}

.num {
  font-variant-numeric: tabular-nums;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* ---------------------------------------------------------------- *
 * Esqueleto
 * ---------------------------------------------------------------- */

.pular {
  position: absolute;
  top: -10rem;
  left: 1rem;
  z-index: 100;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 1rem;
  border-radius: var(--radius);
  background: hsl(var(--accent));
  color: hsl(var(--accent-ink));
  font-weight: 500;
  text-decoration: none;
  transition: top 0.15s ease;
}
.pular:focus {
  top: 1rem;
}

/* ---------------------------------------------------------------- *
 * Sobre — o retrato ao lado da abertura
 *
 * Fica à direita do título e da frase de abertura, e some abaixo de 60rem: numa
 * coluna só ele empurraria o texto para baixo da dobra, e a página existe para
 * ser lida, não para exibir o objeto.
 * ---------------------------------------------------------------- */

.sobre__topo {
  display: grid;
  gap: 2rem;
  align-items: center;
}
/* Grande de propósito. A 20rem a malha de 21 mil arestas virava textura
   uniforme — o objeto tem a dizer que existe estrutura por baixo da pele, e
   estrutura precisa de espaço para ser lida como estrutura. */
.sobre__retrato {
  inline-size: min(100%, 22rem);
  justify-self: center;
  aspect-ratio: 1;
}
.sobre__retrato canvas {
  display: block;
  inline-size: 100%;
  block-size: 100%;
  touch-action: none;
  cursor: grab;
}
.sobre__retrato canvas:active { cursor: grabbing; }
@media (min-width: 60rem) {
  .sobre__topo {
    grid-template-columns: minmax(0, 1fr) minmax(0, 32rem);
    gap: 2rem 3rem;
  }
  .sobre__retrato { inline-size: 100%; }
}

/* ---------------------------------------------------------------- *
 * O corpo — a epígrafe e o fecho
 *
 * A bailarina reusa `.sobre__topo` e `.sobre__retrato` da página do autor, sem
 * classe própria. A primeira versão tinha uma: um grid em `.corpo__cabeca`, na
 * mesma tag que `.artigo__cabeca`, que é `display: flex` e vence por vir depois
 * no arquivo. O grid nunca valeu e a página saiu empilhada. Duas classes
 * disputando o display do mesmo elemento é sempre isso.
 * ---------------------------------------------------------------- */

/* A lista de leis no pé de cada capítulo de "O corpo". Duas colunas quando cabe,
   porque são até doze itens curtos e uma coluna só vira uma tira comprida. */
/* A matriz. Coluna de lei fixa na rolagem horizontal, senão quem rola para ver
   a sexta dimensão perde de vista de qual lei está falando — que é o mesmo
   problema que a tabela de ética resolveu com marca lateral. */
.tabela--matriz th[scope='row'] {
  position: sticky;
  inset-inline-start: 0;
  background: hsl(var(--bg));
  text-align: start;
  white-space: nowrap;
}
.tabela--matriz td {
  text-align: center;
  font-size: 1.25rem;
  line-height: 1;
  color: hsl(var(--ink) / 0.15);
}
.tabela--matriz .matriz__sim { color: hsl(var(--accent)); }
.tabela--matriz thead a { color: inherit; }

/* A lente do mapa, ao lado do alternador de modo. */
/* A lente é uma pílula como o alternador ao lado: mesma altura (3px + 38px +
   3px), mesma borda, rótulo dentro e o <select> como segmento. */
.lente {
  position: relative;
  display: inline-flex; align-items: center; gap: 0.75rem;
  padding: 3px 3px 3px 1rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  background: hsl(var(--bg) / 0.78);
  backdrop-filter: blur(8px);
}
.lente__rotulo {
  font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: hsl(var(--ink-faint)); white-space: nowrap;
}
.lente__campo {
  font: inherit; font-size: 0.875rem;
  min-height: 38px; padding: 0 2.25rem 0 0.875rem;
  color: hsl(var(--ink));
  background: hsl(var(--bg-raised));
  border: 1px solid transparent;
  border-radius: 999px;
  appearance: none; -webkit-appearance: none;
  cursor: pointer;
}
.lente__campo:focus-visible { outline: 2px solid hsl(var(--accent)); outline-offset: 3px; }
/* a seta do select, desenhada com borda para herdar a cor do tema */
.lente::after {
  content: ''; position: absolute; right: 1.1rem; top: 50%;
  width: 0.45rem; height: 0.45rem;
  border-right: 1.5px solid hsl(var(--ink-muted)); border-bottom: 1.5px solid hsl(var(--ink-muted));
  transform: translateY(-70%) rotate(45deg); pointer-events: none;
}

/* O topo do capítulo: o texto à esquerda e, à direita, o que ele NÃO controla.
   Alinhado pela base, para o container encostar na última linha da abertura em
   vez de flutuar no alto. Abaixo de 64rem empilha, e aí ele vem depois do texto
   — que é a ordem de leitura certa de qualquer jeito. */
/* A folga até os chips fica NO grid, não no parágrafo. Estava no
   `.abertura-capitulo`, dentro da coluna da esquerda — então a linha do grid
   terminava 2,5rem abaixo do texto, e o container, alinhado pela base da linha,
   descia junto e encostava nos chips. A base do container tem de ser a base da
   última linha do texto. */
/* Depois do bloco do objeto, a seção precisa de ar: sem isto a frase de
   abertura encostava no título de baixo e as duas liam como um parágrafo só. */
.sobre__topo + .capitulo__topo { margin-block-start: 3.5rem; }

.capitulo__topo {
  display: grid;
  gap: 1.5rem;
  align-items: end;
  margin-block-end: 2.5rem;
}
@media (min-width: 64rem) {
  .capitulo__topo { grid-template-columns: minmax(0, 1fr) minmax(0, 16rem); gap: 1rem 2.5rem; }
}
.fora {
  padding: 1rem 1.125rem;
  border: 1px solid hsl(var(--line));
  border-radius: 0.5rem;
  background: hsl(var(--accent) / 0.05);
}
.fora__ir { margin: 0.35rem 0 0; font-weight: 500; }
.fora__glosa { margin: 0.5rem 0 0; font-size: 0.875rem; color: hsl(var(--ink-muted)); }

/* ---------------------------------------------------------------- *
 * As orelhas — lei anterior e próxima, presas à borda da janela
 *
 * Nome de livro: são as abas que aparecem na lateral e levam à página vizinha
 * sem passar pelo índice. A da direita convida (mostra o nome da lei); a da
 * esquerda existe para quem passou do ponto, e fica recolhida até o hover.
 *
 * Somem abaixo de 80rem. Não é desistência: aí não há goteira lateral livre, e
 * uma orelha por cima do texto seria pior que orelha nenhuma — no lugar delas
 * quem navega tem o rodapé de relacionados, que já existe.
 * ---------------------------------------------------------------- */

.orelha { display: none; }

@media (min-width: 80rem) {
  .orelha {
    position: fixed;
    inset-block-start: 50%;
    z-index: 30;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    max-inline-size: 13rem;
    padding: 0.75rem 0.875rem;
    border: 1px solid hsl(var(--line));
    background: hsl(var(--bg-raised) / 0.92);
    backdrop-filter: blur(8px);
    color: hsl(var(--ink-muted));
    text-decoration: none;
    transition: transform 0.18s ease, color 0.18s ease, border-color 0.18s ease;
  }
  .orelha--frente {
    inset-inline-end: 0;
    border-inline-end: 0;
    border-start-start-radius: 0.5rem;
    border-end-start-radius: 0.5rem;
    transform: translateY(-50%);
  }
  /* A de trás nasce quase toda fora do quadro, e o que sobra à mostra é a SETA —
     por isso ela vem depois do texto na marcação, e não antes. Com a ordem
     natural, o pedaço visível era o fim do nome da lei, que não diz nada. */
  .orelha--tras {
    inset-inline-start: 0;
    border-inline-start: 0;
    border-start-end-radius: 0.5rem;
    border-end-end-radius: 0.5rem;
    transform: translateY(-50%) translateX(calc(-100% + 2.5rem));
  }
  .orelha:hover,
  .orelha:focus-visible {
    color: hsl(var(--ink));
    border-color: hsl(var(--accent));
    transform: translateY(-50%);
  }
  .orelha__texto { display: flex; flex-direction: column; gap: 0.1rem; min-inline-size: 0; }
  .orelha--tras .orelha__texto { text-align: end; }
  .orelha__rotulo {
    font-family: 'Geist Mono', ui-monospace, monospace;
    font-size: 0.6875rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: hsl(var(--accent));
  }
  .orelha__nome { font-size: 0.875rem; line-height: 1.3; }
  .orelha__seta { font-size: 1.125rem; line-height: 1; flex: none; }
}

@media (prefers-reduced-motion: reduce) {
  .orelha { transition: none; }
  .orelha--tras { transform: translateY(-50%); }
}

/* As dimensões na página da lei: o mesmo chip do resto do site, aqui como link
   para a dimensão. Lei sem dimensão não ganha pílula nenhuma — a classificação
   dela está no título da estação. Um rótulo com forma de chip e sem link promete
   um clique que não existe. */
.corpo-lei__dims { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.25rem; }

/* A abertura do capítulo: o contexto antes da anatomia. Um pouco maior que a
   prosa comum, porque é ela que decide se a pessoa desce ou não. */
.abertura-capitulo {
  font-size: 1.0625rem;
}

/* As saídas do capítulo: três colunas, nenhuma delas "próximo". */
.relacionados--saidas {
  display: grid;
  gap: 2rem;
  align-items: start;
}
@media (min-width: 52rem) {
  .relacionados--saidas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.relacionados--saidas .epigrafe {
  margin: 1.5rem 0 1.75rem;
  padding-inline-start: 1.125rem;
  border-inline-start: 2px solid hsl(var(--accent) / 0.5);
}
/* O navegador dá ao blockquote uma margem lateral de 40px por conta própria, e
   o reset daqui só cuida de box-sizing. Sem zerar, a aspa de abertura nascia
   recuada da barra lateral, como se estivesse fugindo dela. */
.epigrafe blockquote {
  margin: 0;
}
.epigrafe blockquote p {
  margin: 0;
  font-size: clamp(1.35rem, 3.2vw, 1.75rem);
  line-height: 1.3;
  font-weight: 500;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.epigrafe blockquote p::before { content: '\201C'; }
.epigrafe blockquote p::after { content: '\201D'; }
.epigrafe figcaption {
  margin-block-start: 0.5rem;
  font-size: 0.8125rem;
  color: hsl(var(--ink) / 0.6);
}
.epigrafe cite { font-style: italic; }

/* O fecho. Não é resumo nem chamada — é o remate, na voz do autor, e por isso
   fica isolado num bloco em vez de virar o último parágrafo da última seção. */
.fecho {
  margin-block-start: 3rem;
  padding: 1.5rem 1.75rem;
  border: 1px solid hsl(var(--ink) / 0.12);
  border-radius: 0.5rem;
  background: hsl(var(--accent) / 0.05);
}
.fecho p:last-child {
  margin: 0;
  font-size: 1.125rem;
  line-height: 1.6;
  text-wrap: pretty;
}

/* ---------------------------------------------------------------- *
 * Sobre — os projetos que têm porta própria
 *
 * Reaproveita `.cartao`, o card-link do resto do site. A diferença é que aqui
 * a marca do projeto ocupa o lugar do título: o `h3` não tem texto visível,
 * tem a marca — tipográfica no A11Y.md, que não possui símbolo, e o logotipo
 * no AmigUX. O nome acessível vem do `aria-label` do `role="img"`, então o
 * cabeçalho continua sendo um cabeçalho para quem navega por estrutura.
 * ---------------------------------------------------------------- */

.cartoes--marcas { margin-top: 1.5rem; }
.cartao__marca {
  display: flex;
  align-items: center;
  /* trava a linha de base entre um cartão de wordmark e um de logotipo: sem
     altura fixa, o cartão da marca em texto sobe e os dois desalinham */
  min-height: 2.25rem;
  margin: 0;
}
.cartao__marca--mono {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: -0.02em;
}
/* A piada tipográfica da marca: ACCESSIBILITY vira A11Y, e o `.md` é sufixo de
   arquivo, não parte do nome — fica um degrau abaixo, como na landing dele. */
.cartao__marca--mono span {
  color: hsl(var(--ink-faint));
  font-weight: 400;
}
.marca-amigux {
  display: block;
  inline-size: 8.75rem;
  block-size: 2.25rem;
  background: url('data:image/webp;base64,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') left center / contain no-repeat;
}
/* Duas artes, uma por tema: o logotipo tem o wordmark em grafite na versão
   clara e em branco na escura, e nenhuma das duas sobrevive no fundo errado.
   Mesma cascata do ícone do botão de tema — `data-theme` explícito vence, e a
   preferência do sistema só vale quando ele não está fixado. */
:root[data-theme='dark'] .marca-amigux {
  background-image: url('data:image/webp;base64,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');
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .marca-amigux {
    background-image: url('data:image/webp;base64,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');
  }
}


/* ---------------------------------------------------------------- *
 * Fundo vivo — a camada atrás de tudo
 * ---------------------------------------------------------------- */

.fundo {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  /* z-index 0 e não -1: com -1 ele iria parar atrás do fundo do body, que é
     opaco, e sumiria. Aqui ele pinta logo acima do fundo do body e abaixo do
     conteúdo, que sobe para a camada 1. */
  z-index: 0;
  pointer-events: none;
}
/* O conteúdo precisa dizer que está na frente. Sem isto, texto sem posição
   pinta ANTES de um elemento posicionado com z-index 0 — a regra de pintura do
   CSS põe descendentes posicionados acima do conteúdo em linha — e o fundo
   cobriria a leitura. */
main,
.rodape {
  position: relative;
  z-index: 1;
}

.topo {
  position: sticky;
  top: 0;
  z-index: 40;
  background: hsl(var(--bg) / 0.88);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid hsl(var(--line));
}

/* Três zonas, não uma fila: marca numa ponta, o estudo no meio, os controles de
   sistema na outra. No estreito continua sendo uma fila só (a barra do meio rola),
   porque não há largura para centralizar nada — e é a partir de 60rem, onde os
   grupos viram menus suspensos, que a divisão em três passa a caber. */
.topo__interno {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 1.5rem;
  height: 3.75rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

@media (min-width: 60rem) {
  .topo__interno {
    display: grid;
    /* as colunas laterais medem o mesmo, então o que está no meio fica no meio da
       barra — e não no meio do que sobrou entre marca e controles */
    grid-template-columns: 1fr auto 1fr;
    gap: 1rem;
  }
}

/* Idioma e tema, juntos e à direita. Ficam colados um no outro e separados do
   menu: são controles do documento, não seções dele. */
.topo__controles {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex: none;
}
@media (min-width: 60rem) {
  .topo__controles { justify-self: end; }
}

.marca {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-weight: 600;
  font-size: 0.9375rem;
  letter-spacing: -0.02em;
  color: hsl(var(--ink));
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-right: 0.5rem;
  white-space: nowrap;
}
.marca span {
  color: hsl(var(--accent));
}

.nav {
  display: flex;
  align-items: center;
  gap: 0.125rem;
  margin-left: auto;
  overflow-x: auto;
  scrollbar-width: none;
  /* no celular a barra rola e a scrollbar está oculta: o esmaecimento à direita
     é a única pista de que existe mais conteúdo fora da tela */
  -webkit-mask-image: linear-gradient(to right, #000 0 85%, transparent 100%);
  mask-image: linear-gradient(to right, #000 0 85%, transparent 100%);
}
@media (min-width: 60rem) {
  .nav {
    -webkit-mask-image: none;
    mask-image: none;
    /* O `overflow-x: auto` existe para a barra rolar no celular. No desktop ele
       tem de sair, senão recorta o menu suspenso — contêiner com overflow em um
       eixo passa a recortar nos dois, e o painel morria dentro da barra. */
    overflow: visible;
    /* quem empurra a nav para longe da marca agora é a grade, não a margem */
    margin-left: 0;
    justify-content: center;
  }
}
.nav::-webkit-scrollbar {
  display: none;
}

.nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 0.6rem;
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
  text-decoration: none;
  border-radius: var(--radius);
  white-space: nowrap;
  transition: color 0.15s ease;
}
.nav a:hover {
  color: hsl(var(--ink));
}
/* estado ativo por peso + régua, não só por cor */
.nav a[aria-current='page'] {
  color: hsl(var(--ink));
  font-weight: 600;
  position: relative;
}
.nav a[aria-current='page']::after {
  content: '';
  position: absolute;
  left: 0.6rem;
  right: 0.6rem;
  bottom: 0.75rem;
  height: 2px;
  background: hsl(var(--accent));
}

/* ---------------------------------------------------------------- *
 * Submenus
 *
 * Disclosure no desktop, lista plana no celular — e não por preguiça: a barra
 * usa `overflow-x: auto` para rolar no celular, e contêiner com overflow recorta
 * filho posicionado. Um menu suspenso ali seria cortado pela própria barra. No
 * estreito os itens simplesmente aparecem todos, que é o que a barra já fazia
 * antes de existirem grupos.
 * ---------------------------------------------------------------- */

.nav__grupo { position: relative; display: contents; }
.nav__cabeca {
  display: none;
  align-items: center;
  gap: 0.375rem;
  min-height: 44px;
  padding: 0 0.6rem;
  border: 0;
  background: none;
  font: inherit;
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
  border-radius: var(--radius);
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.15s ease;
}
.nav__cabeca:hover { color: hsl(var(--ink)); }
.nav__cabeca svg {
  width: 0.625rem;
  height: 0.375rem;
  flex: none;
  transform-origin: 50% 50%;
  transition: transform 0.18s ease;
}
.nav__sub {
  display: contents;
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 60rem) {
  .nav__grupo { display: block; }
  .nav__cabeca { display: inline-flex; }
  .nav__sub {
    display: none;
    position: absolute;
    inset-inline-start: 0;
    inset-block-start: calc(100% - 0.375rem);
    min-inline-size: 11rem;
    padding: 0.375rem;
    background: hsl(var(--bg-raised));
    border: 1px solid hsl(var(--line));
    border-radius: var(--radius);
    box-shadow: 0 12px 32px hsl(0 0% 0% / 0.28);
    z-index: 50;
  }
  .nav__grupo[data-aberto] .nav__sub { display: block; }
  .nav__grupo[data-aberto] .nav__cabeca { color: hsl(var(--ink)); }
  /* mesma gramática do link ativo: peso e régua, nunca só cor */
  .nav__grupo[data-atual] .nav__cabeca {
    color: hsl(var(--ink));
    font-weight: 600;
    position: relative;
  }
  .nav__grupo[data-atual] .nav__cabeca::after {
    content: '';
    position: absolute;
    left: 0.6rem;
    right: 1.6rem;
    bottom: 0.75rem;
    height: 2px;
    background: hsl(var(--accent));
  }
  .nav__grupo[data-aberto] .nav__cabeca svg { transform: rotate(180deg); }
  .nav__sub a { display: flex; inline-size: 100%; }
  /* dentro do menu a régua do item ativo atrapalha: o destaque vira o fundo */
  .nav__sub a[aria-current='page']::after { display: none; }
  .nav__sub a[aria-current='page'] { background: hsl(var(--accent) / 0.12); }
}


/* ---------------------------------------------------------------- *
 * Menu do celular
 *
 * Abaixo de 60rem a barra de seções virava uma faixa rolável espremida entre a
 * marca e os controles — medida em 390px, tinha três pixels de largura: os treze
 * links existiam e nenhum aparecia. Agora a barra é um painel que o botão de
 * menu abre por baixo do cabeçalho. Os grupos ganham nome visível (só para quem
 * vê; no leitor de tela a lista continua plana, como antes) e o "EN" da barra
 * cede o lugar ao botão, indo para o fim do painel.
 * ---------------------------------------------------------------- */
.topo__menu {
  display: none;
  flex: none;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  background: none;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  color: hsl(var(--ink-muted));
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.topo__menu:hover,
.topo__menu[aria-expanded='true'] { color: hsl(var(--ink)); border-color: hsl(var(--accent) / 0.6); }
.topo__menu svg { inline-size: 20px; block-size: 20px; }
.topo__menu-fecha { display: none; }
.topo__menu[aria-expanded='true'] .topo__menu-abre { display: none; }
.topo__menu[aria-expanded='true'] .topo__menu-fecha { display: block; }
.nav__nome { display: none; }

@media (max-width: 59.999rem) {
  .topo__menu { display: inline-flex; }
  /* sem a barra no fluxo, quem empurra os controles para a direita é esta margem */
  .topo__controles { margin-inline-start: auto; }
  .nav {
    position: absolute;
    inset-inline: 0;
    inset-block-start: 100%;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    margin: 0;
    padding: 0.5rem 1rem 1rem;
    max-block-size: calc(100svh - 3.75rem - 1px);
    overflow: auto;
    background: hsl(var(--bg-raised));
    border-block-end: 1px solid hsl(var(--line));
    box-shadow: 0 18px 36px hsl(0 0% 0% / 0.32);
    -webkit-mask-image: none;
    mask-image: none;
    z-index: 50;
  }
  .topo[data-menu-aberto] .nav { display: flex; }
  .nav__grupo { display: block; padding-block: 0.625rem; }
  .nav__grupo + .nav__grupo { border-block-start: 1px solid hsl(var(--line)); }
  .nav__nome {
    display: block;
    padding: 0.375rem 0.6rem 0.25rem;
    font-family: 'Geist Mono', ui-monospace, monospace;
    font-size: 0.6875rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: hsl(var(--ink-faint));
  }
  .nav__sub { display: block; }
  .nav__sub li { list-style: none; }
  .nav a {
    display: flex;
    min-height: 48px;
    font-size: 1rem;
    color: hsl(var(--ink));
  }
  .nav a[aria-current='page'] { background: hsl(var(--accent) / 0.12); }
  .nav a[aria-current='page']::after { display: none; }
}
/* Seis controles na barra de 390px: marca, mapa, busca, idioma, som, tema e
   menu. Com 44px cada não cabiam; a 40px, com os vãos e as margens um passo
   menores, sobram uns 20px. 40px ainda está acima do mínimo de 24px do
   critério 2.5.8. */
@media (max-width: 26rem) {
  .topo__interno { padding: 0 1rem; gap: 0.375rem; }
  .marca { padding-right: 0.25rem; }
  .topo__controles { gap: 0.125rem; }
  .topo__controles .topo__mapa, .topo__controles .topo__busca, .topo__controles .idioma,
  .topo__controles .som, .topo__controles .tema, .topo__controles .topo__menu { min-width: 40px; }
  .topo__controles .idioma { padding: 0 0.5rem; }
}

/* Conexões saiu do meio do menu e virou o primeiro dos controles do documento,
   ao lado da busca — o estilo dele mora com os outros controles, mais abaixo. O
   ponto pulsante que ficava aqui foi substituído pelo grafo que gira. */
@media (prefers-reduced-motion: reduce) {
  .nav__cabeca svg { transition: none; }
}

/* ---------------------------------------------------------------- *
 * Aviso de rota ainda não traduzida
 *
 * Fica acima do conteúdo, não no lugar dele: a pessoa que chegou pelo inglês
 * consegue ler o original com um tradutor, e quem lê português nem repara. É
 * `aside` porque é comentário sobre o conteúdo, não parte do argumento.
 * ---------------------------------------------------------------- */

.aviso-idioma {
  margin: 1.5rem 0 0;
  padding: 1rem 1.25rem;
  border: 1px dashed hsl(var(--line-strong));
  border-radius: 0.75rem;
  max-inline-size: 44rem;
}
.aviso-idioma p {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: hsl(var(--ink-muted));
}
.aviso-idioma p + p { margin-top: 0.375rem; }
.aviso-idioma b {
  color: hsl(var(--ink));
  font-weight: 600;
}

/* ---------------------------------------------------------------- *
 * Seletor de idioma
 *
 * A mesma peça da landing do A11Y.md, no mesmo desenho: caixa com borda visível
 * o tempo todo, mono, alvo de 44px, sigla de duas letras. A borda permanente é o
 * que separa um controle de um item de menu — o botão de tema, ao lado, ganha a
 * mesma moldura pelo mesmo motivo.
 *
 * É link e não botão: troca de documento, não de estado. O rótulo visível é a
 * sigla do idioma de DESTINO ("EN" na versão portuguesa) — convenção que se lê
 * sem tradução —, e a frase inteira vai no `.sr-only` dentro do próprio link,
 * onde o leitor de tela a encontra sem que um `aria-label` apague o texto.
 * ---------------------------------------------------------------- */

.idioma {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0 0.75rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  letter-spacing: 0;
  color: hsl(var(--ink-muted));
  text-decoration: none;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  white-space: nowrap;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.idioma:hover {
  color: hsl(var(--ink));
  border-color: hsl(var(--accent) / 0.6);
}

/* Conexões: mesma caixa dos outros controles, cor diferente.
 *
 * A caixa é a mesma de propósito — mesmo alvo de 44px, mesma borda, mesma altura
 * —, porque ele pertence à fileira. O que muda é a tinta: é o único destino do
 * site que não é um texto, e a ênfase é o que diz isso antes do clique. A cor
 * não trabalha sozinha: a forma é um grafo, que nenhum outro ícone da barra é.
 *
 * O giro é lento e não completa volta: gira 20° para um lado e volta, como um
 * objeto sendo examinado. Volta inteira em ícone de 18px vira pisca-pisca. */
/* Fundo cheio de acento, como o botão principal da capa: é o mesmo peso, e o
   par de controles ao lado continua vazado. Um único elemento com tinta sólida
   na barra é o que faz esse elemento ser o destino, e não mais um controle. */
.topo__mapa {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  background: hsl(var(--accent));
  border: 1px solid hsl(var(--accent));
  border-radius: var(--radius);
  color: hsl(var(--accent-ink));
  text-decoration: none;
  transition: background-color 0.15s ease;
}
.topo__mapa:hover,
.topo__mapa:focus-visible { background: hsl(var(--accent) / 0.88); }
.topo__mapa-svg { inline-size: 20px; block-size: 20px; overflow: visible; }

/* Volta inteira, lenta, e os três nós respirando fora de fase — é o objeto do
   outro lado do link em miniatura, e o giro é o mesmo gesto que o mapa oferece
   ao ponteiro. Os tamanhos são três porque no mapa o tamanho do nó é dado:
   quantas ligações ele tem. */
.topo__mapa-gira {
  transform-box: fill-box;
  transform-origin: center;
  animation: mapa-gira 14s linear infinite;
}
/* Escala, e não o atributo `r`: animar o raio exigiria o mesmo valor para os
   três, e os três tamanhos diferentes são justamente o que o desenho diz — no
   mapa, nó maior é nó com mais ligações. A escala preserva a proporção. */
.topo__mapa-no {
  transform-box: fill-box;
  transform-origin: center;
  animation: mapa-pulsa 3.4s ease-in-out infinite;
}
.topo__mapa-no--b { animation-delay: -1.1s; }
.topo__mapa-no--c { animation-delay: -2.2s; }
@keyframes mapa-gira {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes mapa-pulsa {
  0%, 100% { transform: scale(0.72); }
  50%      { transform: scale(1.12); }
}
/* Quem pediu menos movimento fica com o mesmo desenho, parado: a informação está
   na forma e na cor, e nenhuma das duas depende do giro. */
@media (prefers-reduced-motion: reduce) {
  .topo__mapa-gira,
  .topo__mapa-no { animation: none; }
}

/* O mesmo grafo do botão da barra, reaproveitado dentro das páginas. Herda a
   cor de quem o contém; a animação é a mesma, declarada uma vez só. */
.icone-grafo { inline-size: 18px; block-size: 18px; flex: none; overflow: visible; }
.icone-grafo__gira {
  transform-box: fill-box;
  transform-origin: center;
  animation: mapa-gira 14s linear infinite;
}
.icone-grafo__no {
  transform-box: fill-box;
  transform-origin: center;
  animation: mapa-pulsa 3.4s ease-in-out infinite;
}
.icone-grafo__no--b { animation-delay: -1.1s; }
.icone-grafo__no--c { animation-delay: -2.2s; }
@media (prefers-reduced-motion: reduce) {
  .icone-grafo__gira,
  .icone-grafo__no { animation: none; }
}

/* A busca na barra: a terceira peça do mesmo par. Mesma caixa, mesma borda,
   mesmo alvo — os três são controles do documento, e leem como um conjunto. */
.topo__busca {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  background: none;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  color: hsl(var(--ink-muted));
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.topo__busca:hover {
  color: hsl(var(--ink));
  border-color: hsl(var(--accent) / 0.6);
}
.topo__busca svg { inline-size: 18px; block-size: 18px; }

/* Guardado: fora da tela, mas no DOM e pronto para atracar. `hidden` sozinho
   não bastaria — o campo precisa continuar medindo para o FLIP funcionar. */
.pill-zona[hidden] { display: none; }

/* Par do seletor de idioma: mesma caixa, mesma borda, mesmo alvo. Os dois
   controles do documento leem como um par porque são desenhados como um par. */
.tema,
.som {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  background: none;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  color: hsl(var(--ink-muted));
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.tema:hover,
.som:hover {
  color: hsl(var(--ink));
  border-color: hsl(var(--accent) / 0.6);
}
.tema svg,
.som svg {
  width: 18px;
  height: 18px;
}

/* O ícone segue o estado declarado no `aria-pressed`, e não uma classe própria:
 * assim é impossível o desenho dizer uma coisa e o leitor de tela outra — o
 * estado tem uma fonte só. Ligado ganha o acento, porque é o estado que a pessoa
 * escolheu e precisa conseguir reconhecer de relance. */
.som[aria-pressed='true'] { color: hsl(var(--accent)); }
.som[aria-pressed='true'] .som__off,
.som[aria-pressed='false'] .som__on { display: none; }

/* Movimento reduzido é pedido de menos estímulo, não só de menos animação: o
 * som fica indisponível e o botão sai da barra em vez de ficar lá inerte. */
@media (prefers-reduced-motion: reduce) {
  .som { display: none; }
}
:root[data-theme='light'] .tema__lua,
:root:not([data-theme='dark']) .tema__lua {
  display: none;
}
:root[data-theme='dark'] .tema__lua {
  display: block;
}
:root[data-theme='dark'] .tema__sol {
  display: none;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .tema__lua {
    display: block;
  }
  :root:not([data-theme='light']) .tema__sol {
    display: none;
  }
}

.shell {
  max-width: var(--shell);
  margin: 0 auto;
  padding: 0 1.5rem;
}

.secao {
  padding-block: clamp(3.5rem, 8vw, 6rem);
  border-top: 1px solid hsl(var(--line));
}

.secao--primeira {
  border-top: 0;
}

.secao__cabeca {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  margin-bottom: 2.75rem;
  max-width: 44rem;
}

.rodape {
  border-top: 1px solid hsl(var(--line));
  padding-block: 3rem;
  color: hsl(var(--ink-faint));
  font-size: 0.875rem;
}
.rodape__grade {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
}
@media (min-width: 48rem) {
  .rodape__grade {
    grid-template-columns: 1.6fr 1fr 1fr 1fr;
  }
}
.rodape a {
  color: hsl(var(--ink-muted));
  text-decoration-color: hsl(var(--line-strong));
  text-underline-offset: 3px;
}
.rodape a:hover {
  color: hsl(var(--ink));
}
.rodape ul {
  list-style: none;
  margin: 0.75rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* ---------------------------------------------------------------- *
 * A seção de inspiração, com o baralho ao fundo
 *
 * A imagem é decorativa e mora num pseudo-elemento: leitor de tela não a
 * encontra, e não deve — o que ela diz já está escrito no parágrafo ao lado,
 * com link. O crédito, esse é conteúdo, e fica no texto.
 *
 * Três decisões protegem a leitura, e nenhuma depende de sorte:
 *
 * · a dessaturação está no ARQUIVO, não em filter. Sai mais leve (64 KB em vez
 *   de 243) e não custa repintura numa camada do tamanho da seção;
 * · a máscara apaga a imagem justamente onde o texto corre — na diagonal no
 *   desktop, de cima para baixo no celular, onde a coluna ocupa a largura toda;
 * · a opacidade muda por tema. No escuro, cinza claro sobre fundo escuro CLAREIA
 *   o fundo e come o contraste do texto claro; por isso lá ela é menor.
 * ---------------------------------------------------------------- */

.inspiracao {
  position: relative;
  isolation: isolate;
  padding: 2rem 1.75rem;
  margin-inline: -1.75rem;
  border-radius: 0.75rem;
  overflow: hidden;
}
.inspiracao::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image: url('data:image/webp;base64,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');
  background-size: cover;
  background-position: 60% 40%;
  /* 0.09, e não 0.13. A conta é do pior caso: prosa (--ink-muted) sobre o pixel
     mais escuro da imagem, no tema claro. Com 0.13 dá 4,53:1 — passa em AA por
     três centésimos, o que é passar por sorte. Com 0.09 dá 4,98:1, e a textura
     continua visível porque o que a carrega é o recorte das cartas, não o peso
     da tinta. */
  opacity: 0.09;
  /* A imagem vive à direita e some antes de encostar na coluna de leitura. */
  -webkit-mask-image: linear-gradient(108deg, transparent 0%, transparent 40%, #000 100%);
  mask-image: linear-gradient(108deg, transparent 0%, transparent 40%, #000 100%);
}
.inspiracao > * { position: relative; }

.inspiracao__credito {
  margin: 1.25rem 0 0;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  letter-spacing: 0.02em;
  color: hsl(var(--ink-faint));
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .inspiracao::before { opacity: 0.085; }
}
:root[data-theme='dark'] .inspiracao::before { opacity: 0.085; }
:root[data-theme='light'] .inspiracao::before { opacity: 0.09; }

/* Coluna estreita: o texto ocupa a largura toda, entao a mascara passa a ser
   vertical e a imagem fica so na faixa de cima, atras do titulo. */
@media (max-width: 48rem) {
  .inspiracao { padding: 1.5rem 1.25rem; margin-inline: -1.25rem; }
  .inspiracao::before {
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, transparent 62%);
    mask-image: linear-gradient(to bottom, #000 0%, transparent 62%);
  }
}

/* Sem suporte a mascara, a imagem inteira apareceria atras do texto na mesma
   opacidade — cai para um valor que nao atrapalha em lugar nenhum. */
@supports not (mask-image: linear-gradient(#000, transparent)) {
  .inspiracao::before { opacity: 0.07; }
}

/* Quem pede mais contraste nao quer textura atras de texto. */
@media (prefers-contrast: more) {
  .inspiracao::before { display: none; }
}

/* ---------------------------------------------------------------- *
 * A ponte entre verbetes de partes diferentes do site
 *
 * Nem cartão nem "veja também" solto no fim: uma nota lateral com filete, que
 * lê como observação do autor e não como mais um destino na lista. O texto
 * explica a diferença entre os dois, porque um link que só diz o nome do vizinho
 * faz o leitor achar que é repetição.
 * ---------------------------------------------------------------- */

.ponte {
  margin: 3rem 0 0;
  padding: 1.25rem 0 1.25rem 1.5rem;
  border-inline-start: 2px solid hsl(var(--accent) / 0.5);
  max-inline-size: 40rem;
}
.ponte__texto {
  margin: 0;
  color: hsl(var(--ink-muted));
  text-wrap: pretty;
}
.ponte__ir { margin: 0.625rem 0 0; }
.ponte__ir a {
  color: hsl(var(--accent));
  text-decoration: none;
  font-weight: 500;
}
.ponte__ir a:hover { text-decoration: underline; }

/* ---------------------------------------------------------------- *
 * Baixar o original
 *
 * Caixa com borda, e não link no meio do texto: é o único ponto do site em que
 * clicar sai do site e traz um arquivo, e essa diferença precisa ser visível
 * antes do clique — não depois. O formato e o peso vão no rótulo pelo mesmo
 * motivo: quem está no celular decide antes de puxar 2,7 MB.
 * ---------------------------------------------------------------- */

.baixar {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0 0.875rem;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
  text-decoration: none;
  transition: color 0.15s ease, border-color 0.15s ease;
}
.baixar:hover {
  color: hsl(var(--ink));
  border-color: hsl(var(--accent) / 0.6);
}
.baixar svg {
  inline-size: 1rem;
  block-size: 1rem;
  flex: none;
}
/* o peso do arquivo é informação de serviço: um degrau abaixo, em mono, e
   separado por uma barra — não compete com o rótulo da ação */
.baixar__meta {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  color: hsl(var(--ink-faint));
}
.baixar__meta::before {
  content: '·';
  margin-inline-end: 0.5rem;
}

/* A moldura do download na página Sobre: mesma elevação por borda do resto do
   sistema, sem sombra. Empilha no estreito e fica lado a lado quando cabe. */
.original {
  margin-top: 1.5rem;
  padding: 1.25rem 1.375rem;
  border: 1px solid hsl(var(--line));
  border-radius: 0.75rem;
  background: hsl(var(--bg-raised));
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
@media (min-width: 44rem) {
  .original {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
  }
  .original .baixar { flex: none; }
}
.original__titulo {
  font-weight: 600;
  color: hsl(var(--ink));
}
.original__texto {
  margin-top: 0.375rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: hsl(var(--ink-muted));
  max-inline-size: 38rem;
}

/* ---------------------------------------------------------------- *
 * Herói
 * ---------------------------------------------------------------- */

.heroi {
  position: relative;
  padding-block: clamp(3.5rem, 9vw, 7rem) clamp(3rem, 6vw, 4.5rem);
  overflow: hidden;
}

/* grade + halo herdados do A11Y.md, na medida original de 4rem */
.heroi__grade {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(to right, hsl(var(--line)) 1px, transparent 1px),
    linear-gradient(to bottom, hsl(var(--line)) 1px, transparent 1px);
  background-size: 4rem 4rem;
  -webkit-mask-image: radial-gradient(ellipse 65% 55% at 50% 0%, #000 60%, transparent 105%);
  mask-image: radial-gradient(ellipse 65% 55% at 50% 0%, #000 60%, transparent 105%);
  opacity: 0.9;
}

.heroi__interno {
  position: relative;
  display: grid;
  gap: 2rem;
  align-items: center;
  grid-template-columns: 1fr;
}
/* o objeto só ganha coluna própria quando há largura de sobra; abaixo disso
   ele vai para cima do texto, menor, em vez de espremer a leitura */
@media (min-width: 64rem) {
  .heroi__interno {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 3rem;
  }
}

/* A hipótese do trabalho, na voz do autor — logo depois do herói. Sem caixa,
   sem borda: é uma frase dita, não uma seção. A aspa gigante e a assinatura
   fazem o papel que a moldura faria. */
.hipotese {
  padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(3rem, 7vw, 5rem);
}
.hipotese__bloco {
  margin: 0 auto;
  max-width: 48rem;
  text-align: center;
}
.hipotese__bloco::before {
  content: '\201C';
  display: block;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: clamp(3.5rem, 8vw, 5.5rem);
  line-height: 0.7;
  color: hsl(var(--traco) / 0.55);
  margin-bottom: 0.75rem;
}
/* Um degrau acima do que era: esta é a tese que o site inteiro sustenta, e ela
   estava composta no corpo de um aparte. Agora vem logo depois da capa e no
   tamanho que a posição pede. */
.hipotese__frase {
  font-size: clamp(1.4375rem, 1.1rem + 1.2vw, 2rem);
  line-height: 1.35;
  letter-spacing: -0.025em;
  color: hsl(var(--ink));
  text-wrap: pretty;
}
.hipotese__assinatura {
  margin-top: 1.5rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}
/* O pós-escrito: menor que a assinatura, na mesma coluna centralizada do resto
   da seção. Lê como quem baixa a voz — que é exatamente a função dele.

   A cor é `--ink-muted` e não `--ink-faint`, e não tem opacidade por cima: em
   0,8125rem o texto é pequeno, e `--ink-faint` a 85% cai abaixo de 4,5:1 no tema
   claro. Baixar a voz é diminuir o corpo e mudar o estilo, não apagar o texto. */

.tese {
  display: grid;
  gap: 1.75rem;
  grid-template-columns: 1fr;
}
@media (min-width: 60rem) {
  .tese {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 4rem;
  }
}
.tese__titulo {
  font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem);
  line-height: 1.1;
}
/* O remate: um parágrafo que sai do fluxo sem virar citação.
 *
 * A régua à esquerda é a mesma da citação que abre cada lei (`.enunciado`) — o
 * site já ensinou esse sinal, e ele quer dizer "isto aqui não é mais um
 * parágrafo". A diferença entre os dois é de porte: a citação tem texto grande e
 * assinatura embaixo, o remate mantém o corpo da prosa.
 *
 * Existia só como `.tese__remate`, na home. Virou classe própria quando o mesmo
 * tratamento fez falta em O autor — pelo motivo de sempre: era o mesmo desenho
 * pedindo um nome que não fosse o da página onde nasceu. */
.remate {
  padding-left: 1.25rem;
  border-left: 2px solid hsl(var(--accent));
}

.tese__remate {
  margin-top: 0.5rem;
  color: hsl(var(--ink));
}


.heroi__titulo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: clamp(2.25rem, 1rem + 6vw, 5rem);
  font-weight: 600;
  letter-spacing: -0.045em;
  line-height: 0.98;
  margin: 1.5rem 0 0;
  color: hsl(var(--ink));
}
/* As duas cores da marca da barra, no tamanho da capa: "Same" em tinta, "Brain"
   no coral. Mesmo logotipo, mesma partição — o que muda é o corpo. */
.heroi__palavra--coral {
  color: hsl(var(--accent));
}

/* ---------------------------------------------------------------- *
 * O eco: a marca falhando para a tradução
 *
 * Uma vez, quando a capa carrega, o nome falha como um letreiro com mau contato
 * e assenta no que ele quer dizer: "Mesmo Cérebro". Só na versão em português —
 * é lá que a tradução informa alguma coisa.
 *
 * Três coisas seguram isto de pé:
 * · o texto no DOM nunca muda. O eco é `content: attr(data-eco)` numa camada
 *   `aria-hidden` por construção (pseudo-elemento não entra na árvore de
 *   acessibilidade), então leitor de tela, busca, marcador e página sem JS leem
 *   "Same Brain" — o nome do site — e nada mais. A troca é de pintura, não de
 *   conteúdo, e é por isso que ela pode ser permanente sem custo nenhum;
 * · a animação roda uma vez e para em `both`. Interrompida no meio, o que sobra
 *   é texto legível — nunca as duas camadas somadas;
 * · com `prefers-reduced-motion` não há piscada: o eco entra direto, sem os
 *   quadros de falha. Quem pediu para o movimento parar recebe a tradução
 *   mesmo assim; o que se perde é só o efeito.
 * ---------------------------------------------------------------- */

/* Grade de uma célula: o texto e o eco moram nela juntos. A caixa mede a maior
   das duas palavras, as duas ficam sobrepostas e nada sai do fluxo — nenhuma
   das duas pode empurrar a página para o lado. */
.heroi__palavra {
  display: inline-grid;
  justify-items: start;
}
.heroi__palavra__txt,
.heroi__palavra[data-eco]::after {
  grid-area: 1 / 1;
}
.heroi__palavra[data-eco]::after {
  content: attr(data-eco);
  color: inherit;
  opacity: 0;
  white-space: nowrap;
  pointer-events: none;
}

/* Sem movimento: o eco simplesmente já está lá quando a página abre. A troca é
   o conteúdo da peça; só a piscada é enfeite, e é ela que sai. */
@media (prefers-reduced-motion: reduce) {
  .heroi__palavra[data-eco] .heroi__palavra__txt { opacity: 0; }
  .heroi__palavra[data-eco]::after { opacity: 1; }
}

@media (prefers-reduced-motion: no-preference) {
  /* `steps(1)` em cada trecho é o que faz a troca ser corte seco, e não
     esmaecimento: letreiro com mau contato não tem meio-termo. */
  [data-glitch] .heroi__palavra[data-eco] .heroi__palavra__txt {
    animation: eco-original 1.9s steps(1) 1 both;
  }
  [data-glitch] .heroi__palavra[data-eco]::after {
    animation: eco-traducao 1.9s steps(1) 1 both;
  }
  /* a segunda palavra falha alguns quadros depois da primeira: as duas juntas
     leriam como troca de legenda; defasadas, leem como falha de sinal */
  [data-glitch] .heroi__palavra--coral[data-eco] .heroi__palavra__txt,
  [data-glitch] .heroi__palavra--coral[data-eco]::after {
    animation-delay: 0.09s;
  }

  /* As duas metades são complementares quadro a quadro: onde uma está em 1, a
     outra está em 0. Elas terminam trocadas — a marca sai, a tradução fica —, e
     é por isso que os keyframes não são simétricos. */
  @keyframes eco-original {
    0%, 62% { opacity: 1; transform: none; }
    /* os quadros de falha: a marca treme, pisca e não volta */
    65% { opacity: 1; transform: translate3d(-0.06em, 0, 0); }
    68% { opacity: 0; }
    73% { opacity: 1; transform: translate3d(0.045em, 0, 0); }
    76%, 100% { opacity: 0; transform: none; }
  }
  @keyframes eco-traducao {
    0%, 66% { opacity: 0; transform: none; }
    69% { opacity: 1; transform: translate3d(0.05em, 0, 0); }
    72% { opacity: 0; }
    /* e assenta: daqui em diante a capa diz "Mesmo Cérebro" */
    77%, 100% { opacity: 1; transform: none; }
  }
}

/* A tese, logo sob a marca: é ela que explica o nome. "Same Brain" sozinho não
   diz nada a quem chega — com a frase abaixo, diz tudo.

   Fonte de texto, não mono: agora é uma frase de duas orações, e mono a esse
   comprimento cansa. A hierarquia interna fica por conta do peso — a tese em
   negrito, o convite em regular —, que é o que dispensa o segundo parágrafo que
   existia aqui só para dizer a mesma coisa de novo. */
.heroi__tese {
  margin: 1.5rem 0 0;
  max-width: 34rem;
  font-size: clamp(1.0625rem, 1rem + 0.5vw, 1.3125rem);
  font-weight: 400;
  line-height: 1.5;
  color: hsl(var(--ink-muted));
  text-wrap: pretty;
}
.heroi__tese b {
  font-weight: 600;
  color: hsl(var(--ink));
}


.heroi__acoes {
  margin-top: 2.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 1.25rem;
  border-radius: var(--radius);
  border: 1px solid transparent;
  font-size: 0.9375rem;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.btn--forte {
  background: hsl(var(--accent));
  color: hsl(var(--accent-ink));
}
.btn--forte:hover {
  background: hsl(var(--accent) / 0.88);
}

.btn--linha {
  border-color: hsl(var(--line-strong));
  color: hsl(var(--ink));
}
.btn--linha:hover {
  border-color: hsl(var(--accent));
  color: hsl(var(--accent));
}

/* os dois rios: a metáfora do manifesto, em geometria de interface.
   as barras correm em proporção real — a lenta leva mais de um dia por volta */
/* Abre a seção da tese em toda a largura: com a barra longa, a diferença de
   velocidade entre as duas fica muito mais visível do que numa caixa estreita. */
.rios {
  margin: 0 0 clamp(2.5rem, 5vw, 3.5rem);
  border: 1px solid hsl(var(--line));
  border-radius: 0.75rem;
  background: hsl(var(--bg-raised) / 0.6);
  padding: clamp(1.25rem, 3vw, 2rem);
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}
.rios__titulo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: hsl(var(--ink-faint));
}

.rio {
  display: grid;
  gap: 0.5rem;
}
/* na largura cheia, nome e taxa ladeiam a barra em vez de empilhar sobre ela */
@media (min-width: 56rem) {
  .rio {
    grid-template-columns: minmax(0, 17rem) minmax(0, 1fr) auto;
    align-items: center;
    gap: 0 1.75rem;
  }
  .rio__taxa {
    text-align: right;
  }
}

/* nome e taxa em linhas separadas: juntos, liam como uma frase só e escondiam
   que ali há duas grandezas sendo comparadas */
.rio__nome {
  font-size: 1rem;
  font-weight: 600;
  color: hsl(var(--ink));
  letter-spacing: -0.01em;
}
.rio__taxa {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}
.rio__taxa b {
  font-weight: 500;
  color: hsl(var(--ink-muted));
}

.rio__leito {
  position: relative;
  height: 2px;
  background: hsl(var(--line));
  border-radius: 2px;
  overflow: hidden;
}

.rio__corrente {
  position: absolute;
  inset: 0;
  background-repeat: repeat-x;
  background-image: linear-gradient(
    to right,
    transparent 0 30%,
    hsl(var(--accent)) 30% 70%,
    transparent 70% 100%
  );
}

/* Os dois traços têm a MESMA largura; muda só o espaçamento entre eles. Assim a
   barra lenta lê como "marcas raras", e não como barra de progresso pela metade —
   que era como saía quando o traço dela era largo. Com prefers-reduced-motion a
   animação some e o espaçamento sozinho ainda conta a diferença. */
.rio__corrente--rapido {
  background-size: 2.5rem 100%;
  animation: correr-rapido 1.6s linear infinite;
}
.rio__corrente--lento {
  background-image: linear-gradient(
    to right,
    transparent 0 47.7%,
    hsl(var(--accent)) 47.7% 52.3%,
    transparent 52.3% 100%
  );
  background-size: 22rem 100%;
  opacity: 0.5;
  animation: correr-lento 300s linear infinite;
}

@keyframes correr-rapido {
  to {
    background-position-x: 2.5rem;
  }
}
@keyframes correr-lento {
  to {
    background-position-x: 22rem;
  }
}

.rios__nota {
  font-size: 0.9375rem;
  color: hsl(var(--ink-faint));
  margin: 0;
  text-wrap: pretty;
}

/* ---------------------------------------------------------------- *
 * Números da obra
 * ---------------------------------------------------------------- */

.numeros {
  display: grid;
  gap: 2rem 1.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 52rem) {
  .numeros {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.numero__valor {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: clamp(1.75rem, 1.2rem + 1.8vw, 2.5rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  color: hsl(var(--accent));
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.numero__rotulo {
  margin-top: 0.625rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: hsl(var(--ink-muted));
  text-wrap: pretty;
}
/* o referente do número vem em destaque; o resto explica de onde ele sai */
.numero__rotulo b {
  display: block;
  color: hsl(var(--ink));
  font-weight: 600;
  margin-bottom: 0.25rem;
}

/* ---------------------------------------------------------------- *
 * Cartões de entrada
 * ---------------------------------------------------------------- */

.cartoes {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 44rem) {
  .cartoes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  /* Em duas colunas, as cinco portas fecham em três linhas: duas, o corpo
     sozinho no meio, duas. */
  .cartoes--4 .cartao--largo { grid-column: 1 / -1; margin-top: 0; }
}
@media (min-width: 68rem) {
  /* Seis colunas para cinco portas na ordem do percurso: motor, catálogo e
     corpo lado a lado em cima, cada um com duas colunas; a linha e o medir
     embaixo, com três cada. Nenhum buraco, e a ordem de leitura é a mesma
     que a linha de apoio anuncia. O corpo mantém o título maior porque é a
     única das cinco que faz uma pergunta. */
  .cartoes--4 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .cartoes--4 > .cartao { grid-column: span 2; }
  .cartoes--4 > .cartao:nth-last-child(-n + 2) { grid-column: span 3; }
  /* Alinhado com os vizinhos: a margem de cima era de quando ele abria a grade sozinho. */
  .cartoes--4 .cartao--largo { margin-top: 0; }
}
.cartao--largo h2 { font-size: 1.375rem; letter-spacing: -0.02em; }
.cartao--largo p { max-width: 46rem; }

.cartao {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  padding: 1.5rem;
  border: 1px solid hsl(var(--line));
  border-radius: 0.75rem;
  background: hsl(var(--bg-raised) / 0.5);
  color: inherit;
  text-decoration: none;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
.cartao:hover {
  border-color: hsl(var(--accent) / 0.6);
  background: hsl(var(--bg-raised));
}
.cartao__num {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
  font-variant-numeric: tabular-nums;
}
/* h2 nas saídas da home, h3 onde o cartão vive sob um título de seção: sem o
   título, o cartão passa a ser o primeiro nível daquele bloco, e pular de h1
   direto para h3 deixaria um degrau vazio na estrutura de cabeçalhos. O corpo
   é o mesmo nos dois casos — o nível diz hierarquia, não tamanho. */
.cartao h2,
.cartao h3 {
  font-size: 1.125rem;
}

/* As quatro saídas fecham a home, e o vão acima delas é maior que o de uma
   seção comum: elas não continuam o argumento, encerram. */
.saidas {
  padding-top: clamp(1rem, 3vw, 2rem);
}
.cartao p {
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
  line-height: 1.55;
}
.cartao__seta {
  margin-top: auto;
  padding-top: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--accent));
}

/* Um cartão sozinho fechando uma página, e não um da grade de quatro. Fecha a
   lista de métodos com o texto que limita todos eles: precisa de peso de seção,
   não de peso de item, e por isso ganha respiro maior e título de porte. */
.cartao--largo {
  margin-top: 4rem;
  padding: 2rem;
  max-width: 44rem;
}
.cartao--largo h2 { font-size: 1.5rem; }
.cartao--largo p { color: hsl(var(--ink-muted)); max-width: 38rem; }
@media (max-width: 40rem) {
  .cartao--largo { margin-top: 3rem; padding: 1.5rem; }
  .cartao--largo h2 { font-size: 1.25rem; }
}
/* Na grade de entrada da home o cartão do corpo é um vizinho, não uma seção:
   sem a margem de seção em nenhuma largura. */
.cartoes--4 .cartao--largo { margin-top: 0; }

/* ---------------------------------------------------------------- *
 * Índice de leis — legenda de prancha, não grade de caixas
 * ---------------------------------------------------------------- */

/* ---------------------------------------------------------------- *
 * O campo de busca, e a viagem dele até o topo
 *
 * É um elemento só nos dois estados. O que muda é onde ele está — e a mudança é
 * animada por FLIP no `ligarModoFoco`: mede-se a posição antes, aplica-se a
 * classe, mede-se depois, e a diferença vira o ponto de partida da transição.
 * Por isso este CSS não descreve dois componentes: descreve um, e o lugar para
 * onde ele vai.
 * ---------------------------------------------------------------- */

/* A zona reserva a altura do campo enquanto ele está fora do fluxo. Sem isso, o
   conteúdo abaixo sobe no instante em que ele sai, e a página inteira dá um
   pulo justamente no quadro em que ela deveria estar imóvel. */
.pill-zona {
  display: block;
  margin-block: 0.5rem 3rem;
}
/* Metade da coluna, centralizado, pill inteiro. A forma redonda é o convite:
   num sistema em que tudo tem cantos de 0,75rem, o raio total diz que aquilo
   ali não é mais um cartão. */
.pill {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  inline-size: min(100%, 34rem);
  margin-inline: auto;
  padding-inline: 1.75rem;
  min-block-size: 72px;
  background: hsl(var(--bg-raised));
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  transition: border-color 0.2s ease, box-shadow 0.25s ease,
    transform 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.32s ease;
}
@media (min-width: 64rem) {
  /* 8 de 12 da coluna de conteúdo */
  .pill { inline-size: 66.6667%; }
}
.pill:hover { border-color: hsl(var(--accent) / 0.55); }

/* O brilho do foco é o mesmo gesto do nó aceso no mapa: um halo de acento que
   sangra para fora da borda, não uma sombra. Duas camadas porque uma só ou fica
   dura na borda ou não alcança distância nenhuma. */
.pill:focus-within {
  border-color: hsl(var(--accent));
  box-shadow:
    0 0 0 4px hsl(var(--accent) / 0.16),
    0 0 32px hsl(var(--accent) / 0.28),
    0 0 64px hsl(var(--accent) / 0.12);
}
.pill__lupa {
  inline-size: 28px;
  block-size: 28px;
  flex: none;
  color: hsl(var(--accent));
}
.pill__campo {
  flex: 1;
  min-inline-size: 0;
  padding: 0;
  font: inherit;
  font-size: clamp(1.0625rem, 1rem + 0.5vw, 1.3125rem);
  color: hsl(var(--ink));
  background: none;
  border: 0;
}
.pill__campo:focus { outline: none; }
.pill__campo::-webkit-search-cancel-button { display: none; }
/* O cursor da isca é um caractere dentro do próprio texto, e não uma borda no
   `::placeholder`: aquela borda é desenhada no fim da CAIXA do placeholder, que
   ocupa a largura inteira do campo — o cursor aparecia encostado na direita,
   longe da palavra que estava sendo escrita. */

.pill__saldo:not(:empty) {
  margin-top: 1rem;
  text-align: center;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
}

/* ---- o estado de foco: o campo estacionado no alto ---- */

/* Dentro da camada, a zona inteira é que se posiciona: o campo, o contador e a
   lista descem juntos e mantêm a relação entre si. Estacionada no alto e não no
   centro — abaixo dela cresce a lista, e um campo centralizado subiria de lugar
   assim que o primeiro resultado aparecesse. */
.pill-zona--foco {
  position: fixed;
  z-index: 61;
  inset-block-start: clamp(4rem, 12vh, 8rem);
  /* centralizado por transform, e não por `inset-inline: 0` + `margin: auto`:
     a dupla só centraliza quando o containing block é o esperado, e aqui ele
     mudava. `left: 50%` + meio negativo de si mesmo não depende disso. */
  inset-inline-start: 50%;
  transform: translateX(-50%);
  inline-size: min(calc(100vw - 2rem), 34rem);
  max-block-size: calc(100vh - clamp(4rem, 12vh, 8rem) - 2rem);
  display: flex;
  flex-direction: column;
}
@media (min-width: 64rem) {
  /* Um pouco mais largo que na página, e de propósito: ali o campo divide a
     coluna com o resto do conteúdo, aqui ele é a única coisa na tela. Manter a
     medida exata do repouso fazia a viagem terminar num campo que parecia
     pequeno demais para o espaço que tinha ganhado. */
  .pill-zona--foco { inline-size: min(72vw, 52rem); }
}
.pill-zona--foco .pill {
  inline-size: 100%;
}
.pill-zona--foco .pill__achados {
  margin-top: 1rem;
  overflow-y: auto;
  overscroll-behavior: contain;
}

body.sem-rolagem { overflow: hidden; }

/* ---------------------------------------------------------------- *
 * A camada do modo foco
 *
 * Dois grafismos, os mesmos do resto do site: a grade quadriculada de 4rem que
 * abre a capa, e o campo de partículas que corre atrás de tudo. Aqui os dois
 * ficam em primeiro plano — o campo é desenhado com um teto de opacidade
 * calculado para não competir com texto, e sobre o escuro da camada ele
 * finalmente aparece.
 * ---------------------------------------------------------------- */

/* O desfoque vai no `::before`, e não no velário.
   `backdrop-filter` cria containing block para descendentes `position: fixed` —
   com ele no elemento, a zona da busca deixava de se posicionar pelo viewport e
   passava a se medir pelo velário, o que a jogava para o canto esquerdo com uma
   largura que não era a pedida. No pseudo-elemento o efeito é o mesmo e o
   referencial dos filhos continua sendo a tela. */
.velario {
  position: fixed;
  inset: 0;
  z-index: 60;
  animation: velario-entra 0.32s ease both;
}
/* O desfoque cobre a leitura sem apagar a página: o que ficou atrás continua
   reconhecível como lugar, e deixa de ser texto. A saturação baixa faz o resto
   do trabalho — tirar a cor é o segundo sinal de que aquilo saiu de cena, e
   custa menos nitidez que subir o blur. */
.velario::before {
  content: '';
  position: absolute;
  inset: 0;
  background: hsl(var(--bg) / 0.82);
  backdrop-filter: blur(14px) saturate(0.6);
}

/* A vinheta: escurece do campo para fora, e não o contrário.
   Vinheta de fotografia é escura na borda e limpa no meio. Esta é ao contrário
   porque o trabalho dela é outro: adensar em volta do campo, para ele se
   descolar de um fundo que continua sendo uma página inteira. O ponto de origem
   acompanha onde o campo estaciona, no terço superior. */
.velario::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 70% 55% at 50% 22%,
    hsl(var(--bg) / 0.72) 0%,
    hsl(var(--bg) / 0.34) 45%,
    transparent 78%);
}

/* A mesma grade da capa, na mesma medida de 4rem, mas aqui ela emoldura em vez
   de preencher: a máscara é o negativo da que a capa usa — transparente onde o
   campo estaciona, opaca nas bordas. E em `--line` e não `--line-strong`, que
   era o que a deixava dura demais para servir de fundo. */
.velario__grade {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(to right, hsl(var(--line)) 1px, transparent 1px),
    linear-gradient(to bottom, hsl(var(--line)) 1px, transparent 1px);
  background-size: 4rem 4rem;
  -webkit-mask-image: radial-gradient(ellipse 62% 52% at 50% 22%,
    transparent 12%, #000 88%);
  mask-image: radial-gradient(ellipse 62% 52% at 50% 22%,
    transparent 12%, #000 88%);
  opacity: 0.38;
}

/* As constelações por cima de tudo, e sem máscara nenhuma: a vinheta e a grade
   são fundo, elas são o assunto. O `z-index` é o que garante isso — o `::after`
   da vinheta é pintado depois dos filhos e, sem ele, cobriria as partículas. */
.velario__particulas {
  position: absolute;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  z-index: 1;
  pointer-events: none;
  filter: brightness(2.3) saturate(1.4);
}

.velario__fechar {
  position: fixed;
  inset-block-start: clamp(0.75rem, 2vw, 1.5rem);
  inset-inline-end: clamp(0.75rem, 2vw, 1.5rem);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: 56px;
  block-size: 56px;
  z-index: 62;
  background: hsl(var(--bg-raised));
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  color: hsl(var(--ink));
  cursor: pointer;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
.velario__fechar:hover {
  border-color: hsl(var(--accent));
  background: hsl(var(--bg));
}
.velario__fechar svg { inline-size: 26px; block-size: 26px; }

/* ---- os achados ---- */

.achados {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}
.achado {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  padding: 1rem 1.125rem;
  background: hsl(var(--bg-raised));
  border: 1px solid hsl(var(--line));
  border-radius: 0.875rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
.achado:hover {
  border-color: hsl(var(--accent) / 0.6);
  background: hsl(var(--bg));
}
.achado__topo {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.achado__nome {
  font-size: 1.0625rem;
  font-weight: 600;
  color: hsl(var(--ink));
  letter-spacing: -0.015em;
}
.achado__onde {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  color: hsl(var(--ink-faint));
}
.achado__desc {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: hsl(var(--ink-muted));
}
.achado mark {
  background: hsl(var(--accent) / 0.22);
  color: inherit;
  border-radius: 3px;
  padding: 0 0.125rem;
}
.achados__vazio {
  padding: 1.25rem;
  background: hsl(var(--bg-raised));
  border: 1px dashed hsl(var(--line-strong));
  border-radius: 0.875rem;
  color: hsl(var(--ink-muted));
  font-size: 0.9375rem;
  line-height: 1.6;
}

/* Sem movimento: o campo troca de lugar sem percorrer o caminho, a camada
   aparece sem esmaecer, e a isca não é digitada — vira uma frase fixa. O que
   se perde é o efeito; o que a busca faz continua igual. */
@media (prefers-reduced-motion: reduce) {
  .pill { transition: border-color 0.2s ease, box-shadow 0.25s ease; }
  .velario { animation: none; }
}

.filtros {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 2.5rem;
}

.filtro {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 0.875rem;
  /* SC 1.4.11: a borda é o que identifica o botão não selecionado — precisa de
     3:1, não pode ser o tom de divisor decorativo */
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  background: none;
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.filtro:hover {
  border-color: hsl(var(--line-strong));
  color: hsl(var(--ink));
}
/* selecionado marcado por preenchimento + peso, nunca só por matiz */
.filtro[aria-pressed='true'] {
  background: hsl(var(--accent));
  border-color: hsl(var(--accent));
  color: hsl(var(--accent-ink));
  font-weight: 500;
}

.filtro__n {
  margin-left: 0.5rem;
  padding-left: 0.5rem;
  border-left: 1px solid currentColor;
  opacity: 0.55;
  font-size: 0.875rem;
}

.grupo + .grupo {
  margin-top: 3.5rem;
}

.grupo__cabeca {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid hsl(var(--line));
  margin-bottom: 0.25rem;
}
.grupo__cabeca h2 {
  font-size: 1.5rem;
}
.grupo__cabeca p {
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
  max-width: 46rem;
  line-height: 1.55;
}
.grupo__substrato {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}
/* Quantos conceitos e quantos têm exercício. Vem depois do texto porque é
   informação de serviço: ajuda a decidir se vale entrar no grupo, não explica
   o grupo. */
.grupo__conta {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
  margin-top: 0.25rem;
}

/* Empilhado, o contexto do grupo virava um bloco de texto que se lê e se
   esquece antes de a lista começar — e quanto mais longa a lista, mais longe
   fica a explicação do que ela agrupa. Lado a lado, a explicação continua
   visível enquanto os olhos correm os itens, que é quando ela serve.

   `sticky` porque as listas têm alturas bem diferentes (de 5 a 11 itens): sem
   ele, os grupos maiores deixariam a coluna da esquerda parada no topo com
   meia tela de vazio abaixo. O deslocamento tem de passar da barra fixa. */
@media (min-width: 64rem) {
  .grupo {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 1rem 2.5rem;
    align-items: start;
  }
  .grupo__cabeca {
    position: sticky;
    top: 5.5rem;
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 0;
  }
  .grupo__cabeca p { max-width: none; }
  /* Sem régua entre as colunas: o vão de 2,5rem já separa as duas, e a linha
     vertical só acrescentava peso ao lado de uma lista que já é toda feita de
     réguas horizontais. Os itens começam onde a coluna começa — a única margem
     à esquerda é a que o hover abre, e ela é temporária por desenho. */
  /* Numa coluna de ~40rem as três colunas da linha ficam estreitas demais para
     o enunciado respirar. Nome e enunciado empilham; só o ano sai para a
     direita, que é o que precisa ficar alinhado para se comparar de relance. */
  .lista--leis .linha {
    grid-template-columns: 1fr auto;
    align-items: baseline;
  }
  .lista--leis .linha__nome { grid-column: 1; }
  .lista--leis .linha__enunciado { grid-column: 1; }
  .lista--leis .linha__meta { grid-column: 2; grid-row: 1; }
}

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

/* O respiro lateral é padding fixo compensado por margem negativa: o texto fica
   alinhado com a coluna (0,75 para dentro, 0,75 para fora, some), e o realce do
   hover sangra para os dois lados em vez de encostar nas letras.

   Antes o padding esquerdo ia de 0 a 0,75rem no hover, e a linha inteira dava um
   passo para a direita quando o ponteiro passava — numa lista de até onze itens,
   percorrer com o mouse fazia o texto pular item a item. O deslocamento sai; o
   que marca o item sob o ponteiro é o fundo, que já basta. */
.linha {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.375rem 1.5rem;
  padding: 1.125rem 0.75rem;
  margin-inline: -0.75rem;
  border-bottom: 1px solid hsl(var(--line));
  color: inherit;
  text-decoration: none;
  transition: background-color 0.15s ease;
}
.linha:hover {
  background: hsl(var(--bg-raised) / 0.75);
}
@media (min-width: 46rem) {
  .linha {
    grid-template-columns: 15rem 1fr auto;
    align-items: baseline;
  }
}

.linha__nome {
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: -0.015em;
}
.linha__enunciado {
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
  line-height: 1.5;
  text-wrap: pretty;
}
.linha__meta {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
  white-space: nowrap;
}
.linha__demo {
  color: hsl(var(--accent));
}
/* A marca de lastro no índice. Mesmo alfabeto da matriz — cheio é medido, ponto
   de interrogação é dedução, traço é não varia, xis é não é sobre gente — e as
   mesmas cores, para quem vier da matriz reconhecer sem reaprender. O texto
   equivalente está em `.sr-only` ao lado: a informação não depende do símbolo,
   e muito menos da cor dele. */
.linha__marca {
  font-size: 1rem;
  line-height: 1;
}
.linha__lastro.matriz--conferido .linha__marca { color: hsl(var(--accent)); }
.linha__lastro.matriz--conhecido .linha__marca { color: hsl(var(--ink-muted)); }
.linha__lastro.matriz--raciocinio .linha__marca { color: hsl(var(--ink-faint)); }
.linha__lastro.matriz--naovaria .linha__marca { color: hsl(var(--ink-faint)); }
.linha__lastro.matriz--principio .linha__marca { color: hsl(var(--ink) / 0.28); }

/* A legenda do catálogo, antes da primeira seção. Duas colunas em tela larga
   para não empurrar as leis para baixo da dobra. */
/* A curiosidade: quem realmente disse aquilo. É a última estação da página e a
   única em que o site fala do próprio catálogo em vez de falar do usuário — daí
   a primeira frase em destaque, que é a correção, e o corpo em seguida, que é o
   motivo de a confusão ter colado. */
.curiosidade { max-width: 42rem; }
.curiosidade__quem {
  margin: 0 0 0.75rem;
  font-size: 1.125rem;
  line-height: 1.4;
  font-weight: 550;
  letter-spacing: -0.011em;
  color: hsl(var(--ink));
  text-wrap: pretty;
}
.curiosidade p + p { margin-top: 0.85rem; }
.curiosidade__fonte {
  margin-top: 1rem;
  font-size: 0.8125rem;
  color: hsl(var(--ink-faint));
}

/* O atalho para os métodos, na coluna de rótulo da estação de design. Lista e
   não frase: são um ou dois destinos, e a sigla é o que a pessoa reconhece. */
.grupo__medir { margin-top: 1rem; }
.grupo__medirRotulo {
  margin: 0 0 0.4rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(var(--ink-faint));
}
.grupo__medir ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem 0.75rem;
}
.grupo__medir a {
  font-size: 0.875rem;
  color: hsl(var(--accent));
  text-decoration: none;
  border-bottom: 1px solid hsl(var(--accent) / 0.3);
}
.grupo__medir a:hover { border-bottom-color: hsl(var(--accent)); }

/* A caixa da evidência fóssil, no manifesto. Dois itens lado a lado, e o
   segundo é a ressalva — por isso eles têm o mesmo peso visual: dizer que o
   tamanho é antigo e a forma não é uma nota de rodapé, é metade do argumento. */
/* O saldo por pergunta e a saída copiável. O placar dizia um número só e a
   página prometia dizer ONDE — o dado existia e era jogado fora na soma. */
.matriz__placar {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem 0.75rem;
  margin: 1.5rem 0 0.5rem;
  font-size: 1rem;
  color: hsl(var(--ink-muted));
}
.matriz__placar .matriz--conferido { color: hsl(var(--accent)); }
.matriz__placarSep { color: hsl(var(--ink-faint)); }

.pergunta__saldo {
  margin: 0.75rem 0 0;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
  color: hsl(var(--ink-faint));
  min-height: 1.2em;
}
.pergunta__saldo--alto { color: hsl(var(--accent)); }
.placar__acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}
.placar__saida {
  display: block;
  width: 100%;
  margin-top: 0.75rem;
  min-height: 9rem;
  padding: 0.75rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: hsl(var(--ink));
  background: hsl(var(--bg-raised));
  border: 1px solid hsl(var(--line));
  border-radius: 0.375rem;
  resize: vertical;
}

.fossil {
  margin: 3rem 0;
  padding: 1.75rem 0 0;
  border-top: 1px solid hsl(var(--line-strong));
}
.fossil__intro {
  margin: 0.5rem 0 0;
  max-width: 42rem;
  color: hsl(var(--ink-muted));
  line-height: 1.65;
}
.fossil__itens {
  display: grid;
  gap: 1.75rem;
  margin: 1.75rem 0 0;
}
@media (min-width: 52rem) {
  .fossil__itens { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; }
}
.fossil__item h3 {
  margin: 0 0 0.5rem;
  font-size: 1rem;
  line-height: 1.35;
  letter-spacing: -0.01em;
  color: hsl(var(--ink));
}
.fossil__item p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: hsl(var(--ink-muted));
}
.fossil__remate { margin-top: 1.75rem; }

.numero__fonte {
  margin: 0.5rem 0 0;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.75rem;
}
.numero__fonte a {
  color: hsl(var(--ink-faint));
  text-decoration: none;
  border-bottom: 1px solid hsl(var(--line));
}
.numero__fonte a:hover { color: hsl(var(--accent)); border-bottom-color: hsl(var(--accent)); }
.numeros__limite { margin-top: 2.5rem; }
.numeros__limite a { white-space: nowrap; }

/* A trilha de cinco, antes da legenda e antes das 38. Numerada porque a ordem
   importa: cada uma pressupõe a anterior. É o único lugar do site em que um
   número ordinal carrega informação de verdade. */
/* O recorte que argumenta, antes da lista que consulta. */
/* A ressalva de idioma. Discreta de propósito: ela não é aviso de erro, é uma
   nota de rodapé do tradutor no meio do texto — a mesma voz do Ps. das leis,
   baixando o tom para dizer mais uma coisa depois de já ter dito a principal. */
.nota-idioma {
  margin: 1.75rem 0;
  padding: 0.9rem 1.1rem;
  max-width: 42rem;
  border-left: 2px dashed hsl(var(--line-strong));
  border-radius: 0 0.375rem 0.375rem 0;
  background: hsl(var(--bg-raised) / 0.4);
}
.nota-idioma__rotulo {
  margin: 0 0 0.4rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(var(--ink-faint));
}
.nota-idioma p:not(.nota-idioma__rotulo) {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: hsl(var(--ink-muted));
}
.nota-idioma em { font-style: italic; }

.raros { margin: 3rem 0; }
.raros__intro { max-width: 44rem; color: hsl(var(--ink-muted)); line-height: 1.65; }
.raros__lista { list-style: none; margin: 1.75rem 0 0; padding: 0; display: grid; gap: 1.5rem; }
.raros__lista li {
  max-width: 46rem;
  padding-left: 1.15rem;
  border-left: 2px solid hsl(var(--line-strong));
}
.raros__fonte {
  margin: 0 0 0.35rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
  color: hsl(var(--ink-faint));
}
.raros__fonte a { color: hsl(var(--accent)); text-decoration: none; }
.raros__lista li p:last-child {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.65;
  color: hsl(var(--ink-muted));
}

.trilha {
  margin: 0 0 2.5rem;
  padding: 1.5rem 1.6rem;
  background: hsl(var(--bg-raised) / 0.5);
  border: 1px solid hsl(var(--line));
  border-radius: 0.5rem;
}
.trilha__rotulo {
  margin: 0 0 0.5rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(var(--accent));
}
.trilha__texto {
  margin: 0 0 1.1rem;
  max-width: 44rem;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: hsl(var(--ink-muted));
}
.trilha__lista {
  margin: 0;
  padding: 0 0 0 1.5rem;
  display: grid;
  gap: 0.5rem;
}
.trilha__lista li { padding-left: 0.25rem; }
.trilha__lista a {
  color: hsl(var(--ink));
  text-decoration: none;
  border-bottom: 1px solid hsl(var(--accent) / 0.4);
  font-weight: 550;
}
.trilha__lista a:hover { border-bottom-color: hsl(var(--accent)); }
.trilha__lista span {
  display: block;
  font-size: 0.875rem;
  line-height: 1.5;
  color: hsl(var(--ink-muted));
  margin-top: 0.15rem;
}
.trilha__lista::marker, .trilha__lista li::marker {
  color: hsl(var(--ink-faint));
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
}

.catalogo-legenda {
  margin: 0 0 3rem;
  padding: 1.25rem 0 1.5rem;
  border-top: 1px solid hsl(var(--line));
  border-bottom: 1px solid hsl(var(--line));
}
.catalogo-legenda__rotulo,
.catalogo-legenda__nota {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.6;
  color: hsl(var(--ink-faint));
}
.catalogo-legenda__rotulo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.catalogo-legenda ul {
  list-style: none;
  margin: 0.75rem 0;
  padding: 0;
  display: grid;
  gap: 0.4rem 2rem;
  max-width: 58rem;
}
@media (min-width: 44rem) {
  .catalogo-legenda ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.catalogo-legenda li {
  display: grid;
  grid-template-columns: 1.25rem 1fr;
  gap: 0.5rem;
  align-items: baseline;
  font-size: 0.875rem;
  line-height: 1.5;
  color: hsl(var(--ink-muted));
}
.catalogo-legenda .linha__marca { font-family: 'Geist Mono', ui-monospace, monospace; }
.catalogo-legenda .matriz--conferido .linha__marca { color: hsl(var(--accent)); }
.catalogo-legenda .matriz--conhecido .linha__marca { color: hsl(var(--ink-muted)); }
.catalogo-legenda .matriz--raciocinio .linha__marca { color: hsl(var(--ink-faint)); }
.catalogo-legenda .matriz--naovaria .linha__marca { color: hsl(var(--ink-faint)); }
.catalogo-legenda .matriz--principio .linha__marca { color: hsl(var(--ink) / 0.28); }

.vazio {
  padding: 3rem 0;
  color: hsl(var(--ink-muted));
}

/* ---------------------------------------------------------------- *
 * Página de lei — a descida
 * ---------------------------------------------------------------- */

.artigo {
  padding-block: clamp(2.5rem, 6vw, 4rem) clamp(3.5rem, 8vw, 6rem);
}

.voltar {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
  text-decoration: none;
}
.voltar:hover {
  color: hsl(var(--accent));
}

.artigo__cabeca {
  margin-top: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-bottom: 2.5rem;
}

.artigo__tipo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: hsl(var(--ink-faint));
}

/* O segundo tempo da abertura: o `lead` diz o que a página é, este diz como
   escolher por onde entrar. São duas perguntas diferentes e mereciam dois
   parágrafos — juntas, viravam um bloco que ninguém termina. */
.artigo__apoio {
  max-width: 44rem;
  font-size: 1rem;
  line-height: 1.6;
  color: hsl(var(--ink-muted));
  text-wrap: pretty;
}

/* A abertura da lei: o parágrafo que traduz o conceito antes de a página entrar
   em mecanismo, aplicação ou risco. Corpo maior que a prosa comum e cor de
   tinta cheia — é a única parte da página escrita para quem nunca ouviu falar
   do assunto, e precisa parecer o começo da leitura, não uma nota. */
.abertura-lei {
  margin-top: 1.75rem;
}
.abertura-lei p {
  font-size: clamp(1.0625rem, 1rem + 0.4vw, 1.1875rem);
  line-height: 1.65;
}

/* o enunciado: a citação que abre toda lei */
.enunciado {
  margin: 0;
  border-left: 2px solid hsl(var(--accent));
  padding-left: clamp(1rem, 3vw, 1.75rem);
  max-width: 44rem;
}
.enunciado p {
  font-size: clamp(1.1875rem, 1rem + 0.9vw, 1.625rem);
  line-height: 1.4;
  letter-spacing: -0.015em;
  color: hsl(var(--ink));
  text-wrap: pretty;
}
.enunciado footer {
  margin-top: 0.875rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}

/* a espinha: enunciado → substrato → aplicação → risco.
   é uma cadeia real do argumento, não numeração decorativa */
/* O contêiner das seções de uma lei.
 *
 * Tinha `position: relative`, um recuo de 1,75rem e um `::before` que desenhava a
 * linha vertical ligando as bolinhas. As bolinhas saíram numa rodada e a linha
 * ficou — junto com o recuo que existia só para abrir espaço para ela, o que
 * desalinhava a coluna inteira em relação a todo o resto da página.
 *
 * Sem a linha não há o que alinhar: o espaçamento é todo de `.grupo`, como nas
 * outras páginas. */
.descida {
  margin-top: 3rem;
}

/* O divisor entre conceitos.
 *
 * Aqui ele é necessário e nas outras páginas não. A diferença é de densidade: no
 * índice de leis um grupo traz uma lista inteira, e o próprio bloco já se fecha
 * sozinho; numa lei há até oito seções seguidas, várias de um parágrafo só, e sem
 * régua entre elas o conjunto vira um bloco contínuo em que nada começa nem
 * termina. */
.descida .grupo + .grupo {
  margin-top: 3rem;
  padding-top: 3rem;
  border-top: 1px solid hsl(var(--line));
}


/* ---------------------------------------------------------------- *
 * O gradiente de evidência, e os neuromitos da lei
 *
 * O rótulo fica acima do título da estação e não no cabeçalho da página: ele
 * qualifica a AFIRMAÇÃO, não a lei. Nível C não tem rótulo — troca o título —,
 * porque um selo de "sem neurociência" leria como demérito, quando é o oposto:
 * é a única das três que exigiu do autor dizer o que ele não sabe.
 *
 * Nada aqui depende de cor para funcionar. Os três níveis se distinguem pela
 * PALAVRA do rótulo e pelo título da seção; a régua lateral é reforço.
 * ---------------------------------------------------------------- */

/* O rótulo lidera a frase que o explica, em vez de flutuar acima do título.
   Fica em mono e caixa alta para se ler como etiqueta e não como começo de
   parágrafo — e continua sendo texto de verdade, não imagem nem cor. */
/* A nota de evidência: contida, encostada no fim da seção que ela qualifica.
   Fundo levemente elevado e régua de acento — o bastante para isolar do corpo
   sem competir com ele. É o mesmo gesto do pós-escrito da capa: o autor baixando
   a voz para dizer mais uma coisa depois de já ter dito a principal. */
.nota-evidencia {
  margin: 1.25rem 0 0;
  padding: 0.875rem 1rem;
  max-width: 40rem;
  border-left: 2px solid hsl(var(--accent) / 0.55);
  border-radius: 0 0.375rem 0.375rem 0;
  background: hsl(var(--bg-raised) / 0.55);
}
.nota-evidencia p {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.6;
  color: hsl(var(--ink-muted));
}
/* A do nível A não é ressalva, é procedência — régua neutra em vez de acento,
   para não pedir a atenção que uma advertência pede. */
.nota-evidencia--medido { border-left-color: hsl(var(--line-strong)); }
.nota-evidencia--medido a { color: hsl(var(--accent)); }
.nota-evidencia__marca {
  color: hsl(var(--accent));
  margin-right: 0.25rem;
  font-weight: 600;
}
.nota-evidencia__nivel {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(var(--accent));
  white-space: nowrap;
}
/* O asterisco do título é o par visual da nota. Fica sobrescrito e menor para
   não engordar o título, e é decorativo — a nota vem logo abaixo de qualquer
   forma para quem lê em sequência. */
.estacao__marca {
  font-size: 0.7em;
  vertical-align: 0.4em;
  color: hsl(var(--accent));
  margin-left: 0.15em;
}

/* Os três blocos que uma parte de capítulo pode ter depois da prosa: onde foi
   medido, onde isso quebra, e o neuromito que anda junto. Os três têm a mesma
   casca de propósito — são a mesma classe de coisa, um bloco que responde uma
   pergunta inteira — e por isso o Ps. deixou de ser caixinha de ressalva. Ele
   inchou quando passou a dizer ONDE, e ressalva com sete linhas dentro é um
   parágrafo com moldura. */
/* A seta de link que sai do site, na prosa. Decorativa: o `target` já diz ao
   leitor de tela que abre em aba nova. */
/* O negrito da prosa sobe para a cor de título. Herdando `--ink-muted` do
   parágrafo, ele ficava mais escuro que o texto em volta no tema claro e
   apagado no escuro — ou seja, o realce chamava menos atenção que a linha
   normal. Duas palavras em negrito num capítulo existem para amarrar dois
   parágrafos distantes; se elas não saltam, não fazem nada. */
.prosa b,
.parte-bloco b,
.mito__verdade b { color: hsl(var(--ink)); font-weight: 600; }

.fora-marca { font-size: 0.85em; opacity: 0.7; }

.parte-bloco {
  /* A medida é do bloco, e não só do parágrafo dentro dele. Com `max-width` só
     no `p`, a régua de cima corria até a borda da coluna enquanto o texto parava
     em 44rem — e uma linha que ultrapassa o texto lê como margem que sumiu. */
  max-width: 46rem;
  margin: 2.25rem 0 0;
  padding-top: 1.5rem;
  border-top: 1px solid hsl(var(--line));
}
.parte-bloco__titulo {
  margin: 0 0 0.75rem;
  font-size: 1.0625rem;
  line-height: 1.3;
  letter-spacing: -0.011em;
  color: hsl(var(--ink));
}
.parte-bloco p {
  margin: 0;
  max-width: 44rem;
  font-size: 0.9375rem;
  line-height: 1.7;
  color: hsl(var(--ink-muted));
}
.parte-bloco p + p { margin-top: 0.85rem; }
/* A primeira linha é a procedência e a última é o limite. Dentro do mesmo
   bloco elas se distinguem por peso e por régua curta, e não por caixa
   separada: são o mesmo assunto visto pelos dois lados. */
.parte-bloco--vale .parte-bloco__linha { color: hsl(var(--ink)); }
.parte-bloco__limite {
  border-left: 2px solid hsl(var(--line-strong));
  padding-left: 0.9rem;
}
.parte-bloco--mitos .mitos { margin-top: 0; }

/* A frase do mito é uma citação, e o site já sabe desenhar citação: o mesmo
   tratamento do enunciado de uma lei, em corpo menor porque aqui ela abre um
   bloco e não uma página. */
.mito__citacao {
  margin: 0 0 0.6rem;
  border-left: 2px solid hsl(var(--accent));
  padding-left: 1rem;
  max-width: 42rem;
}
.mito__citacao p {
  margin: 0;
  font-size: 1.0625rem;
  line-height: 1.45;
  letter-spacing: -0.008em;
  color: hsl(var(--ink));
  text-wrap: pretty;
}
.mito__citacao footer {
  margin-top: 0.5rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  letter-spacing: 0.02em;
  color: hsl(var(--ink-faint));
}
.mito__citacao p::before { content: '\201C'; }
.mito__citacao p::after { content: '\201D'; }

/* O respiro da parte inteira. Sem ele o realce da âncora encostava no texto de
   cima e no de baixo: quem chega por atalho via a faixa colada na frase. */
.grupo > div { padding-block: 0.25rem 1.75rem; }
.grupo > div > *:last-child { margin-bottom: 0; }
.grupo[id] { scroll-margin-top: 6rem; }

/* Os mitos que circulam sobre o conceito. A frase entre aspas é o mito como ele
   é dito; o parágrafo abaixo é o que a evidência mostra. */
.mitos { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; }
.mito { max-width: 42rem; }
.mito__verdade {
  margin: 0.5rem 0 0;
  color: hsl(var(--ink-muted));
  line-height: 1.6;
}
.mito__fonte {
  margin: 0.375rem 0 0;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  color: hsl(var(--ink-faint));
}
.mito__fonte a { color: hsl(var(--accent)); text-decoration: none; }
.mito__fonte a:hover { text-decoration: underline; }



.relacionados {
  margin-top: 3.5rem;
  padding-top: 2rem;
  border-top: 1px solid hsl(var(--line));
  /* A lista fica com a largura da prosa e o desenho ocupa a direita: quem lê
     segue lendo na mesma coluna, e o mapa entra no espaço que já sobrava. */
  /* O desenho toma a lateral direita inteira da seção, sem moldura: é a mesma
     gramática das frases do manifesto, que saem da coluna de leitura e ocupam o
     vazio à direita da página. A caixa que ele tinha antes o fazia parecer um
     widget encaixado ao lado do texto; sem ela, é ilustração da seção. */
  display: grid;
  /* A coluna de texto encolhe para o que os chips pedem e o desenho fica com
     todo o resto da seção. É o inverso da proporção de uma página de leitura, e
     de propósito: aqui o argumento é a rede, e os chips são o índice dela. */
  grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
  gap: 2rem 3rem;
  align-items: start;
}
@media (max-width: 60rem) {
  .relacionados { grid-template-columns: minmax(0, 1fr); }
  .relacionados__mapa { max-width: 34rem; }
}
.relacionados--simples { grid-template-columns: minmax(0, 1fr); }
.relacionados__grupo {
  margin: 1.25rem 0 0;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}
.relacionados__grupo:first-of-type { margin-top: 0.875rem; }
/* A marca repete no chip a forma que o nó tem no desenho: cheio é estrutura do
   cérebro, vazado é conceito. Quem lê os chips e olha o desenho não precisa de
   legenda para saber qual é qual — e nada disso depende de distinguir cor. */
.chip__marca {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  border: 1.5px solid hsl(var(--ink-muted));
  flex: 0 0 auto;
}
.chip__marca--cheia {
  border-color: hsl(var(--traco));
  background: hsl(var(--traco));
}
.relacionados__lista a:hover .chip__marca,
.relacionados__lista a:focus-visible .chip__marca { border-color: hsl(var(--accent)); }
/* uma estrutura ainda sem seção própria em Fundamentos: aparece, porque a
   ligação existe, mas não finge ser um caminho */
.chip--parado {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0 0.875rem;
  border: 1px dashed hsl(var(--line-strong));
  border-radius: 999px;
  font-size: 0.9375rem;
  color: hsl(var(--ink-faint));
}
.relacionados__mapa {
  margin: 0;
}
.relacionados__quadro {
  position: relative;
  /* espaço reservado para o atalho, que fica no canto do desenho */
  padding-bottom: 2.5rem;
}
/* Era um link sublinhado dizendo "Mapa completo". Virou botão porque é o que
   ele sempre foi: a saída daquele quadro para o quadro inteiro. O ícone é o
   mesmo objeto que gira na barra do topo — quem já clicou lá reconhece o destino
   antes de ler o rótulo, e o rótulo continua lá para quem não clicou. */
.relacionados__atalho {
  position: absolute;
  right: 0.625rem;
  bottom: 0.625rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0 0.875rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--accent));
  text-decoration: none;
  border: 1px solid hsl(var(--accent) / 0.45);
  border-radius: 999px;
  background: hsl(var(--bg) / 0.82);
  backdrop-filter: blur(6px);
  transition: background-color 0.15s ease, border-color 0.15s ease;
}
.relacionados__atalho:hover,
.relacionados__atalho:focus-visible {
  border-color: hsl(var(--accent));
  background: hsl(var(--accent) / 0.14);
}
/* A legenda mostra a marca ao lado do que ela significa, em vez de descrevê-la.
   Amostra do traço resolve na hora o que uma frase obriga a conferir no quadro. */
.legenda {
  margin-top: 1.875rem;
}
.legenda ul {
  list-style: none;
  margin: 0.625rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.625rem;
}
.legenda li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.35;
  color: hsl(var(--ink-faint));
}
.legenda__marca {
  flex: 0 0 auto;
  width: 30px;
  height: 12px;
}
/* mesmas formas do desenho, um pouco mais opacas: a 30px de largura o traço
   precisa se afirmar, senão a amostra vira sujeira na página */
.legenda__cheia {
  fill: none;
  stroke: hsl(var(--traco) / 0.85);
  stroke-width: 1.4;
}
.legenda__tracejada {
  fill: none;
  stroke: hsl(var(--ink-muted) / 0.9);
  stroke-width: 1.4;
  stroke-dasharray: 7 4;
}
.legenda__pontilhada {
  fill: none;
  stroke: hsl(var(--ink-muted) / 0.9);
  stroke-width: 1.4;
  stroke-dasharray: 0 5;
  stroke-linecap: round;
}
.legenda__no { fill: hsl(var(--traco)); }
/* o anel do conceito, na mesma amostra: a diferença é o preenchimento, não a cor */
.legenda__vazado {
  fill: none;
  stroke: hsl(var(--traco));
  stroke-width: 1.6;
}

/* ---------------------------------------------------------------- *
 * A chave, na página Sobre
 *
 * A mesma amostra da legenda do mapa, aqui como prova do parágrafo que acabou
 * de ser lido: em vez de afirmar que nada depende de matiz, mostra as três
 * distinções que carregam a informação. Texto de verdade, não imagem — os SVGs
 * são a amostra e ficam `aria-hidden`, porque o significado está na frase ao
 * lado, que é lida de qualquer jeito.
 * ---------------------------------------------------------------- */

.chave {
  margin: 1.75rem 0 0;
  padding: 1.25rem 1.5rem;
  border: 1px solid hsl(var(--line));
  border-radius: 0.75rem;
  background: hsl(var(--bg-raised) / 0.5);
  max-inline-size: 40rem;
}
.chave ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.875rem;
}
.chave li {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: hsl(var(--ink-muted));
}
/* a amostra alinha pela primeira linha do texto, não pelo centro do bloco:
   com duas linhas de rótulo o alinhamento central joga o desenho para o meio */
.chave .legenda__marca {
  position: relative;
  top: 0.15rem;
}
.chave b {
  color: hsl(var(--ink));
  font-weight: 600;
}
.chave figcaption {
  margin-top: 1.125rem;
  padding-top: 1rem;
  border-top: 1px solid hsl(var(--line));
  font-size: 0.875rem;
  line-height: 1.55;
  color: hsl(var(--ink-faint));
}

/* ---------------------------------------------------------------- *
 * Constelação — a vizinhança de um conceito, desenhada
 *
 * Mesma paleta e mesma gramática do mapa: cheio é estrutura do cérebro,
 * vazado é conceito, o tamanho conta as ligações. Nenhum estado depende de
 * distinguir cor — o que muda entre um tipo e outro é a forma.
 * ---------------------------------------------------------------- */

.cnst {
  display: block;
  width: 100%;
  height: auto;
  /* os rótulos podem encostar na borda do viewBox; deixá-los vazar é melhor
     que espremer o anel e empilhar os nós */
  overflow: visible;
}
.cnst__aresta {
  fill: none;
  stroke: hsl(var(--traco) / 0.42);
  stroke-width: 1;
  transition: stroke 0.18s ease, stroke-width 0.18s ease;
}
/* a ligação que é ponte minha, e não medida no fenômeno: pontilhada, como no
   mapa. O hover muda cor e espessura e o pontilhado fica, porque realçar uma
   ligação não muda o que ela é.
   O traço de comprimento zero com ponta redonda desenha um ponto de verdade — é
   essa forma, e não o ritmo, que separa a ponte do tracejado da vizinhança. */
.cnst__aresta--ponte {
  stroke-dasharray: 0 5;
  stroke-linecap: round;
}
/* as ligações entre os próprios vizinhos: tracejadas, porque não passam pelo
   conceito que está sendo lido — são a costura do bairro, não do centro */
.cnst__lado {
  fill: none;
  stroke: hsl(var(--ink-faint) / 0.45);
  stroke-width: 1;
  /* traço longo e de ponta reta, o oposto do ponto redondo da ponte */
  stroke-dasharray: 7 4;
  transition: stroke 0.18s ease, stroke-width 0.18s ease;
}
.cnst__halo-dentro { stop-color: hsl(var(--traco)); stop-opacity: 0.3; }
.cnst__halo-fora { stop-color: hsl(var(--traco)); stop-opacity: 0; }
.cnst__brilho { fill: url(#cnst-halo); }
.cnst__no--estrutura { fill: hsl(var(--traco)); }
.cnst__no--conceito {
  fill: hsl(var(--bg));
  stroke: hsl(var(--ink-muted));
  stroke-width: 1.8;
  transition: stroke 0.18s ease;
}
.cnst__no--centro { fill: hsl(var(--traco)); }
/* o anel extra marca o "você está aqui" por forma, não por cor */
.cnst__anel {
  fill: none;
  stroke: hsl(var(--traco) / 0.75);
  stroke-width: 1.5;
}
.cnst__etiqueta {
  /* Unidade do viewBox, não pixel: o valor é multiplicado pela escala com que o
     SVG é desenhado. Numa coluna de 640px a escala é 1,78, então 9 vira 16px;
     no celular, onde a escala fica em torno de 1, o valor cheio é o que mantém
     o rótulo legível. Um número só para os dois casos dava 21px de um lado ou
     11px do outro. */
  font-size: 12px;
  fill: hsl(var(--ink-muted));
  text-anchor: middle;
  /* contorno na cor do fundo: o rótulo passa por cima das arestas sem que
     seja preciso medir texto para desenhar uma placa atrás dele */
  paint-order: stroke;
  stroke: hsl(var(--bg));
  stroke-width: 3px;
  stroke-linejoin: round;
  transition: fill 0.18s ease;
}
.cnst__alvo { fill: transparent; }
.cnst__raio { cursor: pointer; }

/* A sinapse percorre a aresta do meio para fora. Uma keyframe só serve todas as
   arestas porque o deslocamento vem de variável — cada círculo traz o seu. */
.cnst__sinapse {
  fill: hsl(var(--traco));
  animation: cnst-sinapse 2.4s linear infinite;
}
@keyframes cnst-sinapse {
  0% { transform: translate(0, 0); opacity: 0; }
  12% { opacity: 0.95; }
  78% { opacity: 0.95; }
  100% { transform: translate(var(--dx), var(--dy)); opacity: 0; }
}

/* Propagação: passar o ponteiro num nó acende a aresta que vem do meio E os
   tracejados que saem dele para os outros vizinhos — um salto adiante, que é o
   que a constelação tem de alcance. `--aceso` é a mesma coisa disparada pelo
   chip correspondente, para lista e desenho responderem um ao outro. */
.cnst__raio:hover .cnst__aresta,
.cnst__raio--aceso .cnst__aresta {
  stroke: hsl(var(--accent) / 0.95);
  stroke-width: 2.4;
}
.cnst__raio:hover .cnst__etiqueta,
.cnst__raio--aceso .cnst__etiqueta { fill: hsl(var(--accent)); }
.cnst__raio:hover .cnst__no--conceito,
.cnst__raio--aceso .cnst__no--conceito { stroke: hsl(var(--accent)); }
.cnst__raio:hover .cnst__sinapse,
.cnst__raio--aceso .cnst__sinapse {
  r: 3.4;
  animation-duration: 1.1s;
}
.cnst__lado--aceso {
  stroke: hsl(var(--accent) / 0.9);
  stroke-width: 1.8;
}
/* uma estrutura ainda sem seção própria em Fundamentos: aparece no desenho,
   porque a ligação existe, mas não promete um destino que não há */
.cnst__raio--sem-destino { cursor: default; }
.cnst__raio--sem-destino .cnst__etiqueta { fill: hsl(var(--ink-faint)); }
.cnst__raio--sem-destino .cnst__alvo { display: none; }
@media (min-width: 60rem) {
  .cnst__etiqueta { font-size: 9px; }
}
/* Movimento ambiente cala; resposta a gesto continua. A sinapse é ambiente — some.
   O acender no hover é resposta ao ponteiro, e some seria tirar o retorno de quem
   está apontando para alguma coisa. */
@media (prefers-reduced-motion: reduce) {
  .cnst__sinapse { display: none; }
  .cnst__aresta,
  .cnst__lado,
  .cnst__etiqueta,
  .cnst__no--conceito { transition: none; }
}

.relacionados__lista ul {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}
.relacionados__lista a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0 0.875rem;
  /* SC 1.4.11, mesma razão do .filtro: a pílula é identificada pela borda */
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  font-size: 0.9375rem;
  text-decoration: none;
  color: hsl(var(--ink-muted));
  transition: border-color 0.15s ease, color 0.15s ease;
}
.relacionados__lista a:hover {
  border-color: hsl(var(--accent));
  color: hsl(var(--accent));
}

/* ---------------------------------------------------------------- *
 * Demonstrações — geometria de interface, nunca ilustração
 * ---------------------------------------------------------------- */

.demo {
  margin: 2.5rem 0 0;
  border: 1px solid hsl(var(--line));
  border-radius: 0.75rem;
  background: hsl(var(--bg-raised) / 0.6);
  overflow: hidden;
  max-width: 44rem;
}

/* O cabeçalho responde, nesta ordem: o que é isto · o que eu faço.
   O pé responde a terceira: o que isso quis dizer. Quem chega sem contexto
   precisa das três, e nenhuma delas pode assumir vocabulário técnico. */
.demo__cabeca {
  display: grid;
  gap: 0.5rem;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid hsl(var(--line));
}
.demo__titulo {
  font-size: clamp(1.125rem, 1rem + 0.6vw, 1.375rem);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: hsl(var(--ink));
  line-height: 1.25;
}
.demo__como {
  font-size: 1rem;
  line-height: 1.6;
  color: hsl(var(--ink-muted));
  max-width: 46rem;
}

.demo__palco {
  padding: 1.5rem 1.25rem;
}

.demo__pe {
  padding: 0.875rem 1.25rem;
  border-top: 1px solid hsl(var(--line));
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
  line-height: 1.5;
}

.demo__controles {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.controle {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
}
.controle output {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-variant-numeric: tabular-nums;
  color: hsl(var(--ink));
  min-width: 3.5ch;
}

input[type='range'] {
  accent-color: hsl(var(--accent));
  width: 9rem;
  height: 24px;
}

.leitura {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  margin-top: 1.25rem;
  padding-top: 1.125rem;
  border-top: 1px dashed hsl(var(--line));
}
.leitura div {
  display: grid;
  gap: 0.25rem;
}
.leitura dt,
.leitura__rotulo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}
.leitura dd,
.leitura__valor {
  margin: 0;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 1.25rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: hsl(var(--ink));
}

.alvo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: hsl(var(--accent));
  color: hsl(var(--accent-ink));
  border: 0;
  border-radius: var(--radius);
  font-weight: 600;
  cursor: pointer;
  font-family: 'Geist Mono', ui-monospace, monospace;
}

.pista {
  position: relative;
  height: 7.5rem;
  border: 1px dashed hsl(var(--line));
  border-radius: var(--radius);
  background: hsl(var(--bg) / 0.5);
  overflow: hidden;
}

.opcoes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.opcao {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 0.875rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: var(--radius);
  background: none;
  font-size: 0.9375rem;
  cursor: pointer;
}
.opcao:hover {
  border-color: hsl(var(--accent));
}

.digitos {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: clamp(1.125rem, 1rem + 1.2vw, 1.75rem);
  letter-spacing: 0.08em;
  font-variant-numeric: tabular-nums;
  color: hsl(var(--ink));
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.digitos--corrido {
  gap: 0;
}

.pontos {
  display: grid;
  justify-content: start;
  gap: var(--gap-y, 0.75rem) var(--gap-x, 0.75rem);
  grid-template-columns: repeat(8, 1rem);
}
.ponto {
  width: 1rem;
  height: 1rem;
  border-radius: 999px;
  background: hsl(var(--ink-faint));
}
.ponto--forma {
  border-radius: 2px;
}
.ponto--alvo {
  background: hsl(var(--accent));
}

.regioes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.regiao {
  display: grid;
  gap: 0.5rem;
  padding: 0.75rem;
  border-radius: var(--radius);
}
.regiao--marcada {
  border: 1px solid hsl(var(--line-strong));
  background: hsl(var(--bg) / 0.6);
}
.regiao__titulo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}
.regiao__itens {
  display: flex;
  gap: 0.5rem;
}
.barra {
  width: 3.25rem;
  height: 0.5rem;
  border-radius: 2px;
  background: hsl(var(--line-strong));
}

.grade-itens {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(4.5rem, 1fr));
  gap: 0.5rem;
}
.item-grade {
  height: 3rem;
  border-radius: var(--radius);
  border: 1px solid hsl(var(--line-strong));
  display: grid;
  place-items: center;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
}
/* o item destacado difere em cor E em forma — daltonismo não pode perder o efeito */
.item-grade--destaque {
  background: hsl(var(--accent));
  border-color: hsl(var(--accent));
  border-radius: 999px;
  color: hsl(var(--accent-ink));
  font-weight: 600;
}

.precos {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.preco {
  flex: 1 1 8rem;
  padding: 1rem;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  display: grid;
  gap: 0.375rem;
}
.preco--ancora {
  border-style: dashed;
  color: hsl(var(--ink-faint));
}
.preco--alvo {
  border-color: hsl(var(--accent));
}
.preco__valor {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 1.375rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.preco--ancora .preco__valor {
  text-decoration: line-through;
}
.preco__nome {
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
}


.amostra {
  padding: 1rem;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  background: hsl(var(--bg) / 0.6);
  text-wrap: pretty;
}

figure.grafico {
  margin: 0;
}
figure.grafico svg {
  width: 100%;
  height: auto;
  display: block;
  overflow: visible;
}
.grafico__eixo {
  stroke: hsl(var(--line-strong));
  stroke-width: 1;
}
.grafico__grade {
  stroke: hsl(var(--line));
  stroke-width: 1;
}
.grafico__linha {
  fill: none;
  stroke: hsl(var(--accent));
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* trecho comum aos dois grupos: neutro e mais grosso, para ficar claro que
   não é uma série concorrente e sim o percurso que ambos percorreram */
.grafico__linha--comum {
  stroke: hsl(var(--line-strong));
  stroke-width: 2.5;
}
.grafico__corte {
  stroke: hsl(var(--line-strong));
  stroke-width: 1;
  stroke-dasharray: 3 4;
}
.grafico__rotulo {
  fill: hsl(var(--ink-faint));
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 11px;
}
.grafico__ponto {
  fill: hsl(var(--accent));
}

/* ---------------------------------------------------------------- *
 * Pranchas anatômicas
 * ---------------------------------------------------------------- */

.prancha {
  margin: 2.5rem 0 0;
  max-width: 46rem;
  border: 1px solid hsl(var(--line));
  border-radius: 0.75rem;
  overflow: hidden;
  background: hsl(var(--bg-raised) / 0.6);
}
.prancha__moldura {
  background: hsl(var(--plate));
  padding: 1.5rem;
  display: grid;
  place-items: center;
}
/* `height: auto`, e não `width: auto`. Com os atributos `width`/`height` no HTML,
   é `height: auto` que faz o navegador derivar o aspect-ratio e RESERVAR o espaço
   antes de a imagem carregar. Com `width: auto` a altura só existe depois do
   carregamento, e o efeito colateral aparecia longe daqui: no glossário, saltar
   para a letra V rolava até a posição calculada sem as imagens, e as 17 pranchas
   acima ganhavam altura logo depois, empurrando o alvo para fora da tela. */
.prancha__moldura img {
  display: block;
  max-width: 100%;
  height: auto;
  max-height: 32rem;
  mix-blend-mode: multiply;
}
.prancha figcaption {
  padding: 1rem 1.25rem;
  border-top: 1px solid hsl(var(--line));
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
  line-height: 1.55;
}
.prancha figcaption b {
  color: hsl(var(--ink));
  font-weight: 600;
  font-size: 0.9375rem;
}
/* a chave: o percurso em português, na ordem em que ele acontece */
.prancha__chave {
  display: inline-block;
  margin-top: 0.5rem;
  color: hsl(var(--ink-muted));
}
.prancha__credito {
  display: inline-block;
  margin-top: 0.625rem;
  padding-top: 0.625rem;
  border-top: 1px solid hsl(var(--line));
  width: 100%;
}
.prancha figcaption a {
  color: hsl(var(--ink-muted));
  text-underline-offset: 3px;
}

/* ---------------------------------------------------------------- *
 * Capítulo de fundamentos
 * ---------------------------------------------------------------- */

.capitulo__secao {
  padding-block: 2.75rem;
  border-top: 1px solid hsl(var(--line));
}
/* O h3 é a mesma coisa visualmente e existe pela árvore, não pelo desenho: na
 * página de métodos as seções são netas de um cabeçalho de grupo, e rebaixar o
 * nível é o que permite navegar por cabeçalhos sem perder a divisão em três. */
.capitulo__secao h2,
.capitulo__secao h3 {
  font-size: 1.625rem;
  margin-bottom: 1.25rem;
}
.capitulo__secao--sintese {
  border-top-width: 2px;
  border-top-color: hsl(var(--line-strong));
}

/* ---------------------------------------------------------------- *
 * Métodos
 * ---------------------------------------------------------------- */

.metodo {
  padding-block: 2.5rem;
  border-top: 1px solid hsl(var(--line));
  display: grid;
  gap: 1.25rem;
}
@media (min-width: 56rem) {
  .metodo {
    grid-template-columns: 14rem 1fr;
    gap: 2.5rem;
  }
}
.metodo__id {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.metodo__sigla {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 1.125rem;
  font-weight: 600;
  color: hsl(var(--accent));
}
.metodo__mede {
  font-size: 0.9375rem;
  color: hsl(var(--ink-faint));
  line-height: 1.5;
}
.metodo__corpo p {
  font-size: 1.0625rem;
  line-height: 1.7;
  color: hsl(var(--ink-muted));
  max-width: var(--prosa);
}
.metodo__saldo {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.5rem;
  max-width: var(--prosa);
}
@media (min-width: 40rem) {
  .metodo__saldo {
    grid-template-columns: 1fr 1fr;
  }
}
.saldo {
  padding: 0.875rem 1rem;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
  line-height: 1.5;
}
.saldo b {
  display: block;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--ink-faint));
  margin-bottom: 0.375rem;
}
.saldo--forca {
  border-left: 2px solid hsl(var(--line-strong));
}
.saldo--limite {
  border-left: 2px solid hsl(var(--accent));
}

/* Separador dos três grupos da página de métodos.
 *
 * A página passou a ter blocos de custo muito diferente na mesma rolagem — um
 * aparelho de ressonância e um formulário de seis escalas. Sem uma parada entre
 * eles a leitura achata tudo no mesmo nível, e o leitor não percebe que a partir
 * dali o assunto é o que ele mesmo consegue fazer. A borda superior grossa é a
 * marca dessa mudança de patamar; o `.metodo` seguinte perde a dele para as duas
 * linhas não se somarem. */
/* O passo de execução só existe no segundo grupo: é o que separa saber que o
 * método existe de conseguir rodá-lo na terça-feira. */
.metodo__como {
  margin-top: 1.25rem;
  padding: 0.875rem 1rem;
  border: 1px dashed hsl(var(--line-strong));
  border-radius: var(--radius);
  max-width: var(--prosa);
  font-size: 0.9375rem !important;
  line-height: 1.55 !important;
}
.metodo__como b {
  display: block;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--ink-faint));
  margin-bottom: 0.375rem;
}

/* ---------------------------------------------------------------- *
 * Ética
 * ---------------------------------------------------------------- */

/* Sem rolagem própria em tela larga — e essa é a condição para o cabeçalho da
 * matriz grudar no topo da PÁGINA.
 *
 * Antes daqui houve uma tentativa com `overflow: auto` e altura máxima: o
 * cabeçalho passou a grudar, mas no topo da caixa, e a tabela ganhou uma barra de
 * rolagem interna que ninguém pediu. A causa é que qualquer `overflow` diferente
 * de `visible` cria um contexto de rolagem, e um `position: sticky` lá dentro se
 * ancora nele em vez de na janela.
 *
 * A matriz mede 899px e o shell tem 1088px: em tela larga ela cabe inteira. A
 * rolagem horizontal volta abaixo de 64rem, onde é inevitável — e ali o cabeçalho
 * deixa de grudar, o que é o preço aceitável numa tela em que a tabela já é
 * arrastada de lado. */
.tabela-envelope {
  border: 1px solid hsl(var(--line));
  border-radius: 0.75rem;
}

@media (max-width: 63.999rem) {
  .tabela-envelope { overflow-x: auto; }
}
table {
  width: 100%;
  min-width: 46rem;
  border-collapse: collapse;
  font-size: 0.9375rem;
  text-align: left;
}
thead th {
  padding: 0.875rem 1.25rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(var(--ink-faint));
  border-bottom: 1px solid hsl(var(--line));
  vertical-align: bottom;
}
tbody td,
tbody th {
  padding: 1.125rem 1.25rem;
  border-bottom: 1px solid hsl(var(--line));
  vertical-align: top;
  line-height: 1.55;
  color: hsl(var(--ink-muted));
  font-weight: 400;
}
tbody tr:last-child td,
tbody tr:last-child th {
  border-bottom: 0;
}
tbody th {
  color: hsl(var(--ink));
  font-weight: 600;
  white-space: nowrap;
}
tbody th a {
  text-decoration-color: hsl(var(--line-strong));
  text-underline-offset: 3px;
}
.celula-risco {
  border-left: 2px solid hsl(var(--line-strong));
}
.celula-pratica {
  border-left: 2px solid hsl(var(--accent));
}

.fechamento {
  margin-top: 3.5rem;
  padding: clamp(1.5rem, 4vw, 2.5rem);
  border: 1px solid hsl(var(--accent) / 0.45);
  border-radius: 0.75rem;
  background: hsl(var(--accent) / 0.05);
}
.fechamento p {
  max-width: 44rem;
  font-size: clamp(1.0625rem, 1rem + 0.4vw, 1.1875rem);
  line-height: 1.65;
  color: hsl(var(--ink));
}

/* ---------------------------------------------------------------- *
 * Playbook
 * ---------------------------------------------------------------- */

.provocacao {
  padding-block: 2rem;
  border-top: 1px solid hsl(var(--line));
  display: grid;
  gap: 1rem;
}
@media (min-width: 56rem) {
  .provocacao {
    grid-template-columns: 1fr 1fr;
    gap: 1.75rem 2.5rem;
  }
}
.provocacao__pergunta {
  font-size: 1.125rem;
  line-height: 1.5;
  color: hsl(var(--ink));
  text-wrap: pretty;
}
.provocacao h3 {
  margin-bottom: 0.75rem;
}
.provocacao ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.625rem;
}
.provocacao li {
  position: relative;
  padding-left: 1.25rem;
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
  line-height: 1.5;
}
.provocacao li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6rem;
  width: 0.5rem;
  height: 1px;
  background: hsl(var(--line-strong));
}
.provocacao__rotulo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
  margin-bottom: 0.625rem;
}

/* ---------------------------------------------------------------- *
 * Referências e créditos
 * ---------------------------------------------------------------- */

.referencias {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1rem;
  max-width: 48rem;
}
.referencias li {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: hsl(var(--ink-muted));
  padding-left: 1.75rem;
  text-indent: -1.75rem;
}

.creditos {
  display: grid;
  gap: 1rem;
  max-width: 48rem;
}
.credito {
  padding: 1.125rem 1.25rem;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
  line-height: 1.55;
}
.credito b {
  color: hsl(var(--ink));
  font-weight: 600;
}
.credito a {
  color: hsl(var(--ink-muted));
  text-underline-offset: 3px;
}
.credito__licenca {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
  display: block;
  margin-top: 0.375rem;
}

/* ---------------------------------------------------------------- *
 * Blocos da revisão de público
 * ---------------------------------------------------------------- */


.metodo__pravoce {
  margin-bottom: 1.25rem;
  padding-left: 1rem;
  border-left: 2px solid hsl(var(--accent));
  color: hsl(var(--ink)) !important;
}

.abertura {
  margin-top: 0.5rem;
  max-width: 40rem;
  font-size: clamp(1.375rem, 1.1rem + 1.4vw, 2rem);
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: hsl(var(--ink));
  text-wrap: pretty;
}

/* No manifesto a peça das duas velocidades vem logo depois da frase de abertura.
   O vão precisa ser maior do que parece: a abertura é composta em 2rem, e 4,5rem
   abaixo dela dá pouco mais de uma entrelinha e meia — a caixa lia como parte da
   mesma frase em vez de ilustração dela. */
.artigo .rios {
  margin-top: clamp(4rem, 9vw, 7rem);
}

/* playbook: checklist + placar */
.placar {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  padding: 1.25rem 1.5rem;
  border: 1px solid hsl(var(--line));
  border-radius: 0.75rem;
  background: hsl(var(--bg-raised) / 0.6);
  position: sticky;
  top: 4.25rem;
  z-index: 20;
  backdrop-filter: blur(8px);
}
.placar__num {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 2.25rem;
  font-weight: 600;
  line-height: 1;
  color: hsl(var(--accent));
  min-width: 2ch;
  text-align: right;
}
.placar__rotulo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}
.placar__leitura {
  margin-top: 0.25rem;
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
  max-width: 34rem;
  line-height: 1.45;
}
.placar button {
  margin-left: auto;
}

.checklist {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.25rem;
}
.check {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  min-height: 44px;
  padding: 0.5rem 0.625rem 0.5rem 0;
  border-radius: var(--radius);
  cursor: pointer;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: hsl(var(--ink-muted));
}
.check:hover {
  color: hsl(var(--ink));
}
.check input {
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: 0.15rem;
  accent-color: hsl(var(--accent));
  cursor: pointer;
}
.check input:checked + span {
  color: hsl(var(--ink));
}

/* ---------------------------------------------------------------- *
 * Fontes e referências de apoio
 * ---------------------------------------------------------------- */

.fontes {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid hsl(var(--line));
  max-width: 44rem;
}
.fontes__citacao {
  margin-top: 1rem;
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
}
.fontes__citacao b {
  color: hsl(var(--ink));
  font-weight: 600;
}
.fontes__lista {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}
.fontes__lista li {
  padding-left: 1.75rem;
  text-indent: -1.75rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: hsl(var(--ink-muted));
}
.fontes__externo {
  margin-top: 1.25rem;
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
}
.fontes__externo a {
  color: hsl(var(--accent));
  text-underline-offset: 3px;
}
.fontes__casa {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
  margin-left: 0.5rem;
}
.fontes__todas {
  margin-top: 1.25rem;
  font-size: 0.9375rem;
}
.fontes__todas a {
  color: hsl(var(--ink-muted));
  text-underline-offset: 3px;
}
.fontes__todas a:hover {
  color: hsl(var(--accent));
}

/* "como ter certeza": caminhos para dentro do material, a partir do playbook.
   Atravessa as duas colunas — espremido na direita, as pílulas quebravam e o
   bloco parecia sobra de layout em vez de saída deliberada. */
.aprofundar {
  grid-column: 1 / -1;
  padding-top: 1.25rem;
  border-top: 1px dashed hsl(var(--line));
}
.aprofundar ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.aprofundar li::before {
  content: none;
}
.aprofundar li {
  padding: 0;
}
.aprofundar a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 0.75rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  font-size: 0.875rem;
  text-decoration: none;
  color: hsl(var(--ink-muted));
  transition: border-color 0.15s ease, color 0.15s ease;
}
.aprofundar a:hover {
  border-color: hsl(var(--accent));
  color: hsl(var(--accent));
}

/* a checklist herda o traço decorativo de .provocacao li — que ali marca item de
   lista, mas aqui competiria com a própria caixa de seleção */
.checklist li {
  padding-left: 0;
}
.checklist li::before {
  content: none;
}

/* aviso de idioma: o leitor precisa saber que vai cair no inglês ANTES do clique */
.fontes__idioma {
  display: inline-flex;
  align-items: center;
  margin-left: 0.375rem;
  padding: 0 0.5rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}
.fontes__ressalva {
  margin-top: 0.5rem;
  padding-left: 0.875rem;
  border-left: 2px solid hsl(var(--line-strong));
  font-size: 0.875rem;
  line-height: 1.5;
  color: hsl(var(--ink-faint));
  max-width: 40rem;
}

/* ---------------------------------------------------------------- *
 * O objeto do hero
 * ---------------------------------------------------------------- */

.heroi__objeto {
  /* no celular o objeto vem ANTES do texto: é o polegar que manipula, e ele
     alcança o topo da tela com folga — embaixo, ficaria fora do primeiro olhar */
  order: -1;
  justify-self: center;
  width: min(100%, 19rem);
  aspect-ratio: 1;
}
.heroi__objeto canvas {
  display: block;
  width: 100%;
  height: 100%;
}
@media (min-width: 64rem) {
  .heroi__objeto {
    order: 0;
    width: 100%;
    max-width: 36rem;
    margin-inline-start: auto;
  }
}
/* sem JavaScript o canvas fica um quadrado vazio ocupando espaço à toa */
.no-js .heroi__objeto {
  display: none;
}

/* Capa no celular e no tablet: sem coluna para o objeto, o texto fica no eixo
   central, por baixo do cérebro, e o título ganha piso maior — o clamp de cima
   dava 39px em 390px, corpo de subtítulo para a palavra que dá nome ao site;
   o piso de 3,25rem (52px) veio de pedido dele, depois de ver 44px no aparelho.
   Abaixo de 40rem os dois botões ocupam a largura toda, um sobre o outro, e o
   cérebro encolhe para os dois caberem na primeira tela. */
@media (max-width: 63.999rem) {
  .heroi__texto {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .heroi__titulo { font-size: clamp(3.25rem, 1rem + 6vw, 5rem); }
  .heroi__palavra { justify-items: center; }
  .heroi__tese { margin-inline: auto; }
  .heroi__acoes { justify-content: center; inline-size: 100%; }
}
@media (max-width: 40rem) {
  .heroi__objeto { width: min(100%, 15.5rem); }
  .heroi__acoes .btn { flex: 1 1 100%; }
}

/* o objeto é manipulável: o gesto de girar não pode virar rolagem da página */
.heroi__objeto canvas {
  touch-action: none;
  cursor: grab;
}
.heroi__objeto canvas:active {
  cursor: grabbing;
}
.heroi__dica {
  margin-top: 0.5rem;
  text-align: center;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}


/* menção ao protocolo: uma linha, depois de tudo — não é seção, é assinatura */
.rodape__nota {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid hsl(var(--line));
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}
.rodape__nota a {
  color: hsl(var(--ink-muted));
  text-underline-offset: 3px;
}
.rodape__nota a:hover {
  color: hsl(var(--accent));
}

/* ---------------------------------------------------------------- *
 * Demonstração de carga cognitiva
 *
 * As duas condições têm o MESMO número de peças e o mesmo número de alvos.
 * O que muda é a variação sem significado: cor e enfeite. Por isso a cor aqui
 * é deliberadamente ruído — é o único lugar do site onde ela não deve
 * comunicar nada, e é esse o ponto da demonstração.
 * ---------------------------------------------------------------- */

.carga {
  display: grid;
  gap: 1.25rem;
}
.carga__topo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}
.carga__instrucao {
  flex: 1 1 18rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: hsl(var(--ink-muted));
}
.carga__instrucao b {
  color: hsl(var(--ink));
  font-weight: 600;
}
.carga__botao {
  min-height: 44px;
  padding: 0 1.125rem;
}

.carga__placar {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  padding-bottom: 0.875rem;
  border-bottom: 1px dashed hsl(var(--line));
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}
.carga__placar [data-cronometro] {
  color: hsl(var(--ink));
  font-weight: 600;
}

/* 36 peças = 12 × 3 exatas na largura cheia; abaixo disso, acomoda sozinho.
   Peça maior porque a tarefa é clicar, e alvo apertado vira teste de mira. */
.carga__grade {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(58px, 1fr));
  gap: 0.625rem;
  min-height: 1px;
}
@media (min-width: 52rem) {
  .carga__grade {
    grid-template-columns: repeat(12, 1fr);
    gap: 0.75rem;
  }
}

/* estado inerte: mostra do que se trata sem pedir nada */
.carga__grade--previa .peca {
  background: hsl(var(--line-strong) / 0.35);
  cursor: default;
  pointer-events: none;
}

.peca {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 1;
  min-height: 52px;
  border: 0;
  padding: 0;
  cursor: pointer;
  background: hsl(var(--peca-cor, var(--ink-faint)));
  transition: opacity 0.15s ease;
}
.peca--circulo { border-radius: 999px; }
.peca--quadrado { border-radius: 3px; }
.peca--triangulo { clip-path: polygon(50% 4%, 96% 96%, 4% 96%); }
.peca--estrela {
  clip-path: polygon(50% 2%, 61% 37%, 98% 37%, 68% 59%, 79% 95%,
                     50% 73%, 21% 95%, 32% 59%, 2% 37%, 39% 37%);
}
.peca__enfeite {
  font-size: 1.125rem;
  line-height: 1;
  color: hsl(0 0% 12% / 0.75);
  pointer-events: none;
}
.peca:hover { opacity: 0.82; }
/* Peça já encontrada.
 *
 * Antes isto trocava o fundo para o coral. Trocar de MATIZ é a pior escolha
 * possível aqui: na rodada com enfeite a peça já tinha uma cor aleatória, e
 * distinguir "coral" de "vermelho-alaranjado qualquer" depende de visão de cores
 * normal. Quem tem daltonismo — o autor deste trabalho, inclusive — ficava sem
 * saber se já tinha clicado.
 *
 * Agora a peça apaga: queda forte de LUMINÂNCIA, que independe de matiz e
 * funciona para qualquer tipo de discromatopsia. Some do grupo sem sair do lugar
 * — remover do DOM reflowaria a grade e mudaria a tarefa no meio da rodada. */
.peca--achada {
  opacity: 0.14;
  cursor: default;
}
.peca--achada .peca__enfeite {
  opacity: 0;
}
.peca--errou { animation: tremer 0.28s ease; }
@keyframes tremer {
  25% { transform: translateX(-3px); }
  75% { transform: translateX(3px); }
}

.carga__saldo {
  display: grid;
  gap: 1rem;
  padding-top: 1.125rem;
  border-top: 1px dashed hsl(var(--line));
}
.carga__leitura {
  font-size: 1rem;
  line-height: 1.6;
  color: hsl(var(--ink));
  max-width: 42rem;
}
.carga__leitura b { font-weight: 600; }
.carga__nota {
  font-size: 0.875rem;
  line-height: 1.5;
  color: hsl(var(--ink-faint));
  max-width: 42rem;
}

/* demonstração que precisa de espaço rompe a medida de leitura da página */
.demo--largo {
  max-width: none;
}
.demo--largo .demo__pe,
.demo--largo .carga__leitura,
.demo--largo .carga__nota {
  max-width: 46rem;
}

/* fim de rodada: o número é a informação, então ele domina o bloco */
.carga__fim {
  display: grid;
  justify-items: center;
  gap: 0.375rem;
  padding: clamp(1.5rem, 4vw, 2.5rem) 1rem;
  text-align: center;
}
.carga__fim__rotulo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: hsl(var(--ink-faint));
}
.carga__fim__tempo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: clamp(2.75rem, 2rem + 4vw, 4.5rem);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.03em;
  color: hsl(var(--accent));
}
.carga__fim__erros {
  font-size: 1rem;
  color: hsl(var(--ink-muted));
}

/* resultado final: barras comparando as três condições.
   O comprimento carrega o dado; o nome fica ao lado, nunca só a cor. */
.escada {
  display: grid;
  gap: 0.875rem;
  padding-top: 0.5rem;
}
.escada__linha {
  display: grid;
  grid-template-columns: minmax(0, 11rem) minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem 1rem;
}
@media (max-width: 40rem) {
  .escada__linha {
    grid-template-columns: 1fr auto;
  }
  .escada__barra {
    grid-column: 1 / -1;
  }
}
.escada__nome {
  font-size: 0.9375rem;
  color: hsl(var(--ink));
  font-weight: 500;
}
.escada__barra {
  height: 0.75rem;
  border-radius: 999px;
  background: hsl(var(--line));
  overflow: hidden;
}
.escada__barra span {
  display: block;
  height: 100%;
  background: hsl(var(--accent));
  border-radius: 999px;
}
.escada__valor {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 1.0625rem;
  font-weight: 600;
  color: hsl(var(--ink));
}

/* ---------------------------------------------------------------- *
 * Lei de Tesler — até onde dá para tirar
 * ---------------------------------------------------------------- */

.tesler {
  display: grid;
  gap: 1.75rem;
  align-items: start;
}
@media (min-width: 56rem) {
  .tesler {
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    gap: 2.5rem;
  }
}

.tesler__frase {
  font-size: clamp(1.1875rem, 1rem + 1.1vw, 1.875rem);
  line-height: 1.7;
  color: hsl(var(--ink));
}
.fatia {
  border: 0;
  background: none;
  padding: 0.15em 0.25em;
  margin: 0 -0.1em;
  border-radius: 4px;
  font: inherit;
  color: inherit;
  cursor: pointer;
  transition: background-color 0.12s ease, opacity 0.12s ease;
}
.fatia:hover {
  background: hsl(var(--accent) / 0.16);
}
/* removida: some por luminância e por risco, nunca só por cor */
.fatia--fora {
  opacity: 0.28;
  text-decoration: line-through;
  text-decoration-thickness: 2px;
}

.tesler__acoes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.625rem 0.875rem;
  margin-top: 1.75rem;
}
.tesler__contagem {
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}

/* semáforo de verdade: três luzes empilhadas, só a ativa acesa */
.semaforo {
  display: flex;
  gap: 1.25rem;
  align-items: center;
  padding: 1.5rem;
  border: 1px solid hsl(var(--line));
  border-radius: 0.75rem;
  background: hsl(var(--bg) / 0.6);
}
.semaforo__caixa {
  flex: none;
  display: grid;
  gap: 0.625rem;
  padding: 0.75rem 0.625rem;
  border-radius: 999px;
  background: hsl(var(--bg-raised));
  border: 1px solid hsl(var(--line));
}
.semaforo__luz {
  width: 26px;
  height: 26px;
  border-radius: 999px;
  opacity: 0.12;
}
.semaforo__luz--verde { background: hsl(142 52% 50%); }
.semaforo__luz--amarelo { background: hsl(43 74% 58%); }
.semaforo__luz--vermelho { background: hsl(0 62% 60%); }
/* Cada luz declara se está acesa, em vez de depender de um seletor descendente
   ancorado no estado do pai. Mais simples de depurar e imune a colisão de
   especificidade — que foi exatamente o que me custou tempo aqui. */
.semaforo__luz[data-ativo='true'] {
  opacity: 1;
}

/* o rótulo carrega o estado em palavra: a luz sozinha não serviria */
.semaforo__rotulo {
  font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: hsl(var(--ink));
}
.semaforo__texto {
  margin-top: 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: hsl(var(--ink-muted));
}

/* O estado da ação mora DENTRO do botão que a disparou — é onde a pessoa está
   olhando quando clica. Indicador solto embaixo cria um segundo lugar para
   procurar, que é justamente o custo que esta demonstração mede. */
.botao-espera {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0 1.25rem;
  min-width: 9.5rem;
  justify-content: center;
}
.botao-espera__giro {
  width: 15px;
  height: 15px;
  border-radius: 999px;
  border: 2px solid hsl(var(--accent-ink) / 0.3);
  border-top-color: hsl(var(--accent-ink));
  opacity: 0;
  flex: none;
}
.botao-espera[data-estado='esperando'] .botao-espera__giro {
  opacity: 1;
  animation: girar 0.7s linear infinite;
}
.botao-espera[data-estado='pronto'] .botao-espera__giro {
  opacity: 1;
  animation: none;
  border-color: hsl(var(--accent-ink));
  border-radius: 999px;
}
@keyframes girar {
  to { transform: rotate(360deg); }
}

/* ---------------------------------------------------------------- *
 * Demonstrações de escolha, exposição, controle e padrão
 * ---------------------------------------------------------------- */

.escolhas { display: grid; gap: 2rem; }
.escolha__pergunta {
  font-size: 1.0625rem;
  font-weight: 600;
  color: hsl(var(--ink));
  margin-bottom: 0.875rem;
}
.escolha__opcoes { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.opcao--larga {
  flex: 1 1 12rem;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  min-height: 76px;
  padding: 0.875rem 1.125rem;
  text-align: left;
}
.opcao--larga b {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 1.375rem;
  font-weight: 600;
  color: hsl(var(--ink));
}
.opcao--larga span { font-size: 0.9375rem; color: hsl(var(--ink-muted)); }
/* escolhida: preenchimento + borda, nunca só matiz */
.opcao--escolhida,
.opcao--escolhida b,
.opcao--escolhida span {
  color: hsl(var(--accent-ink));
}
.opcao--escolhida {
  background: hsl(var(--accent));
  border-color: hsl(var(--accent));
}
.opcao:disabled { opacity: 0.55; cursor: default; }
.opcao--escolhida:disabled { opacity: 1; }

.escolha__saldo { margin-top: 0.5rem; }
.escolha__leitura {
  padding-top: 1.25rem;
  border-top: 1px dashed hsl(var(--line));
  font-size: 1rem;
  line-height: 1.6;
  color: hsl(var(--ink));
  max-width: 46rem;
}
.escolha__leitura b { font-weight: 600; }

/* mera exposição */
.exposicao { display: grid; gap: 1.5rem; }
.exposicao__palco {
  min-height: 11rem;
  display: grid;
  place-items: center;
  border: 1px dashed hsl(var(--line));
  border-radius: var(--radius);
}
.exposicao__flash { display: grid; place-items: center; }
/* A carta do baralho. Naipe e valor bastam para identificá-la — a cor é
   redundante de propósito, porque ♦ e ♥ têm forma própria e quem não distingue
   matiz precisa continuar sabendo qual carta é qual. */
.carta {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.125rem;
  inline-size: 4.5rem;
  block-size: 6.5rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 0.5rem;
  background: hsl(var(--plate));
  color: hsl(0 0% 12%);
  font-family: 'Geist Mono', ui-monospace, monospace;
  line-height: 1;
  box-shadow: 0 2px 10px hsl(0 0% 0% / 0.22);
}
.carta--vermelha { color: hsl(354 62% 44%); }
.carta__valor { font-size: 1.5rem; font-weight: 600; }
.carta__naipe { font-size: 1.75rem; }

.exposicao__grade { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.exposicao__op {
  flex: 0 0 auto;
  padding: 0.5rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 0.75rem;
  background: none;
  cursor: pointer;
}
.exposicao__op .carta { inline-size: 3.75rem; block-size: 5.5rem; }
.exposicao__op .carta__valor { font-size: 1.25rem; }
.exposicao__op .carta__naipe { font-size: 1.4rem; }
.exposicao__op:hover { border-color: hsl(var(--accent)); }
.exposicao__op--escolhida { border-color: hsl(var(--accent)); border-width: 2px; }
.exposicao__op:disabled { cursor: default; }

/* ilusão de controle */

/* ilusão de agrupamento */
.nuvens { display: grid; gap: 0.875rem; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); }
.nuvem {
  display: grid;
  gap: 0.5rem;
  padding: 0.75rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 0.75rem;
  background: hsl(var(--bg) / 0.6);
  cursor: pointer;
}
.nuvem svg { width: 100%; aspect-ratio: 1; fill: hsl(var(--ink-muted)); }
.nuvem__rotulo { font-size: 0.875rem; color: hsl(var(--ink-faint)); }
.nuvem:hover { border-color: hsl(var(--accent)); }
.nuvem--escolhida { border-color: hsl(var(--accent)); border-width: 2px; }
.nuvem--escolhida svg { fill: hsl(var(--accent)); }
.nuvem:disabled { cursor: default; }

/* diagrama do flow: canal diagonal + ponto que segue os controles */
.flow {
  display: grid;
  gap: 1.75rem;
  align-items: center;
}
@media (min-width: 48rem) {
  .flow { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 2.25rem; }
}
.flow__grafico svg { max-width: 320px; margin-inline: auto; }
.flow__canal {
  fill: hsl(var(--accent) / 0.16);
  stroke: hsl(var(--accent) / 0.5);
  stroke-width: 1;
}
/* o nome da zona fica escrito dentro dela: a faixa não é a única pista */
.flow__zona { fill: hsl(var(--ink-faint)); }
.flow__canal-txt {
  fill: hsl(var(--accent));
  font-weight: 600;
  letter-spacing: 0.1em;
}
.flow__ponto {
  fill: hsl(var(--accent));
  stroke: hsl(var(--bg));
  stroke-width: 2.5;
}
.flow__controles { display: grid; gap: 1rem; justify-items: start; }
.flow__nota {
  font-size: 0.9375rem;
  line-height: 1.55;
  color: hsl(var(--ink-muted));
  max-width: 30rem;
}

/* gráficos que aparecem dentro de uma demonstração */
.grafico--medido, .grafico--fonte {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px dashed hsl(var(--line));
}
.grafico__titulo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: hsl(var(--ink-faint));
  margin-bottom: 0.875rem;
}
.grafico__nota {
  margin-top: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: hsl(var(--ink-faint));
  max-width: 40rem;
}
/* a reta/curva ajustada é previsão, não medição: fica pontilhada */
.grafico__linha--previsto {
  stroke: hsl(var(--accent) / 0.75);
  stroke-dasharray: 5 4;
  stroke-width: 2;
}

/* régua de contraste: os marcos são normativos, a agulha é a sua medição */
.regua { margin-top: 1.5rem; }
.regua__trilho {
  position: relative;
  height: 0.625rem;
  border-radius: 999px;
  background: hsl(var(--line));
  margin-bottom: 2rem;
}
.regua__marca {
  position: absolute;
  top: 100%;
  transform: translateX(-50%);
  padding-top: 0.5rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
  white-space: nowrap;
}
.regua__marca i {
  position: absolute;
  left: 50%;
  top: -0.625rem;
  width: 2px;
  height: 0.625rem;
  background: hsl(var(--line-strong));
}
.regua__agulha {
  position: absolute;
  top: -0.25rem;
  width: 4px;
  height: 1.125rem;
  border-radius: 2px;
  background: hsl(var(--accent));
  transform: translateX(-50%);
}
.regua__nota {
  font-size: 0.875rem;
  line-height: 1.5;
  color: hsl(var(--ink-faint));
  max-width: 40rem;
}

/* ---------------------------------------------------------------- *
 * Referência cruzada — termo no texto, definição no rodapé
 *
 * O termo marcado herda a cor do texto: o sinal é o sublinhado pontilhado,
 * não a cor (SC 1.4.1 — e o autor é daltônico, ver A11Y-DECISIONS). A cor
 * entra só no hover e no foco, como reforço, nunca como identificação.
 * ---------------------------------------------------------------- */

/* O termo é um <button> dentro do parágrafo, e precisa não parecer um botão:
   herda tudo da linha de texto e se anuncia só pelo sublinhado pontilhado. O
   que o distingue de um link comum é o traço — pontilhado abre definição,
   contínuo leva embora —, e a diferença sobrevive em escala de cinza. */
.termo {
  font: inherit;
  color: inherit;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  text-decoration: underline dotted;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
  transition: color 0.15s ease, text-decoration-color 0.15s ease;
}
.termo:hover {
  color: hsl(var(--accent));
  text-decoration-style: solid;
}
/* O navegador põe aria-expanded no botão que abre um popover; refletir isso em
   pintura é o que faz o estado ser visível para quem enxerga também. */
.termo[aria-expanded='true'] {
  color: hsl(var(--accent));
  text-decoration-style: solid;
}

/* ---------------------------------------------------------------- *
 * A definição, no lugar em que a dúvida aparece
 *
 * `popover` nativo: o navegador entrega Esc, clique fora, camada acima de tudo e
 * o vínculo entre botão e conteúdo sem uma linha de ARIA escrita à mão. O que o
 * CSS faz aqui é só desenhar a caixa e escolher onde ela abre.
 *
 * O posicionamento ancorado ainda não existe em todos os motores, então o padrão
 * é o que o popover nativo já faz — centro do viewport —, e a âncora entra sob
 * `@supports` onde houver. Centralizado não é degradação: é previsível, cabe no
 * celular e nunca sai da tela.
 * ---------------------------------------------------------------- */

.definicao {
  max-inline-size: min(26rem, calc(100vw - 2rem));
  padding: 1rem 1.125rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 0.75rem;
  background: hsl(var(--bg-raised));
  color: hsl(var(--ink-muted));
  box-shadow: 0 16px 40px hsl(0 0% 0% / 0.3);
  font-size: 0.9375rem;
  line-height: 1.55;
  text-align: start;
  /* o popover nasce com display:none; o :popover-open é quem o mostra */
  flex-direction: column;
  gap: 0.5rem;
}
.definicao__termo {
  font-weight: 600;
  color: hsl(var(--ink));
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
}
.definicao__curta {
  text-wrap: pretty;
}
.definicao__pe {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  padding-top: 0.5rem;
  border-top: 1px solid hsl(var(--line));
}
.definicao__ver {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-size: 0.875rem;
  color: hsl(var(--accent));
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.definicao__ver:hover {
  border-bottom-color: hsl(var(--accent));
}

/* Posicionada junto do termo por JavaScript, no evento `toggle` — ver
   `ancorarDefinicao` no app.js. O CSS anchor positioning resolveria isto sem
   script, mas exige um `anchor-name` distinto por termo: com um nome só, todas
   as definições da página disputariam a mesma âncora. Vinte linhas de JS custam
   menos que espalhar `style="anchor-name:…"` por cada palavra do texto.

   `margin: 0` porque o popover nativo vem centrado por margem automática; as
   coordenadas abaixo é que passam a mandar. */
.definicao:popover-open {
  display: flex;
  margin: 0;
  inset: auto;
  position: fixed;
  top: var(--def-y, 50%);
  left: var(--def-x, 50%);
}

/* ---------------------------------------------------------------- *
 * Página do glossário
 *
 * Termo à esquerda, definição à direita, como num verbete impresso — a coluna
 * de termos vira um índice que se varre de cima a baixo sem ler as definições,
 * que é como se usa um glossário quando já se sabe o que se procura.
 * ---------------------------------------------------------------- */

/* ---------------------------------------------------------------- *
 * Índice alfabético
 *
 * As letras vazias ficam à vista, apagadas: o desenho da fileira inteira diz de
 * relance onde o material é denso e onde é rarefeito, o que uma lista só com as
 * letras existentes não diz. São `<span>` e não botão desabilitado — ali não há
 * ação nenhuma a oferecer, e `aria-hidden` mantém a fileira curta no leitor de
 * tela, que ouve só as letras que levam a algum lugar.
 * ---------------------------------------------------------------- */

.indice {
  display: flex;
  flex-wrap: wrap;
  gap: 0.125rem;
  margin-bottom: 2rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid hsl(var(--line));
}
.indice__letra {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-inline-size: 44px;
  min-block-size: 44px;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.9375rem;
  border-radius: var(--radius);
  text-decoration: none;
  color: hsl(var(--accent));
  transition: background-color 0.15s ease, color 0.15s ease;
}
a.indice__letra:hover {
  background: hsl(var(--accent) / 0.12);
}
.indice__letra--vazia {
  color: hsl(var(--ink-faint) / 0.45);
}


/* O caminho até o estudo, no fim da entrada. Em mono e em caixa pequena para
   ler como etiqueta e não como continuação do título da obra. */
.ref__fonte {
  display: inline-block;
  /* Zerar o recuo é obrigatório, não cosmético. A entrada de bibliografia usa
     recuo francês (`text-indent: -1.75rem` em `.referencias li`), e text-indent
     é HERDADO: um inline-block dentro dela aplica o mesmo recuo negativo à
     própria primeira linha, e o rótulo do chip saía 1,75rem para a esquerda,
     por fora da borda que deveria contê-lo. A borda ficava vazia e a palavra
     pousava em cima do fim da referência. */
  text-indent: 0;
  margin-left: 0.375rem;
  padding: 0.0625rem 0.4375rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.75rem;
  color: hsl(var(--accent));
  border: 1px solid hsl(var(--line-strong));
  border-radius: 0.375rem;
  text-decoration: none;
  white-space: nowrap;
}
.ref__fonte:hover {
  border-color: hsl(var(--accent));
}

/* A cabeça de letra: o alvo do salto, e a pista de onde a pessoa caiu. Grande e
   em coral porque precisa ser achada com o olho correndo a página. */
.letra {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 1.25rem;
  font-weight: 600;
  color: hsl(var(--accent));
  margin-bottom: 0.5rem;
  scroll-margin-top: 5.5rem;
}
.verbetes__grupo + .verbetes__grupo,
.referencias__grupo + .referencias__grupo {
  margin-top: 2.5rem;
}

.verbetes {
  margin: 0;
  display: grid;
  gap: 0;
}
.verbete {
  padding-block: 1.5rem;
  border-bottom: 1px solid hsl(var(--line));
  scroll-margin-top: 5.5rem;
}
.verbete:first-child { border-top: 1px solid hsl(var(--line)); }
/* Chegou por link: marque onde.
 *
 * A regra existia só como `.verbete.salto-alvo`, então funcionava no glossário e
 * em nenhum outro lugar. O `?em=` leva a entradas de bibliografia, a seções e a
 * itens de lista — e em todos eles a classe era aplicada e nada acontecia: quem
 * clicava num autor caía numa página de 128 referências sem saber qual era a sua.
 *
 * A barra à esquerda vem do glossário e continua sendo a marca; o fundo é o que
 * torna a linha achável numa lista longa, onde uma barra fininha some. */
.salto-alvo {
  border-left: 3px solid hsl(var(--accent));
  padding-left: 0.875rem;
  margin-left: -1.125rem;
  background: hsl(var(--accent) / 0.08);
  border-radius: 0 0.25rem 0.25rem 0;
}

/* O realce foi desenhado para um verbete: um bloco curto, de uma coluna, em que
   0,875rem à esquerda e nada em volta bastam. Uma parte inteira de capítulo é
   outra coisa — duas colunas, prosa, blocos e rodapé —, e ali a mesma régua
   encosta no título em cima, no último link embaixo e no texto dos dois lados.
   A variante dá folga nos quatro lados e devolve o alinhamento com margem
   negativa: quem chega pela âncora vê a faixa abraçar a parte, e o texto não se
   mexe um pixel em relação às partes vizinhas. */
.grupo.salto-alvo {
  padding: 1.5rem 1.5rem 1.75rem 1.75rem;
  margin-inline: -1.75rem -1.5rem;
  border-radius: 0 0.375rem 0.375rem 0;
}
@media (max-width: 47.99rem) {
  .grupo.salto-alvo {
    padding: 1.25rem 1rem 1.5rem 1.25rem;
    margin-inline: -1.25rem -1rem;
  }
}

/* Numa lista, o item precisa respirar para o realce não encostar no vizinho. */
li.salto-alvo {
  padding-block: 0.5rem;
  margin-block: -0.5rem;
}

.verbete.salto-alvo {
  background: none;
}
/* O disclosure do verbete.
 *
 * `<details>` nativo, então o triângulo, o estado e o teclado vêm do navegador.
 * O que o CSS faz aqui é só trocar o marcador padrão por um que combine com o
 * resto e garantir o alvo de 44px — um `<summary>` sem altura mínima é um alvo
 * de 20px, que é menor que o piso declarado deste projeto. */
.verbete__abrir { margin-top: 0.75rem; }
.verbete__abrir > summary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding-right: 0.5rem;
  list-style: none;
  cursor: pointer;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
  letter-spacing: 0.02em;
  color: hsl(var(--accent));
}
.verbete__abrir > summary::-webkit-details-marker { display: none; }
/* O marcador é desenhado à mão para poder girar: um triângulo que aponta para o
   lado quando fechado e para baixo quando aberto. A rotação é a única coisa que
   muda — a forma diz o estado sem depender de cor nem de texto. */
.verbete__abrir > summary::before {
  content: '';
  inline-size: 0;
  block-size: 0;
  border-left: 6px solid currentColor;
  border-block: 4px solid transparent;
  transition: transform 0.15s ease;
}
.verbete__abrir[open] > summary::before { transform: rotate(90deg) translateX(1px); }
.verbete__abrir > summary:hover { text-decoration: underline; text-underline-offset: 0.25em; }
.verbete__abrir > summary:focus-visible {
  outline: 2px solid hsl(var(--accent));
  outline-offset: 3px;
  border-radius: 0.25rem;
}
.verbete__conteudo { padding-block: 0.5rem 0.25rem; }
.verbete__conteudo .prancha { margin-block: 0.5rem 1.25rem; }

/* Referência cruzada entre verbetes: sublinhado pontilhado, o mesmo que o termo
   de glossário usa no corpo do site — é a mesma promessa, e cumpri-la com dois
   desenhos diferentes ensinaria duas coisas onde há uma. */
.verbete__cruz {
  color: inherit;
  text-decoration: underline dotted;
  text-underline-offset: 0.2em;
  text-decoration-color: hsl(var(--accent) / 0.7);
}
.verbete__cruz:hover { color: hsl(var(--accent)); }

@media (prefers-reduced-motion: reduce) {
  .verbete__abrir > summary::before { transition: none; }
}

.verbete__termo {
  font-weight: 600;
  color: hsl(var(--ink));
  font-size: 1.0625rem;
  letter-spacing: -0.015em;
}
.verbete__corpo {
  margin: 0.5rem 0 0;
  color: hsl(var(--ink-muted));
  font-size: 0.9375rem;
  line-height: 1.6;
  max-width: var(--prosa);
}
.verbete__usos,
.verbete__pe {
  margin-top: 0.625rem;
  font-size: 0.875rem;
}
.verbete__usos a {
  color: hsl(var(--ink-muted));
  text-decoration-color: hsl(var(--line-strong));
  text-underline-offset: 3px;
}
.verbete__usos a:hover { color: hsl(var(--ink)); }
.verbete__mais {
  font-family: 'Geist Mono', ui-monospace, monospace;
  color: hsl(var(--ink-faint));
}
.verbete__ver {
  color: hsl(var(--accent));
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.verbete__ver:hover { border-bottom-color: hsl(var(--accent)); }
/* A dívida declarada, não escondida: quatro estruturas que nenhum capítulo
   explica. Fica em itálico e apagado — é nota de rodapé, não conteúdo. */

@media (min-width: 52rem) {
  .verbete {
    display: grid;
    grid-template-columns: 14rem 1fr;
    gap: 2rem;
    align-items: start;
  }
  .verbete__corpo { margin-top: 0; }
}

/* Caminho inverso: numa seção de Fundamentos, os conceitos que dependem dela. */
.reaparece {
  margin-top: 2rem;
  padding: 1.25rem 1.375rem;
  background: hsl(var(--bg-raised));
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  max-width: var(--prosa);
}
/* Nas partes de O cérebro este bloco é rodapé, não caixa: caixa com fundo e
   borda compete com o argumento que acabou de terminar, e o que está aqui é
   para onde ir depois. Sem fundo, sem moldura, régua fina em cima. */
.reaparece--rodape .eyebrow { margin-bottom: 0.75rem; }
.reaparece--rodape {
  margin-top: 1.75rem;
  padding: 1rem 0 0;
  background: none;
  border: 0;
  border-top: 1px solid hsl(var(--line));
  border-radius: 0;
  max-width: 46rem;
}
/* Os chips do rodapé de O corpo. Mesma pílula dos vizinhos de uma lei — alvo
   grande, texto em tamanho cheio, na ordem de tabulação. */
.reaparece__chips {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.reaparece__grupo + .reaparece__grupo {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid hsl(var(--line));
}
.reaparece__termo {
  margin: 0.75rem 0 0;
  font-size: 0.9375rem;
  font-weight: 600;
  color: hsl(var(--ink));
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.reaparece__conta {
  font-size: 0.8125rem;
  font-weight: 400;
  color: hsl(var(--ink-faint));
}
.reaparece ul {
  list-style: none;
  margin: 0.625rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.reaparece a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 0.75rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  font-size: 0.875rem;
  text-decoration: none;
  color: hsl(var(--ink-muted));
  transition: border-color 0.15s ease, color 0.15s ease;
}
.reaparece a:hover {
  border-color: hsl(var(--accent));
  color: hsl(var(--accent));
}

/* ---------------------------------------------------------------- *
 * Os cinco tempos da página de lei
 * ---------------------------------------------------------------- */

/* A resposta em uma linha, logo abaixo do enunciado.
 * Existe para atender quem chegou com um problema na mão sem que a ordem das
 * seções precise ser sacrificada por ele: a decisão está aqui, a formação está
 * abaixo. Não é resumo do artigo — é a única frase que alguém com pressa lê. */
.curto {
  max-width: var(--prosa);
  margin: 2rem 0 3rem;
  font-size: clamp(1.125rem, 1rem + 0.5vw, 1.3125rem);
  line-height: 1.5;
  font-weight: 500;
  color: hsl(var(--ink));
  text-wrap: pretty;
}

/* A demonstração virou uma estação como as outras: mesmo marcador, mesmo peso de
 * título, mesmo ritmo. Antes era um bloco solto no topo, e o efeito era o exercício
 * virar a página inteira, com o conteúdo lido como legenda dele. */

/* Marcador dos dois modos de falha.
 * A11Y: `risco` e `quebra` nunca aparecem juntos na mesma lei — cada uma tem um ou
 * outro, nunca os dois —, então a distinção entre eles nunca é pedida ao olho. O que
 * o marcador precisa separar é falha de não-falha, e isso vai por preenchimento
 * (cheio x vazado), não por matiz. O texto do título diz o resto. */

/* ---------------------------------------------------------------- *
 * Demonstrações da segunda rodada
 * ---------------------------------------------------------------- */

/* Similaridade — o espaçamento é fixo de propósito: é o que prova que o
 * agrupamento veio do atributo, e não da distância. */
.grade-sim {
  display: grid;
  grid-template-columns: repeat(var(--colunas, 8), 1.5rem);
  gap: 0.75rem;
  justify-content: start;
  align-items: center;
  padding: 0.5rem 0;
}
.sim {
  width: 1rem;
  height: 1rem;
  margin: 0 auto;
  border-radius: 999px;
  background: hsl(var(--ink-faint));
  transition: none;
}
.sim--cor { background: hsl(var(--accent)); }
.sim--forma { border-radius: 2px; }
.sim--grande { width: 1.5rem; height: 1.5rem; }

/* Conectividade uniforme */
.conect {
  position: relative;
  padding: 0.5rem 0 2.25rem;
}
.conect__fila {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.conect__ponto {
  width: 1rem;
  height: 1rem;
  border-radius: 999px;
  background: hsl(var(--ink-faint));
  flex: 0 0 auto;
}
.conect__ponto--ligado {
  background: hsl(var(--accent));
  box-shadow: 0 0 0 3px hsl(var(--accent) / 0.25);
}
.conect__vao { flex: 0 0 5rem; }
.conect__fio {
  position: absolute;
  left: 0;
  top: 0.5rem;
  width: 100%;
  max-width: 25rem;
  height: 4.5rem;
  overflow: visible;
}

/* Visibilidade */
.barras {
  display: grid;
  gap: 1.75rem;
}
.barra__rotulo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: hsl(var(--ink-faint));
  margin-bottom: 0.625rem;
}
.barra__menu { margin-top: 0.5rem; }
.barra__placar {
  margin-top: 0.75rem;
  font-size: 0.9375rem;
  color: hsl(var(--ink-muted));
}
/* Achado sinalizado por preenchimento e peso, nunca só por matiz. */
.opcao--achada {
  background: hsl(var(--accent));
  border-color: hsl(var(--accent));
  color: hsl(var(--accent-ink));
  font-weight: 600;
}

/* Navalha de Occam */
.occam {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}
.occam__item {
  display: grid;
  grid-template-columns: minmax(9rem, 12rem) 1fr auto;
  align-items: center;
  gap: 0.75rem 1rem;
  padding: 0.625rem 0.875rem;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
}
/* Removido some por opacidade E por risco no texto: quem não percebe a queda de
 * luminância ainda lê o traço. */
.occam__item--fora {
  opacity: 0.55;
}
.occam__item--fora .occam__nome {
  text-decoration: line-through;
}
.occam__nome {
  font-weight: 500;
  color: hsl(var(--ink));
  font-size: 0.9375rem;
}
.occam__porque {
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
  line-height: 1.5;
}
.occam__btn { justify-self: end; }
@media (max-width: 34rem) {
  .occam__item { grid-template-columns: 1fr auto; }
  .occam__porque { grid-column: 1 / -1; }
}

/* Lei de Jakob */
/* Lei de Jakob — um post de feed com as ações anônimas.
 *
 * O conteúdo do post é forma pura: barras no lugar do texto, um bloco no lugar da
 * imagem. Ele precisa ser reconhecível como post e ilegível como post — se
 * houvesse texto de verdade, a pessoa leria em vez de apontar, e o que se mede
 * aqui é para onde o dedo vai sozinho. */
.jakob { max-width: 26rem; }

.jakob__post {
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  background: hsl(var(--bg-raised));
  padding: 0.875rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.jakob__cabeca { display: flex; align-items: center; gap: 0.625rem; }
.jakob__avatar {
  inline-size: 2.25rem;
  block-size: 2.25rem;
  border-radius: 50%;
  background: hsl(var(--line-strong) / 0.5);
  flex: none;
}
.jakob__quem { display: flex; flex-direction: column; gap: 0.3rem; }
.jakob__quem b { inline-size: 6.5rem; block-size: 0.6rem; border-radius: 3px; background: hsl(var(--line-strong) / 0.5); }
.jakob__quem i { inline-size: 3.5rem; block-size: 0.5rem; border-radius: 3px; background: hsl(var(--line)); }

.jakob__texto { display: flex; flex-direction: column; gap: 0.4rem; margin: 0; }
.jakob__texto span { block-size: 0.5rem; border-radius: 3px; background: hsl(var(--line)); }
.jakob__texto span:nth-child(1) { inline-size: 100%; }
.jakob__texto span:nth-child(2) { inline-size: 92%; }
.jakob__texto span:nth-child(3) { inline-size: 64%; }

.jakob__foto {
  block-size: 8rem;
  border-radius: var(--radius);
  background: hsl(var(--line) / 0.75);
}

.jakob__acoes { display: flex; gap: 0.375rem; }

.jakob__acao {
  flex: 1;
  min-height: 44px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  border: 1px solid transparent;
  border-radius: var(--radius);
  background: none;
  color: hsl(var(--ink-muted));
  font: inherit;
  font-size: 0.8125rem;
  cursor: pointer;
}
.jakob__acao:hover { border-color: hsl(var(--line-strong)); }

/* A pastilha é o que resta de um ícone quando se tira o desenho dele: um alvo
   com tamanho e posição, sem significado próprio. */
.jakob__pastilha {
  inline-size: 1.25rem;
  block-size: 1.25rem;
  border-radius: 50%;
  border: 1.5px solid hsl(var(--line-strong));
}

/* O alvo é marcado por borda sólida e peso; o erro, por borda dupla. Nenhum dos
 * dois depende de matiz para ser identificado. */
.jakob__acao--alvo {
  border-color: hsl(var(--accent));
  color: hsl(var(--ink));
  font-weight: 600;
}
.jakob__acao--alvo .jakob__pastilha {
  border-color: hsl(var(--accent));
  background: hsl(var(--accent));
}
.jakob__acao--errou {
  border-style: double;
  border-width: 3px;
  border-color: hsl(var(--line-strong));
}

/* Disponibilidade */
.listas {
  display: grid;
  gap: 1.25rem;
}
.lista {
  display: grid;
  gap: 0.5rem;
}
.lista__rotulo {
  font-size: 0.9375rem;
  color: hsl(var(--ink));
}
.lista textarea {
  width: 100%;
  padding: 0.625rem 0.75rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: var(--radius);
  background: hsl(var(--bg));
  color: hsl(var(--ink));
  font: inherit;
  font-size: 0.9375rem;
  resize: vertical;
}
.lista__conta {
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
}

/* Pareto */
.pareto {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 130px;
  padding-top: 0.5rem;
}
.pareto__barra {
  flex: 1 1 0;
  height: max(3px, var(--altura));
  background: hsl(var(--line-strong));
  border-radius: 2px 2px 0 0;
}
/* "Dentro do corte" vai por cor E por altura mínima maior: a barra selecionada
 * também engrossa, então a seleção sobrevive sem visão de cores. */
.pareto__barra--dentro {
  background: hsl(var(--accent));
  outline: 1px solid hsl(var(--accent));
}

/* Negatividade */
.produtos {
  display: grid;
  gap: 1.75rem;
}
.produto__nome {
  font-weight: 600;
  color: hsl(var(--ink));
  margin-bottom: 0.75rem;
}
.produto__n {
  font-weight: 400;
  font-size: 0.875rem;
  color: hsl(var(--ink-faint));
  margin-left: 0.5rem;
}
.hist { display: grid; gap: 0.3125rem; }
.hist__linha {
  display: grid;
  grid-template-columns: 1.25rem 1fr 2ch;
  align-items: center;
  gap: 0.625rem;
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
}
.hist__trilho {
  height: 0.75rem;
  background: hsl(var(--line));
  border-radius: 2px;
}
.hist__barra {
  display: block;
  width: var(--w);
  height: 100%;
  background: hsl(var(--line-strong));
  border-radius: 2px;
}
.produto__media {
  margin-top: 0.75rem;
  font-size: 0.9375rem;
  color: hsl(var(--ink));
}

/* Design para extremos */

@media (min-width: 44rem) {
  .barras, .listas, .produtos { grid-template-columns: 1fr 1fr; gap: 2rem; }
}

/* Exemplo escrito — o terceiro tempo das oito leis que não comportam exercício.
 * Recebe a mesma moldura das demonstrações de propósito: é o mesmo tempo da
 * página, e o padrão entre as 38 seções depende de ele não parecer um aparte. */
/* O caso deixou de ser caixa em 07/09/2026: com 38 casos e figura, a borda
   dizia "aparte", e o caso é prova, não aparte. Ele agora se lê como as outras
   seções; a caixa fica só para o exercício, que é um instrumento. */
.caso {
  max-width: var(--prosa);
}
.caso__titulo {
  margin: 0 0 0.75rem;
  font-size: 1.0625rem;
  font-weight: 600;
  color: hsl(var(--ink));
}
.caso__fonte {
  margin-top: 0.875rem !important;
  padding-top: 0.875rem;
  border-top: 1px solid hsl(var(--line));
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
  color: hsl(var(--ink-faint)) !important;
}

.grafo__lista { margin-top: 1rem; }
.grafo__liga { margin: 0; font-size: 0.875rem; color: hsl(var(--ink-muted)); }
.grafo__estrutura {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin: 0;
  font-size: 1.0625rem;
  color: hsl(var(--ink));
}
.grafo__estrutura a { color: inherit; text-decoration: underline dotted; text-underline-offset: 0.2em; }
.grafo__estrutura a:hover { color: hsl(var(--accent)); }
/* O resto do desenho vem de `.grupo` e `.lista--leis`, que a página de leis já
   define: a lista do mapa era pílulas soltas num bloco próprio, e virou o mesmo
   catálogo de duas colunas do resto do site. O bloco `@media` que ficava aqui
   dimensionava um `.grafo` de duas colunas que não existe desde que o canvas
   passou a ocupar o quadro inteiro. */

/* ---------------------------------------------------------------- *
 * Diagramas — geometria abstrata em SVG
 *
 * Toda cor vem daqui, nunca do módulo que desenha: é o que faz a figura
 * acompanhar o tema claro/escuro sem nenhuma versão alternativa.
 * ---------------------------------------------------------------- */

.dg {
  display: block;
  width: 100%;
  max-width: 34rem;
  height: auto;
  margin: 0 0 1.25rem;
  overflow: visible;
}

.dg__eixo, .dg__grade { stroke: hsl(var(--line-strong)); stroke-width: 1; }
.dg__grade { stroke-width: 0.75; }
.dg__guia { stroke: hsl(var(--line-strong)); stroke-width: 0.75; stroke-dasharray: 2 3; }

.dg__linha { fill: none; stroke: hsl(var(--ink-muted)); stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }
.dg__linha--acento { stroke: hsl(var(--accent)); stroke-width: 2; }
.dg__apagado { opacity: 0.42; }

.dg__corte { stroke: hsl(var(--accent)); stroke-width: 1.25; stroke-dasharray: 3 3; }

.dg__rotulo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 9.5px;
  fill: hsl(var(--ink-faint));
}
.dg__rotulo--acento { fill: hsl(var(--accent)); }
.dg__rotulo--forte { fill: hsl(var(--ink)); font-size: 11px; }
.dg__rotulo--fim { text-anchor: end; }

.dg__quadro { fill: none; stroke: hsl(var(--line-strong)); stroke-width: 1; }
.dg__bloco { fill: hsl(var(--line-strong)); opacity: 0.65; }
/* O que foi pulado não some por cor: ganha contorno tracejado, que é lido
 * como ausência mesmo sem distinguir matiz. */
.dg__bloco--pulado { fill: none; stroke: hsl(var(--accent)); stroke-width: 1.25; stroke-dasharray: 4 3; }
.dg__falha { fill: none; stroke: hsl(var(--accent)); stroke-width: 1.5; stroke-dasharray: 3 2.5; }

.dg__voxel { fill: hsl(var(--line-strong)); opacity: 0.16; }
.dg__voxel--ativo { fill: hsl(var(--accent)); }

.dg__fixacao { fill: hsl(var(--accent)); opacity: 0.3; stroke: hsl(var(--accent)); stroke-width: 1; }
.dg__num { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 8px; fill: hsl(var(--ink)); text-anchor: middle; }
.dg__sacada { stroke-dasharray: 3 3; stroke-width: 1.1; opacity: 0.8; }

.dg__trilho { fill: hsl(var(--line)); }
.dg__barra { fill: hsl(var(--line-strong)); }
/* "Vaga" e "útil" se distinguem por opacidade além do preenchimento — a leitura
 * sobrevive em escala de cinza. */
.dg__barra--vaga { fill: hsl(var(--line-strong)); opacity: 0.35; }
.dg__barra--util { fill: hsl(var(--ink-muted)); }
.dg__barra--acento { fill: hsl(var(--accent)); }

.dg__forma { fill: hsl(var(--ink-muted)); }
.dg__forma--acento { fill: hsl(var(--accent)); }
.dg__anel { fill: none; stroke: hsl(var(--line-strong)); stroke-width: 1; }
.dg__anel--acento { stroke: hsl(var(--accent)); stroke-width: 1.5; }
.dg__seta { stroke: hsl(var(--ink-faint)); stroke-width: 1.25; marker-end: none; fill: none; }
.dg__vao { fill: hsl(var(--accent)); opacity: 0.12; }

.metodo__diagrama { margin: 1.25rem 0 0; }

/* ---------------------------------------------------------------- *
 * O mapa — carta estelar de fora a fora
 *
 * Duas vistas do mesmo dado. O canvas ocupa a tela toda e responde ao ponteiro;
 * a lista logo abaixo responde ao teclado e ao leitor de tela, com links de
 * verdade, e cobre os 38 conceitos. A ambição visual daqui não custa acesso
 * porque ela não substituiu a lista — empurrou a lista para baixo da dobra.
 * ---------------------------------------------------------------- */

.mapa {
  position: relative;
  /* svh, e não vh: no celular a barra do navegador retrai e `vh` deixa uma faixa
     cortada embaixo durante a rolagem. Descontar o cabeçalho fixo mantém a barra
     de controles dentro do quadro em vez de sob a dobra.
  
     O teto de 56rem não é estética: quando esta página roda dentro de um iframe
     que se dimensiona pela ALTURA DO CONTEÚDO — é o caso do artefato publicado —,
     `svh` passa a valer a altura do próprio conteúdo e a conta vira circular. O
     mapa cresce, o conteúdo cresce junto, e a cada medição o quadro dispara: em
     seis ciclos foi de 4.100px para 22.300px, empurrando a lista para fora de
     qualquer alcance. Com um teto fixo o laço estabiliza no primeiro ciclo. */
  height: min(calc(100svh - 3.75rem - 1px), 56rem);
  min-height: 32rem;
  overflow: hidden;
  background: hsl(var(--bg));
}
/* a grade da home entra aqui por continuidade — mesmo grafismo, mesma medida */
.mapa .heroi__grade {
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 45%, #000 35%, transparent 100%);
  mask-image: radial-gradient(ellipse 80% 70% at 50% 45%, #000 35%, transparent 100%);
  opacity: 0.5;
}

.mapa__tela {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  cursor: grab;
  touch-action: none;
}
.mapa__tela:active { cursor: grabbing; }

/* A camada da frente é vidro: não intercepta o ponteiro. Só os controles
   dentro dela voltam a interceptar, senão a moldura roubaria o arrasto. */
.mapa__frente {
  position: absolute;
  inset: 0;
  pointer-events: none;
  display: grid;
  /* Duas linhas, não três. A do meio existia para empurrar a barra de controles
     para o pé do quadro; agora os controles moram na cabeça, e o que sobra é o
     rodapé, que só precisa ser empurrado para baixo. */
  grid-template-rows: auto 1fr;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  gap: 1rem;
}
/* Reativar por TIPO de elemento, e não só `a` e `button`: o alternador é um
 * radiogroup, e o `<input>` dele ficava com o ponteiro desligado — o clique
 * atravessava para o canvas e o controle simplesmente não respondia. Enumerar
 * tags é frágil; a lista precisa cobrir tudo que for interativo aqui dentro. */
.mapa__frente a,
.mapa__frente button,
.mapa__frente input,
.mapa__frente label,
.mapa__frente select,
.mapa__frente [tabindex] { pointer-events: auto; }

.mapa__cabeca { max-width: 36rem; }
/* O alternador e a chave logo abaixo do parágrafo de abertura: o texto diz o que
   o mapa mostra, e o controle imediatamente seguinte escolhe o que ele destaca. */
.mapa__controles {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
  margin-top: 1.25rem;
}

/* Atalhos à esquerda, painel à direita, os dois apoiados na mesma linha de base
   no pé do quadro. */
.mapa__rodape {
  grid-row: 2;
  align-self: end;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.5rem;
}
.mapa__cabeca h1 {
  font-size: clamp(1.75rem, 1.2rem + 2.2vw, 3rem);
  line-height: 1.08;
  margin: 0.5rem 0 0.75rem;
  text-wrap: balance;
}
.mapa__lead {
  font-size: clamp(0.9375rem, 0.85rem + 0.35vw, 1.0625rem);
  line-height: 1.55;
  color: hsl(var(--ink-muted));
  text-wrap: pretty;
}

/* O painel fica ancorado embaixo à direita e só ganha moldura quando tem
   conteúdo — caixa vazia permanente vira ruído sobre o desenho. */
.mapa__painel {
  margin-bottom: 0;
  max-width: 23rem;
  padding: 1.125rem 1.25rem;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  background: hsl(var(--bg) / 0.82);
  backdrop-filter: blur(8px);
}
.mapa__vazio {
  color: hsl(var(--ink-faint));
  font-size: 0.875rem;
  line-height: 1.55;
}
.mapa__tipo {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: hsl(var(--ink-faint));
}
.mapa__nome {
  margin: 0.4rem 0 0.5rem;
  font-size: 1.125rem;
  color: hsl(var(--ink));
}
.mapa__texto {
  color: hsl(var(--ink-muted));
  font-size: 0.875rem;
  line-height: 1.55;
}
.mapa__ligados {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid hsl(var(--line));
  font-size: 0.8125rem;
  color: hsl(var(--ink-faint));
  line-height: 1.5;
}
.mapa__ir { margin-top: 0.75rem; }
.mapa__ir a { color: hsl(var(--accent)); text-decoration: none; font-size: 0.9375rem; }
.mapa__ir a:hover { text-decoration: underline; }

/* Sobre o desenho, a borda sozinha não segura o botão: entra fundo com desfoque
   para o contraste do rótulo não depender do que passou por trás. */
.opcao--sobre {
  background: hsl(var(--bg) / 0.78);
  backdrop-filter: blur(8px);
}
/* A chave, empilhada no canto de baixo, com os atalhos logo abaixo dela.
   Cada item é amostra + rótulo curto: a amostra faz o trabalho de explicar, e a
   frase que a repetia em prosa era leitura a mais para dizer o mesmo. */
.mapa__canto {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1rem;
}
.mapa__chave {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3125rem;
  font-size: 0.8125rem;
  line-height: 1.3;
  color: hsl(var(--ink-faint));
}
.mapa__chave li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
/* Amostras no tamanho em que se leem. As primeiras saíram a 22×10 e 16px, que é
   o tamanho de um marcador ao lado de texto corrido — mas aqui a amostra É a
   explicação, e não um enfeite ao lado dela. */
.mapa__chave .legenda__marca { width: 30px; height: 14px; flex: 0 0 30px; }
.mapa__gesto-ico {
  inline-size: 22px;
  block-size: 22px;
  flex: 0 0 30px;
  color: hsl(var(--ink-faint));
}

/* Qual par de gestos aparece depende do APARELHO DE APONTAR, não da largura da
   tela: um tablet com caneta e um celular pedem gestos diferentes na mesma
   largura, e um desktop com tela pequena continua tendo roda de mouse.
   
   `.mapa__chave li` acima é (0,1,1) e vencia um `.mapa__chave--toque` sozinho,
   que é (0,1,0) — os dois pares apareciam ao mesmo tempo. Qualificar pelo pai
   empata a especificidade e a ordem decide, que é como deveria ser desde o
   começo: esconder é uma exceção à regra logo acima, e precisa poder sobrepô-la. */
.mapa__chave li.mapa__chave--toque { display: none; }
@media (pointer: coarse) {
  .mapa__chave li.mapa__chave--ponteiro { display: none; }
  .mapa__chave li.mapa__chave--toque { display: flex; }
}

.mapa__descer {
  margin-top: 1.25rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0 1rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  background: hsl(var(--bg) / 0.78);
  backdrop-filter: blur(8px);
  color: hsl(var(--ink-muted));
  font-size: 0.875rem;
  text-decoration: none;
}
.mapa__descer:hover { border-color: hsl(var(--accent)); color: hsl(var(--accent)); }

/* Abaixo de dois painéis o quadro fica apertado demais para caber cabeçalho,
   painel e barra ao mesmo tempo: o painel passa a dividir a linha de baixo. */
/* Abaixo de dois painéis o rodapé não cabe em duas colunas: os atalhos somem
   (a lista continua a um rolar de distância) e o painel ocupa a largura toda. */
/* No celular o mapa é um aparelho em tela cheia, não um pôster com legendas
   por cima. A primeira versão em fluxo (mapa entre os controles e o texto)
   falhou em três pontos que ele apontou no aparelho: a pinça não dava zoom
   (`touch-action: pan-y` entregava o gesto ao navegador), o nó tocado ficava
   enorme, e o cartão do nó aparecia abaixo da tela, sem relação visível com
   o toque. Agora `.mapa--app` fixa o quadro na viewport inteira: barra com
   fechar e seletores, o canvas ocupando o que sobra, a chave em pílula que
   abre por cima, e o cartão do nó na base da mesma tela. O resto da página
   fica trancado com `inert` enquanto o app está aberto. Fechado, o mapa some
   e sobra o botão de abrir seguido do texto da página. */
@media (max-width: 52rem) {
  .mapa {
    height: auto;
    min-height: 0;
    overflow: visible;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem 1rem 1.25rem;
  }
  .mapa__frente,
  .mapa__cabeca,
  .mapa__rodape { display: contents; pointer-events: auto; }
  /* fechado: só o botão de abrir e o texto */
  .mapa:not(.mapa--app) .heroi__grade,
  .mapa:not(.mapa--app) .mapa__tela,
  .mapa:not(.mapa--app) .mapa__controles,
  .mapa:not(.mapa--app) .mapa__painel,
  .mapa:not(.mapa--app) .mapa__canto { display: none; }
  .mapa__cabeca .voltar { order: 0; }
  .mapa:not(.mapa--app) .mapa__abrir { display: inline-flex; order: 1; align-self: flex-start; gap: 0.5rem; margin-top: 0.5rem; }
  .mapa__cabeca h1 { order: 2; margin-top: 1rem; }
  .mapa__lead { order: 3; }

  /* aberto: o aparelho */
  .mapa--app {
    position: fixed;
    inset: 0;
    z-index: 60;
    display: grid;
    /* a coluna não pode crescer até o item mais largo (o seletor de dimensão
       media 395px numa tela de 390 e levava o canvas junto) */
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem calc(0.75rem + env(safe-area-inset-bottom));
    background: hsl(var(--bg));
    overflow: hidden;
  }
  .mapa--app .heroi__grade { display: block; }
  .mapa--app .voltar,
  .mapa--app .mapa__abrir,
  .mapa--app .mapa__cabeca h1,
  .mapa--app .mapa__lead { display: none; }
  .mapa--app .mapa__controles {
    display: flex;
    order: 1;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    position: relative;
  }
  .mapa--app .mapa__fechar { display: inline-flex; }
  .mapa--app .lente { flex: 1 1 100%; display: flex; min-inline-size: 0; max-inline-size: 100%; }
  .mapa--app .lente__campo { flex: 1 1 0; min-inline-size: 0; }
  .mapa--app .mapa__tela {
    display: block;
    position: relative;
    inset: auto;
    order: 2;
    inline-size: 100%;
    block-size: 100%;
    min-block-size: 0;
    border: 1px solid hsl(var(--line));
    border-radius: var(--radius);
    touch-action: none;
  }
  .mapa--app .mapa__canto {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    order: 3;
    position: relative;
  }
  .mapa--app .mapa__chave-dobra { position: relative; }
  .mapa--app .mapa__chave-dobra > .mapa__chave-resumo { display: inline-flex; }
  .mapa--app .mapa__chave-dobra[open] > .mapa__chave {
    position: absolute;
    inset-inline-start: 0;
    inset-block-end: calc(100% + 0.5rem);
    z-index: 2;
    margin: 0;
    padding: 0.75rem 0.875rem;
    min-inline-size: 15rem;
    background: hsl(var(--bg-raised));
    border: 1px solid hsl(var(--line));
    border-radius: var(--radius);
    box-shadow: 0 12px 32px hsl(0 0% 0% / 0.35);
  }
  .mapa--app .mapa__atalhos { gap: 0.5rem; }
  .mapa--app .mapa__descer { display: inline-flex; }
  /* O cartão do nó flutua sobre a base do mapa em vez de empurrá-lo: a caixa
     do canvas não muda quando um nó é tocado (o esticamento vinha daí), e o
     toque e o cartão ficam na mesma tela. */
  .mapa--app .mapa__painel {
    display: block;
    position: absolute;
    /* 8px a mais de recuo nos lados e no pé do que a base do mapa: é uma
       janela sobre o desenho, e tem de parecer uma (pedido do autor, 11/09) */
    inset-inline: 1.25rem;
    inset-block-end: calc(5rem + env(safe-area-inset-bottom));
    z-index: 3;
    max-width: none;
    margin: 0;
    padding-inline-end: 3.25rem;
    max-block-size: 34svh;
    overflow: auto;
    background: hsl(var(--bg) / 0.92);
    box-shadow: 0 12px 32px hsl(0 0% 0% / 0.28);
  }
  .mapa--app .mapa__painel:has(.mapa__vazio) { padding-inline-end: 1.25rem; }
  .mapa--app .mapa__painel-fechar {
    display: inline-flex;
    position: absolute;
    inset-block-start: 0.5rem;
    inset-inline-end: 0.5rem;
  }
  .mapa--app .mapa__painel:has(.mapa__vazio) { background: hsl(var(--bg) / 0.72); }
}
/* O fechar do cartão só existe no app do celular; no desktop o cartão é um
   canto do quadro e clicar fora desfaz. */
.mapa__painel-fechar {
  display: none;
  align-items: center;
  justify-content: center;
  inline-size: 40px;
  block-size: 40px;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  background: hsl(var(--bg) / 0.85);
  color: hsl(var(--ink-muted));
  cursor: pointer;
}
.mapa__painel-fechar svg { inline-size: 18px; block-size: 18px; }
.mapa__painel-fechar:hover { color: hsl(var(--ink)); border-color: hsl(var(--accent)); }
/* quem abre o aparelho é o botão; no desktop nem ele nem o de fechar existem */
.mapa__abrir { display: none; }
.mapa__fechar {
  display: none;
  flex: none;
  align-items: center;
  justify-content: center;
  inline-size: 44px;
  block-size: 44px;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  background: hsl(var(--bg) / 0.78);
  color: hsl(var(--ink-muted));
  cursor: pointer;
}
.mapa__fechar svg { inline-size: 20px; block-size: 20px; }
.mapa__fechar:hover { color: hsl(var(--ink)); border-color: hsl(var(--accent)); }
@media (min-width: 52.01rem) {
  .mapa__abrir, .mapa__fechar { display: none; }
}
/* Enquanto o aparelho está aberto a página de trás não rola, o cabeçalho fixo
   sai de cena e o botão flutuante de reportar também. O cabeçalho é sticky com
   z-index próprio e o <main> abre um contexto de empilhamento: sem isto, a
   primeira linha do aparelho — fechar e alternador — ficava por baixo dele. */
html[data-mapa-app] { overflow: hidden; }
html[data-mapa-app] .topo { visibility: hidden; }
html[data-mapa-app] .reportar { display: none; }
/* Desktop baixo (notebook de 768px): a cabeça e a chave não cabiam juntas no
   quadro e os atalhos saíam pelo fundo. A chave nasce recolhida e o título do
   recolhível aparece. */
@media (min-width: 52.01rem) and (max-height: 46rem) {
  .mapa__chave-dobra > .mapa__chave-resumo { display: inline-flex; }
}
/* A chave é recolhível só no celular; no desktop está sempre aberta e o
   título do recolhível não existe. */
.mapa__chave-resumo {
  display: none;
  align-items: center;
  min-height: 44px;
  padding: 0 1rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  background: hsl(var(--bg) / 0.78);
  color: hsl(var(--ink-muted));
  font-size: 0.875rem;
  cursor: pointer;
  list-style: none;
}
.mapa__chave-resumo::-webkit-details-marker { display: none; }
.mapa__chave-dobra[open] .mapa__chave-resumo { color: hsl(var(--ink)); }
.mapa__chave-dobra[open] > .mapa__chave { margin-top: 0.75rem; }

.grafo__lista {
  scroll-margin-top: 2rem;
  padding-block: 3.5rem 4rem;
}

/* Os dois atalhos do canto inferior esquerdo do quadro. */
.mapa__atalhos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.625rem;
}
.mapa__atalhos .mapa__descer { margin-top: 0; }

/* ---------------------------------------------------------------- *
 * Alternador em pílula — o que o mapa destaca
 *
 * Radiogroup nativo por baixo: as setas do teclado percorrem as opções e o
 * leitor de tela anuncia "1 de 2" sem nenhum ARIA escrito à mão. O rádio fica
 * invisível mas continua focável — `display:none` o tiraria da ordem de foco.
 * ---------------------------------------------------------------- */

.alternador {
  position: relative;
  display: inline-flex;
  padding: 3px;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  background: hsl(var(--bg) / 0.78);
  backdrop-filter: blur(8px);
}
/* o indicador que desliza entre as duas metades */
.alternador::before {
  content: '';
  position: absolute;
  top: 3px;
  bottom: 3px;
  left: 3px;
  width: calc(50% - 3px);
  border-radius: 999px;
  background: hsl(var(--accent));
  transition: transform 0.24s cubic-bezier(0.4, 0, 0.2, 1);
}
.alternador:has(input[value='design']:checked)::before { transform: translateX(100%); }

.alternador__op {
  position: relative;
  z-index: 1;
  flex: 1 1 auto;
}
.alternador__op input {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  cursor: pointer;
}
.alternador__op span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  /* Largura mínima igual nos dois: o indicador ocupa 50% do contêiner, então os
     dois segmentos precisam medir o mesmo. Sem isto o rótulo mais longo
     transborda a pílula e ela cobre meia palavra. */
  min-width: 8rem;
  padding: 0 0.75rem;
  border-radius: 999px;
  font-size: 0.875rem;
  white-space: nowrap;
  color: hsl(var(--ink-muted));
  transition: color 0.24s ease;
}
/* Estado marcado também muda a COR DO TEXTO, e não só a posição do indicador:
 * onde `:has()` não existir, o deslize não acontece e a cor é a única pista —
 * ela precisa bastar sozinha. */
.alternador__op input:checked + span {
  color: hsl(var(--accent-ink));
  font-weight: 600;
}
.alternador__op input:focus-visible + span {
  outline: 2px solid hsl(var(--accent));
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .alternador::before, .alternador__op span { transition: none; }
}

/* Segundo parágrafo da abertura da lista: mesma família do lead, meio tom abaixo. */
.lead--nota {
  margin-top: 0.875rem;
  font-size: 1rem;
  color: hsl(var(--ink-faint));
}

/* Durante a abertura, a moldura do mapa não está em cena. `visibility` junto de
 * `opacity` para que nada ali seja focável nem clicável enquanto invisível —
 * opacidade zero sozinha deixa o conteúdo alcançável por Tab. */
.mapa--abrindo .mapa__frente {
  visibility: hidden;
  /* entrar no estado é instantâneo; só a saída é que tem transição, senão a
     moldura apareceria e sumiria na frente de quem chegou */
  transition: none;
}
.mapa__frente {
  /* `visibility` volta na hora, sem atraso: se ela dependesse de uma transição e
     essa transição não rodasse — navegador antigo, aba em segundo plano, qualquer
     motivo —, a moldura inteira ficaria invisível para sempre. Um efeito de
     entrada não pode ter como modo de falha a interface sumir. Quem esmaece são
     os filhos, cada um no seu tempo. */
  visibility: visible;
}
/* Os elementos não chegam todos de uma vez: primeiro o título, que diz onde a
   pessoa caiu, depois o painel e por último o canto com a chave — a ordem em que
   fazem falta. */
.mapa--abrindo .mapa__cabeca,
.mapa--abrindo .mapa__painel,
.mapa--abrindo .mapa__canto {
  opacity: 0;
  transform: translateY(0.6rem);
  transition: none;
}
.mapa__cabeca,
.mapa__painel,
.mapa__canto {
  opacity: 1;
  transform: none;
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.mapa__cabeca { transition-delay: 0.1s; }
.mapa__painel { transition-delay: 0.45s; }
.mapa__canto { transition-delay: 0.75s; }
@media (prefers-reduced-motion: reduce) {
  .mapa__cabeca,
  .mapa__painel,
  .mapa__canto { transition: none; }
}

/* ------------------------------------------------------------------ *
 * O tooltip de autor
 *
 * Mesmo componente do glossário — mesma caixa, mesmo popover, mesmo ancoramento
 * por JavaScript. O que muda é o conteúdo: em vez de uma definição, a lista das
 * obras daquela pessoa NESTE trabalho, cada uma levando à entrada exata na
 * bibliografia.
 *
 * O sublinhado é o mesmo pontilhado do termo, e é de propósito: para quem lê, os
 * dois são a mesma promessa — "há mais aqui, e cabe num toque". Inventar um
 * segundo sublinhado ensinaria uma convenção nova para dizer a mesma coisa.
 * ------------------------------------------------------------------ */

.definicao--autor {
  max-inline-size: min(28rem, calc(100vw - 2rem));
}

.autor__conta {
  font-size: 0.8125rem;
  color: hsl(var(--ink-faint));
}

.autor__obras {
  display: flex;
  flex-direction: column;
  gap: 0.125rem;
}

/* Cada obra é um alvo de toque inteiro, não só o título: numa lista de três
   linhas dentro de um popover, mirar a palavra é mira fina demais. */
.autor__obra {
  display: grid;
  grid-template-columns: 3.25rem 1fr;
  gap: 0 0.625rem;
  align-items: baseline;
  min-height: 44px;
  padding-block: 0.375rem;
  color: hsl(var(--ink-muted));
  text-decoration: none;
  border-radius: 0.375rem;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.autor__obra:hover,
.autor__obra:focus-visible {
  background: hsl(var(--accent) / 0.09);
  color: hsl(var(--ink));
}

.autor__ano {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  color: hsl(var(--accent));
}

.autor__titulo {
  font-size: 0.875rem;
  line-height: 1.4;
  text-wrap: pretty;
}

/* ------------------------------------------------------------------ *
 * O controle de uma demonstração
 *
 * Existe porque o botão que COMANDA a demo usava `.opcao`, a mesma classe dos
 * botões que são CONTEÚDO dela. Na demo do efeito Von Restorff isso virou
 * contradição aberta: a peça que ensina a destacar a ação principal pedia um
 * clique num botão indistinguível dos quatro logo abaixo. O mesmo defeito estava
 * em outras dezesseis.
 *
 * Aqui o controle tem peso e o acento do site; o conteúdo do palco continua
 * neutro. E o estado ligado é pintado: `aria-pressed` já estava na marcação, mas
 * nenhuma regra o lia, então um botão que alterna não mostrava se estava ligado.
 * ------------------------------------------------------------------ */

.demo__acao {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0 1.125rem;
  border: 1px solid hsl(var(--accent) / 0.55);
  border-radius: var(--radius);
  background: hsl(var(--accent) / 0.1);
  color: hsl(var(--ink));
  font: inherit;
  font-size: 0.9375rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.demo__acao:hover {
  background: hsl(var(--accent) / 0.18);
  border-color: hsl(var(--accent));
}

/* Ligado é preenchido, e não só mais escuro: quem não distingue matiz precisa
   ver a mudança no preenchimento, que é a mesma lição da demo do Von Restorff. */
.demo__acao[aria-pressed='true'] {
  background: hsl(var(--accent));
  border-color: hsl(var(--accent));
  color: hsl(var(--accent-ink));
  font-weight: 600;
}

.demo__acao:disabled {
  opacity: 0.55;
  cursor: default;
}

/* ------------------------------------------------------------------ *
 * Ilusão de controle — o elevador
 * ------------------------------------------------------------------ */

.elevador {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.5rem;
}

.elevador__cabine {
  inline-size: 12rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: var(--radius);
  background: hsl(var(--bg-raised));
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}

.elevador__andar {
  font-size: 0.75rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: hsl(var(--accent));
}

/* O vão é o poço; as folhas correm por cima dele. A transição é de `inline-size`
   e não de `transform` porque as duas folhas precisam se encontrar no meio, e
   não deslizar por cima uma da outra. */
.elevador__vao {
  position: relative;
  block-size: 7rem;
  border-radius: 0.25rem;
  background: hsl(var(--bg));
  overflow: hidden;
}

.elevador__folha {
  position: absolute;
  inset-block: 0;
  inline-size: 8%;
  background: hsl(var(--line-strong) / 0.55);
  transition: inline-size 0.5s ease;
}
.elevador__folha--esq { inset-inline-start: 0; border-inline-end: 1px solid hsl(var(--line)); }
.elevador__folha--dir { inset-inline-end: 0; border-inline-start: 1px solid hsl(var(--line)); }
.elevador__folha--fechada { inline-size: 50%; }

.elevador__painel {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.625rem;
}

/* O botão reage ao toque mesmo sem fazer nada — é essa resposta que sustenta a
   ilusão. Um controle inerte e mudo seria lido como quebrado. */
@keyframes demo-pulso {
  0% { transform: scale(1); }
  35% { transform: scale(0.955); }
  100% { transform: scale(1); }
}
.demo__acao--pulso { animation: demo-pulso 0.22s ease; }

@media (prefers-reduced-motion: reduce) {
  .elevador__folha { transition: none; }
  .demo__acao--pulso { animation: none; }
}

/* Prägnanz — a figura ambígua */
.pragnanz { max-width: 22rem; }
.pragnanz__svg { inline-size: 100%; block-size: auto; }
/* A peça de trás muda de forma, não de posição: se ela deslizasse, o argumento
   viraria "olha, estava escondido", quando o ponto é que o canto nunca existiu. */
.pragnanz__fundo {
  fill: hsl(var(--line-strong) / 0.45);
  stroke: hsl(var(--line-strong));
  stroke-width: 1.5;
  transition: d 0.45s ease;
}
.pragnanz__frente {
  fill: hsl(var(--accent) / 0.3);
  stroke: hsl(var(--accent));
  stroke-width: 1.5;
}
@media (prefers-reduced-motion: reduce) {
  .pragnanz__fundo { transition: none; }
}

/* ------------------------------------------------------------------ *
 * Dois caminhos — as três trilhas, lado a lado
 *
 * Ficam todas visíveis de propósito. A versão anterior era um seletor de abas, e
 * alternar entre elas escondia justamente a comparação que a lei pede que se
 * faça.
 * ------------------------------------------------------------------ */

.trilhas { display: grid; gap: 1.5rem; }

.trilha__nome {
  display: flex;
  align-items: baseline;
  gap: 0.625rem;
  margin: 0 0 0.5rem;
  font-weight: 600;
  font-size: 0.9375rem;
}
.trilha__conta {
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
  color: hsl(var(--ink-faint));
}

/* A pista inteira é o alvo: numa trilha de cinco nós, mirar o próximo seria
   pedir precisão que a peça não está medindo. */
.trilha__pista {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.25rem 0.75rem;
  inline-size: 100%;
  min-height: 44px;
  padding: 0.625rem 0.75rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: var(--radius);
  background: none;
  font: inherit;
  text-align: start;
  cursor: pointer;
}
.trilha__pista:hover { border-color: hsl(var(--accent)); }

.trilha__no {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  color: hsl(var(--ink-faint));
}
.trilha__bolha {
  inline-size: 0.625rem;
  block-size: 0.625rem;
  border-radius: 50%;
  border: 1.5px solid hsl(var(--line-strong));
  flex: none;
}
/* Feito é preenchimento e peso, não matiz sozinha. */
.trilha__no--feito { color: hsl(var(--ink)); font-weight: 500; }
.trilha__no--feito .trilha__bolha {
  background: hsl(var(--accent));
  border-color: hsl(var(--accent));
}

.trilha--pronta .trilha__pista { border-color: hsl(var(--accent)); }

.trilha__serve {
  margin: 0.5rem 0 0;
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
  text-wrap: pretty;
}

@media (min-width: 48rem) {
  .trilhas { grid-template-columns: repeat(3, 1fr); }
}

/* A linha de "o que essa pessoa mediu", dentro do tooltip de autor. Vem antes
   das obras porque é a resposta à pergunta que o clique fez — a lista é a prova,
   não a resposta. */
.autor__mediu {
  color: hsl(var(--ink-muted));
  text-wrap: pretty;
}

/* ------------------------------------------------------------------ *
 * As seções de uma lei
 *
 * Aqui havia uma linha do tempo: uma bolinha por seção, à esquerda, vazada ou
 * cheia. Ela saiu inteira, e não por gosto.
 *
 * "Cheia" queria dizer duas coisas — coral era risco ético, cinza era limite de
 * evidência —, seis das oito seções tinham a mesma bolinha, e não havia legenda
 * em lugar nenhum. Além disso a linha vertical prometia um percurso com etapas, e
 * as seções de uma lei não são um percurso: são facetas do mesmo objeto, e cinco
 * das oito são opcionais.
 *
 * O que substituiu não é um desenho novo: é o `.grupo` que o índice de leis, os
 * Métodos, O cérebro e O corpo já usavam. O rótulo escrito diz o que a bolinha
 * não dizia, e é a mesma regra que o saldo dos métodos já seguia — "rótulo
 * escrito, não a cor da borda, porque a cor sozinha não diz qual é qual".
 * ------------------------------------------------------------------ */

/* Risco e quebra dizem coisas diferentes — onde a lei vira coerção, e onde ela
   deixa de valer — e agora convivem na mesma página. Enquanto nunca coexistiam,
   a diferença de matiz entre os dois títulos era decoração e o A11Y-DECISIONS
   registrava isso como aceitável. Coexistindo, matiz viraria informação, e este
   site não põe informação em cor.
   A distinção passa a ser de forma: a estação de risco leva uma régua vertical,
   que é o gesto que o site já usa para advertência na nota de evidência. Ela
   sobrevive em escala de cinza, numa impressão ruim e para quem não separa
   vermelho de verde — que é a régua de O autor, aplicada aqui. */
.grupo--risco .grupo__cabeca h2 { color: hsl(var(--accent)); }
.grupo--quebra .grupo__cabeca h2 { color: hsl(var(--ink-muted)); }
.grupo--risco > div {
  border-left: 2px solid hsl(var(--accent) / 0.55);
  padding-left: 1.15rem;
}
@media (max-width: 47.99rem) {
  .grupo--risco > div { padding-left: 0.9rem; }
}

.descida .grupo > div > p,
.descida .grupo .prosa p {
  max-width: var(--prosa);
  font-size: 1.0625rem;
  line-height: 1.7;
  color: hsl(var(--ink-muted));
}

.grupo--exercicio .demo { margin-top: 0; }
.grupo--caso .caso p { margin: 0; color: hsl(var(--ink-muted)); }

/* Página de casos: o filete separa um caso do outro, não o texto da fonte.
   Na página da lei o caso aparece uma vez só, e lá a fonte mantém o filete. */
.grupo--caso + .grupo--caso {
  margin-top: 4.5rem;
  padding-top: 3.5rem;
  border-top: 1px solid hsl(var(--line));
}
.casos__eixo { margin: 5.5rem 0 1.75rem; }
.casos__eixo:first-of-type { margin-top: 2.5rem; }
.casos__eixo ~ .grupo--caso .caso__fonte { border-top: 0; padding-top: 0.25rem; }

/* Atalhos que só levam ao ponto: sem "todos", sem estado ligado. O desenho é o
   mesmo do chip de filtro de propósito — para quem lê, os dois prometem a mesma
   coisa, e o que muda é o que o clique faz. */
.filtros--ancora .filtro { text-decoration: none; }


/* Os atalhos de uma lei vêm depois da abertura e precisam de ar: colados no
   último parágrafo, eles são lidos como continuação do texto e não como
   navegação. */
.filtros--ancora {
  margin-top: 3rem;
}

/* O cabeçalho da matriz: o termo e uma glosa embaixo.
 *
 * A glosa resolve duas coisas ao mesmo tempo. Diz o que a marca daquela coluna
 * quer dizer — "um sentido" deixava no ar a pergunta óbvia, qual — e dá à coluna
 * a largura mínima que faltava: sem ela, "um sentido" quebrava em "um" e
 * "sentido" em duas linhas.
 *
 * O termo não quebra nunca; a glosa pode. É a ordem certa de sacrifício, porque
 * o termo é o que precisa casar com o chip que a pessoa viu na página da lei. */
/* A matriz é a tabela mais larga do site: sete colunas, e seis delas existem só
 * para caber um ponto. Três coisas a alargavam sem necessidade.
 *
 * O `thead th` global é MAIÚSCULO com letter-spacing, herdado da tabela de
 * ética, que tem três colunas de texto corrido. "UMA HISTÓRIA" espaçada é bem
 * mais larga que "uma história" — e, pior, deixava de parecer o chip que a mesma
 * pessoa acabou de ver na página da lei, que é minúsculo. Os dois problemas, de
 * espaço e de reconhecimento, tinham a mesma causa.
 *
 * O padrão de 1,25rem de cada lado também vem de lá: numa coluna cujo conteúdo é
 * um ponto de 1,25rem, isso é o dobro de folga do que existe para folgar. */
.tabela--matriz thead th {
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.8125rem;
  padding-inline: 0.5rem;
}

.tabela--matriz .matriz__col {
  min-inline-size: 5.75rem;
  vertical-align: bottom;
  text-align: center;
}

.tabela--matriz .matriz__col a {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  text-decoration: none;
}

.tabela--matriz tbody td { padding-inline: 0.5rem; }

.matriz__dim {
  white-space: nowrap;
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
}

.matriz__glosa {
  font-size: 0.6875rem;
  font-weight: 400;
  line-height: 1.25;
  color: hsl(var(--ink-faint));
  text-wrap: pretty;
}


/* ------------------------------------------------------------------ *
 * A codificação da matriz
 *
 * O ponto único virou três símbolos, um por lastro. Cada um tem FORMA própria,
 * não só cor: ✔, ○ e ? se distinguem em escala de cinza, no papel e para quem
 * não separa matiz — que é a regra que este site cobra de todo mundo e precisava
 * cobrar de si na página sobre isso.
 * ------------------------------------------------------------------ */

.matriz__legenda {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.75rem;
  margin: 0 0 1.25rem;
  padding: 0;
  list-style: none;
  font-size: 0.875rem;
  color: hsl(var(--ink-muted));
}
.matriz__legenda li { display: flex; align-items: baseline; gap: 0.5rem; }

.matriz__marca {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 1rem;
  line-height: 1;
}

.matriz--conferido .matriz__marca { color: hsl(var(--accent)); }
.matriz--conhecido .matriz__marca { color: hsl(var(--ink-muted)); }
.matriz--raciocinio .matriz__marca { color: hsl(var(--ink-faint)); }

.tabela--matriz .matriz__sim {
  display: table-cell;
  text-align: center;
  font-size: inherit;
}

/* O "qual" cabe embaixo do símbolo, e só na coluna do canal. */
.matriz__qual {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.625rem;
  line-height: 1.2;
  color: hsl(var(--ink-faint));
  white-space: nowrap;
}


.matriz--naovaria .matriz__marca { color: hsl(var(--ink-faint)); }


/* O cabeçalho acompanha a rolagem vertical, e a coluna de lei a horizontal.
 *
 * A célula do canto pertence às duas: sem um z-index maior que o das outras
 * duas, ela é atropelada pela primeira linha que passa por baixo — e o nome da
 * coluna some justamente quem rola. */
/* 5,5rem é a mesma medida que o `.grupo__cabeca` usa: a altura da barra do topo,
   que também é sticky. Sem isso o cabeçalho gruda atrás dela. */
.tabela--matriz thead th {
  position: sticky;
  top: 5.5rem;
  z-index: 2;
  background: hsl(var(--bg));
  box-shadow: inset 0 -1px 0 hsl(var(--line));
}

.tabela--matriz thead th:first-child {
  inset-inline-start: 0;
  z-index: 3;
}

.tabela--matriz tbody th[scope='row'] { z-index: 1; }


/* As duas categorias sem marca, explicadas abaixo da tabela. */
.matriz__notas {
  display: grid;
  gap: 0.875rem;
  margin-top: 1.5rem;
  max-inline-size: var(--prosa);
}
.matriz__notas p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.6;
  color: hsl(var(--ink-muted));
  text-wrap: pretty;
}
.matriz__notas b {
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.875rem;
  color: hsl(var(--ink));
  margin-inline-end: 0.3rem;
}

/* O símbolo de cada categoria sem dimensão. Cada um tem FORMA própria: – e ✕ se
   distinguem sem depender de cor, como ✔, ○ e ?. */
.matriz--naovaria .matriz__marca { color: hsl(var(--ink-faint)); }
.matriz--principio .matriz__marca { color: hsl(var(--ink) / 0.28); }

/* O atalho da coluna de rótulo, em qualquer seção que declare um. */
.grupo__atalho {
  margin: 0.25rem 0 0;
  font-size: 0.875rem;
}
.grupo__atalho a {
  color: hsl(var(--accent));
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.grupo__atalho a:hover { border-bottom-color: hsl(var(--accent)); }


/* O convite que vem depois da frase de abertura em O autor: mesma família da
   abertura, um degrau abaixo no peso — ele é a ponte para a crônica, não a
   declaração. */
.sobre__convite {
  margin-top: 1.5rem;
  max-width: var(--prosa);
  font-size: 1.0625rem;
  line-height: 1.7;
  color: hsl(var(--ink-muted));
  text-wrap: pretty;
}

/* A última frase da página, com a régua do remate — ela reabre a primeira, e a
   régua marca as duas como as pontas do mesmo arco. */
.sobre__fecho {
  margin-top: 0.5rem;
  color: hsl(var(--ink));
}

/* A fala do médico, em O autor. Usa a citação que abre cada lei, com respiro
   próprio — é uma frase de duas palavras entre dois parágrafos longos, e sem
   espaço em volta ela some no lugar em que deveria pesar. */
.sobre__veredito {
  margin-block: 1.75rem;
}


/* O inseto de reportar: fixo no canto inferior direito, 48px, acima do
   conteúdo (z 35) e abaixo do topo (40) e da busca (60). É um link para
   #/reportar; o nome acessível está no atributo, o desenho é decorativo. */
.reportar {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 35;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: 48px;
  block-size: 48px;
  border: 1px solid hsl(var(--line-strong));
  border-radius: 999px;
  background: hsl(var(--bg-raised));
  color: hsl(var(--ink-muted));
  box-shadow: 0 6px 20px hsl(0 0% 0% / 0.25);
  transition: color 0.15s ease, border-color 0.15s ease;
}
.reportar svg { inline-size: 22px; block-size: 22px; }
.reportar:hover,
.reportar:focus-visible {
  color: hsl(var(--accent));
  border-color: hsl(var(--accent));
}
@media (max-width: 640px) {
  /* Na coluna de largura cheia do celular o botão fixo cobre o fim de linha
     do texto no meio da rolagem (medido em 390px). Fica menor e mais colado
     ao canto; o caminho sem sobreposição é o link de texto no rodapé. Ver
     A11Y-DECISIONS.md. */
  .reportar { inline-size: 44px; block-size: 44px; right: 0.75rem; bottom: 0.75rem; }
}
@media print { .reportar { display: none; } }

/* O formulário de reportar: um campo por bloco, rótulo em cima, ajuda embaixo
   do rótulo e ligada por aria-describedby; caixas com a borda forte (3:1). */
.formulario {
  max-inline-size: 44rem;
  margin-top: 2rem;
  display: grid;
  gap: 1.5rem;
}
.campo {
  display: grid;
  gap: 0.375rem;
  margin: 0;
  padding: 0;
  border: 0;
  min-inline-size: 0;
}
.campo legend,
.campo > label {
  font-weight: 600;
  color: hsl(var(--ink));
}
.campo legend { padding: 0; margin-bottom: 0.375rem; }
.campo__ajuda {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: hsl(var(--ink-muted));
}
.campo input[type="text"],
.campo input[type="email"],
.campo textarea {
  inline-size: 100%;
  min-block-size: 44px;
  padding: 0.625rem 0.75rem;
  font: inherit;
  color: hsl(var(--ink));
  background: hsl(var(--bg-raised));
  border: 1px solid hsl(var(--line-strong));
  border-radius: var(--radius);
}
.campo textarea { resize: vertical; }
.campo input[type="file"] {
  font: inherit;
  color: hsl(var(--ink-muted));
  padding: 0.5rem 0;
}
.envio { margin: 0; }
.envio__estado {
  margin: 0;
  min-block-size: 1.5rem;
  font-size: 0.9375rem;
  color: hsl(var(--ink));
}

/* A figura de um caso: foto ou documento real, acima do texto, com legenda e
   crédito. A cédula de Broward é alta; o teto de altura evita que ela empurre
   o texto para fora da tela, e o object-fit mantém a proporção. */
.caso__figura { margin: 0 0 1.25rem; }
.caso__figura img {
  display: block;
  inline-size: auto;
  max-inline-size: 100%;
  block-size: auto;
  max-block-size: 40rem;
  object-fit: contain;
  object-position: left top;
  border: 1px solid hsl(var(--line));
  border-radius: 0.5rem;
  background: hsl(var(--bg-raised));
}
.caso__figura figcaption {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  color: hsl(var(--ink-muted));
}
.caso__credito {
  display: inline-block;
  margin-top: 0.25rem;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 0.75rem;
}


/* ---- Exercícios de 07/09/2026: Parkinson, escassez, transparência, Zeigarnik ---- */
.relogios { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; }
.relogio {
  padding: 1rem 1.125rem;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  background: hsl(var(--bg-raised));
}
.relogio__rotulo { margin: 0; font-size: 0.875rem; color: hsl(var(--ink-muted)); }
.relogio__tempo {
  margin: 0.25rem 0;
  font-family: 'Geist Mono', ui-monospace, monospace;
  font-size: 2.25rem;
  font-weight: 600;
  line-height: 1;
  color: hsl(var(--accent));
}
.relogio__nota { margin: 0; font-size: 0.8125rem; color: hsl(var(--ink-faint)); }

.quarto {
  max-width: 24rem;
  padding: 1rem 1.125rem;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  background: hsl(var(--bg-raised));
}
.quarto p { margin: 0.25rem 0; }
.quarto__nome { font-weight: 600; color: hsl(var(--ink)); }
.quarto__preco { color: hsl(var(--ink-muted)); }
.quarto__aviso { font-size: 0.9375rem; color: hsl(var(--ink-muted)); }
.quarto__aviso--forte { color: hsl(var(--accent)); font-weight: 600; }
.quarto__codigo {
  margin: 1rem 0 0;
  padding: 0.625rem 0.875rem;
  border: 1px dashed hsl(var(--line-strong));
  border-radius: var(--radius);
  font-size: 0.8125rem;
  color: hsl(var(--ink));
}

.pad {
  display: block;
  inline-size: 100%;
  min-block-size: 96px;
  border: 2px solid hsl(var(--accent) / 0.6);
  border-radius: var(--radius);
  background: hsl(var(--bg-raised));
  color: hsl(var(--ink));
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  touch-action: manipulation;
  user-select: none;
}
.pad:active { background: hsl(var(--accent) / 0.2); }
.batidas {
  position: relative;
  block-size: 2.5rem;
  margin-top: 0.75rem;
  border-block-end: 1px solid hsl(var(--line-strong));
}
.batida {
  position: absolute;
  bottom: 0;
  inline-size: 3px;
  block-size: 100%;
  background: hsl(var(--accent));
  transform-origin: bottom;
  transition: transform 0.12s ease;
}
.batida--soando { transform: scaleY(1.35); background: hsl(var(--ink)); }
@media (prefers-reduced-motion: reduce) { .batida { transition: none; } }

/* Escopado ao exercício: sem o `.demo`, estas regras sobrepunham a grade dos
   cartões da home, que usa os mesmos nomes de classe e vem antes no arquivo. */
.demo .cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1rem; }
.demo .cartao {
  display: grid;
  gap: 0.5rem;
  padding: 1rem 1.125rem;
  border: 1px solid hsl(var(--line-strong));
  border-radius: var(--radius);
  background: hsl(var(--bg-raised));
  color: hsl(var(--ink));
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.demo .cartao[aria-pressed="true"] { border-color: hsl(var(--accent)); box-shadow: 0 0 0 2px hsl(var(--accent) / 0.35); }
.cartao__nome { font-weight: 600; }
.cartao__carimbos { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.carimbo {
  display: inline-block;
  inline-size: 1.25rem;
  block-size: 1.25rem;
  border: 1px dashed hsl(var(--line-strong));
  border-radius: 50%;
}
.carimbo--feito { border-style: solid; background: hsl(var(--accent) / 0.7); }
.cartao__regra { font-size: 0.875rem; color: hsl(var(--ink-muted)); }


/* ---- Exercícios de 07/09/2026: posição serial, pico-fim, estética, apoio à escolha ---- */
.palavra-grande {
  min-block-size: 3.5rem;
  margin: 0.5rem 0 0;
  font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);
  font-weight: 600;
  color: hsl(var(--ink));
  text-align: center;
}
.campo-demo { display: grid; gap: 0.375rem; font-size: 0.9375rem; color: hsl(var(--ink-muted)); }
.campo-demo input, .campo-demo textarea {
  font: inherit; color: hsl(var(--ink)); background: hsl(var(--bg-raised));
  border: 1px solid hsl(var(--line-strong)); border-radius: var(--radius); padding: 0.5rem 0.625rem; inline-size: 100%;
}
.posicoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr)); gap: 0.375rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.posicao {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.375rem 0.5rem; border: 1px dashed hsl(var(--line-strong)); border-radius: var(--radius);
  font-size: 0.9375rem; color: hsl(var(--ink-faint));
}
.posicao--lembrada { border-style: solid; border-color: hsl(var(--accent)); color: hsl(var(--ink)); }
.posicao__num { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 0.75rem; color: hsl(var(--ink-faint)); }
.grafico--compacto { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px dashed hsl(var(--line)); }
.grafico__legenda { font-size: 0.8125rem; color: hsl(var(--ink-muted)); margin: 0 0 0.5rem; }

.pista {
  position: relative;
  block-size: 14rem;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  background: hsl(var(--bg-raised));
  overflow: hidden;
}
.pista__alvo {
  position: absolute;
  min-inline-size: 64px; min-block-size: 44px; padding: 0 1rem;
  border: 0; border-radius: var(--radius);
  background: hsl(var(--accent)); color: hsl(var(--accent-ink));
  font: inherit; font-weight: 600; cursor: pointer;
}
.pista__estado { position: absolute; left: 0.875rem; bottom: 0.5rem; margin: 0; font-size: 0.875rem; color: hsl(var(--ink-muted)); }

.gemeos { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1.25rem; }
.form-gemeo { display: grid; gap: 0.5rem; }
.form-gemeo__nome { margin: 0 0 0.25rem; font-weight: 600; color: hsl(var(--ink)); }
.form-gemeo__estado { margin: 0; min-block-size: 1.25rem; font-size: 0.875rem; color: hsl(var(--ink-muted)); }
.form-gemeo--cru { font-family: ui-serif, 'Times New Roman', serif; gap: 0.125rem; }
.form-gemeo--cru label { display: block; font-size: 0.9375rem; color: hsl(var(--ink-muted)); }
.form-gemeo--cru input { display: block; font: inherit; inline-size: 100%; padding: 0.125rem 0.25rem; border: 1px solid hsl(var(--ink-faint)); border-radius: 0; background: hsl(var(--bg)); color: hsl(var(--ink)); }
.form-gemeo--cru button { font: inherit; padding: 0.125rem 0.75rem; margin-top: 0.375rem; border: 1px solid hsl(var(--ink-faint)); border-radius: 0; background: hsl(var(--bg)); color: hsl(var(--ink)); cursor: pointer; justify-self: start; }
.form-gemeo--acabado { padding: 1rem; border: 1px solid hsl(var(--line)); border-radius: 0.75rem; background: hsl(var(--bg-raised)); gap: 0.75rem; }
.form-gemeo--acabado label { display: grid; gap: 0.375rem; font-size: 0.875rem; color: hsl(var(--ink-muted)); }
.form-gemeo--acabado input { font: inherit; inline-size: 100%; min-block-size: 44px; padding: 0.5rem 0.75rem; border: 1px solid hsl(var(--line-strong)); border-radius: var(--radius); background: hsl(var(--bg)); color: hsl(var(--ink)); }
.form-gemeo--acabado button { font: inherit; font-weight: 600; min-block-size: 44px; padding: 0 1.25rem; margin-top: 0.25rem; border: 0; border-radius: var(--radius); background: hsl(var(--accent)); color: hsl(var(--accent-ink)); cursor: pointer; justify-self: start; }

.planos { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 1rem; }
.plano {
  display: grid; gap: 0.375rem; padding: 1rem 1.125rem; text-align: left;
  border: 1px solid hsl(var(--line-strong)); border-radius: var(--radius); background: hsl(var(--bg-raised));
  color: hsl(var(--ink)); font: inherit; cursor: pointer;
}
.plano:hover { border-color: hsl(var(--accent)); }
.plano__nome { font-weight: 600; }
.plano__preco { font-family: 'Geist Mono', ui-monospace, monospace; font-size: 0.875rem; color: hsl(var(--accent)); }
.plano__lista { font-size: 0.875rem; color: hsl(var(--ink-muted)); }
.distracao p { margin: 0 0 0.75rem; }
.distracao__pontos { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1rem; }
.ponto { display: inline-block; inline-size: 1.25rem; block-size: 1.25rem; border: 2px solid hsl(var(--ink-muted)); border-radius: 50%; }
.ponto--cheio { background: hsl(var(--ink-muted)); }


/* ---- Complementos a partir dos casos: Flexcube e cédula borboleta ---- */
.anexo { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px dashed hsl(var(--line)); }
.anexo__titulo { margin: 0 0 0.25rem; font-weight: 600; color: hsl(var(--ink)); }
.anexo__como { margin: 0 0 1rem; font-size: 0.9375rem; color: hsl(var(--ink-muted)); }
.gl { border-collapse: collapse; font-size: 0.9375rem; }
.gl th, .gl td { padding: 0.5rem 0.75rem; border: 1px solid hsl(var(--line)); text-align: left; }
.gl thead th { font-size: 0.8125rem; color: hsl(var(--ink-muted)); font-weight: 500; }
.gl input[type="checkbox"] { inline-size: 1.25rem; block-size: 1.25rem; }
.dialogo {
  margin-top: 1rem; padding: 1rem 1.125rem;
  border: 1px solid hsl(var(--line-strong)); border-radius: var(--radius); background: hsl(var(--bg-raised));
}
.dialogo p { margin: 0 0 0.75rem; font-size: 0.875rem; color: hsl(var(--ink)); }

.borboleta {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: repeat(6, 2.75rem);
  align-items: center;
  gap: 0.25rem 0.75rem;
  max-inline-size: 30rem;
  padding: 0.75rem;
  border: 1px solid hsl(var(--line));
  border-radius: var(--radius);
  background: hsl(var(--bg-raised));
}
.borboleta__nome { font-size: 0.875rem; font-weight: 600; color: hsl(var(--ink)); }
.borboleta__nome--esq { grid-column: 1; text-align: right; }
.borboleta__nome--dir { grid-column: 3; text-align: left; }
.borboleta__furo {
  grid-column: 2;
  inline-size: 44px; block-size: 44px;
  border: 1px solid hsl(var(--line-strong)); border-radius: 50%;
  background: hsl(var(--bg)); color: hsl(var(--ink-muted));
  font: inherit; font-size: 0.75rem; cursor: pointer;
}
.borboleta__furo:hover { border-color: hsl(var(--accent)); color: hsl(var(--accent)); }

/* ---------------------------------------------------------------- *
 * Miudezas do celular (revisão de responsividade, 08/09/2026)
 * ---------------------------------------------------------------- */
/* Piso de 13px nos textos de apoio: em 390px, 12px de créditos e de fontes de
   referência ficavam abaixo do que se lê sem aproximar o aparelho. */
@media (max-width: 40rem) {
  .ref__fonte,
  .caso__credito,
  .baixar__meta,
  .inspiracao__credito { font-size: 0.8125rem; }
  .fora-marca { font-size: 0.9em; }
}
/* Termo do glossário no meio do texto: a área de toque cresce para cima e para
   baixo sem mexer na linha — padding de elemento inline não altera a altura da
   linha, e a margem negativa devolve o espaço. */
@media (pointer: coarse) {
  .termo { padding-block: 0.45em; margin-block: -0.45em; }
}
/* O envelope da tabela nunca cresce além da coluna: o conteúdo rola dentro dele. */
.tabela-envelope { max-inline-size: 100%; }
/* A coluna da camada da frente do mapa não pode crescer até o conteúdo mais
   largo (era o seletor de dimensão, com 395px numa tela de 390). */
.mapa__frente { grid-template-columns: minmax(0, 1fr); }
