/* gerado por gerar.mjs a partir de eon/modelo.idh e fonte.css; não editar */
:root {
  --grade-colunas: 12;
  --grade-coluna: 72px;
  --grade-vao: 24px;
  --grade-largura: calc(var(--grade-coluna) * 12 + var(--grade-vao) * 11);
  --espaco-secao: 56px;
  --espaco-titulo-conteudo: 24px;
  --espaco-paragrafo: 16px;
  --espaco-entre-blocos: 40px;
  --espaco-cartao: 16px;
  --espaco-caixa: 24px;
  --espaco-dentro-do-cartao: 12px;
  --espaco-rotulo-titulo: 8px;
  --espaco-botao: 8px 12px;
  --espaco-entre-itens: 8px;
  --espaco-miudo: 4px;
  --familia: "Libre Caslon Text", Georgia, serif;
  --letra-rotulo: 12px;
  --letra-legenda: 12px;
  --letra-apoio: 14px;
  --letra-corpo: 17px;
  --letra-destaque: 20px;
  --letra-livro: 24px;
  --letra-titulo-secao: 35px;
  --letra-assinatura: 35px;
  --letra-nome: 73px;
  --letra-nome-celular: 51px;
  --peso-regular: 400;
  --peso-negrito: 700;
  --entrelinha-texto: 1.6;
  --entrelinha-titulo: 1.2;
  --entrelinha-justa: 1.0;
  --entreletras-versal: 0.14em;
  --linha-fio: 1px;
  --linha-traco: 2px;
  --linha-divisa: 4px;
  --linha-vao-moldura: 4px;
  --linha-neutra: var(--cor-linha);
  --linha-neutra-inversa: var(--cor-linha-inversa);
  --linha-marca: var(--cor-latao-fio);
  --linha-marca-inversa: var(--cor-latao-claro);
  --marca-tinta-topo: 0.10625;
  --marca-tinta-altura: 0.8;
  --marca-tinta-esquerda: 0.06875;
  --marca-maiuscula: 0.77;
  --marca-meio: 0.355;
  --marca-vao: 0.6;
  --marca-sobra: 1.02;
  --sombra-capa: rgba(0, 0, 0, 0.3) 4px 6px 16px 0px;
  --cor-fundo: #F6F3EE;
  --cor-superficie: #FFFDF9;
  --cor-texto: #1C2330;
  --cor-texto-suave: #3D4552;
  --cor-apoio: #67635D;
  --cor-linha: #E2DCD2;
  --cor-marinho: #18253A;
  --cor-latao: #785D2C;
  --cor-latao-fio: #9D8760;
  --cor-latao-claro: #D2B783;
  --cor-texto-inverso: #FFFFFF;
  --cor-texto-inverso-suave: #D5D8DC;
  --cor-apoio-inverso: #B8BCC2;
  --cor-linha-inversa: #4F5969;
  --tempo-transicao: 250ms;
  --medida-texto: calc(var(--grade-coluna) * 6 + var(--grade-vao) * 5);
  --margem-uma-coluna: var(--espaco-cartao);
  --passo-vertical: 4px;
  --abertura-tarja-colunas: 5;
  --estampa-clara: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22192%22%20height%3D%22288%22%3E%3Cpath%20d%3D%22M3.3282011773513744%20-2.218800784900916L99.32820117735137%20141.7811992150991%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M-3.3282011773513744%202.218800784900916L92.67179882264863%20146.2188007849009%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M99.32820117735137%20141.7811992150991L195.3282011773514%20285.7811992150991%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M92.67179882264863%20146.2188007849009L188.6717988226486%20290.2188007849009%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M195.3282011773514%202.218800784900916L99.32820117735137%20146.2188007849009%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M188.6717988226486%20-2.218800784900916L92.67179882264863%20141.7811992150991%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M99.32820117735137%20146.2188007849009L3.3282011773513744%20290.2188007849009%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M92.67179882264863%20141.7811992150991L-3.3282011773513744%20285.7811992150991%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221.6%22%20fill%3D%22%23e9e6e3%22%2F%3E%3Ccircle%20cx%3D%22192%22%20cy%3D%220%22%20r%3D%221.6%22%20fill%3D%22%23e9e6e3%22%2F%3E%3Ccircle%20cx%3D%220%22%20cy%3D%22288%22%20r%3D%221.6%22%20fill%3D%22%23e9e6e3%22%2F%3E%3Ccircle%20cx%3D%22192%22%20cy%3D%22288%22%20r%3D%221.6%22%20fill%3D%22%23e9e6e3%22%2F%3E%3Ccircle%20cx%3D%2296%22%20cy%3D%22144%22%20r%3D%221.6%22%20fill%3D%22%23e9e6e3%22%2F%3E%3Cg%20transform%3D%22translate(68%20-28)%20scale(1.1666666666666667)%22%3E%3Cpath%20d%3D%22M24%2011V38M18%2038H30M12%2015H36%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M25.4%209.2a1.4%201.4%200%201%200-2.8%200%201.4%201.4%200%201%200%202.8%200z%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%2015L7%2027M12%2015L17%2027M36%2015L31%2027M36%2015L41%2027%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M6%2027Q12%2032%2018%2027M30%2027Q36%2032%2042%2027%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(-28%20116)%20scale(1.1666666666666667)%22%3E%3Cpath%20d%3D%22M24%2011V38M18%2038H30M12%2015H36%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M25.4%209.2a1.4%201.4%200%201%200-2.8%200%201.4%201.4%200%201%200%202.8%200z%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%2015L7%2027M12%2015L17%2027M36%2015L31%2027M36%2015L41%2027%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M6%2027Q12%2032%2018%2027M30%2027Q36%2032%2042%2027%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(164%20116)%20scale(1.1666666666666667)%22%3E%3Cpath%20d%3D%22M24%2011V38M18%2038H30M12%2015H36%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M25.4%209.2a1.4%201.4%200%201%200-2.8%200%201.4%201.4%200%201%200%202.8%200z%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%2015L7%2027M12%2015L17%2027M36%2015L31%2027M36%2015L41%2027%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M6%2027Q12%2032%2018%2027M30%2027Q36%2032%2042%2027%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(68%20260)%20scale(1.1666666666666667)%22%3E%3Cpath%20d%3D%22M24%2011V38M18%2038H30M12%2015H36%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M25.4%209.2a1.4%201.4%200%201%200-2.8%200%201.4%201.4%200%201%200%202.8%200z%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%2015L7%2027M12%2015L17%2027M36%2015L31%2027M36%2015L41%2027%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M6%2027Q12%2032%2018%2027M30%2027Q36%2032%2042%2027%22%20fill%3D%22none%22%20stroke%3D%22%23e9e6e3%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
  --estampa-escura: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22192%22%20height%3D%22288%22%3E%3Cpath%20d%3D%22M3.3282011773513744%20-2.218800784900916L99.32820117735137%20141.7811992150991%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M-3.3282011773513744%202.218800784900916L92.67179882264863%20146.2188007849009%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M99.32820117735137%20141.7811992150991L195.3282011773514%20285.7811992150991%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M92.67179882264863%20146.2188007849009L188.6717988226486%20290.2188007849009%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M195.3282011773514%202.218800784900916L99.32820117735137%20146.2188007849009%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M188.6717988226486%20-2.218800784900916L92.67179882264863%20141.7811992150991%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M99.32820117735137%20146.2188007849009L3.3282011773513744%20290.2188007849009%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M92.67179882264863%20141.7811992150991L-3.3282011773513744%20285.7811992150991%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221%22%20fill%3D%22none%22%2F%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%221.6%22%20fill%3D%22%23212e42%22%2F%3E%3Ccircle%20cx%3D%22192%22%20cy%3D%220%22%20r%3D%221.6%22%20fill%3D%22%23212e42%22%2F%3E%3Ccircle%20cx%3D%220%22%20cy%3D%22288%22%20r%3D%221.6%22%20fill%3D%22%23212e42%22%2F%3E%3Ccircle%20cx%3D%22192%22%20cy%3D%22288%22%20r%3D%221.6%22%20fill%3D%22%23212e42%22%2F%3E%3Ccircle%20cx%3D%2296%22%20cy%3D%22144%22%20r%3D%221.6%22%20fill%3D%22%23212e42%22%2F%3E%3Cg%20transform%3D%22translate(68%20-28)%20scale(1.1666666666666667)%22%3E%3Cpath%20d%3D%22M24%2011V38M18%2038H30M12%2015H36%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M25.4%209.2a1.4%201.4%200%201%200-2.8%200%201.4%201.4%200%201%200%202.8%200z%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%2015L7%2027M12%2015L17%2027M36%2015L31%2027M36%2015L41%2027%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M6%2027Q12%2032%2018%2027M30%2027Q36%2032%2042%2027%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(-28%20116)%20scale(1.1666666666666667)%22%3E%3Cpath%20d%3D%22M24%2011V38M18%2038H30M12%2015H36%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M25.4%209.2a1.4%201.4%200%201%200-2.8%200%201.4%201.4%200%201%200%202.8%200z%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%2015L7%2027M12%2015L17%2027M36%2015L31%2027M36%2015L41%2027%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M6%2027Q12%2032%2018%2027M30%2027Q36%2032%2042%2027%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(164%20116)%20scale(1.1666666666666667)%22%3E%3Cpath%20d%3D%22M24%2011V38M18%2038H30M12%2015H36%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M25.4%209.2a1.4%201.4%200%201%200-2.8%200%201.4%201.4%200%201%200%202.8%200z%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%2015L7%2027M12%2015L17%2027M36%2015L31%2027M36%2015L41%2027%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M6%2027Q12%2032%2018%2027M30%2027Q36%2032%2042%2027%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate(68%20260)%20scale(1.1666666666666667)%22%3E%3Cpath%20d%3D%22M24%2011V38M18%2038H30M12%2015H36%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M25.4%209.2a1.4%201.4%200%201%200-2.8%200%201.4%201.4%200%201%200%202.8%200z%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%2015L7%2027M12%2015L17%2027M36%2015L31%2027M36%2015L41%2027%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M6%2027Q12%2032%2018%2027M30%2027Q36%2032%2042%2027%22%20fill%3D%22none%22%20stroke%3D%22%23212e42%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E');
  --estampa-tamanho: 192px 288px;
}

