/* ===== РАМКА ГЛАВНОГО ЭКРАНА «Кость и железо» (10.10.2026, 58-я; его выбор «супер, переноси всё красиво») =====
   Левое меню, полоса валют, строка этажа, кнопки справа и в сцене — картинки из его листов Gemini
   (rive/proba-ishodniki/glavnyj/: kost-zhelezo.jpg, znachki-1.jpg, ploschad-hram-2.jpg → instrumenty/vyrezat-malinovyj-setka.js
   → client/img/ramka/*.webp). Значки вместо эмодзи — фоном через ::before, текст самих кнопок спрятан (font-size:0),
   поэтому старый код, который пишет эмодзи в кнопки, ничего не ломает. Подключается после styles.css и premium.css —
   правила здесь перекрывают их по порядку, без !important (специфичность подобрана такой же или выше).
   Макет, с которого перенесено: client/maket-glavnyj-ekran-3.html. Окна (Осада, Лига…) не трогались — они закрывают рамку целиком. */

/* ---- левое меню: железо и каменные плитки с костью ---- */
.side-nav{ background:linear-gradient(90deg,#2a2a2e,#141416); border-right:3px solid #4a4a50;
  box-shadow:inset -1px 0 0 #8a8a90, 6px 0 18px rgba(0,0,0,.6); gap:3px; padding:5px; }   /* 74-я: вырез телефона теперь учитывает кадр (kadrSafe), здесь отступ не нужен — колонка двоилась и резалась */
.bn-tab{ background:url(img/ramka/plitka.webp) center/100% 100% no-repeat; border:0; border-radius:0; color:#d8cfc0; gap:2px; padding:8px 2px; }
.bn-tab:hover{ border:0; color:#f0e8dc; }
.bn-tab.primary{ background:url(img/ramka/plitka-akt.webp) center/100% 100% no-repeat; border:0; color:#fff3dc; }
.bn-tab .bn-ic{ font-size:0; width:30px; height:30px; background:center/contain no-repeat; filter:drop-shadow(0 2px 2px rgba(0,0,0,.6)); }
.bn-tab.primary .bn-ic{ filter:drop-shadow(0 2px 2px rgba(0,0,0,.6)); }
.bn-tab[data-nav="siege"] .bn-ic{ background-image:url(img/ramka/osada.webp); }
.bn-tab[data-nav="league"] .bn-ic{ background-image:url(img/ramka/liga.webp); }
.bn-tab[data-nav="ploschad"] .bn-ic{ background-image:url(img/ramka/ploschad.webp); }
.bn-tab[data-nav="hram"] .bn-ic{ background-image:url(img/ramka/hram.webp); }
.bn-tab[data-nav="shop"] .bn-ic{ background-image:url(img/ramka/rynok.webp); }
.bn-tab .bn-nm{ font-size:10.5px; text-shadow:0 1px 2px #000, 0 0 4px #000; }

/* ---- полоса валют: железная полоса с костью по низу; «Герои» и числа — на пилюлях ----
   Ширины чисел прежние (styles.css: ★ и ✨ по 50px, остальные по содержимому) — пилюля тянется под ячейку, ничего не прыгает. */
.cur-row{ border-image:url(img/ramka/polosa.webp) 40 110 fill / 0 0 stretch; border-bottom:0; height:32px; box-sizing:border-box; padding:4px 10px; gap:3px; }
.drawer-toggle{ background:url(img/ramka/pilula.webp) center/100% 100% no-repeat; border:0; color:#fff3dc; text-shadow:0 1px 2px #000;
  height:24px; padding:0 12px 0 8px; font-size:11px; }
.drawer-toggle::before{ content:''; width:18px; height:18px; background:url(img/ramka/geroi.webp) center/contain no-repeat; flex-shrink:0; }
.cur-chip, .cur-row > .cur-chip:first-of-type{ background:url(img/ramka/pilula.webp) center/100% 100% no-repeat; border:0; height:24px;
  padding:0 7px; min-width:38px; justify-content:center; text-shadow:0 1px 2px #000; }   /* 9 → 7 (кнопка «Герои» шире — чтобы 💎 не уезжал на вторую строку) */
/* ---- строка этажа: Перерождение и Клеймо на пилюлях ---- */
.souls-row{ background:linear-gradient(180deg,#18181c,#202024); border-bottom:1px solid #3a3a40; }
.mini-prestige-btn, .relic-quick{ background:url(img/ramka/pilula.webp) center/100% 100% no-repeat; border:0; color:#fff3dc;
  text-shadow:0 1px 2px #000; box-shadow:none; }
.mini-prestige-btn:disabled{ background:url(img/ramka/pilula.webp) center/100% 100% no-repeat; color:#8a8278; }
.relic-quick b{ color:#fff3dc; }

/* ---- кнопки справа: железное кольцо, значок фоном ---- */
.daily-btn, .timeskip-fab, .mail-btn, .settings-btn, .chat-btn{ background:url(img/ramka/krug-zhelezo.webp) center/100% 100% no-repeat;
  border:0; border-radius:0; box-shadow:none; font-size:0; animation:none; }
.daily-btn, .timeskip-fab, .mail-btn, .settings-btn{ width:42px; height:42px; right:14px; }
.chat-btn{ width:50px; height:50px; right:10px; bottom:10px; }
.daily-btn::before, .timeskip-fab::before, .mail-btn::before, .settings-btn::before, .chat-btn::before{ content:''; width:24px; height:24px;
  background:center/contain no-repeat; filter:drop-shadow(0 1px 2px rgba(0,0,0,.7)); }
.chat-btn::before{ width:28px; height:28px; }
.daily-btn::before{ background-image:url(img/ramka/podarok.webp); }
.timeskip-fab::before{ background-image:url(img/ramka/uskorenie.webp); }
.mail-btn::before{ background-image:url(img/ramka/pochta.webp); }
.settings-btn::before{ background-image:url(img/ramka/nastroyki.webp); }
.chat-btn::before{ background-image:url(img/ramka/chat.webp); }
.daily-btn.ready{ animation:none; filter:drop-shadow(0 0 7px rgba(170,110,255,.95)); }
.mail-btn .mb-badge, .chat-btn .cb-badge{ font-size:10px; }

/* ---- кнопки в сцене: костяное кольцо (Премиум, Задания, артефакты) ---- */
.quest-btn .qb-ic, .arti-btn, .prem-btn .pb-ring{ background:url(img/ramka/krug-kost.webp) center/100% 100% no-repeat; border:0; box-shadow:none; }
.quest-btn .qb-ic, .arti-btn{ font-size:0; }
.quest-btn .qb-ic, .prem-btn .pb-ring{ width:56px; height:56px; }
.arti-btn{ width:50px; height:50px; }
.quest-btn .qb-ic::before, .arti-btn::before{ content:''; width:32px; height:32px; background:center/contain no-repeat; filter:drop-shadow(0 1px 2px rgba(0,0,0,.7)); }
.arti-btn::before{ width:28px; height:28px; }
.quest-btn .qb-ic::before{ background-image:url(img/ramka/zadaniya.webp); }
.arti-btn::before{ background-image:url(img/ramka/artefakty.webp); }
/* Премиум: без премиума — корона с листа; с премиумом — эмблема материала (premEmbSVG, js/30) на том же костяном кольце,
   материал виден по свечению кольца (wood/gold/dia из premium.css — только тени, фон теперь один) */
.prem-btn .pb-cr{ display:none; }
.prem-btn .pb-ring.none{ background:url(img/ramka/krug-kost.webp) center/100% 100% no-repeat; border:0; box-shadow:none; }
.prem-btn .pb-ring.none::before{ content:''; position:relative; z-index:1; width:32px; height:32px; background:url(img/ramka/premium.webp) center/contain no-repeat;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.7)); animation:none; }
.prem-btn .pb-ring.wood{ background:url(img/ramka/krug-kost.webp) center/100% 100% no-repeat; border:0; box-shadow:0 0 10px rgba(200,140,70,.6); }
.prem-btn .pb-ring.gold{ background:url(img/ramka/krug-kost.webp) center/100% 100% no-repeat; border:0; box-shadow:0 0 14px rgba(240,208,96,.7); }
.prem-btn .pb-ring.dia{ background:url(img/ramka/krug-kost.webp) center/100% 100% no-repeat; border:0; box-shadow:0 0 18px rgba(255,60,100,.75); }
.prem-btn .pb-ring.gold::before, .prem-btn .pb-ring.dia::before, .prem-btn .pb-ring.dia::after{ border-radius:50%; }
.quest-btn .qb-lbl, .prem-btn .pb-lbl{ background:url(img/ramka/pilula.webp) center/100% 100% no-repeat; border:0; color:#fff3dc; box-shadow:none;
  padding:0 8px; height:17px; line-height:17px; margin-top:-8px; }
/* premium.css задаёт font шорткатом (.pb-t/.pb-tm/.pb-tk) и сбрасывает line-height → текст прилипал к верху пилюли; возвращаем */
.prem-btn .pb-lbl.pb-t, .prem-btn .pb-lbl.pb-tm, .prem-btn .pb-lbl.pb-tk{ line-height:17px; color:#fff3dc; }
.prem-btn .pb-lbl.pb-tk{ color:#b8ffc0; }

/* ---- значки валют в полосе (его лист valyuty-1.jpg, 10.10.2026): вместо эмодзи — картинки фоном, эмодзи спрятаны font-size:0.
   Золото и осколки (val-zoloto, val-oskolki) в полосе нет — лежат для окон. ---- */
.cur-chip .cur-ic{ font-size:0; width:16px; height:16px; opacity:1; background:center/contain no-repeat; flex-shrink:0;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.7)); }
.cur-chip.slava .cur-ic{ background-image:url(img/ramka/val-slava.webp); text-shadow:none; }
.cur-chip.souls .cur-ic{ background-image:url(img/ramka/val-dushi.webp); }
.cur-chip.rune .cur-ic{ background-image:url(img/ramka/val-pyl.webp); }
.cur-chip.energy .cur-ic{ background-image:url(img/ramka/val-energiya.webp); }
.cur-chip.skull .cur-ic{ background-image:url(img/ramka/val-kosti.webp); }
.cur-chip.gem .cur-ic{ background-image:url(img/ramka/val-brillianty.webp); }
.cur-chip.shard .cur-ic{ background-image:url(img/ramka/val-oskolki.webp); }
.cur-chip.gold .cur-ic{ background-image:url(img/ramka/val-zoloto.webp); }

/* ---- строка этажа: значки с его листа stroka-etazha.jpg (10.10.2026) вместо ✨ 💀 ↻ 💠 — эмодзи убраны из HTML/JS (js/05 killCounter,
   js/12 updatePrestigeBtn), картинки фоном ::before ---- */
.run-souls, .kill-counter, .mini-prestige-btn{ display:inline-flex; align-items:center; gap:4px; }
.run-souls::before, .kill-counter::before, .mini-prestige-btn::before, .relic-quick::before{ content:''; flex-shrink:0;
  background:center/contain no-repeat; filter:drop-shadow(0 1px 1px rgba(0,0,0,.7)); }
.run-souls::before{ width:15px; height:15px; background-image:url(img/ramka/str-dushi.webp); }
.kill-counter::before{ width:13px; height:13px; background-image:url(img/ramka/str-cherep.webp); }
.mini-prestige-btn::before{ width:14px; height:14px; background-image:url(img/ramka/str-pererozhdenie.webp); }
.mini-prestige-btn:disabled::before{ opacity:.5; }
.relic-quick::before{ width:14px; height:14px; background-image:url(img/ramka/str-kleymo.webp); }
.kill-counter{ background:none; border:0; padding:0; margin-left:6px; }

/* «Герои» чуть больше (его слово 10.10.2026) */
.drawer-toggle{ height:28px; padding:0 14px 0 9px; font-size:12.5px; gap:6px; }
.drawer-toggle::before{ width:22px; height:22px; }

/* ---- над мобом (его листы polosa-hp.jpg, meshochki.jpg, 10.10.2026): полоса здоровья в железной рамке с костью, «БОСС» на плашке,
   «Босс убегает через …» на костяной полоске; значки золота/урона — с листов валют и кнопок ---- */
.hp-wrap{ overflow:visible; background:#141418; border:0; border-radius:0; clip-path:none; height:16px; max-width:300px; margin:8px 0 12px; }   /* сверху 8 — рамка (::before, −12px) не наезжает на строку имени */
.hp-wrap::before{ content:''; position:absolute; left:-7.2%; right:-7.2%; top:-12px; bottom:-12px; pointer-events:none; z-index:2;
  background:url(img/ramka/hp-ramka.webp) center/100% 100% no-repeat; }   /* рамка снаружи; жёлоб в картинке прозрачный */
/* 10.10.2026 (59-я): заливка — картинка 720×51, при «auto 100%» она тянулась лишь на ~226px из 300 и полная полоса выглядела как ~3/4.
   Теперь картинка лежит в ::before шириной с всю полосу (300px = max-width .hp-wrap), а .hp-fill её только ОБРЕЗАЕТ по своей ширине. */
.hp-fill{ background:none; overflow:hidden; }
.hp-fill::before{ content:''; position:absolute; left:0; top:0; bottom:0; width:300px; background:url(img/ramka/hp-zalivka.webp) left center/100% 100% no-repeat; }
.hp-wrap.boss .hp-fill{ background:none; filter:hue-rotate(35deg) saturate(1.3) brightness(1.25); }
.hp-text{ z-index:3; font-size:10px; text-shadow:0 1px 2px #000, 0 0 3px #000; }
.boss-tag{ background:url(img/ramka/boss-plashka.webp) center/100% 100% no-repeat; color:#fff3dc; border-radius:0; padding:5px 14px 3px; margin-right:8px;
  text-shadow:0 1px 2px #000; }
.boss-timer{ background:url(img/ramka/boss-strip.webp) center/100% 100% no-repeat; border:0; border-radius:0; padding:5px 18px; color:#ffe6a0; text-shadow:0 1px 2px #000; }
.boss-timer.urgent{ background:url(img/ramka/boss-strip.webp) center/100% 100% no-repeat; border:0; color:#ff9a8a; }
.stat-chip .sc-ic{ font-size:0; width:14px; height:14px; background:center/contain no-repeat; filter:drop-shadow(0 1px 1px rgba(0,0,0,.7)); }
.stat-chip.gold .sc-ic{ background-image:url(img/ramka/val-zoloto.webp); }
.stat-chip.dps .sc-ic{ background-image:url(img/ramka/geroi.webp); }
.stat-chip.tap .sc-ic{ background-image:url(img/ramka/geroi.webp); filter:drop-shadow(0 1px 1px rgba(0,0,0,.7)) hue-rotate(-30deg) saturate(1.4); }

/* ---- мешочек добычи: его выбор «тёмный с черепком»; место — правый столбик под ускорением (его слово 10.10.2026) ---- */
.loot-bag{ left:auto; right:14px; top:103px; width:42px; height:42px; padding:0; border:0; border-radius:0; box-shadow:none;
  background:url(img/ramka/krug-zhelezo.webp) center/100% 100% no-repeat; filter:drop-shadow(0 0 7px rgba(170,110,255,.9)); }
.loot-bag svg{ display:none; }
.loot-bag::before{ content:''; width:30px; height:30px; background:url(img/ramka/meshok.webp) center/contain no-repeat; filter:drop-shadow(0 1px 2px rgba(0,0,0,.7)); }
/* летящий мешок обучения (js/31 tutFlyBag копирует innerHTML #lootBag — там спрятанный SVG): выглядит как новый мешочек */
.tut-flybag{ width:42px; height:42px; align-items:center; justify-content:center; background:url(img/ramka/krug-zhelezo.webp) center/100% 100% no-repeat; }
.tut-flybag svg{ display:none; }
.tut-flybag::before{ content:''; width:30px; height:30px; background:url(img/ramka/meshok.webp) center/contain no-repeat; }

/* «Герои» — его выбор с листа knopki-geroi.jpg (верхняя левая: железная плашка с костяными углами и мечами слева; до этого — с черепом). Мечи нарисованы в картинке —
   свой значок мечей не нужен; текст правее черепа (padding-left ≈ высота кнопки). */
.drawer-toggle{ background:url(img/ramka/knopka-geroi.webp) center/100% 100% no-repeat; width:110px; height:40px; margin-top:0; padding:0 0 0 12px; justify-content:center; font-size:13px; gap:0; }   /* его «на 61 из 110» — середина текста 61 (padding-left 12) */   /* 2:1 с его второго листа knopki-geroi-2.jpg (к1 — череп слева), 110×40 (его «чуть длиннее» ×2), по ширине чуть растянута; его «ставь череп сначала» */   /* его «попробуем верхнюю справа» (10.10.2026) — плашка с черепом слева (cherep); до этого mechi */
.cur-row{ height:44px; padding:2px 10px; }   /* полоса 32 → 36: кнопка «Герои» 30px целиком внутри, не упирается в край экрана (его «обрезана всё ещё») */   /* его «возьми первую верхнюю» — плашка с мечами слева (mechi) */
.cur-row{ z-index:3; }   /* полоса валют выше строки этажа (у той z-index:2 и фон) — низ кнопки «Герои» не срезался ею (его «кнопка будто обрезана») */
.drawer-toggle::before{ content:none; }

/* одна плашка на славу/души/пыль (его слово 10.10.2026): видна выбранная; тап раскрывает две другие ВНИЗ (js/04 curCycleInit),
   тап по одной — остаётся. Все пилюли полосы одной ширины (его «сделай 1 размер»). */
.cur-chip, .cur-row > .cur-chip:first-of-type{ width:100px; box-sizing:border-box; }
.cur-cycle .cur-chip{ width:150px; }   /* 61-я 12.10.2026, его слово «окно под славу шире, число целиком»: пилюля славы/душ/пыли 150, число до 10 знаков «12 433 434» */
.cur-cycle .cur-chip .cur-val{ width:100px; }
.cur-cycle{ position:relative; display:flex; align-items:center; cursor:pointer; }
.cur-cycle .cur-chip{ display:none; }
.cur-cycle .cur-chip.on{ display:flex; }
.cur-cycle .cur-chip.on::after{ content:''; width:7px; height:7px; margin-left:2px; flex-shrink:0; opacity:.75;
  background:linear-gradient(135deg,#e6d9b5 50%,transparent 50%) center/contain no-repeat; transform:rotate(45deg); }   /* стрелка вниз — это переключатель */
.cur-cycle.open .cur-chip{ display:flex; }
.cur-cycle.open .cur-chip:not(.on){ position:absolute; left:0; z-index:5; filter:drop-shadow(0 4px 6px rgba(0,0,0,.8)); }
.cur-cycle.open .cur-chip.on::after{ transform:rotate(225deg); }

/* ---- 10.10.2026 (59-я): кнопка «Сразиться с боссом» — его лист (правая нижняя: щит с черепом и костями), img/ramka/knopka-boss.webp 480×195.
   Картинка тянется border-image: края (череп слева, кости справа, костяные рейки сверху/снизу) остаются, середина (багровая плита) растягивается.
   Срезы в px картинки: верх 42, право 100, низ 42, лево 112. Пульс — drop-shadow (box-shadow рисовал прямоугольник вокруг прозрачных краёв). ---- */
.boss-btn{ background:none; border:0; border-radius:0; box-shadow:none; height:58px; padding:0 36px 3px 44px; font-size:15px; color:#fff3dc; text-shadow:0 1px 2px #000, 0 0 4px #000;
  border-image:url(img/ramka/knopka-boss.webp) 42 100 42 112 fill / 12px 30px 12px 33px stretch; animation:bossBtnGlow 1.1s ease-in-out infinite; }
.boss-btn:active{ transform:scale(.97); }
@keyframes bossBtnGlow{ 0%,100%{ filter:drop-shadow(0 0 4px rgba(190,40,50,.55)); } 50%{ filter:drop-shadow(0 0 10px rgba(240,70,80,.9)); } }

/* ---- 10.10.2026 (59-я): кнопка «Забрать» в окошке награды — его лист кнопок (1-я: кость с шишечками), img/ramka/knopka-kost.webp 480×191.
   Срезы в px картинки: верх/низ 45, лево/право 72; середина тянется под ширину окошка. ---- */
.it-reveal .lr-close-btn{ background:none; border:0; border-radius:0; height:40px; padding:0 24px 2px; color:#fff3dc; text-shadow:0 1px 2px #000, 0 0 4px #000;
  border-image:url(img/ramka/knopka-kost.webp) 45 72 45 72 fill / 10px 16px 10px 16px stretch; font-size:13px; }
.it-reveal .lr-close-btn:active{ transform:scale(.97); filter:brightness(1.15); }

/* ---- 10.10.2026 (59-я): окошко «Награда за этажи» — его лист окна «кость и железо» (img/ramka/okno-nagrada.webp, ~2:1, как само окошко 451×231):
   картинка целиком фоном, заголовок на костяной плашке сверху, кнопка «Забрать» на выступе снизу. ---- */
.loot-reveal.it-reveal{ background:url(img/ramka/okno-nagrada.webp) center/100% 100% no-repeat; border:0; border-radius:0; padding:17px 28px 10px;   /* заголовок — по центру костяной плашки (его слово) */
  box-shadow:0 0 0 200vmax rgba(0,0,0,.55); }
.it-reveal .lr-title{ color:#2a2118; text-shadow:none; margin:0 auto 6px; font-size:12px; line-height:16px; text-align:center; width:100%; }   /* тёмным по кости */
.it-reveal .lr-greet{ color:#e9ddc3; margin-top:12px; }   /* под плашкой и верхней рейкой листа */
.it-reveal .lr-close-btn{ width:60%; margin:9px auto 0; }

/* ---- 10.10.2026 (59-я): кнопка «Ускорить» в окне «Поток времени» — его лист (3-я: железо с бирюзовой каймой и костяными уголками),
   img/ramka/knopka-uskorit.webp 480×223. Срезы в px картинки: верх/низ 45, лево/право 62. ---- */
.sk-confirm{ background:none; border:0; border-radius:0; height:44px; padding:0 20px 2px; color:#bff0ea; text-shadow:0 1px 2px #000, 0 0 4px #000;
  border-image:url(img/ramka/knopka-uskorit.webp) 45 62 45 62 fill / 9px 12px 9px 12px stretch; }
.sk-confirm:disabled{ background:none; border:0; border-image:url(img/ramka/knopka-uskorit.webp) 45 62 45 62 fill / 9px 12px 9px 12px stretch; color:#8a8278; filter:grayscale(1) brightness(.6); }
.sk-confirm:active{ transform:scale(.98); filter:brightness(1.15); }

/* ---- 10.10.2026 (59-я): окно «Поток времени» — его лист окна (квадрат, плашка с песочными часами сверху, выступ снизу),
   img/ramka/okno-vremya.webp целиком фоном; окно 300×320. Проценты — ПО ВЫРЕЗКЕ без полей: плашка 3.3–12.7 %, костяная рама 23–82 %, нижний выступ 85–96 % — его 1-я кнопка (кость с часами), КОРОЧЕ прежней: 170 px. ---- */
.skip-modal{ width:300px; height:320px; padding:0; background:url(img/ramka/okno-vremya.webp) center/100% 100% no-repeat; border:0; border-radius:0; box-shadow:none; }
.skip-modal .modal-close{ top:4%; right:3%; width:22px; height:22px; border:0; color:#2a2118; background:none; font-weight:900; }
.skip-modal .pm-title{ position:absolute; left:25%; right:25%; top:3.3%; height:9.4%; display:flex; align-items:center; justify-content:center; margin:0;
  color:#2a2118; font-size:13px; }
.skip-modal .sk-flavor{ position:absolute; left:15%; right:15%; top:26%; margin:0; font-size:11px; line-height:1.45; }
.skip-modal .sk-cost{ position:absolute; left:10%; right:10%; top:66%; margin:0; font-size:12px; white-space:nowrap; }
.skip-modal .sk-confirm{ position:absolute; left:50%; top:84.5%; transform:translateX(-50%); width:196px; height:38px; padding:0 10px 2px 28px; font-size:12px; white-space:nowrap; text-align:center;
  border-image:url(img/ramka/knopka-uskorit.webp) 45 40 45 100 fill / 8px 8px 8px 20px stretch; }
.skip-modal .sk-confirm:disabled{ border-image:url(img/ramka/knopka-uskorit.webp) 45 40 45 100 fill / 8px 8px 8px 20px stretch; }
.skip-modal .sk-confirm:active{ transform:translateX(-50%) scale(.98); }
.skip-modal .sk-hint{ position:absolute; left:15%; right:15%; top:75%; margin:0; }

/* ---- 10.10.2026 (59-я): пять атак осады — его лист карточек «кость и железо» (коготь, огонь — костяная рама; меч, стрела, яд — золотая с монеткой),
   img/ramka/atk-<id>.webp 162×160. Карточка-картинка вместо эмодзи; своя рамка кнопки убрана; «готов» — золотое свечение картинки. ---- */
.sf-weapons .siege-wbtn, .sf-weapons .siege-wbtn.ready{ background:none; border:0; box-shadow:none; border-radius:0; padding:2px 2px 4px; }
.sf-weapons .wb-ic{ font-size:0; width:68px; height:68px; background:center/contain no-repeat; }   /* крупнее (его слово) */
.siege-wbtn[data-sw="claw"] .wb-ic{ background-image:url(img/ramka/atk-claw.webp); }
.siege-wbtn[data-sw="flame"] .wb-ic{ background-image:url(img/ramka/atk-flame.webp); }
.siege-wbtn[data-sw="frost"] .wb-ic{ background-image:url(img/ramka/atk-frost.webp); }
.siege-wbtn[data-sw="bolt"] .wb-ic{ background-image:url(img/ramka/atk-bolt.webp); }
.siege-wbtn[data-sw="meteor"] .wb-ic{ background-image:url(img/ramka/atk-meteor.webp); }
.sf-weapons .siege-wbtn.ready .wb-ic{ filter:drop-shadow(0 0 5px rgba(240,208,96,.75)); }
.sf-weapons .siege-wbtn .wb-charge.tl{ left:8px; top:4px; z-index:1; color:#ffe6a0; text-shadow:0 1px 2px #000; }
/* плашка «+100%» недели — в правом верхнем углу карточки, НЕ в потоке: иначе та карточка съезжала вниз (его слово «поставь ровно») */
.sf-weapons .siege-wbtn .wb-week{ position:absolute; right:6px; top:2px; z-index:1; margin:0; }
.sf-weapons .siege-wbtn{ justify-content:flex-start; }

/* ---- 10.10.2026 (59-я): ЭКРАН БОЯ ОСАДЫ — его лист рамки (img/ramka/okno-boy.webp, 3163×1317 ≈ 2.4:1, окно 820×354):
   слева арена с плашкой под имя босса (плашка 6–23 % × 12–20.5 %), справа врезка-панель топа по урону (73–94 % × 21–87 %)
   со своей плашкой (77–90.6 % × 12–19.5 %). Проценты — по вырезке. Чип режима («Смертный») скрыт его словом. ---- */
.siege-fight{ background:url(img/ramka/okno-boy.webp) center/100% 100% no-repeat; border:0; border-radius:0; box-shadow:none; padding:0; display:block; }
.siege-fight .sf-scene{ position:absolute; left:4.5%; top:11.5%; width:63%; bottom:13%; }   /* над нижней рейкой листа (88 %) */
.siege-fight .sf-side .sf-name{ position:absolute; left:6.5%; top:2px; width:19%; height:30px;   /* 60-я, его слово «по центру кости по горизонтали и вертикали»: плашка на листе 6–23 % × 12–20.5 % ОКНА → центр 14.5 % × 16.25 % окна; .sf-side начинается с 4.4 % окна и уже его, поэтому здесь 6.5 % + 19 %/2 = 16 % ширины .sf-side; мерено по DOM */ display:flex; align-items:center; justify-content:center;
  margin:0; padding:0; color:#2a2118; font-size:13px; white-space:nowrap; overflow:hidden; text-align:center; }   /* имя босса — по центру костяной плашки (его слово) */
.siege-fight .sf-side{ padding-top:34px; }   /* полоска здоровья и чипы — под плашкой */
.siege-fight .sf-mode{ display:none; }
.siege-fight .sf-allies{ position:absolute; left:73.3%; top:21.5%; width:20.6%; bottom:13.5%; padding:4px 6px; background:none; border:0; border-radius:0; overflow:visible; }   /* рамка панели нарисована на листе; overflow — чтобы плашка-заголовок над панелью не срезалась */
.siege-fight .sf-allies .bb-head{ position:absolute; left:17%; right:17%; top:-11.5%; height:9%; margin:0; padding:0; display:flex; align-items:center; justify-content:center;
  color:#2a2118; font-size:10px; }   /* «Топ по урону» — на плашке над панелью (координаты от панели: top:-11.5 % ≈ 12–19.5 % окна) */
.siege-fight .sf-allies .bb-head span{ white-space:nowrap; }
.siege-fight .modal-close{ top:3%; right:1.5%; width:22px; height:22px; border:0; background:none; color:#e9ddc3; font-weight:900; }

/* ---- 10.10.2026 (59-я), его слово — новая раскладка боя (кроме обучения, там .tut и всё как было):
   имя босса на плашке БЕЗ «БОСС»; атаки КРУГЛЫЕ (его лист atk-r-*.webp), мелкие, в правом нижнем углу арены; множитель над ними;
   Иероглифы — вверх, в строку с плашкой; Премиум — сразу под Иероглифами; пирамидка — в левый нижний угол арены. ---- */
.siege-fight .sf-name .boss-tag{ display:none; }   /* 74-я: и в обучении — на кости не умещалось «БОСС Саван», имя резалось */
.siege-fight:not(.tut) .sf-glyphs{ top:0; right:1%; width:170px; }   /* в строку с плашкой имени */
.siege-fight:not(.tut) .sf-prem{ top:78px; right:1%; width:170px; }   /* сразу под Иероглифами */
.siege-fight:not(.tut) .sf-top{ padding:0 160px 70px 0; }   /* справа — место под Иероглифы/Премиум, снизу — под атаки; босс по центру остатка */
.siege-fight:not(.tut) .sf-boss{ width:min(150px,100%); }
.siege-fight:not(.tut) .sf-chest{ left:2px; bottom:4px; }
.siege-fight:not(.tut) .sf-flee{ top:2px; left:0; }   /* под таймером осады (его слово) */   /* «Сбежать» — рядом с пирамидкой внизу слева (над кнопкой верхняя строка занята) */
.siege-fight:not(.tut) .sf-multrow{ position:absolute; right:1%; bottom:86px; margin:0; }
.siege-fight:not(.tut) .sf-weapons{ position:absolute; right:1%; bottom:0; margin:0; display:flex; gap:4px; width:auto; }
.siege-fight:not(.tut) .sf-weapons .siege-wbtn{ width:52px; padding:0 0 2px; }
.siege-fight:not(.tut) .sf-weapons .wb-ic{ width:42px; height:42px; }
.siege-fight:not(.tut) .siege-wbtn[data-sw="claw"] .wb-ic{ background-image:url(img/ramka/atk-r-claw.webp); }
.siege-fight:not(.tut) .siege-wbtn[data-sw="flame"] .wb-ic{ background-image:url(img/ramka/atk-r-flame.webp); }
.siege-fight:not(.tut) .siege-wbtn[data-sw="frost"] .wb-ic{ background-image:url(img/ramka/atk-r-frost.webp); }
.siege-fight:not(.tut) .siege-wbtn[data-sw="bolt"] .wb-ic{ background-image:url(img/ramka/atk-r-bolt.webp); }
.siege-fight:not(.tut) .siege-wbtn[data-sw="meteor"] .wb-ic{ background-image:url(img/ramka/atk-r-meteor.webp); }
.siege-fight:not(.tut) .sf-weapons .wb-nm{ font-size:7.5px; }
.siege-fight:not(.tut) .sf-weapons .wb-dmg{ font-size:10.5px; }
.siege-fight:not(.tut) .sf-weapons .wb-charge:not(.tl){ white-space:nowrap; font-size:8px; line-height:10px; height:10px; }   /* 10.10.2026 (60-я), «атаки прыгают»: «⏳ 53м 53с» при 8.5px = 52.5px > 52px карточки — переносилась на 2 строки, ряд (прибит к низу) уезжал вверх; строка одна, высота закреплена */
.siege-fight:not(.tut) .sf-weapons .siege-wbtn .wb-charge.tl{ left:2px; top:0; }
.siege-fight:not(.tut) .sf-weapons .siege-wbtn .wb-week{ right:0; top:-2px; }

/* ---- 10.10.2026 (59-я): полоска здоровья босса в бою — его лист (рамка с черепом и костями + красная заливка),
   img/ramka/hp-osada-ramka.webp (нутро жёлоба сделано прозрачным при вырезке: 8.1 % | 6.0 % по бокам, 26.2 % | 26.9 % сверху/снизу)
   и hp-osada-zalivka.webp (ровная по длине — можно тянуть по ширине). ---- */
.siege-fight .sf-hpwrap{ background:#141418; border:0; border-radius:0; overflow:visible; height:20px; width:150px; margin:14px 0 10px 16px; }   /* чуть шире плашки с именем (его слово) */
.siege-fight .sf-hpwrap::before{ content:''; position:absolute; left:-9.5%; right:-7.1%; top:-11px; bottom:-11.5px; pointer-events:none; z-index:2;
  background:url(img/ramka/hp-osada-ramka.webp) center/100% 100% no-repeat; }
.siege-fight .sf-hpfill{ background:url(img/ramka/hp-osada-zalivka.webp) center/100% 100% no-repeat; }
.siege-fight .sf-hptext{ z-index:3; font-size:10.5px; text-shadow:0 1px 2px #000, 0 0 3px #000; }

/* ---- 10.10.2026 (59-я): кнопка «Премиум» в бою — его лист (железо с золотой каймой, кости по краям, корона слева),
   img/ramka/knopka-premium.webp 600×129; срезы: верх/низ 20, лево 140 (кость + корона), право 80. Корона-эмодзи скрыта — она на картинке. ---- */
.siege-fight .sf-prem, .siege-fight .sf-prem.none{ background:none; border:0; border-radius:0; box-shadow:none; height:32px; padding:0 14px 1px 30px; color:#ffe6a0; text-shadow:0 1px 2px #000;
  border-image:url(img/ramka/knopka-premium.webp) 20 80 20 140 fill / 5px 20px 5px 35px stretch; }
.siege-fight .sf-prem .pb-cr{ display:none; }

/* ---- 10.10.2026 (59-я): табличка Иероглифов в бою — его лист (img/ramka/ieroglify.webp 680×280): костяная полоса сверху (4–18.5 %) под заголовок,
   жёлоб (58.7–80 % × 10–90 %) под полоску; строка «очки / ещё» — между ними. Чипы множителя — его лист chip-off/chip-on.webp. ---- */
.siege-fight .sf-glyphs{ background:url(img/ramka/ieroglify.webp) center/100% 100% no-repeat; border:0; border-radius:0; box-shadow:none; padding:0; height:70px; }
.siege-fight .sf-glyphs .sg-hd{ position:absolute; left:7%; right:7%; top:3.5%; height:15.5%; margin:0; color:#2a2118; font-size:9px; }
.siege-fight .sf-glyphs .sg-crown{ font-size:11px; }
.siege-fight .sf-glyphs .sg-new{ color:#2a2118; border-color:#9a8a6a; font-size:8px; padding:0 4px; }   /* «новые N» — мельче, чтобы влезало на костяную полосу */
.siege-fight .sf-glyphs .sg-new.has{ color:#fff; }
.siege-fight .sf-glyphs .sg-row{ position:absolute; left:9%; right:9%; top:25%; margin:0; }
.siege-fight .sf-glyphs .sg-bar{ position:absolute; left:10.5%; right:10.5%; top:59.5%; height:19.5%; margin:0; border:0; background:none; box-shadow:none; border-radius:4px; }
.siege-fight .sf-multrow .mc{ background:url(img/ramka/chip-off.webp) center/100% 100% no-repeat; border:0; border-radius:0; min-width:32px; height:16px; padding:0 6px; color:#e9ddc3; text-shadow:0 1px 1px #000; }
.siege-fight .sf-multrow .mc.on{ background-image:url(img/ramka/chip-on.webp); color:#2a1410; text-shadow:none; }

/* ---- 10.10.2026 (59-я), его слово: в бою (не в обучении) босс с этажей на фоне Пустыни — панорама под ареной (ниже плашки имени),
   босс дышит как на этажах (mobBreath); заряды платных атак — крупный бейдж «×N» на карточке, «＋» — слева. ---- */
/* панорама Пустыни под ареной была здесь — убрана его словом («фон оставь серый») */
.siege-fight:not(.tut) .sf-side, .siege-fight:not(.tut) .sf-top, .siege-fight:not(.tut) .sf-multrow, .siege-fight:not(.tut) .sf-weapons{ z-index:1; }
.siege-fight:not(.tut) .sf-boss{ width:150px; height:150px; position:relative; }
.siege-fight:not(.tut) .sf-boss{ width:170px; height:170px; }
/* «оживи максимально» (его слово): дыхание + покачивание + лёгкий шаг на месте + раз в 7 с рывок-рык вперёд; тень под лапами дышит вместе с ним;
   ледяное свечение пульсирует. Всё CSS, без JS. */
.siege-fight:not(.tut) .sf-boss img.mob-img{ position:absolute; left:50%; bottom:0; height:100%; width:auto; transform-origin:50% 100%;
  animation:bossAlive 3.2s ease-in-out infinite, bossRoar 7s ease-in-out infinite, bossGlow 2.4s ease-in-out infinite; }
.siege-fight:not(.tut) .sf-boss::after{ content:''; position:absolute; left:50%; bottom:-6px; width:120px; height:18px; border-radius:50%; transform:translateX(-50%);
  background:radial-gradient(ellipse at center, rgba(0,0,0,.55), rgba(0,0,0,0) 70%); animation:bossShadow 3.2s ease-in-out infinite; z-index:-1; }
@keyframes bossAlive{ 0%,100%{ transform:translateX(-50%) scale(1,1) rotate(0deg) translateY(0); }
  25%{ transform:translateX(-50%) scale(1.012,1.03) rotate(-.8deg) translateY(-1px); }
  50%{ transform:translateX(-50%) scale(1.02,1.045) rotate(0deg) translateY(-3px); }
  75%{ transform:translateX(-50%) scale(1.012,1.03) rotate(.8deg) translateY(-1px); } }
@keyframes bossRoar{ 0%,82%,100%{ translate:0 0; scale:1; } 86%{ translate:-6px 0; scale:1.04 1.0; } 90%{ translate:10px -4px; scale:1.1 1.06; } 94%{ translate:4px 0; scale:1.03 1.0; } }
@keyframes bossGlow{ 0%,100%{ filter:drop-shadow(0 6px 6px rgba(0,0,0,.55)) drop-shadow(0 0 6px rgba(120,220,255,.35)); } 50%{ filter:drop-shadow(0 6px 6px rgba(0,0,0,.55)) drop-shadow(0 0 14px rgba(140,230,255,.75)); } }
@keyframes bossShadow{ 0%,100%{ transform:translateX(-50%) scale(1); opacity:.9; } 50%{ transform:translateX(-50%) scale(1.06,.9); opacity:.7; } }
/* кнопка «Сбежать» — его лист (кость + бегун слева), img/ramka/knopka-sbezhat.webp 480×109; срезы: верх/низ 16, лево 100 (кость+бегун), право 28 */
.siege-fight .sf-flee{ background:none; border:0; border-radius:0; height:24px; padding:0 8px 1px 24px; color:#ffd0c0; text-shadow:0 1px 2px #000; font-size:10px;
  border-image:url(img/ramka/knopka-sbezhat.webp) 16 28 16 100 fill / 4px 7px 4px 24px stretch; }
.siege-fight:not(.tut) .sf-weapons .siege-wbtn .wb-charge.tl{ left:auto; right:-3px; top:-4px; font:800 10px 'JetBrains Mono',monospace; color:#ffe07a; text-shadow:none;
  background:#1a1410; border:1px solid var(--gold); border-radius:10px; padding:1px 5px; line-height:1.2; }
.siege-fight:not(.tut) .weapon-btn .wb-buy{ right:auto; left:-4px; top:-6px; }

/* ---- 12.10.2026 (60-я): ЖИВОЙ ПОРТРЕТ босса в карточке перед атакой (#spvPort) — холст 360×360 с вырезанным зелёным
   (bossPortLiveHTML / bossVideoTick в js/11). Его слово: в бою — картинка с CSS-оживлением, видео — коротко в рамке карточки. ---- */
.siege-port canvas.boss-vid{ width:100%; height:100%; display:block; object-fit:contain; }
/* 61-я 12.10.2026: фон за боссом в окне карточки (его выбор по боссам — BOSS_ART.fon в js/11): картинка на всё окно под холстом/портретом */
.siege-port .boss-fon{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.siege-port canvas.boss-vid, .siege-port img.boss-port{ position:relative; z-index:1; }   /* в строке списка портрет не квадратный — вписываем */

/* ---- 12.10.2026 (60-я), его слово «подставь туда первую рамку»: КАРТОЧКА-«ДЕЛО» БОССА — его лист (первый вариант): железная рамка
   с черепом и костями (img/ramka/delo-ramka.webp 482×523, тёмное окно 17 % | 23.3 % | 17 % | 16.1 %), плашка имени на костях
   (delo-plashka.webp 491×149), малая плашка под время (delo-plashka-mal.webp 342×105). Везде, где .sr-port: строка списка осады,
   карточка перед атакой, победа / поражение / побег. Штамп «Повержен» пока кодом. ---- */
.sr-port{ border:0; border-radius:0; overflow:visible; aspect-ratio:482/523; background:url(img/ramka/delo-ramka.webp) center/100% 100% no-repeat; }
.sr-port > .siege-port{ inset:23.3% 17% 16.1% 17%; width:auto; height:auto; background:none; border:0; border-radius:0; overflow:hidden; }
.siege-row .sr-port{ height:100%; width:auto; margin:0 auto; }   /* в строке: по высоте строки, ширина от пропорции рамки */
.sr-port .sr-name{ left:4%; right:4%; bottom:-7%; height:auto; aspect-ratio:491/149; padding:0 12%; display:flex; align-items:center; justify-content:center;
  background:url(img/ramka/delo-plashka.webp) center/100% 100% no-repeat; color:#e9ddc3; text-shadow:0 1px 2px #000; font-size:11px; }
.spv-portcard.sr-port{ height:auto; }            /* карточка перед атакой: 186 в ширину, высота по рамке */
.spv-portcard .sr-name{ font-size:13px; }
.pw-port.sr-port{ height:auto; }                  /* победа / поражение / побег: 124 (96) в ширину */
.pw-mug .pw-plate{ margin:-5% auto 0; width:100%; aspect-ratio:491/149; display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:url(img/ramka/delo-plashka.webp) center/100% 100% no-repeat; color:#e9ddc3; text-shadow:0 1px 2px #000; font-size:11.5px; line-height:1; padding:0 12%; }
.pw-mug .pw-plate small{ display:flex; align-items:center; justify-content:center; width:74%; aspect-ratio:342/105; margin:3px auto 0; min-height:0; font-size:9.5px; line-height:1;
  color:#e9ddc3; background:url(img/ramka/delo-plashka-mal.webp) center/100% 100% no-repeat; }
.pw-mug .pw-plate small:empty{ display:none; }

/* ---- 12.10.2026 (60-я), его слова по бою с Ястребом: «сделай его чуть больше и правее… куда больше, когда атаки видно», «убери + атак —
   покупаются, когда заканчиваются, либо в магазине», «атака идёт только когда нажимаю на атаки». Босс — 240×240, прибит к низу арены,
   середина чуть правее центра, ПОД кнопками (z-index 0: таймер, «Сбежать», множитель, атаки, Премиум выше); тап по боссу снят в js/11. ---- */
.siege-fight:not(.tut) .sf-top{ z-index:0; }
.siege-fight:not(.tut) .sf-boss{ position:absolute; left:52%; bottom:-8px; width:240px; height:240px; transform:translateX(-50%); cursor:default; }
.siege-fight:not(.tut) .sf-boss::after{ width:170px; bottom:-4px; }
.siege-fight:not(.tut) .weapon-btn .wb-buy{ display:none; }

/* ---- 12.10.2026 (60-я), его слова по бою: «босса чуть левее, пусть крыло заходит за здоровье», «когда бью — прыгает очень сильно
   вправо» (причина: hitShake анимирует transform и перебивал translateX(-50 %) центровки — центруем без transform), «×100 положено под
   количество — опусти вниз, где время, у платных кд нет» (бейдж зарядов — в строку под уроном, как «готов»/таймер у бесплатных),
   «чтобы не ставала серая картинка» (закрытый босс в списке больше не серый). ---- */
.siege-fight:not(.tut) .sf-boss{ left:calc(46% - 120px); transform:none; }
/* бейдж зарядов «×N» — ОСТАВЛЕН наверху справа, как было (его слово «сделай лучше как раньше было»); вниз, в пустую строку под уроном
   у платных атак, уехал только бонус недели «+100%» (его слово «+100% перенеси вниз») */
.siege-fight:not(.tut) .sf-weapons .siege-wbtn .wb-week{ top:auto; right:auto; bottom:1px; left:50%; transform:translateX(-50%); }
.siege-row.locked .siege-port{ filter:none; opacity:1; }

/* ---- 12.10.2026 (60-я), его слово «скачал 3 фона, поставь и глянем»: ФОН АРЕНЫ БОЯ под тему недели — картинка ровно в сером окне
   рамки okno-boy.webp (серое поле 4.5 % | 10.4 % | 67.0 % | 85.0 % листа, мерено sharp), под всеми кнопками. Какая картинка — переменная
   --sf-fon на окне (пока проба, выбор за ним); нет переменной — серый, как было. ---- */
.siege-fight:not(.tut){ background:none; }   /* рамка — слоем ::after с ПРОЗРАЧНОЙ ареной (okno-boy-prozr.webp, серый 84 → альфа, sharp), чтобы плашка имени и кости лежали поверх фона и босса */
.siege-fight:not(.tut)::before{ content:''; position:absolute; left:2.5%; top:6.2%; width:66.4%; height:88.2%; z-index:0; pointer-events:none;   /* его слово «до конца костей»: всё нутро между костями слева от вертикальной кости (прозрачно и железо), мерено sharp */
  background:var(--sf-fon, none) center/cover no-repeat #545454; }   /* нет фона — серый, как было */
.siege-fight:not(.tut)::after{ content:''; position:absolute; inset:0; z-index:0; pointer-events:none; background:url(img/ramka/okno-boy-prozr.webp) center/100% 100% no-repeat; }
.siege-fight:not(.tut) .sf-allies, .siege-fight:not(.tut) .sf-toast{ z-index:1; }   /* панель «Топ по урону» и тосты — над слоем рамки ::after */

/* ---- 12.10.2026 (60-я), его слово (уточнённое): «пусть атаки постоянно подсвечены, будто они есть… сейчас ультра серые и не видно на этом
   фоне» — НЕ кольца: значки ярче и контрастнее, тонкий светлый ободок + тёмная тень, чтобы читались на песке; остывшие/пустые НЕ приглушаем
   (состояние видно по подписи «готов»/таймер/×N). ---- */
.siege-fight:not(.tut) .sf-weapons .siege-wbtn .wb-ic{ border-radius:50%; filter:brightness(1.3) contrast(1.08) saturate(1.15);
  box-shadow:0 0 0 1px rgba(255,225,150,.75), 0 0 0 2px rgba(0,0,0,.45), 0 3px 6px rgba(0,0,0,.7); }
/* остывшие/пустые СНОВА приглушены, как было (его слово «верни, чтобы кнопки были серые, если их нету»): opacity .55/.45 из styles.css + серый значок */
.siege-fight:not(.tut) .sf-weapons .siege-wbtn.cooling .wb-ic, .siege-fight:not(.tut) .sf-weapons .siege-wbtn.depleted .wb-ic{ filter:grayscale(.7) brightness(.85); box-shadow:0 0 0 1px rgba(200,200,200,.35), 0 3px 6px rgba(0,0,0,.6); }

/* ---- 12.10.2026 (60-я): табличка Иероглифов с его листа «первая» стояла здесь и СНЯТА его словом («давай промт на другие, более простые,
   как раньше: табличка сверху небольшая, всё просто снизу») — вернулась прежняя ieroglify.webp (правила выше); вырезки первой — img/ramka/ierog-*.webp,
   лежат до его слова. Слово «новые» в чипе — обычным шрифтом (em из js/22). ---- */
.sf-glyphs .sg-new em{ font-style:normal; }

/* ---- 12.10.2026 (60-я): третья табличка Иероглифов с его простого листа (ieroglify-2.webp, 140×72) ставилась и СНЯТА его словом («сделай как было
   раньше, а то очень маленькое») — в игре прежняя ieroglify.webp 170×70 (правила выше). Вырезки лежат: img/ramka/ieroglify-2.webp, ieroglify-bar.webp. ---- */

/* ---- 12.10.2026 (60-я), его слово «табличку сделай новую, верни просто старый размер»: ТАБЛИЧКА ИЕРОГЛИФОВ — третья с его простого листа
   (img/ramka/ieroglify-2.webp 839×434; плашка ≈ 24–76 % × 4–23 %, жёлоб ≈ 17–83 % × 72–89 %), ширина прежняя 170, высота по пропорции 88
   (не тянем камень); заливка полосы — его лента с молниями ieroglify-bar.webp. Премиум — под табличкой. ---- */
.siege-fight:not(.tut) .sf-glyphs{ width:170px; height:88px; top:0; right:1%; background:url(img/ramka/ieroglify-2.webp) center/100% 100% no-repeat; }
.siege-fight:not(.tut) .sf-prem{ top:96px; }
.siege-fight:not(.tut) .sf-glyphs .sg-hd{ position:static; display:contents; }
.siege-fight:not(.tut) .sf-glyphs .sg-t{ position:absolute; left:25%; right:25%; top:4%; height:19%; display:flex; align-items:center; justify-content:center; color:#2a2118; font:800 8.5px 'Cinzel',serif; letter-spacing:.08em; white-space:nowrap; }
.siege-fight:not(.tut) .sf-glyphs .sg-crown{ display:none; }
.siege-fight:not(.tut) .sf-glyphs .sg-new{ position:absolute; right:8%; top:31%; margin:0; height:16px; line-height:14px; padding:0 5px; font-size:8.5px; border-radius:8px; }
.siege-fight:not(.tut) .sf-glyphs .sg-new em{ display:inline; }
.siege-fight:not(.tut) .sf-glyphs .sg-row{ position:absolute; left:9%; top:31%; height:16px; width:55%; margin:0; display:flex; align-items:center; justify-content:flex-start; gap:7px; font-size:8.5px; line-height:1; }
.siege-fight:not(.tut) .sf-glyphs .sg-row b{ font-size:12px; margin-left:2px; }
.siege-fight:not(.tut) .sf-glyphs .sg-left{ position:absolute; left:9%; top:52%; height:14px; display:flex; align-items:center; font-size:8px; color:#cbbba0; white-space:nowrap; }   /* второй строкой: «до следующего: 40» */
.siege-fight:not(.tut) .sf-glyphs .sg-bar{ position:absolute; left:17.5%; right:17.5%; top:73%; height:15%; margin:0; border:0; background:none; box-shadow:none; border-radius:3px; overflow:hidden; }
.siege-fight:not(.tut) .sf-glyphs .sg-fill{ background:url(img/ramka/ieroglify-bar.webp) left center/110px 100% no-repeat; }   /* лента на всю ширину жёлоба (170 × 65 % ≈ 110 px), срезается шириной заливки */
.siege-fight:not(.tut) .sf-glyphs .sg-bar i{ display:none; }
.siege-fight:not(.tut) .sf-glyphs .sg-txt{ font-size:8px; }
/* его слово (следом): «вместо этого всего просто поставь большую цифру, сколько сейчас талантов, и всё» — в теле таблички одна крупная цифра
   открытых иероглифов (слева по центру), чип «новые N» справа, полоса в жёлобе; «открыто» и «до следующего» спрятаны */
.siege-fight:not(.tut) .sf-glyphs .sg-row{ left:6%; top:23%; width:58%; height:49%; justify-content:center; align-items:center; font-size:0; }
.siege-fight:not(.tut) .sf-glyphs .sg-row b{ font-size:24px; margin:0; line-height:1; text-shadow:0 0 6px rgba(255,200,80,.55), 0 1px 2px #000; }
.siege-fight:not(.tut) .sf-glyphs .sg-left{ display:none; }
.siege-fight:not(.tut) .sf-glyphs .sg-new{ top:40%; }
.siege-fight:not(.tut) .sf-glyphs .sg-new{ color:#cbbba0; border-color:#7a6a4a; background:rgba(0,0,0,.35); }   /* на тёмном камне — светлый текст (старый цвет был под костяную полосу) */
.siege-fight:not(.tut) .sf-glyphs .sg-new.has{ color:#fff; background:#2f9a4a; border-color:#1f6a30; }

/* ---- 12.10.2026 (60-я), его слово «премиум сократи в 2 раза и поставь вправо под „новые“»: кнопка 84×26 (была 170×32), прижата к правому краю
   под табличкой Иероглифов; срез короны уменьшен, чтобы влезло слово. ---- */
.siege-fight:not(.tut) .sf-prem, .siege-fight:not(.tut) .sf-prem.none{ top:96px; right:1%; width:84px; height:26px; padding:0 6px 1px 22px; font-size:8.5px;
  border-image:url(img/ramka/knopka-premium.webp) 20 80 20 140 fill / 4px 14px 4px 24px stretch; }
.siege-fight:not(.tut) .sf-prem .pb-lbl{ font-size:8.5px; letter-spacing:0; white-space:nowrap; }
/* 70-я, его слово «окно чуть больше и писаться количество урона»: 84×26 → 134×30, имя + остаток урона в строку (число ужимает .fit) */
.siege-fight:not(.tut) .sf-prem{ width:134px; height:30px; padding:0 9px 1px 27px; gap:5px; justify-content:flex-start;
  border-image:url(img/ramka/knopka-premium.webp) 20 80 20 140 fill / 5px 16px 5px 28px stretch; }
.siege-fight:not(.tut) .sf-prem .sp-nm{ font-size:9px; letter-spacing:0; flex:none; }
.siege-fight:not(.tut) .sf-prem .sp-n{ flex:1; min-width:0; font-size:11px; text-align:right; color:#fff; overflow:hidden; }
/* его скрин (следом): простой список «1. Ник — 21 836» без рамок и подложек */
.sf-allies .bb-list{ gap:1px; }
.sf-allies .bb-row{ background:none; border:0; border-radius:0; padding:2px 4px; gap:5px; justify-content:flex-start; }
.sf-allies .bb-row.me{ background:none; border:0; }
.sf-allies .bb-n{ font:700 12px 'Cinzel',serif; color:#e9ddc3; min-width:16px; }
.sf-allies .bb-row .bb-name, .sf-allies .bb-nick{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; text-decoration:none; }
.sf-allies .bb-row.me .bb-name{ color:#ffe07a; }
.sf-allies .bb-dash{ color:#9c8f7a; font-size:12px; }
.sf-allies .bb-row .bb-dmg{ margin-left:auto; }

/* ---- 12.10.2026 (60-я), его выбор «пирамидки — возьми первую»: пирамидка ступеней бонусов в углу боя — его картинка (img/ramka/piramidka.webp,
   железные ступени с лестницей и черепом, вырезка с листа ui-proba/bossy/piramidki), вместо рисованного SVG; счётчик «N/M» под ней как был. ---- */
.siege-fight:not(.tut) .sf-chest svg{ display:none; }
.siege-fight:not(.tut) .sf-chest::before{ content:''; display:block; width:40px; height:40px; margin:0 auto -2px; background:url(img/ramka/piramidka.webp) center/contain no-repeat;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.7)); }
.siege-fight:not(.tut) .sf-chest{ display:flex; flex-direction:column; align-items:center; height:auto; width:46px; padding:0; bottom:4px; }
.sf-allies .bb-row .bb-name, .sf-allies .bb-nick{ text-align:left; justify-content:flex-start; }   /* его слово: ник / «Вы» сразу после цифры, не по центру */

/* ===== 70-я (15.10.2026): ОКНО ЕЖЕДНЕВНЫХ НАГРАД — ЕГО ВЫБОР «Б, только клетки темнее» (макет client/maket-ezhednevka.html, по его образцу
   Hustle Castle): тёплая панель, крупный жёлтый заголовок, вкладки слева короткими язычками с подписью, клетки — тёмные бирюзовые плитки,
   вехи — тёмные оранжево-золотые, «День N» над клеткой, число белым на тёмной подложке, забрано — зелёная галочка.
   Прежний вариант (рамка его листами) — backup/pered-heka-70/ramka-variant-A-lista.css. Лиандра 7-го дня — живая (styles.css .dl-cell.hfull). */
.daily-modal{ width:min(540px,92%); height:min(340px,94vh); border-radius:18px; border:3px solid #5a3410; padding:8px 14px 8px;
  background:linear-gradient(180deg,#b07a3e,#8a5a26); box-shadow:0 14px 40px rgba(0,0,0,.8), inset 0 2px 0 rgba(255,220,150,.35), inset 0 -3px 0 rgba(0,0,0,.25); }
.daily-modal .dl-head{ padding:0; }
.daily-modal .dl-title{ font-family:Arial,Helvetica,sans-serif; font-weight:900; font-size:17px; letter-spacing:0; color:#ffe85a;
  text-shadow:0 2px 0 #6a3a08,1px 1px 0 #6a3a08,-1px -1px 0 #6a3a08,1px -1px 0 #6a3a08,-1px 1px 0 #6a3a08; }
.daily-modal .dl-sub{ font-weight:700; font-size:10px; color:#fff; text-shadow:0 1px 0 #4a2a08; margin-top:0; }
.daily-modal .dl-grid{ margin-top:4px; padding:6px 8px; gap:3px 8px; border-radius:12px; background:rgba(60,30,8,.35); }
.daily-modal .dl-grid.short{ padding:8px 12px; gap:6px 10px; }
.daily-modal .dl-cell .dl-d{ order:-1; margin:0 0 2px; font-size:8.5px; font-weight:800; color:#fff;
  text-shadow:0 1px 0 #3a1a04,1px 0 0 #3a1a04,-1px 0 0 #3a1a04,0 -1px 0 #3a1a04; }
.daily-modal .dl-grid.short .dl-cell .dl-d{ margin:0 0 3px; font-size:11px; }
.daily-modal .dl-cell.big .dl-d, .daily-modal .dl-grid.short .dl-cell.last .dl-d{ color:#ffe85a; }
.daily-modal .dl-cell.today .dl-d{ color:#9cff70; }
.daily-modal .dl-cell .dl-box{ border-radius:10px; border:2px solid #061c28; background:radial-gradient(ellipse at 50% 35%,#2c7088,#0c3044 78%);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.14), 0 2px 3px rgba(0,0,0,.45); }
.daily-modal .dl-cell.big .dl-box{ border-color:#3a1c04; background:radial-gradient(ellipse at 50% 35%,#b87a24,#6a3a0c 78%); box-shadow:inset 0 2px 0 rgba(255,230,160,.2), 0 2px 3px rgba(0,0,0,.45); }
.daily-modal .dl-cell.hero .dl-box{ border-color:#2a0a40; background:radial-gradient(ellipse at 50% 35%,#7a4aa8,#341450 78%); }
.daily-modal .dl-cell.done .dl-box{ opacity:1; }
.daily-modal .dl-cell.done .dl-box::after{ content:'✔'; right:-4px; bottom:-4px; width:auto; height:auto; border:none; border-radius:0; background:none; box-shadow:none;
  color:#4ee04a; font-size:20px; line-height:1; z-index:3; text-shadow:1px 1px 0 #0a3a08,-1px -1px 0 #0a3a08,1px -1px 0 #0a3a08,-1px 1px 0 #0a3a08,0 2px 3px rgba(0,0,0,.7); }
.daily-modal .dl-grid.short .dl-cell.done .dl-box::after{ font-size:30px; }
.daily-modal .dl-cell.today .dl-box{ border-color:#dffcff; transform:none; }
.daily-modal .dl-cell .dl-ic{ margin:0 0 9px; filter:drop-shadow(0 2px 2px rgba(0,0,0,.55)); }
.daily-modal .dl-grid.short .dl-cell .dl-ic{ margin:0 0 12px; }
.daily-modal .dl-cell .dl-n{ bottom:2px; font-family:Arial,Helvetica,sans-serif; font-size:9.5px; font-weight:800; color:#fff; background:rgba(20,10,0,.6);
  border:none; border-radius:4px; padding:0 4px; min-width:0; box-shadow:none; text-shadow:none; }
.daily-modal .dl-grid.short .dl-cell .dl-n{ font-size:12.5px; bottom:4px; padding:0 6px; }
.daily-modal .dl-cell .dl-im{ width:25px; height:25px; object-fit:contain; display:block; }
.daily-modal .dl-cell .dl-im.w3{ width:14px; height:14px; }
.daily-modal .dl-grid.short .dl-cell .dl-im{ width:40px; height:40px; } .daily-modal .dl-grid.short .dl-cell .dl-im.w3{ width:24px; height:24px; }
.daily-modal .dl-foot{ font-weight:700; color:#fff; text-shadow:0 1px 0 #4a2a08; padding:4px 14px 0; } .daily-modal .dl-foot b{ color:#ffe85a; }
/* Лиандра 7-го дня — живая на своём фоне, золотая кайма */
.daily-modal .dl-grid.short .dl-cell.hfull .dl-box{ border:2px solid #e8c060; border-radius:10px; box-shadow:0 0 10px rgba(255,200,90,.4); }
.daily-modal .dl-cell.hfull .dl-n{ bottom:5px; background:linear-gradient(180deg,#ffe08a,#d6a63a); color:#2a1606; border-radius:5px; padding:1px 9px; font-size:11px; }
/* вкладки слева — короткие язычки с подписью (влезет 4–5 столбиком) */
.daily-modal .dl-bm{ left:-44px; top:40px; gap:5px; }
.daily-modal .dl-tab{ width:48px; height:34px; border-radius:17px 0 0 17px; border:2px solid #7a4a18; border-right:none; box-shadow:-2px 2px 5px rgba(0,0,0,.4);
  background:linear-gradient(180deg,#ffe8a8,#e8b858); color:#5a3410; }
.daily-modal .dl-tab > span{ display:none; }
.daily-modal .dl-tab small{ font-family:Arial,Helvetica,sans-serif; font-size:9px; font-weight:800; white-space:normal; text-align:center; line-height:1.05; margin:0; max-width:40px; }
.daily-modal .dl-tab.on{ background:linear-gradient(180deg,#7af0f8,#2ab0c8); color:#063040; border-color:#0a5a70; width:54px; margin-left:-6px; }
/* 70-я: фон НА ВСЁ ОКНО — его листы (ui-proba/ezhednevka/fon2-7, fon2-28): «7 дней» — закат через двери храма, «28 дней» — гробница при красных жаровнях */
.daily-modal{ background:#1a0608 url(img/ezhednevka/okno-28.webp) center/cover no-repeat; border:2px solid #c89040;
  box-shadow:0 14px 40px rgba(0,0,0,.85), inset 0 0 0 1px rgba(255,210,120,.25), inset 0 0 40px rgba(0,0,0,.5); }
.daily-modal[data-trk="short"]{ background-image:url(img/ezhednevka/okno-7.webp); }
.daily-modal .dl-grid{ background:none; }
/* 70-я, его выбор Б (макет client/maket-oruzhie.html): «все три оружия» — под каждым своё ×N, общей таблички нет */
.daily-modal .dl-cell .dl-ic .dl-w{ position:relative; display:block; }
.daily-modal .dl-cell .dl-ic .dl-w i{ position:absolute; left:50%; transform:translateX(-50%); bottom:-10px; font-style:normal; font-weight:800; font-size:8.5px; color:#fff; white-space:nowrap;
  text-shadow:1px 1px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000; }
.daily-modal .dl-grid.short .dl-cell .dl-ic .dl-w i{ bottom:-15px; font-size:12px; }
.daily-modal .dl-cell .dl-ic:has(.dl-w){ gap:3px; margin-bottom:12px; }
.daily-modal .dl-grid.short .dl-cell .dl-ic:has(.dl-w){ gap:5px; margin-bottom:18px; }
.daily-modal .dl-cell .dl-n:empty{ display:none; }
/* 70-я, его слово «день 5 сделай тоже синим в семи днях»: в коротких дорожках вехи (кроме героя) — обычная синяя клетка; в «28 днях» вехи золотые как были */
.daily-modal .dl-grid.short .dl-cell.big:not(.hero) .dl-box{ border-color:#061c28; background:radial-gradient(ellipse at 50% 35%,#2c7088,#0c3044 78%);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.14), 0 2px 3px rgba(0,0,0,.45); }
.daily-modal .dl-grid.short .dl-cell.big:not(.hero):not(.last) .dl-d{ color:#fff; }
.daily-modal .dl-grid.short .dl-cell.big.today .dl-box{ border-color:#dffcff; }

/* ---- 71-я, его слово «кнопки Забрать и Ускорить другого цвета, поярче»: концы листа (кость / железо с уголками) остаются,
   середина — яркая заливка кодом (border-image без fill, фон только под серединой). ---- */
.it-reveal .lr-close-btn{ border-image:url(img/ramka/knopka-kost.webp) 45 72 45 72 / 10px 16px 10px 16px stretch;
  background:linear-gradient(180deg,#8af07a 0%,#3fbf55 45%,#1f8a3a 100%) padding-box; color:#fff; font-weight:900;
  text-shadow:0 1px 2px #0a3a12, 0 0 6px rgba(10,58,18,.8); box-shadow:inset 0 2px 0 rgba(255,255,255,.35); }
.it-reveal .lr-close-btn:hover{ filter:brightness(1.08); }
.sk-confirm, .skip-modal .sk-confirm{ border-image-slice:45 62 45 62; background:linear-gradient(180deg,#7ff5ea 0%,#22c3b8 45%,#0d8580 100%) padding-box; color:#fff; font-weight:900;
  text-shadow:0 1px 2px #063a38, 0 0 6px rgba(6,58,56,.8); }
.skip-modal .sk-confirm{ border-image-slice:45 40 45 100; }
.sk-confirm:disabled, .skip-modal .sk-confirm:disabled{ background:linear-gradient(180deg,#6a6a6a,#3a3a3a) padding-box; color:#bbb; }

/* ---- 71-я, его слово «возьми кнопки с заданий — цвет и рамка улётные»: «Забрать ✓» и «Ускорить» — изумрудная кнопка «Заданий»
   (img/zadaniya/kn-zabrat.webp 260×94, скарабеи по краям не тянутся — 9-срез), неактивная — каменная kn-off. Прежняя заливка кодом снята. ---- */
.it-reveal .lr-close-btn, .sk-confirm, .skip-modal .sk-confirm{ background:none; box-shadow:none; border:0 solid transparent; border-radius:0;
  border-width:0 22px; border-image:url(img/zadaniya/kn-zabrat.webp) 0 54 fill / 0 22px stretch;
  color:#f2fff4; font-weight:900; text-shadow:0 1px 2px #062010, 0 0 4px #062010; }
.skip-modal .sk-confirm{ padding:0 6px 2px; }
.sk-confirm:disabled, .skip-modal .sk-confirm:disabled{ background:none; border-image:url(img/zadaniya/kn-off.webp) 0 54 fill / 0 22px stretch; color:#d8c6a2; text-shadow:0 1px 2px #000; filter:none; }
.it-reveal .lr-close-btn:active, .sk-confirm:active{ filter:brightness(1.12); }

/* 75-я (его снимок с iPhone: «пофикси босса» — в бою обучения мумия на всё окно, голова над рамкой): с 74-й в обучении настоящий босс (img.mob-img),
   а правил размера у .tut не было — картинка шла в полный рост. Вписываем в свою площадку 178×178 слева от Иероглифов, дышит как в обычном бою. */
.siege-fight.tut .sf-boss{ height:160px; position:relative; }
.siege-fight.tut .sf-boss img.mob-img{ position:absolute; left:50%; bottom:22px;   /* ноги над рядом оружия */ height:100%; width:auto; max-width:none; transform-origin:50% 100%;
  animation:bossAlive 3.2s ease-in-out infinite, bossRoar 7s ease-in-out infinite; }
