# Original Alpine 1.0 — передача в разработку

## Задача и статус

Владелец попросил второй полный борд в стиле самого первого приложения, сохранив подробность подхода нынешней пиксельной версии. Направление создано отдельно и пока предложено для просмотра; оно не объявляется окончательно утверждённым. Существующие исходники игры, Alpine Pixel master и опубликованный борд не менялись.

Открыть [общий борд](../index.html), затем [сравнение трёх версий](../versions.html). Самый ранний native HTML содержит только 10 гор и не использовался как полный продуктовый каталог. Основной исторический референс — сохранённый сайт `pixel-design-kit-20260912/source-evidence/live.html`: в нём уже 13 гор и 30 вещей. Точная копия лежит в [reference/original-game.html](../reference/original-game.html). Для просмотра есть [копия с запрещённой сетью](../reference/original-preview.html); исторический оригинал содержит реальные API рейтинга, поэтому его нельзя использовать как рабочую демо-среду с отправкой данных.

Современная база сценариев — `publish-alpinist-dscff-20260924-mountains-1-0-0`. Её токены, ID, цены, режимы и лабораторные переходы сохранены; визуальный слой заменён и несколько дефектов самого прототипа исправлены. Точная проверка описана в [QA](QA.md).

## Порядок подключения

1. `asset-manifest.js` — унаследованные идентификаторы. Пути в исходном файле переопределяются новым рендером до загрузки изображений; старые PNG не нужны.
2. `tokens.js` — данные 13 гор, лагеря, 30 предметов, цены, условия, физические константы.
3. `original-tokens.js` — пропорциональный шрифт, палитра и увеличенная зона касания. Экономика и физика не переопределяются.
4. `draw-ui.js`, `draw-hero.js`, `draw-objects.js` — совместимая основа API.
5. `original-art.js` — авторская гладкая отрисовка героя, одежды, объектов, платформ, верёвки и значков.
6. `original-mountains.js` — 13 самостоятельных силуэтов, день/ночь, небо, природные детали и параллакс.
7. `original-ui.js` — скруглённые панели, кнопки и переключатели.
8. `screens.js` — 28 экранов, состояний и демонстраций; общий UI contract.
9. `app.js` — изолированная лабораторная модель, управление, демонстрационный кошелёк, рейтинг, экспорт. Не переносить её вместо production-логики.

Основные API:

```js
AlpinistDesign.hero.draw(ctx, actorState, assets, options);
AlpinistDesign.objects.background(ctx, assets, state, options);
AlpinistDesign.objects.platform(ctx, assets, platformState);
AlpinistDesign.objects.rope(ctx, assets, tier, x, top, length);
AlpinistDesign.originalArt.drawAsset(ctx, id, x, y, width, height, options);
AlpinistDesign.originalMountains.render(ctx, {peak, theme, cameraY, heroX, dim});
```

`theme: 'night'` переключает художественное освещение; остальные значения дают дневную палитру. Горные фоны не являются точной реконструкцией маршрутов или текущего состояния ледников.

## Стиль: что сохранять

Гладкий Canvas 2D без пиксельной сетки. Компактный герой сбоку, красная техническая куртка, жёлтая каска, тёмно-синие ноги, тёплый рюкзак. Округлые стыки, 2–3 цветовые плоскости на материале, небольшой блик, швы, молнии, ремни и крепления. Деталь должна оставаться читаемой при 52 px высоты героя. Не превращать его в реалистичного взрослого из дополнительной иллюстрации или в огромную детскую голову.

Основные цвета: `#11293b` тёмный синий; `#f8f6ed` светлый; `#ffd75e` действие и выбор; `#df594d` красная куртка; `#96dbe6` лёд; `#527c78` хвоя. Интерфейс: system-ui, прозрачные синие панели, скругления примерно 14 логических px, тонкий светлый контур. Основное действие жёлтое с тёмным текстом; состояния различимы также текстом и формой. Emoji не добавлять.

Все игровые элементы созданы редактируемой Canvas-геометрией по фактическому code-native оригиналу. Это самостоятельные новые рисунки, а не обработка старых PNG. Дополнительно встроенным генератором создана [иллюстрация атмосферы](../reference/direction-cover.png); её [prompt и происхождение](../reference/GENERATION.md) сохранены. Она не является кадром игры или эталоном пропорций персонажа. Номер модели генератором не подтверждён.

## Герой и экипировка

- Логический экран: 420×840, экспорт: 840×1680. Положение героя задаётся `x` и `feetY`; базовая высота 52 px.
- Состояние содержит направление, скорость, фазу полёта, контакт и экипировку; геометрия рисует движение непрерывно. PNG `hero-smooth`, `hero-jump` и `hero-16` в новом комплекте — **референсы отдельной фигуры, не спрайт-листы**. Их нельзя разрезать по прежним sheet/frameCount.
- Слои: задняя часть рюкзака/баллон, дальние конечности, тело, ближние конечности, голова/каска и мелкие детали. Одежда меняет соответствующую геометрию, а не добавляется поверх старых конечностей.
- 30 предметов: 10 касок, 7 костюмов, 6 штанов, 7 рюкзаков. ID/цены/условия находятся в `tokens.js`; не переименовывать без миграции сохранений.
- `pink`, `spider`, `ev` — цельные комбинезоны: ноги костюма заменяют выбранные брюки. Это не должно автоматически включать кислород.
- Баллон появляется от высотного слоя/усиления и заменяет выбранный рюкзак. `pack:none` действительно не рисует рюкзак.
- `spider` сохраняет старый ID и цену, но использует самостоятельный альпинистский рисунок; чужая супергеройская маска не переносится.
- HC награды сохраняют условия гор 5/7/9/10; стоимость, unlock и состояние owned должны браться из настоящей игры. Reference-демо не доказывает соответствие всей production-семантики награды `ev`.

