1.5 KiB
S15 — Card "Time de você": quarto modelo auto-serviço no funil público (2026-09-18): o funil de cards (#cards da home + /cards) ganha o quarto modelo: nome + foto de busto, remoção de fundo 100% no aparelho (nenhum byte sai), auto-enquadramento pelo bbox alfa (topo no slot, centrado, com pan/zoom existentes como escape) e o card TIME DE <NOME> composto na ordem base → recorte → overlay → banners (geometria medida: vermelho #E50E2F/#FFEC01 −3,5°, azul #0061A5/branco −4,1°; nome em 1 linha, too-long com a mesma mensagem do modelo de nome). Motor MediaPipe selfie_segmenter (Apache-2.0, float16): wasm ~12MB lazy e same-origin copiado de node_modules em dev/build (scripts/copy-card-vision-assets.mjs; gitignored), modelo de 244KB commitado com NOTICE, sem COOP/COEP (precedente c167) e sem CDN de terceiros; @imgly (AGPL) rejeitado para o bundle. Catálogo puro ganha kind: 'team' + overlaySrc/previewSrc/badge, renderTeamCard/drawCardBanner com ops de rotação no ctx estrutural, frameCardPhotoOnBbox e o hook useCardCutout (progresso, retry com o mesmo arquivo, run-id, fail-closed em bbox degenerado); e2e determinístico via stub (NEXT_PUBLIC_CARDS_CUTOUT_STUB=1, só dev/e2e). Sem migration, sem collection/Consent novo, sem persistência — Contact/Payload intocados. Design gate certificado pelo designer (cenas 1–7). Verificação: unit dos 4 specs puros, pnpm gate:fast, e2e do frontend (29 verdes), motor real exercitado no browser em 390/1280 com download de PNG.