.congrats-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:9999;opacity:0;transition:opacity .4s ease-out}.congrats-overlay.visible{opacity:1}.congrats-modal{background:#fff;padding:40px;border-radius:24px;width:90%;max-width:500px;text-align:center;position:relative;overflow:hidden;box-shadow:0 20px 40px #0003;transform:scale(.8) translateY(20px);transition:transform .5s cubic-bezier(.34,1.56,.64,1)}.congrats-overlay.visible .congrats-modal{transform:scale(1) translateY(0)}.congrats-content{position:relative;z-index:2}.icon-wrapper{margin-bottom:24px;animation:pulse 2s infinite}.congrats-title{font-size:32px;font-weight:800;color:#111827;margin-bottom:16px;background:linear-gradient(45deg,#16a34a,#22c55e);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.congrats-text{font-size:18px;line-height:1.6;color:#4b5563;margin-bottom:24px}.achievement-badge{display:flex;align-items:center;justify-content:center;gap:12px;background:#f0fdf4;border:1px solid #bbf7d0;padding:12px 24px;border-radius:99px;margin:0 auto 24px;width:fit-content}.badge-icon{font-size:24px}.badge-text{font-weight:700;color:#16a34a;text-transform:uppercase;letter-spacing:.05em}.congrats-subtext{font-size:14px;color:#6b7280;margin-bottom:32px}.congrats-button{background:#111827;color:#fff;border:none;padding:14px 32px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%}.congrats-button:hover{background:#1f2937;transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.confetti-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.confetti{position:absolute;width:10px;height:10px;background-color:#22c55e;border-radius:2px;opacity:.8}.piece-0{left:10%;background:#22c55e;animation:float-1 4s infinite linear}.piece-1{left:20%;background:#ef4444;animation:float-2 5s infinite linear}.piece-2{left:30%;background:#3b82f6;animation:float-3 4.5s infinite linear}.piece-3{left:40%;background:#eab308;animation:float-1 3.5s infinite linear}.piece-4{left:50%;background:#a855f7;animation:float-2 4.2s infinite linear}.piece-5{left:60%;background:#22c55e;animation:float-3 4.8s infinite linear}.piece-6{left:70%;background:#ef4444;animation:float-1 5.2s infinite linear}.piece-7{left:80%;background:#3b82f6;animation:float-2 3.8s infinite linear}.piece-8{left:90%;background:#eab308;animation:float-3 4.6s infinite linear}.piece-9{left:15%;background:#a855f7;animation:float-1 4.1s infinite linear}.piece-10{left:20%;background:#22c55e;animation:float-1 4.3s infinite linear}.piece-11{left:40%;background:#ef4444;animation:float-2 4.5s infinite linear}.piece-12{left:60%;background:#3b82f6;animation:float-3 4.7s infinite linear}.piece-13{left:80%;background:#eab308;animation:float-1 4.9s infinite linear}.piece-14{left:30%;background:#a855f7;animation:float-2 5.1s infinite linear}.piece-15{left:20%;background:#22c55e;animation:float-3 5.3s infinite linear}.piece-16{left:40%;background:#ef4444;animation:float-1 5.5s infinite linear}.piece-17{left:60%;background:#3b82f6;animation:float-2 5.7s infinite linear}.piece-18{left:80%;background:#eab308;animation:float-3 5.9s infinite linear}.piece-19{left:30%;background:#a855f7;animation:float-1 4.6s infinite linear}@keyframes float-1{0%{transform:translateY(-20px) rotate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(400px) rotate(360deg);opacity:0}}@keyframes float-2{0%{transform:translateY(-20px) rotate(0) translate(0);opacity:0}10%{opacity:1}50%{transform:translateY(200px) rotate(180deg) translate(20px)}90%{opacity:1}to{transform:translateY(400px) rotate(360deg) translate(-20px);opacity:0}}@keyframes float-3{0%{transform:translateY(-20px) rotate(0) scale(1);opacity:0}10%{opacity:1}50%{transform:translateY(200px) rotate(-180deg) scale(.8)}90%{opacity:1}to{transform:translateY(400px) rotate(-360deg) scale(1);opacity:0}}
