{
  "id": "clube-enxovaly",
  "titulo": "Enxoval peça por peça",
  "categoria": "saas",
  "resumo": "promo de 15,6 s, horizontal, do Enxovaly, um app brasileiro que monta o enxoval do bebê na medida certa. A história vai do excesso de palpites à lista certa: uma parede de ícones com \"Mil listas. Mil palpites.\", o ícone do app que abre no iPhone, a lista que corrige o palpite do grupo (20 bodies viram 6), a checklist tocada item por item, o quarto 3D oficial do app e o quarto que encolhe até virar o símbolo da marca. É uma recriação do \"Enxovaly baby app promo\" de Gabriel Buzzi (@gabrielbuzziv) no prompt-motion.com, feito com o Claude Opus 5.5 no HyperFrames a partir do prompt genérico de showreel. A nossa versão usou a identidade real do site (Fraunces e Nunito, lavanda, símbolo, ícones 3D e o vídeo do quarto), toques reais no iPhone, transições em que cada cena nasce da anterior, câmera sempre viva e uma música real com um compasso por cena.",
  "indicado": "app ou serviço para famílias, maternidade e casa; produto digital que quer mostrar o app sendo usado de verdade num anúncio curto.",
  "estilo": [
    "app no iPhone",
    "lavanda e champanhe",
    "serifada com itálico",
    "ícones 3D",
    "toques reais",
    "delicado",
    "sincronizado no compasso"
  ],
  "ficha": {
    "formato": "1920×1080, 60 qps, 16:9",
    "duracao": "15,6 s (936 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": "15,6 s (936 quadros), sem narração",
    "Formato": "1920×1080, 60 qps, 16:9",
    "Ferramenta": "HyperFrames (HTML + GSAP), um relógio só: um tween de 0 a 15,6 s chama `render(t)`",
    "Desfoque de movimento": "render a 240 qps e `tmix=frames=4` para 60 qps",
    "Trilha": "\"Riptide\", Vance Joy, trecho de 7,12 a 22,72 s, 103,4 BPM; cada cena dura um compasso (2,42 s)",
    "Som": "82 eventos de efeito, drone e Ping Boom em Dó♯, voz da música 8 dB abaixo entre 3,2 e 12,9 s; −14,2 LUFS integrado, pico −0,9 dB",
    "Referência": "\"Enxovaly baby app promo\", Gabriel Buzzi (@gabrielbuzziv), prompt-motion.com (15 s, 30 qps)"
  },
  "etapas": [
    {
      "titulo": "O roteiro",
      "texto": "**Resumo:** o promo não tem narração; o roteiro é a sequência de seis cenas de um compasso cada, com os tempos do `render(t)` e o texto exato da tela. O fio da história: o excesso de palpites vira a quantidade certa, peça por peça, até o quarto pronto e a marca.\n\n## De onde veio a estrutura\n\nO prompt do original é o genérico de showreel (\"um vídeo de motion de 15 segundos que mostre o motion designer incrível que você é… vá com tudo\"), e o autor usou as telas, a fonte e o logo do próprio app. O original passava por parede de ícones (\"Mil listas. Mil dúvidas.\"), cartões \"Sem exageros.\", iPhone \"Sob medida.\", foto com mira (\"Peça por peça.\"), quarto 3D (\"Com calma e carinho.\") e marca. A nossa versão manteve os títulos e a ordem das ideias, trocou \"Mil dúvidas\" por \"Mil palpites\" para criar um conflito que volta depois e fez cada cena nascer da anterior.\n\n## Cenas por tempo\n\n | \n\n | #\n | Tempo (s)\n | Texto na tela\n | O que acontece\n\n | 1\n | 0–3,20\n | \"Mil listas.\" · \"Mil palpites.\" · balões \"Sogra: compra uns 20 bodies RN\", \"Vizinha: RN nem dá tempo de usar\", \"Grupo do chá: manta? umas 6, no mínimo\"\n | um ícone surge sozinho; a parede de ícones inclinada entra em ondulação a partir do centro e alguns cartões dão a volta; os três balões do grupo chegam em sequência; a parede se desinclina e o ícone do centro fica plano\n\n | 2\n | 3,20–5,62\n | \"Sob medida.\" · \"Conta pra gente sobre o bebê\" · \"QUANDO O BEBÊ NASCE?\" · \"ESTAÇÃO DO NASCIMENTO\" · \"TAMANHOS\" · \"Lia, sua assistente\" · \"Janeiro é verão: vou priorizar tecidos leves.\" · \"Montar meu enxoval\" → \"Montando o enxoval…\" · chips \"Nasce em janeiro\", \"Verão\", \"RN a 12 meses\"\n | **3,20 s, na virada da música:** o cartão gira e mostra o ícone do app, é tocado e abre na tela do iPhone; no onboarding, toque em \"Jan\", o controle de tamanhos é arrastado e a Lia digita a resposta; cada escolha sai do telefone como chip grande; o botão é tocado, carrega e cresce até o cabeçalho da tela inicial (\"Olá, mamãe\", \"Essenciais para o parto\", \"Lista de desejos\", \"Chá de bebê\", \"Suas listas\")\n\n | 3\n | 5,62–8,04\n | \"Sem exageros.\" · \"Body manga curta\" · \"RN a 3 meses · verão\" · \"PALPITE DO GRUPO\" 20 → \"NA MEDIDA CERTA\" 6 \"peças\" · \"Macacão · 4 peças\" · \"Meias · 5 pares\"\n | a lista do app vai para a esquerda e a linha do body sai do telefone como cartão grande; o 20 do palpite é riscado em champanhe, rola até 6 com tremida e pousa com mola; os outros itens entram ao lado\n\n | 4\n | 8,04–10,48\n | \"Peça por peça.\" · \"Para vestir\" · \"0 de 5\" → \"Completo\" · \"0%\" → \"100%\" · itens \"Body manga curta · 6 peças\", \"Macacão · 4 peças\", \"Manta leve · 2 peças\", \"Meias · 5 pares\", \"Touca · 2 peças\"\n | a checklist \"Para vestir\" sai do telefone; cinco checks tocados em meio tempo (8,66 · 8,96 · 9,26 · 9,57 · 9,88 s), cada um com o tom subindo; a câmera empurra até o último check, que abre um círculo com o quarto\n\n | 5\n | 10,48–12,90\n | \"Com calma\" / \"e carinho.\" · \"Enxoval 68%\" → \"100%\"\n | o vídeo oficial do quarto 3D ocupa a tela e recua devagar; a pílula do enxoval sobe de 68% a 100% e o anel fica champanhe com check e faíscas; em 12,28 s o quarto começa a encolher até a cápsula do símbolo\n\n | 6\n | 12,90–15,6\n | símbolo · \"Enxovaly\" · \"Seu enxoval sob medida, **peça por peça**.\" · \"Baixar na App Store\" · \"Disponível no Google Play\" · \"enxovaly.com\"\n | o símbolo entra por cima da cápsula e respira; o nome entra letra por letra (13,16 s); a frase sobe em 13,72 s; os selos das lojas em 14,12 e 14,24 s; o endereço em 14,42 s; o conjunto cresce 3,5% até o fim\n\n## Momentos para a trilha\n\n- 0–3,2 s: só o instrumental, com o drone Atlantic em Dó♯ por baixo e notificações nos balões.\n\n- **3,20 s: virada da música** (o ukulele vira banda) na abertura do app, com whoosh longo, impacto, sino e Ping Boom em Dó♯.\n\n- 3,2–12,9 s: a voz da música entra 8 dB abaixo, com sidechain sob os efeitos.\n\n- 8,66–9,88 s: os cinco checks sobem de tom no ritmo de meio tempo.\n\n- **12,90 s: Ping Boom e impacto** no nascimento do símbolo; o final volta a ser só instrumental."
    },
    {
      "titulo": "A identidade visual",
      "texto": "**Resumo:** identidade real do site do Enxovaly: lavanda em vários tons, champanhe para conquista, Fraunces com itálico na palavra de destaque e Nunito no corpo, símbolo do bebê enrolado e ícones 3D. A abertura é escura e o resto é claro. O movimento roda num relógio só, com molas analíticas, câmera que nunca para e um iPhone crível que é tocado de verdade. Números tirados do `index.html`, do `mixar.py`, do `BRIEF.md` e dos aprendizados do projeto.\n\n## Cores\n\nTokens do CSS do site:\n\n | \n\n | Token\n | Hex\n | Papel\n\n | lavender-primary\n | `#6b4990`\n | cor principal, botão, cabeçalho do app\n\n | lavender-bloom\n | `#a480d0`\n | destaques, degradê das palavras em itálico\n\n | lavender-mist\n | `#e8ddf5`\n | fundos suaves\n\n | lavender-veil\n | `#f4ecfa`\n | fundo claro\n\n | lavender-ink\n | `#322145`\n | texto escuro\n\n | lavender-deep\n | `#4e356a`\n | escuro da abertura\n\n | dawn\n | `#faf6fc`\n | fundo das cenas claras\n\n | champagne\n | `#c2a05b`\n | traço que risca o palpite, anel completo\n\n | taupe\n | `#7e736d`\n | texto secundário\n\n | success\n | `#43a579`\n | checks\n\n## Fontes\n\n | \n\n | Uso\n | Fonte\n\n | Títulos\n | Fraunces, com a segunda palavra em itálico e degradê (\"Mil listas.\", \"Sob medida.\")\n\n | Corpo e interface\n | Nunito\n\n | Barra de status do iPhone\n | SF Pro Semibold\n\nO degradê contínuo atravessa a palavra mesmo com animação letra por letra: cada letra recebe `background-size` igual à largura da palavra e `background-position` igual a menos a posição dela, calculados depois de as fontes carregarem.\n\n## Componentes\n\n | \n\n | Peça\n | Como é\n\n | Parede de ícones\n | grade de 19×13 cartões de 150 px (passo de 176) num plano com `perspective: 1400px`, `rotateX(34°) rotateZ(−11°)`; entra em ondulação a partir do centro (atraso = distância × 0,075 s, com mola) e ~16% dos cartões dão uma volta em X em tempos sorteados por hash\n\n | Saída da parede\n | o plano se desinclina até 0° e avança em Z (o ícone de 150 px vira 210 px), plano e centrado, pronto para virar o ícone do app\n\n | Abertura do app\n | o cartão central gira em Y e mostra o ícone do app; um toque; um retângulo sai do ícone (210 px, raio 48) e cresce até a tela do iPhone (416×880, raio 62) com a mola de interface; o corpo do telefone aparece em volta (opacidade e escala 1,05 → 1); a cena escura sai por uma máscara radial que nasce do ícone\n\n | Botão que vira cabeçalho\n | \"Montar meu enxoval\" → \"Montando o enxoval…\" → o próprio botão cresce até o cabeçalho roxo da tela inicial\n\n | Cartão que sai do telefone\n | o item que a cena explica decola da linha do app e pousa grande fora da tela (escala 0,42 → 1, origem no lado do telefone): chips de 36 px, quantidade de 132 px, checklist de 30 px\n\n | Palpite corrigido\n | \"PALPITE DO GRUPO 20\" é riscado à mão (traço champanhe por `stroke-dashoffset`), o número rola até 6 com tremida, pousa com mola e o rótulo vira \"NA MEDIDA CERTA\"\n\n | Checklist\n | 5 toques em meio tempo (0,30 s); barra e porcentagem correm contínuas até \"Completo\"\n\n | Zoom pelo check\n | a câmera empurra (escala 1 → 1,9) para o último check, que abre um círculo com o vídeo do quarto; o vídeo entra a 1,3× e desacelera para 1,0× enquanto a câmera do render 3D recua\n\n | Quarto que vira símbolo\n | o vídeo encolhe por `clip-path: inset(... round R)` até a cápsula do símbolo (196×288, raio 98), o conteúdo escala para 0,34 junto e o SVG do símbolo entra por cima; a cápsula tem o mesmo contorno do símbolo, então a troca não aparece\n\n | Anel do enxoval\n | pílula \"Enxoval\" com anel que sobe de 68% a 100% e fica champanhe com check\n\n## Molas, câmera e motor\n\n- **Mola padrão analítica:** `1 − e^(−ζωt)(cos ω_d t + ζ/√(1−ζ²) sin ω_d t)` com ζ 0,56 e ω 12 (≈ 12% de passagem, assenta em ~0,6 s). **Mola de interface:** ζ 0,78, ω 13.\n\n- **Câmera:** deriva e wiggle (±10 px, ±0,25°) o tempo todo; empurrão de 3,5% na cena final.\n\n- **Telefone:** flutua (y ±7 px, rotação em Y ±1,2°).\n\n- **Motor:** um tween GSAP de 0 a 15,6 s chama `render(t)` no `onUpdate`; molas, deriva, wiggle e letras são funções de `t`.\n\n## Render\n\n240 qps no HyperFrames e `tmix=frames=4` para 60 qps; H.264 CRF 16, BT.709. O vídeo do quarto entrou com keyframe a cada 12 quadros (`-g 12`).\n\n## Trilha\n\n | \n\n | Item\n | Valor\n\n | Música\n | \"Riptide\", Vance Joy, a partir de 7,12 s da faixa\n\n | Tempo\n | 103,4 BPM (beat_this); compasso de 2,42 s\n\n | Estrutura\n | uma cena por compasso: 0 · 3,20 · 5,62 · 8,04 · 10,48 · 12,90 s; a virada do ukulele para a banda cai na abertura do app (3,20 s)\n\n | Voz da música\n | separada com o Demucs; instrumental cheio e voz 8 dB abaixo só entre 3,2 e 12,9 s (abertura e final só instrumental)\n\n | Sidechain\n | até −4 dB pelo envelope dos efeitos\n\n## Sound design e mix\n\n | \n\n | Ação na tela\n | Efeito\n\n | ícones da parede, cartões, chips\n | pops com tom variando, passa-baixa nos pequenos\n\n | balões do grupo\n | notificação, subindo de tom a cada balão\n\n | trocas de cena e voos\n | whoosh curto, longo e grave\n\n | toque na tela\n | clique com passa-baixa de 3,5–4 kHz\n\n | Lia digitando\n | digitação e contador rolando\n\n | palpite riscado e número rolando\n | caneta e contador\n\n | checks\n | clique + pop subindo 0, +2, +4, +5, +7 semitons; sucesso e sino no último\n\n | abertura do app, quarto, marca\n | riser, impacto, sino e Ping Boom em Dó♯; drone Atlantic em Dó♯ na abertura\n\n- 82 eventos em `evento − pico`; cliques, pops e notificações ×1,8, o resto ×1,35.\n\n- **Medido:** antes do loudnorm, música −23,6 e efeitos −21,4 LUFS; sincronia por onsets com erro mediano de 9 ms em 40 eventos.\n\n- **Final:** `loudnorm` em duas passagens; −14,2 LUFS integrado, pico −0,9 dB.\n\n## O que é \"humano\" neste vídeo\n\n- Os toques têm onda e o controle de tamanhos é arrastado, não trocado.\n\n- A assistente Lia digita letra por letra.\n\n- O 20 é riscado à mão antes de rolar até 6.\n\n- O símbolo respira e balança de leve até o último quadro, com faíscas em volta."
    },
    {
      "titulo": "A montagem no HyperFrames",
      "texto": "| \n\n | Arquivo\n | O que faz\n\n | `hf/index.html`\n | todo o desenho e o movimento: `render(t)` calcula as seis cenas a partir do tempo (comentários `CENA 1` a `CENA 6`), com molas analíticas, deriva, wiggle e letras por máscara; o `build()` mede o ponto do zoom antes de montar a timeline\n\n | `audio/montar.py`\n | `python audio/montar.py <render-240.mp4> final 4`: junta o render com `tmix` para 60 qps, põe o mix e gera a comparação com o original\n\n | `audio/mixar.py`\n | carrega cada efeito com tom, passa-baixa e corte, posiciona em `evento − pico`, monta a música a partir dos stems (instrumental cheio e voz 8 dB abaixo só no meio), faz sidechain de até −4 dB pelo envelope dos efeitos e normaliza em duas passagens\n\n- **Junte as pastas:** copie `audio/` para dentro de `projeto/` (o `montar.py` usa `audio/mix.wav` e grava em `render/`).\n\n- **Instale a SF Pro** como explicado acima.\n\n- **Use uma pasta sem acento.** Com \"ç\" ou acento no caminho, a extração do vídeo do quarto falha no render (`VIDEO_SOURCE_UNRENDERABLE`).\n\n- **Ver:** dentro de `hf/`, rode `npm run dev` (o `package.json` chama o HyperFrames 0.8.144) e abra o endereço que ele imprimir.\n\n- **Som:** no `audio/mixar.py`, aponte `N` para `audio/sfx/nivelados/` e `TON` para `audio/sfx/tonais/` (com a barra no fim) e rode `python audio/mixar.py` (precisa de numpy e soundfile).\n\n- **Render:** `npx hyperframes@0.8.144 render hf --fps 240 --output render/bruto-240.mp4` e depois `python audio/montar.py render/bruto-240.mp4 final 4`. Para a comparação, ajuste o caminho `REF` do `montar.py` para o original em `referencias/original/`.\n\n**Pegadinhas:** medidas do DOM (`getBoundingClientRect`) só depois de aplicar todas as transformações do mesmo instante, e o que depende de outro instante (o ponto do zoom) se mede no `build()`; o retângulo da abertura do app precisa de sombra e borda desde o primeiro quadro e de uma camada própria acima da cena escura, senão some no clarão; a 120 qps com `tmix=2` aparece imagem dupla nos voos rápidos."
    },
    {
      "titulo": "As decisões de direção",
      "texto": "- **A identidade sai do site em minutos.** O HTML do site lista os assets (fontes woff2, símbolo SVG, ícones 3D e até o vídeo 3D do quarto), e o CSS traz os tokens com nome: `lavender-primary #6b4990`, `bloom #a480d0`, `mist #e8ddf5`, `veil #f4ecfa`, `ink #322145`, `champagne #c2a05b`.\n\n- **Uma história com conflito.** \"Mil palpites\" vira três balões de grupo (\"compra uns 20 bodies RN\"), e o 20 volta riscado na cena da quantidade certa, rolando até 6.\n\n- **Cada cena nasce da anterior:** a parede de ícones se desinclina e o ícone escolhido vira o ícone do app; o ícone abre na tela do iPhone como no iOS; o botão \"Montar meu enxoval\" vira o cabeçalho; a linha vira cartão; o último check abre um círculo com o quarto; o quarto encolhe até a cápsula do símbolo.\n\n- **Legível no celular:** o item que a cena explica sai da tela do aparelho e pousa grande ao lado (escala 0,42 → 1), enquanto a tela do telefone mostra a mesma coisa.\n\n- **O app é usado de verdade:** 9 toques com onda, controle de tamanhos arrastado, a assistente Lia digitando, notificação do iOS e cinco checks tocados em meio tempo.\n\n- **Um compasso por cena:** os tempos fortes da música caem em 0,76 · 3,20 · 5,62 · 8,04 · 10,48 · 12,90 s, e a virada da música, quando o ukulele vira banda, cai na abertura do app.\n\n- **Nada parado:** câmera com deriva e wiggle o tempo todo, telefone flutuando e cartões balançando.\n\n- **Checklist musical:** cada check com o pop subindo de tom (0, +2, +4, +5, +7 semitons), e a barra e a porcentagem correm sem saltos.\n\nDetalhes de cores, molas e som: estilo.md. Cenas por tempo e texto na tela: roteiro.md. Para fazer um promo no mesmo estilo com o seu app: PROMPT.md."
    },
    {
      "titulo": "As versões até o final",
      "texto": "| \n\n | Versão\n | O que mudou\n\n | v2\n | render a 120 qps com `tmix=2` (imagem dupla nos voos); o detector achou 2 saltos (3,07 s, ícone sumindo antes do retângulo do app; 9,92 s, troca do ponto de origem da câmera)\n\n | v3\n | os dois saltos corrigidos; o retângulo do app ainda ficava por baixo da cena escura e sumia no clarão\n\n | **v4**\n | o retângulo da abertura numa camada própria acima e render a 240 qps com `tmix=4`; nenhum salto nem quadro vazio\n\nO primeiro mix levou nota 4,5 de 10 do Gemini, com os efeitos enterrados sob a voz da música. Separar a voz com o Demucs e baixá-la 8 dB resolveu: na escuta seguinte, o equilíbrio ficou bom e os efeitos audíveis e sincronizados."
    }
  ],
  "pacote": [
    {
      "pasta": "projeto/",
      "conteudo": "`hf/index.html` (a composição inteira), `hf/BRIEF.md`, `hf/gsap.min.js`, `hf/hyperframes.json`, `hf/meta.json`, `hf/package.json`, `hf/assets/` (fontes Fraunces, Fraunces itálica e Nunito, símbolo em SVG, três ícones 3D e o trecho do vídeo oficial do quarto em `nursery.mp4`) e `audio/montar.py`"
    },
    {
      "pasta": "audio/",
      "conteudo": "`mixar.py` (os 82 eventos, stems, sidechain e loudnorm), a música, as batidas medidas, a voz e o instrumental separados pelo Demucs (`stems/`), as trilhas só de música e só de efeitos, o mix final e `sfx/` com os 33 arquivos usados (o drone vem só com os 6 s iniciais, que é o trecho que o script usa)"
    },
    {
      "pasta": "referencias/",
      "conteudo": "o vídeo original, o prompt original, as folhas de contato dele a 4 qps e a comparação original × nossa (vídeo e 5 pares de quadros)"
    },
    {
      "pasta": "render.mp4",
      "conteudo": "o promo final"
    },
    {
      "pasta": "hf/index.html",
      "conteudo": "todo o desenho e o movimento: `render(t)` calcula as seis cenas a partir do tempo (comentários `CENA 1` a `CENA 6`), com molas analíticas, deriva, wiggle e letras por máscara; o `build()` mede o ponto do zoom antes de montar a timeline"
    },
    {
      "pasta": "audio/montar.py",
      "conteudo": "`python audio/montar.py <render-240.mp4> final 4`: junta o render com `tmix` para 60 qps, põe o mix e gera a comparação com o original"
    },
    {
      "pasta": "audio/mixar.py",
      "conteudo": "carrega cada efeito com tom, passa-baixa e corte, posiciona em `evento − pico`, monta a música a partir dos stems (instrumental cheio e voz 8 dB abaixo só no meio), faz sidechain de até −4 dB pelo envelope dos efeitos e normaliza em duas passagens"
    }
  ],
  "prompt": "Quero um promo curto do meu app no mesmo método do projeto \"Enxoval peça por peça\" (Enxovaly), que está em 07-videos/projetos/enxovaly/.\n\nApp e para quem ele é: {{APP}}\nSite oficial (fontes, cores, símbolo, ícones, telas, vídeos do produto): {{SITE}}\nO problema que o app resolve, como as pessoas falam dele (ex.: \"mil palpites\"): {{CONFLITO}}\nAs telas e ações principais do app: {{TELAS}}\nChamada final (lojas, site): {{CHAMADA}}\nDuração: {{DURACAO}} (a referência tem 15,6 s) · Formato: {{FORMATO}} (a referência é 1920×1080)\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 e roteiro.md e veja o original em referencias/original/ e os pares de comparação. Depois abra projeto/hf/index.html e entenda render(t), as molas analíticas, a parede de ícones, a abertura do app, o botão que vira cabeçalho, o cartão que sai do telefone, o palpite riscado e o zoom pelo check. Leia também audio/mixar.py e audio/montar.py. Me explique em poucas linhas o que você vai reaproveitar.\n\n2. Tire a identidade do site: rode curl no HTML, liste os /assets (fontes woff2, símbolo SVG, ícones, vídeos do produto) e pegue os tokens de cor com nome no CSS. Se houver vídeo oficial com texto queimado, veja numa folha a 8 qps e use só os trechos limpos.\n\n3. Monte a história com um conflito que volta resolvido (na referência, o \"compra uns 20 bodies\" do grupo volta riscado e vira 6). Escreva o roteiro de cenas com o texto exato da tela e me mostre antes de codar. Títulos curtos com a segunda palavra em destaque.\n\n4. Escolha uma música real das minhas playlists, meça com o beat_this e faça cada cena durar um compasso, com a virada da música na entrada do app. Se a música tiver voz, separe com o Demucs e deixe a voz 8 dB abaixo só no meio.\n\n5. Construa no HyperFrames copiando o projeto, sem editar o original. Mantenha: um relógio só chamando render(t); mola padrão ζ 0,56 ω 12 e mola de interface ζ 0,78 ω 13; câmera com deriva e wiggle; telefone flutuando; abertura do app como no iOS (o ícone vira a tela, o corpo do telefone aparece em volta, a cena anterior sai por máscara radial a partir do ícone); toques com onda; o item que a cena explica saindo do telefone em tamanho grande; cada cena nascendo de um elemento da anterior; a marca nascendo de uma forma igual ao contorno do símbolo. Troque: textos, telas, ícones, vídeo, cores, fontes e símbolo.\n\n6. Som num subagente: um efeito por elemento em evento − pico, mesma família para a mesma ação, sequência de checks subindo de tom (0, +2, +4, +5, +7), notas tonais no tom da música na abertura do app e na marca, sidechain da música sob os efeitos. Meça a trilha só de música e a só de efeitos antes do loudnorm a −14 LUFS e confira a sincronia por onsets.\n\n7. Render a 240 qps e python audio/montar.py <render> final 4 (tmix para 60 qps). Procure quadro com salto e quadro vazio depois de todo render, confira a legibilidade no celular (texto de interface com pelo menos ~22 px) e revise com uma IA que assista com áudio, conferindo cada ponto nos quadros antes de mexer. Entregue o MP4, a composição editável e uma anotação.",
  "campos": [
    "APP",
    "CHAMADA",
    "CONFLITO",
    "DURACAO",
    "FORMATO",
    "SITE",
    "TELAS"
  ],
  "fonte": {
    "nome": "Clube do Motion",
    "url": "https://clubedomotion.com/projeto/?id=enxovaly",
    "uso": "liberado pelo dono do Clube do Motion em 18/10/2026 (docs/permissoes/clube-do-motion.md)"
  }
}