{
  "estilo": "apple-tipografico",
  "nome": "Apple · filme de produto",
  "versao": 1,
  "fps": 30,
  "pecas": [
    {
      "nome": "CartaoRadial",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/CartaoRadial.tsx",
      "descricao": "o cartão de título do filme (\"All new / AirPods Pro 3\").",
      "params": [
        "sobretitulo?",
        "titulo",
        "inicio?",
        "recolher?",
        "cores?",
        "y?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "cartao",
        "radial"
      ]
    },
    {
      "nome": "Produto3D",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/Produto3D.tsx",
      "descricao": "o herói do filme. Um produto 3D de verdade (raymarching em JS puro, ver raymarch.ts) com material cetim/metal, luz de estúdio (softbox em cima à esquerda, recorte à direita, céu branco) e…",
      "params": [
        "modelo?",
        "pecas?",
        "cor?",
        "animar?",
        "giro?",
        "inclinar?",
        "rolar?",
        "centro?",
        "mover?",
        "flutuar?",
        "camera?",
        "lente?",
        "chao?",
        "sombra?",
        "acento?",
        "brilho?",
        "opacidade?",
        "qualidade?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "produto",
        "3d"
      ]
    },
    {
      "nome": "ProdutoFoto",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/ProdutoFoto.tsx",
      "descricao": "o produto do cliente a partir de FOTO RECORTADA (PNG transparente) ou da sequência de quadros de um giro 3D (exportado do Blender/Spline/Keyshot), pousado no estúdio com sombra de contato…",
      "params": [
        "src?",
        "quadros?",
        "quadrosPorSegundo?",
        "largura?",
        "x?",
        "y?",
        "escala?",
        "giro?",
        "subir?",
        "flutuar?",
        "sombra?",
        "entrada?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "produto",
        "foto"
      ]
    },
    {
      "nome": "Fundo",
      "categoria": "texturas",
      "tipo": "componente",
      "arquivo": "texturas/Fundo.tsx",
      "descricao": "o estúdio sem emenda do filme (cinza-creme quente, luz macia no meio, cantos 7% mais escuros).",
      "params": [
        "tom?",
        "cor?",
        "luz?"
      ],
      "duracao": null,
      "tags": [
        "texturas",
        "fundo"
      ]
    },
    {
      "nome": "Particulas",
      "categoria": "texturas",
      "tipo": "componente",
      "arquivo": "texturas/Particulas.tsx",
      "descricao": "Camada de pontos e traços flutuando em 3 profundidades (movimento de fundo constante).",
      "params": [
        "quantidade?",
        "cor?",
        "semente?",
        "velocidade?",
        "opacidade?"
      ],
      "duracao": null,
      "tags": [
        "fundo",
        "movimento",
        "densidade"
      ]
    },
    {
      "nome": "Cena",
      "categoria": "transicoes",
      "tipo": "componente",
      "arquivo": "transicoes/Cena.tsx",
      "descricao": "a janela de tempo de um plano do filme.",
      "params": [
        "de",
        "ate",
        "entrada?",
        "saida?",
        "children"
      ],
      "duracao": [
        24,
        150
      ],
      "tags": [
        "transicoes",
        "cena"
      ]
    },
    {
      "nome": "CorteImpacto",
      "categoria": "transicoes",
      "tipo": "componente",
      "arquivo": "transicoes/CorteImpacto.tsx",
      "descricao": "Soco de corte: clarão, tremida e zoom-pop que decaem em ~10 quadros.",
      "params": [
        "em",
        "forca?",
        "clarao?",
        "corClarao?",
        "children"
      ],
      "duracao": [
        10,
        14
      ],
      "tags": [
        "corte",
        "impacto",
        "energia"
      ]
    },
    {
      "nome": "AssinaturaPreta",
      "categoria": "tipografia",
      "tipo": "componente",
      "arquivo": "tipografia/AssinaturaPreta.tsx",
      "descricao": "o fim do filme. Corte seco para o preto, o logo claro aparece devagar no meio (18 quadros, escala 0,94 → 1) e uma linha legal minúscula embaixo. Nada mais.",
      "params": [
        "logo?",
        "marca?",
        "rodape?",
        "inicio?",
        "altura?",
        "y?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "tipografia",
        "assinatura",
        "preta"
      ]
    },
    {
      "nome": "LegendaCurta",
      "categoria": "tipografia",
      "tipo": "componente",
      "arquivo": "tipografia/LegendaCurta.tsx",
      "descricao": "UMA linha curta por plano, pequena e calma, no tipo da Apple (Inter 600, #1D1D1F).",
      "params": [
        "texto",
        "y?",
        "x?",
        "alinhar?",
        "tamanho?",
        "peso?",
        "cor?",
        "inicio?",
        "intervalo?",
        "sai?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "tipografia",
        "legenda",
        "curta"
      ]
    },
    {
      "nome": "Camera",
      "categoria": "camera",
      "tipo": "componente",
      "arquivo": "camera/Camera.tsx",
      "descricao": "o empurrão lento do filme para camadas 2D (texto, foto recortada, cartão).",
      "params": [
        "de?",
        "para?",
        "deriva?",
        "foco?",
        "curva?",
        "children"
      ],
      "duracao": null,
      "tags": [
        "camera",
        "camera"
      ]
    },
    {
      "nome": "CameraDeriva",
      "categoria": "camera",
      "tipo": "componente",
      "arquivo": "camera/CameraDeriva.tsx",
      "descricao": "Câmera 3D com perspectiva: chaves {em,z,x,y,giro} levam o foco de uma a outra e por baixo roda uma deriva que nunca para.",
      "params": [
        "chaves?",
        "deriva?",
        "perspectiva?",
        "children"
      ],
      "duracao": null,
      "tags": [
        "3d",
        "camera",
        "movimento"
      ]
    },
    {
      "nome": "assinatura",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/assinatura.mp3",
      "descricao": "acorde da marca.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        59,
        59
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.9
    },
    {
      "nome": "clique",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/clique.mp3",
      "descricao": "clique de botão.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        19,
        19
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.8
    },
    {
      "nome": "impacto",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/impacto.mp3",
      "descricao": "impacto grave suave (não usado no v2).",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        48,
        48
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.85
    },
    {
      "nome": "pop-cartao",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/pop-cartao.mp3",
      "descricao": "pop de cartão que pousa.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        20,
        20
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.9
    },
    {
      "nome": "pop-palavra",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/pop-palavra.mp3",
      "descricao": "pop curto de palavra (não usado no v2).",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        17,
        17
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 1
    },
    {
      "nome": "subida",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/subida.mp3",
      "descricao": "riser de 1,2 s (não usado no v2).",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        63,
        63
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.7
    },
    {
      "nome": "swoosh",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/swoosh.mp3",
      "descricao": "swoosh lateral.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        27,
        27
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 1
    },
    {
      "nome": "whoosh-entra",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/whoosh-entra.mp3",
      "descricao": "whoosh de entrada (0,9 s).",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        27,
        27
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.9
    },
    {
      "nome": "whoosh-sai",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/whoosh-sai.mp3",
      "descricao": "whoosh de saída.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        27,
        27
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.8
    },
    {
      "nome": "Som",
      "categoria": "sons",
      "tipo": "componente",
      "arquivo": "sons/Som.tsx",
      "descricao": "Componentes Efeito (um som no quadro em) e Trilha (música com fade de saída) que tocam os áudios acima.",
      "params": [
        "som",
        "em",
        "volume?"
      ],
      "duracao": null,
      "tags": [
        "audio",
        "codigo"
      ]
    },
    {
      "nome": "trilha",
      "categoria": "trilha",
      "tipo": "audio",
      "arquivo": "trilha/tech-claro-125bpm.mp3",
      "descricao": "8,64 s (17,28 s → 25,92 s, a partir do drop) da trilha aprovada (125 bpm); repetir em laço para vídeos longos.",
      "params": [
        "volume?",
        "saida?"
      ],
      "duracao": [
        259,
        259
      ],
      "tags": [
        "trilha",
        "musica"
      ],
      "bpm": 125
    },
    {
      "nome": "paleta",
      "categoria": "paleta",
      "tipo": "dados",
      "arquivo": "cores/paleta.json",
      "descricao": "Cores, sombras, area segura, curvas e medidas do estilo (cores/paleta.png é a amostra visual).",
      "params": [],
      "duracao": null,
      "tags": [
        "cor"
      ]
    }
  ]
}
