.snowflake {
    position: fixed;
    top: -20px;
    z-index: 9999;
    user-select: none;
    pointer-events: none;
    color: #fff;
    font-family: Arial, sans-serif;
    text-shadow: 0 0 5px #000;
    will-change: transform, top;
    animation-name: snow-fall, snow-shake;
    animation-timing-function: linear, ease-in-out;
    animation-iteration-count: infinite, infinite;
    animation-play-state: running, running;
}

@keyframes snow-fall {
    0% { top: -10%; }
    100% { top: 100%; }
}

@keyframes snow-shake {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(80px); }
}

.snow-layer {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 20px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 20' preserveAspectRatio='none'%3E%3Cpath d='M0,10 Q25,18 50,10 T100,10 L100,0 L0,0 Z' fill='rgba(255, 255, 255, 0.9)'/%3E%3C/svg%3E");
    background-size: 50px 100%;
    background-repeat: repeat-x;
    pointer-events: none;
    z-index: 5;
    filter: drop-shadow(0 2px 2px rgba(0,0,0,0.15));
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
    overflow: hidden; 
}

.snowman-decoration {
    position: absolute;
    bottom: 0;
    right: 15px;
    font-size: 32px;
    line-height: 1;
    filter: drop-shadow(0 2px 2px rgba(0,0,0,0.3));
    pointer-events: none;
    z-index: 10;
    animation: snowman-wiggle 5s ease-in-out infinite;
    transform-origin: bottom center;
}

@keyframes snowman-wiggle {
    0%, 100% { transform: rotate(0deg); }
    25% { transform: rotate(-5deg); }
    75% { transform: rotate(5deg); }
}

.icicles-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 45px; 
    z-index: 10000;
    pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 45' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='iceGradient' x1='0%25' y1='0%25' x2='0%25' y2='100%25'%3E%3Cstop offset='0%25' style='stop-color:%23ffffff;stop-opacity:1' /%3E%3Cstop offset='100%25' style='stop-color:%23cceeff;stop-opacity:0.8' /%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M0,0 L800,0 L800,5 L780,30 L770,5 L750,5 L740,20 L730,5 L700,5 L690,35 L680,5 L650,5 L640,15 L630,5 L600,5 L590,25 L580,5 L550,5 L540,40 L530,5 L500,5 L490,20 L480,5 L450,5 L440,30 L430,5 L400,5 L390,15 L380,5 L350,5 L340,35 L330,5 L300,5 L290,25 L280,5 L250,5 L240,10 L230,5 L200,5 L190,40 L180,5 L150,5 L140,20 L130,5 L100,5 L90,30 L80,5 L50,5 L40,15 L30,5 L0,0 Z' fill='url(%23iceGradient)'/%3E%3C/svg%3E");
    background-repeat: repeat-x;
    background-size: 800px 100%;
    filter: drop-shadow(0 2px 4px rgba(100, 180, 255, 0.4));
}

.card, .pcard, .scard, .order-card, .glass-counter-card, .footer, .header {
    position: relative; 
}
