/* LOOTHOOD — patch v1 · точечные починки на ещё не переделанных экранах
   ------------------------------------------------------------------
   Временный файл. По мере того как экраны переезжают в наш стиль,
   соответствующие блоки отсюда удаляются. Подключается после
   loothood-core-v1.css. */

/* ============ 1 · НЕВИДИМЫЙ ТЕКСТ НА ЛАЙМОВЫХ КНОПКАХ ============
   Легаси-правила `.hb-ledger-button span` и `.hb-featured__footer button span`
   в main-menu-foundation-v1.css красят вложенный span в --hb-gold-bright,
   который в нашей теме разрешается в лайм. На лаймовой кнопке это значит
   лайм по лайму — надпись пропадает. Именно так исчезла «Draw 10»: сам
   span имел color rgb(183,242,74) поверх градиента из того же лайма.
   Там же float:right, из-за которого подпись съезжала вправо.
   В hunt-файле это чинилось для одной кнопки; здесь — для всех. */

.hb-app .hb-ledger-button.is-primary span,
.hb-app .hb-gacha-draw-ten span,
.hb-app .hb-gacha-draw-ten small,
.hb-app .hb-hunt-primary span,
.hb-app .hb-featured__footer > button span {
  color: inherit !important;
  float: none !important;
  margin-right: 0 !important;
}

/* Кнопка «Draw 10»: две строки по центру, а не строка со сползшей подписью. */
.hb-app .hb-gacha-draw-ten {
  display: grid !important;
  place-items: center;
  gap: 2px;
  line-height: 1.15;
}
.hb-app .hb-gacha-draw-ten small {
  opacity: .78;
  font-size: .72em;
}

/* ============ 2 · ПЕРГАМЕНТНАЯ ПАНЕЛЬ В VILLAGE ============
   .hb-settlement-bonuses единственная во всей игре сделана «бумагой»:
   фон #cfe3d6, а значения при этом красятся брендовым лаймом #b7f24a.
   Лайм по светло-мятному — контраст около 1.6:1, читать невозможно.
   Возвращаем панель в общую тёмную палитру: тогда и лайм работает как
   везде, и панель перестаёт выбиваться из экрана. */

.hb-app .hb-settlement-bonuses {
  color: var(--ivory) !important;
  background: var(--surface) !important;
  border: 1px solid var(--line);
  border-radius: var(--r);
}
.hb-app .hb-settlement-bonuses::after {
  border-color: var(--line) !important;
}
.hb-app .hb-settlement-bonuses header h2,
.hb-app .hb-settlement-bonuses dt {
  color: var(--ivory);
}
.hb-app .hb-settlement-bonuses header p {
  color: var(--muted);
}
.hb-app .hb-settlement-bonuses dd {
  color: var(--lime);
}
.hb-app .hb-settlement-bonuses dl div,
.hb-app .hb-settlement-bonuses dl div:last-child {
  border-color: var(--line2);
}

/* ============ 3 · ПОДСКАЗКИ К РЕСУРСАМ ============
   Шесть фишек в шапке показывали только число: игрок видит «0» и не знает
   ни что это, ни откуда берётся, ни на что тратится. Смысл ресурсов
   вытащен из кода: village-services.js требует bossTrophies начиная с
   3 ранга построек и sheriffsCrests только на 5-м, wood и ore капают
   пассивно с Lumber и Quarry Operation, билеты тратятся в Loot Pulls.

   Подсказка чисто на CSS, без JS: текст привязан к aria-label, который
   разметка уже проставляет. Задержка 400мс, чтобы не выскакивала при
   случайном проходе курсором; появление 160мс с ease-out и ростом от
   верхнего края — то есть от самой фишки. На тач-устройствах выключена. */

