/* Snowflake container */
#snowflakes {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 9999;
}

/* Snowflakes styling */
#snowflakes .snowflake {
    position: absolute;
    user-select: none;
    pointer-events: none;
    animation-name: fall;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

/* Individual snowflake variations */
#snowflakes .snowflake:nth-of-type(1)  { left: 5%;  animation-duration: 8s;  font-size: 1.2rem; }
#snowflakes .snowflake:nth-of-type(2)  { left: 15%; animation-duration: 10s;  font-size: 1rem; }
#snowflakes .snowflake:nth-of-type(3)  { left: 25%; animation-duration: 12s;  font-size: 1.1rem; }
#snowflakes .snowflake:nth-of-type(4)  { left: 35%; animation-duration: 9.5s; font-size: 0.8rem; }
#snowflakes .snowflake:nth-of-type(5)  { left: 45%; animation-duration: 8.5s; font-size: 1rem; }
#snowflakes .snowflake:nth-of-type(6)  { left: 55%; animation-duration: 9s;  font-size: 0.9rem; }
#snowflakes .snowflake:nth-of-type(7)  { left: 65%; animation-duration: 11s;  font-size: 1.1rem; }
#snowflakes .snowflake:nth-of-type(8)  { left: 75%; animation-duration: 13s;  font-size: 1rem; }
#snowflakes .snowflake:nth-of-type(9)  { left: 85%; animation-duration: 8.5s;  font-size: 0.8rem; }
#snowflakes .snowflake:nth-of-type(10) { left: 95%; animation-duration: 9s; font-size: 1rem; }

/* Fall animation */
@keyframes fall {
    0%   { transform: translateY(-10vh); opacity: 0; }
    10%  { opacity: 1; }
    90%  { opacity: 1; }
    100% { transform: translateY(110vh); opacity: 0; }
}


/* ================== Body Gradient ================== */
html, body {
    height: 100%;
    margin: 0;
    font-family: 'Inter', sans-serif;
    color: #000000; /* default body text black for readability on light background */
    background: linear-gradient(to top, #f0fbff 0%, #d0f7ff 50%, #ffffff 100%);
    background-attachment: fixed;
    background-repeat: no-repeat;
}

/* ================== Navbar ================== */
.navbar {
    background: linear-gradient(90deg, #a0e0ff 0%, #b3ecff 50%, #c2f7ff 100%);
    color: #ffffff !important;
    border-bottom: 1px solid rgba(255,255,255,0.5);
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

/* Navbar links */
.navbar .nav-link {
    color: #ffffff !important;
    font-weight: 600;
    text-shadow: 0 1px 2px rgba(0,0,0,0.3); /* adds contrast */
    transition: color 0.3s ease, text-shadow 0.3s ease;
}

.navbar .nav-link:hover,
.navbar .nav-link.active {
    color: #ffd700 !important; /* festive hover */
    text-shadow: 0 0 4px rgba(0,0,0,0.4);
}

/* Navbar brand image */
.navbar-brand img {
    filter: drop-shadow(0 0 5px rgba(0,0,0,0.4));
}

/* ================== Footer ================== */
footer {
    background: linear-gradient(90deg, #a0e0ff 0%, #b3ecff 50%, #c2f7ff 100%);
    color: #ffffff;
    text-align: center;
    padding: 1rem;
    border-top: 1px solid rgba(255,255,255,0.5);
    text-shadow: 0 1px 2px rgba(0,0,0,0.3); /* adds contrast */
    box-shadow: 0 -2px 6px rgba(0,0,0,0.05);
}

/* ================== Snowflakes ================== */
#snowflakes {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 9999;
}

#snowflakes .snowflake {
    position: absolute;
    user-select: none;
    pointer-events: none;
    animation-name: fall;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 0 0 5px rgba(180, 220, 255, 0.6);
}

@keyframes fall {
    0%   { transform: translateY(-10vh); opacity: 0; }
    10%  { opacity: 1; }
    90%  { opacity: 1; }
    100% { transform: translateY(110vh); opacity: 0; }
}