## Горы, данные и статистика

13 стабильных ID и игровые высоты сохранены. Для каждой горы свой профиль; ночной вариант использует ту же геометрию. Справочная морфология и прямые ссылки находятся в `D.originalMountains.catalog`, [WEST_SOURCES](../reference/WEST_SOURCES.md) и [EAST_SOURCES](../reference/EAST_SOURCES.md). Это исследование от 24 сентября; оно повторно целиком не собиралось.

Игровые цели, например Монблан 4808 и Эверест 8848, не подменены новыми геодезическими значениями. Имя горы, высота, лагеря и доля пути — живой интерфейс, не запечённые подписи на фоне. Прогресс в лаборатории демонстрационный и не принадлежит реальному игроку.

## Движение и доступность

Сохранены исходные физические константы reference-модели. Мягкий показ: 0,78×, сглаживание камеры 150 мс, наклон 140 мс, контакт 180 мс. При интеграции переносить презентационные параметры отдельно от скорости/гравитации production. Верёвка — геометрический шнур с креплением и плетением; иконку бухты не растягивать.

Reduced Motion запускает демонстрацию на паузе. В живой примерке есть отдельная остановка. У игровых кнопок прозрачные семантические DOM-зоны с доступными именами; минимальная зона увеличена до 50×50 логических px, тесные ряды раздвинуты. В native требуется проверить минимум 44 pt на настоящем размере устройства: уменьшение всего canvas внутри борда не заменяет этот тест. Ввод имени поддерживает Tab к отправке и Enter.

## Экраны и функции

19 продуктовых экранов/состояний: язык, меню, режим, выбор горы, восхождение, пауза, срыв/лагерь, утепление, вершина, конец экспедиции, Эверест, рейтинг, магазин, 7 вершин, имя, подтверждение покупки, финал 7 вершин, настройки, помощь. Дополнительно 3 группы компонентов и 6 демонстраций движения — всего 28.

Варианты: RU/EN; день/ночь; 3–5 жизней; рейтинг global/loading/empty/offline/own; покупки owned/equipped/locked/insufficient/reward. Лабораторный интерфейс управления остаётся русским; игровая UI переключается.

## PNG, источники и обновления

[assets-original-v1](../assets-original-v1/manifest.json) содержит 134 PNG: 108 персонажных/предметных/интерфейсных материалов и 26 фонов. Оригинал PNG с прозрачным фоном сохраняет alpha; фон намеренно непрозрачный. Экспорт выполнен из того же собственного Canvas-кода через `@napi-rs/canvas`; субпиксельное сглаживание между этой библиотекой и браузером может немного отличаться. Runtime использует геометрию напрямую.

Повторный экспорт требует Node и `@napi-rs/canvas`, запуск `node export-art.cjs /новая/папка`. Скрипт отказывается писать в существующую папку. Для просмотра/разработки борда эта зависимость не нужна.

Следующее обновление создавать как отдельную версию папки. Сначала один предмет на 4 формах и в движении, затем остальные; сохранить ID, стопный якорь, масштаб, палитру и видимые старые версии. Проверять крупную примерку и реальный размер. Новый стиль считается выбранным только после решения владельца.

## Порядок реального внедрения

1. Владелец выбирает направление по борду. Уточнить точный текст App Review отказа.
2. В актуальном приложении добавить отдельный renderer seam; сначала меню → одна гора → пауза → итог. Не заменять сохранения, сервер, кошелёк и физику лабораторной моделью.
3. Перенести экипировку, проверить исходные unlock/owned и все четыре thermal формы; затем остальные горы и состояния.
4. Проверить на iPhone: safe areas, касания, частота кадров, длительный забег, фон/возврат, сохранение и реальный рейтинг. Браузерный борд это не подтверждает.
5. Подготовить реальные screenshots и App Review notes о существующих отличиях продукта. [Apple 4.3](https://developer.apple.com/app-store/review/guidelines/#spam) оценивает самостоятельность приложения; один новый внешний вид не гарантирует одобрение. Отправка в App Store в этой задаче не выполнялась.

## Готовый текст для Claude

«Открой START_HERE.md и docs/HANDOFF.md, запусти index.html, посмотри versions.html. Это отдельное направление Original Alpine 1.0 для Альпинист 8848. Переноси выбранный владельцем визуальный слой из original-art.js / original-mountains.js / original-ui.js в актуальную игру через отдельный renderer; старый пиксельный вариант сохрани. Не заменяй игру app.js из лаборатории. Сохрани ID, цены, unlock, сохранения, реальные API и физику. Сначала реализуй один полный путь на одной горе и проверь на устройстве, затем расширяй. PNG hero-* являются референсами, а движение создаётся кодом. Не обещай одобрение Apple без реального review.»