@media (hover: hover) and (pointer: fine) {
  .hb-app .hb-topbar,
  .hb-app .hb-resources { overflow: visible; }

  .hb-app .hb-resource { position: relative; }

  .hb-app .hb-resource::after {
    content: attr(aria-label);
    position: absolute;
    top: calc(100% + 9px);
    right: 0;
    z-index: 80;
    width: max-content;
    max-width: 250px;
    padding: 9px 12px;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: var(--surface3);
    box-shadow: 0 14px 30px -14px #000;
    color: var(--muted);
    font-family: var(--body);
    font-size: 12.5px;
    line-height: 1.45;
    letter-spacing: .1px;
    text-align: left;
    white-space: pre-line;
    pointer-events: none;
    opacity: 0;
    transform: scale(.97) translateY(-3px);
    transform-origin: top right;
    transition: opacity 160ms var(--lh-ease-out),
                transform 160ms var(--lh-ease-out);
  }

  .hb-app .hb-resource:hover::after {
    opacity: 1;
    transform: scale(1) translateY(0);
    transition-delay: 400ms;
  }

  /* Текст подсказки: название плюс откуда берётся и на что тратится. */
  .hb-app .hb-resource[aria-label^="Wood"]::after {
    content: "Wood\A Drips in from the Lumber Operation. Spent on village buildings and plots.";
  }
  .hb-app .hb-resource[aria-label^="Ore"]::after {
    content: "Ore\A Drips in from the Quarry Operation. Spent on higher building ranks.";
  }
  .hb-app .hb-resource[aria-label^="Boss Trophies"]::after {
    content: "Boss Trophies\A Dropped by the bosses on stages 5, 10 and 15. Needed from building rank 3 up.";
  }
  .hb-app .hb-resource[aria-label^="Sheriff"]::after {
    content: "Sheriff's Crests\A The rarest camp currency. Only rank 5 upgrades ask for them.";
  }
  .hb-app .hb-resource[aria-label^="Standard Tickets"]::after {
    content: "Standard Tickets\A Spend on Standard pulls in Loot Pulls. Earned from Weekly Bounties.";
  }
  .hb-app .hb-resource[aria-label^="Limited Tickets"]::after {
    content: "Limited Tickets\A Spend on the Limited banner. The scarcest pull currency.";
  }

  /* Первая строка подсказки — это название, оно должно быть светлее. */
  .hb-app .hb-resource::after { color: var(--muted); }
}

@media (prefers-reduced-motion: reduce) {
  .hb-app .hb-resource::after { transition-duration: .01ms; }
}

/* ============ 4 · ОКНО ТУТОРИАЛА ============
   Обучение было единственным входом в игру: пока оно не пройдено,
   запуск забега подменялся приветственным окном, а у окна была ровно
   одна кнопка — «Begin Tutorial». Закрыть можно было только через
   Escape, и тогда оно возвращалось при следующем заходе. Добавили
   второе действие «Skip tutorial», которое помечает обучение
   пройденным навсегда; пройти его заново можно из Tutorial Guide.
   Здесь — оформление пары кнопок. */

.induction-modal__actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.induction-modal__actions #inductionModalAction {
  order: 2;
  min-height: 46px;
  padding: 12px 24px !important;
  border: none !important;
  border-radius: 12px !important;
  color: #08120a !important;
  background: linear-gradient(180deg, #c8f85e, #b7f24a 42%, #7fae2a) !important;
  box-shadow: 0 14px 30px -12px rgba(183, 242, 74, .7),
              inset 0 1px 0 rgba(255,255,255,.45) !important;
  font-family: 'Alagard', serif;
  font-size: 18px;
  letter-spacing: .4px;
  cursor: pointer;
}
/* Пропуск — тихая кнопка слева: доступна, но не спорит с основной. */
.induction-modal__skip {
  order: 1;
  min-height: 46px;
  padding: 12px 18px;
  border: 1px solid #28352f;
  border-radius: 12px;
  background: transparent;
  color: #93ab9e;
  font-family: 'PixelOperator', monospace;
  font-size: 13.5px;
  letter-spacing: .2px;
  cursor: pointer;
  transition: color 140ms cubic-bezier(0.16, 1, 0.3, 1),
              border-color 140ms cubic-bezier(0.16, 1, 0.3, 1);
}
@media (hover: hover) and (pointer: fine) {
  .induction-modal__skip:hover {
    color: #eaf5ee;
    border-color: #3a4b42;
  }
}

/* ===================================================================
   СПРАЙТЫ: доска заказов, левая навигация, кнопки верхней панели
   Файлы сгенерированы Z-Image-Turbo, инструмент — tools/sprites/.
   Два разных способа подключения, и это не случайность:
   цветные предметы идут фоном и несут свою окраску, монохромные глифы
   идут маской и красятся из CSS — так один файл покрывает и обычное,
   и активное состояние пункта, а цвет остаётся в палитре, а не в PNG.
   =================================================================== */

