/* Зимняя новогодняя тема экрана дела: включается классом campaign-winter (puzzle.season === "winter"). */
.noir-game.campaign-ink.campaign-winter {
  --ng-paper: #f7fbfd;
  --ng-gold: #f2c94c;
  --ng-pink: #e58d86;
  --ng-selection: #3f7f9e;
  position: relative;
  background: linear-gradient(180deg, #dfecf4 0%, #f4f8fa 55%, #e6f0f6 100%);
}

/* Падающий снег: три слоя точек разного размера, поверх экрана, нажатия не перехватывает. */
.campaign-winter::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 30;
  pointer-events: none;
  background-image:
    radial-gradient(circle, #fff 0 1.6px, transparent 2.2px),
    radial-gradient(circle, #fff 0 1.1px, transparent 1.7px),
    radial-gradient(circle, #fff 0 2.3px, transparent 3px);
  background-size: 140px 140px, 90px 90px, 210px 210px;
  background-position: 0 0, 30px 40px, 70px 10px;
  opacity: 0.85;
  animation: winter-snow 20s linear infinite;
}
@keyframes winter-snow {
  to { background-position: 40px 140px, -30px 130px, 100px 210px; }
}
@media (prefers-reduced-motion: reduce) {
  .campaign-winter::before { animation: none; }
}

/* Праздничная рамка поля: кремовое кольцо, красное кольцо, чёрный контур. */
.campaign-winter .board-wrap {
  box-shadow: 0 0 0 4px #fbf5e6, 0 0 0 10px #c8433f, 0 0 0 12px #292822;
}
.campaign-winter .ng-top .ng-tool.active,
.campaign-winter .ng-tool[aria-pressed="true"] {
  background: #f2c94c;
}
