/* ═══ POKAMOLODOY — СЛОЙ ТЕМЫ поверх облика zaboy ═══════════════════════
   «Тройка». Магазин — место, где уходят с тройкой: боевой шлем третьего
   уровня и деловой стиль его аватара — белая рубашка, галстук, цепь с «$».
   В покое — графитовая ночь его стрим-оформления: контурный вордмарк во
   весь экран, фиолетовые и розовые штрихи, пунктир, крестики. В момент
   успеха — заказ выдан, новая ступень — вспыхивает золото цепи.

   Язык темы — его баннер, и у каждого знака своя работа:
   • ШТРИХОВАННЫЙ КРУГ — диагональные полосы в круге, главный рисунок его
     баннера: метка у заголовков экранов, круг за товаром, который взяли,
     срезанный круг в углу каждой плитки игры, круг за значком ступени;
   • ПОЛОСА ШТРИХОВ — значит «твоё»: под выбранной вкладкой, по кромке
     корзины, у своей ступени, у выбранного региона, у карточки стримера;
   • ПУНКТИР — то, что надо запомнить: сумма к оплате, плита с кодом,
     карточка уровня прошиты пунктиром; им же разделены строки. Четыре тире
     по нарастающей (угол его баннера) — подпись у суммы, у карточки
     стримера, на заставке и полосой хода заказа;
   • КРЕСТИКИ × — только декор углов и салют. У кнопок и рядом с ними их
     нет: крестик у кнопки читался бы «закрыть»;
   • КОНТУРНЫЙ ВОРДМАРК — неподвижный фон под всей витриной, как у него за
     спиной на баннере.

   Цвета. Фиолетовый — действие: кнопки, выбранное, значки. Розовый — блик и
   второй акцент: плашки, метки, штрихи. Золото цепи — ТОЛЬКО момент успеха
   и верхняя ступень. «Получилось» — мята, «ошибка» — янтарь: ни то ни другое
   не фиолетовый и не розовый, и ошибка всегда подана иначе, чем действие, —
   пунктирной кромкой и значком ×, а не лаком (theme/contrast.py).
   Фиолетовый — в двух тонах, и иначе нельзя: --lamp светлый, им пишут и
   рисуют значки на ночи; заливка под белыми буквами — лак --metal и
   --lamp-mid, темнее.

   Правила файла:
   • Всё заперто на корни витрины — .app, .регионы, .вопрос, .накрыльцо,
     #грузим, .proboy (салют), .пасхалка и html[data-телефон]. Этот файл
     сервер подключает и к пульту — голый селектор перекрасил бы чужой экран.
   • Цвет — только токены палитры и смеси из них. Чёрный и белый — для
     теней и бликов, как в шаблоне. В масках-рисунках «black» — это не цвет,
     а «видно»: цвет даёт слой токенами.
   • Свои переменные — с приставкой --pm-, свои кадры — с приставкой pm-.
   • В кадрах и переходах — только transform / opacity. Бесконечное движение
     живёт ТОЛЬКО внутри экрана: скрытый экран — display:none. Фон, штрихи,
     вордмарк и пунктир неподвижны.
   • Слов тема не добавляет: ни одной надписи в content. Декор не ложится
     под цены и надписи кнопок. */

/* ── 0. ПРОИЗВОДНЫЕ ТОНА, ШТРИХИ, ПУНКТИР, КРЕСТИК ─────────────────────────
   Не новые цвета, а смеси палитры: магазин перекрашивается из brand.json
   целиком, и здесь нет ни одного цвета числом. */
:root{
  --pm-рамка:color-mix(in oklab, var(--sand) 13%, transparent);
  --pm-рамка-ярко:color-mix(in oklab, var(--sand) 24%, transparent);
  --pm-кромка:color-mix(in oklab, var(--cream) 11%, transparent);
  /* Стекло ночи: почти непрозрачное, верх светлее — свет падает сверху. */
  --pm-стекло:linear-gradient(180deg,
    color-mix(in oklab, var(--stone-2) 92%, transparent) 0%,
    color-mix(in oklab, var(--stone) 94%, transparent) 55%,
    color-mix(in oklab, var(--stone-deep) 96%, transparent) 100%);
  --pm-фиолет:color-mix(in oklab, var(--lamp) 60%, transparent);
  --pm-фиолет-тихо:color-mix(in oklab, var(--lamp) 28%, transparent);
  --pm-выбрано:color-mix(in oklab, var(--lamp) 16%, var(--rock));
  /* Пунктир-разделитель и строчка по кромке «запомнить». */
  --pm-пунктир:color-mix(in oklab, var(--lamp) 36%, transparent);
  /* Кромка выбранного: фиолетовый контур, розовый отсвет наружу. */
  --pm-накал:inset 0 0 0 1px color-mix(in oklab, var(--lamp) 80%, var(--lamp-hi)),
    0 0 0 1px color-mix(in oklab, var(--lamp) 22%, transparent),
    0 0 22px -6px color-mix(in oklab, var(--lamp-mid) 85%, transparent),
    0 12px 26px -14px var(--lamp-mid);
  /* Лак кнопки: светлый кант по верхней грани, тень снизу, вокруг —
     фиолетовое свечение с розовым краем. */
  --pm-лак:inset 0 1px 0 color-mix(in oklab, var(--lamp-top) 55%, transparent),
    inset 0 -1px 0 rgba(0,0,0,.28),
    0 0 0 1px color-mix(in oklab, var(--lamp-mid) 80%, transparent),
    0 10px 22px -12px var(--lamp-mid),
    0 0 24px -12px color-mix(in oklab, var(--lamp-hi) 70%, transparent);
  /* КНОПКА и СВЕДЕНИЯ различаются с одного взгляда: кнопка — объёмная
     (светлый кант сверху, тень снизу, шеврон), сведения — плоские. */
  --pm-объём:inset 0 1px 0 color-mix(in oklab, var(--cream) 14%, transparent),
    inset 0 -2px 0 rgba(0,0,0,.35), 0 8px 16px -10px rgba(0,0,0,.85);
  /* ШТРИХИ — диагональ его кругов: полосы поднимаются вправо на 28°.
     Шаг мелкий: на телефонных размерах крупные полосы рябят. */
  --pm-штрих-ф:repeating-linear-gradient(152deg, var(--lamp-mid) 0 2px, transparent 2px 5px);
  --pm-штрих-р:repeating-linear-gradient(152deg, var(--lamp-hi) 0 1.6px, transparent 1.6px 4.4px);
  --pm-штрих-б:repeating-linear-gradient(152deg, var(--cream) 0 1.6px, transparent 1.6px 4.8px);
  --pm-штрих-з:repeating-linear-gradient(152deg, var(--zhar) 0 2px, transparent 2px 5px);
  /* ЧЕТЫРЕ ТИРЕ по нарастающей — угол его баннера: фиолетовая четвёрка
     (от глубокого к белому) и розовая (от белого к глубокому). 58 × 4. */
  --pm-четыре-ф:linear-gradient(90deg, var(--lamp-lo) 0 10px, transparent 10px 16px,
    var(--lamp-mid) 16px 26px, transparent 26px 32px, var(--lamp) 32px 42px,
    transparent 42px 48px, var(--cream) 48px 58px);
  --pm-четыре-р:linear-gradient(90deg, var(--cream) 0 10px, transparent 10px 16px,
    color-mix(in oklab, var(--lamp-hi) 45%, var(--cream)) 16px 26px, transparent 26px 32px,
    var(--lamp-hi) 32px 42px, transparent 42px 48px, var(--zhar-lo) 48px 58px);
  /* КРЕСТИК его баннера: две толстые полосы с прямыми концами. Маской —
     цвет даёт место. Двойной — большой и малый рядом, как в его углу. */
  --pm-крест:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 3L13 13M13 3L3 13' stroke='black' stroke-width='3.2' stroke-linecap='square' fill='none'/%3E%3C/svg%3E");
  --pm-кресты:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 22'%3E%3Cpath d='M22 6L34 18M34 6L22 18' stroke='black' stroke-width='3.4' stroke-linecap='square' fill='none'/%3E%3Cpath d='M3 12L9 18M9 12L3 18' stroke='black' stroke-width='2.2' stroke-linecap='square' fill='none'/%3E%3C/svg%3E");
}