/* ---- три состояния строки заказа --------------------------------- */
/* Раньше у всех строк стоял один значок, и выполненное приходилось
   вычитывать из счётчика. Значки цветные, поэтому маску снимаем. */
.hb-app .hb-bounty-list .hb-icon-slot[data-bounty-state]{
  width:17px; height:17px;
  -webkit-mask:none !important; mask:none !important;
  background-color:transparent;
  background-repeat:no-repeat; background-position:center; background-size:contain;
  image-rendering:pixelated;
  transition:transform .18s ease-out;
}
.hb-app .hb-bounty-list .hb-icon-slot[data-bounty-state="open"]{
  background-image:url("../images/bounty-dot-open-v1.png"); opacity:.75;
}
.hb-app .hb-bounty-list .hb-icon-slot[data-bounty-state="progress"]{
  background-image:url("../images/bounty-dot-progress-v1.png");
}
.hb-app .hb-bounty-list .hb-icon-slot[data-bounty-state="done"]{
  background-image:url("../images/bounty-dot-done-v1.png");
  filter:drop-shadow(0 0 3px color-mix(in srgb,var(--lime) 55%,transparent));
}
/* выполненная строка гасит собственный текст: глаз должен цепляться за
   незакрытые, а не пересчитывать сделанное заново */
.hb-app .hb-bounty-list>div:has(.hb-icon-slot[data-bounty-state="done"]) dt{color:var(--muted);}
.hb-app .hb-bounty-list>div:has(.hb-icon-slot[data-bounty-state="done"]) dd{color:var(--lime);}

/* ---- левая навигация -----------------------------------------------
   Иконки шли маской с покраской из --c: маска берёт только силуэт, а
   собственный цвет предмета выбрасывает — крашеные спрайты выглядели бы
   плоскими заливками, ровно как прежние глифы. Теперь картинкой.
   -------------------------------------------------------------------- */
.hb-app .hb-nav-item[data-shell-destination] .hb-nav-ic svg{display:none;}
.hb-app .hb-nav-item[data-shell-destination] .hb-nav-ic::before{
  content:""; display:block; width:30px; height:30px;
  background:var(--nav-sprite) center/contain no-repeat;
  image-rendering:pixelated;
}
.hb-app .hb-nav-item[data-shell-destination="hunt"]        .hb-nav-ic{--nav-sprite:url("../images/nav-hunt-v1.png?v=3");}
.hb-app .hb-nav-item[data-shell-destination="settlement"]  .hb-nav-ic{--nav-sprite:url("../images/nav-village-v1.png?v=3");}
.hb-app .hb-nav-item[data-shell-destination="plots"]       .hb-nav-ic{--nav-sprite:url("../images/nav-plots-v1.png?v=3");}
.hb-app .hb-nav-item[data-shell-destination="bounties"]    .hb-nav-ic{--nav-sprite:url("../images/nav-bounties-v1.png?v=3");}
.hb-app .hb-nav-item[data-shell-destination="gacha"]       .hb-nav-ic{--nav-sprite:url("../images/nav-pulls-v1.png?v=3");}
.hb-app .hb-nav-item[data-shell-destination="outfitter"]   .hb-nav-ic{--nav-sprite:url("../images/nav-loadout-v1.png?v=3");}
.hb-app .hb-nav-item[data-shell-destination="marketplace"] .hb-nav-ic{--nav-sprite:url("../images/nav-market-v1.png?v=3");}
.hb-app .hb-nav-item[data-shell-destination="guide"]       .hb-nav-ic{--nav-sprite:url("../images/nav-guide-v1.png?v=3");}

/* ---- кнопки аккаунта и звука ------------------------------------- */
/* Обе кнопки идут сгенерированными спрайтами через маску. Звук раньше был
   нарисован по сетке в разметке: прежний рожок на 23 пикселях сминался в клин
   и включённый звук выглядел выключенным. Новый спрайт на этом размере
   держит и раструб, и мундштук, поэтому вернулся к общему приёму. */
.hb-app .hb-add svg,
.hb-app .hb-audio-toggle svg{display:none !important;}
/* ::before у .hb-add в loothood-hunt-v1.css занят разделительной чёрточкой
   (position:absolute; left:-9px). Глиф обязан явно вернуть себе поток и центр,
   иначе наследует абсолютное позиционирование и уезжает из кнопки. */
