/*
 * Winter Wonderland visual theme for LittleLink
 * Adapted from LinkStackOrg/winter-wonderland (GPLv3)
 * https://github.com/LinkStackOrg/winter-wonderland
 * Snow animation based on https://codepen.io/keithclark/pen/DjXzBw (MIT)
 */

html.theme-winter {
  color-scheme: light;
}

html.theme-winter body {
  background: #1f365c url("../../images/themes/winter-background.png") center center / cover no-repeat fixed;
  color: #1f365c;
  overflow-x: hidden;
  min-height: 100vh;
}

html.theme-winter a:not(.button) {
  color: #1f365c;
  font-weight: 600;
}

html.theme-winter a:not(.button):hover {
  color: #0d1a33;
}

html.theme-winter .container,
html.theme-winter .container-left {
  position: relative;
  z-index: 1;
}

html.theme-winter h1,
html.theme-winter h2,
html.theme-winter h3,
html.theme-winter .container p,
html.theme-winter .container-left p,
html.theme-winter footer,
html.theme-winter li {
  color: #1f365c;
  text-shadow: 0 1px 2px rgba(255, 255, 255, 0.55);
}

html.theme-winter .theme-fx--winter {
  display: block;
}

html.theme-winter .parallax-background {
  position: fixed;
  inset: 0;
  top: -600px;
  bottom: auto;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
html.theme-winter .parallax-background, html.theme-winter .parallax-background:before, html.theme-winter .parallax-background:after {
  height: 100%;
  position: absolute;
  top: -600px;
  left: 0;
  right: 0;
  background-image: radial-gradient(6px 6px at 185px 15px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 493px 337px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 20px 383px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 203px 229px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 157px 509px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 291px 115px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 119px 381px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 486px 465px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 260px 45px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 446px 397px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 411px 428px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 317px 276px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 365px 501px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 585px 464px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 20px 293px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 386px 388px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 353px 357px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 335px 470px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 48px 280px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 239px 62px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 118px 224px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 259px 232px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 570px 411px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 182px 544px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 589px 541px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 184px 194px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 468px 275px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 151px 282px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 520px 151px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 98px 93px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 352px 13px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 362px 42px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 118px 38px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 359px 309px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 97px 220px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 13px 235px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 162px 569px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 230px 250px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 11px 483px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 395px 520px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 419px 418px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 264px 215px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 122px 460px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 78px 267px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 52px 514px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 484px 186px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 213px 226px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 11px 339px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 373px 339px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 525px 393px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 150px 98px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 273px 15px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 329px 247px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 217px 130px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 119px 434px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 353px 204px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 236px 577px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 173px 483px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 410px 403px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 38px 23px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 241px 166px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 262px 328px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 439px 560px, rgba(255, 255, 255, 0.9) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 441px 597px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(3px 3px at 68px 334px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 322px 485px, rgba(255, 255, 255, 0.6) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 305px 345px, rgba(255, 255, 255, 0.7) 50%, rgba(0, 0, 0, 0)), radial-gradient(6px 6px at 374px 353px, rgba(255, 255, 255, 0.8) 50%, rgba(0, 0, 0, 0)), radial-gradient(5px 5px at 222px 261px, white 50%, rgba(0, 0, 0, 0)), radial-gradient(4px 4px at 93px 301px, white 50%, rgba(0, 0, 0, 0));
  background-size: 600px 600px;
  animation: parallax-background 3s linear infinite;
  content: "";
}

html.theme-winter .parallax-background:after {
  margin-left: -200px;
  opacity: 0.4;
  animation-duration: 6s;
  animation-direction: reverse;
  filter: blur(3px);
}

html.theme-winter .parallax-background:before {
  animation-duration: 9s;
  animation-direction: reverse;
  margin-left: -300px;
  opacity: 0.65;
  filter: blur(1.5px);
}

@keyframes parallax-background {
  to {
    transform: translateY(600px);
  }
}
