/* New Year Winter Theme - Snow and Sparkles */

/* New Year Snowflakes */
@keyframes snowfall {
  0% {
    transform: translateY(0) rotate(0deg);
    opacity: 0.85;
  }
  100% {
    transform: translateY(calc(100vh + 50px)) rotate(360deg);
    opacity: 0.85;
  }
}

.snowflake {
  position: fixed;
  top: -50px;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.8em;
  font-family: Arial, sans-serif;
  font-weight: normal;
  text-shadow: 
    0 0 5px rgba(255, 255, 255, 0.8),
    0 0 10px rgba(255, 255, 255, 0.6);
  user-select: none;
  z-index: 9999;
  pointer-events: none;
  animation: snowfall linear infinite;
  filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.8));
  opacity: 0.85;
}

.snowflake:nth-of-type(1) {
  left: 10%;
  animation-duration: 15s;
  animation-delay: 0s;
  font-size: 0.9em;
}

.snowflake:nth-of-type(2) {
  left: 20%;
  animation-duration: 18s;
  animation-delay: 0.5s;
  font-size: 0.7em;
}

.snowflake:nth-of-type(3) {
  left: 30%;
  animation-duration: 20s;
  animation-delay: 1s;
  font-size: 1em;
}

.snowflake:nth-of-type(4) {
  left: 40%;
  animation-duration: 16s;
  animation-delay: 1.5s;
  font-size: 0.95em;
}

.snowflake:nth-of-type(5) {
  left: 50%;
  animation-duration: 14s;
  animation-delay: 2s;
  font-size: 0.85em;
}

.snowflake:nth-of-type(6) {
  left: 60%;
  animation-duration: 17s;
  animation-delay: 2.5s;
  font-size: 0.9em;
}

.snowflake:nth-of-type(7) {
  left: 70%;
  animation-duration: 19s;
  animation-delay: 3s;
  font-size: 0.9em;
}

.snowflake:nth-of-type(8) {
  left: 80%;
  animation-duration: 15s;
  animation-delay: 3.5s;
  font-size: 0.9em;
}

.snowflake:nth-of-type(9) {
  left: 90%;
  animation-duration: 18s;
  animation-delay: 4s;
  font-size: 0.75em;
}

.snowflake:nth-of-type(10) {
  left: 15%;
  animation-duration: 16s;
  animation-delay: 4.5s;
  font-size: 0.95em;
}

.snowflake:nth-of-type(11) {
  left: 25%;
  animation-duration: 20s;
  animation-delay: 5s;
  font-size: 0.9em;
}

.snowflake:nth-of-type(12) {
  left: 35%;
  animation-duration: 14s;
  animation-delay: 5.5s;
  font-size: 1em;
}

.snowflake:nth-of-type(13) {
  left: 45%;
  animation-duration: 18s;
  animation-delay: 6s;
  font-size: 0.85em;
}

.snowflake:nth-of-type(14) {
  left: 55%;
  animation-duration: 15s;
  animation-delay: 6.5s;
  font-size: 0.8em;
}

.snowflake:nth-of-type(15) {
  left: 65%;
  animation-duration: 17s;
  animation-delay: 7s;
  font-size: 1em;
}

.snowflake:nth-of-type(16) {
  left: 75%;
  animation-duration: 19s;
  animation-delay: 7.5s;
  font-size: 0.95em;
}

.snowflake:nth-of-type(17) {
  left: 85%;
  animation-duration: 16s;
  animation-delay: 8s;
  font-size: 0.9em;
}

.snowflake:nth-of-type(18) {
  left: 95%;
  animation-duration: 18s;
  animation-delay: 8.5s;
  font-size: 0.9em;
}

.snowflake:nth-of-type(19) {
  left: 5%;
  animation-duration: 14s;
  animation-delay: 9s;
  font-size: 0.9em;
}

.snowflake:nth-of-type(20) {
  left: 12%;
  animation-duration: 16s;
  animation-delay: 9.5s;
  font-size: 0.85em;
}

