# Carrossel de feed 4:5 — peça §12.33

- spec: `marca-seed.md` §12.33, v5.64
- estado: estável
- data no título da spec: não declarada
- spec no canon (página): https://ds.seed.eng.br/canon/marca-seed/12-camada-fisica-da-marca/#sec-12-33-carrossel-de-feed-4-5-estavel-fecha-a-lc-04
- fatia do §12 inteiro (as specs, .md): https://ds.seed.eng.br/10-publicacao/ia/marca-seed/12-camada-fisica-da-marca.md
- pasta: https://ds.seed.eng.br/07-pecas/carrossel/

## Renders

- https://ds.seed.eng.br/07-pecas/carrossel/carrossel-exemplo-sequencia.png
- https://ds.seed.eng.br/07-pecas/carrossel/slide-1-capa.png
- https://ds.seed.eng.br/07-pecas/carrossel/slide-2-conteudo.png
- https://ds.seed.eng.br/07-pecas/carrossel/slide-3-conteudo.png
- https://ds.seed.eng.br/07-pecas/carrossel/slide-4-conteudo.png
- https://ds.seed.eng.br/07-pecas/carrossel/slide-5-chamada-final.png

## Templates e arquivos

- https://ds.seed.eng.br/07-pecas/carrossel/carrossel-exemplo-sequencia.html
- https://ds.seed.eng.br/07-pecas/carrossel/slide-1-capa.html
- https://ds.seed.eng.br/07-pecas/carrossel/slide-2-conteudo.html
- https://ds.seed.eng.br/07-pecas/carrossel/slide-3-conteudo.html
- https://ds.seed.eng.br/07-pecas/carrossel/slide-4-conteudo.html
- https://ds.seed.eng.br/07-pecas/carrossel/slide-5-chamada-final.html
- https://ds.seed.eng.br/07-pecas/carrossel/carrossel-exemplo-entrega.md

## A spec (trecho da fatia do §12, sem edição)

> Copiado do `marca-seed.md` v5.64. Se divergir da fatia no ar, vale a fatia.

### 12.33 Carrossel de feed 4:5 (`estável`) — fecha a `LC-04`

Gerador: `gen-carrossel.py`. Peças: `07-pecas/carrossel/` — um carrossel de exemplo de 5 slides:
`slide-1-capa` · `slide-2-conteudo` · `slide-3-conteudo` · `slide-4-conteudo` · `slide-5-chamada-final` (cada
um `.html/.png`), a sequência lado a lado `carrossel-exemplo-sequencia.html/.png` e o texto de entrega
`carrossel-exemplo-entrega.md` (texto alternativo de cada slide e a instrução de anúncio). **Peça de TELA**
(`alvo-fisico` vazio, `alvo-tela` 1080 × 1350 px), Montserrat subset `seed` embutida. `--checar` byte-idêntico em
11 de 11 (os 7 arquivos da peça e as 4 cobaias das réguas). Conteúdo do exemplo: `sobreaseed.md` §1, §6 e §9.

Veredito do gate (2026-09-28), verbatim: `LC4-1: A` · `LC4-2: A` · `LC4-3: A` · `LC4-4: A` · `LC4-5: A` ·
`LC4-6: confirmo todos`, com o pedido *"segue respostas, pode abrir todo o grupo, pode abrir 1 a 1 para economizar
token."* As saídas, as candidatas e as medições do gate: `09-pesquisa/2026-09-28-lc04-carrossel/`.

**Formato (LC4-1):** 1080 × 1350 (4:5, seed-praticas §1.3 e §3.5). Na grade do perfil (recorte 3:4, medido em
2026-09-08) sobra o centro de 1012 px: perde 34 px por lado, fora da margem de 76 px. **De 3 a 10 slides** (teto
comum, seed-praticas §3.1; o gerador aborta fora disso), todos no mesmo formato.

**Anatomia, igual em todo slide (LC4-6 b):** margem de 76 px; logo horizontal principal de 64 px no topo à
esquerda; contador no topo à direita; miolo ancorado a F + 150 px da base: marcador amarelo (§7.6) + eyebrow
28 px (`text-brand-strong`, 6,32:1) + título 76 px (84 px na capa, `text-primary`, 13,72:1) + corpo 36 px
(`text-secondary`, 7,75:1). Pisos da seed-praticas §1.4 (4:5: título ≥ 72, corpo ≥ 32, microtexto ≥ 28) cumpridos.