:root { --el: var(--entrelinha-texto); }
*, *::before, *::after { line-height: round(up, calc(var(--el) * 1em), var(--passo-vertical)); }
/* Fonte do estilo. Só variáveis: o gerar.mjs recusa valor solto (px, em, s, cor).
   A ordem segue design/idh/desenho.idh: base, átomos, página. */

@font-face { font-family: "Libre Caslon Text"; font-style: normal; font-weight: 400; font-display: swap; src: url(fontes/caslon-400.woff2) format("woff2"); }
@font-face { font-family: "Libre Caslon Text"; font-style: italic; font-weight: 400; font-display: swap; src: url(fontes/caslon-400-italico.woff2) format("woff2"); }
@font-face { font-family: "Libre Caslon Text"; font-style: normal; font-weight: 700; font-display: swap; src: url(fontes/caslon-700.woff2) format("woff2"); }

/* derivadas: a altura do menu sai do que ele contém (composição) */
:root { --altura-menu: calc(var(--espaco-cartao) * 2 + var(--letra-destaque) * var(--entrelinha-texto)); }
/* a estampa: claro no claro, escuro no escuro; começa na margem da grade, não no canto da tela */
:root { --fundo-claro: var(--cor-fundo) var(--estampa-clara) calc(50% - var(--grade-largura) / 2) 0 / var(--estampa-tamanho);
  --fundo-escuro: var(--cor-marinho) var(--estampa-escura) calc(50% - var(--grade-largura) / 2) 0 / var(--estampa-tamanho);
  --fio-dourado: var(--linha-divisa) solid var(--linha-marca-inversa); }  /* a divisa da gramática de linhas (Q-115) */