.hb-app .hb-add::before,
.hb-app .hb-audio-toggle::before{
  content:""; display:block; position:static !important;
  left:auto; top:auto; transform:none !important;
  width:19px; height:19px;
  background-color:currentColor;
  -webkit-mask:var(--btn-sprite) center/contain no-repeat;
  mask:var(--btn-sprite) center/contain no-repeat;
}
.hb-app .hb-add{--btn-sprite:url("../images/ui-account-v1-mask.png");}
.hb-app .hb-audio-toggle{--btn-sprite:url("../images/ui-sound-v1-mask.png"); position:relative;}
/* Выключенный звук: разметка подменяет символ внутри svg, но svg спрятан,
   поэтому состояние надо показать самим. Косая черта поверх рожка читается
   на 36 пикселях лучше, чем второй спрайт, и не требует ещё одной картинки. */
.hb-app .hb-audio-toggle[aria-pressed="false"]::after{
  content:"" !important; display:block !important; position:absolute;
  left:50%; top:50%; width:26px; height:2px;
  transform:translate(-50%,-50%) rotate(-45deg);
  background:currentColor; border:none;
  box-shadow:0 -2px 0 var(--surface2);
}
/* разделительная чёрточка переезжает на ::after (в hunt он заглушён — вернуть) */
.hb-app .hb-add::after{
  content:"" !important; display:block !important; position:absolute;
  left:-9px; top:50%; transform:translateY(-50%);
  width:1px; height:22px; background:var(--line); border:none;
}
/* важно: в loothood-hunt-v1.css у этих кнопок ::after заглушён правилом
   content:none !important — без !important здесь оно победит независимо
   от специфичности, и перечёркивание просто не появится */

/* ---- иконкам больше площади --------------------------------------
   Спрайты нарисованы моделью в 1024 и на 19 пикселях теряли детали:
   сундук читался пятном. Вместо перерисовки даём им место — плашка
   и сам глиф вырастают, силуэт и внутренние линии получают пиксели,
   на которых могут проявиться. */
.hb-app .hb-nav-ic{width:38px; height:38px; border-radius:10px;}
.hb-app .hb-nav-item[data-shell-destination] .hb-nav-ic::before{width:30px; height:30px;}
.hb-app .hb-nav-item{gap:12px;}

/* верхняя панель: ресурс должен узнаваться по цвету на бегу,
   а на 18 пикселях все шесть выглядели одинаковыми прямоугольниками */
.hb-app .hb-resources{gap:7px; min-width:0;}
.hb-app .hb-resource{height:38px; padding:0 10px; gap:7px;}
.hb-app .hb-resource__icon{width:24px; height:24px;}
/* Кнопки держим на 38: на 40 строка ресурсов переставала помещаться и
   выталкивала их за правый край окна. */
.hb-app .hb-add,.hb-app .hb-audio-toggle{width:38px !important; height:38px !important;}
.hb-app .hb-add::before{width:23px; height:23px;}

/* Обычный билет модель нарисовала зеркально лимитному: отрывной край слева
   против справа. Рядом в строке это читается как два разных предмета, а не
   как одна вещь в двух качествах. Отражаем, вместо того чтобы гонять заново. */
.hb-app .hb-resource--ticket .hb-resource__icon{transform:scaleX(-1);}

/* ---- Supply Yard warning: иконки ресурсов ------------------------
   Правило продукта: где ресурс назван словом, рядом стоит его иконка.
   Секции диалога уже несут data-resource — цепляем иконку без JS. */
.storehouse-risk__resource strong::before{
  content:""; display:inline-block; width:20px; height:20px;
  margin-right:7px; vertical-align:-4px;
  background:center/contain no-repeat; image-rendering:pixelated;
}
.storehouse-risk__resource[data-resource="wood" i] strong::before{background-image:url("../images/resource-wood-v3.png");}
.storehouse-risk__resource[data-resource="ore" i]  strong::before{background-image:url("../images/resource-ore-v3.png");}

