# Regras do estilo apple-tipografico (Apple · filme de produto)

Estas regras valem para QUEM MONTA. Não existe vídeo pronto aqui: só peças (`pecas.json`). Cada cena é escrita do zero, peça a peça.

## Regras do kit: cor
Medido no filme de referência (AirPods Pro 3, filmado da tela de um MacBook com celular, então os
valores brutos vêm ~15% mais quentes e escuros; os tokens abaixo são os corrigidos).

| token | hex | uso | medido no filme (bruto) |
|---|---|---|---|
| estúdio (chão) | `#EAE4DA` | fundo de toda cena de produto, sem emenda | `#CBB497` no centro, `#C0AC94` embaixo |
| estúdio luz | `#F3EFE8` | centro do radial de luz, 0% (em 50% x, 44% y) | — |
| estúdio borda | `#DAD2C5` | cantos, 100% (7% mais escuro que o meio) | `#918170` no canto (vinheta da câmera) |
| produto (cetim) | `#EEEBE5` | corpo do produto; o sombreado o leva a ~`#B8B3AA` no lado escuro | — |
| ponteira | `#E2DED6` | silicone, um tom abaixo do corpo | — |
| grafite | `#2A2A2D` | telas de som, sulcos, luz de status | — |
| metal | `#C8C5BF` | anéis, dobradiça (reflete o estúdio) | — |
| sombra | `#3A3026` | sombra de contato, opacidade 0,35–0,55 | — |
| tinta | `#1D1D1F` | todo texto sobre o estúdio | `#3A3836` |
| acento | `#7CE23A` | **só** o brilho do detalhe tocável, 1 vez por vídeo | verde-limão do "Touch control" |
| preto | `#000000` | fim (logo) e abertura | `#1C2027` (preto de tela) |
| logo / rodapé | `#F5F5F7` / `#86868B` | logo no preto / linha legal | — |

- **Cartão radial** (título, uma vez): `radial-gradient(circle at 50% 900px, #F7E7C4 0, #F2DDAE 20%, #9FE3B4 38%, #46BFD9 55%, #2366D6 74%, #173E9C 92%, #000 112%)`, raio final 1500 px. Medido: centro `#C7AE81`, anel `#8AB992`, borda `#1A4A96`/`#22468B`.
- Luz do produto (fixa no mundo, não gira com a câmera): softbox em cima à esquerda (−0,55; 0,75; 0,52), recorte à direita (0,85; 0,27; 0,36), céu branco; ambiente mínimo 0,12.
- Sombra de contato: 50% da sombra suave (luz quase vertical, k = 3,2) + 60% da oclusão do chão; o canvas é transparente, então ela multiplica qualquer Fundo.
- O cliente pode trocar: cor do produto (`cor`), acento (`acento`), cores do radial (`cores`). O estúdio só troca se a marca pedir (`Fundo cor`), e nunca para cor saturada.

## Regras do kit: tipografia
O texto do filme é **pequeno, calmo e escuro**: o herói é o produto, não a letra. Medido no filme:
legenda ≈ 4% da altura do quadro, título ≈ 7%, "All new" ≈ 3%.

- Fonte única: **Inter** (pesos 500–600 aqui), carregada como `"AT Inter"` de `assets/fontes/` (no lugar da SF Pro).
- Cor `#1D1D1F` sobre o estúdio; no radial o título vai a 92% de opacidade e o sobretítulo a 82%.
- **Uma linha curta por plano.** Nada de título de várias linhas, nada de palavra em degradê.

| papel | tamanho (px, 1080×1920) | peso | tracking | máx. caracteres |
|---|---|---|---|---|
| legenda (`LegendaCurta`) | 50 | 600 | −0,012em | 28 |
| título do cartão radial | 92 | 600 | −0,022em | 16 |
| sobretítulo ("Todo novo") | 34 | 500 | −0,005em | 14 |
| marca escrita (sem logo) | 0,62 × altura do logo | 600 | −0,03em | 12 |
| rodapé legal | 19 | 500 | 0 | 90 |

- Entrada: **palavra por palavra**, 4–5 quadros entre palavras, cada uma vem 26 px da direita com desfoque 9 → 0 px em 10 quadros (curva `saida`).
- Saída: a linha inteira borra **na horizontal** (0 → 26 px), anda −70 px e some em 8 quadros (curva `entrada`).
- Caixa de frase, ponto final no fim ("Refeito do zero."). Nunca tudo maiúsculo.
- Toda linha encolhe sozinha (`caber()`) para a largura útil; se encolheu mais de 20%, a frase está longa demais: corte palavras.