/* ── base */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--altura-menu); }
body { margin: 0; font-family: var(--familia); font-size: var(--letra-corpo); --el: var(--entrelinha-texto);
  font-weight: var(--peso-regular); color: var(--cor-texto); background: var(--fundo-claro); }
h1, h2, h3, p, ul, figure { margin: 0; font-weight: inherit; }
ul { padding: 0; list-style: none; }
a { color: inherit; }
img { display: block; max-width: 100%; height: auto; }
/* o foco é o traço de marca do material onde está (Q-115): latão-fio no claro, latão claro no escuro.
   O latão claro no papel claro dava 1,7:1, abaixo dos 3:1 do WCAG 1.4.11 */
:focus-visible { outline: var(--linha-traco) solid var(--linha-marca); outline-offset: var(--espaco-miudo); }
:is(.menu, .abertura, .contato) :focus-visible { outline-color: var(--linha-marca-inversa); }

/* ── a faixa: a grade da página. O pai escolhe as linhas; sangrar é ir até "tela" */
.faixa { display: grid; column-gap: var(--grade-vao);
  grid-template-columns: [tela-ini] minmax(0, 1fr) [grade-ini] repeat(var(--grade-colunas), [c] minmax(0, var(--grade-coluna))) [grade-fim] minmax(0, 1fr) [tela-fim]; }
.faixa > * { grid-column: grade-ini / grade-fim; }

/* ── átomos */
.rotulo { font-size: var(--letra-rotulo); --el: var(--entrelinha-texto); font-weight: var(--peso-negrito);
  letter-spacing: var(--entreletras-versal); text-transform: uppercase; }
.apoio { font-size: var(--letra-apoio); --el: var(--entrelinha-texto); color: var(--cor-apoio); }
.titulo-secao { font-size: var(--letra-titulo-secao); --el: var(--entrelinha-titulo); margin-bottom: var(--espaco-entre-blocos); }
/* um ritmo só (Q-120): toda seção abre a 40 do topo e o título fica a 40 do conteúdo; o vão entre seções
   (fim de uma + topo da outra, ~130 px) passa de 2× o vão do título ao conteúdo, e o título se lê da seção de baixo */
.secao { padding-block: var(--espaco-entre-blocos) var(--espaco-secao); }
.cartao { display: flex; flex-direction: column; gap: var(--espaco-dentro-do-cartao); padding: var(--espaco-cartao); background: var(--cor-superficie); }
.link-botao { display: inline-block; font-size: var(--letra-apoio); --el: var(--entrelinha-texto); font-weight: var(--peso-negrito);
  color: var(--cor-texto); padding: var(--espaco-botao); border: var(--linha-fio) solid var(--linha-marca); text-decoration: none; }  /* ação: fio de marca, como o Contato do menu (Q-125, item 2) */
/* o estado é só a cor, como nas folhas (Q-115, Q-117): o fundo marinho cheio era forma nova e mais de um degrau de fundo */
.link-botao { transition: color var(--tempo-transicao), border-color var(--tempo-transicao); }
.link-botao:is(:hover, :active) { color: var(--cor-latao); border-color: var(--linha-marca); }

/* ── menu: camada da página, sobre a abertura; fica sólido depois dela */
.menu { position: fixed; inset: 0 0 auto 0; z-index: 10; color: var(--cor-texto-inverso); padding-block: var(--espaco-cartao); }
.menu .marca { font-size: var(--letra-destaque); text-decoration: none; visibility: hidden; opacity: 0;
  transition: opacity var(--tempo-transicao), visibility var(--tempo-transicao); }
.menu ul a { white-space: nowrap; text-decoration: none; padding-block: var(--espaco-miudo); border-bottom: var(--linha-traco) solid transparent; transition: border-color var(--tempo-transicao); }
.menu ul a:hover, .menu ul a[aria-current] { border-bottom-color: var(--linha-marca-inversa); }
/* véu: sólido atrás das letras, some abaixo delas; o menu nunca fica direto sobre a foto.
   O véu fica sempre; o fundo sólido é uma camada por cima dele que só muda a opacidade.
   Degradê não se anima: trocar um pelo outro deixava o menu sem fundo durante a
   transição, e as letras piscavam sobre a foto (Q-083). */
