@import "https://fonts.googleapis.com/css2?family=Dancing+Script:wght@700&family=Poppins:wght@300;600;800&display=swap";:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}body{place-items:center;min-width:320px;min-height:100vh;margin:0;display:flex}#root{width:100%;height:100%;margin:0;padding:0}:root{--bg-gradient:linear-gradient(135deg,#667eea 0%,#764ba2 100%);--card-glass:#ffffff1a;--box-glass:#ffffff26;--neon-pink:#ff0080;--neon-blue:#00eaff;--text-light:#fff}html,body,#root{scroll-behavior:smooth;width:100%;height:100%;margin:0;padding:0;overflow-x:hidden}body{background:var(--bg-gradient);font-family:Poppins,sans-serif}.container{box-sizing:border-box;justify-content:center;align-items:center;width:100vw;min-height:100vh;padding:10px;display:flex;position:relative;overflow:hidden}.scroll-container{width:100vw;min-height:100vh;position:relative;overflow:hidden auto}.fixed-background{z-index:-1;pointer-events:none;width:100%;height:100%;position:fixed;top:0;left:0}.confetti-container{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.confetti{background:#ffffff4d;animation:linear infinite floatUp;position:absolute;bottom:-100px}.square{width:30px;height:30px;animation-duration:8s;left:10%}.circle{background:#ff00804d;border-radius:50%;width:40px;height:40px;animation-duration:12s;animation-delay:2s;left:30%}.triangle{background:0 0;border-bottom:35px solid #00eaff4d;border-left:20px solid #0000;border-right:20px solid #0000;width:0;height:0;animation-duration:10s;animation-delay:1s;left:60%}.icon{margin-bottom:1rem;font-size:3rem;animation:2s ease-in-out infinite wobble}.main-title{color:var(--text-light);text-shadow:2px 2px 4px #0000004d;margin-bottom:.5rem;font-family:Dancing Script,cursive;font-size:4rem;line-height:1.2}.subtitle{color:#fffc;letter-spacing:2px;text-transform:uppercase;margin-bottom:3rem;font-size:1.2rem}.section-title{color:#fff;text-shadow:0 0 10px #fff9;margin-bottom:3rem;font-family:Dancing Script,cursive;font-size:3rem}.glass-card{background:var(--card-glass);-webkit-backdrop-filter:blur(20px);text-align:center;z-index:10;border:2px solid #fff3;border-radius:30px;width:750px;max-width:90%;padding:3rem 1rem;animation:6s ease-in-out infinite floatCard;position:relative;box-shadow:0 25px 45px #0003}.timer-container{flex-wrap:nowrap;justify-content:center;gap:20px;width:100%;display:flex}.time-box{background:var(--box-glass);border:1px solid #ffffff1a;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;width:110px;height:130px;transition:transform .3s;display:flex;box-shadow:inset 0 0 15px #ffffff1a}.time-box:hover{background:#ffffff40;transform:scale(1.05)translateY(-5px)}.glow-text{color:#fff;text-shadow:0 0 5px var(--neon-blue),0 0 15px var(--neon-blue),0 0 30px var(--neon-pink);font-size:3rem;font-weight:800}.time-box label{text-transform:uppercase;color:#ffffffb3;margin-top:10px;font-size:.9rem;font-weight:600}.glass-navbar{-webkit-backdrop-filter:blur(10px);z-index:1000;box-sizing:border-box;background:#ffffff1a;border-bottom:1px solid #fff3;justify-content:space-between;align-items:center;width:100%;padding:1rem 3rem;display:flex;position:fixed;top:0;left:0}.logo{color:#fff;text-shadow:0 0 10px #ffffff80;cursor:pointer;font-size:1.8rem;font-weight:700}.nav-links{gap:2rem;margin:0;padding:0;list-style:none;display:flex}.nav-links li a{color:#fff;border-radius:20px;padding:.5rem 1rem;font-size:1.1rem;font-weight:500;text-decoration:none;transition:all .3s}.nav-links li a:hover{text-shadow:0 0 8px #fffc;background:#fff3;transform:translateY(-2px)}.hero-section{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100vh;padding-top:60px;display:flex}.gallery-section{z-index:10;flex-direction:column;align-items:center;min-height:100vh;padding:4rem 2rem;display:flex;position:relative}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;width:100%;max-width:1200px;display:grid}.photo-card{-webkit-backdrop-filter:blur(10px);cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:15px;transition:transform .3s,box-shadow .3s;overflow:hidden}.photo-card:hover{transform:translateY(-10px)scale(1.02);box-shadow:0 15px 35px #0000004d}.photo-card img{object-fit:cover;width:100%;height:280px;display:block}.caption{color:#fff;text-align:center;background:#0003;padding:1rem;font-size:1.1rem;font-weight:500}@keyframes floatUp{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(-120vh)rotate(720deg)}}@keyframes floatCard{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes popUp{0%{opacity:0;transform:scale(0)}80%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes pulseShadow{0%{text-shadow:0 0 5px var(--neon-blue),0 0 15px var(--neon-blue),0 0 30px var(--neon-pink)}to{text-shadow:0 0 10px var(--neon-blue),0 0 25px var(--neon-blue),0 0 40px var(--neon-pink)}}@keyframes wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}@media (max-width:600px){.glass-navbar{padding:.8rem 1rem}.logo{font-size:1.2rem}.nav-links{gap:.5rem;display:flex}.nav-links li a{padding:.4rem .6rem;font-size:.85rem}.timer-container{gap:8px}.time-box{border-radius:12px;flex:1;height:80px}.glow-text{font-size:1.6rem}.time-box label{font-size:.6rem}.gallery-section{padding:4rem .5rem}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:10px}.photo-card img{height:150px}.caption{padding:.5rem;font-size:.8rem}.section-title{margin-bottom:2rem;font-size:2.2rem}.glass-card{margin-top:2rem;padding:2rem 1rem}.main-title{font-size:2.5rem}.subtitle{font-size:.9rem}}.celebrate-btn{color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:1px;background:linear-gradient(45deg,#ff0080,#ff8c00);border:none;border-radius:50px;margin-top:2.5rem;padding:1rem 2.5rem;font-family:Poppins,sans-serif;font-size:1.3rem;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 5px 15px #ff008066}.celebrate-btn:hover{background:linear-gradient(45deg,#ff0080,#ffbf00);transform:scale(1.05)translateY(-3px);box-shadow:0 10px 25px #ff008099}.celebrate-btn:active{transform:scale(.95)}.ceremony-container{background:var(--bg-gradient);flex-direction:column;justify-content:center;align-items:center;width:100vw;min-height:100vh;transition:background 1.5s ease-in-out;display:flex;position:relative;overflow:hidden}.ceremony-container.dark-mode{background:radial-gradient(circle,#222 0%,#000 100%)!important}.z-10{z-index:10;position:relative}.content-center{flex-direction:column;align-items:center;display:flex}.star-container{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.star{opacity:0;background:#fff;border-radius:50%;width:3px;height:3px;animation:2s ease-in-out infinite twinkle;position:absolute}@keyframes twinkle{0%{opacity:.3}to{opacity:1}}.fancy-font{letter-spacing:2px;font-family:Dancing Script,cursive}.big-text{margin-bottom:1rem;font-size:4rem!important}.instruction-text{text-align:center;margin-bottom:2rem;padding:0 1rem;font-family:Poppins,sans-serif;font-size:2.5rem;transition:color 1s}.glow-white{text-shadow:0 0 10px #fffc,0 0 20px #fff6;color:#fff}.glow-orange{color:gold;text-shadow:0 0 15px #ff8c00,0 0 25px #ff4500}.glow-pink{color:#ff69b4;text-shadow:0 0 15px #ff1493,0 0 30px #c71585}.typewriter{white-space:nowrap;border-right:.15em solid orange;max-width:100%;animation:3.5s steps(40,end) typing,.75s step-end infinite blink-caret;overflow:hidden}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink-caret{0%,to{border-color:#0000}50%{border-color:orange}}.hanging-bulb-container{transform-origin:top;flex-direction:column;align-items:center;margin-bottom:1rem;animation:3s ease-in-out infinite alternate swing;display:flex}.wire{background:#ffffffb3;width:2px;height:80px}.bulb{filter:drop-shadow(0 0 20px #ff09);font-size:5rem;line-height:1}@keyframes swing{0%{transform:rotate(3deg)}to{transform:rotate(-3deg)}}.power-btn{color:#ff7675;cursor:pointer;background:#2d3436;border:2px solid #ff7675;border-radius:50px;align-items:center;gap:10px;margin:1rem auto 0;padding:1rem 2rem;font-family:Poppins,sans-serif;font-size:1.2rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 5px 15px #0003}.power-icon{font-size:1.4rem}.power-btn:hover{color:#fff;background:#ff7675;transform:scale(1.05);box-shadow:0 0 20px #ff767599}.match-btn{color:#d7ccc8;cursor:pointer;background:#3e2723;border:2px solid #5d4037;border-radius:5px;align-items:center;gap:10px;padding:1rem 3rem;font-size:1.2rem;transition:transform .1s;display:flex;box-shadow:0 5px 15px #0000004d}.match-btn:active{transform:translate(5px)}.match-head{background:red;border-radius:50%;width:15px;height:15px;box-shadow:0 0 5px red}.music-btn{color:#fff;cursor:pointer;background:linear-gradient(45deg,#1db954,#191414);border:none;border-radius:50px;padding:1rem 2.5rem;font-size:1.3rem;transition:transform .2s;box-shadow:0 5px 15px #1db95466}.music-btn:hover{transform:scale(1.1)rotate(-2deg)}.candles-container{align-items:flex-end;gap:20px;height:100px;margin-bottom:2rem;display:flex}.candle{background:linear-gradient(#fc0,#f90);border-radius:5px;width:20px;height:80px;position:relative;box-shadow:0 0 20px #ffa50080}.flame{background:radial-gradient(#fff,#ff0,orange);border-radius:50% 50% 20% 20%;width:15px;height:30px;animation:.5s infinite alternate flicker;position:absolute;top:-25px;left:50%;transform:translate(-50%);box-shadow:0 0 30px #ffa500cc}@keyframes flicker{0%{opacity:.7;transform:translate(-50%)scale(.9)}to{opacity:1;transform:translate(-50%)scale(1.1)}}.audio-visualizer{align-items:flex-end;gap:5px;height:30px;margin-bottom:20px;display:flex}.bar{background:#00eaff;width:8px;animation:.5s infinite alternate equalize}.bar:nth-child(2n){background:#ff0080;animation-duration:.4s}.bar:nth-child(3n){animation-duration:.6s}@keyframes equalize{0%{height:5px}to{height:30px}}.balloon-container{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;bottom:-100px;left:0}.balloon{border-radius:50%;width:50px;height:60px;animation:6s linear forwards floatUpBalloon;position:absolute;bottom:-100px}.balloon:before{content:"";background:#ffffff80;width:1px;height:20px;position:absolute;bottom:-20px;left:50%}.balloon-0{background:#ff0000b3;box-shadow:inset -5px -5px 10px #0000001a}.balloon-1{background:#00ff00b3;box-shadow:inset -5px -5px 10px #0000001a}.balloon-2{background:#0000ffb3;box-shadow:inset -5px -5px 10px #0000001a}.balloon-3{background:#ffff00b3;box-shadow:inset -5px -5px 10px #0000001a}@keyframes floatUpBalloon{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(-120vh)rotate(20deg)}}.ceremony-btn-secondary{color:#fff;cursor:pointer;background:0 0;border:2px solid #fff;border-radius:20px;margin-top:3rem;padding:.8rem 1.5rem;font-family:Poppins,sans-serif;transition:all .3s}.ceremony-btn-secondary:hover{color:#111;background:#fff}.cake-container-svg{cursor:pointer;justify-content:center;align-items:center;margin:2rem 0;transition:transform .3s;display:flex}.cake-container-svg:hover{transform:scale(1.02)}.flame-anim{transform-origin:50%;filter:drop-shadow(0 0 4px orange);animation:.5s infinite alternate svgFlicker}@keyframes svgFlicker{0%{opacity:1;transform:scale(1)}to{opacity:.8;transform:scale(1.1)}}.cut-instruction{color:#fff;opacity:.9;margin-bottom:.5rem;font-family:Poppins,sans-serif;font-size:1.1rem;animation:2s infinite bounce}.birthday-page:not(.dark) .glass-navbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;border-bottom:1px solid #00000014;box-shadow:0 6px 20px #00000014}.birthday-page:not(.dark) .glass-navbar .logo{color:#111827;letter-spacing:.5px;font-weight:700}.birthday-page:not(.dark) .glass-navbar a{color:#1f2937;font-weight:600;text-decoration:none;transition:color .25s}.birthday-page:not(.dark) .glass-navbar a:hover{color:#4f46e5}.birthday-page:not(.dark) .glass-navbar a:focus,.birthday-page:not(.dark) .glass-navbar a:active{color:#4338ca}.birthday-page{color:#111;background:linear-gradient(135deg,#fff1eb,#ace0f9);width:100%;min-height:100vh;transition:background 1.2s;position:relative;overflow-x:hidden}.birthday-page.dark{color:#fff;background:radial-gradient(circle at top,#0f2027,#000)}.stars{z-index:1;pointer-events:none;position:fixed;inset:0}.stars span{opacity:.3;background:#fff;border-radius:50%;animation:2s infinite alternate twinkle;position:absolute}.hero-section{z-index:3;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative}.glass-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center;background:#ffffff38;border-radius:24px;padding:40px;box-shadow:0 25px 60px #00000059}.glow-text{text-shadow:0 0 20px #fff9}.night-toggle{cursor:pointer;border-radius:999px;width:120px;height:56px;margin:12px auto 0;padding:6px;box-shadow:inset 0 0 10px #0006}.birthday-page.dark .night-toggle{background:linear-gradient(#1c1c1c,#3a3a3a)}.birthday-page:not(.dark) .night-toggle{background:linear-gradient(#dfe6e9,#b2bec3)}.night-knob{background:radial-gradient(circle at top,#3d3d3d,#1c1c1c);border-radius:50%;width:44px;height:44px;position:relative;box-shadow:0 6px 12px #0009}.moon{justify-content:center;align-items:center;font-size:18px;display:flex;position:absolute;inset:0}.tiny-star{background:#fff;border-radius:50%;position:absolute}.s1{width:3px;height:3px;top:6px;right:8px}.s2{width:2px;height:2px;bottom:8px;left:10px}.s3{width:1px;height:1px;top:14px;left:6px}.photo-card{aspect-ratio:1;border-radius:20px;width:100%;position:relative;overflow:hidden}.photo-card img{object-fit:cover;width:100%;height:100%}.music-section{text-align:center;z-index:3;padding:40px 20px 80px;position:relative}@media (max-width:640px){.gallery-section{padding-bottom:24px}.music-section{padding-top:24px}}.music-card{color:#fff;background:#8a8a81;border-radius:24px;width:280px;margin:auto;padding:28px;transition:all .4s;box-shadow:0 25px 50px #0006}.album-art{object-fit:cover;border-radius:50%;width:120px;height:120px;margin-bottom:16px;box-shadow:0 12px 30px #00000059}.controls{justify-content:center;gap:20px;margin:16px 0;display:flex}.controls button{cursor:pointer;background:#fff;border:none;border-radius:50%;width:48px;height:48px;font-size:18px}.seek-bar{width:100%;margin:12px 0}.mini-player{z-index:999;border-radius:18px;align-items:center;gap:14px;width:94%;max-width:520px;height:72px;padding:12px 16px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.album-art.small{width:48px;height:48px;margin:0}.spin{animation:10s linear infinite spin}.track-info{flex:1;font-size:14px}.mini-player .controls,.mini-player .seek-bar,.mini-player .volume{display:none}.gallery-section{z-index:3;padding:64px 20px 40px;position:relative}.section-title{text-align:center;margin-bottom:40px}.gallery-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.photo-card{border-radius:20px;overflow:hidden}.birthday-page:not(.dark){color:#1f2937}.birthday-page:not(.dark) p{color:#374151}.birthday-page:not(.dark) .glow-text{text-shadow:none;color:#111827}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cake-wrap{cursor:pointer;text-align:center;width:220px;margin:40px auto 20px;position:relative}.cake-base{position:relative}.cake-layer{border-radius:20px;width:220px;height:40px;margin:0 auto}.cake-layer.top{background:linear-gradient(135deg,#ffd6e0,#ff9aa2)}.cake-layer.middle{background:linear-gradient(135deg,#ffeaa7,#fdcb6e);margin-top:-8px}.cake-layer.bottom{background:linear-gradient(135deg,#fab1a0,#e17055);margin-top:-8px}.candles{justify-content:center;gap:20px;width:100%;display:flex;position:absolute;top:-28px}.candle{background:#fff;border-radius:3px;width:6px;height:22px;position:relative}.flame{background:radial-gradient(circle,#ffd166,#ff9f1c);border-radius:50%;width:8px;height:8px;animation:.8s infinite alternate flicker;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.cake-slice{pointer-events:none;position:absolute;top:0;left:0}.real-cake-wrapper{text-align:center;cursor:pointer;margin:40px auto 20px}.real-cake{background:linear-gradient(145deg,#d9a066,#b87a3d);border-radius:50%;width:220px;height:220px;margin:auto;position:relative;overflow:hidden;box-shadow:0 20px 40px #00000040,inset 0 -18px #0000001f}.cake-icing{background:radial-gradient(circle at top,#fff6e5 0%,#f3d2b3 60%,#e2b08a 100%);border-radius:50%;position:absolute;inset:0}.glow{animation:2.5s ease-in-out infinite cakeGlow}@keyframes cakeGlow{0%{box-shadow:0 20px 40px #00000040,0 0 #ffd2a000}50%{box-shadow:0 20px 40px #00000040,0 0 28px #ffd2a099}to{box-shadow:0 20px 40px #00000040,0 0 #ffd2a000}}.cake-slice-gap{background:conic-gradient(#0000 0deg 35deg,#0000002e 35deg 55deg,#0000 55deg);position:absolute;inset:0;transform:rotate(-20deg)}.cake-slice-real{pointer-events:none;background:linear-gradient(145deg,#d9a066,#b87a3d);border-radius:0 0 60px;width:110px;height:110px;position:absolute;top:calc(50% - 55px);left:calc(50% - 20px);overflow:hidden;box-shadow:0 16px 30px #00000040,inset 0 -10px #0000001f}.cake-slice-real .cake-icing{background:radial-gradient(circle at top,#fff6e5,#f3d2b3)}.cake-hint{opacity:.85;margin-top:14px;font-size:14px}.wish-card{max-width:420px;position:relative;overflow:hidden}.wish-decor{pointer-events:none;opacity:.7;background-image:radial-gradient(circle at 20% 30%,#ffffff40 2px,#0000 3px),radial-gradient(circle at 80% 40%,#ffffff2e 2px,#0000 3px),radial-gradient(circle at 50% 80%,#fff3 2px,#0000 3px);position:absolute;inset:0}.wish-title{margin-bottom:12px;font-size:28px}.wish-divider{background:linear-gradient(90deg,#f472b6,#facc15,#60a5fa);border-radius:999px;width:80px;height:4px;margin:14px auto 18px}.wish-text{opacity:.9;margin-bottom:20px;font-size:15px;line-height:1.6}.birthday-page:not(.dark) .wish-card{background:#ffffff8c}.birthday-page:not(.dark) .wish-text{color:#374151}.birthday-page.dark .wish-card{background:#ffffff1f}
