{
  "id": "clube-ad5",
  "titulo": "AJ1 Low Last Dance",
  "categoria": "produto",
  "resumo": "anúncio de produto de 19,4 s, em story 9:16, para a loja argentina do Clube dos Sneakers. A base é um vídeo curto de celular do Air Jordan 1 Low Last Dance, publicado por outra loja de tênis e sem a marca dela na tela, posto em câmera lenta interpolada. Os 3 primeiros segundos são um gancho de interface: o card do tênis estala inclinado, a mão-cursor arrasta \"Deslizá para comprar\", o check vira \"+\" e, no drop, o \"+\" infla e vira a tela inteira com o vídeo real. No meio vêm cortes na batida e cartões de preço, envío e talle; no fim, a página real do par na loja, o toque em COMPRAR e o logo. Montado no After Effects por um gerador em Python, o \"modo startup\", que serviu aos anúncios 2 a 5 da campanha. Escolhido pelo autor para os anúncios da loja.",
  "indicado": "loja online que quer anunciar um produto específico em story, a partir de um vídeo curto gravado no celular.",
  "estilo": [
    "gancho de interface",
    "forma que vira vídeo",
    "câmera lenta",
    "cortes na batida",
    "cartões flutuantes",
    "página real da loja",
    "loop."
  ],
  "ficha": {
    "formato": "1080×1920, 30 qps, 9:16 (story), cor BT.709",
    "duracao": "19,4 s",
    "motor": "ae",
    "voz": "sem narração: texto na tela, música e efeitos",
    "musica": "ver o guia de estilo",
    "fontes": "ver o guia de estilo"
  },
  "ferramentas": [
    "Claude Code",
    "After Effects",
    "ElevenLabs"
  ],
  "ficha_tecnica": {
    "Duração": "19,4 s",
    "Formato": "1080×1920, 30 qps, 9:16 (story), cor BT.709",
    "Voz": "sem narração: texto na tela, música e efeitos",
    "Ferramenta": "After Effects, com o projeto gerado por um script em Python",
    "Idioma": "espanhol da Argentina",
    "Uso": "anúncio em story no Meta Ads",
    "Trilha": "\"Butterfly Doors\" (Lil Pump), 130 BPM",
    "Fecho": "\"clubdossneakers.com · Hasta 6 cuotas sin interés\" sobre o logo"
  },
  "etapas": [
    {
      "titulo": "O roteiro",
      "texto": "**Resumo:** o anúncio não tem narração; o texto na tela e os cartões contam a história, presos à batida de 130 BPM. Aqui estão os textos exatos e as cenas por tempo (marcas de `marcas-lastdance.json` e chaves do `startup.py`). Gancho: o card do tênis e \"Deslizá para comprar\".\n\n## Os textos da tela (espanhol da Argentina, verbatim)\n\n | \n\n | Momento\n | Texto\n\n | Card do gancho\n | \"Air Jordan\" · \"NUEVO\" · \"AJ1 Low Last Dance\" · \"$ 99.900\" · \"6 cuotas sin interés\"\n\n | Pílula\n | \"Deslizá para comprar\"\n\n | Nome\n | \"Last Dance\" / \"Air Jordan 1 Low\"\n\n | Cartão de preço\n | \"BIENVENIDO10 · 10% off\" · \"$ 99.900\" · \"6 cuotas sin interés\"\n\n | Chip\n | \"Envío gratis\"\n\n | Card de talle\n | \"Elegí tu talle\" · 39 AR a 43 AR · \"41 AR\" selecionado · \"Disponible\" · \"Envío gratis · 6 cuotas sin interés\"\n\n | Frase grande\n | \"Pagalo en\" / \"6 cuotas.\"\n\n | Fecho\n | página real do produto na loja · \"clubdossneakers.com\" · \"Hasta 6 cuotas sin interés\"\n\n## Como o vídeo base entrou\n\n | \n\n | Trecho do original (s)\n | Batidas no anúncio\n | Começa em (s)\n\n | 0,00–2,43\n | 6\n | 2,77 (dentro do círculo)\n\n | 2,43–3,90\n | 4\n | 5,54\n\n | 3,90–5,20\n | 4\n | 7,38\n\n | 5,20–7,30\n | 6\n | 9,23\n\n | 7,30–9,00\n | 6\n | 12,00\n\nTodos os trechos foram interpolados para 60 qps com compensação de movimento e esticados para caber nas batidas.\n\n## Cenas por tempo\n\n## Gancho (0 a 3,7 s)\n\n | \n\n | Tempo (s)\n | Música\n | Tela\n\n | 0–0,75\n | introdução\n | o card do tênis estala inclinado no estúdio claro; as linhas entram em cascata e o tênis gira e flutua\n\n | 0,30\n | \n | a pílula \"Deslizá para comprar\" estala por baixo\n\n | 0,52–1,0\n | \n | a mão-cursor entra em arco e aperta o botão\n\n | 1,16–1,86\n | pausa antes do drop\n | o botão desliza até o fim; a faixa laranja enche atrás dele; a câmera empurra até a pílula\n\n | 1,92–2,26\n | \n | a pílula colapsa em círculo, o check se desenha com faíscas e vira \"+\"\n\n | 2,77\n | \n | o \"+\" começa a crescer e vira um card com o vídeo dentro\n\n | 3,23\n | **drop**\n | o card vira a tela inteira com o vídeo real; a interface recua\n\n## Vídeo real (3,7 a 14,8 s)\n\n | \n\n | Tempo (s)\n | Tela\n\n | 4,15–5,9\n | \"Last Dance\" / \"Air Jordan 1 Low\" entra pela esquerda\n\n | 5,54 · 7,38 · 9,23 · 12,00\n | cortes com chicote, alternando o lado\n\n | 6,46–8,2\n | o cartão de preço estala com o cupom\n\n | 8,31–10,1\n | o chip \"Envío gratis\" estala, com três emojis 3D saltando em volta\n\n | 10,15–11,9\n | o card \"Elegí tu talle\" estala; em 11,08 s a mão toca o 41, que fica preto com \"Disponible\", e o card se abre em acordeão com zoom\n\n | 12,46–14,6\n | \"Pagalo en\" / \"6 cuotas.\" grande, no centro\n\n## Fecho (14,8 a 19,4 s)\n\n | \n\n | Tempo (s)\n | Tela\n\n | 14,77–15,3\n | a forma encolhe num card com a página real do par na loja AR\n\n | 15,92\n | a mão toca COMPRAR, com ripple; a página afunda e volta\n\n | 16,62\n | corte para um close de 2,5× no preço, com pan até o botão\n\n | 17,31\n | corte para um plano médio que sai pela direita\n\n | 17,77\n | o círculo escuro cresce do centro; o monograma do CDS estala; entram \"clubdossneakers.com\" e \"Hasta 6 cuotas sin interés\"\n\n | 18,96–19,4\n | o círculo fecha e sobra o fundo claro do primeiro quadro (loop)"
    },
    {
      "titulo": "A identidade visual",
      "texto": "**Resumo:** estúdio claro no estilo Apple, com uma luz laranja (HOT) por baixo e grade de pontos, onde vive o gancho de interface; depois, o vídeo real do tênis em tela cheia, com vinheta escura e cartões brancos por cima. Movimento de \"startup\": pop inclinado, cursor em arco, colapso em círculo, chicote na batida. Rap com drop no 7º tempo e efeitos nivelados, mix a −16 LUFS. Números tirados de `startup.py`, `base.py` e `trilha.py`.\n\n## Fontes\n\n | \n\n | Uso\n | Fonte\n | Onde baixar\n\n | Nome do tênis, preço, \"Envío gratis\", palavra forte\n | SF Pro Display Bold (tracking −18)\n | developer.apple.com/fonts\n\n | Linha leve do texto (\"Air Jordan 1 Low\", \"Pagalo en\")\n | SF Pro Display Light\n | developer.apple.com/fonts\n\n | Marca, pílula, talles, cupom\n | SF Pro Display Medium\n | developer.apple.com/fonts\n\n | \"6 cuotas sin interés\" e textos pequenos\n | SF Pro Text Regular\n | developer.apple.com/fonts\n\n | Seta do botão\n | Material Icons\n | Google Fonts\n\n## Cores\n\n | \n\n | Token\n | Hex\n | Uso\n\n | Fundo\n | `#F5F5F7`\n | estúdio, igual no primeiro e no último quadro\n\n | Branco\n | `#FFFFFF`\n | cards, chips, botão da pílula\n\n | Estúdio do card\n | `#F2F2F5`\n | fundo da foto do tênis\n\n | Tinta\n | `#1D1D1F`\n | texto, pílula, selo \"NUEVO\", círculo do logo\n\n | Tinta 2\n | `#3A3A3C`\n | marca e parcelamento\n\n | Cinza\n | `#86868B`\n | texto secundário\n\n | Cinza claro\n | `#EDEDF0`\n | linhas de talle\n\n | **HOT**\n | **`#FF4A12`**\n | a faixa que enche, a pílula colapsada, faíscas, a forma única, luz do estúdio a 9%\n\n | Azul do cupom\n | `#4A61DF`\n | pílula \"BIENVENIDO10 · 10% off\"\n\n | Verde\n | `#34C759`\n | \"Disponible\"\n\n | Cinza do fecho\n | `#C7C7CC`\n | \"Hasta 6 cuotas sin interés\"\n\n## Componentes\n\n- **Card do produto** 760×880, raio 64, sombra larga: foto do tênis girando de −18° para −6° e flutuando, marca, selo \"NUEVO\", nome, preço e \"6 cuotas sin interés\".\n\n- **Pílula \"Deslizá para comprar\"** 820×150: botão branco redondo com seta, faixa HOT que enche atrás dele, colapso em círculo, check desenhado, 8 faíscas radiais e o \"+\".\n\n- **Mão-cursor** com sombra, ponta do dedo como âncora, entrando em arco (Bézier quadrática por expressão).\n\n- **Forma única (HEROI)**: o círculo do \"+\" vira card 440×560 e depois a tela inteira; no fecho, encolhe para um card de 680×1472, raio 70.\n\n- **Vídeo real** com vinheta (elipse com traço preto de 520 px a 55%, desfocada 160).\n\n- **Cartões sobre o vídeo:** preço (cupom, valor, parcelamento), chip \"Envío gratis\" com o caminhão e três emojis 3D que saltam em volta (fogo, brilho, rosto apaixonado), card \"Elegí tu talle\" com cinco talles (39 a 43 AR) em acordeão, o 41 selecionado em preto com \"Disponible\".\n\n- **Página real** do par na loja AR, com cantos arredondados, ripple branco no toque em COMPRAR.\n\n- **Fecho:** círculo cor de tinta que cresce de 0 a 2.400 px, monograma do CDS, endereço e parcelamento.\n\n## Movimento\n\n- **Pop inclinado (R1):** escala 29% → 100% com a mola da casa (passa de ~112%), rotação −10° → 0° e Y subindo 95 px, passando 81 px do ponto e voltando, nos quadros 0, 4 e 16.\n\n- **Cascata (R5):** cada linha do card entra 60 px abaixo e a −7°, com 2 quadros entre uma e outra.\n\n- **Cursor (R2):** entra com escala 0 → 34% em arco, aperta (34 → 29%) no clique e solta.\n\n- **Colapso (R4):** a pílula vira círculo, o botão some em 3 quadros e o check se desenha em 4 quadros.\n\n- **Câmera do gancho:** a interface empurra até 112% na pílula enquanto ela desliza e recua para 80% no drop.\n\n- **Chicote em cada corte:** o vídeo entra deslocado 150 px (alternando os lados), volta em 0,16 s e o desfoque direcional cai de 90 a 0 em 0,18 s.\n\n- **Texto:** entra palavra por palavra (0,05 s entre elas), deslizando com desfoque 16 → 0 e escala 115 → 100%, com sombra suave; sai em chicote para cima em 0,22 s.\n\n- **Fecho da página:** aberto → close de 2,5× no preço e pan de 13 quadros até o botão → plano médio de 1,4× que sai pela direita em 12 quadros.\n\n- Motion blur ligado, obturador de 180°.\n\n## Curvas e molas\n\n | \n\n | Nome\n | Bezier\n | Uso\n\n | saas\n | (.86, 0, .07, 1)\n | arraste do botão, forma única, câmera, saídas dos cartões\n\n | fast\n | (.10, 0, 0, 1)\n | subida do pop inclinado, chicote do corte\n\n | desl\n | (.33, 0, .17, 1)\n | escala do vídeo entre cortes\n\n | sai\n | (.16, 1, .3, 1)\n | entrada do texto\n\n | chicote\n | (.7, 0, .84, 0)\n | saída do texto\n\n | pan\n | (.33, 0, .67, 1)\n | check, talles, pan do close\n\n | easein\n | (.55, 0, 1, .45)\n | plano médio saindo\n\n**Mola da casa (\"nossa\"):** sobe linear em 0,25 s e quica `1 + 0,2·sin(4π·q)·e^(−4q)`, passando cerca de 112%.\n\n## Trilha\n\n | \n\n | Item\n | Valor\n\n | Música\n | \"Butterfly Doors\" (Lil Pump), a partir de 13,39 s da faixa\n\n | Tempo\n | 130 BPM (batida de 0,4615 s)\n\n | Drop\n | 16,62 s da faixa, no 7º tempo do vídeo (3,23 s), quando a forma vira a tela inteira\n\n | Respiro\n | a pausa da própria música antes do drop recebe o arraste e o check\n\n | Fecho\n | a partir do fim do vídeo real (14,77 s), mistura de 55% da música com passa-baixas de 1,4 kHz; fade no último segundo\n\n## Sound design e mix\n\n | \n\n | Faixa\n | Nível\n\n | Música\n | −18 LUFS\n\n | Efeitos\n | o volume de cada evento vem da lista; o barramento todo entra com −4 dB\n\n | Final\n | −16 LUFS, limitador em torno de −1,5 dBFS\n\nUm efeito para cada ação, todos da biblioteca nivelada: pop no card e na pílula, whoosh no cursor e no arraste, clique no aperto, sucesso no check, pop no \"+\", whoosh grave e impacto no drop, whoosh em cada corte (alternando dois), pop em cada cartão e emoji, clique no talle, impacto na frase do parcelamento, whoosh longo no fecho, clique em COMPRAR, impacto no close, whoosh grave no plano médio e no logo, pop no monograma e whoosh no loop.\n\n## O que é \"humano\" neste vídeo\n\n- O tênis do card flutua e balança de leve enquanto o resto entra.\n\n- O cursor faz curva, como uma mão, e o botão afunda no clique.\n\n- A luz laranja do estúdio deriva devagar por expressão.\n\n- Os emojis flutuam alguns pixels fora de fase.\n\n- O vídeo original é amador, tremido e de verdade; a câmera lenta só dá peso a ele."
    },
    {
      "titulo": "A montagem no After Effects",
      "texto": "| \n\n | Script\n | O que faz\n\n | `startup.py`\n | o anúncio inteiro, configurado no dicionário `ADS` (`ANUNCIO=lastdance`): corta o vídeo na batida com o ffmpeg (com a câmera lenta interpolada), escreve o JSON do AE, o `.jsx`, a lista de efeitos e as marcas de tempo. O mesmo gerador faz os anúncios do Nike Mind, do Rookie Card e do BadBo\n\n | `base.py`, `kit_ae.py`\n | tokens, curvas por segmento, a mola da casa e as funções de comp, camada, forma, texto e efeito\n\n | `trilha.py`\n | música a partir de uma batida, efeitos, música abafada no fecho e mix final\n\n | `render.ps1`, `montar.py`\n | render em trechos de 2 s e junção com o áudio, com a cor etiquetada em BT.709\n\n | `capturas/capturar.mjs`\n | captura das telas reais da loja (Playwright, sem chamar a API)\n\nO `startup.py` escreve `startup-lastdance.json`, que uma ponte MCP do After Effects importa (`ae_project_import_json`, da `mcp-aftereffects`, de código aberto); depois roda o `pos-startup-lastdance.jsx` (cantos da tela e matte do vídeo). O `.aep` já vem montado: os scripts servem para estudar e reaproveitar. Algumas linhas apontam para pastas da máquina onde o vídeo foi feito (fontes, músicas, efeitos e o vídeo original); ao reaproveitar, peça ao agente para trocar pelos caminhos da sua central.\n\n- **Instale as fontes:** SF Pro (SF Pro Display Light, Medium, Semibold e Bold, e SF Pro Text Regular), da página de fontes da Apple para desenvolvedores (developer.apple.com/fonts), e Material Icons (Google Fonts, grátis). Instale para todos os usuários e reinicie o After Effects. No Windows, se não aparecer no AE, copie para `C:\\Program Files\\Common Files\\Adobe\\Fonts`.\n\n- **Mantenha a pasta `projeto/` como veio**: `ae/`, `capturas/` e `footage/` ficam nas mesmas posições relativas. Abra no After Effects 2026 ou mais novo.\n\n- **Comp:** `MAIN Startup lastdance`. O gancho está em `UI gancho`; o vídeo real, em `VIDEO real`. Renderize a `MAIN`.\n\n- **Arquivo faltando:** File › Dependencies › Find Missing Footage; clique com o direito › Replace Footage › File e aponte para a pasta certa (`ae/assets`, `capturas` ou `footage`).\n\n- **Render:** `render.ps1` com `-Passo 60` (trechos de 2 s); trechos de 8 s deram erro 9988 e quadros pretos no fim de cada trecho. Não importe JSON pela ponte enquanto o `aerender` roda: a importação responde, mas o projeto fica vazio. Depois, `montar.py` junta tudo com o mix; confira se há quadro preto."
    },
    {
      "titulo": "As decisões de direção",
      "texto": "- **Prender nos 3 primeiros segundos com interface.** O anúncio 1, só com o vídeo editado na batida, foi uma \"variação boa\", mas \"não ficou algo super editado\". O gancho aplica técnicas medidas no tutorial da keyframelord: o card nasce em 29% e −10° e passa de 100% com a mola; as linhas entram em cascata (−7°, 2 quadros de defasagem); o cursor entra em arco e afunda no clique; a faixa enche atrás do botão; a pílula colapsa em círculo em 3 quadros; o check se desenha em 4 quadros, com faíscas, e vira \"+\".\n\n- **O deslize cai no silêncio antes do drop.** A música foi escolhida por ter uma pausa logo antes do drop (faixa de 120 a 140 BPM); o arraste e o check acontecem nela.\n\n- **Uma forma só.** O \"+\" é o mesmo círculo que infla em card e depois na tela inteira, e o vídeo real aparece recortado por ele.\n\n- **O vídeo obedece à música.** Cada trecho do original foi esticado para um número inteiro de batidas, com câmera lenta interpolada. Cada corte ganha um chicote (deslocamento de 150 px e desfoque direcional de 90 a 0), e a escala do vídeo desliza devagar de 112% a 104% até o próximo corte, então nada fica parado.\n\n- **Informação na ordem da decisão de compra:** nome do par, preço com o cupom real da loja, envío grátis, talle disponível e parcelamento. Cada cartão entra com o mesmo pop inclinado do gancho.\n\n- **O fecho mostra o depois.** A forma encolhe num card com a página real do par na loja, a mão toca COMPRAR e a página é coberta em cortes na batida: aberto, close de 2,5× no preço com pan até o botão e plano médio saindo pela direita.\n\n- **Loop.** O logo surge numa revelação circular; no fim, o círculo fecha e sobra o fundo do primeiro quadro.\n\nDetalhes de cores, curvas e som: estilo.md. Textos e cenas por tempo: roteiro.md. Para fazer um anúncio no mesmo estilo: PROMPT.md."
    },
    {
      "titulo": "As versões até o final",
      "texto": "| \n\n | Versão\n | O que mudou\n\n | anúncio 1\n | edit simples: vídeo de referência na batida, texto, cartão de preço e celular no fecho; retorno: \"variação boa\", mas simples demais, sem câmera, transições e elementos\n\n | **modo startup**\n | este gerador: gancho de interface, forma única, cortes com chicote, cartões e página real no fecho. Fez os anúncios 2 a 5; o Last Dance (5) é este\n\n | rodada seguinte\n | retorno aos anúncios 2 a 5: \"ficou bom, só que é mais do mesmo… cada vídeo tem que ser uma coisa diferente\". A campanha ganhou um conceito por anúncio, e este continuou entre os escolhidos para anunciar"
    }
  ],
  "pacote": [
    {
      "pasta": "projeto/",
      "conteudo": "`startup-lastdance.aep`, o JSON de importação, o `.jsx` de pós-importação (máscara da tela e matte do vídeo), a pasta `ae/assets/` (foto do par, emojis 3D de fogo, brilho, rosto apaixonado e caminhão, mão-cursor, monograma do CDS e grade de pontos), a captura real da página do par na loja AR com o capturador, o vídeo já cortado na batida (`footage/lastdance-startup-30.mp4`), o mix e os scripts"
    },
    {
      "pasta": "audio/",
      "conteudo": "mix final (`mix-lastdance.wav`), `trilha.py`, a lista de efeitos (`sfx-lastdance.json`), as marcas de tempo (`marcas-lastdance.json`) e os efeitos usados (`sfx/`)"
    },
    {
      "pasta": "referencias/",
      "conteudo": "o vídeo original usado como base, os quadros do tutorial de animação SaaS estudado (keyframelord) e os links"
    },
    {
      "pasta": "render/",
      "conteudo": "`final.mp4`"
    },
    {
      "pasta": "startup.py",
      "conteudo": "o anúncio inteiro, configurado no dicionário `ADS` (`ANUNCIO=lastdance`): corta o vídeo na batida com o ffmpeg (com a câmera lenta interpolada), escreve o JSON do AE, o `.jsx`, a lista de efeitos e as marcas de tempo. O mesmo gerador faz os anúncios do Nike Mind, do Rookie Card e do BadBo"
    },
    {
      "pasta": "trilha.py",
      "conteudo": "música a partir de uma batida, efeitos, música abafada no fecho e mix final"
    },
    {
      "pasta": "capturas/capturar.mjs",
      "conteudo": "captura das telas reais da loja (Playwright, sem chamar a API)"
    }
  ],
  "prompt": "Quero fazer um anúncio em story no mesmo estilo do projeto \"AJ1 Low Last Dance\", que está em 07-videos/projetos/ad5/, com o meu produto.\n\nProduto: {{PRODUTO}} (nome, preço, parcelamento e a foto sem fundo)\nLoja: {{LOJA}} (endereço e a página do produto, para capturar)\nVídeo do produto: {{VIDEO_PRODUTO}} (um vídeo curto de celular, de 8 a 15 s, sem marca de outra loja na tela)\nCartões do meio: {{CARTOES}} (ex.: preço com cupom, frete grátis, tamanho disponível)\nFrase grande antes do fecho: {{FRASE}} (ex.: \"Pagalo en 6 cuotas.\")\nIdioma: {{IDIOMA}}\n(Se algum desses estiver vazio ou com as chaves, me pergunte antes de começar.)\n\n1. Estude o projeto antes de propor qualquer coisa. Leia, nesta ordem: 07-videos/projetos/ad5/LEIA-ME.md, estilo.md e roteiro.md. Depois abra projeto/ae/startup.py (o dicionário ADS, o gancho, a forma única, os cartões e o fecho) e o trilha.py, e me explique em poucas linhas como o vídeo é cortado na batida, como o \"+\" vira a tela inteira e como os cartões entram. Diga o que vai reaproveitar.\n\n2. Siga o passo a passo de 07-videos/_LEIA.md e os números de 07-videos/regras-vigentes.md. Crie o meu projeto em 07-videos/projetos/AAAA-MM-DD-tema/ a partir de 07-videos/projetos/_modelo/README.md e marque cada etapa no checklist. Não edite os arquivos do projeto ad5: copie o startup.py e acrescente uma entrada nova no ADS.\n\n3. Use as skills instaladas: video-referencias (assets reais), motion-app-ae (interface no After Effects), animacao-saas (pop, cursor, forma que vira a próxima) e better-portuguese (todo texto da tela).\n\n4. Música primeiro: escolha uma faixa real de 120 a 140 BPM com uma pausa curta logo antes do drop. Meça o BPM e o tempo exato do drop e me mostre onde caem o arraste, o check e a forma virando a tela inteira (no drop). Espere o meu ok.\n\n5. O vídeo do produto: escolha de 4 a 6 trechos e estique cada um para um número inteiro de batidas. Se o vídeo for curto ou amador, use câmera lenta interpolada (minterpolate) como na referência. Confira os cortes numa folha de contato antes de abrir o After Effects.\n\n6. Tela real: capture a página do produto da minha loja com Playwright, sem chamar a API, no tamanho de celular (390 px ×3). Marque a posição do botão de compra e do preço na captura, porque o fecho dá um close nos dois.\n\n7. Reaproveite o motor, troque o conteúdo. Mantenha deste projeto: o gancho de 3 s (card com pop inclinado, cascata, pílula de deslizar com mão-cursor em arco, colapso em círculo, check que vira \"+\"), a forma única que vira a tela inteira com o vídeo recortado por ela, o chicote em cada corte, os cartões com o mesmo pop inclinado, o toque no botão de compra da página real, a cobertura em cortes na batida (aberto, close, plano médio saindo), o logo em revelação circular e o loop no último quadro, um efeito por ação e o mix a −16 LUFS. Troque: produto, textos, cores de destaque, cartões, vídeo, música e a página da loja. Se a minha marca tiver identidade forte, use a fonte e as cores dela no lugar do estúdio claro com laranja.\n\n8. Renderize em trechos de 2 s e confira se há quadro preto. Revise quadro a quadro com o áudio: o gancho prende nos 3 primeiros segundos? Cada cartão é lido antes de sair? Está humano ou robotizado? Me entregue o vídeo em story, a ficha atualizada e uma anotação em anotacoes/.",
  "campos": [
    "CARTOES",
    "FRASE",
    "IDIOMA",
    "LOJA",
    "PRODUTO",
    "VIDEO_PRODUTO"
  ],
  "fonte": {
    "nome": "Clube do Motion",
    "url": "https://clubedomotion.com/projeto/?id=ad5",
    "uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
  }
}