.menu { background: linear-gradient(var(--cor-marinho) 60%, transparent); }
.menu::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--cor-marinho); opacity: 0;
  transition: opacity var(--tempo-transicao); }
.menu.solida::before { opacity: 1; }
.menu.solida .marca { visibility: visible; opacity: 1; }
/* a âncora do começo é só o IV, junto das seções (Q-106): o nome e a marca não se repetem em cima do nome */
.menu li.item-inicio .marca { visibility: visible; opacity: 1; line-height: 0; }  /* a disposição da barra está no modelo (Q-124) */
.ancora-cel { line-height: 0; text-decoration: none; }
.botao-menu { display: none; background: none; border: 0; color: var(--cor-texto-inverso); font-size: var(--letra-destaque); --el: var(--entrelinha-justa); padding: var(--espaco-miudo); cursor: pointer; }
.vh { position: absolute; width: var(--linha-fio); height: var(--linha-fio); overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* o IV antes do nome, alinhado pela tinta (Q-110, Q-117): a tinta do I da 1ª linha à base da 2ª, mais 2%;
   o vão até o nome, 0,6 da maiúscula. --fn é o corpo do nome; a entrelinha é a da página, arredondada ao passo. */
.nome-iv { --fn: var(--letra-nome); --l: round(up, calc(var(--entrelinha-justa) * var(--fn)), var(--passo-vertical));
  --h: calc(var(--marca-sobra) * (var(--l) + var(--marca-maiuscula) * var(--fn)) / var(--marca-tinta-altura));
  display: flex; align-items: flex-start; gap: 0; }
.nome-iv .iv { order: -1; flex: none; width: var(--h); height: var(--h);
  margin-top: calc(var(--l) / 2 + (var(--marca-meio) - var(--marca-maiuscula)) * var(--fn) - var(--h) * var(--marca-tinta-topo));
  margin-left: calc(-1 * var(--h) * var(--marca-tinta-esquerda));
  margin-right: calc(var(--marca-vao) * var(--marca-maiuscula) * var(--fn) - var(--h) * var(--marca-tinta-esquerda)); }
/* abaixo do nome, a qualificação numa frase, como na folha de rosto (Q-119); a mesma do contato (C2) */
.abertura .frase { text-align: center; padding-top: var(--espaco-dentro-do-cartao); border-top: var(--linha-fio) solid var(--linha-neutra-inversa); }  /* o fio sob o nome passou à frase: a qualificação saiu da capa a pedido do Ismar (07/11) */

/* ── abertura */
.abertura { background: var(--fundo-escuro); color: var(--cor-texto-inverso); border-bottom: var(--fio-dourado); }
/* filete duplo: fio externo, vão, fio colado à foto; a estampa aparece em volta */
.abertura .foto { grid-column: c calc(var(--abertura-tarja-colunas) + 1) / grade-fim; grid-row: 1; align-self: center;
  margin-block: calc(var(--altura-menu) + var(--espaco-caixa)) var(--espaco-entre-blocos);
  padding: var(--linha-vao-moldura); border: var(--linha-fio) solid var(--linha-marca-inversa); }
.abertura .foto img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: 11% 50%;  /* quadrada, rosto ao centro (modelo › foto › enquadramento, 07/11) */ box-shadow: 0 0 0 var(--linha-fio) var(--linha-marca-inversa); }
.abertura .tarja { grid-column: c 1 / span var(--abertura-tarja-colunas); grid-row: 1; align-self: center; display: flex; flex-direction: column; gap: var(--espaco-cartao);
  padding-top: var(--espaco-secao); }
/* a tarja na largura do nome com o IV: o fio e a qualificação terminam com a marca, sem fio sobrando além do texto (Q-126) */
.abertura .tarja { justify-self: start; width: fit-content; }
.abertura .tarja .frase { width: 0; min-width: 100%; }  /* não alargam a tarja: quem dá a largura é o nome com o IV */
/* a frase dele (Q-130): epígrafe sob a qualificação, um degrau abaixo dela; as aspas vêm daqui, e o fato fica sem elas */
.abertura .frase { font-size: var(--letra-corpo); --el: var(--entrelinha-texto); font-style: italic; text-wrap: balance; color: var(--cor-texto-inverso-suave); }
.abertura .frase::before { content: "“"; } .abertura .frase::after { content: "”"; }
.abertura .rotulo { color: var(--cor-latao-claro); }
.abertura h1 { font-size: var(--letra-nome); --el: var(--entrelinha-justa); }
.abertura p { color: var(--cor-texto-inverso-suave); }

/* ── quem sou: a disposição vem do modelo (desenho › pagina › quem sou), escrita pelo site/disposicao.mjs (Q-121) */

/* ── artigos: a linha do tempo é o conteúdo; a faixa contínua é montada dela pelo script
   (decorativa, escondida do leitor de tela), começa na grade e sangra */