**Contador (LC4-3):** `01 / 05`, Montserrat 600 28 px, algarismos tabulares (a largura não muda entre slides),
`text-muted` (5,61:1). Numerar é obrigatório: a entrada do carrossel não é garantida (segunda chance e
posicionamento personalizado, seed-praticas §3.3 e §4.3).

**Sinal de arraste (LC4-4):** "Arraste" + o glifo `arrow-right` do set §45 (extraído do set, nunca desenhado),
**só na capa**, à direita, acima da faixa. Nos outros slides o contador conduz.

**Fundo (LC4-5):** todos os slides claros (`surface-page`). A faixa contínua lê como uma paisagem só, de uma cor.

**Grafismo (LC4-2 e LC4-6 a, d):** a **faixa contínua do carrossel** (§7.6): UMA faixa
`svg_divisor(n × 1080, altura=F)` do `gen-detalhe.py`, com a emenda aprovada, e cada slide recebe a janela `i` pela
função `svg_janela(i, n, 1080, F)` (x0 = (i − 1) × 1080 / k). **F = `floor(1350 × 0,0795)` = 107 px (7,93 %)**, a
linha 4:5 da tabela da §7.4. Medido na peça: k = 1,25882, período da imagem aprovada 1.359,53 px (≠ 1080, por isso
nenhum slide repete outro), 4 cópias emendadas na faixa de 5 slides, traço visual 4,36 / 3,74 / 3,11 / 2,73 px.
A guarda **GE-6** (`guarda-grafismo.py`) confere no artefato que os slides de um mesmo `data-carrossel` trazem o
mesmo traçado em janelas contíguas, de 0 ao fim da faixa. ⚠ Em 1:1 a faixa contínua repete o mesmo trecho em todo
slide (período 1080 = slide, medido no gate): o formato é 4:5.

**Chamada final (LC4-6 c):** os dois pedidos, guardar ("Salve para consultar depois") e contato ("Fale com a SEED
engenharia"), com **0800 591 5374 · seed.eng.br** (`sobreaseed.md` §1).

**Camada de máquina (LC4-6 e):** o título de cada slide é `<h1>`; a sequência (vários slides numa página) tem um
`<h1>` só (o título da capa) e os outros em `<h2>` (MK2 do §47).

**Entrega (LC4-6 f):** o texto alternativo de cada slide repete o texto da arte (seed-praticas §18.3, regra 3) —
vai no `<meta name="texto-alternativo">` de cada slide e no `carrossel-exemplo-entrega.md`. Se o carrossel virar
anúncio, a entrega leva por escrito a instrução de desligar **"destacar cartão do carrossel"** (seed-praticas §3.3):
a ordem dos slides é obrigatória.

**Proibições:** a continuidade nunca se monta repetindo o slide anterior, o asset de referência ou um recorte
pronto (regra da emenda, §7.6); EEny fora do carrossel-modelo (§6, parcimônia: uma pose por peça, se entrar é
decisão de quem monta); cor só por token.

**Medido na implementação (2026-09-28):** `--checar` 11 de 11 e duas gerações com o mesmo MD5 (11 de 11) ·
render 6 de 6 com duas cargas idênticas · contraste no pior pixel (RC, 1080 px) 10 PASS · 0 FAIL (5 slides × 2
temas), pior 5,61:1 no contador · GR1-c na fixture 4:5 6 de 6 (a cobaia de 108 px reprova; tinta de 75 a 88 px) ·
GE-6 8 de 8 carrosséis no repositório (as 7 candidatas contínuas do gate e este) e 4 de 4 na prova (janela
deslocada e repetida reprovam em J2, outro traçado em J1, a peça passa) · teste da `svg_janela` 9 de 9 (1 de 9
contra o `gen-detalhe.py` de antes) · os 26 geradores que importam o `gen-detalhe.py` byte-idênticos · ficha CP em
dois slides: CP-1 a CP-9 PASS, CP-5 (marca) e CP-6 (grafismo, 4 e 8 de 8 traços) PASS, **CP-10 FAIL** só por
"pouco texto extraível" (o conferidor lê o slide de 810 × 1012 pt como folha de documento — resto da `CP-P28`; o
`<h1>` está lá) · CP-11 a CP-13 NÃO MEDI.