/* >>> МОТИВЫ — пишет design/pokamolodoy/theme/motif.py, руками не править */
/* вордмарк: художник; шлем: художник; ступени: художник */
:root{
  --pm-вордмарк:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 900'%3E%3Cdefs%3E%3Cg id='w' transform='scale(4.6296) translate(0.450 0.800)'%3E%3Cpath vector-effect='non-scaling-stroke' fill-rule='evenodd' d='M0 0L7.8 0A6.6 6.3 0 0 1 7.8 12.6L4.5 12.6L4.5 20L0 20ZM4.5 3.9L7.8 3.9A1.8 2.4 0 0 1 7.8 8.7L4.5 8.7ZM24.4-.35A9.3 10.35 0 0 1 24.4 20.35A9.3 10.35 0 0 1 24.4-.35ZM24.4 3.75A4.5 6.25 0 0 0 24.4 16.25A4.5 6.25 0 0 0 24.4 3.75ZM35.1 0L39.6 0L39.6 8.2L45.4 0L50.7 0L45.49 7.36L50.8 20L45.7 20L42.29 11.89L39.6 15.69L39.6 20L35.1 20ZM59.3 0L63.5 0L70.8 20L65.6 20L64.4 16.7L58.4 16.7L57.2 20L52 20ZM61.4 8.49L63.05 13L59.75 13Z'/%3E%3Cpath vector-effect='non-scaling-stroke' fill-rule='evenodd' d='M72.1 0L77.8 0L82.4 11.4L87 0L92.7 0L92.7 20L88.2 20L88.2 9.59L84 20L80.8 20L76.6 9.59L76.6 20L72.1 20ZM103.4-.35A9.3 10.35 0 0 1 103.4 20.35A9.3 10.35 0 0 1 103.4-.35ZM103.4 3.75A4.5 6.25 0 0 0 103.4 16.25A4.5 6.25 0 0 0 103.4 3.75ZM114.1 0L118.6 0L118.6 16.1L126.1 16.1L126.1 20L114.1 20ZM135-.35A9.3 10.35 0 0 1 135 20.35A9.3 10.35 0 0 1 135-.35ZM135 3.75A4.5 6.25 0 0 0 135 16.25A4.5 6.25 0 0 0 135 3.75ZM145.7 0L152.5 0A10 10 0 0 1 152.5 20L145.7 20ZM150.2 3.9L152.5 3.9A5.2 6.1 0 0 1 152.5 16.1L150.2 16.1ZM172.8-.35A9.3 10.35 0 0 1 172.8 20.35A9.3 10.35 0 0 1 172.8-.35ZM172.8 3.75A4.5 6.25 0 0 0 172.8 16.25A4.5 6.25 0 0 0 172.8 3.75ZM181.1 0L186.8 0L189.8 5.05L192.8 0L198.5 0L192.2 10.6L192.2 20L187.4 20L187.4 10.6Z'/%3E%3C/g%3E%3C/defs%3E%3Cg transform='rotate(-18 210 450) translate(-160 0)' fill='none' stroke='black' stroke-width='1.3' stroke-linejoin='round' vector-effect='non-scaling-stroke'%3E%3Cuse href='%23w' transform='translate(-480 -40)'/%3E%3Cuse href='%23w' transform='translate(503 -40)'/%3E%3Cuse href='%23w' transform='translate(-166 110)'/%3E%3Cuse href='%23w' transform='translate(817 110)'/%3E%3Cuse href='%23w' transform='translate(-655 260)'/%3E%3Cuse href='%23w' transform='translate(328 260)'/%3E%3Cuse href='%23w' transform='translate(-305 410)'/%3E%3Cuse href='%23w' transform='translate(678 410)'/%3E%3Cuse href='%23w' transform='translate(-46 560)'/%3E%3Cuse href='%23w' transform='translate(937 560)'/%3E%3Cuse href='%23w' transform='translate(-554 710)'/%3E%3Cuse href='%23w' transform='translate(429 710)'/%3E%3Cuse href='%23w' transform='translate(-231 860)'/%3E%3Cuse href='%23w' transform='translate(752 860)'/%3E%3C/g%3E%3C/svg%3E");
  --pm-шлем:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M2.92 12.61L3.16 11.44L3.53 10.3L4.02 9.19L4.63 8.14L5.34 7.14L6.17 6.21L7.08 5.37L8.09 4.61L9.17 3.94L10.32 3.37L11.52 2.92L12.77 2.57L14.05 2.33L15.35 2.21L16.65 2.21L17.95 2.33L19.23 2.57L20.48 2.92L21.68 3.37L22.83 3.94L23.91 4.61L24.92 5.37L25.83 6.21L26.66 7.14L27.37 8.14L27.98 9.19L28.47 10.3L28.84 11.44L29.08 12.61L29.99 12.61L30.26 13.3L30.26 19.6L29.99 20.28L28.41 20.28L27.09 26.59L26.99 27.37L26.7 28.09L26.24 28.72L25.64 29.2L24.94 29.5L24.18 29.6L22.14 29.91L20.09 30.18L18.05 30.36L16 30.42L13.95 30.36L11.91 30.18L9.86 29.91L7.82 29.6L7.06 29.5L6.36 29.2L5.76 28.72L5.3 28.09L5.01 27.37L4.91 26.59L3.59 20.28L2.01 20.28L1.74 19.6L1.74 13.3L2.01 12.61ZM8.52 14.67L7.95 14.78L7.46 15.11L7.14 15.59L7.02 16.16L7.02 16.73L7.14 17.31L7.46 17.79L7.95 18.12L8.52 18.23L23.48 18.23L24.05 18.12L24.54 17.79L24.86 17.31L24.98 16.73L24.98 16.16L24.86 15.59L24.54 15.11L24.05 14.78L23.48 14.67Z'/%3E%3C/svg%3E");
  --pm-лестница:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 139.0 28'%3E%3Cg transform='translate(0.00 8.40) scale(0.6125) translate(-0.00 -0.00)'%3E%3Cpath d='M5.5 12.8L5.6 11.9L5.7 11L6 10.1L6.3 9.2L6.7 8.4L7.3 7.6L7.9 6.8L8.6 6.2L9.3 5.5L10.2 5L11.1 4.5L12 4.1L13 3.8L14 3.6L15 3.4L16 3.4L17 3.4L18 3.6L19 3.8L20 4.1L20.9 4.5L21.8 5L22.7 5.5L23.4 6.2L24.1 6.8L24.7 7.6L25.3 8.4L25.7 9.2L26 10.1L26.3 11L26.4 11.9L26.5 12.8L25.6 11.8L24.8 10.9L23.9 10.4L23 10.2L22.1 10.4L21.2 10.9L20.4 11.8L19.5 12.8L18.6 11.8L17.8 10.9L16.9 10.4L16 10.2L15.1 10.4L14.2 10.9L13.4 11.8L12.5 12.8L11.6 11.8L10.8 10.9L9.9 10.4L9 10.2L8.1 10.4L7.2 10.9L6.4 11.8L5.5 12.8Z'/%3E%3Cpath d='M6.4 12.4L16 21.4M12.2 12.4L16 21.4M19.8 12.4L16 21.4M25.6 12.4L16 21.4' stroke-linecap='round'/%3E%3Cpath d='M13.6 23.4A2.4 2.4 0 1 1 18.4 23.4A2.4 2.4 0 1 1 13.6 23.4ZM15.4 25.6H16.6A1.4 1.4 0 0 1 18 27V28.8A1.4 1.4 0 0 1 16.6 30.2H15.4A1.4 1.4 0 0 1 14 28.8V27A1.4 1.4 0 0 1 15.4 25.6Z'/%3E%3C/g%3E%3Cg transform='translate(24.60 6.30) scale(0.6781) translate(-0.00 -0.00)'%3E%3Cpath d='M5.8 20.2L5.9 18.3L6.1 16.5L6.6 14.8L7.2 13.1L7.9 11.6L8.8 10.2L9.8 8.9L10.9 7.9L12.1 7.1L13.4 6.5L14.7 6.1L16 6L17.3 6.1L18.6 6.5L19.9 7.1L21.1 7.9L22.2 8.9L23.2 10.2L24.1 11.6L24.8 13.1L25.4 14.8L25.9 16.5L26.1 18.3L26.2 20.2L26.2 20.2ZM5.4 19.2H26.6A1.8 1.8 0 0 1 28.4 21V21.4A1.8 1.8 0 0 1 26.6 23.2H5.4A1.8 1.8 0 0 1 3.6 21.4V21A1.8 1.8 0 0 1 5.4 19.2Z'/%3E%3Cpath d='M7.6 23.2C8.6 29.4 23.4 29.4 24.4 23.2' stroke-linecap='round'/%3E%3C/g%3E%3Cg transform='translate(51.30 4.20) scale(0.7438) translate(-0.00 -0.00)'%3E%3Cpath d='M3.72 12.08L3.94 10.97L4.29 9.88L4.75 8.83L5.32 7.83L5.99 6.89L6.76 6.01L7.62 5.21L8.57 4.48L9.58 3.85L10.66 3.31L11.79 2.88L12.97 2.55L14.17 2.33L15.39 2.21L16.61 2.21L17.83 2.33L19.03 2.55L20.21 2.88L21.34 3.31L22.42 3.85L23.43 4.48L24.38 5.21L25.24 6.01L26.01 6.89L26.68 7.83L27.25 8.83L27.71 9.88L28.06 10.97L28.28 12.08L29.14 12.08L29.39 12.73L29.39 18.71L29.14 19.36L27.66 19.36L26.42 25.34L26.32 26.08L26.05 26.77L25.62 27.36L25.05 27.82L24.39 28.1L23.69 28.2L21.77 28.5L19.84 28.75L17.92 28.92L16 28.98L14.08 28.92L12.16 28.75L10.23 28.5L8.31 28.2L7.61 28.1L6.95 27.82L6.38 27.36L5.95 26.77L5.68 26.08L5.58 25.34L4.34 19.36L2.86 19.36L2.61 18.71L2.61 12.73L2.86 12.08ZM8.99 14.03L8.44 14.14L7.98 14.45L7.68 14.91L7.57 15.45L7.57 15.99L7.68 16.53L7.98 16.99L8.44 17.3L8.99 17.41L23.01 17.41L23.56 17.3L24.02 16.99L24.32 16.53L24.43 15.99L24.43 15.45L24.32 14.91L24.02 14.45L23.56 14.14L23.01 14.03Z'/%3E%3C/g%3E%3Cg transform='translate(80.10 2.10) scale(0.8094) translate(-0.00 -0.00)'%3E%3Cpath d='M5.8 8.28L5.98 7.41L6.27 6.57L6.65 5.75L7.13 4.98L7.69 4.24L8.33 3.56L9.04 2.93L9.83 2.37L10.67 1.88L11.57 1.47L12.51 1.13L13.48 .87L14.48 .7L15.49 .61L16.51 .61L17.52 .7L18.52 .87L19.49 1.13L20.43 1.47L21.33 1.88L22.17 2.37L22.96 2.93L23.67 3.56L24.31 4.24L24.87 4.98L25.35 5.75L25.73 6.57L26.02 7.41L26.2 8.28L26.92 8.28L27.12 8.78L27.12 13.43L26.92 13.93L25.68 13.93L24.65 18.58L24.57 19.15L24.35 19.69L23.99 20.15L23.52 20.5L22.97 20.72L22.39 20.8L20.79 21.03L19.19 21.23L17.6 21.36L16 21.41L14.4 21.36L12.81 21.23L11.21 21.03L9.61 20.8L9.03 20.72L8.48 20.5L8.01 20.15L7.65 19.69L7.43 19.15L7.35 18.58L6.32 13.93L5.08 13.93L4.88 13.43L4.88 8.78L5.08 8.28ZM10.1 9.79L9.68 9.87L9.32 10.11L9.08 10.47L9 10.89L9 11.31L9.08 11.74L9.32 12.09L9.68 12.33L10.1 12.42L21.9 12.42L22.32 12.33L22.68 12.09L22.92 11.74L23 11.31L23 10.89L22.92 10.47L22.68 10.11L22.32 9.87L21.9 9.79Z'/%3E%3Cpath d='M9.2 23.4L14.2 22.8L13.4 27.6ZM18.6 27.6L17.8 22.8L22.8 23.4Z'/%3E%3Cpath d='M13.89 22.9L18.11 22.9L17.24 25.3L14.76 25.3ZM14.64 25.75L17.36 25.75L19.1 30.55L16 31.8L12.9 30.55Z'/%3E%3C/g%3E%3Cg transform='translate(111.00 0.00) scale(0.8750) translate(-0.00 -0.00)'%3E%3Cpath d='M6.69 7.47L6.86 6.67L7.12 5.9L7.47 5.15L7.9 4.43L8.41 3.75L9 3.13L9.65 2.55L10.37 2.03L11.14 1.58L11.95 1.2L12.81 .89L13.7 .65L14.61 .49L15.54 .41L16.46 .41L17.39 .49L18.3 .65L19.19 .89L20.05 1.2L20.86 1.58L21.63 2.03L22.35 2.55L23 3.13L23.59 3.75L24.1 4.43L24.53 5.15L24.88 5.9L25.14 6.67L25.31 7.47L25.96 7.47L26.15 7.93L26.15 12.21L25.96 12.68L24.84 12.68L23.9 16.95L23.83 17.48L23.62 17.98L23.29 18.4L22.86 18.73L22.36 18.93L21.83 19L20.37 19.21L18.91 19.39L17.46 19.52L16 19.56L14.54 19.52L13.09 19.39L11.63 19.21L10.17 19L9.64 18.93L9.14 18.73L8.71 18.4L8.38 17.98L8.17 17.48L8.1 16.95L7.16 12.68L6.04 12.68L5.85 12.21L5.85 7.93L6.04 7.47ZM10.62 8.86L10.23 8.94L9.91 9.16L9.69 9.49L9.61 9.88L9.61 10.27L9.69 10.65L9.91 10.98L10.23 11.2L10.62 11.28L21.38 11.28L21.77 11.2L22.09 10.98L22.31 10.65L22.39 10.27L22.39 9.88L22.31 9.49L22.09 9.16L21.77 8.94L21.38 8.86Z'/%3E%3Cpath d='M8.2 21.6L13 20.8L11.6 25.4ZM20.4 25.4L19 20.8L23.8 21.6Z'/%3E%3Cpath d='M11.7 19.4Q13.6 21.8 16 22.2Q18.4 21.8 20.3 19.4' stroke-linecap='round'/%3E%3Cpath d='M16 22.26V32.34' stroke-linecap='round'/%3E%3Cpath d='M17.78 24.75A1.97 1.7 0 1 0 15.76 27.2L16.24 27.4A1.97 1.7 0 1 1 14.22 29.85' stroke-linecap='round'/%3E%3Cpath d='M27 1.4Q27.59 4.61 30.8 5.2Q27.59 5.79 27 9Q26.41 5.79 23.2 5.2Q26.41 4.61 27 1.4ZM4.8 7.2Q5.24 9.16 7.2 9.6Q5.24 10.04 4.8 12Q4.36 10.04 2.4 9.6Q4.36 9.16 4.8 7.2ZM26.2 25.4Q26.62 26.98 28.2 27.4Q26.62 27.82 26.2 29.4Q25.78 27.82 24.2 27.4Q25.78 26.98 26.2 25.4Z'/%3E%3C/g%3E%3C/svg%3E");
}
/* <<< МОТИВЫ */

/* Углы — строже шаблонных: у его оформления прямые плашки и острые тире.
   Шкала скруглений шаблона объявлена в его :root — перебиваем её только
   внутри витрины. */
.app, .регионы, .вопрос, .накрыльцо, .пасхалка{--r-card:10px; --r-in:7px}

/* Фокус с клавиатуры — у всего, что нажимается, заметным контуром. */
.app .ore:focus-visible,
.app .gcard:focus-visible,
.app .lob:focus-visible,
.app .лоб-уровни:focus-visible,
.app .ord:focus-visible{outline:2px solid var(--fo-line); outline-offset:2px}


/* ── 1. НОЧЬ: ГРАФИТ И КОНТУРНЫЙ ВОРДМАРК ───────────────────────────────
   Два неподвижных слоя под всей витриной. Фиксированный слой рисуется раз
   и дальше только складывается видеокартой — прокрутка его не трогает.
   Нижний — графитовая ночь: сверху справа фиолетовый свет, снизу слева —
   розовый, как свет его кругов в углах баннера. Верхний — его имя контуром,
   повёрнутые ряды во весь экран (рисунок — маской --pm-вордмарк, цвет —
   токенами: сверху розовее, ниже лиловее). Линии тонкие и тихие: фон, а
   не надпись. */
