.event-celebration{pointer-events:none;position:absolute;inset:0;overflow:hidden}.event-celebration-glow{background:radial-gradient(ellipse at 25% 35%, color-mix(in srgb, var(--celebration-accent) 28%, transparent), transparent 55%), radial-gradient(ellipse at 80% 75%, #f9a8d430, transparent 50%);animation:10s ease-in-out infinite alternate celebration-glow;position:absolute;inset:-15%}.event-celebration i{left:var(--particle-x);top:var(--particle-y);width:var(--particle-size);height:var(--particle-size);background:var(--particle-color);opacity:.65;animation:celebration-float var(--particle-duration) ease-in-out var(--particle-delay) infinite;border-radius:50%;position:absolute}.event-celebration[data-celebration=confetti] i{height:calc(var(--particle-size) * 1.6);border-radius:2px;animation-name:celebration-confetti;animation-timing-function:linear;top:-5%}.event-celebration[data-celebration=sparkles] i{clip-path:polygon(50% 0%,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0% 50%,39% 39%);width:calc(var(--particle-size) * 2);height:calc(var(--particle-size) * 2);border-radius:0;animation-name:celebration-sparkle}.event-celebration[data-celebration=lights] i{box-shadow:0 0 20px 6px color-mix(in srgb, var(--particle-color) 45%, transparent);filter:blur(1px)}.event-celebration[data-celebration=memory] i{opacity:.3;animation-duration:18s}@keyframes celebration-confetti{0%{opacity:0;transform:translateY(-5vh)rotate(0)}10%{opacity:.8}90%{opacity:.65}to{transform:translate3d(var(--particle-drift), 110dvh, 0) rotate(540deg);opacity:0}}@keyframes celebration-float{0%,to{opacity:.25;transform:translate(0,0)}50%{transform:translate3d(var(--particle-drift), -55px, 0);opacity:.75}}@keyframes celebration-sparkle{0%,to{opacity:.15;transform:translateY(15px)scale(.6)rotate(0)}50%{transform:translate3d(var(--particle-drift), -25px, 0) scale(1.2) rotate(35deg);opacity:.9}}@keyframes celebration-glow{0%{opacity:.6;transform:translate(-3%,-2%)scale(1)}to{opacity:1;transform:translate(3%,2%)scale(1.08)}}.celebration-wave{border:clamp(24px,7vw,90px) solid #0000;border-top-color:color-mix(in srgb, var(--celebration-accent) 60%, transparent);filter:blur(22px);border-bottom-color:#f0abfc50;border-radius:50%;width:160%;height:55%;animation:12s ease-in-out infinite alternate celebration-wave;position:absolute;top:12%;left:-30%}.celebration-wave-two{border-top-color:#7dd3fc55;border-bottom-color:color-mix(in srgb, var(--celebration-accent) 50%, transparent);animation-direction:alternate-reverse;animation-delay:-6s;top:48%}.celebration-burst{width:clamp(160px,30vw,420px);height:auto;filter:drop-shadow(0 0 8px var(--celebration-accent));animation:6s ease-out infinite celebration-burst;position:absolute}.celebration-burst-left{animation-delay:-1s;top:10%;left:-5%}.celebration-burst-right{animation-delay:-3.5s;top:34%;right:-4%}.celebration-burst-bottom{animation-delay:-5s;bottom:6%;left:8%}@keyframes celebration-wave{0%{opacity:.5;transform:translate(-3%,-8%)rotate(-25deg)scale(.9)}to{opacity:.9;transform:translate(5%,10%)rotate(20deg)scale(1.15)}}@keyframes celebration-burst{0%{opacity:0;transform:scale(.15)rotate(-12deg)}15%{opacity:.95}60%{opacity:0;transform:scale(1.1)rotate(8deg)}to{opacity:0;transform:scale(1.1)rotate(8deg)}}@media (prefers-reduced-motion:reduce){.celebration-wave,.celebration-burst{opacity:.35;animation:none}.event-celebration[data-celebration] i,.event-celebration-glow{animation:none}.event-celebration[data-celebration=confetti] i{top:var(--particle-y)}}
