diff --git a/docs/plan-redesign.md b/docs/plan-redesign.md
index 974ea5f..9c77905 100644
--- a/docs/plan-redesign.md
+++ b/docs/plan-redesign.md
@@ -290,19 +290,19 @@ src/routes/preview/tools/[id]/+page.svelte
### Шаг 0. Изоляция layout (без дизайна)
-- [ ] **[C1]** Сделать корневой `routes/+layout.svelte` нейтральным: убрать
+- [x] **[C1]** Сделать корневой `routes/+layout.svelte` нейтральным: убрать
`import '../app.css'`, оставить только init темы/locale и
`
{children}
`.
-- [ ] **[C2]** Создать `routes/(old)/+layout.svelte` (импорт `app.css` + старая
+- [x] **[C2]** Создать `routes/(old)/+layout.svelte` (импорт `app.css` + старая
шапка/подвал) и перенести старые страницы (`+page`, `demo`, `list-tools`,
`tools/[id]`) в `(old)/`. URL не меняются. Проверка: старый сайт идентичен.
_(файлы — move, объём строк минимален)_
### Шаг 1. Фундамент нового дизайна
-- [ ] **[C3]** Добавить `@fontsource/ibm-plex-sans` + `@fontsource/ibm-plex-mono`,
+- [ ] **[C3]** Создать `src/lib/styles/design2.css` (токены `:root` + `[data-theme='dark']` по §2) и подключить `@fontsource/ibm-plex-sans` + `@fontsource/ibm-plex-mono` (self-host, offline-first).
подключить шрифты в `design2.css` (self-host, offline-first).
-- [ ] **[C4]** Создать `src/lib/styles/design2.css` — **только токены** `:root` +
+- [x] **[C4]** _(слит в C3: шрифты нельзя подключить до создания `design2.css`)_
`[data-theme='dark']` (таблица §2). Без утилитарных классов.
- [ ] **[C5]** Примитивы batch 1: `AppShell`, `BlueprintGrid`, `CheckerCanvas`,
`MonoLabel`, `StatusDot`/`StatusLine`.
@@ -357,3 +357,19 @@ src/routes/preview/tools/[id]/+page.svelte
> Если какой-то коммит тянет за собой > 500 строк (например, C6/C7),
> разбивать на под-коммиты по 2–4 компонента. Тесты/билд прогонять после
> каждого коммита, чтобы регрессия локализовалась одним шагом назад.
+
+> **Атомарность и точки «поломки» между коммитами.**
+>
+> - C1+C2 уже сделаны вместе (связаны: нейтральный root без `(old)`-layout
+> ломает старый сайт). Аналогично связанных пар больше нет.
+> - C3 и C4 слиты: шрифты подключаются внутри `design2.css`, поэтому файл
+> должен существовать в том же коммите.
+> - Коммиты **C3→C16 не трогают старый сайт** `(old)/` — они только
+> добавляют новые файлы/маршруты, сломать старый сайт на них нельзя.
+> - **C17 — единственный атомарный переключатель**: перенос `preview/*` на
+> реальные пути + удаление `(old)/` + смена root-layout должны быть в
+> ОДНОМ коммите (иначе конфликт маршрутов или пропажа страниц). Не дробить.
+> - **C19 должен идти строго после C17** (старый `app.css`/`ui/` удаляем
+> только когда old-сайт уже выключен).
+> - Очерёдность зависимостей: `design2.css` (C3) и kit-компоненты (C5–C7)
+> должны существовать до страниц, которые их импортируют (C8–C14).
diff --git a/web/src/routes/(old)/+layout.svelte b/web/src/routes/(old)/+layout.svelte
new file mode 100644
index 0000000..c2e0761
--- /dev/null
+++ b/web/src/routes/(old)/+layout.svelte
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+