## Regras do kit: area-segura
- Texto entre **y = 168** e **y = 1330**, **x = 80** a **1000** (920 px úteis). O produto pode sangrar a tela (no close, sempre sangra).
- O filme original é 16:10; no vertical o produto ocupa **40–60% da altura** no plano geral e sangra no close.

| uso | y (px) |
|---|---|
| título do cartão radial (centro) | 900 |
| sobretítulo | 900 − 0,5 × título − 37 |
| legenda sozinha (plano só de texto) | 950 |
| produto no plano geral (centro) | 760–900 |
| fila de peças | 1060–1140 |
| legenda sob o produto / sob a fila | 1250 |
| legenda ao lado do close (alinhar esquerda, x 500) | 960 |
| logo no fim (centro, altura 150–190) | 860 |
| rodapé legal | 1240 |

- Câmera 3D: lente de 26° vertical. Visível na distância d: altura ≈ 0,46·d, largura ≈ 0,26·d unidades.
  Produto de 1,6 de altura ocupa ~45% da tela em d ≈ 7,7.

## Regras do kit: movimento
Câmera lenta e cara: tudo começa e termina devagar. Nenhum tremor, nenhum soco, nenhum zoom rápido.

Curvas (`base.ts`): `suave` = `cubic-bezier(.45,0,.2,1)` (câmera, peças, tampa) · `saida` = `cubic-bezier(.16,1,.3,1)` (texto e peça que pousa) · `entrada` = `cubic-bezier(.7,0,.84,0)` (texto que sai).

| movimento | quadros | valores (medidos/derivados do filme) |
|---|---|---|
| órbita da câmera 3D | o plano todo (40–55) | 15–20° por plano (≈ 10°/s), elevação cai 3–5° |
| aproximação (push-in) 3D | o plano todo | distância −8% a −20% (ex.: 11,5 → 9,6) |
| giro do produto | o plano todo | 15–20° em Y (`giro [[0,−32],[50,−14]]`) |
| flutuação | contínua | 0,025 unidade, período 3,2 s (quase invisível) |
| tampa abre | 20 | −105° em X na dobradiça |
| peças sobem/saem | 20–26 | 0,7–1,5 unidade, curva `suave` |
| peças se enfileiram | 20 cada, 4 de intervalo | da posição de origem até a fila, todas na mesma altura |
| close extremo | 38 | distância 3,0 → 2,6, órbita 22° → 6°, lente 26° |
| brilho do detalhe | 10 | 0 → 1, depois fica |
| empurrão 2D (texto) | o plano todo | escala 1 → 1,03–1,06 (`Camera`) |
| cartão radial abre | 20 | raio 60 → 1500 px a partir do centro; título entra 8–22 |
| logo no preto | 18 | opacidade 0 → 1, escala 0,94 → 1, desfoque 6 → 0 px |

Transições (`Cena`):

| transição | quadros | como |
|---|---|---|
| `corte` | 0 | troca seca (o filme corta no texto e no logo) |
| `dissolver` | 10 | fusão linear (radial → estúdio com o produto) |
| `borrao` | 8 | chicote: sai −160 px com desfoque horizontal até 60 px; entra de +220 px |
| `escuro` | 12 | nasce do preto (abertura) |

## Regras do kit: ritmo
Medido no filme (11,5 s de filme + 1,5 s de logo): **um plano a cada 1,0–1,6 s**, nunca mais de 2 s
parado no mesmo enquadramento.

| trecho do filme | s | o que acontece |
|---|---|---|
| 0,0–1,3 | 1,3 | preto |
| 1,3–2,9 | 1,6 | cartão radial "All new / AirPods Pro 3" abre, segura, recolhe |
| 3,2–5,0 | 1,8 | o estojo nasce no centro do radial, que vira estúdio; gira, abre, fones sobem |
| 5,0–6,0 | 1,0 | só texto: "Rebuilt from the ground up" palavra a palavra, sai borrando |
| 6,0–8,3 | 2,3 | chicote → par de fones girando → ponteiras saem e se enfileiram + "Fit, finally figured out." |
| 8,5–10,0 | 1,5 | close extremo da haste, "Touch control", brilho verde no sulco |
| 10,0–11,5 | 1,5 | fones caem no estojo, tampa fecha |
| 11,5–13,0 | 1,5 | corte pro preto, logo |