.app::before,
.app::after{content:""; position:fixed; inset:0; z-index:-1; pointer-events:none}
.app::before{
  background:
    radial-gradient(80% 42% at 104% -4%, color-mix(in oklab, var(--lamp-mid) 17%, transparent), transparent 72%),
    radial-gradient(70% 34% at -6% 104%, color-mix(in oklab, var(--lamp-hi) 9%, transparent), transparent 72%),
    radial-gradient(150% 100% at 50% 40%, transparent 55%,
      color-mix(in oklab, var(--deep) 72%, transparent) 100%),
    linear-gradient(180deg, var(--rock) 0%, var(--deep) 72%)}
.app::after{
  background:linear-gradient(170deg,
    color-mix(in oklab, var(--lamp-hi) 13%, transparent) 0%,
    color-mix(in oklab, var(--lamp) 11%, transparent) 50%,
    color-mix(in oklab, var(--cream) 7%, transparent) 100%);
  -webkit-mask:var(--pm-вордмарк) 50% 50% / cover no-repeat;
          mask:var(--pm-вордмарк) 50% 50% / cover no-repeat}

/* Пыль в свете лампы — мир шахты, а не его. К тому же бесконечные циклы
   держат видеокарту проснувшейся. */
.app .motes{display:none !important}

/* Полоса шапки и полоса вкладок липнут к верху и несут свой фон: тон верха
   ночи, не глушим до конца — иначе встала бы тёмная заплата. */
.app .bar{background:linear-gradient(180deg,
  color-mix(in oklab, var(--rock) 96%, transparent) 70%, transparent)}
.app .tabs{background:linear-gradient(180deg, transparent 0,
  color-mix(in oklab, var(--rock) 88%, transparent) 12px,
  color-mix(in oklab, var(--rock) 88%, transparent) 55%, transparent)}


/* ── 2. ЗАГОЛОВКИ — Unbounded заглавными, с его кругом ──────────────────── */
.app .about-head h2,
.app .screen[data-screen="order"] .order-head h2,
.app .где b,
.app .vip-h,
.app .vip-now b,
.app #digTitle,
.app .bindbox h2,
.app .row h3,
.вопрос-тело h2,
.регионы-верх b{font-family:var(--font-display); text-transform:uppercase;
  font-weight:700; letter-spacing:.04em; line-height:var(--lh-tight)}
/* Перед заголовком экрана — его круг: розовые штрихи в розовом кольце, как
   в углу баннера. Подпись магазина на каждом экране, а не награда. */
.app .about-head h2,
.app .screen[data-screen="order"] .order-head h2,
.app .vip-h,
.app .где b{display:flex; align-items:center; gap:10px}
.app .about-head h2::before,
.app .screen[data-screen="order"] .order-head h2::before,
.app .vip-h::before,
.app .где b::before{content:""; flex:none; width:15px; height:15px; border-radius:50%;
  background:var(--pm-штрих-р);
  box-shadow:inset 0 0 0 1.5px var(--lamp-hi), 0 0 10px -2px color-mix(in oklab, var(--lamp-hi) 55%, transparent)}
.app .about-head h2{font-size:var(--fs-lg)}
.app .screen[data-screen="order"] .order-head h2{font-size:var(--fs-xl)}
.app .где b{font-size:var(--fs-lg); letter-spacing:.03em}
.app .vip-h{font-size:var(--fs-base); letter-spacing:.07em; margin-bottom:12px}
.app .vip-now b{font-size:var(--fs-xl)}
.app #digTitle{font-size:var(--fs-base); letter-spacing:.06em}
.app .bindbox h2{font-size:var(--fs-md); letter-spacing:.07em}
.app .row h3{font-size:var(--fs-sm); letter-spacing:.1em; color:var(--sand)}
.вопрос-тело h2{font-size:var(--fs-lg); letter-spacing:.04em; text-wrap:balance}
.регионы-верх b{font-size:var(--fs-base); letter-spacing:.07em}


/* ── 3. ШАПКА ПОЛКИ ──────────────────────────────────────────────────────
   Имя — вордмарк художника белым, шлем — фиолетовым. «Все игры» и «Заказы»
   — дорога, а не действие: тёмная плашка с фиолетовым значком. Фиолетовая
   заливка сделала бы кнопку самой яркой вещью полки — ярче цен и оплаты. */
.app .logo{color:var(--cream); font-family:var(--font-display); font-weight:700;
  font-size:var(--fs-cap); letter-spacing:.14em}
.app .logo svg:not(.слово){color:var(--lamp)}
.app .logo .слово{color:var(--cream)}
.app .bar .pill.big,
.app .pill.ghost{color:var(--cream); border:1px solid var(--pm-рамка); border-radius:var(--r-in);
  background:color-mix(in oklab, var(--stone-2) 72%, transparent);
  box-shadow:inset 0 1px 0 var(--pm-кромка)}
.app .pill.ghost{color:var(--sand)}
.app .bar .pill.big .ic,
.app .pill.ghost .ic{color:var(--lamp)}
.app .back{color:var(--sand); border-color:var(--pm-рамка); border-radius:var(--r-in);
  background:color-mix(in oklab, var(--stone-2) 62%, transparent);
  box-shadow:inset 0 1px 0 var(--pm-кромка)}
.app .back .ic{color:var(--lamp)}
.app .где span{color:var(--sand)}


/* ── 4. ВКЛАДКИ: выбранная — тёмная с фиолетовой кромкой и полосой штрихов ─
   Выбранная вкладка — не заливка, а тёмная середина с накалённой кромкой:
   подпись остаётся светлой и читается лучше, заливкой — только кнопки. Под
   ней — полоса его штрихов: «это твоё». Полоса едет вместе с пилюлей, потому
   что живёт в ней. */
.app .tabs{padding-bottom:15px}
.app .tab,
.app .tab-pill{border-radius:var(--r-in)}
.app .tab-pill{background:var(--pm-выбрано); overflow:visible;
  box-shadow:inset 0 -10px 16px -12px color-mix(in oklab, var(--lamp-hi) 50%, transparent), var(--pm-накал)}
.app .tab-pill::after{content:""; position:absolute; left:50%; top:calc(100% + 4px);
  width:34px; height:6px; margin-left:-17px; border-radius:1px;
  background:var(--pm-штрих-р);
  box-shadow:0 0 8px -2px color-mix(in oklab, var(--lamp-hi) 60%, transparent)}
.app .tab.on{color:var(--cream)}
.app .tab:not(.on){color:var(--sand); border-color:var(--pm-рамка);
  background:color-mix(in oklab, var(--stone-2) 55%, transparent);
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--cream) 9%, transparent)}
.app .tab:not(.on):active{background:color-mix(in oklab, var(--lamp) 14%, transparent)}


/* ── 5. КАРТОЧКА НОМИНАЛА ────────────────────────────────────────────────
   В покое — стекло графитовой ночи, цена — светлым Unbounded на тёмной
   плашке. Взяли — номинал стал «твоим»: кромка накаляется фиолетовым, за
   товаром встаёт его штрихованный круг, плашка цены становится лаком.
   Круг появляется один раз, когда номинал берут. */
.app .ore{border-color:var(--pm-рамка); background:var(--pm-стекло);
  box-shadow:inset 0 1px 0 var(--pm-кромка), inset 0 -1px 0 rgba(0,0,0,.45), var(--sh-card);
  transition:scale var(--t-press) var(--ease-out)}
.app .ore:not(.spent):active{border-color:color-mix(in oklab, var(--lamp) 55%, transparent)}
.app .ore.incart{border-color:transparent;
  background:linear-gradient(180deg,
    color-mix(in oklab, var(--lamp-mid) 24%, var(--stone-2)) 0%,
    color-mix(in oklab, var(--lamp-mid) 9%, var(--stone)) 52%,
    color-mix(in oklab, var(--stone-deep) 96%, transparent) 100%);
  box-shadow:var(--pm-накал)}
/* Круг за товаром: фиолетовые штрихи в тонком кольце. Товар стоит перед
   ним — круг лежит первым в куче. */
.app .ore.incart .pile::before{content:""; position:absolute; left:50%; top:50%;
  width:64px; height:64px; margin:-32px 0 0 -32px; border-radius:50%; pointer-events:none;
  background:var(--pm-штрих-ф);
  box-shadow:inset 0 0 0 1.5px color-mix(in oklab, var(--lamp) 70%, transparent);
  opacity:.8; animation:pm-круг 460ms var(--ease-out) backwards}
@keyframes pm-круг{from{transform:scale(.5) rotate(-40deg); opacity:0}
  to{transform:none; opacity:.8}}
.app .ore .mark{z-index:2}
.app .ore.spent{border-color:color-mix(in oklab, var(--seam) 60%, transparent);
  background:color-mix(in oklab, var(--deep) 70%, transparent); box-shadow:none}
.app .ore.spent .line1 span{color:var(--sand-dim)}
.app .ore.spent .line1 b{color:var(--sand)}

/* Цена — на плашке: тёмная, светлые цифры Unbounded, у левого края — узкая
   полоса розовых штрихов, как срез его круга. У взятого номинала плашка —
   фиолетовый лак, цифры белые. */
.app .line1 b{color:var(--cream); font-size:var(--fs-sm)}
/* Длинные названия переносим на вторую строку, ровно по словам. */
.app .grid .ore .line1 b{white-space:normal; text-wrap:balance}
.app .line1 span{display:inline-block; margin-top:5px; padding:3px 9px 3px 12px;
  font-family:var(--font-display); font-weight:600; font-size:var(--fs-base); letter-spacing:0;
  color:var(--cream); border-radius:3px;
  background:var(--pm-штрих-р) 0 0 / 4px 100% no-repeat, var(--deep);
  box-shadow:inset 0 0 0 1px var(--pm-рамка)}
.app .ore.incart .line1 span{color:var(--on-lamp);
  background:var(--pm-штрих-б) 0 0 / 4px 100% no-repeat, var(--lamp-mid);
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--lamp-top) 50%, transparent)}
.app .ore.spent .line1 span{background:color-mix(in oklab, var(--deep) 80%, transparent)}
.app .ore .сложение,
.app .ore .впервые{text-align:center}

/* «Выбрать» — стекло посветлее карточки: зовёт нажать, но не спорит с ценой. */
.app .ore .take{border:1px solid color-mix(in oklab, var(--sand) 22%, transparent);
  background:linear-gradient(180deg,
    color-mix(in oklab, var(--cream) 12%, transparent),
    color-mix(in oklab, var(--cream) 5%, transparent));
  color:var(--cream); font-weight:650;
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--cream) 20%, transparent),
    0 2px 6px -3px rgba(0,0,0,.7)}
.app .ore:not(.spent):active .take{background:color-mix(in oklab, var(--lamp) 24%, transparent);
  border-color:var(--pm-фиолет-тихо)}
.app .ore.incart .take{border-color:transparent; color:var(--on-lamp); background:var(--metal);
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--lamp-top) 55%, transparent),
    inset 0 -1px 0 rgba(0,0,0,.2), 0 0 14px -4px var(--lamp-mid)}
.app .ore.spent .take{background:rgba(0,0,0,.24); border-color:color-mix(in oklab, var(--seam) 50%, transparent);
  box-shadow:none}

/* Плашка лучшего номинала — его розовый: тёмные буквы на розовом, перед
   словом — крестик. Не кнопка: крестик здесь в углу карточки, далеко от
   «Выбрать». */
.app .ore .mark{font-family:var(--font-display); font-weight:700; letter-spacing:.08em;
  color:var(--deep); background:var(--lamp-hi);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 0 12px -3px var(--lamp-hi)}
.app .ore .mark::before{content:""; flex:none; width:8px; height:8px; margin-right:1px;
  background:currentColor; -webkit-mask:var(--pm-крест) center / contain no-repeat;
  mask:var(--pm-крест) center / contain no-repeat}
.app .ore .gone{background:color-mix(in oklab, var(--seam) 80%, transparent); color:var(--sand)}

