---
name: kodoceh-web-line-world
description: "codoceh.ru живёт в мире «схема линий» (seed 4a9d5d19); плита как область темы, ярлык вместо кикера, ветка вместо border-left — это ДНК для трёх продуктовых сайтов"
metadata: 
  node_type: memory
  type: project
  originSessionId: b11e39bd-4f6f-47c9-ba7b-680ccf041a5b
  modified: 2026-08-06T10:40:34.268Z
---

Витрина `codoceh.ru` (`kodoceh-web/apps/studio`) перестроена 2026-08-06 в визуальном мире **«Линия без пересадок»** — транспортная схема. Направление назначено жребием `concept-seed.mjs` (seed `4a9d5d19`, кандидат 7 из 7). Контракт направления вшит HTML-комментарием первым узлом `<body>` в `layout.tsx` и переживает прод-сборку (проверяется грепом `seed 4a9d5d19` в отданном HTML).

**Приёмы мира — это ДНК для mexunt / vakhunter / avtero** (решение владельца: «общая ДНК, разные лица» — родство узнаётся, но каркас и анимации у каждого свои):
- `.plate` — **область темы**: переопределяет `--text/--subtext/--line/--panel/--bg/--brand-ink`, поэтому общие компоненты `@cbr/ui` внутри неё перекрашиваются сами, без единого исключения в коде компонентов.
- `header:not(.header-bg)` — пока страница не прокручена, шапка лежит на плите и читается светлой; при скролле Header сам вешает `.header-bg` и переменные возвращаются к корневым. Плита уходит под шапку через `--hdr-h` (65px, на мобильном 73px) и класс `.under-header`.
- `.route-label` — ярлык линии (отрезок 28×2px + моно-подпись). **Плашка-пилюля и кикер над заголовком запрещены**: ярлык допустим только как подпись самой линии, не как надстрочник к h1/h2.
- `.branch-stop` — ответвление продукта: кольцо цвета продукта плюс отходящий отрезок. **Цветной `border-left` у карточки запрещён** — это самый шаблонный способ показать «ветку».
- `.stop` / `.stops-2` / `.stops-3` — станции на общей вертикали; хвост линии в последнем ряду обрезается через `:nth-last-child`.
- `.rail` — рельс страницы с бегунком «вы здесь»; цвета намеренно **не** зависят от темы, иначе он пропадает на плите.
- Анимаций ровно две: `@keyframes drawLine` (линия рисуется один раз) и переход бегунка. Обе гасятся `prefers-reduced-motion`. Framer-motion со страницы убран полностью — поэтому элементов с inline `opacity:0` ноль и страница читается без JS.
- Нумерация `01–06` принадлежит **только** станциям процесса. Вторая нумерация на странице запрещена: у заголовков секций номеров нет.

Вермильон `#C9553F` (`colors.danger`) отдан единственному смыслу — **пересадка на чужом пути**. Использовать его для чего-то ещё нельзя, иначе аргумент размывается.

Проверяемые нормы (держать при любых правках): контраст WCAG AA в обеих темах — 0 нарушений; тап-цели WCAG 2.2 AA 24×24; страница читается без JavaScript; детектор Impeccable по исходникам — 0.

Правда о продукте — `apps/studio/PRODUCT.md`. Ключевое ограничение: **единственное доказательство — пять своих сервисов**; заказных кейсов, отзывов, метрик и юр-реквизитов нет и выдумывать их запрещено. См. [[impeccable_design_skill]], [[design_contract_is_a_checklist]], [[kodoceh_web_dead_tokens_json]].