/* ---- Confirm-окно разрушительных действий (Leave Run и др.) ------ */
.destructive-confirm-modal{background:rgba(4,7,6,.66) !important;backdrop-filter:blur(3px);}
.destructive-confirm-modal__panel{
  background:#0d1411 !important;background-image:none !important;
  border:1px solid #28352f !important;border-radius:16px !important;
  box-shadow:0 34px 90px -34px #000 !important;padding:24px !important;
}
.destructive-confirm-modal__panel::before,
.destructive-confirm-modal__panel::after{display:none !important;content:none !important;}
.destructive-confirm-modal__eyebrow{
  color:#63776b !important;font-size:11px !important;letter-spacing:.9px !important;
  text-transform:uppercase !important;margin:0 0 4px !important;
}
.destructive-confirm-modal h2{
  font-family:"Alagard",serif !important;font-size:24px !important;
  color:#eaf5ee !important;text-shadow:none !important;margin:0 !important;text-align:left !important;
}
.destructive-confirm-modal .hb-diamond-rule{display:none !important;}
.destructive-confirm-modal__panel > p:not(.destructive-confirm-modal__eyebrow){
  color:#93ab9e !important;font-size:13.5px !important;
}
.destructive-confirm-modal__actions{gap:9px !important;}
.destructive-confirm-modal__actions button{
  min-height:46px !important;border-radius:11px !important;
  background:#141d19 !important;background-image:none !important;
  border:1px solid #28352f !important;color:#eaf5ee !important;
  font-size:14px !important;font-weight:600 !important;
  box-shadow:none !important;text-shadow:none !important;
}
.destructive-confirm-modal__actions button::before,
.destructive-confirm-modal__actions button::after{display:none !important;content:none !important;}
.destructive-confirm-modal__actions button:hover{
  background:#1b2620 !important;border-color:rgba(183,242,74,.45) !important;
}
.destructive-confirm-modal__actions .button--danger{
  background:rgba(255,107,107,.12) !important;
  border-color:rgba(255,107,107,.5) !important;color:#ff6b6b !important;
}
.destructive-confirm-modal__actions .button--danger:hover{background:#ff6b6b !important;color:#160a0a !important;}

/* ---- Season Centre: вкладки -------------------------------------
   Легаси задаёт полосе width:91% — на десктопе это меньше суммы трёх
   вкладок, и LEADERBOARD вылезает за край пилюли. Полоса должна быть
   ровно по содержимому. */
.hb-app .hb-season-tabs{width:max-content !important; max-width:100%;}

/* Метка версии обязательна: имя файла не меняется при перегенерации,
   и браузер держит прежнюю картинку. Александр перевыбрал фон Village,
   а видел старый именно поэтому. Поднимать при каждой замене фона.  */
/* ---- фоны вкладок -------------------------------------------------
   У каждого экрана свой data-screen, поэтому фон подключается одной
   строкой на экран. Поверх лежит вертикальный скрим: без него текст
   и карточки тонут в картинке, а на экране Hunt мы уже обожглись —
   градиент поверх ярких заливок давал полосы, поэтому скрим здесь
   на псевдоэлементе под содержимым, а не поверх него. */
.hb-app [data-screen="settlement"],
.hb-app [data-screen="equipment-pulls"],
.hb-app [data-screen="outfitter"],
.hb-app [data-screen="bounties"],
.hb-app [data-screen="marketplace"]{
  position:relative; isolation:isolate;
  background-repeat:no-repeat; background-position:center top; background-size:cover;
}
/* Village получает поселение шапкой через heroImage — фоном вкладки
   он всё равно был бы закрыт этой шапкой, как и оказалось. */
.hb-app [data-screen="equipment-pulls"]{background-image:url("../images/bg-gacha-v1.png?v=2");}
.hb-app [data-screen="outfitter"]{background-image:url("../images/bg-outfitter-v1.png?v=2");}
.hb-app [data-screen="bounties"]{background-image:url("../images/bg-bounties-v1.png?v=2");}
.hb-app [data-screen="marketplace"]{background-image:url("../images/bg-marketplace-v1.png?v=2");}

.hb-app [data-screen="settlement"]::before,
.hb-app [data-screen="equipment-pulls"]::before,
.hb-app [data-screen="outfitter"]::before,
.hb-app [data-screen="bounties"]::before,
.hb-app [data-screen="marketplace"]::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(8,11,10,.88) 0%, rgba(8,11,10,.55) 42%, rgba(8,11,10,.12) 100%),
    linear-gradient(180deg, rgba(8,11,10,.20) 0%, rgba(8,11,10,.04) 45%, rgba(8,11,10,.55) 100%);
}