.snowflake:nth-of-type(21) {
  left: 22%;
  animation-duration: 18s;
  animation-delay: 10s;
  font-size: 0.9em;
}

.snowflake:nth-of-type(22) {
  left: 32%;
  animation-duration: 15s;
  animation-delay: 10.5s;
  font-size: 0.85em;
}

.snowflake:nth-of-type(23) {
  left: 42%;
  animation-duration: 17s;
  animation-delay: 11s;
  font-size: 0.95em;
}

.snowflake:nth-of-type(24) {
  left: 52%;
  animation-duration: 19s;
  animation-delay: 11.5s;
  font-size: 0.85em;
}

.snowflake:nth-of-type(25) {
  left: 62%;
  animation-duration: 13s;
  animation-delay: 12s;
  font-size: 0.9em;
}

.snowflake:nth-of-type(26) {
  left: 72%;
  animation-duration: 16s;
  animation-delay: 12.5s;
  font-size: 0.9em;
}

.snowflake:nth-of-type(27) {
  left: 82%;
  animation-duration: 20s;
  animation-delay: 13s;
  font-size: 1.0em;
}

.snowflake:nth-of-type(28) {
  left: 88%;
  animation-duration: 14s;
  animation-delay: 13.5s;
  font-size: 0.8em;
}

.snowflake:nth-of-type(29) {
  left: 7%;
  animation-duration: 18s;
  animation-delay: 14s;
  font-size: 0.95em;
}

.snowflake:nth-of-type(30) {
  left: 17%;
  animation-duration: 15s;
  animation-delay: 14.5s;
  font-size: 0.95em;
}

/* New Year Sparkles */
@keyframes sparkle {
  0%, 100% {
    opacity: 0.3;
    transform: scale(0.5) rotate(0deg);
  }
  50% {
    opacity: 1;
    transform: scale(1.5) rotate(180deg);
  }
}

.sparkle {
  position: fixed;
  width: 8px;
  height: 8px;
  background: rgba(243, 201, 105, 1);
  border-radius: 50%;
  box-shadow: 
    0 0 15px rgba(243, 201, 105, 1),
    0 0 30px rgba(243, 201, 105, 0.9),
    0 0 45px rgba(243, 201, 105, 0.7),
    0 0 60px rgba(243, 201, 105, 0.5);
  pointer-events: none;
  z-index: 9998;
  animation: sparkle 2s ease-in-out infinite;
  opacity: 1;
}

.sparkle:nth-of-type(1) {
  display: none;
}

.sparkle:nth-of-type(2) {
  top: 35%;
  left: 45%;
  animation-delay: 0.5s;
}

.sparkle:nth-of-type(3) {
  top: 50%;
  left: 75%;
  animation-delay: 1s;
}

.sparkle:nth-of-type(4) {
  top: 65%;
  left: 25%;
  animation-delay: 1.5s;
}

.sparkle:nth-of-type(5) {
  top: 80%;
  left: 60%;
  animation-delay: 0.3s;
}

.sparkle:nth-of-type(6) {
  top: 30%;
  left: 85%;
  animation-delay: 0.8s;
}

.sparkle:nth-of-type(7) {
  top: 55%;
  left: 10%;
  animation-delay: 1.2s;
}

.sparkle:nth-of-type(8) {
  top: 70%;
  left: 50%;
  animation-delay: 0.6s;
}

.sparkle:nth-of-type(9) {
  top: 15%;
  left: 30%;
  animation-delay: 1.1s;
}

.sparkle:nth-of-type(10) {
  top: 40%;
  left: 70%;
  animation-delay: 1.4s;
}

.sparkle:nth-of-type(11) {
  top: 60%;
  left: 15%;
  animation-delay: 0.7s;
}

.sparkle:nth-of-type(12) {
  top: 85%;
  left: 40%;
  animation-delay: 1.9s;
}