/* Своя сумма: то же стекло, кнопка — фиолетовым контуром. */
.app .своя{border-color:var(--pm-рамка); background:var(--pm-стекло);
  box-shadow:inset 0 1px 0 var(--pm-кромка), var(--sh-card)}
.app .своя .take{border:1px solid var(--pm-фиолет-тихо); color:var(--lamp);
  background:color-mix(in oklab, var(--lamp) 10%, transparent); font-weight:700}
.app .своя .take:disabled{opacity:.5}

/* Раздел за входом через бота: то же стекло, фиолетовый щит. */
.app .замок{border-color:var(--pm-рамка); background:var(--pm-стекло);
  box-shadow:inset 0 1px 0 var(--pm-кромка), var(--sh-card);
  backdrop-filter:none; -webkit-backdrop-filter:none}
.app .замок .ic{color:var(--lamp)}
.app .замок b{font-family:var(--font-display); text-transform:uppercase; letter-spacing:.04em;
  font-size:var(--fs-base)}

/* Кому уходит покупка — фиолетовый отсвет на стекле. */
.app .who-chip{border-color:var(--pm-фиолет-тихо);
  background:color-mix(in oklab, var(--lamp) 9%, var(--stone))}


/* ── 6. ОБЕЩАНИЯ — СВЕДЕНИЯ, А НЕ КНОПКИ ─────────────────────────────────
   Обещания не нажимаются, и это видно: плоско, прямо на ночи — фиолетовый
   значок и две строки, без плашки, рамки и тени. На таком тихом фоне и
   видно, что нажимается: плитки игр и кнопка уровней. */
.app .promises > div,
.app .vows > div{border-color:transparent; background:none; box-shadow:none}
.app .promises > div{padding:8px 4px 4px}
.app .promises .ic,
.app .vows .ic{color:var(--lamp)}
.app .vows > div{display:grid; grid-template-columns:auto minmax(0, 1fr); column-gap:10px;
  align-items:center; text-align:left; padding:6px 2px}
.app .vows > div .ic{grid-row:1 / span 2; width:22px; height:22px; margin:0}
.app .vows > div b,
.app .vows > div span{grid-column:2}
.app .row .more{color:var(--lamp); background:transparent;
  border:1px solid var(--pm-фиолет-тихо); border-radius:var(--r-in);
  font-family:var(--font); font-weight:600; letter-spacing:0; text-transform:none}
.app .row .more:active{background:color-mix(in oklab, var(--lamp) 16%, transparent)}
.app .row h3 .ic{color:var(--lamp)}


/* ── 7. ГЛАВНАЯ МАГАЗИНА ─────────────────────────────────────────────── */
.app .home-mark{color:var(--lamp);
  filter:drop-shadow(0 0 14px color-mix(in oklab, var(--lamp-mid) 60%, transparent))}
.app .home-brand{font-family:var(--font-display); letter-spacing:.3em; color:var(--sand)}
.app .home-о{color:var(--sand)}
/* «ВСЕ ИГРЫ» под именем — вторая тяжёлая строка подряд, а подписывает она
   плитки, до которых ещё полэкрана. Под вордмарком остаётся одна строка —
   чем торгуем. */
.app .home-head h2{display:none}

/* Уровни — КНОПКА, и видно это с первого взгляда: тёмно-фиолетовая плашка
   с накалённой кромкой, объём (свет сверху, тень снизу) и шеврон справа.
   Справа от слов — лестница ступеней: пять знаков растут, от серого к
   фиолетовому, розовому и золоту последней, — от первого шлема к тройке и
   сбросу. Рисунок — маской (--pm-лестница, из знаков художника), цвет —
   токенами. Кнопка лежит в ряду обещаний (.vows) — отсюда длинный
   селектор значка. */
.app .лоб-уровни{padding-right:44px; border-color:transparent;
  background:linear-gradient(135deg,
    color-mix(in oklab, var(--lamp-mid) 26%, var(--stone-2)) 0%,
    color-mix(in oklab, var(--lamp-mid) 8%, var(--stone-deep)) 100%);
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--lamp-top) 30%, transparent),
    inset 0 -24px 28px -22px color-mix(in oklab, var(--lamp-hi) 34%, transparent),
    inset 0 -2px 0 rgba(0,0,0,.35), var(--pm-накал);
  transition:scale var(--t-press) var(--ease-out)}
.app .лоб-уровни:active{scale:.97}
.app .лоб-уровни .лоб-шеврон{right:16px; border-color:var(--cream)}
.app .home-vows .лоб-уровни .ic{width:24px; height:24px; margin-bottom:6px; color:var(--lamp);
  filter:drop-shadow(0 0 6px color-mix(in oklab, var(--lamp-mid) 70%, transparent));
  transition:transform var(--t-press) var(--ease-out)}
.app .home-vows .лоб-уровни:active .ic{transform:scale(1.18)}
.app .лоб-уровни::after{content:""; position:absolute; right:42px; bottom:12px;
  width:112px; height:26px; pointer-events:none;
  background:linear-gradient(90deg, var(--sand-dim) 0%, var(--lamp) 38%, var(--lamp-hi) 70%, var(--zhar) 90%);
  -webkit-mask:var(--pm-лестница) center / contain no-repeat;
          mask:var(--pm-лестница) center / contain no-repeat}
.app .лоб-уровни .menu-tag{color:var(--deep); background:var(--lamp-hi); font-weight:700}

/* ПЛИТКИ ИГР. Каждая — стекло с кромкой света своей игры (по нему игру и
   узнают), а в верхнем углу — срезанный край плитки круг его штрихов, как
   круги, срезанные краем баннера. В левом столбце круг в левом углу, в
   правом — в правом: плитки обрамляют витрину, как его углы — баннер.
   Цвет кругов идёт по кругу его баннера: фиолетовый, розовый, белый.
   Товар стоит по центру и кругом не задет. */
.app .gcard{border-color:color-mix(in oklab, var(--g) 22%, var(--pm-рамка));
  box-shadow:inset 0 1px 0 var(--pm-кромка), inset 0 -1px 0 rgba(0,0,0,.4), var(--sh-card)}
/* Столбец и цвет считаются среди МАЛЫХ плиток (крупных сверху одна или две,
   и простая чётность съезжала бы). Хром применяет «nth-child(… of …)» к
   самой плитке, но не к её ::before — поэтому селектор ставит на плитке
   переменные, а круг их читает. */
.app .gcard::before{content:""; position:absolute; top:-40px; width:88px; height:88px;
  left:var(--pm-круг-л, -40px); right:var(--pm-круг-п, auto);
  border-radius:50%; pointer-events:none;
  background:var(--pm-круг, var(--pm-штрих-ф)); opacity:var(--pm-круг-сила, .62)}
.app .gcard:not(.big):nth-child(even of .gcard:not(.big)){--pm-круг-л:auto; --pm-круг-п:-40px}
.app .gcard:not(.big):nth-child(3n+2 of .gcard:not(.big)){--pm-круг:var(--pm-штрих-р); --pm-круг-сила:.46}
.app .gcard:not(.big):nth-child(3n of .gcard:not(.big)){--pm-круг:var(--pm-штрих-б); --pm-круг-сила:.22}
.app .gcard:not(.soon):active,
.app .gcard.жмём{border-color:var(--pm-фиолет); box-shadow:var(--pm-накал)}
.app .gcard-txt b{font-family:var(--font-display); font-weight:700; letter-spacing:.01em}
/* Главная игра называется «PUBG: BATTLEGROUNDS», и длинное слово не
   переносится: на 18 px оно заходило на монету (на 375 px — на 10, на 360 —
   на 25). Крупная подпись не шире 4,4 % экрана — в колонке монитора те же 18. */
.app .gcard.big .gcard-txt b{font-size:min(var(--fs-lg), 4.4vw); letter-spacing:0}
/* Unbounded шире Onest: на мелкой плитке «Telegram Stars» ломалось бы в две
   строки и въезжало в предмет над собой. */
.app .gcard:not(.big) .gcard-txt b{font-size:var(--fs-md); letter-spacing:0}

/* КРУПНЫЕ ПЛИТКИ — за предметом стоит большой круг его штрихов, срезанный
   правым краем, как круг в углу его баннера; в левом верхнем углу — пара
   его крестиков. Нажал — круг проворачивается и подаётся вперёд (пока
   грузится игра, шаблон держит на плитке .жмём). */
.app .gcard.big::before{top:50%; left:auto; right:-34px; width:156px; height:156px; margin-top:-78px;
  background:var(--pm-штрих-ф); opacity:.66;
  box-shadow:inset 0 0 0 1.5px color-mix(in oklab, var(--lamp) 40%, transparent);
  transition:transform 420ms var(--ease-out)}
.app .gcard.big:nth-child(even)::before{background:var(--pm-штрих-р); opacity:.42;
  box-shadow:inset 0 0 0 1.5px color-mix(in oklab, var(--lamp-hi) 34%, transparent)}
.app .gcard.big:active::before,
.app .gcard.big.жмём::before{transform:rotate(24deg) scale(1.06)}
.app .gcard.big::after{content:""; position:absolute; left:14px; top:13px; width:40px; height:22px;
  pointer-events:none; background:var(--lamp-hi); opacity:.85;
  -webkit-mask:var(--pm-кресты) center / contain no-repeat; mask:var(--pm-кресты) center / contain no-repeat}
.app .gcard.big:nth-child(even)::after{background:var(--lamp)}

/* ЛОББИ — две КНОПКИ: стекло с фиолетовым кантом и объёмом, значок слева,
   шеврон справа. Нажал — вжимается и накаляется. */
.app .lobby{grid-template-columns:1fr 1fr}
.app .lob{grid-template-columns:auto minmax(0, 1fr) auto; justify-items:start; align-items:center;
  column-gap:9px; text-align:left; padding:13px 30px 13px 13px;
  border-color:color-mix(in oklab, var(--lamp) 30%, transparent); background:var(--pm-стекло);
  box-shadow:var(--pm-объём)}
.app .lob .ic{color:var(--lamp); margin:0}
.app .lob:active{scale:.97; box-shadow:var(--pm-накал)}
.app .lob::after{content:""; position:absolute; right:14px; top:50%; width:8px; height:8px;
  margin-top:-4px; pointer-events:none; border:solid var(--sand); border-width:0 2px 2px 0;
  transform:rotate(-45deg)}


/* ── 8. КОРЗИНА-ДОК ──────────────────────────────────────────────────────
   Полоса — первый шаг к деньгам и уже «твоё»: по верхней кромке — полоса
   его штрихов, сумма светлая, одна кнопка — фиолетовый лак. Появляясь,
   кнопка ловит блик: по лаку один раз проходит белая полоса. */
.app .dock{background:linear-gradient(180deg, var(--rock) 0%, var(--deep) 60%);
  border-top-color:var(--pm-рамка)}
.app .dock::before{content:""; position:absolute; left:0; right:0; top:-1px; height:5px;
  pointer-events:none; background:var(--pm-штрих-р); opacity:.9}
.app .dock-in{border-color:var(--pm-рамка); background:var(--pm-стекло);
  box-shadow:inset 0 1px 0 var(--pm-кромка), 0 14px 34px -20px #000}
.app .dock-in > .ic{color:var(--lamp)}
.app .dock-sum b{color:var(--cream); font-family:var(--font-display)}
/* Разряды итога — span внутри <b>, и общее правило шаблона красило их в
   цвет подписи. */
.app .dock-sum b span{color:inherit}
.app .dock .act::after{content:""; position:absolute; top:0; bottom:0; left:-60%; width:45%;
  pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent);
  transform:translateX(0); opacity:0}
.app .dock:not(.away) .act::after{animation:pm-блик 900ms var(--ease-out) 260ms both}
@keyframes pm-блик{0%{transform:translateX(0); opacity:0} 12%{opacity:1}
  100%{transform:translateX(420%); opacity:0}}


/* ── 9. КНОПКИ — ФИОЛЕТОВЫЙ ЛАК ──────────────────────────────────────────
   Главная кнопка — лак его фиолетового: складка наискось (всё в --metal),
   по верхней грани — светлый кант, вокруг — свечение с розовым краем.
   Белые буквы — 5.4 на самом светлом месте лака и 7.7 на складке; надпись
   заглавными Unbounded. Шаблон красил кнопку переходом от блика (у нас он
   розовый) к фиолетовому — белые буквы на розовом конце не читались бы,
   поэтому лак ровный по тону. */
