/* Большое обновление сезона 1 (update/39_SEASON1_BUILD.md, пакеты 3–4; js/screens/season.js): чип сил на «Рыбалке»,
   страница «Силы рыбака», Мастер, ресторан «У Веры» у Марины, баня у Семёныча, прочность в карточке предмета,
   мини-игра «Веник» (js/story/games.js, .sbr). Двигаются только transform и opacity (память miniapp-performance):
   полосы растут scaleX, без backdrop-filter, анимации filter, box-shadow и размеров; повторы — считанные. */

/* ── цвет состояния сил ─────────────────────────────────── */
.en-form { --en: #A9E4D0; --en-soft: rgba(169, 228, 208, .16); }
.en-ok { --en: #F3D28B; --en-soft: rgba(243, 210, 139, .14); }
.en-tired { --en: #F5B57A; --en-soft: rgba(245, 181, 122, .16); }
.en-spent { --en: #F29A8E; --en-soft: rgba(242, 154, 142, .18); }

/* ── чип на «Рыбалке» под уровнем ───────────────────────── */
.en-chip { --en: var(--accent); --en-soft: rgba(243, 210, 139, .14); position: relative; display: inline-flex; align-items: center; gap: 8px; max-width: 100%;
  min-height: 38px; margin-top: 12px; padding: 4px 10px 4px 5px; border-radius: 19px; border: 1px solid rgba(255, 255, 255, .16);
  background: rgba(10, 20, 22, .55); color: var(--ink); font: inherit; text-align: left; cursor: pointer; transition: transform .15s; }
.en-chip.en-form { --en: #A9E4D0; --en-soft: rgba(169, 228, 208, .16); }
.en-chip.en-tired { --en: #F5B57A; --en-soft: rgba(245, 181, 122, .16); border-color: rgba(245, 181, 122, .4); }
.en-chip.en-spent { --en: #F29A8E; --en-soft: rgba(242, 154, 142, .18); border-color: rgba(242, 154, 142, .5); }
.en-chip:active { transform: scale(.97); }
.en-chip-i { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; color: var(--en); background: var(--en-soft); }
.en-chip-i svg { width: 16px; height: 16px; }
.en-chip-t { min-width: 0; font-size: 18px; font-weight: 800; line-height: 1.05; }
.en-chip-bar { flex: none; position: relative; width: 50px; height: 6px; border-radius: 3px; overflow: hidden; background: rgba(255, 255, 255, .16); }
.en-chip-bar i { position: absolute; inset: 0; transform-origin: 0 50%; border-radius: inherit; background: var(--en); }
.en-chip-b { flex: none; display: inline-flex; align-items: center; gap: 2px; font-size: 16px; color: var(--aqua); }
.en-chip-b svg { width: 13px; height: 13px; }
.en-chip-go { flex: none; display: grid; color: rgba(246, 243, 236, .5); }
.en-chip-go svg { width: 14px; height: 14px; }
@media (max-width: 360px) { .en-chip-bar { width: 34px; } .en-chip-t { font-size: 17px; } }

/* ── страница «Силы рыбака» ─────────────────────────────── */
.en-head .tp-word { color: var(--en); }
.en-head .tm-dayline .en-v { color: var(--en); }
.en-meter { position: relative; height: 14px; border-radius: 7px; overflow: hidden; background: rgba(255, 255, 255, .08); }
.en-zones { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(242, 154, 142, .3) 0 var(--z1), rgba(245, 181, 122, .22) var(--z1) var(--z2),
  rgba(255, 255, 255, .05) var(--z2) var(--z3), rgba(169, 228, 208, .2) var(--z3) 100%); }
.en-meter .fill { position: absolute; inset: 0; z-index: 1; transform-origin: 0 50%; border-radius: inherit;
  background: linear-gradient(90deg, var(--en), #FFF6DE); transition: transform 1.1s cubic-bezier(.2, .8, .2, 1); }
/* риски на 10, 30 и 70 — поверх заливки */
.en-meter::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(90deg, transparent calc(var(--z1) - 1px), rgba(11, 23, 25, .85) calc(var(--z1) - 1px) calc(var(--z1) + 1px), transparent calc(var(--z1) + 1px),
    transparent calc(var(--z2) - 1px), rgba(11, 23, 25, .85) calc(var(--z2) - 1px) calc(var(--z2) + 1px), transparent calc(var(--z2) + 1px),
    transparent calc(var(--z3) - 1px), rgba(11, 23, 25, .85) calc(var(--z3) - 1px) calc(var(--z3) + 1px), transparent calc(var(--z3) + 1px)); }
.en-scale { position: relative; height: 15px; margin-top: 5px; font-size: 11.5px; font-weight: 700; color: rgba(246, 243, 236, .55); }
.en-scale span { position: absolute; top: 0; transform: translateX(-50%); }
.en-scale span:first-child { left: 0; transform: none; }
.en-scale .m1 { left: var(--z1); }
.en-scale .m2 { left: var(--z2); }
.en-scale .m3 { left: var(--z3); }
.en-scale .end { right: 0; transform: none; }
.en-now { margin: 10px 0 0; font-size: 14px; line-height: 1.42; color: rgba(246, 243, 236, .9); }
.en-now b { margin-right: 2px; font-size: 20px; color: var(--en); }
.en-next { margin: 6px 0 0; font-size: 12.5px; line-height: 1.4; color: rgba(246, 243, 236, .66); }

/* котелок ухи */
.en-pot-top { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; align-items: center; }
.en-pot-img { width: 84px; height: 84px; object-fit: contain; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .45)); }
.en-pot-img.ico { display: grid; place-items: center; color: var(--accent); }
.en-pot-img.ico svg { width: 40px; height: 40px; }
.en-pot-x { display: flex; flex-direction: column; min-width: 0; }
.en-pot-x .tp-card-t { color: var(--aqua); }
.en-pot-k { display: block; margin-top: 12px; font-size: 13px; font-weight: 700; line-height: 1.35; color: rgba(246, 243, 236, .82); }
.en-pot-fish { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 8px 0 12px; }
.en-fish { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 4px 7px; border-radius: 14px; text-align: center;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); }
.en-fish img { width: 56px; height: 40px; object-fit: contain; filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .4)); }
.en-fish b { font-size: 12.5px; font-weight: 700; line-height: 1.15; overflow-wrap: anywhere; }
.en-fish small { font-size: 11.5px; color: rgba(246, 243, 236, .6); }
.en-fish.none { border-style: dashed; opacity: .6; }
.en-fish.none i { width: 40px; height: 40px; display: grid; place-items: center; font-style: normal; font-size: 22px; font-weight: 800; color: rgba(246, 243, 236, .5); }
.en-pot-note { display: block; margin-top: 8px; font-size: 12px; line-height: 1.4; color: rgba(246, 243, 236, .6); }

/* веник — картинка строки бани и карточки у Семёныча */
.tp-th.en-broom-th { background: radial-gradient(circle at 50% 60%, rgba(255, 170, 90, .3), rgba(255, 170, 90, .05) 72%); }
.en-broom { display: grid; place-items: center; }
.en-broom svg { width: 30px; height: auto; transform: rotate(-28deg); }

/* ── прочность: полоса (Мастер, карточка предмета) ──────── */
.ss-dur { position: relative; display: block; height: 8px; border-radius: 4px; overflow: hidden; background: rgba(255, 255, 255, .08); }
.ss-dur i { position: absolute; inset: 0; transform-origin: 0 50%; }
.ss-dur .cap { background: rgba(255, 255, 255, .14); }
.ss-dur .fill { background: linear-gradient(90deg, #7FCFB4, var(--aqua)); transition: transform .9s cubic-bezier(.2, .8, .2, 1); }
.ss-dur.warn .fill { background: linear-gradient(90deg, #E6A65C, #F5C98A); }
.ss-dur.bad .fill { background: linear-gradient(90deg, #E07A6E, var(--red)); }
.ss-dur .half { inset: 0 auto 0 50%; width: 2px; margin-left: -1px; background: rgba(11, 23, 25, .85); }
.ss-lock { display: flex; gap: 8px; align-items: flex-start; margin: 8px 0 0; padding: 12px 14px; border-radius: 18px; border: 1px dashed rgba(246, 243, 236, .28);
  font-size: 13px; line-height: 1.4; color: rgba(246, 243, 236, .75); }
.ss-lock svg { flex: none; width: 16px; height: 16px; margin-top: 1px; color: var(--accent); }

/* ── Мастер ─────────────────────────────────────────────── */
.ms-wallet { display: flex; flex-wrap: wrap; gap: 8px; }
.ms-w { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px 0 8px; border-radius: 20px;
  background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); }
.ms-w svg { width: 18px; height: 18px; color: var(--violet); }
.ms-w img { width: 30px; height: 30px; object-fit: contain; }
.ms-w b { font-size: 22px; line-height: 1; }
.ms-w small { font-size: 12.5px; font-weight: 600; color: rgba(246, 243, 236, .72); }
.ms-item { position: relative; margin-top: 10px; padding: 12px 14px 14px; border-radius: 22px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .13); }
.ms-item.weak { border-color: rgba(242, 154, 142, .5); background: linear-gradient(100deg, rgba(242, 154, 142, .13), rgba(255, 255, 255, .04)); }
.ms-top { width: 100%; display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 0; border: 0;
  background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.ms-top:active .ms-img { transform: scale(.94); }
.ms-img { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; overflow: hidden; transition: transform .15s;
  background: radial-gradient(circle at 50% 45%, rgba(255, 255, 255, .16), rgba(255, 255, 255, .03) 72%); box-shadow: inset 0 0 0 1.5px var(--rc); }
.ms-img img { width: 48px; height: 48px; object-fit: contain; filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .4)); }
.ms-img svg { width: 24px; height: 24px; color: var(--accent); }
.ms-x { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ms-x small { font-size: 12.5px; font-weight: 700; color: var(--rc); }
.ms-x b { font-size: 21px; line-height: 1.02; overflow-wrap: anywhere; }
.ms-pct { font-size: 28px; font-weight: 900; white-space: nowrap; }
.ms-item.weak .ms-pct { color: var(--red); }
.ms-bar { margin-top: 10px; }
.ms-say { display: block; margin-top: 6px; font-size: 13px; line-height: 1.35; color: rgba(246, 243, 236, .75); }
.ms-say.weak { color: #FFB8AE; }
.ms-acts { margin-top: 10px; }
.ms-after { display: block; margin-top: 6px; font-size: 12px; text-align: center; color: rgba(246, 243, 236, .6); }
.ms-ok { display: flex; align-items: center; gap: 6px; margin-top: 10px; font-size: 13px; font-weight: 700; color: var(--aqua); }
.ms-ok svg { width: 15px; height: 15px; flex: none; }
.ms-cap { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; align-items: center; margin-top: 10px; padding: 10px 12px;
  border-radius: 14px; background: rgba(0, 0, 0, .2); }
.ms-cap-t { grid-column: 1; font-size: 13px; font-weight: 700; line-height: 1.3; }
.ms-need { grid-column: 1; display: flex; flex-wrap: wrap; gap: 3px 10px; font-size: 12px; color: #FFB8AE; }
.ms-need span { display: inline-flex; align-items: center; gap: 3px; }
.ms-need svg { width: 12px; height: 12px; flex: none; }
.ms-need .ok { color: var(--aqua); }
.ms-cap .tp-btn { grid-column: 2; grid-row: 1 / span 2; }
/* только что починили: кайма вспыхивает и гаснет */
.ms-item.fixed::after { content: ""; position: absolute; inset: -1px; border-radius: inherit; border: 2px solid var(--aqua); pointer-events: none;
  opacity: 0; animation: msFixed 1.4s ease-out; }
@keyframes msFixed { 15% { opacity: 1; } 100% { opacity: 0; } }

/* ── ресторан «У Веры» (страница Марины) ─────────────────── */
.rs-list { display: flex; flex-direction: column; gap: 10px; }
.rs-dish { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 4px 12px; padding: 12px 14px 14px; border-radius: 22px;
  background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .13); }
.rs-dish.ready { border-color: rgba(243, 210, 139, .55); background: linear-gradient(100deg, rgba(243, 210, 139, .14), rgba(255, 255, 255, .04)); }
.rs-img { width: 92px; height: 92px; display: grid; place-items: center; }
.rs-img img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .45)); }
.rs-img svg { width: 34px; height: 34px; color: var(--accent); }
.rs-x { display: flex; flex-direction: column; justify-content: center; gap: 3px; min-width: 0; }
.rs-name { font-size: 22px; line-height: 1; overflow-wrap: anywhere; }
.rs-gain { font-size: 20px; line-height: 1.05; color: var(--aqua); }
.rs-buff { font-size: 12.5px; line-height: 1.35; color: rgba(246, 243, 236, .78); }
.rs-need { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.rs-f { display: inline-flex; align-items: center; gap: 4px; min-height: 28px; padding: 3px 10px; border-radius: 14px; font-size: 13px; font-weight: 700;
  color: #FFC4B8; background: rgba(242, 154, 142, .12); border: 1px solid rgba(242, 154, 142, .4); }
.rs-f.ok { color: var(--aqua); background: rgba(169, 228, 208, .1); border-color: rgba(169, 228, 208, .45); }
.rs-f svg { width: 13px; height: 13px; flex: none; }
.rs-dish .tp-btn { grid-column: 1 / -1; margin-top: 8px; }
.rs-left { grid-column: 1 / -1; text-align: center; font-size: 12px; color: rgba(246, 243, 236, .62); }
.rs-left.rs-done { margin-top: 8px; font-size: 13px; color: rgba(246, 243, 236, .8); }

/* ── баня (страница Семёныча) ───────────────────────────── */
.bn-card { border-color: rgba(245, 181, 122, .45); background: linear-gradient(120deg, rgba(255, 150, 70, .17), rgba(255, 255, 255, .04)); }
.bn-card.used { opacity: .78; }
.bn-top { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px; align-items: center; margin-bottom: 12px; }
.bn-card.used .bn-top { margin-bottom: 0; }
.bn-art { position: relative; width: 76px; height: 92px; display: grid; place-items: center; }
.bn-art .en-broom svg { width: 46px; transform: rotate(-22deg); }
.bn-x { display: flex; flex-direction: column; min-width: 0; }
.bn-steam { position: absolute; left: 50%; top: 6%; width: 50px; height: 50px; margin-left: -25px; border-radius: 50%; opacity: 0; pointer-events: none;
  background: radial-gradient(circle, rgba(255, 255, 255, .42), rgba(255, 255, 255, 0) 70%); animation: bnSteam 3.2s ease-out 3; }
.bn-steam.s2 { margin-left: -8px; animation-delay: 1.6s; }
.bn-card.used .bn-steam { display: none; }
@keyframes bnSteam { 0% { opacity: 0; transform: translateY(22px) scale(.6); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(-30px) scale(1.4); } }

/* ── карточка предмета «Уникального»: прочность ─────────── */
.gc-wear { margin-top: 10px; }
.gc-wear .gc-q { margin: 0 0 6px; }
.gc-wear-t { display: block; margin-top: 6px; font-size: 12.5px; line-height: 1.4; color: rgba(246, 243, 236, .72); }
.gc-wear-t.weak { color: #FFB8AE; }

/* ── мини-игра «Веник» (games.js, broom) ─────────────────── */
.sg-broom { background: #140B05; }
.sbr-bg { position: absolute; inset: 0;
  background: radial-gradient(70% 45% at 50% 56%, rgba(255, 170, 90, .26), rgba(255, 170, 90, 0) 70%),
    repeating-linear-gradient(180deg, #3B2414 0 46px, #2A190D 46px 49px, #4A2E19 49px 53px), #2A190D; }
.sbr-bg::after { content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10, 5, 2, .78), rgba(10, 5, 2, 0) 32%, rgba(10, 5, 2, 0) 66%, rgba(10, 5, 2, .85)); }
.sbr-lamp { position: absolute; left: 50%; top: 54%; width: 120vmin; height: 120vmin; margin: -60vmin 0 0 -60vmin;
  background: radial-gradient(circle, rgba(255, 190, 120, .22), rgba(255, 190, 120, 0) 60%); animation: sbrLamp 2.6s ease-in-out infinite alternate; }
@keyframes sbrLamp { from { opacity: .55; } to { opacity: 1; } }
.sg-broom.steamed .sbr-lamp { animation: none; opacity: 1; }
.sbr-mid { gap: 16px; }
.sbr-dots { flex: none; display: flex; gap: 8px; }
.sbr-dots i { width: 30px; height: 30px; display: grid; place-items: center; opacity: .3; transition: opacity .3s, transform .45s var(--spring); }
.sbr-dots i svg { width: 26px; height: 26px; fill: #6FA046; }
.sbr-dots i.on { opacity: 1; transform: scale(1.18); }
.sbr-zone { --R: min(17.5vw, 74px, calc(var(--sgx-h) * .11)); --tol: .16; position: relative; flex: none; width: calc(var(--R) * 3.9); height: calc(var(--R) * 3.9); max-width: 100%; }
.sbr-heat { position: absolute; left: 50%; bottom: 0; width: 120%; height: 60%; margin-left: -60%; border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(255, 140, 60, .32), rgba(255, 140, 60, 0)); }
.sbr-stones { position: absolute; left: 50%; bottom: -2%; width: 96%; height: auto; transform: translateX(-50%); }
.sbr-band, .sbr-ring { position: absolute; left: 50%; top: 46%; border-radius: 50%; box-sizing: border-box; pointer-events: none; }
.sbr-band { --d: calc(var(--R) * 2 * (1 + var(--tol))); width: var(--d); height: var(--d); margin: calc(var(--d) / -2) 0 0 calc(var(--d) / -2);
  border: calc(var(--R) * 2 * var(--tol)) solid rgba(243, 210, 139, .26); box-shadow: 0 0 0 1.5px rgba(243, 210, 139, .55), inset 0 0 0 1.5px rgba(243, 210, 139, .55);
  transition: border-color .12s; }
.sbr-band.near { border-color: rgba(243, 210, 139, .62); }
.sbr-ring { width: calc(var(--R) * 2); height: calc(var(--R) * 2); margin: calc(var(--R) * -1) 0 0 calc(var(--R) * -1); z-index: 2; opacity: 0;
  border: 5px solid rgba(255, 255, 255, .9); box-shadow: 0 0 16px rgba(255, 255, 255, .45), inset 0 0 16px rgba(255, 255, 255, .35); will-change: transform, opacity; }
.sbr-puff { position: absolute; left: 50%; top: 46%; z-index: 3; width: calc(var(--R) * 1.5); height: calc(var(--R) * 1.5); margin: calc(var(--R) * -.75) 0 0 calc(var(--R) * -.75);
  border-radius: 50%; opacity: 0; pointer-events: none; background: radial-gradient(circle, rgba(255, 255, 255, .6), rgba(255, 255, 255, 0) 68%); }
.sbr-puff.p2 { --dx: -55%; }
.sbr-puff.p3 { --dx: 55%; }
.sbr-zone.hit .sbr-puff { animation: sbrPuff .9s ease-out; }
.sbr-zone.hit .sbr-puff.p2 { animation-delay: .06s; }
.sbr-zone.hit .sbr-puff.p3 { animation-delay: .12s; }
.sg-broom.steamed .sbr-puff { animation: sbrPuff 1.3s ease-out 2; }
@keyframes sbrPuff { 0% { opacity: 0; transform: translate(0, 0) scale(.5); } 25% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx, 0), -70%) scale(1.7); } }
.sbr-word { position: absolute; left: 0; right: 0; top: 46%; z-index: 4; margin-top: -18px; text-align: center; font-size: 34px; line-height: 1;
  opacity: 0; pointer-events: none; text-shadow: 0 3px 12px rgba(0, 0, 0, .65); }
.sbr-word.ok { color: #9FE3B6; }
.sbr-word.bad { color: #FFA596; }
.sbr-word.big { font-size: 40px; color: #F3D28B; }
.sbr-word.pop { animation: sktWord 1s ease-out both; }
.sbr-word.big.pop { animation: sktWordIn .5s var(--spring) both; }
.sbr-broom { position: absolute; right: -24%; bottom: -10%; z-index: 3; width: calc(var(--R) * 1.05); transform-origin: 50% 96%; transform: rotate(-24deg); pointer-events: none; }
.sbr-broom svg { display: block; width: 100%; height: auto; filter: drop-shadow(0 8px 10px rgba(0, 0, 0, .5)); }

/* ══ Сезон 1 у торговцев (js/screens/season_npc.js): заказы на вес, Старица, поиск на берегу, раскопки, тёплая
   одежда, спор Семёныча, Витрина коллекционера, экспедиция и ярмарка Ингвара, атлас в рыбопедии. Двигаются только
   transform и opacity; фильтры — неподвижные (серое «закрыто»), без backdrop-filter. ══════════════════════ */

/* ── заказы на вес и заказ коллекционера ─────────────────── */
.wo-list { display: flex; flex-direction: column; gap: 8px; }
.wo { position: relative; display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 6px 12px; align-items: center;
  padding: 10px 12px 10px 10px; border-radius: 20px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .13); }
.wo.ready { border-color: rgba(169, 228, 208, .6); background: linear-gradient(100deg, rgba(169, 228, 208, .15), rgba(255, 255, 255, .04)); }
.wo.done { opacity: .62; }
.wo-img { width: 72px; height: 58px; border-radius: 14px; display: flex; align-items: center; justify-content: center; overflow: hidden;
  background: radial-gradient(circle at 50% 45%, rgba(255, 255, 255, .16), rgba(255, 255, 255, .03) 72%); }
.wo-img img { display: block; width: auto; height: auto; max-width: 92%; max-height: 92%; object-fit: contain; filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .4)); }
.wo-x { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wo-name { font-size: 22px; line-height: 1; overflow-wrap: anywhere; }
.wo-w { font-size: 18px; line-height: 1.05; color: var(--accent); }
.wo.done .wo-w { color: rgba(246, 243, 236, .7); }
.wo-pay { display: flex; flex-wrap: wrap; align-items: center; gap: 0 6px; font-size: 12.5px; font-weight: 600; color: rgba(246, 243, 236, .72); }
.wo-pay .tp-val { font-size: 18px; }
.wo-pay .tp-val svg { width: 13px; height: 13px; }
.wo-act { display: flex; justify-content: flex-end; }
.wo-hint { grid-column: 1 / -1; display: flex; gap: 6px; align-items: flex-start; font-size: 12px; line-height: 1.35; color: #FFC9A8; }
.wo-hint svg { flex: none; width: 14px; height: 14px; margin-top: 1px; }
.wo.flash::after { content: ""; position: absolute; inset: -1px; border-radius: inherit; border: 2px solid var(--aqua); pointer-events: none; opacity: 0;
  animation: msFixed 1.4s ease-out; }
@media (max-width: 360px) {
  .wo { grid-template-columns: 58px minmax(0, 1fr) auto; gap: 6px 10px; padding-right: 10px; }
  .wo-img { width: 58px; height: 48px; }
  .wo-name { font-size: 20px; }
  .wo-w { font-size: 17px; }
}

/* ── Старица: фото места, лодка, разрешение, блёсны; спиннинги плитками ── */
.sr-hero { position: relative; overflow: hidden; min-height: 176px; border-radius: 22px; display: flex; align-items: flex-end;
  background: #0F2224; border: 1px solid rgba(255, 255, 255, .13); box-shadow: 0 14px 30px rgba(3, 10, 12, .3); }
.sr-hero-ph { position: absolute; inset: 0; background-size: cover; background-position: center 42%; }
.sr-hero.locked .sr-hero-ph { filter: grayscale(.7) brightness(.65); }
.sr-hero::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(6, 14, 16, 0) 0%, rgba(6, 14, 16, .5) 42%, rgba(6, 14, 16, .93) 100%); }
.sr-hero-in { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 64px 16px 14px; }
.sr-hero-t { font-size: 42px; line-height: .88; }
.sr-hero-in small { font-size: 13px; font-weight: 600; line-height: 1.38; color: rgba(246, 243, 236, .88); }
.sr-hero-in .tp-btn { margin-top: 4px; }
.sr-miss { display: inline-flex; gap: 6px; align-items: center; margin-top: 2px; font-size: 13px; font-weight: 700; color: #FFC9A8; }
.sr-miss svg { flex: none; width: 14px; height: 14px; }
.sr-rods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.sr-gift + .sr-rods { margin-top: 8px; }               /* подарок Анатолия строкой над спиннингами (24.10) */
.sr-rod { position: relative; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 10px 10px 12px; text-align: center;
  border-radius: 20px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .13); }
.sr-rod.owned { border-color: rgba(169, 228, 208, .6); background: linear-gradient(180deg, rgba(169, 228, 208, .15), rgba(255, 255, 255, .04)); }
.sr-rod.worse { opacity: .6; }
.sr-rod.locked { background: none; border-style: dashed; border-color: rgba(246, 243, 236, .28); }
.sr-rod-img { width: 100%; height: 96px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.sr-rod-img img { display: block; width: auto; height: auto; max-width: 100%; max-height: 96px; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(0, 0, 0, .45)); }
.sr-rod-img svg { width: 34px; height: 34px; color: var(--accent); }
.sr-rod.locked .sr-rod-img img { filter: grayscale(1) brightness(.55); }
.sr-rod-k { font-size: 11.5px; font-weight: 700; color: rgba(246, 243, 236, .6); }
.sr-rod-n { font-size: 22px; line-height: 1; overflow-wrap: anywhere; }
.sr-rod-t { flex: 1; font-size: 12px; line-height: 1.35; color: rgba(246, 243, 236, .78); }
.sr-rod-a { width: 100%; display: flex; justify-content: center; margin-top: 6px; }
/* удочка Ледовского (44_STARITSA_ROD.md): шесть деталей и сборка — без анимаций и фильтров на живых элементах */
.ld { display: flex; flex-direction: column; gap: 10px; padding: 12px; border-radius: 22px; border: 1px solid rgba(243, 210, 139, .32);
  background: linear-gradient(180deg, rgba(243, 210, 139, .12), rgba(255, 255, 255, .03)); }
.ld-hero { display: flex; align-items: center; gap: 12px; }
.ld-hero-img { flex: none; width: 96px; height: 96px; display: flex; align-items: center; justify-content: center; }
.ld-hero-img img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.ld-hero-t { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ld-hero-t b { font-size: 24px; line-height: 1; color: #F3D28B; }
.ld-hero-t small { font-size: 12.5px; font-weight: 600; line-height: 1.38; color: rgba(246, 243, 236, .86); }
.ld-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ld-part { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 6px 9px; border-radius: 16px; text-align: center;
  border: 1px solid rgba(246, 243, 236, .14); background: rgba(255, 255, 255, .05); color: inherit; font: inherit; }
.ld-part.have { border-color: rgba(243, 210, 139, .5); background: rgba(243, 210, 139, .1); }
.ld-part.miss { border-style: dashed; }
.ld-part-img { width: 100%; height: 64px; display: flex; align-items: center; justify-content: center; }
.ld-part-img img { display: block; max-width: 100%; max-height: 64px; object-fit: contain; }
.ld-part.miss .ld-part-img img { opacity: .28; }
.ld-part-img svg { width: 22px; height: 22px; opacity: .5; }
.ld-part-n { font-size: 12.5px; line-height: 1.15; overflow-wrap: anywhere; }
.ld-tag { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; font-weight: 700; font-style: normal; color: rgba(246, 243, 236, .55); }
.ld-tag svg { width: 11px; height: 11px; }
.ld-tag.ok { color: #A9E4D0; }
.ld-tag.spare { color: #F3D28B; }

/* ── поиск на берегу ─────────────────────────────────────── */
.bs-top { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 12px; align-items: center; }
.bs-det { width: 72px; height: 82px; object-fit: contain; transform: rotate(-8deg); filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .45)); }
.bs-det.ico { display: grid; place-items: center; color: var(--accent); }
.bs-det.ico svg { width: 36px; height: 36px; }
.bs-x { display: flex; flex-direction: column; min-width: 0; }
.bs-name { font-size: 27px; overflow-wrap: anywhere; }
/* ряд мест листается вбок внутри карточки — страница вбок не едет */
.bs-places { display: flex; gap: 8px; margin: 12px -16px; padding: 2px 16px 4px; overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.bs-places::-webkit-scrollbar { display: none; }
.bs-pl { position: relative; flex: none; width: 112px; height: 76px; padding: 0; overflow: hidden; border-radius: 14px; scroll-snap-align: center;
  color: var(--ink); background: #0F2224; border: 1.5px solid rgba(255, 255, 255, .16); transition: transform .15s; }
.bs-pl:active { transform: scale(.95); }
.bs-pl-ph { position: absolute; inset: 0; background-size: cover; background-position: center; }
.bs-pl::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6, 14, 16, 0) 30%, rgba(6, 14, 16, .88)); }
.bs-pl b { position: absolute; left: 8px; right: 6px; bottom: 6px; z-index: 1; font-size: 15px; line-height: 1; text-align: left; }
.bs-ck { position: absolute; right: 6px; top: 6px; z-index: 1; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center;
  color: var(--accent-ink); background: var(--accent); opacity: 0; transform: scale(.5); transition: opacity .2s, transform .25s var(--spring); }
.bs-ck svg { width: 12px; height: 12px; }
.bs-pl.on { border-color: var(--accent); }
.bs-pl.on .bs-ck { opacity: 1; transform: none; }
.bs-pl.on b { color: var(--accent); }
.bs-note { display: block; margin-top: 8px; font-size: 12px; line-height: 1.4; text-align: center; color: rgba(246, 243, 236, .66); }
/* окно находок */
.bs-finds { position: relative; display: flex; justify-content: center; gap: 8px; height: 150px; margin-bottom: 6px; }
.bs-find { width: min(150px, 46%); height: 150px; display: grid; place-items: center; animation: fishIn .9s var(--spring) .1s both; }
.bs-find + .bs-find { animation-delay: .28s; }
.bs-find img { max-width: 100%; max-height: 100%; object-fit: contain; filter: drop-shadow(0 10px 12px rgba(0, 0, 0, .5)); }

/* ── находки места у металлоискателя: 10 клеток, рамка — по ценности (клад — золотая) ─────── */
.bs-grid-h { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin: 14px 2px 8px;
  font-size: 13px; color: rgba(246, 243, 236, .72); }
.bs-grid-h b { font-weight: 600; color: rgba(246, 243, 236, .9); }
.bs-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; margin-bottom: 12px; }
.bs-cell { position: relative; aspect-ratio: 1; display: grid; place-items: center; padding: 4px; border-radius: 14px;
  border: 1px solid rgba(246, 243, 236, .16); background: rgba(255, 255, 255, .04); align-items: center; }
.bs-cell { overflow: hidden; }
.bs-cell img { position: absolute; left: 6px; top: 6px; width: calc(100% - 12px); height: calc(100% - 12px); object-fit: contain; }
.bs-cell svg { width: 22px; height: 22px; opacity: .5; }
.bs-cell.unknown { border-style: dashed; }
.bs-cell.unknown img { filter: brightness(0); opacity: .35; }
.bs-cell .dg-q { font-size: 22px; }
.bs-cell.t-uncommon { border-color: rgba(120, 214, 160, .45); }
.bs-cell.t-rare { border-color: rgba(140, 170, 255, .6); }
.bs-cell.t-treasure { border-color: rgba(243, 210, 139, .85); background: radial-gradient(80% 70% at 50% 40%, rgba(243, 210, 139, .2), rgba(255, 255, 255, .03)); }
.bs-cel.bs-treasure .tp-cel-k { color: #F3D28B; }

/* ── раскопки: экспонаты как вещи журнала (.sj-item) ─────── */
.dg-ex .sj-item-img { position: relative; }
.dg-ex.have { border-color: rgba(243, 210, 139, .45); background: radial-gradient(80% 60% at 50% 35%, rgba(243, 210, 139, .14), rgba(255, 255, 255, .04)); }
.dg-ex.unknown { border-style: dashed; }
.dg-ex.unknown .sj-item-img img { filter: brightness(0); opacity: .4; }
.dg-ex.unknown b { color: rgba(246, 243, 236, .55); }
.dg-q { position: absolute; inset: 0; display: grid; place-items: center; font-size: 34px; color: rgba(246, 243, 236, .7); }
.dg-shards { position: relative; margin: 6px auto 10px; }

/* ── тёплая одежда (Тихон) ───────────────────────────────── */
.wc-top { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; align-items: center; margin-bottom: 12px; }
.wc-img { width: 84px; height: 98px; object-fit: contain; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .45)); }
.wc-img.ico { display: grid; place-items: center; color: var(--accent); }
.wc-img.ico svg { width: 40px; height: 40px; }
.wc-x { display: flex; flex-direction: column; min-width: 0; }
.wc-card .tp-card-t { font-size: 27px; }

/* ── спор на интерес (Семёныч) ───────────────────────────── */
.bt-top { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 12px; align-items: center; }
.bt-ico { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; color: var(--accent);
  background: radial-gradient(circle, rgba(243, 210, 139, .3), rgba(243, 210, 139, .06) 70%); box-shadow: inset 0 0 0 1.5px rgba(243, 210, 139, .45); }
.bt-ico svg { width: 28px; height: 28px; }
.bt-card.live .bt-ico { animation: btPulse 1.6s ease-in-out 4; }
@keyframes btPulse { 50% { transform: scale(1.12); } }
.bt-x { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bt-sum .tp-val { font-size: 32px; }
.bt-sum .tp-val svg { width: 20px; height: 20px; }
.bt-card > .tp-card-s { margin: 10px 0 0; }
.bt-stakes { margin-top: 12px; }
.bt-stakes .tp-chip { height: 36px; padding: 0 13px; font-size: 18px; cursor: pointer; transition: transform .15s; }
.bt-stakes .tp-chip:active { transform: scale(.94); }
.bt-timer { margin: 12px 0; }
.bt-note { display: block; margin-top: 8px; font-size: 12px; line-height: 1.4; text-align: center; color: rgba(246, 243, 236, .62); }

/* ── Витрина коллекционера (Ингвар) ──────────────────────── */
.vt-card { display: flex; flex-direction: column; gap: 12px; }
.vt-sum { font-size: 20px; }
.vt-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 6px 10px; align-items: center; }
.vt-ck { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-style: normal; border: 1.5px solid rgba(246, 243, 236, .3); }
.vt-ck svg { width: 13px; height: 13px; }
.vt-row.ok .vt-ck { color: #0E2320; background: var(--aqua); border-color: var(--aqua); }
.vt-t { font-size: 14px; font-weight: 700; line-height: 1.3; }
.vt-row em { font-size: 18px; font-weight: 900; white-space: nowrap; color: rgba(246, 243, 236, .78); }
.vt-row.ok em { color: var(--aqua); }
.vt-row .tp-bar { grid-column: 2 / -1; }
.vt-fish { grid-column: 2 / -1; display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 4px; }
.vt-f { height: 28px; border-radius: 8px; display: flex; align-items: center; justify-content: center; overflow: hidden; background: rgba(255, 255, 255, .05); }
.vt-f img { display: block; max-width: 90%; max-height: 90%; object-fit: contain; filter: grayscale(1) brightness(.75); opacity: .55; }
.vt-f svg { width: 14px; height: 14px; opacity: .5; }
.vt-f.ok { background: rgba(169, 228, 208, .14); box-shadow: inset 0 0 0 1.5px rgba(169, 228, 208, .6); }
.vt-f.ok img { filter: none; opacity: 1; }
.vt-reward { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border-radius: 14px; background: rgba(0, 0, 0, .22); }
.vt-reward small { font-size: 12.5px; font-weight: 600; line-height: 1.38; color: rgba(246, 243, 236, .84); }

/* ── экспедиция Ингвара ──────────────────────────────────── */
.ex-card { position: relative; overflow: hidden; min-height: 220px; border-radius: 24px; display: flex; align-items: flex-end;
  background: #0F2224; border: 1px solid rgba(243, 210, 139, .45); box-shadow: 0 16px 34px rgba(3, 10, 12, .35); }
.ex-card.on { border-color: rgba(169, 228, 208, .6); }
.ex-ph { position: absolute; inset: 0; background-size: cover; background-position: center 40%; }
.ex-card::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(6, 14, 16, 0) 0%, rgba(6, 14, 16, .45) 38%, rgba(6, 14, 16, .94) 100%); }
.ex-in { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 4px; padding: 84px 16px 16px; }
.ex-title { font-size: 34px; line-height: .92; }
.ex-timer { margin-top: 6px; }

/* ── прощальная ярмарка: плашка у Ингвара и страница ─────── */
.fr-banner { position: relative; width: 100%; min-height: 128px; display: grid; grid-template-columns: 104px minmax(0, 1fr) auto; gap: 12px; align-items: center;
  padding: 12px 12px 12px 10px; border-radius: 22px; text-align: left; color: var(--ink); cursor: pointer; transition: transform .15s;
  background: radial-gradient(90% 120% at 12% 50%, rgba(243, 210, 139, .22), rgba(243, 210, 139, 0) 60%), rgba(255, 255, 255, .06);
  border: 1px solid rgba(243, 210, 139, .42); }
.fr-banner:active { transform: scale(.98); }
.fr-banner:not(.open) { border-style: dashed; }
.fr-goods { position: relative; height: 100px; }
.fr-goods img { position: absolute; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(0, 0, 0, .5)); }
.fr-goods .g0 { left: 16px; top: 2px; z-index: 2; width: 72px; height: 92px; }
.fr-goods .g1 { left: -4px; top: 34px; width: 50px; height: 60px; transform: rotate(-10deg); }
.fr-goods .g2 { right: -4px; top: 38px; width: 50px; height: 60px; transform: rotate(9deg); }
.fr-banner:not(.open) .fr-goods img { filter: grayscale(.5) brightness(.75) drop-shadow(0 8px 10px rgba(0, 0, 0, .5)); }
.fr-tx { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.fr-tx b { font-size: 24px; line-height: 1; }
.fr-tx small { font-size: 12.5px; font-weight: 600; line-height: 1.38; color: rgba(246, 243, 236, .8); }
.fr-grid { gap: 8px; }
.fr-tile { position: relative; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 10px 12px; text-align: center;
  border-radius: 20px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .13); }
.fr-tile.have { border-color: rgba(169, 228, 208, .6); background: linear-gradient(180deg, rgba(169, 228, 208, .15), rgba(255, 255, 255, .04)); }
.fr-pic { width: 100%; height: 96px; display: grid; place-items: center; }
.fr-pic img { max-width: 92%; max-height: 96px; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(0, 0, 0, .45)); }
.fr-title { width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; color: var(--accent);
  background: radial-gradient(circle, rgba(243, 210, 139, .3), rgba(243, 210, 139, .05) 70%); box-shadow: inset 0 0 0 1.5px rgba(243, 210, 139, .5); }
.fr-title svg { width: 34px; height: 34px; }
.fr-frame { display: inline-flex; align-items: center; gap: 6px; font-size: 26px; }
.fr-frame span { font-size: 21px; color: var(--accent); }
.fr-tile b { font-size: 18px; line-height: 1.02; overflow-wrap: anywhere; }
.fr-tile small { flex: 1; font-size: 11.5px; line-height: 1.35; color: rgba(246, 243, 236, .72); }
.fr-act { width: 100%; display: flex; justify-content: center; margin-top: 6px; }
.fr-price { display: inline-flex; align-items: center; gap: 4px; font-size: 18px; font-weight: 900; color: rgba(246, 243, 236, .72); }
.fr-price svg { width: 13px; height: 13px; }

/* ── рыбопедия: трофейный рекорд, «водоём закрыт», атлас в карточке вида ── */
.dex-trophy { position: absolute; left: 4px; top: 4px; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center;
  color: var(--accent); background: rgba(11, 23, 25, .85); box-shadow: inset 0 0 0 1.5px var(--accent); }
.dex-trophy svg { width: 12px; height: 12px; }
.dex-legend .dex-trophy { position: static; }
.dex-closed { display: inline-flex; align-items: center; gap: 5px; min-height: 28px; padding: 2px 11px 2px 8px; border-radius: 14px; white-space: nowrap;
  color: var(--accent); background: rgba(243, 210, 139, .12); border: 1.5px solid rgba(243, 210, 139, .55); }
.dex-closed svg { width: 16px; height: 16px; }
.dex-atlas .tp-chip { height: auto; min-height: 30px; padding-block: 4px; white-space: normal; line-height: 1.15; text-align: left; }

/* ══ Свой лагерь (js/screens/camp.js): шесть построек на сезон; клубная экспедиция у Ингвара (season_npc.js).
   Двигаются только transform и opacity; фильтры — неподвижные (серое «закрыто»). ══════════════════════════════ */
.cp-strip { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin-top: 14px; }
.cp-dot { justify-self: center; width: 100%; max-width: 52px; aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center;
  color: rgba(246, 243, 236, .4); background: rgba(255, 255, 255, .04); border: 1.5px dashed rgba(246, 243, 236, .26); }
.cp-dot svg { width: 46%; height: 46%; }
.cp-dot .en-broom { width: 100%; height: 100%; opacity: .45; filter: grayscale(1); }
.cp-dot .en-broom svg { width: 40%; height: auto; transform: rotate(-28deg); }
.cp-dot.on { color: var(--accent); border: 1.5px solid rgba(243, 210, 139, .7);
  background: radial-gradient(circle, rgba(243, 210, 139, .3), rgba(243, 210, 139, .05) 72%); }
.cp-dot.on .en-broom { opacity: 1; filter: none; }
.cp-dot img { width: 80%; height: 80%; object-fit: contain; opacity: .45; filter: grayscale(1) brightness(.8); }
.cp-dot.on img { opacity: 1; filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .45)); }
.cp-dot.pic:not(.on) { border-style: dashed; }
.cp .ss-lock { margin-top: 14px; }
.cp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.cp-b { position: relative; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 10px 12px; text-align: center;
  border-radius: 20px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .13); }
