.seasonspark-effect { pointer-events: none; user-select: none; position: fixed; left: 0; top: 0; width: 100%; height: 100%; z-index: 99998; }
[data-seasonspark-effect] canvas, .seasonspark-effect canvas { pointer-events: none !important; }
#seasonspark-toggle-motion { background: rgba(0,0,0,0.6); color: white; border: none; padding: 8px 10px; border-radius: 999px; box-shadow: 0 6px 18px rgba(0,0,0,0.12); cursor: pointer; }
@media (prefers-reduced-motion: reduce) {
.seasonspark-effect { display: none !important; }
}
body.seasonspark-reduced-motion .seasonspark-effect { display: none !important; }
@media (max-width: 768px) {
.seasonspark-effect { opacity: 0.95; }
}
html.seasonspark-custom-cursor, html.seasonspark-custom-cursor * { cursor: none !important; }
#seasonspark-custom-cursor { transition: transform .06s linear; will-change: transform; width:48px; height:48px; background-size:contain; background-repeat:no-repeat; background-position:center; }
.seasonspark-halloween-fog { position:fixed; left:0; top:0; width:100%; height:100%; pointer-events:none; z-index:99997; opacity:0.14; mix-blend-mode:multiply; background: radial-gradient(ellipse at center, rgba(0,0,0,0) 0%, rgba(0,0,0,0.65) 100%); transition:opacity 1s ease-in-out; }
.seasonspark-popup-large { position:fixed; pointer-events:none; z-index:99999; left:0; bottom:-40%; transform-origin:center bottom; opacity:0; animation: seasonspark-popup-rise 2s ease forwards; }
.seasonspark-popup-large.seasonspark-popup-slow { animation-duration: 2.6s; }
@keyframes seasonspark-popup-rise {
0% { transform: translateX(0) translateY(30%) scale(0.6); opacity: 0; }
10% { opacity: 1; }
60% { transform: translateX(0) translateY(-10%) scale(1.05); }
100% { transform: translateX(0) translateY(-120%) scale(0.9); opacity: 0; }
}
.seasonspark-egg-drop { animation: seasonspark-egg-drop 2.2s ease forwards; }
@keyframes seasonspark-egg-drop {
0% { transform: translateY(0) scale(0.9); opacity: 0; }
10% { opacity: 1; }
60% { transform: translateY(220%) rotate(6deg) scale(1); }
80% { transform: translateY(240%) rotate(-6deg) scale(0.98); }
100% { transform: translateY(260%) rotate(0deg) scale(0.9); opacity: 0; }
}