.app .act,
.app .plita-copy,
.вопрос-да{background:var(--metal); color:var(--on-lamp);
  font-family:var(--font-display); font-weight:700; text-transform:uppercase;
  letter-spacing:.05em; font-size:var(--fs-md); box-shadow:var(--pm-лак)}
/* «Код у вас» — мята, и чернила на ней тёмные: белое на мяте не читается. */
.app .plita-copy.ok{background:linear-gradient(140deg, var(--ore-hi), var(--ore)); color:var(--on-ore);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.34),
    0 0 0 1px color-mix(in oklab, var(--ore) 50%, transparent), 0 0 22px -8px var(--ore)}


/* ── 10. ЭКРАН ЗАКАЗА — СУММА, ПРОШИТАЯ ПУНКТИРОМ ────────────────────────
   Ночь ровная: сумма не должна спорить с фоном — вордмарк здесь тише.
   Позиции — плоские строки через пунктир. Сумма к оплате — тёмная плашка,
   прошитая пунктиром, на верхней кромке — его четыре тире: то, что надо
   запомнить, и его подпись на экране денег. */
.app .screen[data-screen="order"]::before{
  background:linear-gradient(180deg,
    color-mix(in oklab, var(--rock) 86%, transparent) 0%,
    color-mix(in oklab, var(--deep) 90%, transparent) 100%)}
.app .screen[data-screen="order"] .back{background:var(--stone); border-color:var(--seam)}
.app .screen[data-screen="order"] .cart-lines{gap:0}
.app .screen[data-screen="order"] .cart-line{border:0; border-radius:0; padding-left:2px; padding-right:2px;
  background:none; box-shadow:none}
.app .screen[data-screen="order"] .cart-line + .cart-line{border-top:1px dashed var(--pm-пунктир)}
.app .screen[data-screen="order"] .panel{position:relative; overflow:visible;
  border-color:color-mix(in oklab, var(--lamp) 42%, var(--seam-2));
  background:linear-gradient(180deg, var(--stone-deep), var(--deep));
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--cream) 9%, transparent),
    inset 0 -24px 28px -24px color-mix(in oklab, var(--lamp-mid) 55%, transparent),
    0 0 30px -20px var(--lamp)}
.app .screen[data-screen="order"] .panel::after{content:""; position:absolute; inset:5px;
  pointer-events:none; border-radius:calc(var(--r-card) - 4px);
  border:1px dashed var(--pm-пунктир)}
.app .screen[data-screen="order"] .panel::before{content:""; position:absolute; left:16px; top:-2px;
  width:58px; height:4px; pointer-events:none; background:var(--pm-четыре-ф)}
/* Скидки нет — её строка спрятана, но правило шаблона «черта над каждой
   строкой, кроме первой» рисовало черту над «К оплате». */
.app .screen[data-screen="order"] .line.hidden + .line{background:none}
.app .screen[data-screen="order"] .line.pay dt{font-family:var(--font-display);
  text-transform:uppercase; letter-spacing:.08em; font-size:var(--fs-sm)}
.app .screen[data-screen="order"] .line.pay dd{font-family:var(--font-display); color:var(--cream)}
/* Скидка — выгода покупателя: мятой, а не розовым (розовый на экране
   денег читался бы ещё одной ценой). */
.app .line.cut dt,
.app .line.cut dd{color:var(--ore)}
.app .screen[data-screen="order"] .game-name{font-family:var(--font-display);
  letter-spacing:.08em; color:var(--lamp)}
.app .field label .чья{color:var(--lamp)}
/* Предупреждение по игре — янтарём «ошибки», а не фиолетовым: фиолетовый
   здесь — кнопка, и предупреждение читалось бы ещё одним действием. */
.app .game-warn,
.app .screen[data-screen="order"] .game-warn{
  background:color-mix(in oklab, var(--rust) 8%, var(--stone-deep));
  border-color:color-mix(in oklab, var(--rust) 34%, transparent)}
.app .game-warn::before{color:var(--rust)}
.app #gameWarn b{color:var(--rust)}
.app .say.кому.нет{color:var(--rust)}
.app .обещание .кому{color:var(--lamp)}


/* ── 11. ХОД ЗАКАЗА — ЛИЦА ШЛЕМА И ЗОЛОТО ЦЕПИ ───────────────────────────
   Лица — шлем художника (i-mark-wait / -ok / -fail), и живут они целиком:
   внутрь символа стили не дотягиваются. Ждём — шлем чуть покачивается, как
   голова в раздумье. Готово — вспыхивает золото цепи: за шлемом встаёт
   золотой свет, по кругу его штрихов проходит оборот, разлетаются искры, на
   забрале изредка проезжает блик. Не вышло — шлем съезжает набок, кромка
   панели — янтарный пунктир.
   Панель — свой слой (z-index:0): свет и штрихи лежат в нём под шлемом и
   под подписями, но над фоном панели. */
.app .digger{position:relative; z-index:0; border-color:var(--pm-рамка);
  background:linear-gradient(180deg,
    color-mix(in oklab, var(--stone-2) 90%, transparent),
    color-mix(in oklab, var(--deep) 96%, transparent));
  box-shadow:inset 0 1px 0 var(--pm-кромка), inset 0 -30px 34px -30px color-mix(in oklab, var(--lamp-mid) 50%, transparent),
    0 16px 34px -20px #000}
/* Полоса хода — ПУНКТИР: дорожка из тире, по ней идёт фиолетово-розовая
   полоса со штрихами; на её конце — светлая искра. Готово — полоса мятная;
   не вышло — рваный янтарный пунктир. Длину полосы ставит шаблон; искра
   мерцает только transform/opacity и только пока заказ в работе. */
.app .digger-bar{position:relative; height:10px; overflow:visible; border-radius:0; box-shadow:none;
  background:linear-gradient(90deg, color-mix(in oklab, var(--sand) 30%, transparent) 50%, transparent 0)
    0 50% / 10px 2px repeat-x}
.app .digger-bar i{position:relative; height:4px; margin-top:3px; border-radius:1px;
  background:var(--pm-штрих-б) 0 0 / auto 100%, linear-gradient(90deg, var(--lamp-lo), var(--lamp-mid) 45%, var(--lamp-hi));
  box-shadow:0 0 10px color-mix(in oklab, var(--lamp-hi) 45%, transparent)}
.app .digger:not(.done):not(.bad) .digger-bar i::after{content:""; position:absolute; right:-7px; top:50%;
  width:14px; height:14px; margin-top:-7px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, var(--cream) 0 1.6px, color-mix(in oklab, var(--lamp-hi) 90%, transparent) 2.8px,
    color-mix(in oklab, var(--lamp-hi) 30%, transparent) 4.6px, transparent 7px);
  animation:pm-искра .9s var(--ease-in-out) infinite}
@keyframes pm-искра{0%,100%{transform:scale(1); opacity:1} 50%{transform:scale(.7); opacity:.75}}
.app .digger.done .digger-bar i{background:linear-gradient(90deg,
    color-mix(in oklab, var(--ore) 55%, var(--deep)), var(--ore) 60%, var(--ore-hi));
  box-shadow:0 0 10px color-mix(in oklab, var(--ore) 60%, transparent)}
.app .digger.bad .digger-bar i{background:repeating-linear-gradient(90deg, var(--rust) 0 7px, transparent 7px 11px);
  box-shadow:none}
.app .лз{filter:drop-shadow(0 0 12px color-mix(in oklab, currentColor 40%, transparent))
  drop-shadow(0 6px 14px rgba(0,0,0,.55))}

/* ждём: шлем покачивается от подбородка — думает вместе с покупателем */
.app .лз.ждём{transform-origin:50% 85%; animation:pm-думает 3s var(--ease-in-out) infinite}
@keyframes pm-думает{0%,100%{transform:rotate(-4deg)} 50%{transform:rotate(4deg) translateY(-2px)}}

/* готово: ЗОЛОТО ЦЕПИ. Шлем встаёт на место с лёгким кивком. */
.app .digger.done{border-color:color-mix(in oklab, var(--zhar) 44%, transparent);
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--zhar) 30%, transparent),
    inset 0 -30px 34px -30px color-mix(in oklab, var(--zhar) 40%, transparent),
    0 0 40px -18px var(--zhar), 0 16px 34px -20px #000}
.app .digger.done #digTitle{color:var(--zhar)}
/* Шлем — фиолетовый, как в покое: золотом у художника нарисованы цепь «$» и
   искры (вторым тоном, var(--zhar)), и на золотом шлеме они бы слились. */
.app .digger.done .лз.готово{color:var(--lamp); transform-origin:50% 85%;
  animation:pm-кивок 900ms var(--ease-out) both}
@keyframes pm-кивок{
  0%  {transform:translateY(-14px) scale(.8); opacity:0}
  35% {transform:translateY(2px) scale(1.06); opacity:1}
  60% {transform:translateY(-2px) rotate(-3deg) scale(1)}
  80% {transform:translateY(0) rotate(1.5deg)}
  100%{transform:none; opacity:1}}
/* за шлемом вспыхивает золото и остаётся ровный свет */
.app .digger.done .digger-face::after{content:""; position:absolute; left:50%; top:50%;
  width:150px; height:150px; margin:-75px 0 0 -75px; z-index:-1; border-radius:50%;
  pointer-events:none;
  background:radial-gradient(closest-side, color-mix(in oklab, var(--zhar) 46%, transparent),
    color-mix(in oklab, var(--zhar) 14%, transparent) 50%, transparent);
  animation:pm-вспышка 1100ms var(--ease-out) 120ms both}
@keyframes pm-вспышка{0%{transform:scale(.3); opacity:0} 22%{opacity:1}
  100%{transform:scale(1.2); opacity:.34}}
/* круг его штрихов — золотом: проворачивается один раз и остаётся за шлемом */
.app .digger.done .digger-face::before{content:""; position:absolute; left:50%; top:50%;
  width:96px; height:96px; margin:-48px 0 0 -48px; z-index:-1; border-radius:50%;
  pointer-events:none; background:var(--pm-штрих-з);
  box-shadow:inset 0 0 0 1.5px color-mix(in oklab, var(--zhar) 60%, transparent);
  animation:pm-оборот 1200ms var(--ease-out) 60ms both}
@keyframes pm-оборот{0%{transform:rotate(-120deg) scale(.4); opacity:0} 40%{opacity:.5}
  100%{transform:none; opacity:.34}}
/* искры и крестики разлетаются от шлема один раз */
.app .digger.done .лицо-заказа::before{content:""; position:absolute; left:50%; top:50%;
  width:200px; height:136px; margin:-68px 0 0 -100px; z-index:-1; pointer-events:none;
  background:
    radial-gradient(circle at 12% 28%, var(--zhar) 0 1.8px, transparent 2.8px),
    radial-gradient(circle at 88% 20%, var(--cream) 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 20% 80%, var(--lamp-hi) 0 1.9px, transparent 2.9px),
    radial-gradient(circle at 82% 76%, var(--zhar) 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 50% 4%, var(--zhar) 0 2px, transparent 3px),
    radial-gradient(circle at 3% 55%, var(--cream) 0 1.3px, transparent 2.3px),
    radial-gradient(circle at 97% 48%, var(--lamp-hi) 0 1.7px, transparent 2.7px),
    radial-gradient(circle at 34% 10%, var(--lamp) 0 1.3px, transparent 2.3px),
    radial-gradient(circle at 68% 8%, var(--cream) 0 1.4px, transparent 2.4px);
  animation:pm-искры 1250ms var(--ease-out) 260ms both}
@keyframes pm-искры{0%{transform:scale(.35); opacity:0} 20%{opacity:1}
  100%{transform:scale(1.28); opacity:0}}
/* блик-звезда на забрале, потом изредка ещё — цепь блеснула */
.app .digger.done .лицо-заказа::after{content:""; position:absolute; left:calc(50% + 16px);
  top:10px; width:14px; height:14px; pointer-events:none;
  background:var(--cream);
  clip-path:polygon(50% 0, 60% 40%, 100% 50%, 60% 60%, 50% 100%, 40% 60%, 0 50%, 40% 40%);
  animation:pm-сверк 3.4s var(--ease-out) 700ms infinite both}
@keyframes pm-сверк{0%,64%,100%{transform:scale(0) rotate(0deg); opacity:0}
  70%{transform:scale(1.15) rotate(45deg); opacity:1}
  82%{transform:scale(.2) rotate(90deg); opacity:0}}

