/*
 * ПОРЯДОК СЛОЁВ — ОДИН РАЗ НА ВСЁ ПРИЛОЖЕНИЕ (спек §4.2).
 *
 * Этот файл подключается ПЕРВЫМ в обоих контурах и не содержит ничего,
 * кроме объявления порядка. Смысл: страничный CSS перекрывает примитив
 * ПОРЯДКОМ СЛОЯ, а не специфичностью селектора. Без слоёв единственный
 * способ победить `.rf-btn` — написать `.page .rf-btn`, потом
 * `.page .rf-btn.rf-btn--sm`, и через полгода правки вида требуют
 * археологии. Со слоями `@layer pages` побеждает `@layer primitives`
 * всегда, даже одним классом.
 *
 * Объявление обязано быть РАНЬШЕ любых `@layer`-блоков: слой, впервые
 * упомянутый в правиле, встаёт в конец очереди, и порядок стал бы
 * зависеть от того, какой файл загрузился первым.
 *
 * tokens      — палитра, шкалы (assets/css/tokens.css, fonts.css)
 * base        — сброс и типографика документа (assets/css/base.css)
 * primitives  — кнопки, поля, чипы, бейджи (assets/css/ui.css)
 * components  — карточка работы, обсуждение, hero (assets/css/app.css)
 * pages       — специфика экранов (app.css, reader.css, studio.css, editor.css)
 * utilities   — единичные помощники, побеждают всё осознанно
 *
 * ОБЪЯВЛЕНИЕ ПОРЯДКА И ФАКТ РАСХОДЯТСЯ МОЛЧА — за этим следит гейт
 * `apps/shared/ui/css-layers.test.ts`: он держит слоёными целиком
 * `base.css`, `ui.css`, `studio.css` и `editor.css`, ведёт измеренный
 * потолок неслоёных правил для унаследованных файлов (только вниз), ловит
 * опечатку в имени слоя — `@layer primitve { … }` не «не сработает», а
 * встанет В КОНЕЦ очереди и начнёт побеждать `components` и `pages`, — и
 * требует, чтобы каждый CSS-файл `assets/css` и `apps` стоял в одном из его
 * списков. Сознательных исключений два, оба поимённо: `print.css` целиком
 * (РЕШЕНИЕ 1 его докблока) и сброс движения в конце `base.css`.
 */
@layer tokens, base, primitives, components, pages, utilities;
