*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#0a0a1a;--bg-secondary:#12122a;--accent-pink:#ff6b9d;--accent-purple:#c471ed;--accent-blue:#6e8efb;--accent-gold:gold;--accent-orange:#ff9a56;--text-primary:#fff;--text-secondary:#ffffffb3;--glow-pink:#ff6b9d66;--glow-purple:#c471ed66;--glow-gold:#ffd70080}html{scroll-behavior:smooth}body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:Outfit,sans-serif;overflow-x:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:linear-gradient(var(--accent-pink), var(--accent-purple));border-radius:3px}.loading-screen{z-index:9999;background:var(--bg-primary);flex-direction:column;justify-content:center;align-items:center;transition:opacity .8s,visibility .8s;display:flex;position:fixed;inset:0}.loading-screen.fade-out{opacity:0;visibility:hidden}.loading-cake{font-size:4rem;animation:1s ease-in-out infinite loadingBounce}.loading-text{background:linear-gradient(135deg, var(--accent-pink), var(--accent-purple), var(--accent-blue));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-top:1.5rem;font-family:Dancing Script,cursive;font-size:1.5rem;animation:2s ease-in-out infinite shimmer}.loading-dots span{animation:1.4s ease-in-out infinite dotPulse;display:inline-block}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loadingBounce{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-20px)scale(1.1)}}@keyframes dotPulse{0%,80%,to{opacity:0;transform:scale(.5)}40%{opacity:1;transform:scale(1)}}@keyframes shimmer{0%,to{opacity:.7}50%{opacity:1}}.stars-container{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.star{width:3px;height:3px;animation:twinkle var(--duration) ease-in-out infinite;animation-delay:var(--delay);opacity:0;background:#fff;border-radius:50%;position:absolute}@keyframes twinkle{0%,to{opacity:0;transform:scale(.5)}50%{opacity:var(--max-opacity);transform:scale(1)}}.confetti-container{z-index:10;pointer-events:none;position:fixed;inset:0;overflow:hidden}.confetti-piece{width:var(--size);height:var(--size);background:var(--color);top:-20px;left:var(--left);opacity:0;border-radius:var(--radius);animation:confettiFall var(--fall-duration) var(--delay) ease-in forwards;position:absolute}@keyframes confettiFall{0%{opacity:1;transform:translateY(0)rotate(0)scale(1)}25%{opacity:1;transform:translateY(25vh)rotate(180deg)translate(30px)scale(.95)}50%{opacity:.9;transform:translateY(50vh)rotate(360deg)translate(-20px)scale(.9)}75%{opacity:.6;transform:translateY(75vh)rotate(540deg)translate(15px)scale(.8)}to{opacity:0;transform:translateY(105vh)rotate(720deg)translate(-10px)scale(.5)}}.balloons-container{z-index:5;pointer-events:none;position:fixed;inset:0;overflow:hidden}.balloon{width:var(--size);height:calc(var(--size) * 1.2);background:var(--color);opacity:.85;animation:floatUp var(--duration) var(--delay) ease-out forwards;filter:drop-shadow(0 4px 20px var(--color));border-radius:50%/40% 40% 60% 60%;position:absolute;bottom:-150px}.balloon:before{content:"";background:inherit;clip-path:polygon(50% 100%,0 0,100% 0);width:12px;height:12px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.balloon:after{content:"";background:#ffffff4d;width:1px;height:80px;position:absolute;bottom:-80px;left:50%;transform:translate(-50%)}@keyframes floatUp{0%{opacity:0;transform:translateY(0)translate(0)rotate(0)}10%{opacity:.85}to{opacity:0;transform:translateY(-130vh) translateX(var(--sway)) rotate(var(--rotation))}}.sparkle{pointer-events:none;animation:.8s ease-out forwards sparkleAnim;position:absolute}@keyframes sparkleAnim{0%{opacity:1;transform:scale(0)rotate(0)}to{opacity:0;transform:scale(1.5)rotate(180deg)}}.birthday-app{z-index:1;min-height:100vh;position:relative}.hero-section{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex;position:relative;overflow:hidden}.hero-section:before{content:"";z-index:0;background:radial-gradient(at 20%,#ff6b9d1f 0%,#0000 50%),radial-gradient(at 80%,#6e8efb1f 0%,#0000 50%),radial-gradient(at 50% 0,#c471ed26 0%,#0000 50%);position:absolute;inset:0}.hero-content{z-index:2;text-align:center;max-width:800px;position:relative}.emoji-crown{margin-bottom:1rem;font-size:3rem;animation:3s ease-in-out infinite crownFloat;display:inline-block}@keyframes crownFloat{0%,to{transform:translateY(0)rotate(-5deg)}50%{transform:translateY(-15px)rotate(5deg)}}.hero-title{background:linear-gradient(135deg, var(--accent-pink), var(--accent-purple), var(--accent-blue), var(--accent-gold));-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 30px var(--glow-pink));opacity:0;background-size:300% 300%;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-family:Pacifico,cursive;font-size:clamp(3rem,8vw,7rem);line-height:1.1;animation:4s ease-in-out infinite gradientShift,1.5s ease-out forwards titleReveal}@keyframes gradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes titleReveal{0%{opacity:0;filter:blur(10px);transform:translateY(40px)scale(.8)}to{opacity:1;filter:blur(0px) drop-shadow(0 0 30px var(--glow-pink));transform:translateY(0)scale(1)}}.hero-subtitle{color:var(--text-secondary);opacity:0;margin-top:1rem;font-family:Dancing Script,cursive;font-size:clamp(1.2rem,3vw,2rem);animation:1s ease-out .8s forwards subtitleReveal}@keyframes subtitleReveal{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.hero-name{background:linear-gradient(135deg, var(--accent-gold), var(--accent-orange), var(--accent-pink));-webkit-text-fill-color:transparent;opacity:0;filter:drop-shadow(0 0 20px var(--glow-gold));-webkit-background-clip:text;background-clip:text;margin-top:.5rem;font-family:Dancing Script,cursive;font-size:clamp(2rem,5vw,3.5rem);font-weight:700;animation:1.2s ease-out 1.4s forwards nameReveal}@keyframes nameReveal{0%{opacity:0;filter:blur(5px);transform:scale(.5)rotate(-5deg)}60%{transform:scale(1.1)rotate(2deg)}to{opacity:1;filter:blur(0px) drop-shadow(0 0 20px var(--glow-gold));transform:scale(1)rotate(0)}}.scroll-indicator{opacity:0;cursor:pointer;flex-direction:column;align-items:center;gap:.5rem;animation:1s ease-out 3s forwards fadeIn;display:flex;position:absolute;bottom:2rem;left:50%;transform:translate(-50%)}.scroll-indicator span{color:var(--text-secondary);letter-spacing:2px;text-transform:uppercase;font-size:.8rem}.scroll-arrow{border-right:2px solid var(--accent-pink);border-bottom:2px solid var(--accent-pink);width:24px;height:24px;animation:2s ease-in-out infinite scrollBounce;transform:rotate(45deg)}@keyframes scrollBounce{0%,to{opacity:.5;transform:rotate(45deg)translate(0)}50%{opacity:1;transform:rotate(45deg)translate(5px,5px)}}@keyframes fadeIn{to{opacity:1}}.cake-section{background:linear-gradient(#0000 0%,#c471ed0d 50%,#0000 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:4rem 2rem;display:flex;position:relative}.section-title{text-align:center;background:linear-gradient(135deg, var(--accent-pink), var(--accent-purple));-webkit-text-fill-color:transparent;opacity:0;-webkit-background-clip:text;background-clip:text;margin-bottom:3rem;font-family:Dancing Script,cursive;font-size:clamp(2rem,5vw,3.5rem);transition:opacity .8s,transform .8s;transform:translateY(30px)}.section-title.visible{opacity:1;transform:translateY(0)}.cake-wrapper{perspective:800px;opacity:0;transition:opacity 1s,transform 1s;transform:translateY(50px)}.cake-wrapper.visible{opacity:1;transform:translateY(0)}.cake{flex-direction:column;align-items:center;width:280px;animation:4s ease-in-out infinite cakeFloat;display:flex;position:relative}@keyframes cakeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.candles{z-index:2;gap:20px;margin-bottom:-5px;display:flex}.candle{background:linear-gradient(135deg, #fff5cc, var(--accent-gold));border-radius:4px 4px 2px 2px;width:8px;height:50px;position:relative}.flame{filter:drop-shadow(0 0 8px #ffda44)drop-shadow(0 0 15px #ff6b35);background:radial-gradient(at bottom,#ffda44,#ff6b35,#f36);border-radius:50%/60% 60% 40% 40%;width:14px;height:20px;animation:.3s ease-in-out infinite alternate flicker;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.flame:after{content:"";background:radial-gradient(at bottom,#6ef,#48f);border-radius:50%/60% 60% 40% 40%;width:6px;height:10px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}@keyframes flicker{0%{transform:translate(-50%)scaleY(1)scaleX(1)rotate(-2deg)}to{transform:translate(-50%)scaleY(1.1)scaleX(.9)rotate(2deg)}}.flame-glow{background:radial-gradient(circle,#ffda444d,#0000 70%);border-radius:50%;width:40px;height:40px;animation:1.5s ease-in-out infinite glowPulse;position:absolute;top:-35px;left:50%;transform:translate(-50%)}@keyframes glowPulse{0%,to{opacity:.5;transform:translate(-50%)scale(1)}50%{opacity:1;transform:translate(-50%)scale(1.2)}}.cake-layer{border-radius:15px;width:100%;position:relative;overflow:hidden}.cake-layer:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff1a 50%,#0000 100%);position:absolute;inset:0}.cake-top{background:linear-gradient(135deg,#ff9a9e,#fecfef);border-radius:15px 15px 5px 5px;height:70px;box-shadow:0 5px 15px #ff9a9e4d}.cake-middle{background:linear-gradient(135deg,#a18cd1,#fbc2eb);border-radius:8px;width:110%;height:60px;margin-top:-3px;margin-left:-5%;box-shadow:0 5px 15px #a18cd14d}.cake-bottom{background:linear-gradient(135deg,#fbc2eb,#ff9a9e);border-radius:8px 8px 15px 15px;width:120%;height:70px;margin-top:-3px;margin-left:-10%;box-shadow:0 8px 25px #fbc2eb66}.cake-plate{background:linear-gradient(135deg,#e0e0e0,#fff);border-radius:50%;width:140%;height:12px;margin-top:2px;margin-left:-20%;box-shadow:0 5px 20px #0003}.frosting{justify-content:space-around;display:flex;position:absolute;bottom:-8px;left:0;right:0}.drip{width:15px;height:var(--height,20px);animation:3s ease-in-out infinite dripAnim;animation-delay:var(--delay,0s);background:linear-gradient(#0000,#fff5f5);border-radius:0 0 50% 50%}@keyframes dripAnim{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.15)}}.sprinkles{position:absolute;inset:0;overflow:hidden}.sprinkle{background:var(--color);width:4px;height:10px;transform:rotate(var(--rotation));top:var(--top);left:var(--left);border-radius:2px;position:absolute}.wishes-section{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:4rem 2rem;display:flex;position:relative}.wishes-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;width:100%;max-width:1000px;margin-top:2rem;display:grid}.wish-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;opacity:0;background:#ffffff08;border:1px solid #ffffff14;border-radius:20px;padding:2.5rem 2rem;transition:opacity .8s,transform .8s,box-shadow .3s,border-color .3s;position:relative;overflow:hidden;transform:translateY(40px)scale(.95)}.wish-card.visible{opacity:1;transform:translateY(0)scale(1)}.wish-card:before{content:"";z-index:0;background:linear-gradient(135deg,#ff6b9d0d,#c471ed0d,#6e8efb0d);border-radius:20px;position:absolute;inset:0}.wish-card:hover{border-color:#ff6b9d4d;box-shadow:0 10px 40px #ff6b9d26,0 0 80px #c471ed1a;transform:translateY(-5px)scale(1.02)!important}.wish-card-icon{z-index:1;margin-bottom:1rem;font-size:3rem;animation:.6s ease-out backwards iconPop;display:inline-block;position:relative}.wish-card h3{background:linear-gradient(135deg, var(--accent-pink), var(--accent-purple));-webkit-text-fill-color:transparent;z-index:1;-webkit-background-clip:text;background-clip:text;margin-bottom:.75rem;font-family:Dancing Script,cursive;font-size:1.5rem;position:relative}.wish-card p{color:var(--text-secondary);z-index:1;font-size:.95rem;font-weight:300;line-height:1.7;position:relative}@keyframes iconPop{0%{transform:scale(0)rotate(-20deg)}70%{transform:scale(1.2)rotate(5deg)}to{transform:scale(1)rotate(0)}}.message-section{flex-direction:column;justify-content:center;align-items:center;min-height:80vh;padding:4rem 2rem;display:flex;position:relative}.message-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);text-align:center;opacity:0;background:linear-gradient(135deg,#ff6b9d14,#c471ed14,#6e8efb14);border:1px solid #ffffff1a;border-radius:30px;width:100%;max-width:650px;padding:3.5rem;transition:opacity 1s,transform 1s;position:relative;overflow:hidden;transform:translateY(40px)}.message-card.visible{opacity:1;transform:translateY(0)}.message-card:before{content:"";background:linear-gradient(135deg, var(--accent-pink), var(--accent-purple), var(--accent-blue), var(--accent-gold));z-index:-1;opacity:.3;border-radius:31px;animation:4s ease-in-out infinite borderGlow;position:absolute;inset:-2px}@keyframes borderGlow{0%,to{opacity:.2}50%{opacity:.5}}.message-emoji{margin-bottom:1.5rem;font-size:4rem;animation:1.5s ease-in-out infinite heartbeat;display:inline-block}@keyframes heartbeat{0%,to{transform:scale(1)}15%{transform:scale(1.15)}30%{transform:scale(1)}45%{transform:scale(1.1)}}.message-text{color:var(--text-secondary);margin-bottom:2rem;font-family:Dancing Script,cursive;font-size:clamp(1.3rem,3vw,1.8rem);line-height:1.8}.message-signature{background:linear-gradient(135deg, var(--accent-gold), var(--accent-orange));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Pacifico,cursive;font-size:1.2rem}.wish-button-wrapper{opacity:0;margin-top:3rem;transition:opacity .8s .5s,transform .8s .5s;transform:translateY(20px)}.wish-button-wrapper.visible{opacity:1;transform:translateY(0)}.wish-button{color:#fff;background:linear-gradient(270deg, var(--accent-pink), var(--accent-purple), var(--accent-blue), var(--accent-pink));cursor:pointer;background-size:300% 300%;border:none;border-radius:50px;padding:1.2rem 3.5rem;font-family:Dancing Script,cursive;font-size:1.6rem;font-weight:700;transition:transform .4s ease-out,box-shadow .4s ease-out;animation:3s infinite alternate amazingButtonPulse,5s infinite buttonGradientShift;position:relative;overflow:hidden;box-shadow:0 5px 25px #ff6b9d66}@keyframes amazingButtonPulse{0%{transform:scale(1)translateY(0);box-shadow:0 5px 25px #ff6b9d80,0 0 #ff6b9db3}to{transform:scale(1.05)translateY(-5px);box-shadow:0 15px 35px #c471edb3,0 0 20px 10px #c471ed00}}@keyframes buttonGradientShift{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.wish-button:hover{transform:scale(1.06)translateY(-4px)!important;box-shadow:0 15px 40px #ff6b9db3,0 0 25px #c471ed80!important}.wish-button:active{transform:scale(.95)translateY(0)!important;box-shadow:0 5px 15px #ff6b9d66!important}.wish-button:before{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);width:50%;height:100%;animation:3s infinite shineSweep;position:absolute;top:0;left:-100%;transform:skew(-20deg)}@keyframes shineSweep{0%{left:-100%}20%{left:200%}to{left:200%}}.fireworks-container{z-index:100;pointer-events:none;position:fixed;inset:0;overflow:hidden}.firework{background:var(--color);width:6px;height:6px;box-shadow:0 0 10px var(--color), 0 0 20px var(--color);border-radius:50%;position:absolute}.firework-particle{background:var(--color);width:4px;height:4px;animation:fireworkExplode var(--duration) ease-out forwards;box-shadow:0 0 6px var(--color);border-radius:50%;position:absolute}@keyframes fireworkExplode{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--tx), var(--ty)) scale(0);opacity:0}}.birthday-footer{text-align:center;color:var(--text-secondary);opacity:.5;padding:2rem;font-size:.85rem}.birthday-footer span{color:var(--accent-pink);animation:1.5s ease-in-out infinite heartbeat;display:inline-block}.floating-hearts-container{z-index:3;pointer-events:none;position:fixed;inset:0;overflow:hidden}.floating-heart{font-size:var(--size);bottom:-50px;left:var(--left);animation:floatHeart var(--duration) var(--delay) ease-out forwards;opacity:0;position:absolute}@keyframes floatHeart{0%{opacity:0;transform:translateY(0)rotate(0)scale(.5)}10%{opacity:.7;transform:translateY(-10vh)rotate(10deg)scale(1)}90%{opacity:.3}to{opacity:0;transform:translateY(-100vh) rotate(var(--rotation)) scale(.3)}}.music-toggle{z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.4rem;transition:transform .3s,background .3s;display:flex;position:fixed;top:1.5rem;right:1.5rem}.music-toggle:hover{background:#ff6b9d33;transform:scale(1.1)}@media (width<=768px){.wishes-grid{grid-template-columns:1fr;padding:0 1rem}.message-card{padding:2.5rem 1.5rem}.cake{width:220px}.candles{gap:14px}}@media (width<=480px){.hero-title{font-size:clamp(2.5rem,12vw,4rem)}.cake{width:180px}.wish-card{padding:2rem 1.5rem}}.delay-1{transition-delay:.1s!important}.delay-2{transition-delay:.2s!important}.delay-3{transition-delay:.3s!important}.delay-4{transition-delay:.4s!important}.delay-5{transition-delay:.5s!important}@keyframes floatButterfly{0%{opacity:0;transform:translateY(0)translate(0)rotate(0)scale(.5)}15%{opacity:.8}50%{transform:translateY(-50vh) translateX(var(--tx)) rotate(var(--rotation)) scale(1.2)}85%{opacity:.8}to{opacity:0;transform:translateY(-110vh) translateX(calc(var(--tx) * -1)) rotate(calc(var(--rotation) * -1)) scale(.8)}}.gallery-section{flex-direction:column;justify-content:center;align-items:center;min-height:80vh;padding:4rem 2rem;display:flex;position:relative}.gallery-container{opacity:0;flex-wrap:wrap;justify-content:center;gap:3rem;margin-top:2rem;transition:opacity 1s,transform 1s;display:flex;transform:translateY(40px)}.gallery-container.visible{opacity:1;transform:translateY(0)}.photo-frame{background:linear-gradient(135deg,#ff6b9d80,#c471ed80);border-radius:20px;width:320px;height:400px;padding:10px;transition:transform .5s,box-shadow .5s;position:relative;overflow:hidden;box-shadow:0 15px 35px #0000004d,0 0 20px #ff6b9d66}.photo-frame img{object-fit:cover;border-radius:12px;width:100%;height:100%;transition:transform .8s}.frame-left{transform:rotate(-3deg)}.frame-right{transform:rotate(4deg)}.photo-frame:hover{z-index:10;transform:translateY(-10px)rotate(0)scale(1.05);box-shadow:0 20px 45px #0006,0 0 40px #c471ed99}.photo-frame:hover img{transform:scale(1.05)}.sparkle-overlay{pointer-events:none;background:linear-gradient(135deg,#0000 0%,#fff3 50%,#0000 100%);transition:transform .8s;position:absolute;inset:0;transform:translate(-100%)}.photo-frame:hover .sparkle-overlay{transform:translate(100%)}@media (width<=768px){.photo-frame{width:280px;height:350px}}
