# HyperFrames: рабочие паттерны 2.1

Подробная актуальная справка находится в `HYPERFRAMES_2026.md`.

## Единая шкала

HyperFrames получает `timeline.json`. Нельзя вручную написать отдельные секунды для субтитров и б-роллов. Сцены сначала ссылаются на `word_id`, затем `resolve_edit_plan.py` вычисляет `resolved_start`/`resolved_end`.

## Базовый слой

Сначала `stitch_media.py` создаёт непрерывную базу из нескольких исходников, одновременно обрезая видео и родной звук. HyperFrames не исправляет неверную склейку, он только детерминированно воспроизводит её.

## Детерминированность

- время только из `hf-seek`;
- GSAP-таймлайн `paused` и зарегистрирован;
- Lottie/Three/Anime/WAAPI через официальные адаптеры;
- нет `Math.random`, системных часов и неконтролируемого `requestAnimationFrame`;
- корневая длительность равна `timeline.expected_duration`;
- таймлайн анимации принудительно продлён до финала.

## Медиа

- говорящая голова/база: звук включён;
- б-роллы: `data-mute`;
- кадрирование: `object-fit:cover`;
- короткие фейды не применяются к первому слову титра;
- движение изображений 2–6%, не вибрация.

## Проверка

```bash
hyperframes doctor
hyperframes lint comp.html --json
hyperframes inspect comp.html --json
hyperframes preview comp.html
```

В предпросмотре:

- `Home` — первый кадр;
- стрелки — шаг по кадру;
- `End` — последний кадр.

Рендер полного файла разрешён после проверки начала, стыков и финала.
