        /* Schneefall Container */
        .snowflake {
            position: fixed;
            top: -20px;
            pointer-events: none;
            z-index: 9999;
            user-select: none;
        }

        .snowflake-inner {
            position: relative;
            width: 10px;
            height: 10px;
            animation: fall linear forwards, sway ease-in-out infinite;
        }

        @keyframes fall {
            to {
                transform: translateY(calc(100vh + 50px));
            }
        }

        @keyframes sway {
            0%, 100% {
                margin-left: 0;
            }
            50% {
                margin-left: var(--sway-distance);
            }
        }

        /* Schneeflocken-Punkte */
        .snow-dot {
            position: absolute;
            background: white;
            border-radius: 50%;
            opacity: 0.9;
        }

        /* Mauszeiger Glitzer */
        .sparkle {
            position: fixed;
            pointer-events: none;
            z-index: 9998;
            font-size: 20px;
            animation: sparkleFloat 1s ease-out forwards;
        }

        @keyframes sparkleFloat {
            0% {
                opacity: 1;
                transform: translate(0, 0) scale(1);
            }
            100% {
                opacity: 0;
                transform: translate(var(--tx), var(--ty)) scale(0);
            }
        }