*{margin:0;padding:0;box-sizing:border-box}:root{--pink: #ff6b9d;--purple: #c06fff;--yellow: #ffd93d;--blue: #6bcbff;--green: #6bffb0;--orange: #ff9f6b}body{font-family:Poppins,sans-serif;min-height:100vh;overflow-x:hidden;background:linear-gradient(135deg,#2b1055,#7597de,#ff6b9d);background-size:200% 200%;animation:gradientShift 15s ease infinite}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}#app{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}#confetti-canvas{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:100}.stars{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;background-image:radial-gradient(2px 2px at 20px 30px,white,transparent),radial-gradient(2px 2px at 60px 70px,white,transparent),radial-gradient(1px 1px at 50px 160px,white,transparent),radial-gradient(2px 2px at 130px 40px,white,transparent),radial-gradient(1px 1px at 90px 120px,white,transparent),radial-gradient(2px 2px at 160px 90px,white,transparent),radial-gradient(1px 1px at 200px 50px,white,transparent),radial-gradient(2px 2px at 240px 130px,white,transparent);background-repeat:repeat;background-size:250px 200px;opacity:.4;animation:twinkle 4s ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:.2}to{opacity:.6}}.balloons{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:hidden}.balloon{position:absolute;width:70px;height:90px;border-radius:50%/60% 60% 40% 40%;bottom:-150px;animation:floatUp linear infinite;opacity:.9}.balloon:before{content:"";position:absolute;top:8px;left:20px;width:14px;height:20px;background:#ffffff4d;border-radius:50%;transform:rotate(-20deg)}.balloon .string{position:absolute;bottom:-60px;left:50%;width:1px;height:60px;background:#ffffff80}.balloon-1{left:8%;background:var(--pink);animation-duration:14s;animation-delay:0s}.balloon-2{left:25%;background:var(--yellow);animation-duration:18s;animation-delay:2s;width:60px;height:78px}.balloon-3{left:68%;background:var(--blue);animation-duration:16s;animation-delay:4s}.balloon-4{left:85%;background:var(--purple);animation-duration:20s;animation-delay:1s;width:55px;height:72px}.balloon-5{left:45%;background:var(--green);animation-duration:22s;animation-delay:6s}@keyframes floatUp{0%{transform:translateY(0) translate(0) rotate(0)}25%{transform:translateY(-30vh) translate(20px) rotate(5deg)}50%{transform:translateY(-60vh) translate(-20px) rotate(-5deg)}75%{transform:translateY(-90vh) translate(20px) rotate(5deg)}to{transform:translateY(-130vh) translate(0) rotate(0)}}.card{position:relative;z-index:10;background:#ffffff1f;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.25);border-radius:32px;padding:60px 50px;max-width:560px;width:100%;text-align:center;box-shadow:0 25px 70px #00000059;animation:cardEntry 1s cubic-bezier(.34,1.56,.64,1)}@keyframes cardEntry{0%{opacity:0;transform:translateY(60px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.sparkle{position:absolute;font-size:28px;animation:sparklePulse 2.5s ease-in-out infinite}.sparkle-1{top:20px;left:30px;animation-delay:0s}.sparkle-2{top:40px;right:40px;animation-delay:.6s}.sparkle-3{bottom:30px;left:25px;animation-delay:1.2s}.sparkle-4{bottom:40px;right:30px;animation-delay:1.8s}@keyframes sparklePulse{0%,to{transform:scale(1) rotate(0);opacity:.7}50%{transform:scale(1.3) rotate(15deg);opacity:1}}.cake-emoji{font-size:80px;margin-bottom:10px;animation:bounce 2s ease-in-out infinite;filter:drop-shadow(0 10px 15px rgba(0,0,0,.3))}@keyframes bounce{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-15px) rotate(3deg)}}.title{color:#fff;margin-bottom:25px;line-height:1.3}.title .line1{display:block;font-size:2rem;font-weight:700;text-shadow:0 4px 20px rgba(0,0,0,.3);letter-spacing:1px}.title .name{display:block;font-family:Pacifico,cursive;font-size:4rem;background:linear-gradient(90deg,var(--yellow),var(--pink),var(--purple),var(--blue),var(--yellow));background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 4s linear infinite;margin-top:5px}@keyframes shimmer{0%{background-position:0% 50%}to{background-position:300% 50%}}.message{color:#ffffffe6;font-size:1.1rem;font-weight:300;line-height:1.7;max-width:420px;margin:0 auto 30px}.divider{font-size:1.5rem;margin-bottom:35px;display:flex;justify-content:center;gap:15px}.divider span{display:inline-block;animation:wiggle 1.5s ease-in-out infinite}.divider span:nth-child(2){animation-delay:.15s}.divider span:nth-child(3){animation-delay:.3s}.divider span:nth-child(4){animation-delay:.45s}.divider span:nth-child(5){animation-delay:.6s}@keyframes wiggle{0%,to{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}.celebrate-btn{font-family:Poppins,sans-serif;font-size:1.15rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--pink),var(--purple));border:none;padding:16px 42px;border-radius:50px;cursor:pointer;box-shadow:0 10px 30px #c06fff80;transition:transform .2s ease,box-shadow .2s ease;display:inline-flex;align-items:center;gap:10px}.celebrate-btn:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 15px 40px #c06fffb3}.celebrate-btn:active{transform:translateY(0) scale(.98)}.footer-note{margin-top:25px;color:#fff9;font-size:.85rem;font-weight:300}@media (max-width: 600px){.card{padding:45px 28px}.title .line1{font-size:1.5rem}.title .name{font-size:2.8rem}.cake-emoji{font-size:60px}.message{font-size:1rem}}