.cp-b.built { border-color: rgba(169, 228, 208, .6); background: linear-gradient(180deg, rgba(169, 228, 208, .15), rgba(255, 255, 255, .04)); }
.cp-b.locked { border-style: dashed; border-color: rgba(246, 243, 236, .26); background: rgba(255, 255, 255, .04); }
.cp-pic { position: relative; width: 100%; height: 108px; display: grid; place-items: center; }
.cp-pic img { display: block; max-width: 100%; max-height: 108px; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(0, 0, 0, .45)); }
/* картинки ещё нет — значок в золотом круге */
.cp-pic.ico { width: 84px; height: 84px; margin: 12px auto; border-radius: 50%; color: var(--accent);
  background: radial-gradient(circle, rgba(243, 210, 139, .26), rgba(243, 210, 139, .04) 72%); box-shadow: inset 0 0 0 1.5px rgba(243, 210, 139, .45); }
.cp-pic.ico > svg { width: 40px; height: 40px; }
.cp-pic .en-broom svg { width: 34px; transform: rotate(-24deg); }
.cp-b.locked .cp-pic img, .cp-b.locked .cp-pic.ico > svg, .cp-b.locked .cp-pic .en-broom { filter: grayscale(.85) brightness(.7); }
.cp-b.built .cp-pic.ico { color: var(--aqua); background: radial-gradient(circle, rgba(169, 228, 208, .26), rgba(169, 228, 208, .04) 72%);
  box-shadow: inset 0 0 0 1.5px rgba(169, 228, 208, .55); }
