/* Новогоднее оформление (класс .ny на <html>, включает владелец в админке — lib/theme.js).
   Снежные шапки — картинки kie.ai (assets/ui/newyear/): длинная — три картинки (snow-wide-l / -m / -r): края в своих
   пропорциях, середина тянется под ширину кнопки и уходит под края (внахлёст — без швов, которые даёт border-image);
   --h — высота шапки, края шириной 1,25 × --h. Маленький сугроб (snow-lump) — на круглые кнопки.
   Снег не ловит нажатия (pointer-events: none). */
:root { --ny-lump: url(/assets/ui/newyear/snow-lump.webp); --ny-hat: url(/assets/ui/newyear/hat.webp); }

.ny .cta-row, .ny .tabbar { position: relative; }
.ny .cta-row::before, .ny .tabbar::before, .ny .tabbar::after, .ny .sheet-grab::before, .ny .modal-card::before {
  content: ''; position: absolute; z-index: 3; pointer-events: none; height: var(--h);
  background: url(/assets/ui/newyear/snow-wide-l.webp) left top / auto 100% no-repeat, url(/assets/ui/newyear/snow-wide-r.webp) right top / auto 100% no-repeat,
    url(/assets/ui/newyear/snow-wide-m.webp) center top / calc(100% - var(--h) * 2.3) 100% no-repeat;
  filter: drop-shadow(0 calc(var(--u) * 0.5) calc(var(--u) * 0.6) rgba(10, 20, 50, 0.35));
}
/* «По делам» (кнопка-ширина = ряд минус «Подработки») */
.ny .cta-row::before { --h: calc(var(--u) * 9.4); left: calc(var(--u) * -1.4); right: calc(var(--u) * 19.8); top: calc(var(--u) * -4.4); }
/* «Подработки» — свой сугроб */
.ny .cta-row::after {
  content: ''; position: absolute; z-index: 3; pointer-events: none; right: calc(var(--u) * -1.2); width: calc(var(--u) * 21.4); top: calc(var(--u) * -4.6); height: calc(var(--u) * 10);
  background: var(--ny-lump) center top / 100% auto no-repeat; filter: drop-shadow(0 calc(var(--u) * 0.5) calc(var(--u) * 0.6) rgba(10, 20, 50, 0.35));
}
/* нижнее меню: снег слева и справа, середина свободна под кнопку «Лобби» */
.ny .tabbar::before { --h: calc(var(--u) * 8); left: calc(var(--u) * 1.5); width: 36%; top: calc(var(--u) * -3.6); }
.ny .tabbar::after { --h: calc(var(--u) * 8); right: calc(var(--u) * 1.5); width: 36%; top: calc(var(--u) * -3.6); transform: scaleX(-1); }
/* «Лобби» — шапочка снега на круглой кнопке */
.ny .home-ic { position: relative; z-index: 4; } /* кнопка «Лобби» со своей шапкой — поверх снега меню слева и справа */
.ny .home-ic::after {
  content: ''; position: absolute; left: 50%; top: calc(var(--u) * -2.4); width: calc(var(--u) * 12); height: calc(var(--u) * 6); transform: translateX(-50%); pointer-events: none;
  background: var(--ny-lump) center top / 100% auto no-repeat; filter: drop-shadow(0 calc(var(--u) * 0.4) calc(var(--u) * 0.5) rgba(10, 20, 50, 0.35));
}
/* круглые кнопки слева и справа: плоский сугроб на макушке */
.ny .rb::before {
  content: ''; position: absolute; z-index: 2; left: 50%; top: calc(var(--u) * -1.9); width: calc(var(--u) * 11.6); height: calc(var(--u) * 5.6); transform: translateX(-50%) rotate(-4deg); pointer-events: none;
  background: var(--ny-lump) center top / 100% auto no-repeat; filter: drop-shadow(0 calc(var(--u) * 0.4) calc(var(--u) * 0.5) rgba(10, 20, 50, 0.35));
}
.ny .rb:nth-child(even)::before { transform: translateX(-50%) rotate(5deg) scaleX(-1); }
.ny .rb.mini::before { top: calc(var(--u) * -1.4); width: calc(var(--u) * 9.6); }
.ny .rb .badge { z-index: 3; }
/* ресурсы вверху: немного снега на правом краю */
.ny .res-i::after {
  content: ''; position: absolute; right: calc(var(--u) * 2.4); top: calc(var(--u) * -1.8); width: calc(var(--u) * 9); height: calc(var(--u) * 4.4); pointer-events: none;
  background: var(--ny-lump) center top / 100% auto no-repeat; filter: drop-shadow(0 calc(var(--u) * 0.3) calc(var(--u) * 0.4) rgba(10, 20, 50, 0.35));
}
/* шапка Деда Мороза на аватарке */
.ny .ava::after {
  content: ''; position: absolute; z-index: 2; left: calc(var(--u) * -3.2); top: calc(var(--u) * -2.6); width: calc(var(--u) * 11); height: calc(var(--u) * 9); pointer-events: none;
  background: var(--ny-hat) center / contain no-repeat; transform: rotate(-32deg); filter: drop-shadow(0 calc(var(--u) * 0.5) calc(var(--u) * 0.5) rgba(0, 0, 0, 0.35));
}
/* окна: снег лежит на верхнем краю */
.ny .sheet-grab::before { --h: calc(var(--u) * 7.4); left: calc(var(--u) * 6); right: calc(var(--u) * 6); top: calc(var(--u) * -3.4); z-index: 1; }
.ny .sheet.drawer .sheet-grab::before { display: none; }
.ny .modal-card::before { --h: calc(var(--u) * 8); left: calc(var(--u) * 3); right: calc(var(--u) * 3); top: calc(var(--u) * -1.2); z-index: 1; }

