.celebration{z-index:200;cursor:pointer;justify-content:center;align-items:center;padding:24px;animation:.3s ease-out both celebration-in;display:flex;position:fixed;inset:0;overflow:hidden}.confetti{pointer-events:none;position:absolute;inset:0}.confetti>i{border:2px solid var(--c-ink);animation:confetti-burst var(--dur,2s) var(--delay,0s) cubic-bezier(.15, .7, .3, 1) both;position:absolute;top:46%;left:50%}.celebration-card{background:var(--c-bg);border:var(--bw-3) solid var(--c-ink);max-width:340px;box-shadow:8px 8px 0 var(--c-ink);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:12px;padding:30px 20px 24px;animation:.5s cubic-bezier(.2,.9,.3,1.4) both celebration-stamp;display:flex;position:relative;transform:rotate(-2deg)}.celebration-title{font-family:var(--font-head);font-size:2.125rem;font-weight:900;line-height:1.2}.celebration-message{font-size:var(--fs-lg);font-weight:700}.celebration-part{background:var(--c-accent);border:var(--bw-1) solid var(--c-ink);border-radius:var(--r-pill);margin-top:6px;padding:6px 16px;font-weight:700}.celebration.is-reduced,.celebration.is-reduced .celebration-card{animation:none}@keyframes celebration-in{0%{opacity:0}to{opacity:1}}@keyframes celebration-stamp{0%{opacity:0;transform:scale(1.7)rotate(-9deg)}60%{opacity:1;transform:scale(.95)rotate(-1deg)}to{opacity:1;transform:scale(1)rotate(-2deg)}}@keyframes confetti-burst{0%{opacity:1;transform:translate(-50%,-50%)scale(.2)}75%{opacity:1}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) rotate(var(--r));opacity:0}}