/* не вышло: шлем съехал набок и так и остался; кромка — янтарный пунктир */
.app .digger.bad{border-color:color-mix(in oklab, var(--rust) 45%, transparent); border-style:dashed;
  box-shadow:inset 0 1px 0 var(--pm-кромка), 0 16px 34px -20px #000}
.app .digger.bad .лз.беда{transform-origin:50% 90%; animation:pm-съехал 900ms var(--ease-out) both}
/* Набекрень шлем нарисован художником; движение — как он съезжает:
   ровно → перекос → оседает, с небольшим доворотом. */
@keyframes pm-съехал{
  0%  {transform:translate(0,-8px) rotate(-12deg); opacity:0}
  30% {transform:translate(0,0) rotate(-12deg); opacity:1}
  60% {transform:translate(3px,1px) rotate(7deg)}
  80% {transform:translate(2px,1px) rotate(2deg)}
  100%{transform:translate(2px,1px) rotate(4deg); opacity:1}}

/* Шаги — ПУНКТИР СВЕРХУ ВНИЗ. Номер — кружок, как его круги. Впереди —
   пунктирное кольцо: ещё не пройдено. Идёт — фиолетовый лак, вокруг дышит
   розовый свет. Пройден — мята, и пунктир до него мятный. Сорвался —
   янтарь. Строка шага — свой слой (z-index:0), чтобы свет лёг под кружок. */
.app .trail{border-color:var(--pm-рамка); box-shadow:inset 0 1px 0 var(--pm-кромка)}
.app .trail li{position:relative; z-index:0}
.app .trail li:not(:last-child)::before{content:""; position:absolute; left:10px; top:32px; bottom:-8px;
  pointer-events:none; border-left:1.5px dashed color-mix(in oklab, var(--sand) 26%, transparent)}
.app .trail li.was:not(:last-child)::before{border-left-color:color-mix(in oklab, var(--ore) 80%, transparent)}
.app .trail .pip{width:21px; height:21px; border-radius:50%; font-family:var(--font-display); font-weight:700;
  border:1px dashed color-mix(in oklab, var(--sand) 40%, transparent); background:var(--stone-deep);
  color:var(--sand)}
.app .trail li.now .pip{position:relative; border:0; background:var(--lamp-mid); color:var(--on-lamp);
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--lamp-top) 55%, transparent)}
.app .trail li.now .pip::after{content:""; position:absolute; inset:-8px; z-index:-1; border-radius:50%;
  pointer-events:none;
  background:radial-gradient(closest-side, color-mix(in oklab, var(--lamp-hi) 50%, transparent), transparent);
  animation:pm-дышит 2.4s var(--ease-in-out) infinite}
@keyframes pm-дышит{0%,100%{transform:scale(.88); opacity:.35} 50%{transform:scale(1.08); opacity:1}}
.app .trail li.was .pip{border:0; background:var(--ore); color:var(--on-ore)}
.app .trail li.lost .pip{border:0; background:var(--rust); color:var(--on-rust)}

/* Плита выдачи — это и есть золото цепи: тёмная плита в золотом отсвете,
   прошита пунктиром, надпись и номинал — золотом, код — в пунктирной рамке,
   в углу — срезанный край золотой круг его штрихов. Блик по плите шаблон
   пускает один раз — у нас он золотой. */
.app .plita{border-color:color-mix(in oklab, var(--zhar) 42%, transparent);
  background:linear-gradient(180deg,
    color-mix(in oklab, var(--zhar) 12%, var(--stone-deep)) 0%, var(--stone-deep) 58%, var(--deep) 100%);
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--zhar) 32%, transparent),
    0 0 44px -18px var(--zhar), 0 20px 40px -26px #000}
.app .plita::before{content:""; position:absolute; inset:5px; pointer-events:none;
  border-radius:calc(var(--r-card) - 4px);
  border:1px dashed color-mix(in oklab, var(--zhar) 30%, transparent)}
/* Круг в углу — срезан краем плиты (у плиты overflow:hidden), меряется от
   неё: надпись сверху не позиционирована. */
.app .plita-top::before{content:""; position:absolute; right:-38px; top:-38px; width:92px; height:92px;
  border-radius:50%; pointer-events:none; background:var(--pm-штрих-з); opacity:.34}
.app .plita::after{background:linear-gradient(100deg, transparent,
  color-mix(in oklab, var(--zhar) 24%, transparent), transparent)}
.app .plita-top{font-family:var(--font-display); letter-spacing:.24em; color:var(--zhar);
  text-shadow:0 0 12px color-mix(in oklab, var(--zhar) 40%, transparent)}
.app .plita-uc{font-family:var(--font-display);
  background:linear-gradient(150deg, var(--cream) 0%, var(--zhar) 40%,
    color-mix(in oklab, var(--zhar) 72%, var(--lamp-hi)) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent}
.app .plita-id{color:var(--sand)}
.app .plita code{border:1px dashed color-mix(in oklab, var(--zhar) 42%, transparent);
  background:rgba(0,0,0,.42); color:var(--cream)}
/* Сбой выдачи — плашка «ошибки»: тёмная, с янтарной пунктирной кромкой,
   полосой слева и значком × в кольце. Ошибку видно не одним цветом, и
   фиолетовой кнопке «Повторить» под ней (сплошной лак) она не родня. */
.app .note.bad{position:relative; margin-top:12px; padding:13px 14px 13px 42px;
  border-radius:var(--r-card); font-size:var(--fs-md); line-height:var(--lh-text); color:var(--cream);
  border:1px dashed color-mix(in oklab, var(--rust) 55%, transparent);
  background:linear-gradient(180deg, color-mix(in oklab, var(--rust) 7%, var(--stone-deep)), var(--deep));
  box-shadow:inset 3px 0 0 var(--rust)}
.app .note.bad::before{content:""; position:absolute; left:13px; top:14px; width:18px; height:18px;
  border-radius:50%; pointer-events:none; box-shadow:inset 0 0 0 1.5px var(--rust);
  background:
    linear-gradient(45deg, transparent calc(50% - .8px), var(--rust) calc(50% - .8px) calc(50% + .8px),
      transparent calc(50% + .8px)) 50% 50% / 8px 8px no-repeat,
    linear-gradient(-45deg, transparent calc(50% - .8px), var(--rust) calc(50% - .8px) calc(50% + .8px),
      transparent calc(50% + .8px)) 50% 50% / 8px 8px no-repeat}


/* ── 12. УРОВНИ — ОТ ПЕРВОГО ШЛЕМА К ТРОЙКЕ ──────────────────────────────
   Ступени художника растут, как лут: первый шлем → второй → тройка →
   тройка с цепью → сброс на парашюте. Карточка уровня прошита пунктиром, за
   значком ступени — круг его штрихов: фиолетовый на первых ступенях,
   розовый на тройке и выше, золотой — у верхней. Момент — только при
   переходе на новую ступень: шаблон ставит на карточку признак
   .новая-ступень, когда ступень выросла с прошлого показа (skin.js,
   ступеньВыросла). Тогда шлем опускается на место, как надетый, круг
   проворачивается, за ним вспыхивает свет. Обычное открытие экрана — без
   вспышки. В лестнице золото — только у верхней ступени. */
.app .vip-now{position:relative; z-index:0; overflow:hidden; border-color:var(--pm-фиолет-тихо);
  background:linear-gradient(168deg,
    color-mix(in oklab, var(--lamp-mid) 20%, var(--stone)),
    color-mix(in oklab, var(--stone-deep) 94%, transparent) 70%);
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--lamp-top) 22%, transparent),
    0 0 36px -22px var(--lamp), var(--sh-lift);
  outline:1px dashed var(--pm-пунктир); outline-offset:-6px}
.app .vip-now.lvl3,
.app .vip-now.lvl4{border-color:color-mix(in oklab, var(--lamp-hi) 38%, transparent);
  outline-color:color-mix(in oklab, var(--lamp-hi) 30%, transparent)}
.app .vip-now.lvl4{border-color:color-mix(in oklab, var(--zhar) 44%, transparent);
  outline-color:color-mix(in oklab, var(--zhar) 30%, transparent);
  background:linear-gradient(168deg,
    color-mix(in oklab, var(--zhar) 11%, var(--stone)),
    color-mix(in oklab, var(--stone-deep) 94%, transparent) 70%);
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--zhar) 28%, transparent),
    0 0 40px -22px var(--zhar), var(--sh-lift)}
/* Круг за значком ступени — рисунок, а не свет: стоит всегда, неподвижно.
   Карточку разметка ровняет влево (skin.js, «ровно»), значок — первым в
   левом верхнем углу: центр круга — на центре значка (поле 18 + 23,
   поле 26 + 4 + 23). */
.app .vip-now::after{content:""; position:absolute; left:4px; top:16px; width:74px; height:74px;
  z-index:-1; border-radius:50%; pointer-events:none;
  background:var(--pm-штрих-ф); opacity:.5;
  box-shadow:inset 0 0 0 1.5px color-mix(in oklab, var(--lamp) 45%, transparent)}
.app .vip-now.lvl3::after{background:var(--pm-штрих-р); opacity:.42;
  box-shadow:inset 0 0 0 1.5px color-mix(in oklab, var(--lamp-hi) 45%, transparent)}
.app .vip-now.lvl4::after{background:var(--pm-штрих-з); opacity:.42;
  box-shadow:inset 0 0 0 1.5px color-mix(in oklab, var(--zhar) 50%, transparent)}
.app .vip-now.empty-id::after{content:none}
.app .vip-now .ic{width:46px; height:46px; margin-top:4px; color:var(--lamp); transform-origin:50% 85%;
  filter:drop-shadow(0 0 10px color-mix(in oklab, var(--lamp-mid) 60%, transparent))
    drop-shadow(0 3px 7px rgba(0,0,0,.5))}
/* Значок ступени — фиолетовый на всех ступенях: рост несут сами рисунки
   (парашют → каска → тройка → галстук → цепь), а галстук и цепь нарисованы
   вторым тоном — розовым и золотом; на розовом или золотом шлеме они бы
   слились. У тройки и выше меняется только свечение. */
.app .vip-now.lvl3 .ic{
  filter:drop-shadow(0 0 10px color-mix(in oklab, var(--lamp-hi) 45%, transparent))
    drop-shadow(0 3px 7px rgba(0,0,0,.5))}
.app .vip-now.lvl4 .ic{
  filter:drop-shadow(0 0 12px color-mix(in oklab, var(--zhar) 50%, transparent))
    drop-shadow(0 3px 7px rgba(0,0,0,.5))}
/* Новая ступень: шлем опускается на место, как надетый (вместо шаблонного
   «значок выскакивает» — тот же признак, свой момент)… */
.app .vip-now.новая-ступень .ic{animation:pm-надел 950ms var(--ease-out) 180ms both}
@keyframes pm-надел{
  0%  {transform:translateY(-26px) scale(.86); opacity:0}
  40% {transform:translateY(3px) scale(1.04); opacity:1}
  62% {transform:translateY(-3px) scale(1)}
  82% {transform:translateY(1px)}
  100%{transform:none; opacity:1}}
/* …круг штрихов проворачивается и встаёт на место, за ним — вспышка. */
.app .vip-now.новая-ступень::after{animation:pm-круг-ступени 1100ms var(--ease-out) 120ms both}
@keyframes pm-круг-ступени{0%{transform:rotate(-140deg) scale(.4); opacity:0}
  100%{transform:none; opacity:.46}}
.app .vip-now.новая-ступень::before{content:""; position:absolute; left:-34px; top:-22px;
  width:150px; height:150px; z-index:-2; border-radius:50%; pointer-events:none;
  background:radial-gradient(closest-side, color-mix(in oklab, var(--lamp-hi) 40%, transparent),
    color-mix(in oklab, var(--lamp-hi) 12%, transparent) 55%, transparent);
  animation:pm-вспышка 1200ms var(--ease-out) 200ms both}
.app .vip-now.новая-ступень.lvl4::before{
  background:radial-gradient(closest-side, color-mix(in oklab, var(--zhar) 46%, transparent),
    color-mix(in oklab, var(--zhar) 14%, transparent) 55%, transparent)}
