:root{--primary-color: #ff6b6b;--secondary-color: #4ecdc4;--accent-color: #45b7d1;--gold-color: #ffd93d;--text-dark: #2c3e50;--text-light: #ffffff;--gradient-bg: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--birthday-gradient: linear-gradient(45deg, #ff6b6b, #4ecdc4, #45b7d1, #ffd93d)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Rubik,sans-serif;background:var(--gradient-bg);color:var(--text-dark);overflow:hidden;min-height:100vh;position:relative;margin:0;padding:0}#app{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;position:relative;z-index:1;position:fixed;inset:0}.background-animation{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);background-size:100% 100%;z-index:-1}.background-animation:before{display:none}.background-animation:after{display:none}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.birthday-card{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:30px;padding:2rem 1.5rem;margin:1rem;box-shadow:0 20px 40px #0000001a;border:1px solid rgba(255,255,255,.2);max-width:90vw;max-height:90vh;width:100%;text-align:center;position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.card-header{margin-bottom:2rem}.main-title{font-size:clamp(1.5rem,6vw,3rem);font-weight:800;color:var(--text-light);text-shadow:3px 3px 6px rgba(0,0,0,.3);margin-bottom:1rem;transition:opacity .3s ease;min-height:3rem;display:flex;align-items:center;justify-content:center}.subtitle{font-size:clamp(1.2rem,4vw,2rem);font-weight:600;color:var(--text-light);text-shadow:2px 2px 4px rgba(0,0,0,.3);opacity:.9}.main-header{text-align:center;margin-bottom:3rem;animation:slideInFromTop 1s ease-out}.birthday-title{font-size:clamp(2rem,8vw,4rem);font-weight:800;color:var(--text-light);text-shadow:3px 3px 6px rgba(0,0,0,.3);margin-bottom:1rem;animation:bounce 2s infinite}.age-celebration{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap}.age-number{font-size:clamp(3rem,12vw,6rem);font-weight:900;color:var(--gold-color);text-shadow:4px 4px 8px rgba(0,0,0,.4);animation:pulse 2s infinite alternate}.age-text{font-size:clamp(1.5rem,5vw,2.5rem);font-weight:700;background:linear-gradient(90deg,var(--gold-color),#ffd700,#ffed4e,var(--gold-color));background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none;animation:shimmer 3s ease-in-out infinite}.photo-section{margin:2rem 0;animation:slideInFromLeft 1s ease-out .3s both;display:flex;justify-content:center;align-items:center;width:100%}.photo-frame{width:min(350px,80vw);height:min(350px,80vw);border:8px solid var(--gold-color);border-radius:50%;overflow:hidden;box-shadow:0 15px 35px #0003,0 5px 15px #ffd93d66,inset 0 0 20px #ffffff1a;position:relative;transition:all .3s ease;background:linear-gradient(135deg,#f093fb,#f5576c)}.photo-frame:hover{transform:scale(1.05) rotate(2deg);box-shadow:0 20px 40px #0000004d,0 10px 20px #ffd93d99,inset 0 0 30px #fff3}.photo-frame:before{content:"";position:absolute;inset:-4px;background:linear-gradient(45deg,#ff6b6b,#4ecdc4,#45b7d1,#ffd93d);border-radius:50%;z-index:-1;animation:borderGlow 3s ease-in-out infinite}.photo-placeholder,.photo-placeholder-content{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-light);text-align:center;cursor:pointer;transition:all .3s ease;position:relative}.photo-placeholder:hover,.photo-placeholder-content:hover{background:linear-gradient(135deg,#4facfe,#00f2fe)}.placeholder-icon{font-size:3rem;margin-bottom:1rem;animation:float 3s ease-in-out infinite}.placeholder-text{font-size:1rem;font-weight:600}.placeholder-subtext{font-size:.8rem;opacity:.8;margin-top:.5rem}.uploaded-photo{width:100%;height:100%;object-fit:cover;transition:all .3s ease}.photo-error{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:linear-gradient(135deg,#ff6b6b,#ff8a80);color:#fff;font-weight:600}.photo-controls{margin-top:1rem;display:flex;gap:.5rem;justify-content:center}.change-photo-btn{background:linear-gradient(45deg,var(--gold-color),#ffeb3b);color:var(--text-dark);border:none;padding:.5rem 1rem;border-radius:20px;font-weight:600;cursor:pointer;transition:all .3s ease;font-family:Rubik,sans-serif;font-size:.9rem}.change-photo-btn:hover{transform:translateY(-2px);box-shadow:0 5px 15px #ffd93d66}@keyframes borderGlow{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}.wishes-section{margin:2rem 0;animation:slideInFromRight 1s ease-out .6s both}.wish-container{background:#ffffffe6;padding:2rem;border-radius:20px;box-shadow:0 10px 30px #0000001a;max-width:600px;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.rotating-wish{font-size:clamp(1.2rem,4vw,1.8rem);font-weight:600;color:var(--text-dark);min-height:3rem;display:flex;align-items:center;justify-content:center;animation:fadeInOut 4s infinite}.interaction-section{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin:2rem 0;animation:slideInFromBottom 1s ease-out .9s both}.celebrate-btn,.music-btn,.surprise-btn{background:linear-gradient(45deg,var(--primary-color),var(--secondary-color));color:var(--text-light);border:none;padding:1rem 2rem;border-radius:50px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;font-family:Rubik,sans-serif;box-shadow:0 8px 20px #0003;position:relative;overflow:hidden}.celebrate-btn:hover,.music-btn:hover,.surprise-btn:hover{transform:translateY(-3px);box-shadow:0 12px 25px #0000004d}.celebrate-btn:active,.music-btn:active,.surprise-btn:active{transform:translateY(0)}.music-btn{background:linear-gradient(45deg,#ff6b6b,#4ecdc4,#45b7d1);background-size:200% 200%;animation:musicButtonGlow 3s ease-in-out infinite}.music-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.music-btn:hover:before{left:100%}@keyframes musicButtonGlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.floating-elements{display:none}.balloon{position:absolute;font-size:2rem;animation:float 6s ease-in-out infinite}.balloon-1{top:20%;left:10%;animation-delay:0s;color:var(--primary-color)}.balloon-2{top:60%;right:15%;animation-delay:2s;color:var(--secondary-color)}.balloon-3{top:40%;left:80%;animation-delay:4s;color:var(--accent-color)}.confetti-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none}.confetti-piece{position:absolute;width:10px;height:10px;background:var(--gold-color);animation:confettiFall 3s linear forwards}@keyframes gradientShift{0%,to{background-position:0% 50%,0% 0%,100% 100%,50% 50%,0% 0%}25%{background-position:100% 50%,50% 50%,0% 0%,100% 100%,50% 50%}50%{background-position:100% 100%,100% 0%,50% 50%,0% 0%,100% 100%}75%{background-position:0% 100%,50% 100%,100% 50%,50% 0%,50% 50%}}@keyframes bubbleFloat1{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-20px) rotate(120deg)}66%{transform:translateY(-10px) rotate(240deg)}}@keyframes bubbleFloat2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(20px) scale(1.1)}}@keyframes bubbleFloat3{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(10px,-15px) rotate(90deg)}50%{transform:translate(-5px,-25px) rotate(180deg)}75%{transform:translate(-10px,-10px) rotate(270deg)}}@keyframes gradientPulse{0%,to{opacity:.8}50%{opacity:1}}@keyframes floatingBubbles{0%{background-position:0% 0%,100% 100%,50% 0%}25%{background-position:25% 25%,75% 75%,75% 25%}50%{background-position:50% 50%,50% 50%,100% 50%}75%{background-position:75% 25%,25% 75%,25% 75%}to{background-position:100% 0%,0% 100%,0% 100%}}@keyframes colorShift{0%,to{filter:hue-rotate(0deg) brightness(1)}25%{filter:hue-rotate(90deg) brightness(1.1)}50%{filter:hue-rotate(180deg) brightness(.9)}75%{filter:hue-rotate(270deg) brightness(1.1)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulseGlow{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.05)}}@keyframes slideInFromTop{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInFromLeft{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromRight{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes slideInFromBottom{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@keyframes pulse{0%{transform:scale(1)}to{transform:scale(1.05)}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-20px) rotate(5deg)}50%{transform:translateY(-10px) rotate(-5deg)}75%{transform:translateY(-15px) rotate(3deg)}}@keyframes fadeInOut{0%,to{opacity:0;transform:translateY(10px)}10%,90%{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes confettiFall{0%{transform:translateY(-100vh) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.celebration-mode .birthday-title{animation:bounce .5s infinite}.celebration-mode .age-number{animation:pulse .3s infinite alternate}.celebration-mode .photo-frame{animation:bounce 1s infinite}@media (max-width: 768px){#app{padding:10px}.photo-frame{width:250px;height:250px}.wish-container{padding:1.5rem;margin:0 10px}.interaction-section{flex-direction:column;align-items:center}.celebrate-btn,.music-btn,.surprise-btn{width:80%;max-width:300px}}@media (max-width: 768px){*{animation:none!important;transition:none!important}#app{padding:10px}.birthday-card{padding:2rem 1.5rem;margin:1rem}.main-title{font-size:2.5rem}.subtitle{font-size:1.2rem}.interaction-section{gap:.8rem;flex-wrap:wrap;justify-content:center}.celebrate-btn,.music-btn,.surprise-btn{padding:.8rem 1.5rem;font-size:1rem;min-width:120px}.photo-section{margin:1.5rem 0}.photo-frame{width:220px;height:220px}.age-celebration{gap:.8rem}.age-number{font-size:3rem}}@media (max-width: 480px){.birthday-card{padding:1.5rem 1rem;margin:.5rem}.main-title{font-size:2rem;line-height:1.2}.subtitle{font-size:1rem}.photo-frame{width:180px;height:180px}.celebrate-btn,.music-btn,.surprise-btn{padding:.7rem 1.2rem;font-size:.9rem;min-width:100px}.age-number{font-size:2.5rem}.floating-elements{display:none}.photo-controls{flex-direction:column;gap:.5rem}.change-photo-btn,.toggle-rotation-btn{font-size:.8rem;padding:.5rem 1rem}}@media (max-height: 600px){.birthday-card{padding:1rem;margin:.5rem}.photo-frame{width:150px;height:150px}.age-number{font-size:2rem}}@keyframes musicBounce{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes fireworkExplode{0%{transform:scale(0) rotate(0);opacity:1}to{transform:scale(2) rotate(360deg);opacity:0}}@keyframes heartFall{0%{transform:translateY(-50px) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(360deg);opacity:0}}@keyframes sparkleFloat{0%{transform:translateY(0) scale(0);opacity:1}50%{transform:translateY(-20px) scale(1);opacity:.8}to{transform:translateY(-40px) scale(0);opacity:0}}@keyframes particleExplosion{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(calc(-50% + var(--end-x)),calc(-50% + var(--end-y))) scale(0);opacity:0}}@keyframes celebrationPulse{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{transform:translate(-50%,-50%) scale(1.1);opacity:1}80%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(.8);opacity:0}}@keyframes surpriseBounce{0%{transform:translate(-50%) scale(0);opacity:0}50%{transform:translate(-50%) scale(1.1);opacity:1}to{transform:translate(-50%) scale(1);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInUp{0%{opacity:0;transform:translateY(50px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.personal-greeting-btn{background:linear-gradient(45deg,#ff6b6b,#ffd93d);color:#fff;border:none;padding:15px 25px;border-radius:25px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 5px 15px #0003;margin:.5rem}.personal-greeting-btn:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 8px 25px #ff6b6b66}.personal-greeting-btn:active{transform:translateY(-1px) scale(1.02)}