/* no marinho com a estampa escura; a faixa de cartões no papel claro, entre dois fios dourados */
.artigos { color: var(--cor-texto); }  /* capa e contracapa (Q-117): o escuro só na abertura e no contato; Artigos no claro do miolo */
/* os três mais recentes em folhas (Q-111): fundo claro e fio, sem sombra, como as outras folhas */
.destaque { grid-column: grade-ini / grade-fim; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grade-vao); margin-bottom: var(--grade-vao); }
.destaque .cartao { border: var(--linha-fio) solid var(--linha-neutra); color: var(--cor-texto); }
.destaque .rotulo { color: var(--cor-apoio); }
.destaque a { color: var(--cor-texto); text-decoration: none; }  /* título-link na cor do texto; o latão só no estado (Q-125, item 3) */
.destaque b { font-size: var(--letra-destaque); --el: var(--entrelinha-titulo); font-weight: var(--peso-regular); }
.tempo .rotulo { color: var(--cor-apoio); }
.seta::after { content: "\202F↗";  /* espaço fino que não quebra: a seta nunca cai sozinha na linha (07/11) */ font-size: var(--letra-legenda); color: var(--cor-latao); }

/* a linha do tempo num quadro branco, na largura da grade; o fio é decoração dela, dentro do quadro */
.tempo { grid-column: grade-ini / grade-fim; position: relative; color: var(--cor-texto); background: var(--cor-superficie);
  border: var(--linha-fio) solid var(--linha-neutra); padding: var(--espaco-caixa) var(--espaco-caixa) 0 calc(var(--espaco-caixa) * 2); }
.tempo::before { content: ""; position: absolute; inset-block: var(--espaco-caixa); inset-inline-start: var(--espaco-caixa);
  border-left: var(--linha-fio) solid var(--linha-marca); }  /* fio de lado da gramática; o tracejado saiu (Q-115) */
.marco { padding-bottom: var(--espaco-caixa); }
.marco h3 { font-size: var(--letra-destaque); --el: var(--entrelinha-titulo); color: var(--cor-latao);
  position: sticky; top: var(--altura-menu); background: var(--cor-superficie); padding-block: var(--espaco-miudo); }
.marco li { display: flex; justify-content: space-between; align-items: baseline; gap: var(--grade-vao); padding-block: var(--espaco-miudo); }
.marco li a { text-decoration: none; }

/* ── palestras em lista em toda largura (Q-121), como a linha do tempo dos artigos: o ano à esquerda, o título ao lado,
   um fio entre elas; sem cartão. Uma forma só, do computador ao celular */
.palestras { border-bottom: var(--fio-dourado); }  /* a divisa só entre faixas de material diferente (Q-115): em cima, Artigos já é o mesmo claro (Q-120) */
.palestras li { background: none; padding-inline: 0; }  /* a disposição está no modelo (Q-123); aqui só o material */
.palestras .ano { font-size: var(--letra-destaque); --el: var(--entrelinha-justa); color: var(--cor-latao); font-variant-numeric: tabular-nums; }  /* algarismos da mesma largura: o título de toda palestra começa no mesmo x */
.palestras b { display: block; font-weight: var(--peso-negrito); --el: var(--entrelinha-titulo); }
.palestras small { display: block; }

/* ── faixa do museu: a legenda é outra camada da mesma célula */
.museu { position: relative; }
.museu img { grid-column: tela-ini / tela-fim; grid-row: 1; width: 100%; aspect-ratio: 15 / 4; object-fit: cover; }
.museu::after { content: ""; grid-column: tela-ini / tela-fim; grid-row: 1; background: linear-gradient(transparent 70%, var(--cor-marinho)); }  /* véu sob a legenda, no último terço */
/* a legenda como crédito de foto: itálico pequeno à direita, longe do nome; sem fio: a divisa já faz a emenda (Q-125, item 5) */
.museu figcaption { grid-column: tela-ini / tela-fim; justify-self: end; position: relative; z-index: 1; grid-row: 1; align-self: end;
  margin-right: var(--espaco-caixa); padding-block: var(--espaco-dentro-do-cartao); text-align: right;
  font-size: var(--letra-legenda); font-style: italic; color: var(--cor-texto-inverso-suave); }

/* ── contato */
/* uma faixa só: nome à esquerda; e-mail e redes no meio, separados pelo losango da estampa; cidade à direita */
.contato { background: var(--fundo-escuro); color: var(--cor-texto-inverso); border-top: var(--fio-dourado); }
/* a disposição do contato vem do modelo (desenho › pagina › contato), escrita pelo site/disposicao.mjs (Q-121); aqui fica o material da faixa e o losango */
/* os caminhos do contato eram os únicos links sem estado; o estado é a cor, a marca do escuro (Q-117) */
.contato a { transition: color var(--tempo-transicao); }
.contato a:is(:hover, :active) { color: var(--cor-latao-claro); }
/* a qualificação no corpo de apoio: sem isso o <small> cai no "smaller" do navegador (14,17 px), fora da escala */
.contato small { font-size: var(--letra-apoio); }
.contato .losango { width: calc(var(--espaco-miudo) * 1.5); height: calc(var(--espaco-miudo) * 1.5); margin-inline: var(--espaco-dentro-do-cartao);
  background: var(--cor-latao-claro); transform: rotate(45deg); }

/* sem palavra sozinha na última linha (Q-120) */
.destaque b, .livros b, .palestras b, .marco li a { text-wrap: pretty; }

/* ── foco: só a cor (Q-113, Q-117). O neutro vira marca: o título passa ao latão e o fio da folha ao fio de latão;
   nada de fundo, nada de forma nova (Q-115). O cartão inteiro é o alvo: o link do título se estende por ele.
   O mesmo estado para o mouse, o teclado (que também tem o contorno de :focus-visible) e o toque. */