/* ---------- Заставка: новогодний логотип (kie.ai, Nano Banana Pro по обычному логотипу) вместо текстового,
   падающий снег (холст .ny-splash-snow, index.js) ---------- */
.logo-ny { display: none; }
.ny .splash .logo { display: none; }
.ny .logo-ny {
  display: block; position: relative; width: min(92%, calc(var(--u) * 98)); height: auto; margin-bottom: calc(var(--u) * -2);
  filter: drop-shadow(0 calc(var(--u) * 1.5) calc(var(--u) * 2.5) rgba(0, 0, 0, 0.45)) drop-shadow(0 0 calc(var(--u) * 9) rgba(255, 204, 61, 0.25));
  animation: ny-logo 3.4s ease-in-out infinite;
}
@keyframes ny-logo { 50% { transform: scale(1.025) rotate(-0.6deg); } }
.ny-splash-snow { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }

/* ---------- Отсчёт до Нового года (лобби) ---------- */
.ny-count { display: none; }
.ny .ny-count {
  position: absolute; left: 50%; top: calc(var(--safe-t) + var(--u) * 20.5); transform: translateX(-50%); z-index: 2;
  display: flex; align-items: center; gap: calc(var(--u) * 1.6); padding: calc(var(--u) * 1) calc(var(--u) * 3.4) calc(var(--u) * 1) calc(var(--u) * 1);
  border-radius: 99px; background: linear-gradient(180deg, rgba(25, 32, 62, 0.88), rgba(13, 18, 36, 0.88)); border: 1.5px solid rgba(255, 255, 255, 0.28);
  box-shadow: 0 calc(var(--u) * 0.9) 0 rgba(0, 0, 0, 0.3); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); white-space: nowrap;
}
.ny .ny-count[hidden] { display: none; }
.ny-count img { width: calc(var(--u) * 7.6); height: calc(var(--u) * 7.6); object-fit: contain; margin: calc(var(--u) * -1.6) 0; filter: drop-shadow(0 calc(var(--u) * 0.4) calc(var(--u) * 0.6) rgba(0, 0, 0, 0.4)); }
.ny-count span { display: flex; flex-direction: column; line-height: 1.1; text-align: left; }
.ny-count small { font-size: 0.62em; font-weight: 700; color: #c9d3f0; }
.ny-count b { font-size: 0.86em; font-weight: 900; color: #fff; font-variant-numeric: tabular-nums; }
.ny-count.soon b { color: var(--gold-1); }
.hud.away > .ny-count { opacity: 0; pointer-events: none; }

/* ---------- Окно «С Новым годом!» ---------- */
.ny-greet-art { position: relative; width: calc(var(--u) * 30); height: calc(var(--u) * 30); object-fit: contain; filter: drop-shadow(0 calc(var(--u) * 1.5) calc(var(--u) * 2) rgba(0, 0, 0, 0.4)); animation: pop-num 0.6s cubic-bezier(.3, 1.8, .5, 1); }
.ny-greet-year { position: relative; font-size: 3.2em; font-weight: 900; line-height: 1; color: var(--gold-1); text-shadow: 0 calc(var(--u) * 1) 0 var(--gold-d), 0 0 calc(var(--u) * 8) rgba(255, 204, 61, 0.6); }
