.celebration-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:#173c2980;overflow:hidden;animation:celebration-fade .25s ease-out}
.celebration-panel{position:relative;z-index:2;width:min(380px,100%);padding:32px 24px;text-align:center;background:linear-gradient(145deg,#fff,#edf9e9);border:1px solid #d8ebd4;border-radius:24px;box-shadow:0 24px 70px #142b2060;animation:celebration-pop .55s cubic-bezier(.2,1.4,.4,1)}
.celebration-icon{font-size:54px;line-height:1;animation:celebration-bounce .8s .3s both}
.celebration-panel h2{margin:18px 0 8px;color:#2c724b;font-size:25px}
.celebration-panel p{margin:0 0 22px;color:#55745d;font-size:15px;line-height:1.5}
.celebration-panel button{min-height:44px;border:0;border-radius:11px;padding:10px 20px;background:#3d8c61;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.celebration-confetti{position:absolute;top:-24px;left:var(--x);width:10px;height:17px;border-radius:3px;background:var(--color);opacity:0;transform:rotate(var(--spin));animation:celebration-fall var(--duration) var(--delay) linear forwards}
@keyframes celebration-fade{from{opacity:0}to{opacity:1}}
@keyframes celebration-pop{from{opacity:0;transform:scale(.7) translateY(25px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes celebration-bounce{0%{opacity:0;transform:scale(.5) rotate(-18deg)}65%{opacity:1;transform:scale(1.16) rotate(8deg)}100%{transform:scale(1) rotate(0)}}
@keyframes celebration-fall{0%{opacity:1;transform:translate3d(0,-10px,0) rotate(0)}100%{opacity:0;transform:translate3d(var(--drift),105vh,0) rotate(720deg)}}
@media(prefers-reduced-motion:reduce){.celebration-overlay,.celebration-panel,.celebration-icon,.celebration-confetti{animation:none}.celebration-confetti{display:none}}
