/* Зимняя тема сайтов Yamiko. Включается в YamikoStaff/content/shell.json ("theme": "winter") — на всех сайтах сразу.
   Источник — Server/web-shell/themes, копии в public/themes сайтов кладёт Server/web-shell/sync-style.cjs.
   Всё, что здесь, — только под :root[data-theme="winter"]: без атрибута файл ничего не меняет.
   Без JavaScript тема — это цвета, сосульки под шапкой, снег на кнопках и сугроб в подвале;
   снегопад, северное сияние и снег на заголовках рисует winter.js. Движение выключает prefers-reduced-motion. */

/* ── Цвета: полярная ночь вместо почти чёрного, лёд вместо сиреневого ───────── */
:root[data-theme="winter"] {
  --bg: #060b14;
  --bg-2: #0a1220;
  --bg-3: #111b2c;
  --ink: #f1f6fd;
  --ink-2: #a9b8cb;
  --ink-3: #6c7c93;
  --line: rgba(190, 216, 250, .12);
  --line-2: rgba(190, 216, 250, .24);
  --brand: #4f80d9;
  --brand-2: #b6d3ff;
  --brand-ink: #04101f;
  --primary-soft: rgba(79, 128, 217, .16);
  --sky-accent: #b9d6ff;
  /* Мазок кисти — лёд с бликом, который иногда пробегает по нему. */
  --winter-brush: linear-gradient(100deg, #4f80d9 0%, #6995e3 42%, #9cc0f5 50%, #6995e3 58%, #4f80d9 100%) 0 0 / 260% 100%;
}
:root[data-theme="winter"] .tod-evening { --bg: #050a13; --bg-2: #09111e; }
:root[data-theme="winter"] .tod-night { --bg: #04080f; --bg-2: #08101b; --bg-3: #0f1828; }
:root[data-theme="winter"] ::selection { background: #3d69b8; color: #fff; }

/* Мазки кисти: под словами, в кнопках, под открытым разделом шапки. */
:root[data-theme="winter"] .brush::before,
:root[data-theme="winter"] .button::before,
:root[data-theme="winter"] .nav-trigger::before {
  background: var(--winter-brush);
  animation: winter-brush-glint 11s var(--ease-io) infinite;
}
:root[data-theme="winter"] .button:hover::before { background: var(--winter-brush); filter: brightness(1.12); }
:root[data-theme="winter"] .brush:nth-of-type(2n)::before { animation-delay: -4s; }
@keyframes winter-brush-glint { 0%, 62% { background-position: 100% 0; } 100% { background-position: 0 0; } }

/* Рукописные слова — иней: холодный цвет и лёгкое морозное свечение. */
:root[data-theme="winter"] .script { text-shadow: 0 0 22px rgba(150, 196, 255, .28); }

/* ── Шапка: стекло с инеем и сосульки по нижней кромке ─────────────────────── */
:root[data-theme="winter"] .topbar {
  background: color-mix(in srgb, var(--bg) 84%, transparent);
  border-bottom-color: rgba(205, 228, 255, .2);
}
:root[data-theme="winter"] .brand img { filter: hue-rotate(-42deg) saturate(.75) brightness(1.18); }
:root[data-theme="winter"] .topbar::before,
:root[data-theme="winter"] .topbar::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% - 1px);
  pointer-events: none;
  transition: opacity .4s var(--ease);
}
/* Крупные сосульки: плитка 520 px; по ним раз в несколько секунд пробегает блик. */
:root[data-theme="winter"] .topbar::after {
  height: 34px;
  background:
    linear-gradient(100deg, transparent 0 46%, rgba(255, 255, 255, .95) 50%, transparent 54% 100%) 0 0 / 320% 100% no-repeat,
    linear-gradient(180deg, rgba(246, 251, 255, .94), rgba(206, 227, 251, .66) 26%, rgba(168, 202, 244, .16));
  -webkit-mask: url('/themes/winter-icicles.svg') 0 0 / 520px 34px repeat-x;
  mask: url('/themes/winter-icicles.svg') 0 0 / 520px 34px repeat-x;
  animation: winter-icicle-glint 9s var(--ease-io) infinite;
}
/* Мелкие — второй ряд со своим шагом, чтобы повтор не бросался в глаза. */
:root[data-theme="winter"] .topbar::before {
  height: 18px;
  background: linear-gradient(180deg, rgba(240, 248, 255, .78), rgba(186, 214, 248, .22));
  -webkit-mask: url('/themes/winter-icicles-fine.svg') 143px 0 / 337px 18px repeat-x;
  mask: url('/themes/winter-icicles-fine.svg') 143px 0 / 337px 18px repeat-x;
}
@keyframes winter-icicle-glint { 0%, 58% { background-position: 100% 0, 0 0; } 100% { background-position: 0 0, 0 0; } }
:root[data-theme="winter"] .topbar:has(.nav-menu[open])::before,
:root[data-theme="winter"] .topbar:has(.nav-menu[open])::after { opacity: 0; }

/* ── Снег на кнопках: шапка лежит на мазке, при наведении осыпается ─────────── */
:root[data-theme="winter"] .button::after,
:root[data-theme="winter"] .account-link::after {
  content: "";
  position: absolute;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(180deg, #fff, #e3edf9 55%, #c4d6ee);
  -webkit-mask: url('/themes/winter-cap.svg') 0 0 / 100% 100% no-repeat;
  mask: url('/themes/winter-cap.svg') 0 0 / 100% 100% no-repeat;
  transform-origin: 50% 100%;
  transition: transform .7s var(--ease), opacity .5s var(--ease);
}
:root[data-theme="winter"] .button::after { left: -6px; right: -4px; top: -8px; height: 23px; }
:root[data-theme="winter"] .button-quiet::after { left: -3px; right: -3px; top: -16px; height: 22px; }
:root[data-theme="winter"] .account-link { position: relative; }
:root[data-theme="winter"] .account-link::after { left: 7px; right: 7px; top: -8px; height: 13px; }
:root[data-theme="winter"] :is(.button, .account-link):hover::after { transform: translateY(-7px) scale(1.06, .5); opacity: 0; transition-duration: .45s, .35s; }

/* ── Подвал: имя бренда по пояс в сугробе ──────────────────────────────────── */
:root[data-theme="winter"] .brand-footer::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  height: clamp(26px, 4.4vw, 76px);
  pointer-events: none;
  background: url('/themes/winter-drift.svg') 0 100% / 100% 100% no-repeat;
}
:root[data-theme="winter"] .brand-footer::after { color: #121f33; }

/* ── Слои winter.js: снег позади страницы, сияние сверху, передний план поверх (под шапкой) ── */
.theme-layer { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; display: block; }
.theme-layer-back { z-index: -1; }
.theme-layer-front { z-index: 44; }
.theme-aurora { position: absolute; left: 0; top: 0; width: 100%; z-index: -1; pointer-events: none; display: block; -webkit-mask: linear-gradient(180deg, #000 0%, #000 38%, transparent 100%); mask: linear-gradient(180deg, #000 0%, #000 38%, transparent 100%); }
@media print { .theme-layer, .theme-aurora { display: none !important; } }

/* ── Главная www ───────────────────────────────────────────────────────────── */
:root[data-theme="winter"] .curtain-star path { animation: curtain-draw .85s var(--ease) .1s both, winter-curtain-fill .35s ease .9s both; }
@keyframes winter-curtain-fill { from { fill: rgba(185, 214, 255, 0); } to { fill: rgba(185, 214, 255, 1); } }
:root[data-theme="winter"] .star-dock .star { filter: drop-shadow(0 0 24px rgba(120, 175, 255, .4)); }
:root[data-theme="winter"] .hero-script { text-shadow: 0 0 40px rgba(130, 185, 255, .38); }
:root[data-theme="winter"] .star-invite-link::before { background: radial-gradient(60% 140% at 10% 50%, rgba(111, 159, 240, .22), transparent 70%); }
:root[data-theme="winter"] .community::before { background: radial-gradient(closest-side, rgba(111, 159, 240, .2), transparent 70%); }
:root[data-theme="winter"] .event-link:hover { background: rgba(111, 159, 240, .1); }
:root[data-theme="winter"] .live-stage.has-cover::before { background: linear-gradient(90deg, rgba(6, 11, 20, .94) 0%, rgba(6, 11, 20, .6) 48%, rgba(6, 11, 20, .15) 100%), linear-gradient(0deg, var(--bg) 0%, transparent 42%); }

/* Конверты: бумага в синеву, печать — лёд. */
:root[data-theme="winter"] .envelope-paper { background: linear-gradient(160deg, #172235, #0e1624 60%, #0a111d); }
:root[data-theme="winter"] .envelope-flap { background: linear-gradient(180deg, #1c2a40, #121c2c); }
:root[data-theme="winter"] .envelope-paper:hover { box-shadow: inset 0 0 0 1px var(--line-2), 0 40px 70px -30px rgba(111, 159, 240, .4); }
:root[data-theme="winter"] .seal-half { background: radial-gradient(circle at 35% 30%, #eef6ff, #9fc2f4 52%, #4f74b8); }

/* Пластинка: конверт в синеву. */
:root[data-theme="winter"] .record-sleeve { background: linear-gradient(155deg, #162133, #0c1422 62%); }
:root[data-theme="winter"] .record-disc { background: #070c15; }

/* Звёзды: свечение холодное. */
:root[data-theme="winter"] .your-star { filter: drop-shadow(0 0 36px rgba(120, 175, 255, .38)); }
:root[data-theme="winter"] .star-view::before { background: radial-gradient(closest-side, rgba(111, 159, 240, .26), transparent 72%); }
:root[data-theme="winter"] .head-star .star { filter: drop-shadow(0 0 28px rgba(120, 175, 255, .32)); }

/* Ночной город: снег на крышах и земле, тёплый свет в окнах и фонарях. */
:root[data-theme="winter"] .city .ground { fill: #9fb2cb; stroke: rgba(225, 238, 255, .5); }
:root[data-theme="winter"] .city .grid { stroke: rgba(255, 255, 255, .16); }
:root[data-theme="winter"] .city .face-top { fill: #dbe6f4; }
:root[data-theme="winter"] .city .face-left { fill: #16233a; }
:root[data-theme="winter"] .city .face-right { fill: #101a2c; }
:root[data-theme="winter"] .city .building:hover .face-top,
:root[data-theme="winter"] .city .building:focus-visible .face-top { fill: #f2f7ff; }
:root[data-theme="winter"] .city .building:hover .face-left,
:root[data-theme="winter"] .city .building:focus-visible .face-left { fill: #1d2c47; }
:root[data-theme="winter"] .city .building:hover .face-right,
:root[data-theme="winter"] .city .building:focus-visible .face-right { fill: #142136; }
:root[data-theme="winter"] .city .w { fill: #1a2740; }
:root[data-theme="winter"] .city .is-online .w.on,
:root[data-theme="winter"] .city .vinyl .w.on { fill: #ffd383; }
:root[data-theme="winter"] .city .is-offline .w { fill: #131c2c; }
:root[data-theme="winter"] .city .is-offline .face-top { fill: #b9c6d8; }
:root[data-theme="winter"] .city .is-unknown .w.on { fill: #2b3a55; }
:root[data-theme="winter"] .city .screen { fill: #cfe4ff; }
:root[data-theme="winter"] .city #beam stop { stop-color: #9fc4ff; }
:root[data-theme="winter"] .city .lamp-bulb { fill: #ffe2a6; }
:root[data-theme="winter"] .city .lamp-glow { fill: rgba(255, 196, 110, .2); mix-blend-mode: screen; }
:root[data-theme="winter"] .city .site-box { stroke: rgba(205, 225, 250, .35); }
:root[data-theme="winter"] .city .roof-disc { fill: #070c15; }
:root[data-theme="winter"] .city .label-name,
:root[data-theme="winter"] .city .label-sub,
:root[data-theme="winter"] .city .label-state,
:root[data-theme="winter"] .city .label-script { stroke: var(--bg); }

/* Курсор — снежинка (только www и только мышь, как и звезда в обычной теме). */
@media (pointer: fine) {
  :root[data-theme="winter"][data-site="www"] { cursor: url('/themes/winter-cursor.svg') 14 14, auto; }
  :root[data-theme="winter"][data-site="www"] :is(a, button, summary, select, label) { cursor: url('/themes/winter-cursor-link.svg') 18 18, pointer; }
  :root[data-theme="winter"][data-site="www"] :is(input, textarea) { cursor: text; }
}
