{
  "estilo": "vhs-90",
  "nome": "VHS anos 90",
  "versao": 1,
  "fps": 30,
  "pecas": [
    {
      "nome": "BarrasRastreio",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/BarrasRastreio.tsx",
      "descricao": "a falha de rastreio da fita. Em cada quadro de `em` (relativo à cena), uma faixa de 170 px sobe de y 2000 a −200 em 12 quadros (`e5`): ruído de linha (turbulência 0,001 × 0,9), dois fios…",
      "params": [
        "em",
        "duracao?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "barras",
        "rastreio"
      ]
    },
    {
      "nome": "CapaVHS",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/CapaVHS.tsx",
      "descricao": "capa de locadora (640 × 880) em 3D: faixa azul no topo (\"VIDEOCLUBE\"), foto lavada no meio (saturate 0,7, sépia 0,25, desfoque 0,6 px), faixa vermelha embaixo com o título Bebas e um selo…",
      "params": [
        "src",
        "titulo",
        "topo?",
        "selo?",
        "y?",
        "inicio?",
        "foco?",
        "fim?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "capa",
        "vhs"
      ]
    },
    {
      "nome": "CarimboData",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/CarimboData.tsx",
      "descricao": "a data de câmera, laranja (VT323, 60 px), alinhada à direita em y = 1280 e digitada a 0,6 caractere por quadro, com o texto em duas linhas (data e \"PLAY ▶\").",
      "params": [
        "linhas",
        "inicio?",
        "y?",
        "velocidade?",
        "fim?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "carimbo",
        "data"
      ]
    },
    {
      "nome": "MenuOSD",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/MenuOSD.tsx",
      "descricao": "menu de seleção (caixa preta a 72% com borda de 6 px branco quente): título, e itens em VT323 84 px.",
      "params": [
        "titulo?",
        "itens",
        "inicio?",
        "passo?",
        "y?",
        "fim?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "menu",
        "osd"
      ]
    },
    {
      "nome": "TelaAzul",
      "categoria": "formas",
      "tipo": "componente",
      "arquivo": "formas/TelaAzul.tsx",
      "descricao": "a tela azul de AV (`#0A1F8F`). Uma varredura azul desce de cima em 8 quadros; o texto (VT323, 110 px, branco quente com aberração) é digitado a 0,8 caractere por quadro com cursor em bloco…",
      "params": [
        "linhas",
        "rotulo?",
        "inicio?",
        "y?",
        "velocidade?",
        "tamanho?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "forma",
        "tela",
        "azul"
      ]
    },
    {
      "nome": "Fundo",
      "categoria": "texturas",
      "tipo": "componente",
      "arquivo": "texturas/Fundo.tsx",
      "descricao": "a fita escura (quase preto com um brilho azul fraco no alto). `Sobre` põe por cima de tudo (fora da câmera): ruído de grão com semente nova a cada quadro, linhas de varredura de 4 px,…",
      "params": [],
      "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": "janela de tempo de um plano. Entra com movimento (nunca corte seco) e sai deslizando, sobrepondo 8 quadros com a próxima. Dentro dela, useCurrentFrame() começa em 0.",
      "params": [
        "de",
        "ate",
        "entrada?",
        "ultima?",
        "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": "AssinaturaMarca",
      "categoria": "tipografia",
      "tipo": "componente",
      "arquivo": "tipografia/AssinaturaMarca.tsx",
      "descricao": "a última cena. Tela azul de AV (varredura de cima em 8 quadros), a fita-logo, o nome em Bebas (até 300 px, branco quente com aberração), a tagline em VT323, \"▶ PLAY\" piscando e o endereço…",
      "params": [
        "nome",
        "icone",
        "detalhe?",
        "endereco?",
        "inicio?",
        "y?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "tipografia",
        "assinatura",
        "marca"
      ]
    },
    {
      "nome": "TituloFita",
      "categoria": "tipografia",
      "tipo": "componente",
      "arquivo": "tipografia/TituloFita.tsx",
      "descricao": "título Bebas Neue (até 330 px, branco quente) com aberração de cor (cópias vermelha e ciano a 6 ± 3 px), tremor horizontal em 1 de cada 7 quadros e corte de fatia (a metade de cima desloca…",
      "params": [
        "linhas",
        "inicio?",
        "intervalo?",
        "y?",
        "tamanho?",
        "fim?"
      ],
      "duracao": [
        30,
        90
      ],
      "tags": [
        "tipografia",
        "titulo",
        "fita"
      ]
    },
    {
      "nome": "Camera",
      "categoria": "camera",
      "tipo": "componente",
      "arquivo": "camera/Camera.tsx",
      "descricao": "deriva constante por baixo de tudo (zoom, deslize e giro) e um soco em cada batida.",
      "params": [
        "batidas?",
        "forca?",
        "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": [
        66,
        66
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.9
    },
    {
      "nome": "clique",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/clique.mp3",
      "descricao": "clique.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        15,
        15
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.8
    },
    {
      "nome": "impacto",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/impacto.mp3",
      "descricao": "impacto grave.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        42,
        42
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.9
    },
    {
      "nome": "pop-cartao",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/pop-cartao.mp3",
      "descricao": "pop de objeto que pousa.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        21,
        21
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.9
    },
    {
      "nome": "pop-palavra",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/pop-palavra.mp3",
      "descricao": "pop curto.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        18,
        18
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 1
    },
    {
      "nome": "subida",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/subida.mp3",
      "descricao": "riser de 1,3 s.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        45,
        45
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.7
    },
    {
      "nome": "swoosh",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/swoosh.mp3",
      "descricao": "swoosh lateral.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        30,
        30
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.8
    },
    {
      "nome": "whoosh-entra",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/whoosh-entra.mp3",
      "descricao": "whoosh de entrada.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        30,
        30
      ],
      "tags": [
        "sfx"
      ],
      "volumeSugerido": 0.7
    },
    {
      "nome": "whoosh-sai",
      "categoria": "sons",
      "tipo": "audio",
      "arquivo": "sons/whoosh-sai.mp3",
      "descricao": "whoosh de saída.",
      "params": [
        "em",
        "volume?"
      ],
      "duracao": [
        30,
        30
      ],
      "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/fita-88bpm.mp3",
      "descricao": "9 s de trilha, 88 bpm (88 bpm); repetir em laço para vídeos longos.",
      "params": [
        "volume?",
        "saida?"
      ],
      "duracao": [
        270,
        270
      ],
      "tags": [
        "trilha",
        "musica"
      ],
      "bpm": 88
    },
    {
      "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"
      ]
    }
  ]
}
