+ Um bloco compacto no resumo que responde somente quantos downloads cada modelo recebeu.
+ Sem rota, dashboard, total, porcentagem, tendência ou leitura de pessoas.
+
+ O bloco entra depois do resumo principal, sem competir com “Votos estimados”. Os números
+ abaixo são fictícios e existem apenas para validar largura e hierarquia.
+
+
+
+
+
+
+
Visão geral
+
Resumo da campanha
+
+
+
+
Votos estimados
+
+
+
+
+ Cobertura por lideranças
+
+
+
+
+
+
+
+
+
+
Cards
+
+ Downloads anônimos acumulados desde o lançamento.
+
+
+ VALORES FICTÍCIOS DO GATE
+
+
+
+
+ Card com seu nome
+
+
123
+
+
+
+ Moldura quadrada
+
+
89
+
+
+
+ Moldura vertical
+
+
67
+
+
+
+ Time de você
+
+
145
+
+
+
+ Time do estadual
+
+
34
+
+
+
+ Minha colinha
+
+
76
+
+
+
+ Os números contam downloads, não pessoas ou visitantes únicos.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cena 2 · Home interna mobile 390 · bloco com dados
+
+
+ No mobile cada modelo vira uma linha compacta: rótulo à esquerda, contagem tabular à
+ direita. Não há carrossel escondendo modelos nem grid apertado.
+
+
+
+
+
+ S
+
+ Visão geral
+
+
+
+
+
+
+
Votos estimados
+
+
+
+
+ Cobertura por lideranças
+
+
+
+
+
+
+
+
+
Cards
+ EXEMPLO
+
+
+ Downloads anônimos acumulados desde o lançamento.
+
+
+
+
Card com seu nome
+
123
+
+
+
Moldura quadrada
+
89
+
+
+
Moldura vertical
+
67
+
+
+
Time de você
+
145
+
+
+
Time do estadual
+
34
+
+
+
Minha colinha
+
76
+
+
+
+ Os números contam downloads, não pessoas ou visitantes únicos.
+
+
+
+
+
+
+
+
+ Cenas 3–4 · Estado vazio honesto · desktop + mobile
+
+
+ Antes do primeiro evento, não se desenham seis zeros como se fossem uma comparação pronta.
+ O bloco explica o que surgirá e preserva o mesmo espaço sem gráfico ou CTA.
+
+
+
+
+
Cards
+
+
+
+ ↓
+
+
+
Nenhum download ainda
+
+ Os contadores aparecem quando alguém baixar um card.
+
+
+
+
+
+ A contagem será anônima e mostrará downloads por modelo, nunca pessoas.
+
+
+
+
+
+ Visão geral
+
+
+
Cards
+
+
+ ↓
+
+
Nenhum download ainda
+
+ Os contadores aparecem quando alguém baixar um card.
+
+
+
+ A contagem será anônima e mostrará downloads por modelo, nunca pessoas.
+
+
+
+
+
+
+
+
+ Anatomia aprovada do bloco
+
+
+
+
Só seis modelos
+
+ Card com seu nome · Moldura quadrada · Moldura vertical · Time de você · Time do
+ estadual · Minha colinha.
+
+
+
+
Só números absolutos
+
+ Sem porcentagem, total de “usos”, ranking, série, seta, gráfico ou tendência.
+
+
+
+
Leitura honesta
+
+ “Downloads”, nunca pessoas, usuários ou visitantes únicos. Caption curta sempre
+ visível.
+
+
+
+
+
+
+
+
+
diff --git a/docs/plans/cards-analytics.md b/docs/plans/cards-analytics.md
new file mode 100644
index 00000000..ab78e632
--- /dev/null
+++ b/docs/plans/cards-analytics.md
@@ -0,0 +1,108 @@
+# S32 — Analytics dos cards personalizados: quantos e quais
+
+Status: rascunho
+Atualizado em: 2026-09-23
+Issue: #1273
+Priority: P2
+Impeccable: B — encaixe no resumo da home interna (contadores por modelo), sem tela nova
+Design UI: docs/plans/cards-analytics-ui-design.html
+Appetite: ~0,5–1 dia eng (depois do C213)
+Responsável: —
+
+## Intenção
+
+O funil de cards personalizados (S13/S14/S15 e os modelos novos de S30/S31) roda 100% no aparelho do visitante, sem conta e sem coletar nada sobre quem usa — decisão de privacidade que continua valendo. O efeito colateral é que a campanha não sabe se o funil é usado nem quais modelos circulam: o dono pediu "medidas de quantas pessoas estão usando e quais". Responder à pergunta útil não exige identificar ninguém — basta contar downloads por modelo, de forma anônima e agregada. O C213 (#1258) já desenha um mecanismo mínimo de eventos anônimos para a Central de Conteúdos; este item faz o card ser mais um assunto do mesmo mecanismo, nunca um segundo analytics.
+
+## Persona e fluxo
+
+- **Persona / contexto:** coordenação e assessoria (staff) na home interna `/campanha`, decidindo o que divulgar e em que modelo investir; quem gera o evento é o visitante anônimo do funil público.
+- **Job principal:** ler, por modelo de card, quantos downloads aconteceram desde o lançamento, e decidir qual modelo divulgar/reforçar (e, nos modelos com escolha estadual, qual dobradinha está sendo promovida).
+- **Fluxo desejado:** abre a home interna → vê o bloco compacto "Cards" com o contador de downloads de cada modelo, lado a lado → lê qual modelo puxa o uso do funil → decide reforçar, divulgar de novo ou aposentar um modelo.
+- **Anti-goals de produto:** não é analytics de site (sem pageview, funil, origem); não é perfil de visitante (sem cookie, IP, user-agent, identidade ou rastreio); não é dashboard nem rota nova; não mede abertura de galeria, prévia ou nada dentro da foto/recorte local.
+
+### Esboço de fluxo (B)
+
+```text
+[visitante baixa o PNG] → evento anônimo "Download do card" no mecanismo do C213 (model id + slug do estadual quando houver)
+[staff] home interna → bloco "Cards" (contadores por modelo, lado a lado) → decide o que divulgar/reforçar
+[falha na contagem] o download segue idêntico e imediato — contador a menos é aceitável
+```
+
+### Design UI (B)
+
+- Design UI (gate): `docs/plans/cards-analytics-ui-design.html` — cena do bloco compacto no resumo da home, com e sem dados, em desktop e mobile.
+
+## Objetivo e aceite
+
+- O download de qualquer card conta uma vez um evento anônimo "Download do card", com o model id do card; nos modelos de escolha estadual (S30/S31) o evento leva também o slug do estadual escolhido.
+- A superfície interna mostra, por modelo, o contador absoluto acumulado desde o lançamento, lado a lado; sem índice único de "usos", sem %, sem série/tendência, sem funil/pageview.
+- Honestidade do dado: os números medem downloads, não pessoas — a superfície não sugere visitantes únicos (impossível sem identidade) nem mistura as duas leituras.
+- Não conta abertura da galeria nem prévia renderizada; só o download concluído (arquivo gerado e entregue ao visitante).
+- Privacidade: evento estritamente anônimo e agregado — sem PII, sem IP persistido, sem cookie/identidade, sem user-agent, sem rastreio entre páginas ou entre modelos; nenhum `Consent` novo.
+- Fail-soft: o download nunca é bloqueado nem atrasado pela contagem; falha no evento é invisível ao visitante; nada da foto ou do recorte local é tocado por telemetria.
+- Mesmo mecanismo do C213 (#1258) — nenhuma collection/endpoint paralelo; sem o C213 entregue não há onde escrever nem onde ler.
+
+## Dados (intenção)
+
+- **Vou apresentar dados?** Sim, superfície neste item — contadores anônimos por modelo de card no resumo da home interna.
+- **Decisões desbloqueadas:**
+ - Coordenação e assessoria: qual modelo de card divulgar/reforçar e se vale manter um modelo com pouca saída.
+ - Coordenação: qual dobradinha está sendo promovida nos modelos com escolha estadual (S30/S31) — o slug escolhido é o sinal.
+ - Coordenação: ler se o funil de cards como um todo está sendo usado (soma dos downloads por modelo — número de downloads, nunca de pessoas).
+- **Forma:** _adiada ao plano de implementação_ — restrições: contagens absolutas por modelo, lado a lado e na ordem natural do catálogo; sem índice "usos", sem %, sem série/tendência, sem funil/pageview.
+
+## Dados da decisão (literais)
+
+- Um único pipeline anônimo de analytics — o do C213 (#1258); o card é um assunto do mesmo mecanismo, nunca uma collection/endpoint paralelo. Dependência dura do C213.
+- Evento v1: "Download do card" — disparado uma vez quando o visitante baixa o PNG gerado; carrega o model id do card e, nos modelos por estadual (S30/S31), o slug do estadual escolhido. Abertura da galeria e render da prévia NÃO contam no v1.
+- Contadores por modelo de card, lado a lado e absolutos; sem índice único de "usos", sem %, sem série/tendência, sem funil/pageview, sem ranking além da ordem natural dos contadores.
+- Guardrail de honestidade: contagens anônimas medem downloads, não "pessoas"; sem identidade não existe visitante único — a superfície não pode sugerir isso.
+- Superfície recomendada: bloco compacto "Cards" no resumo da home da campanha (precedente `CampaignHomeSummary`/`CampaignMetricStrip`, papéis de staff) — sem rota nova, sem dashboard. A comunicação (role `communicator`, cuja home é a vertical Comunicação) veria depois, pela própria vertical, se o produto pedir; a superfície do v1 é a home staff.
+- Privacidade: sem PII, sem IP persistido, sem cookie/identidade, sem user-agent, sem rastreio entre páginas/modelos; sem `Consent` novo; estritamente anônimo e agregado.
+- Fail-soft: o download nunca é bloqueado nem atrasado pelo contador — contagem a menos é aceitável, dado de visitante não.
+- Os modelos que incluem escolha de estadual contam o mesmo evento de download com o slug do estadual (qual dobradinha está sendo promovida é uma decisão que a campanha quer).
+
+## Direção no codebase (hipótese)
+
+- **Áreas prováveis:** o caminho de download de `src/components/cards/CardComposer.tsx` (o evento sai daqui, sem bloquear), o catálogo `src/lib/cardModels.ts` como lista de modelos, e o resumo da home (`src/components/campaign/dashboard/CampaignHomeSummary.tsx`, hoje alimentado por `src/utilities/campaignDashboardData.ts`).
+- **Precedente a olhar:** `docs/plans/central-conteudos-analytics.md` (C213 — o mecanismo, a agregação e o idioma de superfície), `src/components/campaign/shared/CampaignMetricStrip.tsx` (molde do bloco de contadores) e `src/collections/CampaignVoteSummarySnapshot.ts` (contagem agregada sem dashboard).
+- **Risco de acoplamento:** a contagem é acessória — atraso ou falha do C213 não pode segurar o funil; nenhum identificador de visitante nasce do lado do card; nada de tocar na foto ou no recorte que roda no aparelho.
+
+## Dependências
+
+- **C213 (#1258)** — dura: o pipeline de eventos anônimos e o idioma de superfície interna precisam existir primeiro.
+- **S30/S31** — suave: os modelos novos apenas somam model ids e slugs ao contador.
+
+## Fora de escopo
+
+- Segundo mecanismo de eventos, serviço de analytics (Umami/Plausible) ou retomada de `@vercel/analytics`; cookie, identidade, sessão, banner de consentimento ou `Consent` novo.
+- Contar abertura de galeria, prévia renderizada, modelo escolhido no estúdio ou qualquer passo dentro do compositor; medir a foto ou o recorte local (a imagem nunca sai do aparelho e não é tocada por telemetria).
+- Dashboard, rota `/campanha/cards`, gráfico, série/tendência, exportação, alerta, lista por visitante ou índice único de "usos".
+- Visão da comunicação no v1 (follow-up registrado: pela vertical, se o produto pedir).
+
+## Rabbit holes de produto
+
+- **"Quero saber quantas pessoas usam".** Se alguém "só completar": cookie, session id, "visitante único" — métrica que não existe sem identidade. **Corte neste item:** contador de downloads, agregado, dito honestamente.
+- **Virar dashboard de cards.** Se alguém "só completar": rota própria com gráfico, série e ranking. **Corte neste item:** bloco compacto na home staff, contadores absolutos por modelo.
+- **Medir o funil inteiro.** Se alguém "só completar": pageview, modelo escolhido, prévia, abandono. **Corte neste item:** só o download; abertura, prévia e estúdio fora.
+- **Identificar quem compartilha.** Se alguém "só completar": gravar o nome/foto do card ou inferir perfil pelo uso. **Corte neste item:** zero PII; a foto nunca sai do aparelho.
+- **Segunda superfície "só para a comunicação".** Se alguém "só completar": bloco novo na vertical da comunicação no v1. **Corte neste item:** home staff agora; comunicação depois, pela vertical, se o produto pedir.
+
+## Questões em aberto (produto)
+
+- **Onde os contadores aparecem?** **Opções:** A) bloco compacto no resumo da home da campanha, staff (recomendado) | B) na lista de peças do C211, ao lado dos contadores por peça do C213 (força os cards a uma lista a que não pertencem) | C) rota própria `/campanha/cards` (rejeitada — superfície nova de dashboard; a doutrina do C213 evita). **Recomendação:** A. _(assumido — validar com produto)_
+- **O que conta?** **Opções:** A) só o download (recomendado — o momento em que o visitante leva o card) | B) download + modelo selecionado no estúdio (mede interesse x conversão, com mais ruído). **Recomendação:** A. _(assumido — validar com produto)_
+- **Granularidade:** A) acumulado por modelo desde o lançamento (recomendado no v1, espelha o C213) | B) janela de tempo (só se alguém pedir "o que está circulando agora"). **Recomendação:** A. _(assumido — validar com produto)_
+
+## Referências
+
+- GitHub Issue #1258 (C213 — dependência dura)
+- Design UI (gate): `docs/plans/cards-analytics-ui-design.html`
+- `docs/plans/central-conteudos-analytics.md` — o mecanismo e a superfície que este item integra
+- `src/components/campaign/dashboard/CampaignHomeSummary.tsx`, `src/components/campaign/shared/CampaignMetricStrip.tsx`, `src/collections/CampaignVoteSummarySnapshot.ts` — precedentes de superfície/rollup
+- `src/components/cards/CardComposer.tsx`, `src/lib/cardModels.ts` — onde o download acontece e o catálogo de modelos
+- `docs/plans/cards-time-de-voce.md`, `docs/plans/cards-estadual-dobradinha.md`, `docs/plans/cards-colinha.md` — os modelos que o contador separa
+
+## Self-score (shaping)
+
+5/5 — (1) fatia = um outcome verificável (download contado e contadores por modelo na home staff); (2) appetite ~0,5–1 dia cabe porque reusa o mecanismo do C213; (3) persona, job e aceite em linguagem de produto, com o guardrail de honestidade explícito; (4) direção no codebase é hipótese com precedentes abertos; (5) zero decisão dura de engenharia — shape da collection, endpoint e agregação ficam no C213/implementação.
diff --git a/docs/plans/cards-colinha-ui-design-assets/marca-negativa-completa.png b/docs/plans/cards-colinha-ui-design-assets/marca-negativa-completa.png
new file mode 100644
index 00000000..00fc39c1
Binary files /dev/null and b/docs/plans/cards-colinha-ui-design-assets/marca-negativa-completa.png differ
diff --git a/docs/plans/cards-colinha-ui-design-assets/modelo-colinha.jpeg b/docs/plans/cards-colinha-ui-design-assets/modelo-colinha.jpeg
new file mode 100644
index 00000000..da706cb7
Binary files /dev/null and b/docs/plans/cards-colinha-ui-design-assets/modelo-colinha.jpeg differ
diff --git a/docs/plans/cards-colinha-ui-design-assets/team-card-base.png b/docs/plans/cards-colinha-ui-design-assets/team-card-base.png
new file mode 100644
index 00000000..6e7aceb7
Binary files /dev/null and b/docs/plans/cards-colinha-ui-design-assets/team-card-base.png differ
diff --git a/docs/plans/cards-colinha-ui-design-assets/team-card-front.png b/docs/plans/cards-colinha-ui-design-assets/team-card-front.png
new file mode 100644
index 00000000..e4177714
Binary files /dev/null and b/docs/plans/cards-colinha-ui-design-assets/team-card-front.png differ
diff --git a/docs/plans/cards-colinha-ui-design.html b/docs/plans/cards-colinha-ui-design.html
new file mode 100644
index 00000000..738c23f8
--- /dev/null
+++ b/docs/plans/cards-colinha-ui-design.html
@@ -0,0 +1,689 @@
+
+
+
+
+
+
+ Design — S31 · Minha colinha
+
+
+
+
+
+
Gate visual · S31
+
Minha colinha
+
+ O militante escolhe o estadual e leva uma colinha 9:16 completa para mandar ou imprimir.
+ Cinco escolhas são fixas; a linha de deputado estadual recebe nome e cinco dígitos da
+ dobradinha.
+
+
+ PNG 1080 × 19201280px + 390pxsem nome, foto ou uploadmodelo aprovado · arquivo do gate
+
+
+
+
+
+ Cena 1 · Tile “Minha colinha” na galeria
+
+
+ O sexto modelo mantém o mesmo tile clicável. No desktop, a seção usa seis colunas; no
+ celular, permanece no carrossel horizontal com uma pista do próximo/anterior.
+
+
+
+
+ Card com seu nome
+
+
+ Moldura quadrada
+
+
+ Moldura vertical
+
+
+ Time de você
+
+
+ Time do estadual
+
+
+
+
+
+
+
+
+ Cena 2 · Estado inicial + seletor aberto · dialog desktop
+
+
+ Sem estadual, a linha correspondente fica vazia e o download não compete com a escolha. O
+ mesmo seletor de S30 oferece busca, teclado e lista rolável dos 53 nomes.
+
+
+
+
+
+
+
+ Minha colinha
+
+
Escolha seu estadual
+
+ A linha de deputado estadual será preenchida na hora.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FEDERAÇÃO BRASIL DA ESPERANÇA - FE BRASIL (PT-PC DO B - PV)
+
+
+
+
+ DEPUTADO FEDERALJorge Solla
+
+
+ 1313
+
+ CONFIRMA
+
+
+
+ DEPUTADO ESTADUALEscolha abaixo
+
+
+ 00000
+
+ CONFIRMA
+
+
+
+
+
+
+
+
+ ⌕
+
+
+ 53 estaduais · busque pelo nome de urna
+
+
+
+
+
+
+
+ Escolha um estadual para baixar. A linha vazia será
+ preenchida com o nome e os cinco dígitos.
+
+ A prévia fica grande o bastante para conferir todas as linhas. O topo abaixo compõe ativos
+ oficiais para o gate; a arte-mestre final ainda precisa ser produzida e aprovada.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FEDERAÇÃO BRASIL DA ESPERANÇA - FE BRASIL (PT-PC DO B - PV) | CNPJ CANDIDATO:
+ 68.430.467/0001-05
+
+
+
+
+ DEPUTADO FEDERALJorge Solla
+
+
+ 1313
+
+ CONFIRMA
+
+
+
+ DEPUTADO ESTADUALJULIO PINHEIRO
+
+
+ 13999
+
+ CONFIRMA
+
+
+
SENADORJaques Wagner
+
+ 130
+
+ CONFIRMA
+
+
+
SENADORRui Costa
+
+ 133
+
+ CONFIRMA
+
+
+
GOVERNADORJerônimo
+
13
+ CONFIRMA
+
+
+
PRESIDENTELula
+
13
+ CONFIRMA
+
+
+
+
+
+
+ Minha colinha
+
+
Pronta para levar com você
+
+ Confira o estadual escolhido. As demais escolhas já vêm preenchidas no modelo oficial.
+
+
+
+
Linha conferida
+
+ DEPUTADO ESTADUAL · JULIO PINHEIRO · 13999
+
+
+
+
+ A escolha é processada neste aparelho. Nenhum nome, foto ou cadastro é solicitado.
+
+
+
+
+
+
+
+ Cena 4 · Zoom do detalhe aprovado · deputado estadual
+
+
+ Um dígito por caixa, cinco caixas, nome vermelho e CONFIRMA verde. Este recorte fixa a
+ hierarquia e o contraste em escala legível.
+
+
+
+
+
DEPUTADO ESTADUAL
+
+ JULIO PINHEIRO
+
+
+
+ 13999
+
+ CONFIRMA
+
+
+
+
+
+
+ Cena 5 · Drawer mobile 390 · escolhido e pronto
+
+
+ A colinha usa quase toda a largura útil e segue legível; a prévia rola, enquanto o CTA
+ fica isolado no rodapé.
+
+
+
+
+
+
+
+
Minha colinha
+
Pronta para baixar
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FEDERAÇÃO BRASIL DA ESPERANÇA - FE BRASIL (PT-PC DO B - PV) | CNPJ CANDIDATO:
+ 68.430.467/0001-05
+
+
+
+
+ DEPUTADO FEDERALJorge Solla
+
+
+ 1313
+
+ CONFIRMA
+
+
+
+ DEPUTADO ESTADUALJULIO PINHEIRO
+
+
+ 13999
+
+ CONFIRMA
+
+
+
SENADORJaques Wagner
+
+ 130
+
+ CONFIRMA
+
+
+
SENADORRui Costa
+
+ 133
+
+ CONFIRMA
+
+
+
GOVERNADORJerônimo
+
+ 13
+
+ CONFIRMA
+
+
+
PRESIDENTELula
+
+ 13
+
+ CONFIRMA
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/plans/cards-colinha.md b/docs/plans/cards-colinha.md
new file mode 100644
index 00000000..a3768a39
--- /dev/null
+++ b/docs/plans/cards-colinha.md
@@ -0,0 +1,111 @@
+# S31 — Minha colinha: o estadual escolhido na colinha de voto
+
+Status: rascunho
+Atualizado em: 2026-09-23
+Issue: #1272
+Priority: P1
+Impeccable: B — novo modelo no estúdio de cards existente com saída nova (colinha) e seletor de estadual
+Design UI: docs/plans/cards-colinha-ui-design.html
+Appetite: ~1–1,5 dia eng; um modelo novo e verificável no estúdio de cards existente
+Responsável: —
+
+## Intenção
+
+O funil de cards (seção `#cards` da home + `/cards`) dá ao visitante cards para circular — nome, foto e "Time de você". Falta a peça que o cabo eleitoral leva para a rua: a **colinha de voto**, o papel com o número de cada cargo. O pedido do humano é auto-serviço: o visitante escolhe o estadual da mesma lista da dobradinha (S30) e recebe uma colinha 9:16 no modelo de referência, com a linha do estadual preenchida — nome de urna e os cinco dígitos, um por caixa — e as outras cinco escolhas fixas do voto.
+
+A referência é uma arte vertical 1080×1920 de fundo branco: topo com o lockup "MAIS SAÚDE MAIS FUTURO", a foto do grupo e a faixa vermelha JORGE SOLLA · DEPUTADO FEDERAL · 1313 (com as marcas menores LULA 13, JERO 13, WAGNER 130, RUI 133); linha legal vertical na borda esquerda; corpo com uma linha por cargo (rótulo escuro em caixa alta, nome em vermelho, dígitos em caixas brancas contornadas de preto e um selo verde "CONFIRMA"). É um modelo novo do estúdio de cards, não uma superfície nova.
+
+## Persona e fluxo
+
+- **Persona / contexto:** militante/eleitor no celular, prestes a pedir voto na rua ou no grupo; quer a colinha certa do seu estadual, pronta para imprimir ou mandar.
+- **Job principal:** sair com a colinha completa — o estadual que ele apoia preenchido no meio das escolhas fixas — sem instalar nada, sem cadastro e sem digitar.
+- **Fluxo desejado:** home ou `/cards` → escolhe `Minha colinha` → escolhe o estadual na lista da dobradinha → vê a prévia com a linha preenchida → baixa o PNG 1080×1920.
+- **Anti-goals de produto:** segundo editor/estúdio, rota ou página por colinha, coleta de nome/foto do visitante, editor de linhas, upload, CMS.
+
+### Esboço de fluxo (B)
+
+```text
+[home/#cards ou /cards] → [modelo "Minha colinha"] → [seletor do estadual (lista da dobradinha)] → [prévia 9:16 com a linha preenchida] → [baixar PNG]
+```
+
+### Design UI (B)
+
+- Design UI (gate): `docs/plans/cards-colinha-ui-design.html`
+- Cenas: tile do modelo na galeria, seletor do estadual (busca e estado vazio), prévia completa 9:16 em desktop e mobile e o detalhe da linha preenchida (cinco dígitos nas cinco caixas + CONFIRMA).
+
+## Objetivo e aceite
+
+- O estúdio ganha o modelo `Minha colinha`; escolhido o estadual, a prévia mostra a linha do estadual preenchida (nome de urna + cinco dígitos, um por caixa) e as cinco linhas fixas intocadas; o PNG 1080×1920 (9:16) sai do mesmo estúdio dos cards atuais.
+- 100% no aparelho: sem nome do visitante, sem foto, sem upload e sem análise de uso neste item (analytics é S32).
+- O catálogo de estaduais é o de S30 (arte predefinida; slug, nome de urna e número): um estadual, uma linha; sem estadual escolhido não há prévia.
+- Fidelidade ao modelo de referência: topo, linha legal vertical na borda esquerda e corpo de linhas seguem o desenho aprovado no gate.
+- Escolha por toque e teclado, no idioma do seletor de S30; sem página/rota por colinha; a nota de privacidade existente permanece verdadeira.
+
+## Dados (intenção)
+
+- **Vou apresentar dados?** Não.
+- **Decisões desbloqueadas:** N/A — nenhum dado é apresentado; medir uso da colinha é S32.
+- **Forma:** _adiada ao plano de implementação_ — o catálogo de estaduais é conteúdo (arte + número), não análise.
+
+## Dados da decisão (literais)
+
+- ID `S31`; tipo `feature`; Priority `P1`; Impeccable `B — novo modelo no estúdio de cards existente com saída nova (colinha) e seletor de estadual`; Design UI `docs/plans/cards-colinha-ui-design.html`; slug `cards-colinha` (arquivo `docs/plans/cards-colinha.md`).
+- Model id `colinha`; label de galeria `Minha colinha`.
+- Saída PNG 1080×1920 (9:16), seguindo o modelo de referência, baixada do mesmo estúdio; sem nome do visitante, sem foto, sem upload — 100% no aparelho.
+- Linhas fixas (conteúdo do template, não digitação do visitante), cada uma com o selo verde `CONFIRMA`: `DEPUTADO FEDERAL Jorge Solla — 1313`; `SENADOR Jaques Wagner — 130`; `SENADOR Rui Costa — 133`; `GOVERNADOR Jerônimo — 13`; `PRESIDENTE Lula — 13`.
+- Linha preenchida: `DEPUTADO ESTADUAL — <5 dígitos>`, com os cinco dígitos dentro das cinco caixas, um por caixa; vem do catálogo compartilhado com S30.
+- Modelo aprovado (arquivo exato entregue pelo humano, 2026-09-23): `docs/plans/cards-colinha-ui-design-assets/modelo-colinha.jpeg` (900×1600) — usar como referência canônica do layout (tile da galeria e conferência no gate); o preenchimento é o resultado (linha do estadual com nome de urna + 5 dígitos).
+- Topo (arte-mestre) — **NEEDS ASSET**: lockup "MAIS SAÚDE MAIS FUTURO" + foto do grupo + faixa `JORGE SOLLA · DEPUTADO FEDERAL · 1313` com `LULA 13`, `JERO 13`, `WAGNER 130`, `RUI 133`; definida no design hi-fi e montada a partir do kit oficial (`public/campaign-kit/`, `public/cards/team-card-base.png`, `public/cards/team-card-front.png`).
+- Linha legal vertical (borda esquerda): `FEDERAÇÃO BRASIL DA ESPERANÇA - FE BRASIL (PT-PC DO B - PV) | CNPJ CANDIDATO: 68.430.467/0001-05`.
+- Catálogo compartilhado com S30: as 53 pastas de arte predefinida em `/home/fsolla/Downloads/DOBRADINHAS SITE-20260923T033020Z-1-001/DOBRADINHAS SITE/` (slug, nome de urna, número de 5 dígitos); dependência dura de S30 para o catálogo/assets commitados.
+- Pipeline reaproveitado: `renderX → preview canvas → PNG download` — o mesmo motor único de prévia/export do estúdio.
+
+## Direção no codebase (hipótese)
+
+- **Áreas prováveis:** catálogo `src/lib/cardModels.ts`, roteiro/render `src/lib/cardRender.ts`, compositor `src/components/cards/CardComposer.tsx`, assets `public/cards/` e `public/campaign-kit/`.
+- **Precedente a olhar:** S13/S14/S15 (`docs/plans/cards-personalizados-campanha-impl.md`, `docs/plans/cards-time-de-voce-impl.md`) e S30 (`docs/plans/cards-estadual-dobradinha.md`) — o seletor do estadual segue o idioma de escolha de S30.
+- **Risco de acoplamento:** o `CardComposer` ramifica por `kind`; testes de unidade pinam os ids e o e2e falha em qualquer console error; a colinha não pode virar segundo editor nem mexer nos modelos existentes.
+
+## Dependências
+
+- S30 (`docs/plans/cards-estadual-dobradinha.md`) — catálogo e assets dos estaduais; dependência dura para o preenchimento da linha.
+- NEEDS ASSET: arte-mestre do topo — definida no design hi-fi e construída a partir dos ativos oficiais (o pacote não existe no repo hoje).
+
+## Fora de escopo
+
+- Segundo editor/estúdio; rota ou página por colinha; CMS/coleção/migration.
+- Nome do visitante ou "feito por você" (Questão 2); PDF A4/impressão em casa (Questão 1).
+- Analytics de uso/abandono (S32); foto/recorte do visitante; upload ou processamento no servidor.
+- Mudar o conteúdo das cinco linhas fixas; redesenhar os modelos existentes.
+
+## Rabbit holes de produto
+
+- **A colinha virar editor de voto.** Se alguém "só completar": reordenar/remover linhas e acrescentar cargos. **Corte neste item:** cinco linhas fixas + a linha do estadual.
+- **A escolha do estadual virar "matching".** Se alguém "só completar": busca por município, perfil e recomendação. **Corte neste item:** uma lista no idioma de S30.
+- **A arte do topo virar redesenho infinito.** Se alguém "só completar": recriar tipografia e foto em vez de usar o kit. **Corte neste item:** arte aprovada no gate a partir dos ativos oficiais.
+- **Impressão/PDF no mesmo item.** Se alguém "só completar": entra diagramação A4 e margem de impressora. **Corte neste item:** só PNG 9:16; A4 vira item próprio se o produto pedir.
+
+## Questões em aberto (produto)
+
+- **Saída só 9:16 ou também PDF/A4 para imprimir?** **Opções:** A) PNG 1080×1920 9:16 (bate com a referência e com os stories) | B) também A4/impressão (escopo extra). **Recomendação:** A. _(assumido — validar com produto)_
+- **A colinha leva o nome do visitante ou "feito por você"?** **Opções:** A) não (a colinha é o produto) | B) linha opcional com o nome (escopo extra). **Recomendação:** A. _(assumido — validar com produto)_
+- **Onde o visitante escolhe o estadual?** **Opções:** A) mesmo idioma de seletor de S30 dentro do compositor | B) só um ponto de entrada próprio na galeria. **Recomendação:** A — um só fluxo, um só editor. _(assumido — validar com produto)_
+
+## Referências
+
+- GitHub Issue #1272
+- Design UI (gate): `docs/plans/cards-colinha-ui-design.html`
+- `docs/plans/cards-estadual-dobradinha.md` (S30 — catálogo e assets compartilhados)
+- `src/lib/cardModels.ts`, `src/lib/cardRender.ts`, `src/components/cards/CardComposer.tsx`, `tests/e2e/frontend.e2e.spec.ts`
+- `public/campaign-kit/README.md`, `public/cards/team-card-base.png`, `public/cards/team-card-front.png`
+- `/home/fsolla/Downloads/DOBRADINHAS SITE-20260923T033020Z-1-001/DOBRADINHAS SITE/` — referência externa do catálogo (53 pastas)
+
+## Self-score (shaping)
+
+**5/5.**
+
+- Fatia = um outcome verificável (colinha baixável com a linha do estadual preenchida) e nada além.
+- Appetite (~1–1,5 dia) declarado e a intenção cabe nele: um modelo novo em estúdio existente, sem fluxo novo.
+- Persona, job e aceite em linguagem de produto; o anti-goal (editor de voto) está explícito.
+- Direção no codebase é hipótese revisável; nenhuma signature, schema ou migration prescrita.
+- Arte final, geometria e o seletor ficam para a implementação; o NEEDS ASSET é pendência de produto no gate.
diff --git a/docs/plans/cards-estadual-dobradinha-ui-design-assets/julio-base.png b/docs/plans/cards-estadual-dobradinha-ui-design-assets/julio-base.png
new file mode 100644
index 00000000..830e3ac3
Binary files /dev/null and b/docs/plans/cards-estadual-dobradinha-ui-design-assets/julio-base.png differ
diff --git a/docs/plans/cards-estadual-dobradinha-ui-design-assets/julio-fotos.png b/docs/plans/cards-estadual-dobradinha-ui-design-assets/julio-fotos.png
new file mode 100644
index 00000000..d5c58486
Binary files /dev/null and b/docs/plans/cards-estadual-dobradinha-ui-design-assets/julio-fotos.png differ
diff --git a/docs/plans/cards-estadual-dobradinha-ui-design-assets/modelo-time-de-voce-com-estadual.jpeg b/docs/plans/cards-estadual-dobradinha-ui-design-assets/modelo-time-de-voce-com-estadual.jpeg
new file mode 100644
index 00000000..4e38c272
Binary files /dev/null and b/docs/plans/cards-estadual-dobradinha-ui-design-assets/modelo-time-de-voce-com-estadual.jpeg differ
diff --git a/docs/plans/cards-estadual-dobradinha-ui-design-assets/name-card-base.jpg b/docs/plans/cards-estadual-dobradinha-ui-design-assets/name-card-base.jpg
new file mode 100644
index 00000000..dc2967d6
Binary files /dev/null and b/docs/plans/cards-estadual-dobradinha-ui-design-assets/name-card-base.jpg differ
diff --git a/docs/plans/cards-estadual-dobradinha-ui-design-assets/photo-portrait-frame.png b/docs/plans/cards-estadual-dobradinha-ui-design-assets/photo-portrait-frame.png
new file mode 100644
index 00000000..eaf97aec
Binary files /dev/null and b/docs/plans/cards-estadual-dobradinha-ui-design-assets/photo-portrait-frame.png differ
diff --git a/docs/plans/cards-estadual-dobradinha-ui-design-assets/photo-square-frame.png b/docs/plans/cards-estadual-dobradinha-ui-design-assets/photo-square-frame.png
new file mode 100644
index 00000000..ad5ecc22
Binary files /dev/null and b/docs/plans/cards-estadual-dobradinha-ui-design-assets/photo-square-frame.png differ
diff --git a/docs/plans/cards-estadual-dobradinha-ui-design-assets/team-card-example.jpg b/docs/plans/cards-estadual-dobradinha-ui-design-assets/team-card-example.jpg
new file mode 100644
index 00000000..5b35a875
Binary files /dev/null and b/docs/plans/cards-estadual-dobradinha-ui-design-assets/team-card-example.jpg differ
diff --git a/docs/plans/cards-estadual-dobradinha-ui-design.html b/docs/plans/cards-estadual-dobradinha-ui-design.html
new file mode 100644
index 00000000..ef95b202
--- /dev/null
+++ b/docs/plans/cards-estadual-dobradinha-ui-design.html
@@ -0,0 +1,660 @@
+
+
+
+
+
+
+ Design — S30 · Time do estadual
+
+
+
+
+
+
Gate visual · S30
+
Time do estadual
+
+ O apoiador escolhe uma das 53 dobradinhas, digita como é chamado, envia uma foto de busto
+ e baixa o card com a arte oficial do estadual. É o mesmo fluxo do “Time de você”: recorte
+ no aparelho, dialog no desktop e drawer no celular.
+
+ Cena 1 · Galeria desktop 1280 · cinco tiles na mesma linha
+
+
+ A largura do conteúdo é preservada; o gap cai discretamente e os cinco modelos continuam
+ legíveis em uma única fileira. “Time do estadual” usa uma única arte de exemplo no
+ carrossel: TIME DE FULANO com a silhueta no lugar da foto do visitante, Julio no grupo e a
+ faixa JULIO PINHEIRO 13999.
+
+
+
+
+ Faça parte
+
+
Mostre que você está com Solla
+
+ Escolha um modelo, personalize e baixe seu card para compartilhar.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cena 2 · Galeria mobile 390 · carrossel horizontal
+
+
+ No celular não se espreme a grade: mantém-se um tile largo com a borda do próximo como
+ pista. A dica passa a “Deslize para ver os cinco modelos” e há cinco indicadores. O tile
+ repete a arte de exemplo do modelo: TIME DE FULANO, silhueta no lugar da foto do visitante
+ e Julio no grupo com a faixa JULIO PINHEIRO 13999.
+
+
+
+ Faça parte
+
+
Crie seu card de apoio
+
+ Escolha um dos cinco modelos, personalize e baixe para compartilhar.
+
+
+
+
+
+
+
+ Deslize para ver os cinco modelos
+
+
+
+
+
+
+
+
+
+ Cena 3 · Compositor inicial + seletor aberto · dialog desktop
+
+
+ O seletor vive dentro do mesmo dialog. Busca no topo, lista rolável, seleção por linha
+ inteira e check visível; o nome já digitado permanece quando a pessoa troca o estadual.
+
+
+
+
+
+
+
+ Time do estadual
+
+
Escolha sua dobradinha
+
Escolha seu estadual da dobradinha.
+
+
+
+
+
+
+
+
+ A silhueta marca o lugar da sua foto. O card final usa a arte do estadual escolhido.
+
+
+
+
+
+
+
+ ⌕
+
+
+ 53 estaduais · use ↑ ↓ e Enter para escolher
+
+
+
+
+
+
+
+
+ Vai aparecer em caixa alta depois de “TIME DE”. Use um nome curto e conhecido.
+
+
+ Escolha um estadual para continuar. A prévia e o
+ download usam a arte oficial da dobradinha escolhida.
+
+
+
+
+
+
+
+
+
+ Cena 4 · Escolhido, pronto e nome longo · estados críticos
+
+
+ A arte de Julio confirma o estadual ao lado/atrás; a silhueta mantém a convenção do S15
+ para a foto recortada do visitante em primeiro plano. O estado pronto tem um único CTA
+ primário; o estado too-long preserva foto e estadual sem cortar o nome.
+
+
+
+
+
Estadual escolhido
+
Agora coloque seu nome
+
+
+
+
+ TIME DE
+
+
+
+
+
Sua foto de busto
+
+ O fundo é removido no seu aparelho e você entra em primeiro plano.
+
+
+
+
+
+
+
+
+
Tudo certo
+
Seu card está pronto
+
+
+
+
+ TIME DEMARIA
+
+
+
+ Julio Pinheiro · 13999
+
+
+ Seu nome e sua foto são processados apenas neste aparelho e não são enviados para
+ nós.
+
+
+
+
+
+
+
Nome muito longo
+
Encurte o nome
+
+
+
+
+ TIME DE
+
+
+
+
+ Não foi possível encaixar esse nome no card. Use um nome mais curto, como você é
+ chamado.
+
+
+ A foto recortada e Julio Pinheiro continuam preservados enquanto você corrige.
+
+
+
+
+
+
+
+
+
+ Cena 5 · Drawer mobile 390 · escolhido e pronto
+
+
+ No celular o conteúdo rola dentro do drawer; prévia, estadual e nome ficam em ordem
+ linear, com o CTA fixo no rodapé.
+
+
+
+
+
+
+
+
+ Time do estadual
+
+
Seu card está pronto
+
+
+
+
+
+
+ TIME DEMARIA
+
+
+
+
+ Sua foto é recortada e ajustada apenas neste aparelho, como no “Time de você”, e não
+ é enviada para nós.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/plans/cards-estadual-dobradinha.md b/docs/plans/cards-estadual-dobradinha.md
new file mode 100644
index 00000000..074fe2de
--- /dev/null
+++ b/docs/plans/cards-estadual-dobradinha.md
@@ -0,0 +1,110 @@
+# S30 — Card personalizado com o seu estadual (dobradinha)
+
+Status: rascunho
+Atualizado em: 2026-09-23
+Issue: #1271
+Priority: P1
+Impeccable: B — encaixe no estúdio de cards existente (novo modelo + seletor de estadual no composer)
+Design UI: docs/plans/cards-estadual-dobradinha-ui-design.html
+Appetite: ~1–1,5 dia eng; o quinto modelo do estúdio entregue no mesmo fluxo, com a arte oficial do estadual
+Responsável: —
+
+## Intenção
+
+O funil de cards do site já tem o "Time de você" (S15, #1161): o visitante digita o nome e a própria foto recortada entra no card `TIME DE `, no aparelho, sem upload. Agora a campanha fechou dobradinhas com 53 estaduais e já mandou a arte pronta de cada um — o grupo com o estadual e a faixa com o lockup nome+número ao lado do Jorge Solla 1313 (ex.: `JULIO` = "JULIO PINHEIRO · DEPUTADO ESTADUAL · 13999").
+
+O card novo é o mesmo "Time de você" com o seu estadual dentro: o visitante escolhe o estadual, digita o nome e manda a própria foto — o recorte entra na janela, em primeiro plano, como hoje, e o estadual aparece ao lado (a arte oficial do escolhido vira o fundo e a faixa do card). A referência aprovada pelo humano (2026-09-23) é exatamente isso: `TIME DE FULANO` com a silhueta do visitante no centro e o estadual ao lado. A arte já existe (53 pastas, dois PNGs 1080×1440 por estadual, ~90 MB de originais) e o repo recebe só derivativos otimizados; é um modelo novo ao lado dos quatro atuais, no mesmo estúdio.
+
+## Persona e fluxo
+
+- **Persona / contexto:** apoiador/militante no celular com um estadual de referência (a dobradinha do seu território), querendo um card para circular no WhatsApp sem montar nada.
+- **Job principal:** escolher o seu estadual e sair com o card `TIME DE ` com a arte oficial dele, a partir da própria foto, sem cadastro e sem nenhum byte saindo do aparelho.
+- **Fluxo desejado:** abre `#cards` na home (ou `/cards`) → escolhe `Time do estadual` → escolhe o estadual na lista dos 53 → digita o nome → manda a foto de busto → vê o recorte acontecer no aparelho e a prévia com o estadual ao lado → baixa o PNG.
+- **Anti-goals de produto:** segundo cadastro de pessoas, ranking/placar de estaduais, página por estadual, controles novos além dos que o "Time de você" já tem, analytics, conta, persistência.
+
+### Design UI (B)
+
+- Design UI (gate): `docs/plans/cards-estadual-dobradinha-ui-design.html` — cenas: tile do quinto modelo na galeria, seletor dos 53 estaduais (mobile/desktop), prévia pronta com a banda do estadual e resultado baixado; o hi-fi é a fonte iterável do aceite visual até o gate.
+
+## Objetivo e aceite
+
+- O estúdio ganha o quinto modelo, `Time do estadual`, ao lado dos quatro atuais — mesmo editor, mesmas rotas (`#cards`, `/cards`, `?model=`).
+- Escolhido o estadual, digitado o nome e enviada a foto, o card final é o "Time de você" com a arte do estadual: o recorte do visitante entra na janela em primeiro plano, o estadual aparece ao lado e a banda leva o lockup nome+número dele — exatamente a referência aprovada (silhueta do visitante + `TIME DE FULANO` + estadual).
+- O fluxo de foto é o do S15 inteiro (envio, recorte no aparelho com progresso/retry, harmonização, arrasto/zoom como escape); nenhum controle novo nasce aqui.
+- A lista dos 53 estaduais é navegável por toque e teclado no celular; trocar de estadual não perde o nome nem a foto já processada.
+- Nome em uma linha com a máquina do S16 (banner azul dinâmico via `fitCardName`): fora do cap mínimo legível, a pessoa é pedida a usar um nome mais curto — nunca corte silencioso.
+- Os derivativos otimizados das 53 artes ficam commitados em `public/cards/` (originais fora do repo); nome completo e número vêm do catálogo derivado da arte, não da base.
+- 100% no aparelho: sem conta, sem PII, sem upload; a nota de privacidade do estúdio continua verdadeira e os quatro modelos existentes (e suas artes) ficam intocados.
+
+## Dados (intenção)
+
+- **Vou apresentar dados?** Não.
+- **Decisões desbloqueadas / forma:** N/A — nenhuma métrica é apresentada e a escolha do estadual não vira relatório; o catálogo dos 53 é conteúdo estático derivado da arte (_adiado ao plano de implementação_), e leitura de uso fica para S32.
+
+## Dados da decisão (literais)
+
+- ID `S30`; slug `cards-estadual-dobradinha` (arquivo `docs/plans/cards-estadual-dobradinha.md`); tipo `feature`; Priority `P1`; Impeccable `B — encaixe no estúdio de cards existente (novo modelo + seletor de estadual no composer)`; Design UI `docs/plans/cards-estadual-dobradinha-ui-design.html`.
+- Model id `time-do-estadual`; label de galeria `Time do estadual`; kind: variante de time personalizada pelo nome.
+- Composição do card (ordem do S15, com a arte do estadual por baixo): FOTOS do estadual (grupo com o estadual na janela) → foto recortada do visitante na janela em primeiro plano (x=286, y=439, largura=592, altura=577) → BASE do estadual (banda/overlay frontal, transparente no topo) → banners `TIME DE` + nome. O visitante **mantém** o fluxo de foto do S15 (envio, recorte no aparelho, harmonização, arrasto/zoom); o estadual aparece ao lado/atrás do recorte.
+- A banda/overlay frontal carrega o lockup nome+número do estadual ao lado do Jorge Solla 1313, no desenho de `public/cards/team-card-front.png`; exemplo literal: `JULIO` = "JULIO PINHEIRO · DEPUTADO ESTADUAL · 13999".
+- Arte do modelo no carrossel (decisão do humano, 2026-09-23): **o arquivo exato entregue pelo humano** — `docs/plans/cards-estadual-dobradinha-ui-design-assets/modelo-time-de-voce-com-estadual.jpeg` (1080×1440, "modelo-time-de-voce-com-estadual.jpeg"): `TIME DE FULANO` com a **silhueta do visitante no centro** sobre a arte do estadual de exemplo (JULIO: FOTOS + faixa). Usar esse arquivo como está (tile da galeria e placeholder do modelo no composer); não recriar nem substituir por outra arte. A arte de exemplo é uma só para o modelo (JULIO como estadual ilustrativo) e não muda a regra do card final (arte do estadual escolhido); na implementação, as artes de exemplo por estadual seguem essa mesma receita (FOTOS + silhueta + BASE).
+- Catálogo exatamente as 53 pastas de `/home/fsolla/Downloads/DOBRADINHAS SITE-20260923T033020Z-1-001/DOBRADINHAS SITE/`: ADRIANA, ANDRE, ANDREA, ANGELO, ARTHUR, BOBO, CAROL, CICERO, DENISE, ELANE, EUCLIDES, FABIOLA, FATIMA, FELIPE, GEANE, HILTON, IVANA, JACO, JAMILLE, JOSAFA, JULIETE, JULIO, JUNIOR, KLEBER, LENINHA, LEO, LUDMILLA, MAGNO, MARCOS, MARLENE, MESTRE, NEUSA, NILTINHO, OSNI, PABLO, PATRICK, PINHEIRO, RADIOVALDO, ROBERTO, ROBINSON, ROGERIO, ROSEMBERG, ROSIVAL, ROWENNA, SILVA, SILVIO, THIAGO, VILMA, VITOR, WELLIGTON, WENCESLAU, YULO, ZE RAIMUNDO.
+- Nome completo + número de urna vêm dos lockups da arte: a base da campanha não tem campo de número de candidato nem números de 2026 (`src/collections/StateDeputy.ts` só tem `ballotName`/`party`).
+- O catálogo é commitado como tabela derivada e imutável (precedente: `src/lib/municipalityCatalog.ts` + snapshot test), com, por estadual: slug, nome de exibição/legenda, número de 5 dígitos e os dois caminhos de asset commitados.
+- Assets commitados em `public/cards/` como derivativos otimizados; origem acima; os PNGs originais (~90 MB) não entram no repo.
+- A máquina de banners existente é reusada: `TEAM_CARD_LABEL` ("TIME DE") + banner azul dinâmico via `fitCardName` (comportamento de nome longo do S16 intocado); o modelo não tem controles de recorte/harmonia.
+- 100% no aparelho; nada do visitante sai do celular; sem conta, sem PII.
+
+## Direção no codebase (hipótese)
+
+- **Áreas prováveis:** catálogo `src/lib/cardModels.ts` (variante de time), tabela estática dos 53 num módulo de `src/lib/` (padrão do `municipalityCatalog`), render `src/lib/cardRender.ts`, seletor no `src/components/cards/CardComposer.tsx`, derivativos em `public/cards/`.
+- **Precedente a olhar:** S15/S16 (`docs/plans/cards-time-de-voce.md`, `cards-time-de-voce-nomes-longos.md`); `src/lib/municipalityCatalog.ts` + `tests/fixtures/municipality-catalog.snapshot.json` para a tabela imutável.
+- **Risco de acoplamento:** o composer ramifica por `kind` e a esteira de recorte é a do time; o novo modelo reusa essa esteira sem alterá-la e não pode tocar nos quatro existentes; o e2e falha em qualquer console error.
+
+## Dependências
+
+- S15 (#1161), S16 (#1195) e S17 (#1196) entregues — o fluxo de foto/recorte, a máquina do banner e a harmonização que este modelo reusa inteiros.
+- Assets dos 53 estaduais entregues pela campanha no caminho de origem (acima); derivar e otimizar é parte desta entrega.
+- S31 (`docs/plans/cards-colinha.md`) reusa o mesmo catálogo/artes — soft; S32 (analytics) soma model ids — soft.
+
+## Fora de escopo
+
+- CMS/collection/migration para o roster dos estaduais — catálogo estático, commitado no código.
+- Segundo editor: mesmo estúdio/composer, mesmas rotas (`#cards`, `/cards`, `?model=`).
+- Página ou rota por estadual; ranking/"força"; qualquer métrica ou analytics (isso é S32).
+- Segundo cadastro de pessoas; ler `stateDeputy`/`Contact` para montar o card.
+- Controle novo de foto/recorte além do que o "Time de você" já entrega.
+- Mexer nos quatro modelos existentes; regenerar ou redesenhar arte.
+- Compartilhamento direto em redes sociais.
+
+## Rabbit holes de produto
+
+- **O roster virar CMS com número de 2026.** Se alguém "só completar": collection nova, migration e cadastro de 53 pessoas, com os números divergindo da arte. **Corte neste item:** tabela estática derivada dos lockups, com snapshot test; a base não tem número e não ganha um aqui.
+- **A lista virar ranking/"força".** Se alguém "só completar": ordenação por votos, placar por estadual, destaque de "prioridade". **Corte neste item:** lista simples em ordem estável, sem métrica.
+- **O card virar o card do estadual.** Se alguém "só completar": o banner azul passa a estampar o nome do estadual e o visitante perde o que digitar. **Corte neste item:** banner do visitante (`TIME DE `); nome/número do estadual só na banda.
+- **Reposicionar a arte por estadual.** Se alguém "só completar": medir cada uma das 53 artes e mover a janela por estadual. **Corte neste item:** a janela é a do S15 (286/439/592/577) para todas; as artes já foram feitas nessa régua.
+
+## Questões em aberto (produto)
+
+- **O banner `TIME DE ` mostra o nome de quem?** **Opções:** A) o nome digitado pelo visitante (a referência mostra `FULANO`, o visitante) | B) o nome de urna do estadual (zero digitação; o card vira o card do time do estadual). **Recomendação:** A — a referência aprovada é a silhueta do visitante com `TIME DE FULANO`; o nome do estadual já vive na banda. _(assumido — validar com produto)_
+- **`time-do-estadual` / "Time do estadual" está bom?** **Opções:** confirmar o id e o label. **Recomendação:** manter os dois como literais. _(assumido — validar com produto)_
+
+## Referências
+
+- `src/lib/cardModels.ts`, `src/lib/cardRender.ts`, `src/components/cards/CardComposer.tsx`, `tests/e2e/frontend.e2e.spec.ts`
+- `src/lib/municipalityCatalog.ts` — precedente de catálogo derivado e imutável (com snapshot test)
+- `docs/plans/cards-time-de-voce.md`, `docs/plans/cards-time-de-voce-nomes-longos.md` — o fluxo e a máquina do banner
+- `public/cards/team-card-front.png` — desenho da banda/overlay frontal
+- `src/collections/StateDeputy.ts` — o que a base (não) tem de número de urna
+- Design UI (gate): `docs/plans/cards-estadual-dobradinha-ui-design.html` (+ assets em `cards-estadual-dobradinha-ui-design-assets/`)
+- Origem da arte: `/home/fsolla/Downloads/DOBRADINHAS SITE-20260923T033020Z-1-001/DOBRADINHAS SITE/`
+
+## Self-score (shaping)
+
+5/5 — um outcome verificável, appetite declarado e nenhuma decisão dura de engenharia.
+
+- Fatia = um outcome verificável: quinto modelo no estúdio existente, sem tocar nos quatro atuais.
+- Appetite ~1–1,5 dia cabe: catálogo derivado + assets otimizados + seletor no composer, sem fluxo novo.
+- Persona + job + aceite claros, em linguagem de produto, sem jargão de stack.
+- Direção no codebase é hipótese: arquivos citados como pista, nenhum nome novo cravado.
+- Zero schema/migration/signature no plano; literais são só de produto, arte e copy.