/* ---- предзагрузка спрайтов состояний -------------------------------
   Кнопка на секунду пропадала под курсором. Причина: при наведении
   border-image-source переключается на hover-спрайт, а тот до первого
   наведения не загружен — фон у кнопки выключен через background:none,
   и пока файл летит, от неё остаётся один текст.
   Адрес обязан совпадать с тем, что в CSS, вместе с меткой версии (?r11):
   иначе браузер считает это другим файлом и качает заново.
   Файлы по 220 байт, все 34 штук легче одной иконки.
   Элемент обязан быть отрисованным: у display:none фоновые картинки
   не запрашиваются вовсе. */
.hb-btn9-preload{
  position:fixed; left:-9999px; top:0; width:1px; height:1px;
  opacity:0; pointer-events:none; z-index:-1;
  background-image:
    url("../images/btn9s-neutral-hover-v1.png?r11"),
    url("../images/btn9s-neutral-pressed-v1.png?r11"),
    url("../images/btn9-amber-hover-v1.png?r11"),
    url("../images/btn9-amber-pressed-v1.png?r11"),
    url("../images/btn9-ambersolid-hover-v1.png?r11"),
    url("../images/btn9-ambersolid-pressed-v1.png?r11"),
    url("../images/btn9-cyan-hover-v1.png?r11"),
    url("../images/btn9-cyan-pressed-v1.png?r11"),
    url("../images/btn9-cyansolid-hover-v1.png?r11"),
    url("../images/btn9-cyansolid-pressed-v1.png?r11"),
    url("../images/btn9-emerald-hover-v1.png?r11"),
    url("../images/btn9-emerald-pressed-v1.png?r11"),
    url("../images/btn9-emeraldsolid-hover-v1.png?r11"),
    url("../images/btn9-emeraldsolid-pressed-v1.png?r11"),
    url("../images/btn9-gold-hover-v1.png?r11"),
    url("../images/btn9-gold-pressed-v1.png?r11"),
    url("../images/btn9-goldsolid-hover-v1.png?r11"),
    url("../images/btn9-goldsolid-pressed-v1.png?r11"),
    url("../images/btn9-lime-hover-v1.png?r11"),
    url("../images/btn9-lime-pressed-v1.png?r11"),
    url("../images/btn9-limesolid-hover-v1.png?r11"),
    url("../images/btn9-limesolid-pressed-v1.png?r11"),
    url("../images/btn9-neutral-hover-v1.png?r11"),
    url("../images/btn9-neutral-pressed-v1.png?r11"),
    url("../images/btn9-red-hover-v1.png?r11"),
    url("../images/btn9-red-pressed-v1.png?r11"),
    url("../images/btn9-redsolid-hover-v1.png?r11"),
    url("../images/btn9-redsolid-pressed-v1.png?r11"),
    url("../images/btn9-sage-hover-v1.png?r11"),
    url("../images/btn9-sage-pressed-v1.png?r11"),
    url("../images/btn9-sagesolid-hover-v1.png?r11"),
    url("../images/btn9-sagesolid-pressed-v1.png?r11"),
    url("../images/btn9-violet-hover-v1.png?r11"),
    url("../images/btn9-violet-pressed-v1.png?r11"),
    url("../images/btn9-violetsolid-hover-v1.png?r11"),
    url("../images/btn9-violetsolid-pressed-v1.png?r11");
}

/* ---- окно инструктажа во время боя -------------------------------
   Боевые шаги туториала показываются в том же окне инструктажа, что и
   меню, а оно кладёт поверх всего экрана подложку rgba(1,8,4,.82).
   На шаге «подвигайся по арене» игрок видел арену яркостью 15 из 255
   и правую панель яркостью 9 — то есть ему предлагали учиться на почти
   чёрном экране. Во время забега подложка ослабляется: карточка с текстом
   непрозрачная и остаётся читаемой сама по себе, затемнять под ней всё
   остальное незачем. */
body.is-running .induction-modal {
  background: rgba(1, 8, 4, .40) !important;
  backdrop-filter: none !important;
}