.app .vip-now.empty-id{border-color:var(--pm-рамка); background:var(--pm-стекло)}
.app .vip-now > span,
.app .vip-left{color:var(--sand)}
.app .vip-now em{color:var(--deep); background:var(--lamp-hi); border-radius:var(--r-in);
  font-family:var(--font-display); font-weight:700; letter-spacing:.02em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 0 14px -4px var(--lamp-hi)}
.app .vip-now.lvl4 em{background:var(--zhar); box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 0 14px -4px var(--zhar)}
/* Полоса до следующей — от глубокого фиолетового к розовому, по ней штрихи. */
.app .vip-bar{height:8px; border-radius:2px; background:color-mix(in oklab, var(--deep) 80%, transparent);
  box-shadow:inset 0 0 0 1px color-mix(in oklab, var(--sand) 12%, transparent)}
.app .vip-bar i{border-radius:2px;
  background:var(--pm-штрих-б) 0 0 / auto 100%, linear-gradient(90deg, var(--lamp-lo), var(--lamp-mid) 50%, var(--lamp-hi));
  box-shadow:0 0 10px color-mix(in oklab, var(--lamp-hi) 50%, transparent)}
.app .vip-sheet,
.app .bindbox{border-color:var(--pm-рамка); background:var(--pm-стекло);
  box-shadow:inset 0 1px 0 var(--pm-кромка)}
/* Ступени не нажимаются: плоские строки через пунктир. */
.app .vip-table{gap:0}
.app .vip-row{position:relative; overflow:hidden; border:0; border-radius:0; background:none; box-shadow:none}
.app .vip-row + .vip-row{border-top:1px dashed var(--pm-пунктир)}
.app .vip-row span{color:var(--lamp); font-family:var(--font-display); font-weight:600}
/* Порог ступени — одной строкой: «от» отрывалось от суммы у длинного имени. */
.app .vip-row u{white-space:nowrap}
/* Своя ступень — накалённая кромка и полоса штрихов слева: «ты здесь». */
.app .vip-row.on{border-radius:var(--r-card); padding-left:20px;
  background:color-mix(in oklab, var(--lamp) 12%, var(--stone)); box-shadow:var(--pm-накал)}
.app .vip-row.on + .vip-row{border-top-color:transparent}
.app .vip-row.on::after{content:""; position:absolute; left:0; top:0; bottom:0; width:8px;
  pointer-events:none; background:var(--pm-штрих-р)}
/* «Вы здесь» шаблон ставит строкой под названием; перед названием у нас
   значок ступени (26 + 10 px) — строку ставим под буквы, а не под значок. */
.app .vip-row.on b::after{padding-left:36px; color:var(--lamp-top); font-weight:600}
/* Верхняя ступень — золото цепи: имя и знак золотом, за знаком — тёплый
   свет (гаснет к краям внутри своего слоя — среза нет). */
.app .vip-table .vip-row:last-child{z-index:0}
.app .vip-table .vip-row:last-child::before{content:""; position:absolute; left:0; top:-4px;
  width:60px; height:56px; z-index:-1; pointer-events:none;
  background:radial-gradient(closest-side at 50% 58%, color-mix(in oklab, var(--zhar) 40%, transparent),
    color-mix(in oklab, var(--lamp-hi) 14%, transparent) 55%, transparent)}
.app .vip-table .vip-row.on:last-child::before{left:10px}
/* Имя верхней ступени длинное («Пока молодой») и набрано Unbounded:
   одной строкой оно выталкивало скидку за край строки — переносится. */
.app .vip-table .vip-row:last-child b{display:grid; grid-template-columns:auto minmax(0, 1fr);
  align-items:center; font-family:var(--font-display); letter-spacing:0;
  color:var(--zhar); text-wrap:balance;
  text-shadow:0 0 12px color-mix(in oklab, var(--zhar) 40%, transparent)}
/* Значок и имя — сеткой: второе слово переносится рядом со значком, а не
   под него; «вы здесь» — под именем. */
.app .vip-table .vip-row.on:last-child b::after{grid-column:2; padding-left:0}
/* Ступени — рисунок художника; на 18 px их рост не читался. Размер и цвет
   заданы в разметке строкой стиля — перебиваем её. Все фиолетовые: галстук
   и цепь у художника — вторым тоном, розовым и золотом. */
.app .vip-row b > svg.ic{width:26px !important; height:26px !important; color:var(--lamp) !important;
  vertical-align:-8px !important; margin-right:10px !important}


/* ── 13. О НАС ───────────────────────────────────────────────────────────
   Шаги — сведения: плоско, прямо на ночи, номер слева, дело справа. Номер
   — фиолетовый круг, белая цифра: его круги. Вопросы раскрываются — у них
   плашка и стрелка; раскрытый загорается фиолетовой полосой слева. */
.app .steps li{border-color:transparent; background:none; box-shadow:none;
  display:grid; grid-template-columns:auto minmax(0, 1fr); column-gap:14px;
  align-items:start; padding:10px 2px}
.app .steps li > .step-n{grid-row:1 / span 2; margin:1px 0 0}
.app .steps li > b,
.app .steps li > p{grid-column:2}
.app .steps li > b{margin-bottom:4px}
.app .step-n,
.шаги-список li span{border:0; border-radius:50%; color:var(--on-lamp); background:var(--metal);
  font-family:var(--font-display); font-weight:800;
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--lamp-top) 55%, transparent),
    0 0 12px -4px var(--lamp-hi)}
.app .step-n{width:30px; height:30px; font-size:var(--fs-md)}
.app .asks details{border-color:var(--pm-рамка); background:var(--pm-стекло);
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--cream) 10%, transparent)}
.app .asks details[open]{border-color:var(--pm-фиолет-тихо);
  box-shadow:inset 3px 0 0 var(--lamp), inset 0 1px 0 color-mix(in oklab, var(--cream) 10%, transparent)}
.app .asks details[open] summary{color:var(--cream)}
.app .asks details[open] summary::after{border-color:var(--lamp)}


/* ── 14. МОИ ЗАКАЗЫ ──────────────────────────────────────────────────────
   Строка открывает заказ — значит это кнопка: объём и шеврон справа. Полоса
   слева — исход: мята — выдан, янтарь — сбой или отмена, фиолетовый — в
   работе. */
.app .ord{position:relative; padding-right:32px; border-color:color-mix(in oklab, var(--lamp) 22%, transparent);
  background:var(--pm-стекло); box-shadow:inset 3px 0 0 var(--pm-рамка-ярко), var(--pm-объём)}
.app .ord::after{content:""; position:absolute; right:14px; top:50%; width:8px; height:8px;
  margin-top:-4px; pointer-events:none; border:solid var(--sand); border-width:0 2px 2px 0;
  transform:rotate(-45deg)}
.app .ord:has(.s-done){box-shadow:inset 3px 0 0 var(--ore), var(--pm-объём)}
.app .ord:has(.s-failed),
.app .ord:has(.s-canceled){box-shadow:inset 3px 0 0 var(--rust), var(--pm-объём)}
.app .ord:has(.s-issuing),
.app .ord:has(.s-paid){box-shadow:inset 3px 0 0 var(--lamp), var(--pm-объём)}
.app .ord:active{scale:.98; border-color:var(--pm-фиолет)}
.app .ord-sum{font-family:var(--font-display); font-weight:600; color:var(--cream)}
.app .ord-st{border-radius:var(--r-in)}
.app .ord-st.s-issuing,
.app .ord-st.s-paid{color:var(--lamp); background:color-mix(in oklab, var(--lamp) 14%, transparent)}
/* Пусто — его круг над словами: пустой круг штрихов, как пустой слот. */
.app .пусто-плита{position:relative; overflow:hidden; border-color:var(--pm-рамка); background:var(--pm-стекло);
  box-shadow:inset 0 1px 0 var(--pm-кромка), var(--sh-card)}
.app .пусто-плита::before{content:""; position:absolute; right:-36px; top:-36px; width:96px; height:96px;
  border-radius:50%; pointer-events:none; background:var(--pm-штрих-ф); opacity:.5}
.app .пусто-плита .ic{color:var(--lamp)}
.app .пусто-плита b{font-family:var(--font-display); text-transform:uppercase; letter-spacing:.04em;
  font-size:var(--fs-base)}


/* ── 15. ВЫБОР РЕГИОНА И ВОПРОСЫ ─────────────────────────────────────────
   Экраны поверх всего — та же графитовая ночь. Выбранный регион —
   накалённая кромка и полоса штрихов слева, как своя ступень. Над вопросом
   «где ваш аккаунт» вместо булавки — его шлем: покачивается, думает вместе
   с покупателем. */
.регионы{background:
  radial-gradient(90% 30% at 100% 0%, color-mix(in oklab, var(--lamp-mid) 14%, transparent), transparent 72%),
  var(--deep)}
.регионы-верх{border-bottom-color:var(--pm-рамка)}
.регион{position:relative; overflow:hidden; border-color:var(--pm-рамка); background:var(--pm-стекло);
  color:var(--sand)}
.регион b{color:var(--cream)}
.регион.on{color:var(--cream); background:var(--pm-выбрано); border-color:transparent;
  box-shadow:var(--pm-накал); padding-left:20px}
.регион.on::after{content:""; position:absolute; left:0; top:0; bottom:0; width:8px;
  pointer-events:none; background:var(--pm-штрих-р)}
.регион.on u{color:var(--lamp-top)}
/* Значок-символ шаблон запекает в картинку цветом чернил — под свою
   заливку лаком. У нас выбранный ряд тёмный, и тёмный значок на нём тонул.
   Высветляем ТОЛЬКО вклеенные символы: флаги стран — снимки. */
.регион.on img[src^="data:image/svg"]{filter:brightness(0) invert(1)
  drop-shadow(0 0 4px var(--lamp))}
.регион:not(.on):active{background:color-mix(in oklab, var(--lamp) 14%, transparent)}
.регионы .назад{color:var(--sand); border-color:var(--pm-рамка);
  background:color-mix(in oklab, var(--stone-2) 60%, transparent)}
.регионы-поиск input{border-color:var(--pm-рамка);
  background:color-mix(in oklab, var(--stone-2) 50%, transparent); color:var(--cream)}
.регионы-поиск input:focus{outline:none; border-color:var(--fo-line); box-shadow:var(--fo-ring)}

.вопрос{background:
  radial-gradient(90% 30% at 100% 0%, color-mix(in oklab, var(--lamp-mid) 14%, transparent), transparent 72%),
  var(--deep)}
.вопрос-глубь .шар{background:
  var(--pm-штрих-ф) 50% 50% / 100% 100% no-repeat;
  opacity:.28}
.вопрос-глубь .метка{width:46px; height:46px; border-radius:0; rotate:0deg; opacity:.95;
  translate:-50% 0; background:var(--lamp);
  -webkit-mask:var(--pm-шлем) center / contain no-repeat; mask:var(--pm-шлем) center / contain no-repeat;
  transform-origin:50% 90%; animation:pm-думает 3.2s var(--ease-in-out) infinite}
.вопрос-да{box-shadow:var(--pm-лак)}
.вопрос-нет{background:color-mix(in oklab, var(--stone-2) 70%, transparent);
  border-color:var(--pm-рамка); box-shadow:inset 0 1px 0 var(--pm-кромка)}
.шаги-список li span{width:28px; flex-basis:28px}
.шаги-список input{border-color:var(--pm-рамка);
  background:color-mix(in oklab, var(--stone-2) 50%, transparent)}


/* ── 16. ЗАГРУЗКА И «НА РАБОЧИЙ СТОЛ» ────────────────────────────────── */
/* Заставка — его баннер: имя контуром повёрнутыми рядами во весь экран,
   в углах — срезанные краем круги штрихов, розовый и фиолетовый; по
   центру — шлем и вордмарк. Неподвижно: знак на заставке и так дышит. */
#грузим::before{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(170deg,
    color-mix(in oklab, var(--lamp-hi) 16%, transparent),
    color-mix(in oklab, var(--lamp) 13%, transparent) 55%,
    color-mix(in oklab, var(--cream) 8%, transparent));
  -webkit-mask:var(--pm-вордмарк) 50% 50% / cover no-repeat;
          mask:var(--pm-вордмарк) 50% 50% / cover no-repeat}
