{
  "id": "clube-revelar",
  "titulo": "Revelar",
  "categoria": "produto",
  "resumo": "filme de lançamento de 30 s, quadrado, para \"revelar.\", uma marca de impressão e moldura de fotos: a foto sai da tela, passa pelo celular e pelo Mac, vira um quadro emoldurado, é pedida, impressa, entregue e termina pendurada numa parede de verdade. Tudo num plano contínuo, em que cada cena é feita da anterior. É uma recriação do \"Photo print app launch film\" de @twoclipping no prompt-motion.com (feito com o Claude Opus 5.5 em HTML + Playwright, marca \"develop.\"). Mantivemos as viradas do original e acrescentamos música real com drop e quebra medidos, 113 efeitos posicionados pelo pico, câmera que aproxima cada momento, vidro líquido em WebGL e desfoque de movimento por subquadros. Feito no HyperFrames.",
  "indicado": "loja ou app de impressão, fotos, decoração ou produto físico vendido online; lançamento de produto com fluxo de compra do começo ao fim.",
  "estilo": [
    "plano contínuo",
    "estilo keynote",
    "vidro líquido",
    "interface preta",
    "canvas quente",
    "morphs",
    "cursor real",
    "sincronizado na batida"
  ],
  "ficha": {
    "formato": "1440×1440, 60 qps, quadrado",
    "duracao": "30,0 s (1.800 quadros), sem narração",
    "motor": "ae",
    "voz": "ver o guia de estilo",
    "musica": "ver o guia de estilo",
    "fontes": "ver o guia de estilo"
  },
  "ferramentas": [
    "Claude Code",
    "After Effects",
    "ElevenLabs"
  ],
  "ficha_tecnica": {
    "Duração": "30,0 s (1.800 quadros), sem narração",
    "Formato": "1440×1440, 60 qps, quadrado",
    "Ferramenta": "HyperFrames (HTML + GSAP com timeline pausada), um `render(t)` puro chamado pelo tween; vidro em WebGL",
    "Desfoque de movimento": "render a 240 qps e `tmix=frames=4` para 60 qps",
    "Trilha": "\"Piece Of Your Heart (Alok Remix)\", MEDUZA, Alok, Goodboys, 123,8 BPM, emendada por compassos: drop em 7,74 s, quebra na parede (23,22 s), volta com a marca (27,09 s)",
    "Som": "113 efeitos, notas tonais em Lá♯; −13,9 LUFS integrado, pico −1,0 dBFS",
    "Revisão": "detector de salto de quadro (13 no primeiro render, 1 residual no final) e de quadro vazio (0 em 7.200 quadros a 240 qps)",
    "Referência": "\"Photo print app launch film\", @twoclipping, prompt-motion.com (29 s)"
  },
  "etapas": [
    {
      "titulo": "O roteiro",
      "texto": "**Resumo:** o filme não tem narração; o roteiro é a estrutura do prompt de @twoclipping, adaptada para a marca \"revelar.\" (o verbo da foto revelada, como o \"develop.\" do original), com os tempos tirados da lista de efeitos do `mixar.py`. A grade é de 0,48375 s por batida; a coluna \"Batida\" usa o mesmo `b(n)` do código.\n\n## De onde veio a estrutura\n\nO prompt original pede um filme de lançamento estilo keynote, só 2D, em plano contínuo, a 120 BPM e 54 batidas, com algo acontecendo em toda batida, dividido em cinco blocos: abertura (marca, pílula, íris, grade, bento, zoom no drop), vidro (palavra de vidro, gota, barra, slider de luz, órbita, tela de bloqueio), palco (celular, ilha que vira janela do Mac, landing, produto), pedido (uma forma preta que vai de pedido feito a entregue) e parede (o quadro pendurado numa parede filmada, íris, e a marca de volta). Ele proíbe crossfade, blur de entrada, \"revelação por brilho\", flip 3D, partículas, glow e pausa de mais de 1 s. A nossa versão manteve os cinco blocos.\n\n## Cenas por tempo\n\n | \n\n | Bloco\n | Tempo (s)\n | Batida\n | Texto na tela\n | O que acontece\n\n | Abertura\n | 0–1,45\n | 0–3\n | \"revelar.\" · \"da tela para a parede.\"\n | a marca parada; a assinatura afunda; as letras se espremem no ponto como sanfona\n\n | \n | 1,46–2,42\n | 3–5\n | \"Revelar\"\n | o ponto vira pílula preta e o rótulo sobe dentro dela; a câmera aproxima ×1,58; clique\n\n | \n | 2,82–2,91\n | 5,8–6\n | —\n | seis lâminas de íris fecham sobre o rótulo e abrem numa foto\n\n | \n | 3,46–5,56\n | 7–11,5\n | —\n | o círculo vira quadrado e encolhe; a grade desdobra por trás como mapa (centro, cruz, cantos) e se reorganiza em bento\n\n | \n | 6,02–7,74\n | 12,5–16\n | —\n | hover e clique numa foto; a câmera entra nela e **chega no drop (7,74 s)**\n\n | Vidro\n | 7,93–9,51\n | 16,4–19,7\n | \"dourar.\"\n | a palavra de vidro entra letra por letra, derrete numa gota que se estica em barra de ferramentas de vidro\n\n | \n | 10,04–12,34\n | 20,75–25,5\n | \"Hora dourada\"\n | coração; o ícone de ajuste vira slider; o cursor segura e arrasta: a foto passa do dia para a hora dourada, entrando pela esquerda, e o botão segurado vira lente\n\n | \n | 12,67–14,27\n | 26,2–29,5\n | \"sexta-feira, 9 de outubro\" · \"Piece Of Your Heart\" · \"MEDUZA, Alok, Goodboys\"\n | a lente sobe e vira órbita; a próxima foto abre dentro dela; a órbita cresce até a tela de bloqueio; a barra de início vira um reprodutor de vidro; play\n\n | Palco\n | 14,95–15,96\n | 30,9–33\n | —\n | a tela recua para dentro do celular; a Dynamic Island estica como líquido, se solta, voa e cresce até a janela do Mac\n\n | \n | 16,25–17,27\n | 33,6–35,7\n | \"revelar.com.br\" · \"da tela / para a parede.\"\n | a persiana da janela sobe; toque longo no papel de parede, que descola e é arrastado para a aba; a página empurra; ao soltar, a foto vira o herói da landing\n\n | \n | 17,90–19,35\n | 37–40\n | \"O quadro\" · \"moldura\" · \"tamanho\" · \"30×40 · 50×70 · 70×100\" · \"R$ 349\" → \"R$ 589\"\n | a câmera entra na janela; ao rolar, o herói vira um quadro com passe-partout e moldura; clique na cor (a moldura pinta de preto) e no tamanho (o preço rola)\n\n | \n | 20,20–20,32\n | 41,75–42\n | \"Pedir quadro\"\n | o botão do menu voa até virar o botão do pedido; clique\n\n | Pedido\n | 20,90–22,91\n | 43,2–47,35\n | \"Pedido feito\" · \"Imprimindo %\" · \"A caminho · hoje\" · \"Entregue\"\n | uma forma preta só: check, barra de impressão com porcentagem, van numa rota pontilhada até a casa, círculo com check\n\n | Parede\n | 23,22–24,21\n | 48–50\n | —\n | o círculo inunda a tela de preto (a música quebra junto), segura e contrai no quadro pendurado numa parede filmada; a íris abre no quadro\n\n | \n | 24,21–26,32\n | 50–54,4\n | —\n | a sombra da planta passa sobre o quadro, a câmera avança devagar e um brilho atravessa o vidro; a íris fecha\n\n | \n | 26,49–27,09\n | 54,75–56\n | —\n | a moldura inunda a tela, contrai em pílula e depois em ponto\n\n | Marca\n | 27,09–30,0\n | 56–62\n | \"revelar.\" · \"da tela para a parede.\"\n | **a marca volta com a batida**, as letras saem do ponto como sanfona e a assinatura reaparece; o último quadro casa com o primeiro\n\n## Momentos para a trilha\n\n- 0–7,74 s: o breakdown da faixa sustenta a abertura; riser e whoosh longo levam ao drop.\n\n- **7,74 s: drop** no zoom da foto, com impacto e Ping Boom em Lá♯.\n\n- 12,29 s: Clarity em Lá♯ quando a luz dourada sobe.\n\n- **23,22 s: quebra** da música junto com a inundação preta; respiro no preto antes da parede.\n\n- **27,09 s: volta da batida** com a marca, impacto e Ping Boom.\n\n- 28,6–30 s: a música sai em fade.\n\nA lista completa dos 113 eventos, com instante e volume, está em `audio/cues.json`."
    },
    {
      "titulo": "A identidade visual",
      "texto": "**Resumo:** canvas claro e quente, interface preta, marca em Archivo larga e pesada, Geist na interface e vidro líquido do iOS sobre as fotos. Movimento de keynote: nada funde, desfoca ou corta; os objetos mudam de forma. Molas fechadas, câmera estilo Screen Studio e inundações pretas que contraem na cena seguinte. Números tirados do `index.html`, do `mixar.py`, do `BRIEF.md` e dos aprendizados do projeto.\n\n## Cores e fontes\n\n | \n\n | Token\n | Valor\n | Papel\n\n | Canvas\n | `#F1EEE8` (centro `#F6F4EF`, bordas `#E9E5DD`)\n | fundo do filme inteiro, com grão a 5% em multiply\n\n | Tinta\n | `#0E0E0F`\n | interface, pílula, botão do pedido\n\n | Marca\n | degradê `#2b2826 → #121213 → #050506`\n | letras de \"revelar.\"\n\n | Cinza\n | `#8B867D` (assinatura `#7d786f`)\n | texto secundário\n\n | Passe-partout\n | `#F4F1EA` / `#F3F0E8`\n | moldura interna\n\n | Carvalho\n | `#B58A5E`\n | moldura de madeira\n\n | Preto da moldura\n | `#141414` / `#151515`\n | moldura pintada\n\n | Página do Mac\n | `#F7F5F0`, barra `#F1EFEA`\n | landing e produto\n\n- **Archivo** com eixo de largura 125 e peso 800 na marca e nos títulos; **Geist** na interface.\n\n- A marca tem 236 px na abertura; títulos da landing em 40 px; interface do pedido em Geist 600.\n\n## Componentes\n\n | \n\n | Peça\n | Como é\n\n | Marca que se espreme\n | cada letra encosta na seguinte a partir do ponto; a largura-alvo é a largura em `wdth 125` vezes a escala; até 62 ajusta o eixo `wdth`, abaixo disso completa com `scaleX`; na volta a mola passa de 1 (≈ +16%) e as letras esticam como sanfona\n\n | Íris\n | 6 lâminas em volta de uma abertura hexagonal; cada lâmina vai de um vértice ao outro, estende a aresta até o círculo e volta pelo arco curto; gira 0,9 rad enquanto fecha; degradê `#3a3a40 → #1c1c20` com emendas `#6a6a72`\n\n | Grade que desdobra\n | 3×3 de 300 px com 16 px de espaço; a cruz desdobra a partir da borda do centro e os cantos a partir do vizinho, com sombra na dobra (55% → 0); depois vira bento\n\n | Vidro líquido\n | shader WebGL: caixas arredondadas e letras de canvas borrado como campos de distância, unidos por smooth-min (k ≈ 26 px); refração na borda em 3 escalas (R 1,00 · G 0,90 · B 0,80) para a borda cromática; luz de borda, linha de 1,4 px no contorno e sombra fora; barras com ícones brancos levam 22–30% de escurecimento interno\n\n | Letras de vidro\n | \"dourar.\" em vidro, com distância por logit do campo borrado (a conversão linear ligava a sombra na tela toda)\n\n | Lente\n | o botão segurado vira lente (amostra o fundo mais perto do centro, fator 0,72)\n\n | Celular\n | tela de 430×932; o canvas fica fixo em 1440² e só o tamanho muda; a interface escala por largura/1440 e se ancora no topo e no rodapé\n\n | Gota que vira janela\n | ilha + pescoço + bolha com filtro goo em SVG (blur 9, matriz alfa 26/−12); o pescoço afina e rompe sozinho; a bolha cresce com mola até a janela do Mac (790×548)\n\n | Quadro\n | moldura de 22 px, passe-partout de 70 px, a cor da moldura pinta de carvalho para preto\n\n | Botão do pedido\n | uma forma preta só: \"Pedir\" → \"Pedir quadro\" → \"Pedido feito\" → \"Imprimindo %\" → \"A caminho\" (van numa rota pontilhada) → \"Entregue\"\n\n | Parede\n | vídeo de parede com sombra de planta e uma cópia clareada em multiply por cima do quadro, para a sombra passar também sobre o vidro\n\n## Molas e câmera\n\n- **Mola padrão:** `1 − e^(−ζωt)(cos ω_d t + (ζω/ω_d) sin ω_d t)` com ζ 0,56 e ω 11,9 (passa até ~112% e assenta em ~0,6 s). **Mola de interface:** ζ 0,62, ω 17. Um valor com vários alvos é a soma de uma mola por mudança.\n\n- **Câmera:** deriva periódica de 30 s (o último quadro casa com o primeiro), sobre-escala de 1,2% para nunca mostrar borda, aproximação de ×1,58 na pílula e na íris e de ×1,42 nos botões do pedido; o cursor escala junto.\n\n- **Inundação:** círculo ou retângulo preto passa dos cantos em 0,3 s (raio de 2.300 px), segura ~0,15 s e contrai na próxima forma com mola (ζ 0,78). Com a câmera aproximada, é desenhada no espaço da tela.\n\n- **Cursor:** trajetos em arco, micro-movimento da mão, aperto no clique e anel no toque longo.\n\n- **Motor:** um tween de uma timeline GSAP pausada chama `render(t)` no `onUpdate`; nada guarda estado entre quadros.\n\n## Render\n\n240 qps no HyperFrames, juntado com `tmix=frames=4:weights=1 1 1 1,fps=60`, H.264 CRF 15, BT.709. Depois de todo render, os detectores de salto e de quadro vazio.\n\n## Trilha\n\n | \n\n | Item\n | Valor\n\n | Música\n | \"Piece Of Your Heart (Alok Remix)\", MEDUZA, Alok, Goodboys; 123,8 BPM, Lá♯ maior\n\n | Emenda\n | 38,82–62,04 s (breakdown → drop em 46,56 s da faixa = 7,74 s do vídeo) + 127,84–131,72 s (quebra = parede) + 131,72 s em diante (volta = a marca reaparece em 27,09 s); crossfade de 12 ms em potência constante\n\n | Grade\n | batida de 0,48375 s; drop na batida 16, parede na 48, volta na 56\n\n | Dinâmica\n | música abaixa sob os impactos grandes (para 62%) e desce mais no preto da parede; sai em fade de 28,6 a 30 s\n\n## Sound design e mix\n\n | \n\n | Ação\n | Efeito\n\n | letras espremem, assinatura afunda\n | whoosh curto com tom subindo\n\n | ponto vira pílula, rótulo sobe, botão nasce\n | pop\n\n | clique do cursor\n | clique de mouse\n\n | lâminas fecham e íris abre\n | obturador, com Ping Boom em Lá♯ por baixo\n\n | grade desdobra\n | papel virando, 4 vezes em cascata, tom variando\n\n | bento, página empurra, persiana\n | papel deslizando\n\n | drop\n | riser curto + whoosh longo + impacto + Ping Boom\n\n | letras de vidro\n | 7 pops de bolha subindo a escala, com um tilintar de vidro no fim\n\n | letras derretem, moldura pinta\n | tinta\n\n | vira gota, gota se solta\n | gotas de água\n\n | segurar o slider\n | tap e contador rolando; Clarity em Lá♯ quando a luz dourada sobe\n\n | pedido\n | sucesso, digitação, contador, notificação de entregue\n\n | parede\n | impacto e whoosh grave na inundação, obturador na íris, impacto e Ping Boom na volta da marca\n\n- 113 efeitos, cada um em `evento − pico`, com o pico em milissegundos convertido para segundos.\n\n- Música a 0,40 (≈ −16 LUFS) e efeitos ×1,9: o pico do efeito fica, na mediana, 4 dB abaixo do RMS da música na janela.\n\n- **Final:** `loudnorm` em duas passagens para −14 LUFS e −1 dBTP; medido −13,9 LUFS.\n\n## O que é \"humano\" neste vídeo\n\n- O cursor faz arco, aperta no clique e segura o botão no toque longo.\n\n- As letras voltam como sanfona, passando um pouco do tamanho.\n\n- A sombra da planta continua passando pelo quadro e a câmera avança devagar na parede.\n\n- Um brilho atravessa o vidro do quadro pendurado."
    },
    {
      "titulo": "A montagem no HyperFrames",
      "texto": "| \n\n | Arquivo\n | O que faz\n\n | `hf/index.html`\n | constantes de layout, câmera, íris, grade, cursor, o shader do vidro e a função `render(t)`, que calcula tudo a partir do tempo. A grade é `b(n) = n × 0,48375 s`\n\n | `render/montar.sh`\n | junta o render de 240 qps em 60 qps com motion blur, põe a trilha e gera a comparação para o celular (original em cima, a nossa embaixo)\n\n | `revisao/pops.py`\n | acha \"pop\" de quadro único: diferença entre quadros 3 vezes maior que a dos vizinhos\n\n | `revisao/vazios.py`\n | acha quadros pretos, uniformes ou isolados (falha de captura)\n\n | `revisao/sheet.py`\n | monta a folha de contato de uma pasta de quadros\n\n | `audio/mixar.py`\n | emenda a música por compassos com crossfade de 12 ms, abaixa a música sob os impactos, posiciona cada efeito com o pico no evento, normaliza em duas passagens e grava em `hf/assets/audio/mix.wav`\n\n- **Junte as pastas:** copie `audio/` para dentro de `projeto/` (o `mixar.py` grava em `../hf/assets/audio/mix.wav`). Para a comparação, o `montar.sh` procura o original em `../../referencias/videos/twoclipping-221cab.mp4`; ajuste a variável `REF` para o arquivo em `referencias/original/`.\n\n- **Ver:** dentro de `hf/`, rode `npx hyperframes@0.8.144 preview` e abra o endereço que ele imprimir.\n\n- **Som:** no `mixar.py`, aponte `S2` para `audio/sfx/nivelados`, `PR` para `audio/sfx/premium` e `TON` para `audio/sfx/tonais`; rode `python audio/mixar.py` (precisa de numpy, scipy, librosa e soundfile).\n\n- **Render:** `npx hyperframes@0.8.144 render hf --fps 240 --workers 4 --output render/bruto-240.mp4` (no original: cerca de 5 min 45 s, qualidade high, 4 workers). Depois `bash render/montar.sh`.\n\n- **Conferir:** `python revisao/pops.py render/twoclipping-221cab-recriacao.mp4 60` e `python revisao/vazios.py render/bruto-240.mp4 240`.\n\n**Pegadinhas:** um `z-index` num filho sem contexto de empilhamento \"escapa\" para a camada de cima, por isso toda cena leva `z-index: 0; isolation: isolate`; o pico do catálogo de efeitos está em milissegundos (`at = evento − pico_ms/1000`), e confundir com segundos jogou quase todos os efeitos para tempo negativo no primeiro mix; inundação que cresce rápido demais muda meia tela num quadro só (ela precisa passar dos cantos e levar cerca de 0,3 s)."
    },
    {
      "titulo": "As decisões de direção",
      "texto": "- **Plano contínuo de verdade.** Cada cena nasce da anterior: a marca se espreme no ponto, o ponto vira pílula, a íris abre na foto, o círculo vira quadrado, a grade desdobra como mapa, a gota de vidro vira barra, a órbita vira tela de bloqueio, a tela recua para o celular, a Dynamic Island vira a janela do Mac, a página vira o quadro e o botão preto vira o pedido inteiro.\n\n- **Um vidro só para tudo.** O vidro líquido é um shader WebGL com formas de distância (caixas arredondadas e letras), unidas por smooth-min: duas formas perto uma da outra se fundem como gotas, sem truque à parte.\n\n- **Hora dourada com luz da IA e nitidez da foto.** A foto real e a versão gerada foram alinhadas e só a luz de baixa frequência foi transferida; no slider, o dourado entra pela esquerda como sol baixo, e não por dissolução.\n\n- **Câmera que aproxima o que importa** (×1,58 na pílula e na íris, ×1,42 nos botões do pedido), sobre uma deriva periódica de 30 s que fecha no primeiro quadro.\n\n- **A música manda na estrutura:** o zoom cai no drop, a parede fica na quebra e a marca volta com a batida.\n\n- **Um efeito por evento**, com a mesma família para a mesma ação e notas tonais no tom da música nos momentos de marca.\n\n- **A parede vive:** a sombra da planta passa também sobre o vidro e o passe-partout do quadro, e um brilho atravessa o vidro.\n\n- **Identidade única do começo ao fim:** o mesmo canvas quente da abertura fica atrás do celular, no lugar do papel de parede azul genérico do original.\n\nDetalhes de cores, vidro, molas e som: estilo.md. Cenas por tempo e texto na tela: roteiro.md. Para fazer um filme no mesmo estilo com o seu produto: PROMPT.md."
    },
    {
      "titulo": "As versões até o final",
      "texto": "| \n\n | Versão\n | O que mudou\n\n | primeiro render\n | o detector achou 13 saltos de quadro único: troca bloco → WebGL no drop, campo das letras ligando a sombra na tela toda, órbita, janela do Mac, cartão → herói e zoom no recuo da câmera; fotos da grade cobriam a íris e o cursor por `z-index`\n\n | **final**\n | saltos corrigidos (resta 1, de diferença média 2,8, quando a órbita entrega a tela em 13,4 s), cenas isoladas, efeitos reposicionados com o pico em milissegundos; comparação lado a lado com o original"
    }
  ],
  "pacote": [
    {
      "pasta": "projeto/",
      "conteudo": "`hf/index.html` (a composição inteira), `hf/BRIEF.md`, `hf/assets/` (GSAP, fontes Archivo e Geist, 11 fotos, os dois vídeos da parede com sombra de planta e o mix final), `render/montar.sh` e os scripts de revisão `revisao/pops.py`, `vazios.py` e `sheet.py`"
    },
    {
      "pasta": "audio/",
      "conteudo": "`mixar.py` (emenda da música + 113 efeitos + loudnorm), `cues.json` (a lista gerada), as batidas medidas, a música, o mix final e `sfx/` com os 44 arquivos de efeito usados"
    },
    {
      "pasta": "referencias/",
      "conteudo": "o vídeo original, o prompt original de @twoclipping, as folhas de contato dele, o estudo (folhas a 4 qps, detalhes, testes da hora dourada e a análise do Gemini) e a comparação original × nossa (vídeo e folha lado a lado)"
    },
    {
      "pasta": "render.mp4",
      "conteudo": "o filme final"
    },
    {
      "pasta": "hf/index.html",
      "conteudo": "constantes de layout, câmera, íris, grade, cursor, o shader do vidro e a função `render(t)`, que calcula tudo a partir do tempo. A grade é `b(n) = n × 0,48375 s`"
    },
    {
      "pasta": "render/montar.sh",
      "conteudo": "junta o render de 240 qps em 60 qps com motion blur, põe a trilha e gera a comparação para o celular (original em cima, a nossa embaixo)"
    },
    {
      "pasta": "revisao/pops.py",
      "conteudo": "acha \"pop\" de quadro único: diferença entre quadros 3 vezes maior que a dos vizinhos"
    },
    {
      "pasta": "revisao/vazios.py",
      "conteudo": "acha quadros pretos, uniformes ou isolados (falha de captura)"
    },
    {
      "pasta": "revisao/sheet.py",
      "conteudo": "monta a folha de contato de uma pasta de quadros"
    },
    {
      "pasta": "audio/mixar.py",
      "conteudo": "emenda a música por compassos com crossfade de 12 ms, abaixa a música sob os impactos, posiciona cada efeito com o pico no evento, normaliza em duas passagens e grava em `hf/assets/audio/mix.wav`"
    }
  ],
  "prompt": "Quero um filme de lançamento em plano contínuo no mesmo método do projeto \"revelar.\", que está em 07-videos/projetos/revelar/, com o meu produto.\n\nMarca (uma palavra, de preferência um verbo): {{MARCA}}\nProduto e a jornada que o filme conta (do primeiro toque à entrega): {{JORNADA}}\nSite oficial (cores, fonte, logo, telas reais): {{SITE}}\nFotos ou vídeos reais que posso usar: {{ASSETS}}\nDuração: {{DURACAO}} (a referência tem 30 s) · Formato: {{FORMATO}} (a referência é 1440×1440)\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 LEIA-ME.md, estilo.md, roteiro.md e o prompt original de @twoclipping em referencias/original/. Depois abra projeto/hf/index.html e entenda a grade b(n), a câmera, a íris, a grade que desdobra, o shader do vidro, a inundação, o cursor e render(t). Leia também audio/mixar.py e render/montar.sh. Me explique em poucas linhas o que você vai reaproveitar.\n\n2. Tire a identidade do assunto: logo, cores do CSS e fontes do site oficial, fotos reais do produto. Se não houver marca forte, mantenha a base desta peça (canvas claro e quente, interface preta, uma tipografia larga e pesada na marca, uma fonte limpa na interface).\n\n3. Escolha uma música real das minhas playlists que tenha drop e uma quebra calma, meça com o beat_this e escreva a grade de batidas antes de codar: o maior zoom no drop, a cena de respiro na quebra e a marca voltando com a batida. Algo acontece em toda batida e nada fica parado mais de 1 s. Me mostre a grade e 4 quadros (abertura, meio, clímax e fim) antes do filme inteiro.\n\n4. Escreva a jornada como uma cadeia de formas: cada cena nasce de um objeto da anterior (texto que sobe de uma máscara, ponto que vira pílula, íris que abre numa foto, gota que vira barra, tela que recua para um aparelho, uma forma preta que inunda a tela e contrai na próxima cena). Proibido: crossfade, desfoque de entrada, flip 3D, partícula, glow e corte seco.\n\n5. Construa no HyperFrames copiando o projeto, sem editar o original. Mantenha: um render(t) puro chamado por um tween da timeline pausada; molas fechadas somadas por mudança (ζ 0,56, ω 11,9; interface ζ 0,62, ω 17); câmera com deriva que fecha no primeiro quadro e aproximação nos momentos pequenos; cursor com arco, aperto e toque longo; cada cena com isolation: isolate; inundação que passa dos cantos em ~0,3 s. Se usar vidro, use o shader do projeto e zere a força do vidro antes de a forma sumir.\n\n6. Som num subagente, em paralelo: emenda da música por compassos, um efeito por evento com a mesma família para a mesma ação, cada um em evento − pico (pico do catálogo em milissegundos), notas tonais no tom da música nos momentos de marca, música baixando sob os impactos. Meça a trilha só de efeitos contra a música antes de mandar e normalize a −14 LUFS.\n\n7. Render a 240 qps, junção com tmix=frames=4 para 60 qps (render/montar.sh) e, depois de todo render, os detectores revisao/pops.py e revisao/vazios.py. Corrija cada salto e cada quadro vazio e renderize de novo.\n\n8. Revise com folhas a 4 qps, recortes ampliados dos momentos-chave e uma IA que assista com áudio. Pergunta de controle em cada movimento: está humano ou robotizado? Entregue o MP4, a composição editável e uma anotação com o que mudou.",
  "campos": [
    "ASSETS",
    "DURACAO",
    "FORMATO",
    "JORNADA",
    "MARCA",
    "SITE"
  ],
  "fonte": {
    "nome": "Clube do Motion",
    "url": "https://clubedomotion.com/projeto/?id=revelar",
    "uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
  }
}