/* ═══ NWEALESS — СЛОЙ ТЕМЫ поверх облика zaboy ═════════════════════════
   «Пульс». Магазин — чёрная витрина ювелира: чернёное серебро, много
   пустого чёрного, крупные сдержанные буквы заглавными с большим разрядом.
   Через всё проходит одна тонкая линия старого золота — пульс. Ровная —
   пока ждём, удар — когда что-то стало вашим, пик — когда заказ выдан.

   Язык темы, у каждого знака своя работа:
   • ЛИНИЯ ПУЛЬСА — единственный цвет. Под выбранной вкладкой, по кромке
     корзины, на взятом номинале, полосой хода заказа и уровня, по низу
     главной плитки. Ровная линия с одним ударом;
   • СЕРЕБРЯНАЯ КРОМКА — полированный край, как у ювелирки: светлее сверху
     слева, темнее к низу. Только у того, что надо запомнить: сумма к
     оплате, плита выдачи, карточка уровня, стример, кнопка уровней, главная
     плитка. Остальное — тонкая нить серебра;
   • ЗАКЛЁПКИ — четыре точки по углам тех же плит. Мелко;
   • ЛИЛИЯ и КИНЖАЛ — разделители, по одному на экран и не на каждом:
     кинжал — застёжка на сумме к оплате, лилия — перед вопросами «О нас» и
     перед лестницей уровней;
   • ЗВЕЗДА-КИНЖАЛ — салют выдачи вместе с лилией и искрами;
   • ЗЕРНО — неподвижная плёнка поверх ночи, еле заметно.

   Цвета. Чёрный, графит, серебро (--sand), сталь (--sand-dim), белый лёд
   (--cream). Старое золото (--lamp) — действие и пульс: кнопка оплаты,
   выбранное, взятое, линии хода. Значки — серебром, не золотом: золото на
   каждом значке стало бы пестротой. «Получилось» — холодный лёд (--ore),
   «ошибка» — гранат (--rust): оба далеко от золота по тону
   (theme/contrast.py), и ошибка всегда подана ещё и формой — рваной
   кромкой и знаком ×, а не одним цветом.

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

/* ── 0. ТОНА, КРОМКИ, ЗАКЛЁПКИ ─────────────────────────────────────────
   Не новые цвета, а смеси палитры: магазин перекрашивается из brand.json
   целиком, здесь нет ни одного цвета числом. */