.destaque .cartao, .livros li { position: relative; }
.destaque .cartao > a::before, .livros li > a:not(.capa)::before { content: ""; position: absolute; inset: 0; }
.destaque .cartao, .livros li, .destaque b, .livros b, .marco li a { transition: color var(--tempo-transicao), border-color var(--tempo-transicao); }
.destaque .cartao:is(:hover, :focus-within, :active), .livros li:is(:hover, :focus-within, :active) { border-color: var(--linha-marca); }
.destaque .cartao:is(:hover, :focus-within, :active) b, .livros li:is(:hover, :focus-within, :active) b, .marco li:is(:hover, :focus-within) a { color: var(--cor-latao); }
/* o IV do menu só aparece quando o do nome sai da tela (Q-121): a marca nunca duas vezes na mesma tela */
.menu:not(.solida) li.item-inicio .marca, .menu:not(.solida) .ancora-cel { visibility: hidden; opacity: 0; }
.ver-todos { display: inline-block; margin-bottom: var(--espaco-caixa); cursor: pointer; background: none; font-family: inherit; }
/* os artigos (Q-121; no computador também, Q-129): os dois anos mais recentes; os outros, pelo botão */
.tempo:not(.todos) .marco:nth-of-type(n+3) { display: none; }
/* o contato, objetivo da página, com a moldura de fio no menu (Q-111); o estado dele é a cor */
.menu ul a[href="#contato"] { border: var(--linha-fio) solid var(--linha-marca-inversa); padding-inline: var(--espaco-entre-itens); }
.menu ul a[href="#contato"]:is(:hover, [aria-current]) { color: var(--cor-latao-claro); }

/* ── celular: uma coluna; quem sangrava continua sangrando */
@media (max-width: 992px) {
  .faixa { grid-template-columns: [tela-ini] var(--margem-uma-coluna) [grade-ini c] minmax(0, 1fr) [grade-fim] var(--margem-uma-coluna) [tela-fim]; column-gap: 0; }  /* minmax(0): uma palavra longa não alarga a coluna além da tela */
  .faixa > *, .abertura .tarja, .tempo, .destaque { grid-column: grade-ini / grade-fim; grid-row: auto; }
  .destaque { grid-template-columns: minmax(0, 1fr); }
  .museu.faixa img, .museu.faixa figcaption { grid-row: 1; }  /* a legenda continua sobre a foto (vence o grid-row: auto das fotos, logo abaixo) */
  .museu img { grid-column: tela-ini / tela-fim; grid-row: auto; position: static; }
  .abertura .foto { grid-column: grade-ini / grade-fim; grid-row: auto; margin-block: calc(var(--altura-menu) + var(--espaco-cartao)) 0; }
  .abertura .tarja { padding-block: var(--espaco-secao) var(--espaco-caixa); justify-self: stretch; width: auto; }
  .abertura .foto { justify-self: center; width: 100%; max-width: var(--medida-texto); }  /* no tablet a foto quadrada não toma a tela inteira; no eixo do nome (07/11) */
  .abertura .tarja .frase { width: auto; min-width: 0; }
  .abertura h1 { font-size: var(--letra-nome-celular); }  /* um degrau abaixo do nome do computador e 1,4 × o título de seção (Q-120) */
  /* a linha do tempo recua 32 em vez de 48: mais 16 px de texto em cada item (Q-120) */
  .tempo { padding-left: calc(var(--espaco-cartao) * 2); }
  .tempo::before { inset-inline-start: var(--espaco-cartao); }
  .nome-iv { --fn: var(--letra-nome-celular); justify-content: center; }  /* no celular o topo fica no eixo central, com a frase e a foto (escolha do JP, 07/11) */
  .museu img { aspect-ratio: 3 / 2; }
  .museu figcaption { margin-right: var(--espaco-cartao); }
}
/* ── régua: index.html?grade mostra as colunas por cima (só para conferir) */
.grade-sobre { position: fixed; inset: 0; z-index: 20; pointer-events: none; grid-template-rows: 1fr; }
.grade-sobre > i { grid-column: span 1; grid-row: 1; background: var(--cor-latao); opacity: 0.12; }
.grade-sobre > i:first-child { grid-column: c 1 / span 1; }

/* ── index.html?marcas: a etiqueta de cada texto (textos.idh), para o Ismar apontar.
   A etiqueta entra no começo do texto, sem cobrir a linha de cima; a página desloca um
   pouco, o que só vale nesse modo */
.marcas [data-t] { outline: var(--linha-fio) dashed var(--cor-latao-fio); }
.marcas [data-t]::before { content: attr(data-t); display: inline-block; margin-inline-end: var(--espaco-miudo);
  padding-inline: var(--espaco-miudo); font: var(--peso-negrito) var(--letra-rotulo) / var(--entrelinha-justa) var(--familia);
  letter-spacing: normal; text-transform: none; vertical-align: middle; color: var(--cor-texto-inverso); background: var(--cor-latao); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* ── livros (Q-096, Q-100): vitrine parada, os três principais; passa de quatro, rola de lado */
.livros .vitrine { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--grade-vao); }  /* três livros, três colunas: sem o vão do quarto (Q-111) */
.livros li { display: grid; grid-template-columns: min(40%, calc(var(--grade-coluna) * 1.5)) minmax(0, 1fr); column-gap: var(--espaco-cartao); align-content: start;
  border: var(--linha-fio) solid var(--linha-neutra); }  /* a capa à esquerda, o texto ao lado, em toda tela */
