{
 "marca": "Mothus Logística",
 "atualizado": "2026-09-17",
 "_leia_me": "O sistema visual da Mothus, legível por máquina. Ordem de autoridade: MARCA.md (a palavra) > este arquivo (a forma) > gosto. Todo px é da lona de 1080x1350. Para a Bíblia (container de 2000px) divida por 10,8 para obter cqw. Este arquivo é GERADO por gerar-pacote.mjs — não editar à mão.",
 "onde": {
  "pagina": "https://mothus-marca.pages.dev",
  "biblia_png": "biblia/biblia-mothus.png",
  "biblia_pdf": "biblia/biblia-mothus.pdf",
  "tokens_css": [
   "tokens/mothus.css",
   "tokens/mothus-peca.css"
  ]
 },
 "lona": {
  "largura": 1080,
  "altura": 1350,
  "alturaStory": 1920,
  "margem": 88,
  "areaUtil": 904,
  "unidade": "px da lona 1080 — o conferidor converte o px renderizado pela escala 1080/largura-da-lamina"
 },
 "tokens": {
  "base": {
   "--mo-verde-950": "#00160e",
   "--mo-verde-900": "#06301d",
   "--mo-verde-800": "#063f28",
   "--mo-verde-600": "#0f7350",
   "--mo-verde-500": "#0b6e44",
   "--mo-verde-400": "#32ae70",
   "--mo-verde-200": "#b2d6a8",
   "--mo-creme": "#f7f5f1",
   "--mo-branco": "#ffffff",
   "--mo-tinta": "#12281d",
   "--mo-tinta-2": "#4a6157",
   "--mo-linha": "#e2ded7",
   "--mo-aco": "#888884",
   "--mo-peso-negro": "900",
   "--mo-sup": "var(--mo-creme)",
   "--mo-sup-2": "var(--mo-branco)",
   "--mo-sup-ancora": "var(--mo-verde-800)",
   "--mo-sup-foto": "var(--mo-verde-950)",
   "--mo-veu-1": "color-mix(in srgb, var(--mo-verde-950) 88%, transparent)",
   "--mo-veu-2": "color-mix(in srgb, var(--mo-verde-800) 52%, transparent)",
   "--mo-veu-3": "color-mix(in srgb, var(--mo-verde-800) 0%, transparent)",
   "--mo-veu-4": "color-mix(in srgb, var(--mo-verde-950) 46%, transparent)",
   "--mo-texto": "var(--mo-tinta)",
   "--mo-texto-2": "var(--mo-tinta-2)",
   "--mo-texto-3": "var(--mo-aco)",
   "--mo-chave": "var(--mo-verde-500)",
   "--mo-rotulo": "var(--mo-verde-500)",
   "--mo-texto-inv": "var(--mo-creme)",
   "--mo-texto-2-inv": "var(--mo-verde-200)",
   "--mo-chave-inv": "var(--mo-verde-400)",
   "--mo-btn-sup": "var(--mo-verde-400)",
   "--mo-btn-texto": "var(--mo-verde-900)",
   "--mo-pilula-sup": "var(--mo-verde-600)",
   "--mo-pilula-texto": "var(--mo-branco)",
   "--mo-borda": "var(--mo-linha)",
   "--mo-grade": "var(--mo-linha)",
   "--mo-grade-escura": "var(--mo-verde-900)",
   "--mo-fio": "o fio do frio. ATRAVESSA a borda e continua no quadro vizinho — é ele que costura o feed de 9 a partir da arte única. --mo-rota : liga elementos DENTRO de uma lâmina. Curva, com pontos de parada. */ --mo-fio:var(--mo-verde-400)",
   "--mo-rota": "var(--mo-verde-400)",
   "--mo-rota-sombra": "color-mix(in srgb, var(--mo-verde-950) 35%, transparent)",
   "--mo-rota-ponto": "var(--mo-sup)",
   "--mo-rota-ponto-inv": "var(--mo-sup-ancora)",
   "--mo-icone": "var(--mo-verde-500)",
   "--mo-icone-inv": "var(--mo-verde-400)",
   "--mo-lastro": "var(--mo-verde-800)",
   "--mo-lastro-inv": "var(--mo-verde-200)",
   "--mo-lastro-op": ".06",
   "--mo-lastro-op-inv": ".10",
   "--mo-num-fam": "var(--mo-sans)",
   "--mo-num-peso": "var(--mo-peso-negro)",
   "--mo-faixa-congelado": "var(--mo-verde-950)",
   "--mo-faixa-resfriado": "var(--mo-verde-500)",
   "--mo-faixa-seca": "var(--mo-verde-200)",
   "--mo-sans": "\"Figtree\",system-ui,-apple-system,\"Segoe UI\",Roboto,sans-serif",
   "--mo-serif": "\"Newsreader\",Georgia,\"Times New Roman\",serif",
   "--mo-peso-corpo": "450",
   "--mo-peso-medio": "500",
   "--mo-peso-forte": "650",
   "--mo-peso-chave": "800",
   "--mo-container": "82rem",
   "--mo-pad-x": "clamp(1.25rem,4vw,2rem)",
   "--mo-sec": "clamp(4rem,9vh,7.5rem)",
   "--mo-r-sm": "10px",
   "--mo-r-md": "12px",
   "--mo-r-lg": "16px",
   "--mo-r-xl": "1.5rem",
   "--mo-r-foto": "34px",
   "--mo-r-pill": "999px",
   "--mo-e1": ".5rem",
   "--mo-e2": ".75rem",
   "--mo-e3": "1rem",
   "--mo-e4": "1.5rem",
   "--mo-e5": "2rem",
   "--mo-e6": "3rem",
   "--mo-e7": "6rem",
   "--mo-sombra": "color-mix(in srgb, var(--mo-tinta) 17%, transparent)",
   "--mo-sombra-contato": "color-mix(in srgb, var(--mo-verde-950) 22%, transparent)",
   "--mo-sombra-forte": "color-mix(in srgb, var(--mo-verde-950) 34%, transparent)",
   "--mo-sh-chip": "0 12px 28px var(--mo-sombra)",
   "--mo-sh-card": "0 18px 44px var(--mo-sombra)",
   "--mo-sh-painel": "0 30px 70px var(--mo-sombra)",
   "--mo-sh-relevo": "0 8px 18px var(--mo-sombra-contato), 0 40px 80px var(--mo-sombra-forte)",
   "--mo-ease": "cubic-bezier(.4,0,.2,1)",
   "--mo-easeOut": "cubic-bezier(0,0,.58,1)",
   "--mo-t-pressao": "120ms",
   "--mo-t-micro": "180ms",
   "--mo-t-ui": "300ms",
   "--mo-t-entra": "700ms",
   "--mo-btn-pad": ".9rem 1.6rem",
   "--mo-btn-fs": "14.5px",
   "--mo-olho-fs": "12px",
   "--mo-olho-track": ".18em"
  },
  "peca": {
   "--pc-larg": "1080px",
   "--pc-alt": "1350px",
   "--pc-alt-story": "1920px",
   "--pc-margem": "88px",
   "--pc-corte-grid": "135px",
   "--pc-seguro-topo": "calc(var(--pc-margem) + var(--pc-corte-grid))",
   "--pc-seguro-base": "calc(var(--pc-margem) + var(--pc-corte-grid))",
   "--pc-util": "904px",
   "--pc-e1": "16px",
   "--pc-e2": "24px",
   "--pc-e3": "32px",
   "--pc-e4": "48px",
   "--pc-e5": "64px",
   "--pc-e6": "88px",
   "--pc-e7": "128px",
   "--pc-h1": "132px",
   "--pc-h1-fam": "var(--mo-sans)",
   "--pc-h1-peso": "var(--mo-peso-chave)",
   "--pc-h1-lh": ".92",
   "--pc-h1-track": ".01em",
   "--pc-h1-caixa": "uppercase",
   "--pc-h1-7": "164px",
   "--pc-h1-8": "152px",
   "--pc-h1-9": "132px",
   "--pc-h1-10": "120px",
   "--pc-h1-11": "112px",
   "--pc-h1-12": "104px",
   "--pc-h1-13": "96px",
   "--pc-h2": "92px",
   "--pc-h2-capa": "68px",
   "--pc-h2-fam": "var(--mo-serif)",
   "--pc-h2-peso": "800",
   "--pc-h2-lh": "1.00",
   "--pc-h2-track": "-.025em",
   "--pc-h2-max": "34ch",
   "--pc-h3": "46px",
   "--pc-h3-peso": "var(--mo-peso-forte)",
   "--pc-h3-lh": "1.12",
   "--pc-h3-track": "-.005em",
   "--pc-h3-max": "28ch",
   "--pc-h4": "34px",
   "--pc-h4-peso": "var(--mo-peso-corpo)",
   "--pc-h4-lh": "1.5",
   "--pc-h4-max": "38ch",
   "--pc-chave": "124px",
   "--pc-chave-track": "-.02em",
   "--pc-complemento": "84px",
   "--pc-apoio": "42px",
   "--pc-apoio-max": "26ch",
   "--pc-cta": "40px",
   "--pc-legenda": "28px",
   "--pc-lh-titulo": "1.04",
   "--pc-lh-apoio": "1.42",
   "--pc-numero": "210px",
   "--pc-numero-fam": "var(--mo-num-fam)",
   "--pc-numero-peso": "var(--mo-num-peso)",
   "--pc-numero-lh": ".86",
   "--pc-numero-track": "-.035em",
   "--pc-numero-num": "lining-nums proportional-nums",
   "--pc-numero-unidade": "56px",
   "--pc-numero-trio": "96px",
   "--pc-numero-regua": "6px",
   "--pc-rota-traco": "6px",
   "--pc-rota-raio": "120px",
   "--pc-rota-raio-min": "72px",
   "--pc-rota-raio-max": "180px",
   "--pc-rota-dash": "2 18",
   "--pc-rota-vao": "32px",
   "--pc-fio": "var(--pc-rota-traco)",
   "--pc-ponto-d": "28px",
   "--pc-ponto-borda": "6px",
   "--pc-ponto-d-origem": "24px",
   "--pc-ponto-d-destino": "36px",
   "--pc-ponto-halo": "52px",
   "--pc-marcador-d": "22px",
   "--pc-marcador-top": "12px",
   "--pc-icone": "64px",
   "--pc-icone-g": "128px",
   "--pc-icone-min": "48px",
   "--pc-icone-traco": "4px",
   "--pc-icone-caixa": "96px",
   "--pc-icone-gap": "24px",
   "--pc-lastro-tam": "368px",
   "--pc-lastro-min": "216px",
   "--pc-lastro-max": "560px",
   "--pc-lastro-sangra-max": "840px",
   "--pc-lastro-off": "-65px",
   "--pc-lastro-traco": "8px",
   "--pc-lastro-sangra": "12%",
   "--pc-lastro-max-qtd": "2",
   "--pc-z-fundo": "0",
   "--pc-z-grade": "1",
   "--pc-z-lastro": "2",
   "--pc-z-veu": "3",
   "--pc-z-rota": "4",
   "--pc-z-conteudo": "5",
   "--pc-card-pad": "44px",
   "--pc-card-r": "24px",
   "--pc-card-borda": "2px",
   "--pc-card-sup": "var(--mo-sup-2)",
   "--pc-card-sup-inv": "var(--mo-verde-950)",
   "--pc-card-tarja": "6px",
   "--pc-topico": "36px",
   "--pc-topico-lh": "1.3",
   "--pc-topico-gap": "28px",
   "--pc-topico-recuo": "56px",
   "--pc-topico-ch": "42ch",
   "--pc-topico-max": "5",
   "--pc-topico-min": "3",
   "--pc-cabeca-alt": "140px",
   "--pc-cabeca-r": "44px",
   "--pc-cabeca-sup": "var(--mo-sup-ancora)",
   "--pc-cabeca-logo": "184px",
   "--pc-logo-larg": "184px",
   "--pc-respiro-logo": "50px",
   "--pc-etiqueta-fs": "26px",
   "--pc-etiqueta-pad": "14px 28px",
   "--pc-etiqueta-r": "8px",
   "--pc-faixa-alt": "24px",
   "--pc-faixa-vao": "4px",
   "--pc-citacao": "52px",
   "--pc-selo-r": "16px",
   "--pc-r-foto": "34px",
   "--pc-r-pilula": "999px",
   "--pc-pilula-pad": "34px 56px",
   "--pc-pilula-y": "1055px",
   "--pc-grade-ang": "12deg",
   "--pc-grade-ripa": "3px",
   "--pc-grade-vao": "26px",
   "--pc-sh-1": "0 8px 20px var(--mo-sombra)",
   "--pc-sh-2": "0 20px 44px color-mix(in srgb, var(--mo-verde-950) 25%, transparent)",
   "--pc-sh-3": "0 10px 22px var(--mo-sombra-contato), 0 44px 88px var(--mo-sombra-forte)",
   "--pc-sh-3-inv": "0 0 0 8px var(--mo-sup-ancora), 0 44px 88px color-mix(in srgb, var(--mo-verde-950) 55%, transparent)",
   "--pc-foto-borda": "4px",
   "--pc-veu": "linear-gradient(180deg, var(--mo-veu-1) 0%, var(--mo-veu-2) 30%, var(--mo-veu-3) 55%, var(--mo-veu-3) 76%, var(--mo-veu-4) 100%)",
   "--pc-limpa-capa": "760px",
   "--pc-limpa-interna": "620px",
   "--pc-limpa-lateral": "600px",
   "--pc-limpa-story": "780px",
   "--pc-horizonte": "65%",
   "--pc-foto-pos": "50% 50%",
   "--pc-ritmo-ciclo": "3",
   "--pc-ancora-max": "1",
   "--pc-ritmo-dl": "18",
   "--pc-foto-l-min": "42",
   "--pc-foto-l-max": "68"
  }
 },
 "hierarquia": [
  {
   "nivel": "H1",
   "papel": "O HOOK. Palavra-chave de servico ou de lugar, nao frase. E o unico elemento da peca que existe pra ser lido a 150px no grid do perfil, e tudo o mais na capa serve a ele. Nao explica, nao promete, nao conjuga verbo.",
   "onde_aparece": "SO na capa (lamina 1) e no topo do story. UM por bloco. Nunca em lamina interna, nunca duas vezes, nunca na mesma lamina do numero grande (o numero continua proibido na capa, e agora com motivo escrito: os dois disputariam o mesmo papel e quem perde e o hook).",
   "familia": "var(--mo-sans) — Figtree. 🔴 DECISAO REGISTRADA: o hook sai da serifa. Medido: Newsreader 800 em caixa alta gasta 0,71–0,81 em/caractere contra 0,64–0,72 da Figtree, 12 a 15% mais largura no elemento mais apertado da lona; e serifa tem modulacao alta, o filete fino some na miniatura de 150px. A Newsreader nao perde espaco: ela ganha o H2, que aparece em 4 das 6 laminas, mais a citacao.",
   "peso": "800 (var(--mo-peso-chave))",
   "tamanho_px": "132px de base = 12.22cqw. 🔴 O TAMANHO E TABELA, escolhido pela LINHA MAIS LONGA e nao pelo gosto nem pelo total de caracteres: ate 7 car. = 164px (15.19cqw) · 8 = 152px (14.07cqw) · 9 = 132px (12.22cqw) · 10 = 120px (11.11cqw) · 11 = 112px (10.37cqw) · 12 = 104px (9.63cqw) · 13 = 96px (8.89cqw) · 14 ou mais = QUEBRA A LINHA, nunca reduz abaixo de 96px. Medido no Chrome com a fonte carregada, a 132px: REDESPACHO = 900,5px (99,6% dos 904 seguros, estoura a faixa), CROSS-DOCKING = 1139,7px (126%), CAMARA FRIA = 928,5px (103%), CONGELADO = 855,1px (94,6%, passa). Auto-ajuste no render: mede o scrollWidth e desce de 4 em 4px ate ficar entre 78% e 96% dos 904px.",
   "caixa": "UPPERCASE sempre, via text-transform no CSS e com o texto no HTML escrito em caixa normal — caixa alta digitada quebra leitor de tela e quebra busca. Alinhado a esquerda, nunca centralizado (atributo Reta do prisma).",
   "limite": "Maximo 13 caracteres POR LINHA, 3 linhas e 4 palavras. Conteudo: palavra de SERVICO ou de LUGAR — CARGA FRACIONADA, CAMARA FRIA, REDESPACHO, CROSS-DOCKING, SAO JOSE, CARGA SECA. Nunca adjetivo, nunca verbo de promessa, nunca temperatura em graus.",
   "leading": "0.92 (--pc-h1-lh). A 132px da 121,4px por linha; 3 linhas = 364px, comecando em Y=223 e terminando em Y=587, dentro dos 904px de area segura com folga.",
   "tracking": "+0.01em (--pc-h1-track). 🔴 NAO herda os -0.02em de --pc-chave: aquele valor foi medido em caixa mista e em caixa alta fecha a contraforma e empasta a palavra na miniatura de 150px.",
   "classe_css": ".pc__h1 (alias na Biblia: .lam .h1). Cor: sobre FOTO #FFF com uma palavra em var(--mo-verde-200) — 13,5:1 no pior caso sob o veu a 88%; sobre ANCORA var(--mo-texto-inv) com uma palavra em var(--mo-verde-200) (7,48:1); sobre CLARA var(--mo-texto) com uma palavra em var(--mo-chave) (5,79:1).",
   "proibido": "Verde-400 (#32AE70) em H1 sobre creme — 2,60:1, reprova. E o defeito que ja esta vivo em .lam .tit .c (biblia.html:182)."
  },
  {
   "nivel": "H2",
   "papel": "Subtitulo em estilo de titulo. Frase curta e AUTONOMA, que se sustenta sem o H1 — nao e a continuacao gramatical dele, o que REBAIXA --pc-complemento: os dois pesos 124/84 deixam de ser o topo da escala e passam a ser o par interno de UMA frase. Continua valendo a regra dos dois pesos dentro da frase: a palavra-chave em cor, o resto na tinta.",
   "onde_aparece": "Dois lugares: na capa, sob o H1, em UMA linha (variante --capa); e como titulo de TODA lamina interna. E o nivel mais frequente do sistema e o que mantem a serifa viva com funcao.",
   "familia": "var(--mo-serif) — Newsreader. E exatamente o que as 10 laminas ja renderizam em .lam .tit, e e o titulo serifado que a Amanda aprovou nas duas referencias: por isso .tit vira alias de .pc__h2 e nada quebra.",
   "peso": "800",
   "tamanho_px": "92px = 8.52cqw na lamina interna (o valor renderizado hoje, agora cravado). Variante de capa --pc-h2-capa: 68px = 6.30cqw, pra nao competir com o H1.",
   "caixa": "Sentence case. Caixa alta em H2 REPROVA — a caixa alta e do hook e de mais nada.",
   "limite": "34 caracteres e 2 linhas na interna; 28 caracteres e 1 linha na capa. Alinhado a esquerda sempre.",
   "leading": "1.00 (--pc-h2-lh)",
   "tracking": "-0.025em (--pc-h2-track)",
   "classe_css": ".pc__h2 / .pc__h2--capa (alias na Biblia: .lam .h2, com .lam .tit mantido como alias de compatibilidade). Cor: var(--mo-texto) no claro, var(--mo-texto-inv) no escuro, uma palavra em var(--mo-chave) / var(--mo-chave-inv).",
   "proibido": "Caixa alta. E abrir com pergunta-charada do tipo 'quem X e quem Y', que o MARCA.md §6 proibe por escrito."
  },
  {
   "nivel": "H3",
   "papel": "Abre o bloco de topicos. E o degrau que hoje nao existe — por isso as laminas 3 e 4 da folha de anatomia improvisam com style inline (font-size:6.4cqw e 7cqw em cima do .tit). O H3 e o que permite 'textos em topicos bem distribuidos' sem cada topico virar um titulo.",
   "onde_aparece": "SO em lamina INTERNA (2 a 5), e SO imediatamente acima de um .pc__topicos ou de um par icone+dado. Nunca na capa, nunca na lamina de CTA, nunca sozinho, maximo 2 por lamina — com 3 a lamina virou indice, e indice e lamina errada.",
   "familia": "var(--mo-sans) — Figtree. 🔴 A linha que faltava pras duas familias terem papel e nao gosto: SERIFA = voz da marca (H1 nao, porque e caixa alta; H2 e citacao sim); SANS = voz da informacao (H1 hook, H3, H4, topico, numero, olho, CTA, etiqueta).",
   "peso": "650 (var(--mo-peso-forte))",
   "tamanho_px": "46px = 4.26cqw",
   "caixa": "Sentence case. O .pc__olho (28px, caixa alta, tracking .18em) continua existindo e e OUTRA coisa: rotulo de secao, nao titulo.",
   "limite": "28 caracteres, 1 linha. Se nao couber em uma linha, o texto esta errado, nao o tamanho. Nome de servico do setor, nunca frase.",
   "leading": "1.12 (--pc-h3-lh)",
   "tracking": "-0.005em",
   "classe_css": ".pc__h3 (alias: .lam .h3)",
   "proibido": "Aparecer na capa. Aparecer sem uma lista embaixo."
  },
  {
   "nivel": "H4",
   "papel": "O TEXTAO. Bloco corrido de explicacao, pra quando a lamina precisa explicar um processo (o que e redespacho, como funciona o cross-docking). E papel NOVO, nao e o --pc-apoio esticado: o apoio continua com teto de 2 linhas e 26ch, para legenda sob titulo.",
   "onde_aparece": "SO dentro de .pc__card, e SO em UMA lamina por bloco de 6. Nunca na capa, nunca na lamina do numero, nunca solto sobre o fundo, nunca sobre foto. Fora do card o textao vira parede e mata o atributo Reta; dentro do card a excecao esta nomeada — e uma ideia COM PARTES, nao varias ideias.",
   "familia": "var(--mo-sans) — Figtree",
   "peso": "450 (var(--mo-peso-corpo))",
   "tamanho_px": "34px = 3.15cqw",
   "caixa": "Sentence case, alinhado a esquerda, nunca justificado.",
   "limite": "38 caracteres de largura de coluna (--pc-h4-max:38ch) e 5 linhas — cerca de 190 caracteres. A conta: o card tem 904px de largura maxima menos 44px de padding de cada lado = 816px uteis, e 38ch a 34px dao ~646px, folgados. 5 linhas x 51px = 255px + 88 de padding = card de 343px de altura. Passou disso, e assunto de duas laminas — ou vai pra legenda do post.",
   "leading": "1.50 (--pc-h4-lh). O apoio usa 1,42; o textao precisa de mais ar, senao vira parede.",
   "tracking": "0",
   "classe_css": ".pc__h4, sempre dentro de .pc__card (alias: .lam .h4). Cor: var(--mo-texto-2) (6,14:1) sobre card branco; var(--mo-texto-inv) (17,4:1) sobre card verde-950.",
   "proibido": "Existir fora do .pc__card. Aparecer em mais de uma lamina por bloco. Ser justificado."
  }
 ],
 "numero": {
  "familia": "var(--mo-num-fam) = var(--mo-sans) = Figtree. Sai da Newsreader nos SETE lugares onde ela esta cravada hoje, de uma vez: tokens/mothus-peca.css:37, biblia.html:95 (.e6), biblia.html:187 (.lam .big), biblia.html:328 (a legenda escrita 'NEWSREADER 500 · 170-210 PX'), biblia.html:563 (o quadro de PROIBIDO, que desenha o exemplo justamente no estilo reprovado), manual.html:471 e manual.html:493. Qualquer um deixado pra tras faz a proxima IA copiar serifa light de novo.",
  "peso": "900 (--mo-peso-negro, token novo). E o unico lugar do sistema que usa 900, e por isso ele e a coisa mais pesada da lona — que e literalmente o que o Nathan pediu. 🔴 NAO e terceira familia: a Figtree e variavel de 300 a 900. 🔴 CUSTO: exige trocar o import para `Figtree:wght@300..900` em biblia.html:6, manual.html:3 e marca.html:8 — conferi na API do Google que responde 200 com uma face variavel 300 900. Sem essa linha o 900 cai calado em 800 e ninguem ve. O conferidor checa o font-weight computado.",
  "tamanho_px": "210px = 19.44cqw. 🔴 CRAVA o token de hoje e DERRUBA os 22cqw (237,6px) que a Biblia renderiza por conta propria. Nao subo o corpo: medi '80' a 210px e Figtree 900 da 256,2px contra 247,8px da Newsreader 500 — a troca de peso ja engorda o algarismo em quase tres vezes em massa de traco, e subir junto estoura a area segura sem ganho. Unidade ao lado (M², POSICOES, REGIOES) em --pc-numero-unidade:56px = 5.19cqw, Figtree 650, caixa alta, tracking .14em, alinhada pela baseline do algarismo, em --mo-texto-2 / --mo-texto-2-inv.",
  "tracking": "-.035em (--pc-numero-track). Mais fechado que os -.03em herdados do titulo porque a Figtree 800/900 tem sidebearing maior que a Newsreader e a 210px isso abre um vao visivel entre os dois digitos.",
  "tratamento": "line-height .86 (--pc-numero-lh) · font-variant-numeric: lining-nums PROPORTIONAL-nums. 🔴 PROPORCIONAL, e aqui contrario o caminho obvio: tabular-nums faz o '1' ocupar o mesmo avanco do '0' e abre um vao morto de uns 40px ao lado dele num corpo de 210px, e os numeros da Mothus sao 80, 32, 100, 700 e 058435566. Tabular fica reservado pra --pc-legenda, pra ficha tecnica e pra cota, onde algarismo alinha em coluna e o alinhamento importa. Hoje o numero de destaque nao tem NENHUM ajuste numerico — tabular-nums so existe no rotulo mono de 19px da Biblia (.num). Variante --regua: display:inline-block com border-bottom:6px solid var(--mo-rota) e padding-bottom:24px, da largura exata do algarismo — o numero da Mothus nao e ornamento editorial, e medida, e a regua embaixo diz isso em traco. Cor: var(--mo-chave) #0B6E44 (5,79:1) sobre CLARA; var(--mo-chave-inv) #32AE70 (4,24:1) sobre ANCORA e FOTO, que passa por estar muito acima dos 18,7px em peso 700+ da regua.",
  "variantes": [
   "--pc-numero-trio: 96px = 8.89cqw, Figtree 800, pra quando ha tres numeros na mesma lamina (80 congelado / 32 resfriado / 100 seca). Hoje a unica forma de mostrar numero e uma lamina inteira com um numero de 210px, e os numeros da Mothus andam em trio.",
   "--regua: a barra de 6px em --mo-rota colada embaixo do algarismo, da largura dele.",
   "unidade: 56px, Figtree 650, caixa alta, alinhada pela base."
  ],
  "classe_css": ".pc__numero (alias na Biblia: .lam .numero, com .lam .big mantido como alias de compatibilidade). 🔴 Entra um quadro novo na folha PROIBIDO: NUMERO EM SERIFA LIGHT.",
  "proibido": "NUNCA na capa — regra mantida, agora com motivo escrito: na capa o hook e o numero disputariam o mesmo papel, e quem perde e o hook. NUNCA em serifa. NUNCA abaixo do peso 800. NUNCA tabular-nums no corpo grande. NUNCA numero de resultado, porcentagem no prazo, OTIF, quantidade de clientes, quantidade de veiculos, ano da empresa nem temperatura em graus — a lista Nunca do MARCA.md vale inteira, e o que o numero grande carrega e so o que esta medido: 700, 80, 32, 100, 6, 058435566."
 },
 "ritmo": {
  "tons": [
   "clara",
   "foto",
   "ancora"
  ],
  "atributoObrigatorio": "data-tom",
  "sequenciaCanonica6": [
   "foto",
   "clara",
   "ancora",
   "clara",
   "foto",
   "clara"
  ],
  "sequenciaCanonica9": [
   "foto",
   "clara",
   "ancora",
   "clara",
   "foto",
   "clara",
   "ancora",
   "clara",
   "foto"
  ],
  "vizinhaIgualProibida": true,
  "ancoraMaxPorBloco": 1,
  "ancoraMaxPorBlocoDe9": 2,
  "ancoraDistanciaMinima": 2,
  "deltaLMin": 18,
  "luminancia": {
   "clara": [
    58,
    98
   ],
   "foto": [
    30,
    72
   ],
   "ancora": [
    20,
    26
   ]
  },
  "capa": {
   "tonsPermitidos": [
    "foto",
    "ancora"
   ],
   "claraSoComCabeca": true,
   "cabecaAlturaPx": 140,
   "cabecaTolerenciaPx": 12,
   "seletorCabeca": ".pc__cabeca, .lam .cabeca, .lam .cab"
  },
  "_medicao": "L* medio da lamina renderizada, reduzida a 150px de largura, em CIE L* (D65). Equivale a `magick lamina.png -resize 150x -colorspace LAB -channel R -format \"%[fx:mean*100]\" info:` — o conferidor faz a mesma conta em JS com canvas para nao depender do ImageMagick estar instalado.",
  "fotoAcimaDaAncoraMin": 6,
  "_porque_a_faixa_da_foto_mudou": "A spec estimou 42-68 sem medir contra o acervo real. Medido em 17/09/2026 com o veu novo: as fotos da operacao Mothus sao de dia nublado do sul (chuva, ceu fechado, galpao sem luz direta) e a lamina FOTO fica entre L* 32 e 38 — nao entre 42 e 68. Empurrar o veu mais claro que isto derruba o contraste do H1 branco no topo e apaga o verde da marca, que e pior. A faixa passa a 30-72, e entra a regra que importa de verdade: a lamina FOTO tem que ficar pelo menos 6 L* ACIMA da ANCORA do mesmo bloco, senao ela virou ancora disfarcada — que era o defeito que a decisao 1 queria matar. O separador principal continua sendo o deltaLMin de 18 entre vizinhas.",
  "_porque_a_faixa_da_clara_mudou": "Medido em 17/09/2026: uma lamina CLARA com cartao de foto grande fica entre L* 65 e 78 — a faixa 92-98 so vale para lamina clara SEM foto, e reprovava metade do bloco-modelo por um defeito que nao existe. O que separa CLARA de ANCORA e o deltaLMin de 18 entre vizinhas, nao o piso da faixa."
 },
 "rota": {
  "desenho": "Componente NOVO, em SVG inline — nao e ajuste do .fio2, que e um <div> com height fixa e por construcao nao curva (a unica tag <svg> da Biblia inteira e hoje o filtro de textura de papel). O nome do componente e ROTA (.pc__rota), nao estrada: a palavra da operacao e rota, e faixa de rodovia e catalogo generico. GEOMETRIA: <svg class=\"pc__rota\" viewBox=\"0 0 1080 1350\" fill=\"none\"> — a MESMA malha da lona, entao 1 unidade do path = 1px real e quem escrever a coordenada sabe exatamente onde ela cai. 🔴 SEM preserveAspectRatio=\"none\": ele estica o eixo Y em 1,42x no story e transforma os nos de 28px em elipses de 28x40. Em story, o viewBox e 0 0 1080 1920. TRACO: stroke var(--mo-rota) (#32AE70), stroke-width var(--pc-rota-traco) = 6px (crava o token --pc-fio:6px e aposenta os 4,3px renderizados), stroke-linecap round, stroke-linejoin round, fill none. CURVA: sempre um ARCO de quarto de circulo de raio --pc-rota-raio:120px (minimo 72, maximo 180), comando A, nunca Q e nunca bezier livre — Q com os mesmos pontos entrega raio efetivo de ~102 e ninguem consegue conferir; arco de raio fixo e copiavel por outra pessoa, curva no gosto nao e. Sintaxe do giro: A 120 120 0 0 1 (horario na tela) ou A 120 120 0 0 0 (anti-horario). 🔴 ANCORAGEM: o `d` NAO e constante — ele e gerado no render. Os quatro pontos de amarra sao A = canto inferior esquerdo do bloco de titulo, B = canto superior esquerdo da foto ou do card, C = centro do numero ou do icone grande, D = centro superior da pilula; o montador mede A/B/C/D com getBoundingClientRect e escreve o atributo `d` antes do print. Medi as 6 laminas de hoje: o pe do titulo varia 123px e o topo da foto varia 264px, porque o .corpo e flex — path fixo nao encosta em nada em 5 das 6, e a propria regra ('rota que nao liga dois elementos reproval') reprovaria o path.",
  "svg_exemplo": "<svg class=\"pc__rota pc__rota--s\" viewBox=\"0 0 1080 1350\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\"><path d=\"M88 596H350a120 120 0 0 1 120 120v84a120 120 0 0 0 120 120h310\" stroke=\"#32AE70\" stroke-width=\"6\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><circle cx=\"88\" cy=\"596\" r=\"12\" fill=\"#32AE70\"/><circle cx=\"470\" cy=\"800\" r=\"11\" fill=\"#F7F5F1\" stroke=\"#32AE70\" stroke-width=\"6\"/><circle cx=\"900\" cy=\"920\" r=\"26\" fill=\"none\" stroke=\"#32AE70\" stroke-width=\"3\" opacity=\".45\"/><circle cx=\"900\" cy=\"920\" r=\"18\" fill=\"#32AE70\"/></svg>",
  "variantes": [
   ".pc__rota--l — cotovelo, 1 giro, 2 nos (origem cheia, destino ativo). Liga o pe do titulo ao topo da foto. Padrao em lamina CLARA. Molde: M {Ax} {Ay} H {Bx-120} a120 120 0 0 1 120 120 V {By}",
   ".pc__rota--s — serpentina, 2 giros em sentidos opostos, 3 nos. Liga titulo → numero → pilula, atravessando a lamina. E o desenho do painel ELEMENTOS E APLICACOES da Amanda. E o svg_exemplo acima.",
   ".pc__rota--sobre-foto — a rota que corre sobre imagem. Ganha DUAS camadas: a sombra (stroke 12px em var(--mo-verde-950) a 35%, desenhada primeiro) e o traco tracejado (stroke-dasharray 2 18, stroke-linecap round = pontos redondos de 6px a cada 20px). 🔴 A razao do tracejado e FUNCIONAL, nao decorativa: traco solido de acento some nos pontos claros da foto e vira risco sujo. Nao e faixa de rodovia, e legibilidade.",
   ".pc__rota--vertical — desce pela lateral esquerda, 6px, ligando a cabeca verde a pilula, com 1 no no meio. Para lamina de topicos, onde nao ha foto. 🔴 Reta: NAO se escreve como SVG (o `d` nao aceita porcentagem — `V 100%` e path data invalido e o parser aborta calado). Vira .pc__topicos li:not(:last-child)::after em CSS, um segmento por item, que fecha certo com item de duas linhas.",
   ".pc__fio — NAO e variante: e OUTRO componente, com outro trabalho. O fio-do-frio e reto, 6px, entra por uma borda e sai pela oposta na MESMA altura Y, costurando o feed de 9 recortado da arte unica de 3240x4050. Angulo de saida obrigatoriamente 0° nas duas pontas, senao a emenda faz bico no grid. Rota e fio NUNCA na mesma lamina."
  ],
  "pontos": "Tres estados, todos como <circle> no mesmo viewBox de 1080, todos posicionados NOS VERTICES do path (fim de arco ou ponta), nunca no meio de um trecho reto. PARADA (o padrao): r=11, stroke-width 6 em var(--mo-rota), fill var(--mo-rota-ponto) — creme #F7F5F1 sobre CLARA, verde-800 #063F28 sobre ANCORA, branco sobre FOTO. Diametro externo 28px (--pc-ponto-d), que e exatamente o no que ja existe hoje. ORIGEM: r=12, fill var(--mo-rota), sem stroke — disco cheio de 24px, sempre no comeco do path. DESTINO: r=18 fill var(--mo-rota) mais o halo <circle r=26 fill=none stroke=#32AE70 stroke-width=3 opacity=.45> — 36px com anel de 52px, que e o no-alvo do POST3 da Amanda. Um destino por lamina, sempre no fim do path. Minimo 2, maximo 5 nos por rota. 🔴 O MESMO desenho, em Ø22 (--pc-marcador-d), e o marcador de topico: o ponto de entrega e o bullet sao o mesmo objeto, e e assim que o sistema conta a mesma historia em dois lugares. 🔴 O ponto e FORMA, nao texto: o acento da 2,60:1 sobre creme e a regra do manual ('o acento e forma, nao texto') libera a forma. Rotulo de cidade ao lado de um no vai em var(--mo-texto) a 32px, NUNCA em acento — e no instante em que um no carregar numero, sigla ou rotulo dentro dele, ele virou texto e reprova.",
  "regras": [
   "UMA rota por lamina. Duas viram teia e a peca perde o sentido de percurso. E nunca rota junto do fio-do-frio: mesma cor, dois significados, e confundir os dois apaga os dois.",
   "A rota TEM que tocar dois elementos de conteudo (titulo→foto, foto→pilula, icone→numero). Comeca a 24px da borda do elemento de origem e termina no centro do de destino. Rota que nao liga nada e decoracao — e foi exatamente o defeito do .fio2 de hoje, chumbado em left:8%/left:52% e repetido identico em 6 laminas sem relacao com o conteudo.",
   "NUNCA cruza letra. O conferidor amostra o path com getPointAtLength de 8 em 8px e testa contra o bbox de cada .pc__h1/h2/h3/h4/numero/card mais 24px de folga; um ponto dentro reprova. Se cruzar, o path sobe ou desce em multiplos de 48px (--pc-e4) ate sair. Cruzar foto, card e lastro pode — e o que faz a rota parecer que passa por tras das coisas.",
   "Sobre fundo chapado (CLARA, ANCORA): solida. Sobre FOTO: a variante --sobre-foto, com sombra e tracejado.",
   "A rota NUNCA leva seta na ponta. A direcao quem da e o no de DESTINO. Seta e vocabulario de apresentacao; ponto de entrega e vocabulario de logistica.",
   "Raio uniforme na mesma lamina: todos os giros com o mesmo valor de --pc-rota-raio. Raio misto le como erro de tracado.",
   "O percurso so se desenha quando nomeia lugar real (Sao Jose → Joinville → Blumenau). Percurso abstrato, rastro de velocidade, foguete e velocimetro continuam proibidos — e o carve-out que o atributo Classica exige pra liberar a curva.",
   "Em bloco de 9, a rota curva aparece em no maximo 4 laminas. Em todas, vira moldura e mata o motivo dela existir, que e o defeito de 'mesmo layout nos nove quadros' ja registrado no manual.",
   "z-index var(--pc-z-rota) = 4: acima do veu (3) e ABAIXO do conteudo (5). Assim o texto ganha por ordem de pintura e nao e preciso clipPath nenhum — que e a unica forma de a regra 'nunca cruza letra' ser sustentavel."
  ],
  "classes": [
   ".pc__rota { position:absolute; inset:0; z-index:var(--pc-z-rota); pointer-events:none }",
   ".pc__rota path { fill:none; stroke:var(--mo-rota); stroke-width:var(--pc-rota-traco); stroke-linecap:round; stroke-linejoin:round }",
   ".pc__rota--sobre-foto .sombra { stroke:var(--mo-rota-sombra); stroke-width:12 }",
   ".pc__rota--sobre-foto .via { stroke-dasharray:var(--pc-rota-dash) }",
   ".pc__ponto { fill:var(--mo-rota-ponto); stroke:var(--mo-rota); stroke-width:var(--pc-ponto-borda); r:11 }",
   ".pc--ancora .pc__ponto { fill:var(--mo-rota-ponto-inv) }",
   ".pc__ponto--origem { fill:var(--mo-rota); stroke:none; r:12 }",
   ".pc__ponto--destino { fill:var(--mo-rota); stroke:none; r:18 }",
   ".pc__halo { fill:none; stroke:var(--mo-rota); stroke-width:3; opacity:.45; r:26 }",
   ".pc__fio { position:absolute; left:0; right:0; height:var(--pc-rota-traco); background:var(--mo-fio) }",
   "alias na Biblia: .lam .rota — e APOSENTA .fio .l, .fio .l2 (biblia.html:105-106), .lam .fio2 e .lam .no2 (biblia.html:171-172, 184-186)"
  ]
 },
 "lastro": {
  "nome_do_sistema": "LASTRO — a camada de vetor semitransparente entre o fundo e o conteudo. Nathan disse 'nao sei denominar'. Lastro e o peso que vai no fundo da carga pra o volume nao balancar: ninguem ve, e sem ele a carga anda. Palavra de setor, descreve o papel exato (ocupa o vao e nao pede leitura) e nao colide com 'marca d'agua' (que na casa ja e outra coisa: o simbolo no canto) nem com 'carimbo'. A lei de uma linha: O LASTRO OCUPA O VAO E NAO CARREGA INFORMACAO — se alguem precisa enxergar, virou icone em 120px, e sai da camada. Tokens --pc-lastro-*, classe .pc__lastro, arquivos em assets/lastros/.",
  "elementos": [
   {
    "desenho": "Os arquivos que JA existem: assets/simbolo-mono-escuro.svg sobre CLARA e assets/simbolo-mono-claro.svg sobre ANCORA. Largura 368px (34.07cqw), offset -65px (-6.02cqw). Nao e valor novo: e exatamente o que .lam .mda2 ja renderiza hoje, agora com nome e token.",
    "nome": "lastro--simbolo",
    "svg": "<img class=\"pc__lastro pc__lastro--ie\" src=\"assets/simbolo-mono-escuro.svg\" alt=\"\">"
   },
   {
    "desenho": "Palete visto de topo, so contorno, traco 8px na lona. viewBox 0 0 480 360. Moldura externa 8,8 → 472,352. Tres ripas horizontais internas de 96px de altura com vao de 24px: y=40..136, y=160..256, y=280..352 — e duas travessas verticais em x=160 e x=320. Largura 480px (44.4cqw). Ancoragem --ie ou --se.",
    "nome": "lastro--palete-topo",
    "svg": "<svg class=\"pc__lastro pc__lastro--se\" viewBox=\"0 0 480 360\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"8\"><rect x=\"8\" y=\"8\" width=\"464\" height=\"344\"/><path d=\"M8 136h464M8 160h464M8 256h464M8 280h464M160 8v344M320 8v344\"/></svg>"
   },
   {
    "desenho": "A porta da camara fria ampliada: o mesmo desenho do icone camara-fria escalado de 24 pra 440, traco 8px. E o unico lastro que fala do DIFERENCIAL da marca (camara fria dentro do galpao), e por isso ele e o padrao em lamina de temperatura. Largura 440px (40.7cqw).",
    "nome": "lastro--porta-fria",
    "svg": "<svg class=\"pc__lastro pc__lastro--lado\" viewBox=\"0 0 24 24\" width=\"440\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"0.44\"><path d=\"M3.5 2.5h14v19h-14zM7 6h7v12H7zM17.5 11h3M20.5 9.5v3\"/></svg>"
   },
   {
    "desenho": "A doca ampliada: o icone doca escalado pra 520px (48.1cqw), traco 8px, sangrando pelo canto inferior direito. Cena de galpao, nunca de estrada.",
    "nome": "lastro--doca",
    "svg": "<svg class=\"pc__lastro pc__lastro--ie\" viewBox=\"0 0 24 24\" width=\"520\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"0.37\"><path d=\"M3 2.5h12v11H3zM3 6.2h12M3 9.9h12M2.5 18.5h19M15 18.5l5.5 3.5\"/></svg>"
   },
   {
    "desenho": "O path da rota ampliado e cortado por duas bordas: o MESMO componente .pc__rota em escala de lastro, traco 12px, sem nos. Largura ate 840px (77.8cqw). So aparece quando a lamina NAO tem rota de primeiro plano — rota e lastro-rota nunca na mesma lamina.",
    "nome": "lastro--rota",
    "svg": "<svg class=\"pc__lastro pc__lastro--lado\" viewBox=\"0 0 840 700\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"12\" stroke-linecap=\"round\"><path d=\"M-40 120h300a160 160 0 0 1 160 160v120a160 160 0 0 0 160 160h300\"/></svg>"
   },
   {
    "desenho": "A grade do palete que ja existe, agora dentro da familia e lendo os mesmos tokens de opacidade: repeating-linear-gradient(12deg, currentColor 0 3px, transparent 3px 26px). Cobre a lamina inteira (inset -20%). E o unico lastro que pode dividir a lamina com um segundo lastro.",
    "nome": "lastro--grade",
    "svg": ""
   },
   {
    "desenho": "O contorno de Santa Catarina. 🔴 NAO SE DESENHA A MAO — gera-se por script da malha estadual do IBGE (servicodedados.ibge.gov.br/api/v3/malhas/estados/42?formato=application/vnd.geo+json), simplificado por Douglas-Peucker a 16 vertices e normalizado pro viewBox 0 0 620 420. Traco 8px, sem preenchimento, sangrando pela lateral esquerda. 🔴 NUNCA rotulado como 'area de entrega': o estado inteiro nao e a cobertura. Quando a peca fala de regiao, quem nomeia e o texto, com as seis regioes reais.",
    "nome": "lastro--sc",
    "svg": ""
   }
  ],
  "opacidade": "Tres valores, um por tom de fundo, e eles FECHAM as cinco opacidades divergentes que existem hoje (.06 no .mda2, 7% na legenda da folha 04, .08 na .marca-agua escura, .09 no .lam--esc, '5–10%' na prancha da Amanda). --mo-lastro-op: .06 sobre CLARA (cor --mo-lastro = verde-800 a 6% sobre creme) · --mo-lastro-op-inv: .10 sobre ANCORA (cor --mo-lastro-inv = verde-200 a 10% sobre verde-800) · ZERO sobre FOTO — a foto ja preenche o vao, e e pra isso que ela existe. Traco de 8px na lona (--pc-lastro-traco), nunca preenchimento: a 6% uma mancha some e um traco de 8px ainda se le. Chapado sempre: nunca degrade, nunca blur, nunca sombra — o que honra 'verde escuro chapado, sem degrade' do MARCA.md §8 sem precisar de carve-out nenhum.",
  "posicao": "Quatro ancoragens nomeadas, e so elas. .pc__lastro--ie canto inferior direito, right:-65px; bottom:-65px (o de hoje) · .pc__lastro--se canto superior esquerdo, left:-72px; top:172px (abaixo da cabeca verde) · .pc__lastro--lado sangrando pela lateral esquerda, left:-238px; top:50%; transform:translateY(-50%) · .pc__lastro--atras centrado atras do numero, left:50%; top:46%; transform:translate(-50%,-50%), largura 1.6x a largura do numero. Tamanho entre --pc-lastro-min:216px (20cqw) e --pc-lastro-max:560px (51.9cqw); so lastro--rota e lastro--sc passam disso, ate --pc-lastro-sangra-max:840px (77.8cqw). A trava de hoje — 'MARCA D'AGUA · 7% · CANTO INFERIOR DIREITO', biblia.html:347 e :304 — CAI: e ela a razao de a camada ter ficado com dois itens, e os dois serem a mesma marca.",
  "regras": [
   "SEMPRE cortado por pelo menos uma borda da lona. Conferivel por bounding box: o retangulo do lastro tem que ultrapassar a lona em 12% ou mais (--pc-lastro-sangra) de pelo menos um lado. Vetor inteiro flutuando no meio da arte e adorno de apresentacao e reprova. E o que os dois chips do painel da Amanda ja mostram.",
   "NUNCA sobre FOTO. A foto ja preenche o vao. Lastro so entra em lamina CLARA ou ANCORA.",
   "NUNCA dentro da caixa de texto: nenhum traco do lastro pode cair dentro do retangulo do H1, H2, H3, H4, do numero ou do card, mais 24px de folga. Se cair, TROCA DE ANCORAGEM — nao baixa a opacidade.",
   "NUNCA por tras de foto, card, pilula ou cabeca verde: atras de elemento opaco ele aparece pela metade e cria uma borda de recorte visivel.",
   "Maximo 2 lastros por lamina (--pc-lastro-max-qtd:2), nunca dois do mesmo desenho, e nunca o mesmo desenho em laminas vizinhas do bloco. Em bloco de 6, no maximo 4 laminas com lastro.",
   "O lastro NAO CARREGA INFORMACAO. A 6% ele nao tem contraste nenhum, e e exatamente por isso que ele pode existir sem brigar com a regua AA. Se alguem precisa que o leitor entenda o desenho, ele vira ICONE em 120px, nao lastro.",
   "O lastro nunca e vetor generico de banco de formas. Ele sai do vocabulario de icone (objeto que a marca ja nomeia) ou e o proprio simbolo. Foguete, onda, engrenagem, rede de pontos, globo e pin de mapa de aplicativo estao proibidos por escrito.",
   "🔴 PILHA DECLARADA, e ela nao se inverte: --pc-z-fundo:0 (cor ou foto) · --pc-z-grade:1 · --pc-z-lastro:2 · --pc-z-veu:3 · --pc-z-rota:4 · --pc-z-conteudo:5. E .pc leva isolation:isolate, e o .pc__veu tem que ser IRMAO do lastro (sai de dentro do .fundo). Sem isso, z-index so compara irmaos no mesmo contexto e o lastro em 2 pinta POR CIMA do veu em 3 — falha calada, medida no Chrome.",
   "🔴 O MAPA DE SC NAO E LASTRO quando ele carrega os nos e as regioes. Nesse caso ele e o componente .pc__mapa: figura de primeiro plano, opaco, sobre foto, com a rota tracejada e os nos por cima — que e o que a Amanda desenhou no POST3. Sao dois componentes, com dois nomes e duas opacidades. Confundir os dois e o erro que faz a referencia dela ser citada e desobedecida no mesmo paragrafo."
  ],
  "classes": [
   ".pc__lastro { position:absolute; z-index:var(--pc-z-lastro); width:var(--pc-lastro-tam); opacity:var(--mo-lastro-op); color:var(--mo-lastro); pointer-events:none }",
   ".pc--ancora .pc__lastro { opacity:var(--mo-lastro-op-inv); color:var(--mo-lastro-inv) }",
   ".pc--foto .pc__lastro { display:none }",
   ".pc__lastro--ie { right:-65px; bottom:-65px }",
   ".pc__lastro--se { left:-72px; top:172px }",
   ".pc__lastro--lado { left:-238px; top:50%; transform:translateY(-50%) }",
   ".pc__lastro--atras { left:50%; top:46%; transform:translate(-50%,-50%) }",
   ".pc__lastro--grade { inset:-20%; width:auto; background:repeating-linear-gradient(var(--pc-grade-ang), currentColor 0 var(--pc-grade-ripa), transparent var(--pc-grade-ripa) var(--pc-grade-vao)) }",
   ".pc__mapa { position:absolute; z-index:var(--pc-z-conteudo); color:var(--mo-texto-inv); opacity:1 }",
   "alias na Biblia: .lam .lastro — reaproveita o gancho MORTO .lam .tex (biblia.html:160), declarado e com zero uso, que hoje so confunde quem le"
  ]
 },
 "sombra": {
  "valor_claro": "--pc-sh-3: 0 10px 22px color-mix(in srgb, var(--mo-verde-950) 22%, transparent), 0 44px 88px color-mix(in srgb, var(--mo-verde-950) 34%, transparent). Em cqw, pra lamina da Biblia: 0 .93cqw 2.04cqw + 0 4.07cqw 8.15cqw. 🔴 SAO DUAS CAMADAS DE PROPOSITO: a de 10/22 e o CONTATO (a sombra curta que prende o objeto ao plano) e a de 44/88 e o DESCOLAMENTO (a longa que o levanta). Uma sombra so, por maior que seja, nao faz 3D — faz borrao, e e o erro que quem implementar vai cometer aumentando o blur. Ao lado dela, os dois degraus de baixo: --pc-sh-1: 0 8px 20px var(--mo-sombra) (contato, card e etiqueta) e --pc-sh-2: 0 20px 44px color-mix(in srgb, var(--mo-verde-950) 25%, transparent), que e o valor que a Biblia JA usa a mao em biblia.html:179 (0 1.8cqw 4cqw rgba(0,22,14,.25)), agora tokenizado.",
  "valor_escuro": "--pc-sh-3-inv: 0 0 0 8px var(--mo-sup-ancora), 0 44px 88px color-mix(in srgb, var(--mo-verde-950) 55%, transparent). 🔴 Sobre ANCORA e sobre FOTO a sombra escura NAO SEPARA: medi #00160E a 34% sobre #063F28 e da 1,23:1 — mancha, nao relevo; e sobre a base do veu, que ja e verde-950 a 72%, o contraste e praticamente 1,0. E o pior e que o relevo so e chamado quando o cartao CRUZA, ou seja justamente nas laminas escuras. Em superficie escura o descolamento e BORDA DE RECORTE, nao sombra — e o sistema ja tinha resolvido isso sozinho: a .lam .foto carrega uma borda de .35cqw em #32AE70 exatamente pra isso. A regra de escolha e medida, nao de gosto: o conferidor le o L* do recorte de fundo sob o elemento; abaixo de 35, usa --pc-sh-3-inv.",
  "quando_usa": "🔴 O CRITERIO DEIXA DE SER UM E PASSA A SER DOIS, e os dois escritos — hoje o manual (linhas 545-547) diz que o degrau se escolhe pelo TAMANHO DA PECA, e sobreposicao nao existe nessa regua. TAMANHO escolhe entre --pc-sh-1 e --pc-sh-2; SOBREPOSICAO promove pro --pc-sh-3. Sobe pro relevo em tres casos verificaveis por bounding box: (a) o elemento sangra pra fora da margem de 88px, cruzando a borda da area util; (b) o elemento cobre parcialmente outro plano — outra foto, a ficha, a cabeca verde, o lastro; (c) o elemento esta apoiado sobre lamina FOTO e precisa se descolar da imagem. O caso mais gritante hoje e a lamina 5 do bloco de 6 (biblia.html:484): a unica foto que realmente sangra e a que tem MENOS destaque do bloco. Ela e o primeiro lugar onde o relevo entra.",
  "quando_nao": "NUNCA no LOGOTIPO — 'logotipo com sombra, contorno, brilho ou degrade' continua proibido (manual.html:374-377), e este e o erro que quem ler 'sombra forte' vai cometer primeiro, colando a logo sobre foto. NUNCA na pilula: ela tem --mo-sh-chip e so, e a pilula sobre ancora tem box-shadow:none por decisao. NUNCA em foto que sangra por tres ou quatro lados (full-bleed): sombra em elemento sem borda visivel e sujeira na emenda. NUNCA na ficha sobre lamina ANCORA — ali o que separa e a cor da superficie (card #00160E sobre fundo #063F28), e empilhar sombra que nao faz nada e como o sistema engorda sem melhorar. NUNCA em TRACO: icone, lastro, rota e ponto de entrega nao tem profundidade — traco com sombra vira adesivo. NUNCA em texto: text-shadow nao existe neste sistema.",
  "classes": [
   ".pc__foto { box-shadow:var(--pc-sh-2) }",
   ".pc__foto--relevo { box-shadow:var(--pc-sh-3) }",
   ".pc--ancora .pc__foto--relevo, .pc--foto .pc__foto--relevo { box-shadow:var(--pc-sh-3-inv) }",
   ".pc__card { box-shadow:var(--pc-sh-1) } · .pc--ancora .pc__card { box-shadow:none }",
   "alias na Biblia: .lam .foto--relevo. 🔴 Corrigir junto a etiqueta do cartao na folha 04 (biblia.html:343), que hoje documenta 'SOMBRA 0 18 44 18%' — esse e o valor da sombra da MINIATURA da Biblia (.lam, linha 158), nao o da peca, e quem le a folha hoje copia o valor errado."
  ]
 },
 "briefing_de_foto": {
  "frase_de_prompt": "Fotografia documental realista de [CENA], luz de dia nublado do sul do Brasil, difusa, sem sol duro e sem por do sol, lente 35–50 mm em f/4, saturacao -10, verdes puxando para #063F28 e altas para creme quente, aco nas sombras. COMPOSICAO OBRIGATORIA: a faixa de [0 a 760 px de altura | 0 a 620 px | 0 a 780 px] do quadro fica VAZIA e sem detalhe — parede lisa pintada, ceu nublado uniforme, piso de concreto ou painel de bau sem marca; nada de alta frequencia, nada de placa, nada de pilha de caixas nessa faixa, porque o texto mora ali. O assunto ocupa a metade de baixo do quadro, deslocado para a DIREITA e voltado para a esquerda, na direcao do texto. Linha do horizonte a [65% | 60%] da altura. Sem texto na cena, sem placa, sem logotipo de terceiro, sem emblema de fabricante, sem rosto identificavel, sem gravata, sem aperto de mao, sem globo, sem grafico subindo, sem caminhao generico de banco de imagem. Proporcao [4:5 1080x1350 | 9:16 1080x1920], 2K. 🔴 SE HOUVER BAU NA CENA: painel LIMPO, unbranded, no text no logo no decals — a marca entra depois, por composicao vetorial, nunca pedida ao gerador.",
  "gabaritos": [
   {
    "area_limpa": "X=88→992, Y=0→760. Sao 904x760 = 56,3% da lona. Horizonte em Y=880 (65%). Assunto entre Y=760 e Y=1350, deslocado pra direita (X=600→1010). A conta: area segura comeca em 223 + H1 de 3 linhas a 132x0,92 = 364px (termina em 587) + gap 32 + H2-capa de 72px = 691. Sobram 69px de folga dentro dos 760.",
    "nome": "capa-veu (1080x1350)",
    "usa_quando": "lamina 1 do bloco, tom FOTO, com H1 hook por cima do veu"
   },
   {
    "area_limpa": "X=88→992, Y=0→620 (45,9% da lona). A foto sangra de Y=620 a 1350, e os 135px do corte do grid ficam sem assunto. Horizonte em Y=1000.",
    "nome": "interna-foto-baixa (1080x1350)",
    "usa_quando": "lamina interna com texto em cima e foto sangrando embaixo"
   },
   {
    "area_limpa": "Nenhuma reserva de texto — o texto esta fora do cartao. Em troca: assunto centrado com 12% de folga nas quatro bordas (108px na horizontal, 102px na vertical), porque o canto de 34px e a borda de 4px comem o canto, e porque o terco DIREITO do cartao recebe o no de destino da rota.",
    "nome": "foto-cartao (904x853, proporcao 1.06)",
    "usa_quando": "a foto dentro de .pc__foto, em lamina CLARA ou ANCORA"
   },
   {
    "area_limpa": "X=0→600 (55,6% da LARGURA, nao da altura). A foto entra de X=600 a 1080 e sangra pela borda direita; o lado esquerdo da cena e fundo liso. Este e o unico gabarito que reserva coluna, e e o que hoje e feito no grito na lamina 5.",
    "nome": "ancora-foto-lateral (1080x1350)",
    "usa_quando": "foto sobreposta sangrando pela lateral, com texto nos 512px da esquerda — o caso que sobe pro relevo (--pc-sh-3)"
   },
   {
    "area_limpa": "X=88→992, Y=0→780 (40,6% da lona) MAIS os 250px de baixo (Y=1670→1920), que sao zona de interface do Instagram: nada de assunto, nada de texto, nada de logo. Assunto entre Y=780 e Y=1670. Horizonte em Y=1250 (65%).",
    "nome": "story (1080x1920)",
    "usa_quando": "a variante 9:16"
   },
   {
    "area_limpa": "Y=88→645 medido a partir do centro do 4:5. Nao e gabarito de producao: e o gabarito de CONFERENCIA. Se a foto so funciona em 4:5 e morre no corte do perfil, ela reprova antes de entrar na peca.",
    "nome": "quadrado-conferencia (1080x1080)",
    "usa_quando": "teste do corte do grid, em toda foto de capa"
   }
  ],
  "regra": "A cena NASCE com o vao vazio; reenquadrar depois e conserto, nao metodo — e a prova de que hoje nao existe regua sao os SETE object-position inline espalhados pela Biblia (linhas 39, 396, 397, 413, 415, 446, 473), cada um uma foto que nasceu errada. A regua nova tem QUATRO partes. (1) ASSUNTO, e ele vem antes da composicao: a hierarquia do MARCA.md §8 e galpao > camara fria > palete > doca. Cena de estrada e o ultimo recurso, so para o publico de redespacho, e o bau que aparecer nela tem o painel LIMPO — a marca entra por composicao vetorial do assets/logo-mono-claro.svg por script, nunca pedida ao gerador (foi assim que as 5 cenas de frota foram reprovadas as 12:53 de 17/09, com a IA redesenhando o simbolo como botao de play). (2) GABARITO: qual retangulo da lona fica sem assunto, em px. (3) CONTEUDO DO VAO: dentro do retangulo reservado nao pode haver detalhe de alta frequencia — parede lisa, ceu nublado, concreto nu ou painel de bau; texto claro sobre ruido perde contraste mesmo com veu. (4) TESTE DEPOIS, que e o que torna a regra conferivel: `magick foto.png -crop 1080x760+0+0 -colorspace Gray -format \"%[fx:standard_deviation*255]\" info:` — desvio-padrao acima de 18 na area reservada significa detalhe demais, e a cena volta. O que REPROVA a foto: assunto invadindo o retangulo, horizonte cortando a caixa do H1, ou qualquer foto que so funcione com object-position diferente de 50% 50%. As regras de cena que ja existem continuam inteiras: dia nublado do sul, 35–50mm f/4, bau #063F28 chapado, saturacao -10, sem rosto legivel, sem gravata, sem aperto de mao, sem marca de terceiro, sem texto na cena. Isto vira o QUINTO cartao da folha MO·06, ao lado de Luz, Lente, Cor e Nunca, e o nome dele e VAO."
 },
 "componentes": [
  {
   "classe_css": "ferramenta na raiz do design-system. Le data-tom, data-nivel e as classes .pc__*, mais regras.json. Rodar antes de empacotar.mjs, e derrubar o processo no primeiro reprova.",
   "especificacao": "Script Node que abre a Biblia no Chrome (playwright-core ja e dependencia declarada no package.json; ImageMagick 7.1.2 esta instalado) e le getComputedStyle e getBoundingClientRect. Nove reprovacoes: (1) ritmo — duas vizinhas com o mesmo data-tom, capa CLARA sem cabeca cheia, mais de --pc-ancora-max ancoras; (2) H1 acima de 96% dos 904px seguros, ou fora da capa, ou com mais de 13 caracteres numa linha; (3) numero com font-family serif ou font-weight abaixo de 800; (4) H4 fora de .pc__card, ou em mais de uma lamina do bloco; (5) mais de uma .pc__rota por lamina, ou rota junto de .pc__fio; (6) rota cruzando letra — amostra o path com getPointAtLength de 8 em 8px contra o bbox de cada bloco de texto mais 24px; (7) mais de 2 lastros, lastro sobre foto, ou lastro sem sangrar 12%; (8) par de cor abaixo de 4.5 (ou 3.0 acima de 18,7px em peso 700+), com a cascata e o color-mix ja resolvidos; (9) caminho de imagem morto. E imprime a sequencia de fundos do bloco em letras: F C A C F C.",
   "nome": "conferir-peca.mjs — o portao",
   "o_que_e": "O script que reprova a peca sozinho, antes de alguem olhar. E a peca que impede o sistema de apodrecer depois de triplicar de tamanho — e o disco ja prova a necessidade: a folha 07 aponta pra 4 arquivos movidos pra _reprovado/ as 12:53 e ninguem percebeu, e rodar `node montar-ds.mjs` hoje apaga o ds-bundle e crasha sem reconstruir."
  },
  {
   "classe_css": ".pc__card { background:var(--pc-card-sup); border:var(--pc-card-borda) solid var(--mo-borda); border-radius:var(--pc-card-r); padding:var(--pc-card-pad); box-shadow:var(--pc-sh-1); max-width:904px } · .pc--ancora .pc__card { background:var(--pc-card-sup-inv); border-color:var(--mo-verde-900); box-shadow:none } · .pc__card::before { content:''; display:block; height:6px; background:var(--mo-rota); margin:-44px -44px 32px }",
   "especificacao": "padding 44px (--pc-card-pad) · raio 24px (--pc-card-r) · borda 2px --mo-borda · fundo --mo-sup-2 no claro e --mo-verde-950 no escuro · sombra --pc-sh-1 no claro, nenhuma no escuro (sombra escura sobre fundo escuro nao separa: medi 1,23:1) · tarja de 6px em --mo-rota colada no topo, da largura toda · largura de leitura 38ch. 🔴 O canto e 24, NAO os 34 da foto: sao componentes diferentes, e confundir isso e o primeiro erro de quem copia.",
   "nome": "A FICHA — o card do textao",
   "o_que_e": "O contenedor que nao existe na lona (o .cartao do manual, linhas 190-193, e so web). E a unica casa do H4, e e desenhado como ficha tecnica, nao como card de aplicativo: a tarja verde no topo e o que separa uma ficha de um card generico."
  },
  {
   "classe_css": ".pc__topicos { display:flex; flex-direction:column; gap:var(--pc-topico-gap); padding-left:56px; list-style:none } · .pc__topicos li { position:relative; font-size:var(--pc-topico); line-height:var(--pc-topico-lh); font-weight:500; color:var(--mo-texto) } · .pc--ancora .pc__topicos li { color:var(--mo-texto-inv) } · .pc__topicos li::before { content:''; position:absolute; left:-56px; top:12px; width:22px; height:22px; border-radius:50%; border:4px solid var(--mo-rota); background:var(--mo-rota-ponto) } · .pc__topicos li:not(:last-child)::after { content:''; position:absolute; left:-46px; top:34px; width:6px; bottom:calc(-1 * var(--pc-topico-gap) - 12px); background:var(--mo-rota) }",
   "especificacao": "coluna, gap 28px, recuo 56px, texto Figtree 500 a 36px com entrelinha 1,3, minimo 3 e maximo 5 itens, 42 caracteres por item. Marcador = o NO DA ROTA em Ø22 com borda de 4px, alinhado ao centro da PRIMEIRA linha: top 12px, que sai da conta (36 x 1,3 - 22) / 2 = 12,4. Uma pista vertical de 6px liga um marcador ao seguinte — e o conector e li:not(:last-child)::after, um segmento por item, nunca um ::before unico no container, que vazaria pra baixo do ultimo ponto quando um item tiver duas linhas. O ultimo marcador pode virar DESTINO (Ø36 cheio).",
   "nome": "OS TOPICOS SAO A ROTA",
   "o_que_e": "A lista vertical onde o marcador de cada item E o ponto de entrega da rota. Resolve o R4 e consome o R7 numa peca so, com o vocabulario da propria marca: uma lista de regioes deixa de ser bullet point e vira o que ela literalmente e, uma rota com paradas. E CONSERTA UM DEFEITO VIVO: o .bul2 (biblia.html:191) trava a cor em var(--v200) #B2D6A8, que da 1,6:1 sobre creme — invisivel exatamente na lamina interna clara, que e onde o Nathan quer topico."
  },
  {
   "classe_css": ".pc__etiqueta { display:inline-flex; align-items:center; gap:12px; font-size:var(--pc-etiqueta-fs); font-weight:650; letter-spacing:.12em; text-transform:uppercase; padding:var(--pc-etiqueta-pad); border:2px solid var(--mo-rota); border-radius:var(--pc-etiqueta-r); color:var(--mo-texto); background:transparent } · .pc--ancora .pc__etiqueta { color:var(--mo-texto-inv) }",
   "especificacao": "Figtree 650, 26px, tracking .12em, caixa alta, padding 14px 28px, borda 2px --mo-rota, raio 8px (CANTO QUADRADO — etiqueta nao e pilula), fundo transparente. Maximo 3 por lamina, em linha.",
   "nome": "A ETIQUETA",
   "o_que_e": "O chip de embarque: diz CONGELADO · RESFRIADO · SECO ou REDESPACHO · CROSS-DOCKING sem gastar um nivel de titulo. O canto quadrado e o que impede a etiqueta de virar mais uma pilula — a pilula e ACAO (o CTA), a etiqueta e ATRIBUTO."
  },
  {
   "classe_css": ".pc__faixas { display:flex; gap:4px; width:904px } · .pc__faixas span { height:var(--pc-faixa-alt); border-radius:2px } · .pc__faixas .congelado { width:341px; background:var(--mo-faixa-congelado) } · .pc__faixas .resfriado { width:136px; background:var(--mo-faixa-resfriado) } · .pc__faixas .seca { width:427px; background:var(--mo-faixa-seca) }",
   "especificacao": "Barra de 24px de altura, raio 2px, largura total 904px, tres segmentos com vao de 4px e largura PROPORCIONAL AO DADO REAL: congelado 80 posicoes = 341px, resfriado 32 = 136px, carga seca 100 = 427px (80+32+100 = 212 posicoes). Rotulo embaixo, Figtree 650 a 24px, caixa alta, alinhado ao inicio de cada segmento. 🔴 NUNCA com percentual inventado e NUNCA com grau. 🔴 NUNCA aparece sem a palavra 'galpao' ou a cota de posicoes ao lado — sozinha, tres barras de temperatura afirmam 'as tres temperaturas saem na mesma coleta', que o MARCA.md §6 proibe ate o Jose confirmar o bau.",
   "nome": "A BARRA DE TEMPERATURA",
   "o_que_e": "O grafismo mais Mothus que existe: as tres faixas do mesmo galpao, com a largura contando o dado verdadeiro em vez de decorar. Diz em 24px de altura o que a capa gasta tres linhas pra dizer — e diz certo, porque a proporcao E a prova."
  },
  {
   "classe_css": ".pc__ficha-tec { display:grid; grid-template-columns:auto 1fr; gap:24px; font-variant-numeric:tabular-nums } · .pc__ficha-rotulo { font-size:24px; font-weight:650; letter-spacing:.14em; text-transform:uppercase; color:var(--mo-texto-2) } · .pc__ficha-valor { font-size:40px; font-weight:800; color:var(--mo-chave); text-align:right } · .pc__ficha-tec > * { border-bottom:2px solid var(--mo-borda); padding-bottom:20px }",
   "especificacao": "Grid de duas colunas, 3 a 5 linhas, gap 24px, linha de 2px --mo-borda separando, padding vertical 20px por linha. Rotulo a esquerda em Figtree 650 24px caixa alta tracking .14em cor --mo-texto-2; valor a direita em Figtree 800 40px cor --mo-chave, tabular-nums (aqui SIM, porque os algarismos alinham em coluna).",
   "nome": "A FICHA TECNICA",
   "o_que_e": "O que da DENSIDADE sem virar enfeite — e o defeito que reprovou a rodada 1 do feed foi 'minimalista demais', e a resposta certa a isso e mais DADO na tela, nao mais ornamento. 700 m² · 80 congelado · 32 resfriado · 100 seca · RNTRC 058435566 numa lamina so, e todos sao numero medido que o MARCA.md autoriza."
  },
  {
   "classe_css": ".pc__selo { display:inline-flex; align-items:center; gap:24px; padding:24px 28px; border:2px solid var(--mo-borda); border-radius:16px; background:var(--mo-sup-2); font-size:28px; font-weight:650; font-variant-numeric:tabular-nums } · .pc__selo svg { width:48px; height:48px; color:var(--mo-icone) }",
   "especificacao": "Caixa RETA de duas colunas: icone nota de 48px a esquerda, texto a direita em Figtree 650 28px; borda 2px --mo-borda, raio 16px, padding 24px 28px, fundo --mo-sup-2 (no escuro: color-mix(in srgb, var(--mo-verde-900) 55%, transparent) com borda --mo-verde-900). Conteudo travado: 'RNTRC 058435566 · ETC · ativo desde 27/08/2025' ou 'CNPJ 62.032.630/0001-03'. Um por bloco, nunca na capa.",
   "nome": "O SELO DO DADO CONFERIVEL",
   "o_que_e": "O atributo Provada do prisma virando forma: o registro na ANTT e o que o setor de compras pede antes de homologar. 🔴 E RETO, nao rotacionado: um carimbo fingido de borracha imita um selo que ninguem emitiu, e o atributo Classica manda que nenhuma forma precise ser explicada depois. O dado ja e prova sozinho."
  },
  {
   "classe_css": ".pc__citacao { font-family:var(--mo-serif); font-style:italic; font-weight:500; font-size:var(--pc-citacao); line-height:1.3; max-width:30ch; padding-left:32px; border-left:6px solid var(--mo-rota) } · .pc__citacao-fonte { font-family:var(--mo-sans); font-weight:650; font-size:26px; letter-spacing:.1em; text-transform:uppercase; color:var(--mo-texto-2); margin-top:24px }",
   "especificacao": "Newsreader 500 ITALICO, 52px, entrelinha 1,3, largura maxima 30ch, barra vertical de 6px em --mo-rota a 32px do texto. Atribuicao embaixo em Figtree 650 26px caixa alta. 🔴 Exige o eixo ital no import do Newsreader, que hoje nao existe em nenhum dos tres HTMLs — sem ele sai obliquo sintetico, que num arquivo que e a regua de tipografia da marca e o defeito que mais doi. 🔴 So aceita frase da PROPRIA empresa (assinatura, pilar, trueline). Depoimento de cliente ou parceiro fica bloqueado ate a pergunta 6 ao Jose voltar: hoje nao existe um so que aceite ser citado.",
   "nome": "A CITACAO",
   "o_que_e": "O manual promete que 'a Newsreader aparece no numero grande e na citacao' — e a citacao NUNCA foi desenhada em amostra nenhuma, lamina nenhuma, tabela nenhuma. Com o numero saindo da serifa, este componente deixa de ser detalhe: ele e o unico lugar do sistema que usa o peso 500 da Newsreader, que senao fica orfao."
  },
  {
   "classe_css": ".pc__paginador { position:absolute; top:223px; right:88px; font-size:26px; font-weight:450; letter-spacing:.2em; font-variant-numeric:tabular-nums; color:var(--mo-texto-3) } · .pc__paginador b { font-weight:800 } · .pc--ancora .pc__paginador { color:var(--mo-texto-2-inv) }",
   "especificacao": "Figtree, 26px, tracking .2em, tabular-nums, canto superior direito DENTRO da area segura (top 223px, right 88px). O numero da lamina em peso 800, o total em 450: 01/06.",
   "nome": "O PAGINADOR",
   "o_que_e": "Carrossel sem paginador perde leitor na lamina 2. Custa 26px de tipo e e a unica coisa do sistema que diz 'tem mais'."
  },
  {
   "classe_css": "atributo [data-tom] em toda .pc e toda .lam, mais as classes .pc--clara / .pc--foto / .pc--ancora. E [data-nivel] em cada bloco de texto, espelhando a classe .pc__h1..h4.",
   "especificacao": "data-tom com tres valores: clara, foto, ancora. As tres classes passam a existir — hoje 'claro' e o default sem nome, e por isso nenhum script consegue dizer que duas laminas vizinhas tem o mesmo fundo. O conferidor le os 6 atributos, monta a string e reprova sozinho.",
   "nome": "data-tom e data-nivel — o estado legivel por maquina",
   "o_que_e": "O que transforma 'ritmo de contraste' de julgamento visual em teste de 6 linhas de JS. E a peca mais barata de todas e a que mais sustenta as outras."
  },
  {
   "classe_css": "arquivo regras.json ao lado de tokens/, lido pelo conferir-peca.mjs. Nao entra no CSS.",
   "especificacao": "Guarda o que o CSS nao consegue aplicar como regra: h1.maxCharPorLinha 13, h1.maxLinhas 3, h1.ocupacaoMax .96, h1.tabela {7:164,8:152,9:132,10:120,11:112,12:104,13:96}, h2.maxCh 34, h3.maxCh 28, h4.maxCh 38, h4.maxLinhas 5, h4.maxLaminasPorBloco 1, topicos.min 3, topicos.max 5, lastro.maxPorLamina 2, rota.maxPorLamina 1, ancora.maxPorBloco 1, contraste.min 4.5, contraste.minGrande 3.0, contraste.pxGrande 18.7, foto.desvioMax 18.",
   "nome": "regras.json — o que nao e CSS sai do CSS",
   "o_que_e": "'22ch' em CSS vira max-width de caixa, nao contagem de caractere; '3 linhas' so vira line-clamp, que TRUNCA e some com palavra do hook sem erro nenhum; e --mo-contraste-min:4.5 no :root e variavel morta em todo render. Escrever limite de conteudo como token de CSS e o pior dos dois mundos: parece regra e nao reprova nada."
  },
  {
   "classe_css": "atributo data-bloco no container + o conferidor conta os filhos de cada .pc por classe.",
   "especificacao": "Por lamina, no maximo: 1 rota OU 1 fio (nunca os dois) · 2 lastros · 1 icone grande OU 3 icones pequenos · 1 foto OU 1 card · 1 numero OU 1 trio de dados · 1 pilula · 2 H3 · 3 etiquetas · 1 selo. Por bloco de 6: 1 H1 · 1 ancora chapado · 1 lamina com H4 · 1 selo · no maximo 4 laminas com lastro · no maximo 4 laminas com rota.",
   "nome": "O TETO",
   "o_que_e": "A unica peca desta especificacao que existe pra IMPEDIR coisa. Sem ela, 14 icones mais 7 lastros mais rota mais card mais etiqueta viram uma lamina que nao se le a 150px — e o sistema teria trocado 'minimalista demais' por 'poluido demais', que e pior porque nao tem conserto por subtracao de um elemento so."
  },
  {
   "classe_css": ".ds__ritmo { display:flex; gap:8px; margin-bottom:20px } · .ds__ritmo i { width:60px; height:60px; border-radius:6px } — chrome da Biblia e do bundle, NUNCA componente de peca.",
   "especificacao": "Seis quadrados de 60x60 com gap 8, cada um na cor real do fundo daquela lamina: #F7F5F1 com borda 2px --mo-borda para CLARA, uma miniatura da foto para FOTO, #063F28 para ANCORA. Impresso acima de toda tira, na folha 12 e na folha 08.",
   "nome": "A FAIXA-RESUMO DE RITMO",
   "o_que_e": "O unico jeito de conferir o ritmo de longe, sem olhar lamina por lamina — e sem rodar script. Hoje a folha 08 renderiza 6 laminas lado a lado e nao ha como enxergar que a 5 e a 6 sao duas claras coladas: o defeito passou pela Biblia inteira sem ninguem ver."
  }
 ],
 "icones": [
  {
   "slug": "bau",
   "nome": "Bau",
   "usa_quando": "transporte, entrega dedicada, a marca aplicada no painel. E o unico icone que representa veiculo — nao existe caminhaozinho generico no conjunto. 🔴 Nunca ao lado de icone de temperatura.",
   "svg_path": "<path d=\"M1.5 6.5h14v9h-14zM5.5 6.5v9M15.5 15.5V9.5h3.4l2.6 3v3zM7 15.5a2 2 0 1 0 0 4 2 2 0 1 0 0-4M18 15.5a2 2 0 1 0 0 4 2 2 0 1 0 0-4M1 19.5h22\"/>"
  },
  {
   "slug": "camara-fria",
   "nome": "Camara fria",
   "usa_quando": "camara fria propria — o diferencial da marca. 🔴 So encosta em galpao, camara ou palete; nunca em bau, veiculo ou rota, ate a ficha do veiculo voltar do Jose. Sem floco de neve: metafora e proibida.",
   "svg_path": "<path d=\"M3.5 2.5h14v19h-14zM7.5 6.5h6v11h-6zM17.5 11h3M20.5 9.5v3\"/>"
  },
  {
   "slug": "carga-fracionada",
   "nome": "Carga fracionada",
   "usa_quando": "o servico-ancora: alguns paletes pra mandar, sem precisar fechar um caminhao inteiro. 🔴 E PALETE PARCIAL, nunca caixa de papelao com aba: caixa e vocabulario de varejo e de consumidor final, que o atributo Indústria e transporte proibe.",
   "svg_path": "<path d=\"M4 6h7v8H4zM11 9h6v5h-6zM2.5 14h19v4h-19zM5 18v2.5M19 18v2.5\"/>"
  },
  {
   "slug": "cross-dock",
   "nome": "Cross-docking",
   "usa_quando": "cross-docking, redespacho, transbordo — a carga entra por um lado e sai pelo outro sem parar.",
   "svg_path": "<path d=\"M3 6.5h18v11H3zM1 10H10.5M8 7.5 10.5 10 8 12.5M13.5 14H23M20.5 11.5 23 14 20.5 16.5\"/>"
  },
  {
   "slug": "doca",
   "nome": "Doca",
   "usa_quando": "coleta, entrega, carregamento, a doca de distribuicao no mesmo endereco da camara.",
   "svg_path": "<path d=\"M3 18.5V2.5h12v16M3 6.5h12M3 10.5h12M2.5 18.5h19M15 18.5l5.5 3.5\"/>"
  },
  {
   "slug": "empilhadeira",
   "nome": "Empilhadeira",
   "usa_quando": "movimentacao interna, o que tira o palete do caminhao, operacao do galpao.",
   "svg_path": "<path d=\"M3 9h8v8.5H3zM11 2.5v15M11 13h9M11 17.5h4.5M6 18a2 2 0 1 0 0 4 2 2 0 1 0 0-4M15.5 18a2 2 0 1 0 0 4 2 2 0 1 0 0-4\"/>"
  },
  {
   "slug": "galpao",
   "nome": "Galpao",
   "usa_quando": "os 700 m², o pavilhao em Sao Jose, 'no mesmo galpao'. E o icone que acompanha obrigatoriamente a barra de temperatura.",
   "svg_path": "<path d=\"M1.5 10.5 12 4l10.5 6.5M4 10.5v11M20 10.5v11M1.5 21.5h21M9 21.5v-6h6v6\"/>"
  },
  {
   "slug": "nota",
   "nome": "Nota / romaneio",
   "usa_quando": "documento de embarque, romaneio, cotacao, e o registro conferivel na ANTT (RNTRC 058435566). E o icone do .pc__selo.",
   "svg_path": "<path d=\"M5 2.5h9l5 5v14H5zM14 2.5v5h5M8.5 11.5h7M8.5 15h7M8.5 18.5h4\"/>"
  },
  {
   "slug": "palete",
   "nome": "Palete",
   "usa_quando": "unidade de medida da operacao: posicao-palete, carga paletizada, quantidade de paletes. O palete e a unidade de tudo (MARCA.md §8).",
   "svg_path": "<path d=\"M6 3h12v7H6zM2.5 14h19v4h-19zM6 18v3.5M12 18v3.5M18 18v3.5M2.5 21.5h19\"/>"
  },
  {
   "slug": "posicao-palete",
   "nome": "Posicao-palete",
   "usa_quando": "a estrutura do galpao: 80 posicoes de congelado, 32 de resfriado, 100 de carga seca. Acompanha o numero grande.",
   "svg_path": "<path d=\"M3 2.5v19M21 2.5v19M3 12h18M3 21.5h18M7 5.5h10v6.5H7zM7 16h10v5.5H7z\"/>"
  },
  {
   "slug": "relogio",
   "nome": "Janela de coleta",
   "usa_quando": "janela de coleta, agendamento, frequencia — um dos quatro dados que abrem uma cotacao. 🔴 NUNCA pra prometer prazo nem dia de rota: prazo por praca e a pergunta 3 ao Jose.",
   "svg_path": "<path d=\"M12 3a9 9 0 1 0 0 18 9 9 0 1 0 0-18M12 7.5V12l3.5 2.5\"/>"
  },
  {
   "slug": "rota",
   "nome": "Rota",
   "usa_quando": "distribuicao, as seis regioes, redespacho. Carrega o DNA do componente .pc__rota dentro do conjunto: mesmos arcos, mesmo no de destino.",
   "svg_path": "<path d=\"M3 19h5a4 4 0 0 0 4-4v-3a4 4 0 0 1 4-4h1.6M20.5 5.8a2.2 2.2 0 1 0 0 4.4 2.2 2.2 0 1 0 0-4.4\"/>"
  },
  {
   "slug": "seta",
   "nome": "Seta",
   "usa_quando": "avanco, 'arraste', continuidade no carrossel, rodape do ancora. 🔴 APOSENTA o .chev de hoje (biblia.html:122), que e o caractere '›››' em Figtree 800 110px — texto fingindo de icone, que nao escala e nao tem peso de traco definido.",
   "svg_path": "<path d=\"M9 4.5 16.5 12 9 19.5\"/>"
  },
  {
   "slug": "termometro",
   "nome": "Termometro",
   "usa_quando": "faixa de temperatura, controle, congelado e resfriado. 🔴 NUNCA com grau nenhum no rotulo — a temperatura de cada faixa e a pergunta 1 ao Jose, e o MARCA.md so libera o numero com o dado dele.",
   "svg_path": "<path d=\"M10.2 14.6a3.9 3.9 0 1 0 0 7.8 3.9 3.9 0 1 0 0-7.8M8 15.6V4.5a2.2 2.2 0 0 1 4.4 0v11.1M14.7 6h3M14.7 9.5h2M14.7 13h3\"/>"
  }
 ],
 "proibido": [
  "NUMERO EM SERIFA LIGHT — o numero de destaque e Figtree 900, nunca Newsreader, nunca abaixo de 800. Quadro novo na folha PROIBIDO, substituindo o exemplo que hoje e desenhado no proprio estilo reprovado (biblia.html:563).",
  "DUAS LAMINAS DO MESMO FUNDO SEGUIDAS — substitui 'dois ancoras colados', que era estreita demais e deixou passar as duas claras coladas do bloco de hoje. O que continua proibido separadamente: dois ANCORAS CHAPADOS no mesmo bloco de 6.",
  "CAPA CLARA SEM CABECA VERDE CHEIA — a capa e o polo forte. A unica clara permitida e a que tem a cabeca de 140px em verde-800 no topo, que e o que a peca Temperatura-Controlada-FINAL da Amanda faz.",
  "DEGRADE DE VERDE COMO PREENCHIMENTO — o quadro antigo dizia 'degrade de verde, em qualquer lugar' e brigava com o veu de foto em 5 lugares da propria Biblia. O veu sobre fotografia e permitido, com os valores da peca. Preenchimento de marca em degrade continua proibido.",
  "TEMPERATURA EM GRAUS — nenhum icone, rotulo, etiqueta ou numero da peca escreve -18, 0 a 10 nem qualquer grau, ate a pergunta 1 ao Jose voltar com o dado dele.",
  "ICONE DE TEMPERATURA ENCOSTANDO EM VEICULO — termometro e camara-fria nunca aparecem ao lado de bau, caminhao ou rota. Juntos, eles afirmam frota refrigerada, que e uma das travas presas na resposta do Jose.",
  "BAU DA MARCA GERADO POR IA — o painel nasce LIMPO na geracao e a marca entra por composicao vetorial do assets/logo-mono-claro.svg por script. Foi pedir 'caminhao com o logo da Mothus' que reprovou 5 cenas as 12:53 de 17/09, com a IA redesenhando o simbolo como botao de play.",
  "MAPA DE SANTA CATARINA ROTULADO 'AREA DE ENTREGA' — o estado inteiro nao e a cobertura. A entrega direta sao seis regioes nomeadas, e fora delas vai por parceiro.",
  "CAIXA DE PAPELAO COMO ICONE DE CARGA — o palete e a unidade de tudo. Caixa com aba aberta e vocabulario de encomenda, varejo e consumidor final.",
  "CARIMBO ROTACIONADO IMITANDO SELO — o RNTRC vai numa etiqueta reta com o icone nota. Selo fingido de borracha e forma que precisa ser explicada depois.",
  "H4 FORA DO CARD — e H4 em mais de uma lamina por bloco de 6.",
  "CAIXA ALTA EM H2, H3 OU H4 — a caixa alta e do hook e dos rotulos pequenos, e de mais nada. Um titulo em caixa alta por bloco.",
  "TOPICO HORIZONTAL — a lista e sempre em coluna, com o marcador alinhado a primeira linha. E nenhum topico com a cor travada em verde-200, que da 1,6:1 sobre creme.",
  "ROTA QUE NAO LIGA DOIS ELEMENTOS — e rota junto do fio-do-frio na mesma lamina. Rota solta e decoracao, e decoracao e o que a marca chama de metafora abstrata.",
  "SETA NA PONTA DA ROTA — a direcao quem da e o no de destino.",
  "ROTULO, NUMERO OU SIGLA DENTRO OU AO LADO DE UM NO EM ACENTO — o acento e forma (2,60:1 sobre creme). Rotulo de cidade vai em --mo-texto.",
  "LASTRO SOBRE FOTO, LASTRO INTEIRO NO MEIO DA ARTE E MAIS DE DOIS LASTROS POR LAMINA.",
  "SOMBRA NO LOGOTIPO — continua inteira a proibicao de logotipo com sombra, contorno, brilho ou degrade. E o erro que quem implementar 'sombra forte' vai cometer primeiro, colando a logo sobre foto.",
  "SOMBRA ESCURA SOBRE FUNDO ESCURO — sobre ANCORA e sobre FOTO o descolamento e borda de recorte (--pc-sh-3-inv), nunca sombra: medi 1,23:1, ela nao levanta nada.",
  "SOMBRA EM TRACO — icone, lastro, rota e ponto nunca tem sombra. Traco com sombra vira adesivo.",
  "IBM PLEX MONO EM PECA — duas familias na PECA (Newsreader e Figtree); a mono e vocabulario da DOCUMENTACAO.",
  "FAMILIA NOVA PARA RESOLVER ROBUSTEZ DE NUMERO — robustez se resolve por PESO dentro da Figtree. Esta linha e o que impede a decisao do numero de ser reaberta daqui a duas semanas.",
  "DEPOIMENTO DE TERCEIRO NA CITACAO — ate a pergunta 6 ao Jose voltar, o .pc__citacao so aceita frase da propria empresa.",
  "PROMETER PRAZO, DIA DE ROTA OU FREQUENCIA GARANTIDA COM O ICONE RELOGIO — ele fala de janela de coleta e de agendamento, nunca de prazo."
 ],
 "limites": {
  "_leia_me": "Todo limite da peca Mothus que o CSS NAO consegue aplicar. CSS aplica tamanho, cor e posicao; nao aplica 'no maximo 13 caracteres por linha', 'no maximo 2 lastros' nem 'nunca duas laminas do mesmo tom seguidas'. Quem aplica isto e o conferir-peca.mjs, que le este arquivo e reprova. Fonte: _spec.json (decisoes[13] 'A regra vira teste'). Escrever estes limites como token de CSS e o pior dos dois mundos: parece regra e nao reprova nada.",
  "_as_nove_reprovacoes": [
   "ritmo            -> ritmo.*        (tom declarado, vizinhas iguais, teto de ancora, faixa de L*, delta de L*)",
   "capa             -> ritmo.capa     (capa CLARA sem a cabeca verde cheia de 140px)",
   "h1               -> texto.h1       (um por bloco, so na capa, linha acima de 96% da area util)",
   "numero           -> numero         (familia serifa/mono ou peso abaixo de 800)",
   "h4               -> texto.h4       (fora do .pc__card, ou em mais de uma lamina do bloco)",
   "rota             -> rota           (mais de uma rota por lamina, ou rota junto do fio-do-frio)",
   "lastro           -> lastro         (mais de 2 por lamina, ou dois do mesmo desenho)",
   "contraste        -> contraste      (par de cor abaixo de 4.5, ou 3.0 em texto grande)",
   "imagem-morta     -> imagem         (src que nao carrega)"
  ],
  "_fora_das_nove": "Os limites de h2, h3, apoio e topico ficam guardados aqui porque o montador da peca precisa deles, mas o conferidor NAO reprova por eles: as nove reprovacoes sao fechadas por decisao (_spec.json decisoes[13]). Mexer nisso e decisao nova, nao implementacao.",
  "amostra": {
   "atributo": "data-bloco",
   "valor": "amostra",
   "isenta": [
    "h1.maxPorBloco",
    "numero.proibidoNaCapa"
   ],
   "_o_que_e": "🔴 A UNICA PORTA DE SAIDA DO PORTAO, e ela e estreita de proposito. Um bloco marcado com data-bloco=\"amostra\" e uma tira de DOCUMENTACAO (a folha MO·09 ANATOMIA mostra 4 gabaritos soltos, sem hook, so pra cotar), nao um carrossel real — por isso ele nao e cobrado por 'exatamente 1 H1 na capa' nem por 'numero proibido na capa'. TUDO O MAIS continua valendo: ritmo, contraste, lastro, rota, h4, imagem morta. Quem marcar uma tira de peca de verdade com isto esta desligando a regra, nao cumprindo ela.",
   "_onde_esta_hoje": "biblia.html, a tira da folha MO·09 (ANATOMIA). Nenhuma outra."
  },
  "lona": {
   "largura": 1080,
   "altura": 1350,
   "alturaStory": 1920,
   "margem": 88,
   "areaUtil": 904,
   "unidade": "px da lona 1080 — o conferidor converte o px renderizado pela escala 1080/largura-da-lamina"
  },
  "ritmo": {
   "tons": [
    "clara",
    "foto",
    "ancora"
   ],
   "atributoObrigatorio": "data-tom",
   "sequenciaCanonica6": [
    "foto",
    "clara",
    "ancora",
    "clara",
    "foto",
    "clara"
   ],
   "sequenciaCanonica9": [
    "foto",
    "clara",
    "ancora",
    "clara",
    "foto",
    "clara",
    "ancora",
    "clara",
    "foto"
   ],
   "vizinhaIgualProibida": true,
   "ancoraMaxPorBloco": 1,
   "ancoraMaxPorBlocoDe9": 2,
   "ancoraDistanciaMinima": 2,
   "deltaLMin": 18,
   "luminancia": {
    "clara": [
     58,
     98
    ],
    "foto": [
     30,
     72
    ],
    "ancora": [
     20,
     26
    ]
   },
   "capa": {
    "tonsPermitidos": [
     "foto",
     "ancora"
    ],
    "claraSoComCabeca": true,
    "cabecaAlturaPx": 140,
    "cabecaTolerenciaPx": 12,
    "seletorCabeca": ".pc__cabeca, .lam .cabeca, .lam .cab"
   },
   "_medicao": "L* medio da lamina renderizada, reduzida a 150px de largura, em CIE L* (D65). Equivale a `magick lamina.png -resize 150x -colorspace LAB -channel R -format \"%[fx:mean*100]\" info:` — o conferidor faz a mesma conta em JS com canvas para nao depender do ImageMagick estar instalado.",
   "fotoAcimaDaAncoraMin": 6,
   "_porque_a_faixa_da_foto_mudou": "A spec estimou 42-68 sem medir contra o acervo real. Medido em 17/09/2026 com o veu novo: as fotos da operacao Mothus sao de dia nublado do sul (chuva, ceu fechado, galpao sem luz direta) e a lamina FOTO fica entre L* 32 e 38 — nao entre 42 e 68. Empurrar o veu mais claro que isto derruba o contraste do H1 branco no topo e apaga o verde da marca, que e pior. A faixa passa a 30-72, e entra a regra que importa de verdade: a lamina FOTO tem que ficar pelo menos 6 L* ACIMA da ANCORA do mesmo bloco, senao ela virou ancora disfarcada — que era o defeito que a decisao 1 queria matar. O separador principal continua sendo o deltaLMin de 18 entre vizinhas.",
   "_porque_a_faixa_da_clara_mudou": "Medido em 17/09/2026: uma lamina CLARA com cartao de foto grande fica entre L* 65 e 78 — a faixa 92-98 so vale para lamina clara SEM foto, e reprovava metade do bloco-modelo por um defeito que nao existe. O que separa CLARA de ANCORA e o deltaLMin de 18 entre vizinhas, nao o piso da faixa."
  },
  "texto": {
   "h1": {
    "seletor": ".pc__h1, .lam .h1",
    "maxPorBloco": 1,
    "soNaCapa": true,
    "maxCaracteresPorLinha": 13,
    "maxLinhas": 3,
    "maxPalavras": 4,
    "larguraMinDaAreaUtil": 0.78,
    "larguraMaxDaAreaUtil": 0.96,
    "pisoPx": 96,
    "tabelaPorCaractereDaLinhaMaisLonga": {
     "7": 164,
     "8": 152,
     "9": 132,
     "10": 120,
     "11": 112,
     "12": 104,
     "13": 96
    },
    "caixa": "uppercase",
    "familia": "Figtree",
    "peso": 800
   },
   "h2": {
    "seletor": ".pc__h2, .lam .h2, .lam .tit",
    "maxCaracteres": 34,
    "maxLinhas": 2,
    "capa": {
     "maxCaracteres": 28,
     "maxLinhas": 1
    },
    "caixaAltaProibida": true,
    "familia": "Newsreader"
   },
   "h3": {
    "seletor": ".pc__h3, .lam .h3",
    "maxCaracteres": 28,
    "maxLinhas": 1,
    "maxPorLamina": 2,
    "exigeListaAbaixo": true,
    "proibidoNaCapa": true
   },
   "h4": {
    "seletor": ".pc__h4, .lam .h4",
    "maxCaracteres": 190,
    "maxColunaCh": 38,
    "maxLinhas": 5,
    "maxLaminasPorBloco": 1,
    "exigeCard": true,
    "seletorCard": ".pc__card, .lam .card",
    "proibidoNaCapa": true
   },
   "apoio": {
    "seletor": ".pc__apoio, .lam .apo",
    "maxCh": 26,
    "maxLinhas": 2
   },
   "topico": {
    "seletor": ".pc__topicos li, .lam .topicos li, .lam .top2 li",
    "minItens": 3,
    "maxItens": 5,
    "maxCh": 42,
    "horizontalProibido": true
   }
  },
  "numero": {
   "seletor": ".pc__numero, .lam .numero, .lam .big",
   "familiaObrigatoria": "Figtree",
   "familiasProibidas": [
    "Newsreader",
    "IBM Plex Mono",
    "serif",
    "monospace",
    "Georgia",
    "Times",
    "Times New Roman"
   ],
   "pesoMin": 800,
   "pesoAlvo": 900,
   "pesosProibidos": [
    100,
    200,
    300,
    400,
    450,
    500,
    600,
    650,
    700
   ],
   "tamanhoPx": 210,
   "tamanhoTrioPx": 96,
   "unidadePx": 56,
   "proibidoNaCapa": true,
   "_porque": "Figtree e variavel de 300 a 900: o 900 nao e familia nova, e peso. Sem `Figtree:wght@300..900` no import o 900 cai calado em 800 e ninguem ve — por isso o conferidor le o font-weight computado, nao o CSS escrito."
  },
  "lastro": {
   "seletor": ".pc__lastro, .lam .lastro, .lam .mda2, .lam .grade2, .lam .tex",
   "maxPorLamina": 2,
   "desenhoRepetidoProibido": true,
   "maxLaminasComLastroEmBlocoDe6": 4,
   "proibidoSobreFoto": true,
   "sangraMinimaDaLona": 0.12,
   "opacidade": {
    "clara": 0.06,
    "ancora": 0.1,
    "foto": 0
   },
   "tamanhoPx": {
    "min": 216,
    "max": 560,
    "maxSangrando": 840
   }
  },
  "rota": {
   "seletor": ".pc__rota, .lam .rota",
   "seletorFio": ".pc__fio, .lam .fio2",
   "maxPorLamina": 1,
   "convivenciaComFioProibida": true,
   "minNos": 2,
   "maxNos": 5,
   "maxLaminasEmBlocoDe9": 4,
   "setaNaPontaProibida": true,
   "folgaDoTextoPx": 24
  },
  "contraste": {
   "min": 4.5,
   "minTextoGrande": 3,
   "grandePx": 24,
   "grandePxNegrito": 18.66,
   "pesoNegrito": 700,
   "_medicao": "cor do texto = getComputedStyle().color; cor do fundo = cor modal do recorte do screenshot sob a caixa do elemento, descontados os pixels da propria letra. E assim que se mede texto sobre foto e sobre veu, onde nao existe background-color para ler.",
   "_isentos": [
    ".pc__lastro",
    ".lam .lastro",
    ".lam .mda2",
    ".lam .grade2",
    ".pc__rota",
    ".lam .cotas"
   ],
   "_porque_isento": "lastro, rota e ponto sao FORMA, nao texto — o manual ja libera a forma no acento (2,60:1 sobre creme). As cotas sao chrome de documentacao da Biblia, nao peca."
  },
  "imagem": {
   "seletor": "img[src]",
   "exigeCarregar": true,
   "escopo": "documento inteiro — o defeito medido (folha 07 apontando para 4 arquivos movidos) mora fora das laminas"
  }
 }
}