#грузим::after{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    var(--pm-штрих-р) -60px -60px / 180px 180px no-repeat,
    var(--pm-штрих-ф) calc(100% + 70px) calc(100% + 70px) / 220px 220px no-repeat;
  -webkit-mask:radial-gradient(circle 90px at 30px 30px, #000 99%, transparent 100%),
    radial-gradient(circle 110px at calc(100% - 40px) calc(100% - 40px), #000 99%, transparent 100%);
  -webkit-mask-composite:source-over;
  mask:radial-gradient(circle 90px at 30px 30px, #000 99%, transparent 100%),
    radial-gradient(circle 110px at calc(100% - 40px) calc(100% - 40px), #000 99%, transparent 100%);
  mask-composite:add; opacity:.55}
#грузим > div > svg:first-child{color:var(--lamp);
  filter:drop-shadow(0 0 12px color-mix(in oklab, var(--lamp-mid) 80%, transparent))}
#грузим .грузим-слово{color:var(--cream); filter:drop-shadow(0 4px 12px rgba(0,0,0,.75))}
/* Ушедшая заставка прозрачна и невидима, но не снята, и её дыхание, полоса и
   фразы крутились бы до конца сеанса. !important — потому что дыхание и
   полоса заданы прямо в атрибуте style, а его без него не перебить. */
#грузим.ушёл *{animation:none !important}
.накрыльцо{border-color:var(--pm-фиолет-тихо);
  background:color-mix(in oklab, var(--stone-2) 94%, transparent);
  box-shadow:inset 0 1px 0 var(--pm-кромка), var(--sh-lift)}
.накрыльцо-знак{color:var(--lamp)}
.накрыльцо-да{background:var(--metal); color:var(--on-lamp); box-shadow:var(--pm-лак)}


/* ── 17. ФИРМЕННЫЕ МЕСТА: арт, вордмарк, салют, стример, пасхалка ────────
   Места строит шаблон, рисунки — художник; здесь только то, как они живут
   в его ночи. */

/* Арт растворяется в ночи, а не обрывается краем картинки: низ уходит в
   прозрачность маской, и под ним проступает тот же фон, что у всей
   витрины. */
.app .hero-art{
  -webkit-mask-image:linear-gradient(180deg, #000 0%, #000 62%, transparent 100%);
          mask-image:linear-gradient(180deg, #000 0%, #000 62%, transparent 100%)}
/* Арт — во всю свою высоту: в колонке монитора (430) шлем уходил бы за
   верхний край. Высота — по доле арта (600/750), но не больше, чем нужно
   колонке. */
.app .hero-art{height:min(80vw, 344px)}
.app .banner-art{
  -webkit-mask-image:linear-gradient(180deg, transparent 0%, #000 12%, #000 70%, transparent 100%);
          mask-image:linear-gradient(180deg, transparent 0%, #000 12%, #000 70%, transparent 100%)}
/* Вордмарк — белым, как на его баннере; тёмная тень держит буквы на
   светлом месте арта. Тень неподвижна — фильтр считается раз. */
.app .home-слово{color:var(--cream); filter:drop-shadow(0 3px 10px rgba(0,0,0,.7))}
.app .hero-kicker{color:var(--lamp-hi); letter-spacing:.3em}
.app .hero-note{color:var(--sand)}

/* Салют — его крестики, «$» цепи, штрихи и искры. Знаки идут по кругу
   (× $ / ✦), и первым в слое стоит зарево, поэтому номер ребёнка сдвинут
   на один: крестики розовые, «$» — золото цепи, штрихи — фиолетовые, искры
   — белые. */
.proboy .zerno.глиф{text-shadow:0 0 10px color-mix(in oklab, currentColor 65%, transparent),
  0 2px 8px rgba(0,0,0,.5)}
.proboy .zerno.глиф:nth-child(4n+2){color:var(--lamp-hi); font-size:26px}
.proboy .zerno.глиф:nth-child(4n+3){color:var(--zhar); font-size:28px}
.proboy .zerno.глиф:nth-child(4n){color:var(--lamp); font-size:30px}
.proboy .zerno.глиф:nth-child(4n+1){color:var(--cream); font-size:16px}
.proboy .zarevo{background:radial-gradient(circle,
  color-mix(in oklab, var(--cream) 88%, transparent),
  color-mix(in oklab, var(--zhar) 55%, transparent) 30%,
  color-mix(in oklab, var(--lamp-hi) 18%, transparent) 55%, transparent 72%)}

/* Карточка стримера — это он: стекло, по левой кромке — полоса его розовых
   штрихов, в правом верхнем углу — его четыре тире, как в углу баннера.
   Аватар — в кольце от фиолетового к розовому. Каналы — кнопки: объём и
   фиолетовый значок. */
.app .стример{position:relative; overflow:hidden; padding-left:24px; border-color:var(--pm-рамка);
  background:var(--pm-стекло); box-shadow:inset 0 1px 0 var(--pm-кромка), var(--sh-card)}
.app .стример::before{content:""; position:absolute; left:0; top:0; bottom:0; width:9px;
  pointer-events:none; background:var(--pm-штрих-р)}
.app .стример::after{content:""; position:absolute; right:14px; top:14px; width:58px; height:4px;
  pointer-events:none; background:var(--pm-четыре-р)}
.app .стример-лицо{border:0; padding:2px;
  background:linear-gradient(140deg, var(--lamp-mid), var(--lamp-hi)) border-box;
  box-shadow:0 0 0 3px color-mix(in oklab, var(--lamp-mid) 18%, transparent),
    0 0 18px -4px color-mix(in oklab, var(--lamp-hi) 70%, transparent)}
.app .стример-имя b{font-size:var(--fs-base); letter-spacing:.03em}
.app .стример-имя span{color:var(--sand)}
.app .стример-ссылка{color:var(--cream); border-color:color-mix(in oklab, var(--lamp) 30%, transparent);
  border-radius:var(--r-in); background:var(--pm-стекло); box-shadow:var(--pm-объём)}
.app .стример-ссылка:active{box-shadow:var(--pm-накал)}
.app .стример-ссылка .ic{color:var(--lamp)}

/* Пасхалка — строкой в фиолетовой рамке с розовым отсветом. */
.пасхалка{border-color:var(--pm-фиолет);
  box-shadow:0 0 0 1px color-mix(in oklab, var(--lamp) 30%, transparent),
    0 0 24px -6px var(--lamp-hi), 0 14px 30px -16px #000}


/* ── 18. ТИХИЙ РЕЖИМ ─────────────────────────────────────────────────────
   Кто просил меньше движения — получает тот же смысл без него: шлем сразу
   стоит как нарисован, золотой свет и круг уже горят ровно, искр, блика и
   сверка нет, круг за взятым товаром уже стоит. */
@media (prefers-reduced-motion:reduce){
  .app .ore.incart .pile::before,
  .app .dock:not(.away) .act::after,
  .app .лз.ждём,
  .app .digger.done .лз.готово,
  .app .digger.bad .лз.беда,
  .app .digger.done .digger-face::before,
  .app .digger.done .digger-face::after,
  .app .digger.done .лицо-заказа::before,
  .app .digger.done .лицо-заказа::after,
  .app .digger:not(.done):not(.bad) .digger-bar i::after,
  .app .trail li.now .pip::after,
  .app .vip-now.новая-ступень .ic,
  .app .vip-now.новая-ступень::before,
  .app .vip-now.новая-ступень::after,
  .вопрос-глубь .метка{animation:none}
  .app .gcard.big::before,
  .app .лоб-уровни,
  .app .home-vows .лоб-уровни .ic{transition:none}
  .app .digger.done .digger-face::after,
  .app .vip-now.новая-ступень::before{opacity:.32}
  .app .digger.done .digger-face::before{opacity:.34}
  .app .trail li.now .pip::after{opacity:.7}
  .app .digger.done .лицо-заказа::before,
  .app .digger.done .лицо-заказа::after{opacity:0}
  .app .digger.bad .лз.беда{transform:translate(2px,1px) rotate(4deg)}
  .вопрос-глубь .метка{transform:rotate(-4deg)}
}


/* ── 19. ТЕЛЕФОННАЯ КОЛОНКА НА МОНИТОРЕ ──────────────────────────────────
   Ночь и вордмарк прибиты к окну, и на мониторе встали бы во всю ширину
   экрана, мимо колонки. В колонке они живут в её краях, а по бокам — его
   баннер во весь монитор: имя контуром крупными повёрнутыми рядами, круги
   его штрихов у краёв колонки — розовый слева сверху, фиолетовый справа
   снизу, — его четыре тире и крестики. Всё неподвижно.
   Бока — это фон <html> и его слои; видно их потому, что в колонке шаблон
   делает <body> прозрачным (skin.css, «Телефонная колонка»). */
@media (min-width:600px){
  html[data-телефон] .app::before,
  html[data-телефон] .app::after{left:var(--телефон-поле); right:var(--телефон-поле)}
}
@media (min-width:900px){
  html[data-телефон]{background:
    /* четыре тире: фиолетовые — слева внизу, розовые — справа вверху */
    var(--pm-четыре-ф) calc(50% - 400px) calc(100% - 96px) / 58px 5px no-repeat,
    var(--pm-четыре-р) calc(50% + 400px) 92px / 58px 5px no-repeat,
    radial-gradient(34% 60% at calc(50% - 330px) 20%, color-mix(in oklab, var(--lamp-hi) 11%, transparent), transparent 72%),
    radial-gradient(34% 60% at calc(50% + 330px) 82%, color-mix(in oklab, var(--lamp-mid) 20%, transparent), transparent 72%),
    linear-gradient(180deg, var(--rock), var(--deep) 70%);
    background-attachment:fixed}
  /* Имя контуром — крупно, рядами во весь монитор. */
  html[data-телефон]::before{content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
    background:linear-gradient(100deg,
      color-mix(in oklab, var(--lamp-hi) 16%, transparent),
      color-mix(in oklab, var(--lamp) 13%, transparent) 50%,
      color-mix(in oklab, var(--lamp-mid) 18%, transparent));
    -webkit-mask:var(--pm-вордмарк) 50% 50% / 760px auto repeat;
            mask:var(--pm-вордмарк) 50% 50% / 760px auto repeat}
  /* Круги его штрихов у краёв колонки: полосы — одной маской, круги —
     другими, пересечение; цвет от розового слева к фиолетовому справа. */
  html[data-телефон]::after{content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
    background:linear-gradient(90deg, var(--lamp-hi) 0%, var(--lamp-hi) 40%, var(--lamp-mid) 60%, var(--lamp-mid) 100%);
    opacity:.5;
    -webkit-mask:
      repeating-linear-gradient(152deg, #000 0 3px, transparent 3px 9px),
      radial-gradient(circle 130px at calc(50% - 300px) 150px, #000 99%, transparent 100%),
      radial-gradient(circle 170px at calc(50% + 330px) calc(100% - 120px), #000 99%, transparent 100%),
      radial-gradient(circle 60px at calc(50% + 470px) 250px, #000 99%, transparent 100%);
    -webkit-mask-composite:source-in, source-over, source-over;
    mask:
      repeating-linear-gradient(152deg, #000 0 3px, transparent 3px 9px),
      radial-gradient(circle 130px at calc(50% - 300px) 150px, #000 99%, transparent 100%),
      radial-gradient(circle 170px at calc(50% + 330px) calc(100% - 120px), #000 99%, transparent 100%),
      radial-gradient(circle 60px at calc(50% + 470px) 250px, #000 99%, transparent 100%);
    mask-composite:intersect, add, add}
}


/* ── 20. МЕСТО ПОД ВРЕМЕННЫЙ БЛОК ДЕМО ───────────────────────────────────
   Ниже ведущий держит временный блок показа (строка о кассе, документы) —
   он должен стоять последним, чтобы перебить всё выше. */


/* ╔═══════════════════════════════════════════════════════════════════╗
   ║  ВРЕМЕННО — СНЯТЬ ПЕРЕД ЗАПУСКОМ. Тот же блок, что у ANTI-HERO,   ║
   ║  MAGISTOR, TROUBLEMAKER и HIBAKO: владелец просил убирать это на  ║
   ║  время показа макета блогеру. Здесь — с 28.09.2026. Вернуть потом.║
   ╚═══════════════════════════════════════════════════════════════════╝
   Строка о поддельной кассе (#tail в мини-аппе, #sig span на сайте) —
   ВЕРНУТЬ вместе с настоящей кассой. Документы без реквизитов продавца —
   ВЕРНУТЬ обязательно до первой настоящей продажи. */
#tail{display:none !important}
#sig span{display:none !important}
footer.fine{display:none !important}