.livros .capa { grid-row: 1 / span 4; }
.livros li > :not(.capa) { grid-column: 2; }
.livros .capa { display: block; line-height: 0; }
.livros img { width: 100%; height: auto; aspect-ratio: 345 / 508; object-fit: cover; box-shadow: var(--sombra-capa); }
.livros .ano { font-size: var(--letra-destaque); --el: var(--entrelinha-justa); color: var(--cor-latao); font-variant-numeric: tabular-nums; }  /* o ano, um papel só: 20 em latão, como nas palestras (Q-125, item 4) */
.livros b { display: block; font-weight: var(--peso-negrito); }
.livros small { display: block; }
.livros a { color: inherit; text-decoration: none; }

/* ── celular, seção a seção (Q-109): cada seção pensada para a tela estreita, não a de mesa empilhada.
   Fica no fim do arquivo para vencer as regras gerais acima (a dos livros vinha depois do bloco do celular e o anulava). */
@media (max-width: 992px) {
  /* abertura: o nome primeiro, a foto logo abaixo; a primeira tela traz os dois */
  .abertura .tarja { order: 1; padding-block: calc(var(--altura-menu) + var(--espaco-entre-blocos)) var(--espaco-caixa); }
  .abertura .foto { order: 2; margin-block: 0 var(--espaco-entre-blocos); }
  /* livros: um por linha, a capa à esquerda e o texto ao lado; nenhum fica escondido de lado */
  .livros .vitrine { grid-template-columns: minmax(0, 1fr); }
  .livros li { grid-template-columns: min(30%, calc(var(--grade-coluna) * 1.5)) minmax(0, 1fr); }
  .livros b { --el: var(--entrelinha-titulo); }
}

/* ── celular (abaixo de 640, Q-120): o que só o celular pede; o tablet fica com o bloco de cima */
@media (max-width: 640px) {
  /* o menu colapsa no ☰ (Q-104); o IV fica ao lado dele (Q-106) */
  /* a lista abre num quadro do tamanho dela, preso à direita, logo abaixo do ☰; não toma a largura toda */
  .menu.aberta ul { display: flex; flex-direction: column; align-items: flex-start; gap: var(--espaco-cartao); position: absolute;
    top: 100%; right: var(--margem-uma-coluna); width: max-content; padding: var(--espaco-cartao) var(--espaco-caixa);
    background: var(--cor-marinho); border: var(--linha-fio) solid var(--linha-neutra-inversa); }
  .menu.aberta::before { opacity: 1; }
  .menu li.item-inicio { display: none; }
  .botao-menu { display: block; }
  /* alvos de toque de 48 px (Q-120: Material 48, Apple 44; o WCAG 2.5.8 pede 24): o ☰, o IV e os links do contato */
  .botao-menu { display: grid; place-items: center; min-width: calc(var(--espaco-caixa) * 2); min-height: calc(var(--espaco-caixa) * 2); padding: 0; }
  .marco li { flex-direction: column; gap: 0; }
}

