Regras do motor (já presentes em templates/scroll-cinematic.js)
- Pré-carregue todos os frames; pinte o frame 0 no primeiro carregamento; redesenhe apenas quando o índice do frame mudar.
- Palco fixo: seção externa
height: 420–600vh, internaposition:sticky; top:0; height:100vh.
Progresso = clamp(-rect.top / (rect.height - innerH), 0, 1). Aplique limitação de taxa no loop rAF.
- Desenho com ajuste de cobertura + HiDPI (
devicePixelRatio, limite 2). Dirija as atualizações pelo loop rAF do Lenis
(robusto a qualquer fonte de rolagem). O texto sobreposto desvanece sobre janelas de progresso [in,out] por linha.
- Multi-seção: array
SCRUB_SECTIONS; o motor ignora seções cujo elemento não existe.
Problemas conhecidos
- Mais frames ou frames maiores = carregamento lento → mantenha 1600px / q88 / ~180 frames.
- Apenas clipes de movimento contínuo (sem cortes secos — feio ao rolar para trás).
- A ferramenta de captura de tela sem interface gráfica deixa seções de canvas fixo em branco ao rolar; verifique com amostragem de pixels e visualize ao vivo em um navegador real.
- Pré-visualizações com
python http.serverencerram quando ociosas — o lançador.commandé a demonstração durável.