.cp-ok { position: absolute; right: -2px; top: -2px; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-style: normal;
  color: #0E2320; background: var(--aqua); box-shadow: 0 4px 10px rgba(0, 0, 0, .35); }
.cp-ok svg { width: 15px; height: 15px; }
.cp-n { font-size: 20px; line-height: 1; overflow-wrap: anywhere; }
.cp-t { flex: 1; font-size: 12px; line-height: 1.35; color: rgba(246, 243, 236, .78); }
.cp-a { width: 100%; display: flex; justify-content: center; margin-top: 6px; }
.cp-buy { flex-direction: column; gap: 2px; padding-block: 7px; font-size: 16px; }
.cp-buy .cp-price { display: inline-flex; align-items: center; gap: 4px; font-size: 21px; }
.cp-buy .cp-price svg { width: 14px; height: 14px; }
.cp-b.flash::after { content: ""; position: absolute; inset: -1px; border-radius: inherit; border: 2px solid var(--aqua); pointer-events: none; opacity: 0;
  animation: msFixed 1.4s ease-out; }
@media (max-width: 360px) {
  .cp-pic { height: 92px; }
  .cp-pic img { max-height: 92px; }
  .cp-pic.ico { width: 76px; height: 76px; margin: 8px auto; }
  .cp-n { font-size: 18px; }
}

/* клубная экспедиция у Ингвара: вторая кнопка и пояснение под ней */
.ex-club { font-size: 18px; }
.ex-club-note { display: block; margin-top: 6px; font-size: 12px; line-height: 1.4; text-align: center; color: rgba(246, 243, 236, .62); }