/* ── menu: gerado de desenho › pagina › menu (eon/modelo.idh) */
.menu .menu-linha { display: flex; align-items: center; justify-content: flex-end; }
.menu ul { display: flex; align-items: center; gap: var(--espaco-titulo-conteudo); flex: 1 1 auto; }
.menu li.item-inicio { margin-inline-end: auto; }
.menu li.item-inicio .marca { display: flex; align-items: center; gap: var(--espaco-dentro-do-cartao); }
.menu li.item-inicio .marca img { height: var(--espaco-entre-blocos); width: auto; }
.menu li.item-inicio .marca .nome { position: static; width: auto; height: auto; overflow: visible; clip-path: none; white-space: nowrap; font-size: var(--letra-livro); }
.menu .ancora-cel { display: none; }
.menu .ancora-cel img { height: var(--espaco-caixa); width: auto; }
.menu .ancora-cel .nome { position: absolute; width: var(--linha-fio); height: var(--linha-fio); overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 992px) {
.menu li.item-inicio .marca .nome { position: absolute; width: var(--linha-fio); height: var(--linha-fio); overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media (max-width: 640px) {
.menu .menu-linha { display: grid; justify-content: flex-end; grid-template-columns: 1fr; gap: var(--espaco-cartao); }
.menu ul { display: none; }
.menu .ancora-cel { display: grid; grid-template-columns: 1fr auto 1fr; place-items: center; gap: 0; grid-column: 1 / -1; grid-row: 1; min-width: calc(var(--espaco-caixa) * 2); min-height: calc(var(--espaco-caixa) * 2); }
.menu .ancora-cel img { height: var(--espaco-entre-blocos); width: auto; justify-self: start; }
.menu .ancora-cel .nome { position: static; width: auto; height: auto; overflow: visible; clip-path: none; white-space: nowrap; font-size: var(--letra-livro); grid-column: 2; }
.menu .botao-menu { grid-column: 1 / -1; grid-row: 1; justify-self: end; }
}

/* ── quem sou: gerado de desenho › pagina › quem sou (eon/modelo.idh) */
.quem .foto { grid-column: tela-ini / c 6; grid-row: 1; position: relative; margin-top: 0; margin-bottom: 0; }
.quem .foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.quem .corpo { grid-column: c 6 / grade-fim; grid-row: 1; }
.quem .corpo h2 { margin-bottom: var(--espaco-titulo-conteudo); }
.quem .corpo > p { color: var(--cor-texto-suave); margin-bottom: var(--espaco-paragrafo); max-width: var(--medida-texto); text-wrap: pretty; }
.quem .corpo .areas { display: flex; flex-wrap: wrap; column-gap: 0; margin-top: var(--espaco-entre-blocos); row-gap: var(--espaco-entre-itens); margin-inline-start: calc(-1 * calc(var(--espaco-entre-itens) * 2 + 0.3em)); clip-path: inset(0 0 0 calc(var(--espaco-entre-itens) * 2 + 0.3em)); max-width: var(--medida-texto); }
.quem .corpo .areas::before { padding-inline-start: calc(var(--espaco-entre-itens) * 2 + 0.3em); }
.quem .corpo .areas > li { padding-inline-start: calc(var(--espaco-entre-itens) * 2 + 0.3em); }
.quem .corpo .areas > li::before { content: "·"; display: inline-block; width: calc(var(--espaco-entre-itens) * 2 + 0.3em); margin-inline-start: calc(-1 * calc(var(--espaco-entre-itens) * 2 + 0.3em)); text-align: center; color: var(--cor-apoio); }
.quem .corpo .areas::before { content: attr(aria-label); display: block; flex-basis: 100%; font-size: var(--letra-rotulo); font-weight: var(--peso-negrito); letter-spacing: var(--entreletras-versal); text-transform: uppercase; color: var(--cor-latao); margin-bottom: var(--espaco-rotulo-titulo); }
.quem .corpo .areas li { color: var(--cor-texto-suave); }
.quem .corpo .cargos { margin-block: var(--espaco-entre-blocos); max-width: var(--medida-texto); }
.quem .corpo .cargos li { padding-block: var(--espaco-entre-itens); border-bottom: none; }
.quem .corpo .cargos b { display: block; font-weight: var(--peso-negrito); }
.quem .corpo .cargos span { display: block; }
@media (max-width: 992px) {
.quem .foto { grid-column: tela-ini / tela-fim; grid-row: auto; order: 2; position: static; height: auto; margin-bottom: var(--espaco-secao); }
.quem .foto img { position: static; width: 100%; height: auto; aspect-ratio: 3 / 2; }
.quem .corpo { grid-column: grade-ini / grade-fim; grid-row: auto; order: 1; padding-bottom: 0; }
}

/* ── palestras: gerado de desenho › pagina › palestras (eon/modelo.idh) */
.palestras .titulo-secao { grid-column: grade-ini / grade-fim; grid-row: auto; }
.palestras ul { grid-column: grade-ini / grade-fim; grid-row: auto; display: grid; grid-template-columns: minmax(0, 1fr); }
.palestras ul li { grid-column: 1 / -1; display: grid; grid-template-columns: auto 1fr; column-gap: var(--espaco-caixa); align-items: baseline; border-bottom: none; }
.palestras ul li .ano { grid-row: 1 / span 2; }
.palestras ul li > :not(.ano) { grid-column: 2; }
@media (max-width: 992px) {
.palestras .titulo-secao { grid-column: grade-ini / grade-fim; grid-row: auto; }
.palestras ul { grid-column: grade-ini / grade-fim; grid-row: auto; grid-template-columns: minmax(0, 1fr); }
.palestras ul li { grid-template-columns: auto 1fr; }
.palestras ul li > :not(.ano) { grid-column: 2; }
}
@media (max-width: 640px) {
.palestras ul li { column-gap: var(--espaco-cartao); }
}

/* ── contato: gerado de desenho › pagina › contato (eon/modelo.idh) */
.contato { padding-block: var(--espaco-secao); }
.contato .coluna { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: var(--grade-vao); }
.contato .coluna .assinatura { grid-row: 1 / span 2; }
.contato .coluna .assinatura b { display: block; font-size: var(--letra-assinatura); --el: var(--entrelinha-titulo); font-weight: var(--peso-regular); }
.contato .coluna .assinatura small { display: block; color: var(--cor-apoio-inverso); margin-top: var(--espaco-entre-itens); }
.contato .coluna .linha { display: flex; flex-wrap: wrap; column-gap: 0; align-items: center; justify-content: flex-start; row-gap: var(--espaco-entre-itens); font-size: var(--letra-corpo); color: var(--cor-texto-inverso-suave); }
.contato .coluna .cidade { font-size: var(--letra-apoio); color: var(--cor-apoio-inverso); grid-column: 2 / 3; }
@media (max-width: 992px) {
.contato .coluna { grid-template-columns: 1fr; gap: 0; }
.contato .coluna .assinatura { grid-row: auto; }
.contato .coluna .linha { justify-content: flex-start; margin-top: var(--espaco-entre-blocos); }
.contato .coluna .linha > :first-child { flex-basis: 100%; }
.contato .coluna .linha > :first-child + .losango { display: none; }
.contato .coluna .linha a { display: inline-flex; align-items: center; min-height: calc(var(--espaco-caixa) * 2); }
.contato .coluna .cidade { grid-column: auto / auto; margin-top: var(--espaco-entre-itens); }
}