:root{
  --nw-нить:color-mix(in oklab, var(--sand) 15%, transparent);
  --nw-нить-ярко:color-mix(in oklab, var(--sand) 28%, transparent);
  --nw-блик:color-mix(in oklab, var(--cream) 9%, transparent);
  --nw-золото-нить:color-mix(in oklab, var(--lamp) 62%, transparent);
  --nw-золото-тихо:color-mix(in oklab, var(--lamp) 26%, transparent);
  /* Стекло — плотное, верх светлее: свет витрины падает сверху. */
  --nw-стекло:linear-gradient(180deg,
    color-mix(in oklab, var(--stone-2) 94%, transparent) 0%,
    color-mix(in oklab, var(--stone) 96%, transparent) 55%,
    color-mix(in oklab, var(--stone-deep) 97%, transparent) 100%);
  /* Чернь — непрозрачная плита под серебряной кромкой: сквозь полупрозрачную
     проступил бы градиент кромки. */
  --nw-чернь:linear-gradient(180deg, var(--stone-2) 0%, var(--stone) 38%, var(--stone-deep) 100%);
  /* Серебряная кромка: полированный край — блик слева сверху, провал,
     второй блик, тень к низу. Кладётся фоном border-box под плитой. */
  --nw-кромка:linear-gradient(158deg,
    color-mix(in oklab, var(--cream) 82%, transparent) 0%,
    color-mix(in oklab, var(--sand) 20%, transparent) 22%,
    color-mix(in oklab, var(--sand) 58%, transparent) 48%,
    color-mix(in oklab, var(--sand) 12%, transparent) 74%,
    color-mix(in oklab, var(--cream) 44%, transparent) 100%);
  --nw-кромка-золото:linear-gradient(158deg,
    var(--lamp-top) 0%,
    color-mix(in oklab, var(--lamp-lo) 70%, transparent) 26%,
    var(--lamp) 52%,
    color-mix(in oklab, var(--lamp-lo) 55%, transparent) 78%,
    var(--lamp-hi) 100%);
  /* Заклёпка: серебряная головка с бликом и тенью, 6 × 6. */
  --nw-заклёпка:radial-gradient(circle at 42% 38%, var(--cream) 0 .55px,
    var(--sand) 1.1px, var(--sand-dim) 1.8px, rgba(0,0,0,.7) 2.3px, transparent 2.8px);
  --nw-заклёпки:var(--nw-заклёпка) 7px 7px / 6px 6px no-repeat,
    var(--nw-заклёпка) calc(100% - 7px) 7px / 6px 6px no-repeat,
    var(--nw-заклёпка) 7px calc(100% - 7px) / 6px 6px no-repeat,
    var(--nw-заклёпка) calc(100% - 7px) calc(100% - 7px) / 6px 6px no-repeat;
  /* Гравировка: буква вдавлена в металл — тень сверху внутрь, блик снизу. */
  --nw-гравировка:0 1px 0 rgba(0,0,0,.9), 0 -1px 0 rgba(255,255,255,.06);
  /* Мелкая подпись заглавными — Onest: Unbounded в мелком кегле груб. */
  --nw-ярлык:600 10px/1.2 var(--font);
  /* Объём кнопки: светлая грань сверху, тень снизу — нажимается. */
  --nw-объём:inset 0 1px 0 var(--nw-блик), inset 0 -1px 0 rgba(0,0,0,.5),
    0 10px 20px -14px rgba(0,0,0,.95);
  /* Лак старого золота на главной кнопке: кант сверху, тень снизу, без
     свечения — золото не светится, а отражает. */
  --nw-лак:inset 0 1px 0 color-mix(in oklab, var(--lamp-top) 75%, transparent),
    inset 0 -1px 0 rgba(0,0,0,.28), 0 0 0 1px color-mix(in oklab, var(--lamp-lo) 70%, transparent),
    0 12px 24px -16px rgba(0,0,0,.95);
  /* Разделитель «пульс»: нить, удар посередине, нить. Маской. */
  --nw-линия-удар:var(--nw-удар) 50% 50% / 13px 16px no-repeat,
    linear-gradient(#000, #000) 0 50% / calc(50% - 6px) 1px no-repeat,
    linear-gradient(#000, #000) 100% 50% / calc(50% - 6px) 1px no-repeat;
  --nw-линия-лилия:var(--nw-лилия) 50% 50% / 13px 14px no-repeat,
    linear-gradient(#000, #000) 0 50% / calc(50% - 16px) 1px no-repeat,
    linear-gradient(#000, #000) 100% 50% / calc(50% - 16px) 1px no-repeat;
}

/* >>> МОТИВЫ — пишет design/nwealess/theme/motif.py, руками не править */
/* свои рисунки темы: пульс, лесенка, лилия, кинжал, звезда-кинжал, зерно */
:root{
  --nw-пульс:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 14'%3E%3Cpath d='M0.8 8H15L17.6 5.8L20 9.6L23.6 1.4L27.4 12.6L29.8 8H47.2' fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --nw-удар:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20'%3E%3Cpath d='M0 11.4H3.2L5.4 9.4L6.9 12.2L9.3 1.6L11.9 18.4L13.4 11.4H16' fill='none' stroke='black' stroke-width='1.3' stroke-linejoin='round' stroke-linecap='round'/%3E%3C/svg%3E");
  --nw-лесенка:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 24'%3E%3Cpath d='M1 14H7.5L9.4 12.4L11.4 15.4L13 14H27.5L29.8 10.8L32.2 16.8L34.2 14H48.5L51.2 8.4L54.2 18.6L56.6 14H70L73.4 5.4L77 20.2L79.8 14H92.4L96.6 1.6L101 22.6L104.4 14H119' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --nw-лилия:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 26'%3E%3Cpath d='M12 1C13.9 3.4 15.4 6.3 15 9.3C14.7 11.7 13.6 13.5 13 15H11C10.4 13.5 9.3 11.7 9 9.3C8.6 6.3 10.1 3.4 12 1ZM10.6 15C10.1 12.4 8.8 10.3 6.7 9.7C4.7 9.1 2.6 10.1 2.2 12.1C1.9 13.8 3 15.1 4.6 15C3.9 14.4 3.8 13.3 4.5 12.6C5.5 11.7 7.4 12.3 8.5 13.6C8.9 14.1 9.2 14.6 9.4 15ZM13.4 15C13.9 12.4 15.2 10.3 17.3 9.7C19.3 9.1 21.4 10.1 21.8 12.1C22.1 13.8 21 15.1 19.4 15C20.1 14.4 20.2 13.3 19.5 12.6C18.5 11.7 16.6 12.3 15.5 13.6C15.1 14.1 14.8 14.6 14.6 15ZM5.4 15.1H18.6V17.2H5.4ZM10.7 17.3H13.3C13.1 19.7 12.7 21.8 12 23.8C11.3 21.8 10.9 19.7 10.7 17.3ZM9.9 17.3C9.3 18.9 8.1 19.9 6.5 20C5.5 20.1 4.8 19.4 5 18.6C5.4 19.1 6.2 19.1 6.9 18.7C7.7 18.3 8.2 17.8 8.4 17.3ZM14.1 17.3C14.7 18.9 15.9 19.9 17.5 20C18.5 20.1 19.2 19.4 19 18.6C18.6 19.1 17.8 19.1 17.1 18.7C16.3 18.3 15.8 17.8 15.6 17.3Z'/%3E%3C/svg%3E");
  --nw-кинжал:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 12'%3E%3Cpath fill-rule='evenodd' d='M0.6 6L3.1 3.5L5.6 6L3.1 8.5ZM6.2 4.8H8.6V7.2H6.2ZM9.2 4.8H11.6V7.2H9.2ZM12.2 4.8H14.6V7.2H12.2ZM15.3 2.4L16.3 0.6L17.3 2.4V9.6L16.3 11.4L15.3 9.6ZM17.3 4.5H20.3V7.5H17.3ZM20.3 4L61.6 4.9L71.4 6L61.6 7.1L20.3 8ZM22.6 5.62L53 5.82V6.18L22.6 6.38Z'/%3E%3C/svg%3E");
  --nw-звезда:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 32'%3E%3Cpath d='M10 0L11.3 10.9L18.6 13.4L11.3 15.9L10 32L8.7 15.9L1.4 13.4L8.7 10.9Z'/%3E%3C/svg%3E");
  --nw-зерно:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='z' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.9 0 0 0 -.62'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23z)'/%3E%3C/svg%3E");
}
/* <<< МОТИВЫ */

/* Углы — строже шаблонных: витрина ювелира, а не игровые пилюли. */
.app, .регионы, .вопрос, .накрыльцо, .пасхалка{--r-card:6px; --r-in:3px; --r-pill:3px}

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


/* ── 1. НОЧЬ: ЧЁРНОЕ НА ЧЁРНОМ, ХОЛОДНЫЙ СВЕТ И ЗЕРНО ───────────────────
   Два неподвижных слоя под всей витриной. Нижний — ночь: сверху падает
   холодный свет витрины, к краям темнеет. Верхний — зерно плёнки, еле
   заметное: чёрный становится материалом, а не пустотой. */
.app::before,
.app::after{content:""; position:fixed; inset:0; z-index:-1; pointer-events:none}
.app::before{
  background:
    radial-gradient(90% 44% at 50% -8%, color-mix(in oklab, var(--sand) 9%, transparent), transparent 70%),
    radial-gradient(140% 90% at 50% 45%, transparent 55%, color-mix(in oklab, var(--deep) 80%, transparent) 100%),
    linear-gradient(180deg, var(--rock) 0%, var(--deep) 62%)}
.app::after{background:var(--cream); opacity:.05;
  -webkit-mask:var(--nw-зерно) 0 0 / 160px 160px repeat;
          mask:var(--nw-зерно) 0 0 / 160px 160px repeat}

/* Пыль в свете лампы — мир шахты. Здесь её нет. */
.app .motes{display:none !important}

/* Полоса шапки и полоса вкладок липнут к верху и несут свой фон. */
.app .bar{background:linear-gradient(180deg,
  color-mix(in oklab, var(--rock) 97%, transparent) 72%, transparent)}
.app .tabs{background:linear-gradient(180deg, transparent 0,
  color-mix(in oklab, var(--rock) 92%, transparent) 12px,
  color-mix(in oklab, var(--rock) 92%, transparent) 60%, transparent)}


/* ── 2. ЗАГОЛОВКИ — крупно, сдержанно, заглавными ──────────────────────
   Unbounded в средней насыщенности, заглавными и с разрядом: не кричит,
   а стоит. Буквы вдавлены в металл (гравировка). */
.app .about-head h2,
.app .screen[data-screen="order"] .order-head h2,
.app .где b,
.app .vip-now b,
.app #digTitle,
.app .bindbox h2,
.вопрос-тело h2,
.регионы-верх b{font-family:var(--font-display); text-transform:uppercase;
  font-weight:500; letter-spacing:.07em; line-height:var(--lh-tight);
  color:var(--cream); text-shadow:var(--nw-гравировка)}
.app .about-head h2{font-size:var(--fs-lg)}
.app .screen[data-screen="order"] .order-head h2{font-size:var(--fs-xl); letter-spacing:.05em}
.app .где b{font-size:var(--fs-lg); letter-spacing:.06em}
.app .vip-now b{font-size:var(--fs-xl); letter-spacing:.05em}
.app #digTitle{font-size:var(--fs-base); letter-spacing:.12em}
.app .bindbox h2{font-size:var(--fs-md); letter-spacing:.12em}
.вопрос-тело h2{font-size:var(--fs-lg); letter-spacing:.05em; text-wrap:balance}
.регионы-верх b{font-size:var(--fs-sm); letter-spacing:.2em}
/* Подписи-ярлыки — мелко, заглавными, с большим разрядом, сталью. */
.app .vip-h,
.app .row h3{font:var(--nw-ярлык); font-size:var(--fs-cap); text-transform:uppercase;
  letter-spacing:.26em; color:var(--sand)}
.app .vip-h{margin-bottom:12px}
.app .about-head p,
.app .order-head p{color:var(--sand-dim)}


/* ── 3. ШАПКА ПОЛКИ ──────────────────────────────────────────────────────
   Знак — серебро, имя — лёд. «Все игры» и «Заказы» — дорога, а не
   действие: тонкая серебряная нить, подпись заглавными. Золота в шапке
   нет — оно для оплаты. */
.app .logo{color:var(--cream); font-family:var(--font-display); font-weight:500;
  font-size:10px; letter-spacing:.1em}
.app .logo svg:not(.слово){color:var(--sand)}
.app .logo .слово{color:var(--cream)}
.app .bar .pill.big,
.app .pill.ghost{color:var(--cream); border:1px solid var(--nw-нить-ярко); border-radius:var(--r-in);
  background:color-mix(in oklab, var(--stone) 80%, transparent);
  box-shadow:inset 0 1px 0 var(--nw-блик);
  font:var(--nw-ярлык); font-size:10px; text-transform:uppercase; letter-spacing:.1em}
.app .bar .pill.big span{font:inherit}
.app .bar .pill.big .ic{width:20px; height:20px}
.app .pill.ghost{color:var(--sand)}
.app .bar .pill.big .ic,
.app .pill.ghost .ic{color:var(--sand)}
.app .bar .pill.big:active,
.app .pill.ghost:active{border-color:var(--nw-золото-нить)}
.app .back{color:var(--sand); border-color:var(--nw-нить-ярко); border-radius:var(--r-in);
  background:color-mix(in oklab, var(--stone) 70%, transparent);
  box-shadow:inset 0 1px 0 var(--nw-блик)}
.app .back .ic{color:var(--sand)}
.app .где span{font:var(--nw-ярлык); font-size:var(--fs-cap); text-transform:uppercase;
  letter-spacing:.2em; color:var(--sand-dim)}


/* ── 4. ВКЛАДКИ: выбранная — чернь с золотой нитью и ударом под ней ─────
   Выбранная — не заливка: тёмная середина, золотая нить по кромке, подпись
   льдом. Под ней — линия пульса: «это твоё». Линия едет вместе с пилюлей,
   потому что живёт в ней. */
.app .tabs{padding-bottom:15px}
.app .tab,
.app .tab-pill{border-radius:var(--r-in)}
.app .tab{font-weight:500; letter-spacing:.02em}
.app .tab-pill{background:var(--stone-deep); overflow:visible;
  box-shadow:inset 0 0 0 1px var(--nw-золото-нить), inset 0 1px 0 var(--nw-блик)}
.app .tab-pill::after{content:""; position:absolute; left:50%; top:calc(100% + 3px);
  width:36px; height:11px; margin-left:-18px; pointer-events:none;
  background:var(--lamp);
  -webkit-mask:var(--nw-пульс) center / contain no-repeat;
          mask:var(--nw-пульс) center / contain no-repeat}
.app .tab.on{color:var(--cream)}
.app .tab:not(.on){color:var(--sand); border-color:var(--nw-нить);
  background:transparent; box-shadow:none}
.app .tab:not(.on):active{background:color-mix(in oklab, var(--cream) 6%, transparent)}
.app .tab .ic{color:var(--sand)}


/* ── 5. КАРТОЧКА НОМИНАЛА ────────────────────────────────────────────────
   В покое — чернь под серебряной нитью; номинал — серебром, цена — крупно
   льдом. Взяли — номинал стал «вашим»: нить становится золотой, по верху
   карточки один раз прочерчивается линия пульса, счётчик — в золотой нити. */
.app .ore{border-color:var(--nw-нить); background:var(--nw-стекло);
  box-shadow:inset 0 1px 0 var(--nw-блик), inset 0 -1px 0 rgba(0,0,0,.5),
    0 12px 22px -16px rgba(0,0,0,.95)}
.app .ore:not(.spent):active{border-color:var(--nw-золото-тихо)}
.app .ore.incart{border-color:var(--nw-золото-нить);
  background:linear-gradient(180deg,
    color-mix(in oklab, var(--lamp) 8%, var(--stone)) 0%,
    var(--stone) 46%, var(--stone-deep) 100%);
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--lamp-hi) 16%, transparent),
    inset 0 -1px 0 rgba(0,0,0,.5), 0 12px 22px -16px rgba(0,0,0,.95)}
/* Линия пульса по верху взятой карточки: прочерчивается слева направо. */
.app .ore.incart::after{content:""; position:absolute; left:10px; right:10px; top:5px; height:11px;
  pointer-events:none; background:var(--lamp); transform-origin:0 50%;
  -webkit-mask:var(--nw-линия-удар); mask:var(--nw-линия-удар);
  animation:nw-прочерк 520ms var(--ease-out) both}
@keyframes nw-прочерк{from{transform:scaleX(0); opacity:.4} to{transform:none; opacity:1}}
/* У карточки с ярлыком справа удар сдвинут влево — под ярлыком его не видно. */
.app .ore.incart:has(.mark)::after{
  -webkit-mask:var(--nw-удар) 24% 50% / 13px 16px no-repeat,
    linear-gradient(#000, #000) 0 50% / calc(24% - 6px) 1px no-repeat,
    linear-gradient(#000, #000) 100% 50% / calc(76% - 6px) 1px no-repeat;
          mask:var(--nw-удар) 24% 50% / 13px 16px no-repeat,
    linear-gradient(#000, #000) 0 50% / calc(24% - 6px) 1px no-repeat,
    linear-gradient(#000, #000) 100% 50% / calc(76% - 6px) 1px no-repeat}
.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-dim)}

/* Номинал — серебро, мелко; цена — лёд, Unbounded, крупнее. */
.app .line1 b{color:var(--sand); font-weight:600; letter-spacing:.02em}
.app .grid .ore .line1 b{white-space:normal; text-wrap:balance}
.app .line1 span{margin-top:3px; font-family:var(--font-display); font-weight:500;
  font-size:var(--fs-base); letter-spacing:.01em; color:var(--cream)}
.app .ore .выгода s{color:var(--sand-dim)}
.app .ore .выгода b{color:var(--ore); font-weight:600}
.app .ore .сложение,
.app .ore .впервые{text-align:center}

/* «Выбрать» — тонкая серебряная нить, подпись заглавными: зовёт нажать, но
   не спорит с ценой. */
.app .ore .take{border:1px solid var(--nw-нить-ярко); border-radius:var(--r-in);
  background:transparent; color:var(--sand); box-shadow:none;
  font:var(--nw-ярлык); font-size:10.5px; text-transform:uppercase; letter-spacing:.16em}
.app .ore:not(.spent):active .take{background:color-mix(in oklab, var(--lamp) 12%, transparent);
  border-color:var(--nw-золото-нить); color:var(--cream)}
/* Счётчик на взятой: чернь в золотой нити, число — лёд. */
.app .ore.incart .take{border-color:var(--nw-золото-нить); color:var(--cream);
  background:var(--stone-deep); box-shadow:inset 0 1px 0 var(--nw-блик);
  font-family:var(--font); letter-spacing:0}
.app .take.picked i{color:var(--lamp); background:color-mix(in oklab, var(--cream) 5%, transparent)}
.app .take.picked i:active{background:color-mix(in oklab, var(--lamp) 18%, transparent)}
.app .take.picked b{font-family:var(--font-display); font-weight:500; color:var(--cream)}
.app .ore.spent .take{background:transparent; border-color:color-mix(in oklab, var(--seam) 60%, transparent);
  box-shadow:none}

/* Плашка номинала (ХИТ, ВЫГОДА) — ярлык ювелира: чернь, золотая нить,
   золотые буквы с разрядом. */
.app .ore .mark{z-index:2; font-family:var(--font-display); font-weight:600; letter-spacing:.18em;
  color:var(--lamp); background:var(--stone-deep);
  box-shadow:inset 0 0 0 1px var(--nw-золото-нить), 0 4px 10px -4px rgba(0,0,0,.9)}
.app .ore .gone{background:var(--stone-deep); color:var(--sand-dim);
  box-shadow:inset 0 0 0 1px var(--nw-нить)}

/* Своя сумма и раздел за входом через бота — та же чернь. */
.app .своя{border-color:var(--nw-нить); background:var(--nw-стекло);
  box-shadow:inset 0 1px 0 var(--nw-блик)}
.app .своя .take{border:1px solid var(--nw-золото-нить); color:var(--lamp);
  background:transparent; font-weight:600}
.app .своя .take:disabled{opacity:.5}
.app .замок{border-color:var(--nw-нить); background:var(--nw-стекло);
  box-shadow:inset 0 1px 0 var(--nw-блик);
  backdrop-filter:none; -webkit-backdrop-filter:none}
.app .замок .ic{color:var(--sand)}
.app .замок b{font-family:var(--font-display); font-weight:500; text-transform:uppercase;
  letter-spacing:.08em; font-size:var(--fs-base)}

/* Кому уходит покупка — серебряная нить, галочка льдом. */
.app .who-chip{border-color:var(--nw-нить-ярко); background:var(--stone-deep)}
.app .who-chip > svg{color:var(--ore)}
.app .who-edit{color:var(--lamp)}


/* ── 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(--sand)}
.app .vows > div{display:grid; grid-template-columns:auto minmax(0, 1fr); column-gap:11px;
  align-items:center; text-align:left; padding:6px 2px}
.app .vows > div .ic{grid-row:1 / span 2; width:20px; height:20px; margin:0}
.app .vows > div b,
.app .vows > div span{grid-column:2}
.app .vows > div b{color:var(--cream); font-weight:600}
.app .vows > div span{color:var(--sand-dim)}
.app .row .more{color:var(--sand); background:transparent;
  border:1px solid var(--nw-нить-ярко); border-radius:var(--r-in);
  font-family:var(--font); font-weight:600; letter-spacing:0; text-transform:none}
.app .row .more:active{border-color:var(--nw-золото-нить)}
.app .row h3 .ic{color:var(--sand)}


/* ── 7. ГЛАВНАЯ МАГАЗИНА ─────────────────────────────────────────────── */
.app .home-mark{color:var(--sand);
  filter:drop-shadow(0 6px 14px rgba(0,0,0,.8))}
/* Имя текстом (пока нет вордмарка художника) — крупно, серебром, с
   разрядом. Вордмарк встанет — шаблон спрячет эту строку сам. */
.app .home-brand{font-family:var(--font-display); font-weight:500; font-size:var(--fs-xl);
  letter-spacing:.24em; margin-right:-.24em; color:var(--cream); text-shadow:var(--nw-гравировка)}
/* «ВСЕ ИГРЫ» под именем — вторая тяжёлая строка подряд. Под именем — ничего. */
.app .home-head h2{display:none}
.app .home-о{color:var(--sand)}
/* Между шапкой и плитками — пустое чёрное, а не ещё одна линия: пульс на
   главной уже несут арт, кнопка уровней и главная плитка. */
.app .home-head + .gcards{margin-top:26px}

/* Уровни — КНОПКА, и видно это с первого взгляда: плита черни под
   серебряной кромкой, объём, шеврон справа. Справа от слов — лесенка
   пульса: пять ударов растут, от стали к золоту, от ровной линии к пику. */
.app .лоб-уровни{padding-right:44px; border:1px solid transparent;
  background:var(--nw-чернь) padding-box, var(--nw-кромка) border-box;
  box-shadow:inset 0 1px 0 var(--nw-блик), inset 0 -2px 0 rgba(0,0,0,.45),
    0 14px 26px -18px rgba(0,0,0,.95);
  transition:scale var(--t-press) var(--ease-out)}
.app .лоб-уровни:active{scale:.97}
.app .лоб-уровни b{color:var(--cream); font-weight:600}
.app .лоб-уровни span{color:var(--sand-dim)}
.app .лоб-уровни .лоб-шеврон{right:16px; border-color:var(--sand)}
.app .home-vows .лоб-уровни .ic{width:26px; height:26px; margin-bottom:6px; color:var(--sand);
  filter:drop-shadow(0 3px 6px rgba(0,0,0,.8));
  transition:transform var(--t-press) var(--ease-out)}
.app .home-vows .лоб-уровни:active .ic{transform:scale(1.12)}
.app .лоб-уровни::after{content:""; position:absolute; right:40px; bottom:13px;
  width:110px; height:22px; pointer-events:none;
  background:linear-gradient(90deg, var(--sand-dim) 0%, var(--sand) 46%, var(--lamp) 72%, var(--lamp-hi) 100%);
  -webkit-mask:var(--nw-лесенка) center / contain no-repeat;
          mask:var(--nw-лесенка) center / contain no-repeat}
.app .лоб-уровни .menu-tag{color:var(--lamp); background:var(--stone-deep); font-weight:600;
  box-shadow:inset 0 0 0 1px var(--nw-золото-нить)}

/* ПЛИТКИ ИГР — чернь под серебряной нитью, за предметом холодный свет
   витрины. Своего цвета у плиток нет: цвет несут сами предметы. */
.app .gcard{border-color:var(--nw-нить);
  background:
    radial-gradient(70% 58% at 50% 28%, color-mix(in oklab, var(--cream) 8%, transparent), transparent 72%),
    var(--nw-стекло);
  box-shadow:inset 0 1px 0 var(--nw-блик), inset 0 -1px 0 rgba(0,0,0,.5),
    0 12px 24px -16px rgba(0,0,0,.95)}
.app .gcard.big{background:
    radial-gradient(52% 90% at 82% 50%, color-mix(in oklab, var(--cream) 9%, transparent), transparent 72%),
    var(--nw-стекло)}
.app .gcard.now{border-color:var(--nw-нить-ярко);
  box-shadow:inset 0 1px 0 var(--nw-блик), inset 0 -1px 0 rgba(0,0,0,.5),
    0 12px 24px -16px rgba(0,0,0,.95)}
.app .gcard:not(.soon):active,
.app .gcard.жмём{border-color:var(--nw-золото-нить)}
.app .gcard-txt b{font-family:var(--font-display); font-weight:500; letter-spacing:.01em}
.app .gcard:not(.big) .gcard-txt b{font-weight:400; font-size:var(--fs-md); letter-spacing:.01em}
.app .gcard.big .gcard-txt b{font-size:min(var(--fs-lg), 4.8vw); letter-spacing:.02em}
.app .gcard-txt u{font:var(--nw-ярлык); text-transform:uppercase; letter-spacing:.14em;
  color:var(--sand-dim)}
.app .gcard.big .gcard-txt u{font-size:var(--fs-cap); letter-spacing:.2em}

/* ГЛАВНАЯ ПЛИТКА — его игра. Серебряная кромка, по низу — линия пульса,
   удар стоит под предметом. Нажал — удар бьёт. */
.app .gcard.big:first-child{border:1px solid transparent;
  background:
    radial-gradient(50% 90% at 80% 46%, color-mix(in oklab, var(--cream) 10%, transparent), transparent 72%) padding-box,
    var(--nw-чернь) padding-box,
    var(--nw-кромка) border-box;
  box-shadow:inset 0 1px 0 var(--nw-блик), 0 16px 30px -18px rgba(0,0,0,.95)}
.app .gcard.big:first-child::after{content:""; position:absolute; left:14px; right:14px; bottom:10px;
  height:16px; pointer-events:none; background:var(--lamp);
  -webkit-mask:var(--nw-удар) 84% 50% / 13px 16px no-repeat,
    linear-gradient(#000, #000) 0 50% / calc(84% - 9px) 1px no-repeat,
    linear-gradient(#000, #000) 100% 50% / calc(16% - 5px) 1px no-repeat;
          mask:var(--nw-удар) 84% 50% / 13px 16px no-repeat,
    linear-gradient(#000, #000) 0 50% / calc(84% - 9px) 1px no-repeat,
    linear-gradient(#000, #000) 100% 50% / calc(16% - 5px) 1px no-repeat;
  opacity:.8; transform-origin:84% 50%; transition:transform 260ms var(--ease-out)}
.app .gcard.big:first-child:active::after,
.app .gcard.big:first-child.жмём::after{transform:scaleY(1.7)}
.app .gcard.big:first-child .gcard-txt{padding-bottom:14px}

/* ЛОББИ — две КНОПКИ: чернь под серебряной нитью, объём, значок слева,
   шеврон справа. */
.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:10px; text-align:left; padding:13px 30px 13px 13px;
  border-color:var(--nw-нить-ярко); background:var(--nw-стекло); box-shadow:var(--nw-объём)}
.app .lob .ic{color:var(--sand); margin:0}
.app .lob b{color:var(--cream); font-weight:600}
.app .lob:active{scale:.97; border-color:var(--nw-золото-нить)}
.app .lob::after{content:""; position:absolute; right:14px; top:50%; width:7px; height:7px;
  margin-top:-4px; pointer-events:none; border:solid var(--sand); border-width:0 1.5px 1.5px 0;
  transform:rotate(-45deg)}
.app .lob .menu-tag{color:var(--lamp); background:var(--stone-deep);
  box-shadow:inset 0 0 0 1px var(--nw-золото-нить)}


/* ── 8. КОРЗИНА-ДОК ──────────────────────────────────────────────────────
   Полоса — первый шаг к деньгам: по верхней кромке идёт линия пульса,
   удар стоит над кнопкой. Сумма — лёд, кнопка — золото. Появляясь, кнопка
   ловит один блик. */
.app .dock{background:linear-gradient(180deg, var(--rock) 0%, var(--deep) 70%);
  border-top-color:var(--nw-нить)}
.app .dock::before{content:""; position:absolute; left:0; right:0; top:-8px; height:16px;
  pointer-events:none; background:var(--nw-золото-нить);
  -webkit-mask:var(--nw-удар) 76% 50% / 13px 16px no-repeat,
    linear-gradient(#000, #000) 0 50% / calc(76% - 8px) 1px no-repeat,
    linear-gradient(#000, #000) 100% 50% / calc(24% - 6px) 1px no-repeat;
          mask:var(--nw-удар) 76% 50% / 13px 16px no-repeat,
    linear-gradient(#000, #000) 0 50% / calc(76% - 8px) 1px no-repeat,
    linear-gradient(#000, #000) 100% 50% / calc(24% - 6px) 1px no-repeat}
.app .dock-in{border-color:var(--nw-нить); background:var(--nw-стекло);
  box-shadow:inset 0 1px 0 var(--nw-блик), 0 14px 34px -20px #000}
.app .dock-in > .ic{color:var(--sand)}
.app .dock-sum b{color:var(--cream); font-family:var(--font-display); font-weight:500; letter-spacing:.01em}
.app .dock-sum b span{color:inherit}
.app .dock-sum > span{color:var(--sand-dim)}
.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,.34), transparent);
  transform:translateX(0); opacity:0}
.app .dock:not(.away) .act::after{animation:nw-блик 1000ms var(--ease-out) 260ms both}
@keyframes nw-блик{0%{transform:translateX(0); opacity:0} 14%{opacity:1}
  100%{transform:translateX(420%); opacity:0}}


/* ── 9. КНОПКИ — ЛАК СТАРОГО ЗОЛОТА ──────────────────────────────────────
   Главная кнопка — единственная золотая заливка на экране: атлас старого
   золота (весь в --metal), кант сверху, без свечения. Буквы — тёмные,
   заглавными Unbounded с разрядом: 6.5 на самой тёмной складке лака. */
.app .act,
.app .plita-copy,
.вопрос-да{background:var(--metal); color:var(--on-lamp); border-radius:var(--r-in);
  font-family:var(--font-display); font-weight:600; text-transform:uppercase;
  letter-spacing:.14em; font-size:var(--fs-sm); box-shadow:var(--nw-лак)}
/* «Код у вас» — лёд, чернила тёмные. */
.app .plita-copy.ok{background:linear-gradient(168deg, var(--ore-hi), var(--ore)); color:var(--on-ore);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 0 0 1px color-mix(in oklab, var(--ore) 50%, transparent)}


/* ── 10. ЭКРАН ЗАКАЗА — СУММА ПОД ЗАСТЁЖКОЙ ─────────────────────────────
   Позиции — плоские строки через серебряную нить. Сумма к оплате — плита
   черни под серебряной кромкой, с заклёпками по углам; на верхней кромке —
   кинжал-застёжка. То, что надо запомнить, — на одной плите. */
.app .screen[data-screen="order"]::before{
  background:linear-gradient(180deg,
    color-mix(in oklab, var(--rock) 90%, transparent) 0%,
    color-mix(in oklab, var(--deep) 94%, transparent) 100%)}
.app .screen[data-screen="order"] .back{background:var(--stone); border-color:var(--nw-нить-ярко)}
.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 solid var(--nw-нить)}
.app .screen[data-screen="order"] .panel{position:relative; overflow:visible; margin-top:26px;
  border:1px solid transparent;
  background:var(--nw-заклёпки),
    var(--nw-чернь) padding-box,
    linear-gradient(var(--rock), var(--rock)) 50% 0 / 96px 1px no-repeat border-box,
    var(--nw-кромка) border-box;
  box-shadow:0 18px 34px -22px #000}
.app .screen[data-screen="order"] .panel::before{content:""; position:absolute; left:50%; top:-7px;
  width:78px; height:13px; margin-left:-39px; pointer-events:none;
  background:linear-gradient(180deg, var(--cream), var(--sand) 55%, var(--sand-dim));
  -webkit-mask:var(--nw-кинжал) center / contain no-repeat;
          mask:var(--nw-кинжал) center / contain no-repeat}
/* Скидки нет — её строка спрятана, а черта над «К оплате» осталась бы. */
.app .screen[data-screen="order"] .line.hidden + .line{background:none}
.app .screen[data-screen="order"] .line.pay dt{font:var(--nw-ярлык); font-size:var(--fs-cap);
  text-transform:uppercase; letter-spacing:.24em; color:var(--sand)}
.app .screen[data-screen="order"] .line.pay dd{font-family:var(--font-display); font-weight:500;
  color:var(--cream); letter-spacing:.01em}
.app .line.cut dt,
.app .line.cut dd{color:var(--ore)}
.app .screen[data-screen="order"] .game-name{font:var(--nw-ярлык); font-size:var(--fs-cap);
  text-transform:uppercase; letter-spacing:.2em; color:var(--sand)}
.app .field label{color:var(--sand-dim)}
.app .field label .чья{color:var(--sand)}
.app .field input{border-color:var(--nw-нить-ярко); background:var(--stone-deep)}
.app .field input:focus{border-color:var(--nw-золото-нить); box-shadow:0 0 0 3px var(--nw-золото-тихо)}
/* Оговорка по игре — не ошибка и не действие: серебряная нить и полоса
   серебра слева. */
.app .game-warn,
.app .screen[data-screen="order"] .game-warn{background:var(--stone-deep);
  border-color:var(--nw-нить-ярко); box-shadow:inset 2px 0 0 var(--sand)}
.app .game-warn::before{color:var(--sand)}
.app #gameWarn b{color:var(--cream)}
.app .say.кому.нет{color:var(--rust)}
.app .обещание .кому{color:var(--lamp)}
.app .обещание .когда .ic{color:var(--sand)}


/* ── 11. ХОД ЗАКАЗА — ПУЛЬС ──────────────────────────────────────────────
   Лица хода — рисунок художника (i-mark-wait / -ok / -fail), живут целиком:
   внутрь символа стили не дотягиваются. Ждём — лицо дышит ровно, по полосе
   идёт удар. Готово — за лицом (пик с черепом у художника) вспыхивает
   золото, разлетаются искры. Не вышло — пульс сбился: лицо вздрагивает и
   замирает, полоса — рваный гранат. Панель — свой слой (z-index:0): свет
   лежит под лицом и подписями, но над фоном. */
.app .digger{position:relative; z-index:0; border:1px solid transparent;
  background:var(--nw-чернь) padding-box, var(--nw-кромка) border-box;
  box-shadow:inset 0 1px 0 var(--nw-блик), 0 18px 34px -22px #000}
.app .лз{color:var(--sand); filter:drop-shadow(0 6px 14px rgba(0,0,0,.7))}
.app #digNote{color:var(--sand-dim)}
/* Полоса хода — линия пульса: нить стали, по ней золотая линия, на её
   голове бьётся удар. Длину ставит шаблон; удар бьётся только
   transform/opacity и только пока заказ в работе. */
.app .digger-bar{position:relative; height:16px; overflow:visible; border-radius:0; box-shadow:none;
  background:linear-gradient(var(--nw-нить-ярко), var(--nw-нить-ярко)) 0 50% / 100% 1px no-repeat}
.app .digger-bar i{position:relative; height:1.5px; margin-top:7.25px; border-radius:0;
  background:linear-gradient(90deg, var(--lamp-lo), var(--lamp) 60%, var(--lamp-hi)); box-shadow:none}
.app .digger:not(.done):not(.bad) .digger-bar i::after{content:""; position:absolute; right:-7px; top:50%;
  width:13px; height:16px; margin-top:-8px; pointer-events:none; background:var(--lamp-hi);
  -webkit-mask:var(--nw-удар) center / contain no-repeat;
          mask:var(--nw-удар) center / contain no-repeat;
  transform-origin:50% 60%;
  animation:nw-удар 1.05s var(--ease-in-out) infinite}
@keyframes nw-удар{0%,100%{transform:scaleY(.55); opacity:.7} 16%{transform:scaleY(1.2); opacity:1}
  32%{transform:scaleY(.9)} 60%{transform:scaleY(.6); opacity:.8}}
.app .digger.done .digger-bar i{background:linear-gradient(90deg,
    color-mix(in oklab, var(--ore) 50%, var(--deep)), var(--ore) 60%, var(--ore-hi))}
.app .digger.bad .digger-bar i{height:2px;
  background:repeating-linear-gradient(90deg, var(--rust) 0 9px, transparent 9px 12px,
    var(--rust) 12px 14px, transparent 14px 20px)}

/* ждём: лицо дышит — ровный пульс */
.app .лз.ждём{animation:nw-дышит 2.6s var(--ease-in-out) infinite}
@keyframes nw-дышит{0%,100%{transform:scale(1); opacity:.86} 50%{transform:scale(1.04); opacity:1}}

/* готово: пик. Лицо встаёт на место, за ним — золото. */
.app .digger.done{background:var(--nw-чернь) padding-box, var(--nw-кромка-золото) border-box;
  box-shadow:inset 0 1px 0 color-mix(in oklab, var(--lamp-hi) 18%, transparent),
    0 0 44px -24px var(--lamp), 0 18px 34px -22px #000}
.app .digger.done #digTitle{color:var(--lamp-hi)}
.app .digger.done .лз.готово{color:var(--cream);
  animation:nw-встал 820ms var(--ease-out) both}
@keyframes nw-встал{
  0%  {transform:translateY(12px) scale(.86); opacity:0}
  45% {transform:translateY(-3px) scale(1.05); opacity:1}
  70% {transform:translateY(1px) scale(.99)}
  100%{transform:none; opacity:1}}
/* за лицом вспыхивает золото и остаётся ровный свет */
.app .digger.done .digger-face::after{content:""; position:absolute; left:50%; top:50%;
  width:156px; height:156px; margin:-78px 0 0 -78px; z-index:-1; border-radius:50%;
  pointer-events:none;
  background:radial-gradient(closest-side, color-mix(in oklab, var(--lamp) 42%, transparent),
    color-mix(in oklab, var(--lamp) 12%, transparent) 52%, transparent);
  animation:nw-вспышка 1100ms var(--ease-out) 100ms both}
@keyframes nw-вспышка{0%{transform:scale(.3); opacity:0} 24%{opacity:1}
  100%{transform:scale(1.15); opacity:.36}}
/* искры: золото и лёд разлетаются от лица один раз */
.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(--lamp-hi) 0 1.6px, transparent 2.6px),
    radial-gradient(circle at 88% 20%, var(--cream) 0 1.3px, transparent 2.3px),
    radial-gradient(circle at 20% 80%, var(--lamp) 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 82% 76%, var(--lamp-hi) 0 1.3px, transparent 2.3px),
    radial-gradient(circle at 50% 4%, var(--lamp-hi) 0 1.7px, transparent 2.7px),
    radial-gradient(circle at 3% 55%, var(--cream) 0 1.1px, transparent 2.1px),
    radial-gradient(circle at 97% 48%, var(--lamp) 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 34% 10%, var(--sand) 0 1.1px, transparent 2.1px),
    radial-gradient(circle at 68% 8%, var(--cream) 0 1.2px, transparent 2.2px);
  animation:nw-искры 1250ms var(--ease-out) 240ms both}
@keyframes nw-искры{0%{transform:scale(.35); opacity:0} 20%{opacity:1}
  100%{transform:scale(1.3); opacity:0}}
/* блик звезды-кинжала на лице, потом изредка ещё — серебро блеснуло */
.app .digger.done .лицо-заказа::after{content:""; position:absolute; left:calc(50% + 18px);
  top:4px; width:10px; height:16px; pointer-events:none; background:var(--cream);
  -webkit-mask:var(--nw-звезда) center / contain no-repeat;
          mask:var(--nw-звезда) center / contain no-repeat;
  animation:nw-сверк 3.6s var(--ease-out) 800ms infinite both}
@keyframes nw-сверк{0%,64%,100%{transform:scale(0) rotate(0deg); opacity:0}
  71%{transform:scale(1.1) rotate(45deg); opacity:1}
  84%{transform:scale(.2) rotate(90deg); opacity:0}}

/* не вышло: пульс сбился. Лицо вздрагивает и замирает; кромка — рваная,
   гранатом. */
.app .digger.bad{border:1px dashed color-mix(in oklab, var(--rust) 55%, transparent);
  background:linear-gradient(180deg, color-mix(in oklab, var(--rust) 5%, var(--stone)), var(--stone-deep));
  box-shadow:inset 0 1px 0 var(--nw-блик), 0 18px 34px -22px #000}
.app .digger.bad .лз.беда{color:var(--sand); animation:nw-сбился 760ms var(--ease-out) both}
@keyframes nw-сбился{
  0%  {transform:translateX(0); opacity:0}
  18% {transform:translateX(-5px); opacity:1}
  34% {transform:translateX(4px)}
  50% {transform:translateX(-3px)}
  66% {transform:translateX(2px)}
  100%{transform:none; opacity:1}}

/* Шаги — нить сверху вниз. Номер — кружок серебряной нити. Идёт —
   золотая нить, вокруг дышит тёплый свет. Пройден — лёд. Сорвался —
   гранат. Строка шага — свой слой (z-index:0), чтобы свет лёг под кружок. */
.app .trail{border-color:var(--nw-нить); box-shadow:inset 0 1px 0 var(--nw-блик)}
.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:1px solid var(--nw-нить-ярко)}
.app .trail li.was:not(:last-child)::before{border-left-color:color-mix(in oklab, var(--ore) 70%, transparent)}
.app .trail .pip{width:21px; height:21px; border-radius:50%; font-family:var(--font-display); font-weight:500;
  font-style:normal;
  border:1px solid var(--nw-нить-ярко); background:var(--stone-deep); color:var(--sand-dim)}
.app .trail li.now .pip{position:relative; border-color:var(--lamp); background:var(--stone-deep); color:var(--lamp)}
.app .trail li.now .pip::after{content:""; position:absolute; inset:-9px; z-index:-1; border-radius:50%;
  pointer-events:none;
  background:radial-gradient(closest-side, color-mix(in oklab, var(--lamp) 34%, transparent), transparent);
  animation:nw-ореол 2.4s var(--ease-in-out) infinite}
@keyframes nw-ореол{0%,100%{transform:scale(.86); opacity:.35} 50%{transform:scale(1.06); opacity:1}}
.app .trail li.was .pip{border-color:var(--ore); background:var(--ore); color:var(--on-ore)}
.app .trail li.lost .pip{border-color:var(--rust); background:var(--rust); color:var(--on-rust)}

/* Плита выдачи — шкатулка: чернь под золотой кромкой, внутри вторая
   нить, заклёпки по углам. «Выдано» — золото с разрядом, номинал —
   серебро-лёд, код — в серебряной рамке пунктиром. Блик по плите шаблон
   пускает один раз — у нас он золотой. */
.app .plita{border:1px solid transparent;
  background:var(--nw-заклёпки),
    linear-gradient(180deg, color-mix(in oklab, var(--lamp) 8%, var(--stone-deep)) 0%, var(--stone-deep) 60%, var(--deep) 100%) padding-box,
    var(--nw-кромка-золото) border-box;
  box-shadow:0 0 44px -24px var(--lamp), 0 20px 40px -26px #000}
.app .plita::before{content:""; position:absolute; inset:5px; pointer-events:none;
  border-radius:calc(var(--r-card) - 3px); border:1px solid var(--nw-золото-тихо)}
.app .plita::after{background:linear-gradient(100deg, transparent,
  color-mix(in oklab, var(--lamp-hi) 22%, transparent), transparent)}
.app .plita-top{font-family:var(--font-display); font-weight:500; letter-spacing:.32em; color:var(--lamp)}
.app .plita-uc{font-family:var(--font-display); font-weight:500;
  background:linear-gradient(180deg, var(--cream) 0%, var(--sand) 58%, var(--sand-dim) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent}
.app .plita-id{color:var(--sand)}
.app .plita code{border:1px dashed var(--nw-нить-ярко); background:rgba(0,0,0,.5); 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) 9%, var(--stone-deep)), var(--deep));
  box-shadow:inset 2px 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 1px var(--rust);
  background:
    linear-gradient(45deg, transparent calc(50% - .7px), var(--rust) calc(50% - .7px) calc(50% + .7px),
      transparent calc(50% + .7px)) 50% 50% / 8px 8px no-repeat,
    linear-gradient(-45deg, transparent calc(50% - .7px), var(--rust) calc(50% - .7px) calc(50% + .7px),
      transparent calc(50% + .7px)) 50% 50% / 8px 8px no-repeat}


/* ── 12. УРОВНИ — ОТ РОВНОЙ ЛИНИИ К ПИКУ ────────────────────────────────
   Карточка уровня — плита черни под серебряной кромкой, с заклёпками;
   у верхней ступени кромка золотая. Скидка — ярлык в золотой нити. Полоса
   до следующей ступени — линия пульса, на голове удар. Момент — только при
   переходе на новую ступень (признак .новая-ступень, skin.js): знак встаёт
   снизу на место, за ним вспыхивает золото. Обычное открытие — спокойно. */
.app .vip-now{position:relative; z-index:0; border:1px solid transparent;
  background:var(--nw-заклёпки), var(--nw-чернь) padding-box, var(--nw-кромка) border-box;
  box-shadow:0 18px 34px -22px #000}
.app .vip-now.lvl4{background:var(--nw-заклёпки),
    linear-gradient(180deg, color-mix(in oklab, var(--lamp) 8%, var(--stone-2)), var(--stone) 40%, var(--stone-deep)) padding-box,
    var(--nw-кромка-золото) border-box;
  box-shadow:0 0 40px -24px var(--lamp), 0 18px 34px -22px #000}
.app .vip-now.empty-id{background:var(--nw-стекло) padding-box, linear-gradient(var(--nw-нить), var(--nw-нить)) border-box}
.app .vip-now .ic{width:46px; height:46px; margin-top:4px; color:var(--sand);
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.8))}
.app .vip-now.lvl4 .ic{color:var(--lamp-hi)}
.app .vip-now.lvl4 b{color:var(--lamp-hi)}
/* Новая ступень: знак встаёт снизу на место… */
.app .vip-now.новая-ступень .ic{animation:nw-ступень 900ms var(--ease-out) 160ms both}
@keyframes nw-ступень{
  0%  {transform:translateY(16px) scale(.88); opacity:0}
  50% {transform:translateY(-3px) scale(1.04); opacity:1}
  76% {transform:translateY(1px) scale(.995)}
  100%{transform:none; opacity:1}}
/* …и за ним вспыхивает золото, один раз. */
.app .vip-now.новая-ступень::before{content:""; position:absolute; left:-30px; top:-24px;
  width:150px; height:150px; z-index:-1; border-radius:50%; pointer-events:none;
  background:radial-gradient(closest-side, color-mix(in oklab, var(--lamp) 38%, transparent),
    color-mix(in oklab, var(--lamp) 10%, transparent) 55%, transparent);
  animation:nw-вспышка 1200ms var(--ease-out) 180ms both}
.app .vip-now > span,
.app .vip-left{color:var(--sand-dim)}
.app .vip-now em{color:var(--lamp); background:var(--stone-deep); border-radius:var(--r-in);
  font-family:var(--font-display); font-weight:500; letter-spacing:.06em;
  box-shadow:inset 0 0 0 1px var(--nw-золото-нить)}
/* Полоса до следующей — нить стали, по ней золотая линия с ударом. */
.app .vip-bar{height:16px; border-radius:0; overflow:visible; box-shadow:none;
  background:linear-gradient(var(--nw-нить-ярко), var(--nw-нить-ярко)) 0 50% / 100% 1px no-repeat}
.app .vip-bar i{position:relative; height:1.5px; margin-top:7.25px; border-radius:0; box-shadow:none;
  background:linear-gradient(90deg, var(--lamp-lo), var(--lamp) 60%, var(--lamp-hi))}
.app .vip-bar i::after{content:""; position:absolute; right:-7px; top:50%; width:13px; height:16px;
  margin-top:-8px; pointer-events:none; background:var(--lamp-hi);
  -webkit-mask:var(--nw-удар) center / contain no-repeat;
          mask:var(--nw-удар) center / contain no-repeat}
.app .vip-sheet,
.app .bindbox{border-color:var(--nw-нить); background:var(--nw-стекло);
  box-shadow:inset 0 1px 0 var(--nw-блик)}
/* Перед лестницей — лилия на нити. */
.app .vip-now + .vip-sheet{position:relative; margin-top:34px}
.app .vip-now + .vip-sheet::before{content:""; position:absolute; left:18%; right:18%; top:-24px;
  height:14px; pointer-events:none; background:var(--sand-dim);
  -webkit-mask:var(--nw-линия-лилия); mask:var(--nw-линия-лилия)}
.app .vip-p{color:var(--sand)}
.app .vip-p b{color:var(--cream)}
/* Ступени не нажимаются: плоские строки через серебряную нить. */
.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 solid var(--nw-нить)}
.app .vip-row b{color:var(--cream); font-weight:600}
.app .vip-row u{white-space:nowrap; color:var(--sand-dim)}
.app .vip-row span{color:var(--sand); font-family:var(--font-display); font-weight:500}
.app .vip-row em{color:var(--sand-dim)}
/* Своя ступень — золотая полоса слева и тёплая чернь: «вы здесь». */
.app .vip-row.on{border-radius:var(--r-in); padding-left:18px;
  background:color-mix(in oklab, var(--lamp) 9%, var(--rock));
  box-shadow:inset 2px 0 0 var(--lamp), inset 0 0 0 1px var(--nw-золото-тихо)}
.app .vip-row.on + .vip-row{border-top-color:transparent}
.app .vip-row.on span{color:var(--lamp)}
.app .vip-row.on b::after{color:var(--lamp); font-weight:500}
/* Верхняя ступень — пик: имя золотом. */
.app .vip-table .vip-row:last-child b{color:var(--lamp-hi)}
/* Знаки ступеней — рисунок художника; на 16 px их рост не читался. Размер и
   цвет заданы в разметке строкой стиля — перебиваем её. */
.app .vip-row b > svg.ic{width:22px !important; height:22px !important; color:var(--sand) !important;
  vertical-align:-6px !important; margin-right:10px !important}
.app .vip-table .vip-row:last-child b > svg.ic{color:var(--lamp-hi) !important}


/* ── 13. О НАС ───────────────────────────────────────────────────────────
   Шаги — сведения: плоско, номер в кольце серебряной нити, цифра
   Unbounded. Перед вопросами — лилия на нити. Вопрос раскрыт — золотая
   полоса слева. */
.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; color:var(--cream)}
.app .steps li > p{color:var(--sand-dim)}
.app .step-n,
.шаги-список li span{border:1px solid var(--nw-нить-ярко); border-radius:50%; color:var(--cream);
  background:var(--stone-deep); font-family:var(--font-display); font-weight:500;
  box-shadow:inset 0 1px 0 var(--nw-блик)}
.app .step-n{width:30px; height:30px; font-size:var(--fs-sm)}
.app .steps + .about-head{position:relative; margin-top:34px}
.app .steps + .about-head::before{content:""; position:absolute; left:18%; right:18%; top:-26px;
  height:14px; pointer-events:none; background:var(--sand-dim);
  -webkit-mask:var(--nw-линия-лилия); mask:var(--nw-линия-лилия)}
.app .asks details{border-color:var(--nw-нить); background:var(--nw-стекло);
  box-shadow:inset 0 1px 0 var(--nw-блик)}
.app .asks details[open]{border-color:var(--nw-нить-ярко);
  box-shadow:inset 2px 0 0 var(--lamp), inset 0 1px 0 var(--nw-блик)}
.app .asks details[open] summary{color:var(--cream)}
.app .asks details summary::after{border-color:var(--sand)}
.app .asks details[open] summary::after{border-color:var(--lamp)}
.app .asks details p{color:var(--sand)}


/* ── 14. МОИ ЗАКАЗЫ ──────────────────────────────────────────────────────
   Строка открывает заказ — значит это кнопка: объём и шеврон справа.
   Полоса слева — исход: лёд — выдан, гранат — сбой или отмена, золото — в
   работе. */
.app .ord{position:relative; padding-right:32px; border-color:var(--nw-нить-ярко);
  background:var(--nw-стекло); box-shadow:inset 2px 0 0 var(--nw-нить-ярко), var(--nw-объём)}
.app .ord::after{content:""; position:absolute; right:14px; top:50%; width:7px; height:7px;
  margin-top:-4px; pointer-events:none; border:solid var(--sand); border-width:0 1.5px 1.5px 0;
  transform:rotate(-45deg)}
.app .ord:has(.s-done){box-shadow:inset 2px 0 0 var(--ore), var(--nw-объём)}
.app .ord:has(.s-failed),
.app .ord:has(.s-canceled){box-shadow:inset 2px 0 0 var(--rust), var(--nw-объём)}
.app .ord:has(.s-issuing),
.app .ord:has(.s-paid){box-shadow:inset 2px 0 0 var(--lamp), var(--nw-объём)}
.app .ord:active{scale:.98; border-color:var(--nw-золото-нить)}
.app .ord-n{color:var(--sand-dim)}
.app .ord-sum{font-family:var(--font-display); font-weight:500; color:var(--cream)}
.app .ord-st{border-radius:var(--r-in); font-weight:600; letter-spacing:.02em}
.app .ord-st.s-issuing,
.app .ord-st.s-paid{color:var(--lamp); background:color-mix(in oklab, var(--lamp) 12%, transparent)}
/* Пусто — над словами спокойная линия пульса сталью. */
.app .пусто-плита{position:relative; border-color:var(--nw-нить); background:var(--nw-стекло);
  box-shadow:inset 0 1px 0 var(--nw-блик)}
/* Часы шаблона уступают место спокойной линии пульса — на том же месте. */
.app .пусто-плита .ic{visibility:hidden}
.app .пусто-плита b{font-family:var(--font-display); font-weight:500; text-transform:uppercase;
  letter-spacing:.1em; font-size:var(--fs-base)}
.app .пусто-плита::after{content:""; position:absolute; left:50%; top:27px; width:96px; height:28px;
  margin-left:-48px; pointer-events:none; background:var(--sand);
  -webkit-mask:var(--nw-пульс) center / contain no-repeat;
          mask:var(--nw-пульс) center / contain no-repeat}


/* ── 15. ВЫБОР РЕГИОНА И ВОПРОСЫ ─────────────────────────────────────────
   Экраны поверх всего — та же ночь. Выбранный регион — золотая полоса
   слева и золотая нить, как своя ступень. */
.регионы{background:
  radial-gradient(90% 34% at 50% -6%, color-mix(in oklab, var(--sand) 8%, transparent), transparent 72%),
  var(--deep)}
.регионы-верх{border-bottom-color:var(--nw-нить)}
.регион{position:relative; overflow:hidden; border-color:var(--nw-нить); background:var(--nw-стекло);
  color:var(--sand)}
.регион b{color:var(--cream)}
.регион.on{color:var(--cream); border-color:transparent; padding-left:18px;
  background:color-mix(in oklab, var(--lamp) 9%, var(--rock));
  box-shadow:inset 2px 0 0 var(--lamp), inset 0 0 0 1px var(--nw-золото-нить)}
.регион.on u{color:var(--lamp)}
/* Значок-символ шаблон запекает в картинку цветом чернил — под заливку
   лаком. У нас выбранный ряд тёмный: высветляем ТОЛЬКО вклеенные символы,
   флаги стран — снимки. */
.регион.on img[src^="data:image/svg"]{filter:brightness(0) invert(1)}
.регион:not(.on):active{background:color-mix(in oklab, var(--lamp) 10%, transparent)}
.регионы .назад{color:var(--sand); border-color:var(--nw-нить-ярко);
  background:color-mix(in oklab, var(--stone) 70%, transparent)}
.регионы-поиск input{border-color:var(--nw-нить-ярко); background:var(--stone-deep); color:var(--cream)}
.регионы-поиск input:focus{outline:none; border-color:var(--nw-золото-нить); box-shadow:0 0 0 3px var(--nw-золото-тихо)}

.вопрос{background:
  radial-gradient(90% 34% at 50% -6%, color-mix(in oklab, var(--sand) 8%, transparent), transparent 72%),
  var(--deep)}
/* Шар за вопросом — гравированный глобус: тонкая кромка и параллели
   серебряной нитью, внутри — холодный свет. Метка — серебряная подвеска. */
.вопрос-глубь .шар{background:
    radial-gradient(circle at 50% 62%, transparent 57.6%, color-mix(in oklab, var(--sand) 22%, transparent) 58.2%, transparent 58.9%),
    repeating-linear-gradient(180deg, transparent 0 30px, color-mix(in oklab, var(--sand) 8%, transparent) 30px 31px),
    radial-gradient(circle at 50% 62%, color-mix(in oklab, var(--sand) 10%, transparent), transparent 58%);
  -webkit-mask:radial-gradient(circle at 50% 62%, #000 59%, transparent 59.4%);
          mask:radial-gradient(circle at 50% 62%, #000 59%, transparent 59.4%)}
.вопрос-глубь .метка{opacity:1;
  background:linear-gradient(135deg, var(--cream), var(--sand) 48%, var(--sand-dim));
  box-shadow:0 6px 14px -4px #000}
.вопрос-нет{background:transparent; border-color:var(--nw-нить-ярко); color:var(--sand);
  box-shadow:inset 0 1px 0 var(--nw-блик)}
.шаги-список li span{width:28px; flex-basis:28px}
.шаги-список input{border-color:var(--nw-нить-ярко); background:var(--stone-deep)}


/* ── 16. ЗАГРУЗКА И «НА РАБОЧИЙ СТОЛ» ────────────────────────────────── */
/* Заставка — чёрное на чёрном: сверху холодный свет, по всему — зерно.
   Знак — серебро, полоса загрузки — золотая нить. */
#грузим::before{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(80% 46% at 50% 38%, color-mix(in oklab, var(--sand) 8%, transparent), transparent 72%)}
#грузим::after{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:var(--cream); opacity:.05;
  -webkit-mask:var(--nw-зерно) 0 0 / 160px 160px repeat;
          mask:var(--nw-зерно) 0 0 / 160px 160px repeat}
#грузим > div > svg:first-child{color:var(--sand); filter:drop-shadow(0 8px 18px rgba(0,0,0,.9))}
#грузим .грузим-слово{color:var(--cream)}
#грузим b{color:var(--cream); font-family:var(--font-display); font-weight:500; letter-spacing:.3em}
/* Ушедшая заставка прозрачна, но не снята: её дыхание и полоса крутились
   бы до конца сеанса. !important — движение задано прямо в атрибуте style. */
#грузим.ушёл *{animation:none !important}
.накрыльцо{border-color:var(--nw-нить-ярко); background:var(--stone-2);
  box-shadow:inset 0 1px 0 var(--nw-блик), var(--sh-lift)}
.накрыльцо-знак{color:var(--sand)}
.накрыльцо-да{background:var(--metal); color:var(--on-lamp); box-shadow:var(--nw-лак)}


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

/* Арт растворяется в ночи, а не обрывается краем: низ уходит в
   прозрачность маской. */
.app .hero-art{height:min(80vw, 344px);
  -webkit-mask-image:linear-gradient(180deg, #000 0%, #000 60%, transparent 100%);
          mask-image:linear-gradient(180deg, #000 0%, #000 60%, transparent 100%)}
.app .banner-art{
  -webkit-mask-image:linear-gradient(180deg, transparent 0%, #000 14%, #000 70%, transparent 100%);
          mask-image:linear-gradient(180deg, transparent 0%, #000 14%, #000 70%, transparent 100%)}
/* Вордмарк — лёд, тёмная тень держит буквы на светлом месте арта. */
/* Вордмарк — крупнее шаблонного: имя здесь главная надпись экрана. */
.app .home-слово{height:40px; max-width:min(330px, 86vw); color:var(--cream);
  filter:drop-shadow(0 3px 10px rgba(0,0,0,.8))}
.app .hero-kicker{color:var(--sand); letter-spacing:.34em}
.app .hero-note{color:var(--sand-dim)}

/* Салют: звезда-кинжал и лилия золотом, малая звезда серебром, искра
   льдом. Знаки идут по кругу (✦ ⚜ ✧ •), первым в слое стоит зарево —
   номер ребёнка сдвинут на один. Рисунки — свои маски, а не буквы шрифта:
   лилия буквой на телефоне встала бы цветным смайлом. */
.proboy .zerno.глиф{text-shadow:none}
.proboy .zerno.глиф:nth-child(4n+2),
.proboy .zerno.глиф:nth-child(4n+3),
.proboy .zerno.глиф:nth-child(4n){font-size:0; color:transparent}
.proboy .zerno.глиф:nth-child(4n+2){width:16px; height:26px; margin:-13px 0 0 -8px;
  background:linear-gradient(180deg, var(--lamp-hi), var(--lamp) 60%, var(--lamp-lo));
  -webkit-mask:var(--nw-звезда) center / contain no-repeat;
          mask:var(--nw-звезда) center / contain no-repeat}
.proboy .zerno.глиф:nth-child(4n+3){width:24px; height:26px; margin:-13px 0 0 -12px;
  background:linear-gradient(180deg, var(--lamp-hi), var(--lamp) 55%, var(--lamp-lo));
  -webkit-mask:var(--nw-лилия) center / contain no-repeat;
          mask:var(--nw-лилия) center / contain no-repeat}
.proboy .zerno.глиф:nth-child(4n){width:11px; height:18px; margin:-9px 0 0 -5px;
  background:linear-gradient(180deg, var(--cream), var(--sand));
  -webkit-mask:var(--nw-звезда) center / contain no-repeat;
          mask:var(--nw-звезда) center / contain no-repeat}
.proboy .zerno.глиф:nth-child(4n+1){color:var(--ore); font-size:14px}
.proboy .zarevo{background:radial-gradient(circle,
  color-mix(in oklab, var(--cream) 80%, transparent),
  color-mix(in oklab, var(--lamp-hi) 46%, transparent) 30%,
  color-mix(in oklab, var(--lamp) 14%, transparent) 55%, transparent 72%)}

/* Карточка стримера — это он: плита черни под серебряной кромкой, с
   заклёпками; в правом верхнем углу — его линия пульса золотом. Аватар — в
   кольце полированного серебра. Каналы — кнопки: нить и объём. */
.app .стример{position:relative; border:1px solid transparent; padding:16px 16px 15px;
  background:var(--nw-заклёпки), var(--nw-чернь) padding-box, var(--nw-кромка) border-box;
  box-shadow:0 16px 30px -20px #000}
.app .стример::after{content:""; position:absolute; right:18px; top:18px; width:48px; height:14px;
  pointer-events:none; background:var(--lamp);
  -webkit-mask:var(--nw-пульс) center / contain no-repeat;
          mask:var(--nw-пульс) center / contain no-repeat}
.app .стример-лицо{border:0; padding:2px;
  background:linear-gradient(158deg, var(--cream), var(--sand-dim) 40%, var(--sand) 62%, var(--seam-2)) border-box;
  box-shadow:0 0 0 3px var(--stone-deep), 0 6px 14px -6px #000}
.app svg.стример-лицо{color:var(--sand); background:var(--stone-deep);
  box-shadow:inset 0 0 0 1px var(--nw-нить-ярко), 0 6px 14px -6px #000}
.app .стример-имя b{font-family:var(--font-display); font-weight:500; text-transform:uppercase;
  font-size:var(--fs-base); letter-spacing:.16em; color:var(--cream)}
.app .стример-имя span{font:var(--nw-ярлык); text-transform:uppercase; letter-spacing:.16em;
  color:var(--sand-dim)}
.app .стример-ссылка{color:var(--cream); border-color:var(--nw-нить-ярко);
  border-radius:var(--r-in); background:var(--nw-стекло); box-shadow:var(--nw-объём)}
.app .стример-ссылка:active{border-color:var(--nw-золото-нить)}
.app .стример-ссылка .ic{color:var(--sand)}

/* Пасхалка — строкой в серебряной кромке. */
.пасхалка{border:1px solid transparent;
  background:var(--nw-чернь) padding-box, var(--nw-кромка) border-box;
  box-shadow:0 14px 30px -16px #000}


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


/* ── 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:
    radial-gradient(60% 50% at 50% -10%, color-mix(in oklab, var(--sand) 10%, transparent), transparent 70%),
    radial-gradient(22% 18% at calc(50% - 330px) 62%, color-mix(in oklab, var(--lamp) 7%, transparent), transparent 72%),
    radial-gradient(22% 18% at calc(50% + 330px) 62%, color-mix(in oklab, var(--lamp) 7%, transparent), transparent 72%),
    linear-gradient(180deg, var(--rock), var(--deep) 70%);
    background-attachment:fixed}
  /* Линия пульса во весь монитор: нить и два удара у краёв колонки. */
  html[data-телефон]::before{content:""; position:fixed; left:0; right:0; top:calc(62% - 40px); height:80px;
    z-index:-1; pointer-events:none;
    background:linear-gradient(90deg, transparent 0%, var(--nw-золото-нить) 18%, var(--lamp) 50%,
      var(--nw-золото-нить) 82%, transparent 100%);
    -webkit-mask:
      var(--nw-удар) calc(50% - 330px) 50% / 52px 64px no-repeat,
      var(--nw-удар) calc(50% + 330px) 50% / 52px 64px no-repeat,
      linear-gradient(#000, #000) 0 calc(50% + 4.6px) / calc(50% - 355px) 1.2px no-repeat,
      linear-gradient(#000, #000) 50% calc(50% + 4.6px) / 610px 1.2px no-repeat,
      linear-gradient(#000, #000) 100% calc(50% + 4.6px) / calc(50% - 355px) 1.2px no-repeat;
            mask:
      var(--nw-удар) calc(50% - 330px) 50% / 52px 64px no-repeat,
      var(--nw-удар) calc(50% + 330px) 50% / 52px 64px no-repeat,
      linear-gradient(#000, #000) 0 calc(50% + 4.6px) / calc(50% - 355px) 1.2px no-repeat,
      linear-gradient(#000, #000) 50% calc(50% + 4.6px) / 610px 1.2px no-repeat,
      linear-gradient(#000, #000) 100% calc(50% + 4.6px) / calc(50% - 355px) 1.2px no-repeat;
    opacity:.55}
  html[data-телефон]::after{content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
    background:var(--cream); opacity:.045;
    -webkit-mask:var(--nw-зерно) 0 0 / 160px 160px repeat;
            mask:var(--nw-зерно) 0 0 / 160px 160px repeat}
}


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


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