/* Winter season v2: persistent, restrained snow above the whole page. */
#winterSnowFX.winter-snow-overlay {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100vh;
  height: 100dvh;
  z-index: 55;
  pointer-events: none;
  display: block;
  opacity: 1;
  background: transparent;
  mix-blend-mode: screen;
  contain: strict;
}
/* Keep controls, sticky menu and reading indicator fully accessible. */
.site-nav { z-index: 65; }
.mobile-join { z-index: 72; }
.reading-line { z-index: 110; }
@media (max-width: 600px) {
  #winterSnowFX.winter-snow-overlay { opacity: .94; }
}
@media (prefers-reduced-motion: reduce) {
  #winterSnowFX.winter-snow-overlay { opacity: .45; }
}

/* Winter FX v3: keep the canvas elegant and integrated with the page. */
#winterSnowFX.winter-snow-overlay {
  mix-blend-mode: screen;
  opacity: .98;
  filter: saturate(1.05);
}
.hero-aura::after{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 74% 28%, rgba(246,210,136,.10), transparent 7%),
    radial-gradient(circle at 79% 31%, rgba(255,236,196,.08), transparent 5%),
    radial-gradient(circle at 85% 33%, rgba(236,178,101,.07), transparent 6%),
    radial-gradient(circle at 88% 38%, rgba(255,223,164,.05), transparent 6%);
  mix-blend-mode:screen;
  animation: palacePulse 7.5s ease-in-out infinite alternate;
  pointer-events:none;
}
@keyframes palacePulse{
  0%{opacity:.42;transform:translateY(0)}
  50%{opacity:.65;transform:translateY(-2px)}
  100%{opacity:.48;transform:translateY(1px)}
}
@media (max-width:600px){
  #winterSnowFX.winter-snow-overlay{opacity:.95}
}
@media (prefers-reduced-motion: reduce){
  #winterSnowFX.winter-snow-overlay{opacity:.42}
  .hero-aura::after{animation:none;opacity:.35}
}