30 fps. Duração de cada batida (`receita.json`):

| batida | s | quadros |
|---|---|---|
| gancho (cartão radial) | 1,1–1,7 | 34–50 |
| virada (produto aparece) | 1,4–2,0 | 42–60 |
| prova (texto só) | 0,9–1,2 | 26–36 |
| prova (peças / função) | 1,5–2,3 | 45–70 |
| detalhe (close) | 1,1–1,7 | 34–50 |
| marca (logo no preto) | 1,1–1,6 | 34–48 |

- Preview: 8 s, 6 planos. Vídeo de 15 s: 9–10 planos. Leitura: a linha precisa de **≥ 18 quadros** inteira na tela.
- Sem narração, o corte segue a trilha (125 bpm = 14,4 quadros por batida) arredondando pro quadro.

## Regras do kit: som
O filme é música + respiros: quase nenhum efeito. O som só marca o que se MEXE no produto.

- Trilha: `assets/trilha/tech-claro-125bpm.mp3` (8,64 s, 125 bpm), volume **0,5**, fade de saída de **20 quadros**.
  Vídeo maior que 8,6 s: gere uma nova no MotionCraft (`music make`, preset `tech-bright`); não faça loop.
- Com narração: trilha a **0,25**, efeitos a 70%.

| som | volume | quando |
|---|---|---|
| `whoosh-entra` | 0,9 | o cartão radial abre (quadro 0) |
| `swoosh` | 1,0 | transição `borrao` (chicote) |
| `clique` | 0,8 | tampa abre / detalhe acende |
| `whoosh-sai` | 0,5 | peças sobem |
| `pop-cartao` | 0,45 | peças pousam na fila (no máx. 2 por fila) |
| `assinatura` | 0,9 | logo no preto |
| `pop-palavra`, `impacto`, `subida` | — | **não use** neste estilo (ficam pra outros kits) |

- No máximo **2 efeitos por segundo**; texto entra em silêncio.
- Som 1–2 quadros antes do visual. O render nivela em **−14 LUFS**, pico −1,5 dBTP.

## Movimento (régua extravagante; liso e calmo é reprovado)
- A câmera nunca para: use `CameraDeriva` (ou a câmera do estilo) com ao menos 4 chaves `{em, z, x, y}` mudando `z` e `x/y`, uma chave a cada cena. Deriva e leve rotação por baixo, sempre.
- Em cada corte, um `CorteImpacto` (clarão + tremida + zoom-pop) casado com o som `impacto` 1 a 2 quadros antes.
- Toda cena tem fundo vivo (`Particulas` + o fundo do estilo), pelo menos 1 herói e 2 apoios em movimento. Cena parada é reprovada.
- Entrada de elemento: 10-18 quadros com overshoot curto; saída: metade da entrada. Stagger entre itens: 2-5 quadros.
- Peças 3D e giros valem: quanto mais profundidade (parallax, perspectiva, rotação), melhor, sem sair da área segura.

## Som (camadas)
- Trilha sempre, volume 0,45, fade de saída 20 quadros.
- SFX em TODO corte e em toda entrada de elemento grande, no mínimo 2 camadas por corte (ex.: `whoosh-sai` + `impacto`, depois `swoosh` no quadro seguinte). Máx. 6 efeitos por segundo. Nunca o mesmo arquivo duas vezes no mesmo quadro.
- Sons deste estilo: assinatura, clique, impacto, pop-cartao, pop-palavra, subida, swoosh, whoosh-entra, whoosh-sai.

## Densidade mínima (o conferir cobra isto)
| medida | mínimo |
|---|---|
| camadas visuais simultâneas por cena | 4 (fundo, partículas, herói, apoio) |
| elementos em movimento por segundo (média da linha do tempo) | 5 |
| chaves de câmera por vídeo | 4 |
| SFX por corte | 1 (alvo 2) |
| peças diferentes usadas no vídeo | 6 |

## Proibido
- Copiar uma cena pronta: cada cena é composta peça a peça, com props novas.
- Cena parada: nenhum quadro em que nada se mexe.
- Elemento com movimento grande sem som.
