@import"https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;font-family:Poppins,sans-serif}#root{height:100%;width:100%}.app{position:relative;width:100vw;height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}.countdown-container{position:relative;z-index:10;text-align:center;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.3);max-width:90vw}.countdown-title{font-size:clamp(2rem,6vw,4rem);font-weight:700;margin-bottom:.5rem;background:linear-gradient(45deg,#fff,#f8f9fa,#fff);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 3s ease-in-out infinite}.countdown-subtitle{font-size:clamp(.9rem,3vw,1.5rem);font-weight:400;margin-bottom:3rem;opacity:.9}.countdown-grid{display:flex;justify-content:center;align-items:center;gap:clamp(.5rem,3vw,2rem);flex-wrap:wrap;margin-bottom:2rem}.countdown-item{display:flex;flex-direction:column;align-items:center;background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;padding:clamp(1rem,4vw,2rem);min-width:clamp(80px,12vw,120px);border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0000001a;transition:all .3s ease;cursor:pointer}.countdown-item:hover{transform:translateY(-5px) scale(1.05);box-shadow:0 12px 40px #8b5cf64d;background:rgba(139,92,246,.15);border-color:#8b5cf666}.countdown-number{font-size:clamp(2rem,8vw,4rem);font-weight:700;line-height:1;background:linear-gradient(45deg,#fff,#f8f9fa);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:pulse 2s ease-in-out infinite}.countdown-label{font-size:clamp(.8rem,2.5vw,1.2rem);font-weight:500;margin-top:.5rem;opacity:.8;text-transform:uppercase;letter-spacing:1px}.countdown-separator{font-size:clamp(1.5rem,6vw,3rem);font-weight:300;opacity:.6;animation:blink 2s ease-in-out infinite}.countdown-message{font-size:clamp(1rem,3vw,1.3rem);font-weight:500;opacity:.9;margin-top:2rem}.countdown-message p{margin:0;animation:float-message 4s ease-in-out infinite}.expired{animation:celebration 1s ease-in-out infinite}@keyframes shimmer{0%,to{opacity:1}50%{opacity:.8}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes blink{0%,to{opacity:.6}50%{opacity:.2}}@keyframes float-message{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes celebration{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.05) rotate(1deg)}75%{transform:scale(1.05) rotate(-1deg)}}.background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;overflow:hidden}.gradient-bg{position:absolute;top:-50px;left:-50px;width:calc(100% + 100px);height:calc(100% + 100px);background:linear-gradient(135deg,#1e1b4b 0%,#312e81 25%,#6366f1 50%,#8b5cf6 75%,#a855f7 100%);background-size:400% 400%;animation:gradientShift 15s ease infinite}.cursor-glow{position:fixed;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.4) 0%,rgba(99,102,241,.2) 30%,rgba(168,85,247,.1) 60%,transparent 100%);pointer-events:none;z-index:5;transform:translate(-50%,-50%);transition:opacity .3s ease;mix-blend-mode:screen}.mouse-wave{position:fixed;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,transparent 0%,rgba(255,255,255,.1) 50%,rgba(139,92,246,.2) 70%,transparent 100%);pointer-events:none;z-index:4;animation:ripple 2s ease-out infinite;transition:opacity .2s ease}@keyframes ripple{0%{transform:scale(.8);opacity:.8}to{transform:scale(2);opacity:0}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.particles{position:absolute;width:100%;height:100%}.particle{position:absolute;width:4px;height:4px;background:rgba(255,255,255,.8);border-radius:50%;animation:float linear infinite,gentleRotate 15s infinite linear;transition:transform .1s ease-out,box-shadow .2s ease}.particle:hover{box-shadow:0 0 10px #8b5cf6cc;transform:scale(1.5)}.particle:nth-child(2n){width:6px;height:6px;background:rgba(255,255,255,.6);animation-duration:8s,20s}.particle:nth-child(3n){width:3px;height:3px;background:rgba(255,255,255,.9);animation-duration:12s,25s}@keyframes float{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100px) scale(1);opacity:0}}@keyframes gentleRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.clouds{position:absolute;width:100%;height:100%}.cloud{position:absolute;width:60px;height:60px;background:rgba(255,255,255,.1);border-radius:50px;opacity:.7;animation:drift linear infinite}.cloud:before{content:"";position:absolute;top:-25px;left:10px;width:50px;height:50px;background:rgba(255,255,255,.1);border-radius:50px;transform:rotate(0)}.cloud:after{content:"";position:absolute;top:-25px;right:10px;width:40px;height:40px;background:rgba(255,255,255,.1);border-radius:50px;transform:rotate(0)}@keyframes drift{0%{transform:translate(-100px)}to{transform:translate(calc(100vw + 100px))}}@media (max-width: 768px){.app{padding:20px}.countdown-grid{gap:clamp(.3rem,2vw,1rem)}.countdown-item{padding:clamp(.8rem,3vw,1.5rem);min-width:clamp(70px,15vw,100px)}.countdown-separator{display:none}.cloud{width:40px;height:40px}.cloud:before{width:35px;height:35px;top:-18px}.cloud:after{width:25px;height:25px;top:-18px}.cursor-glow,.mouse-wave{display:none}.countdown-item:active{transform:scale(.95)}}@media (max-width: 480px){.countdown-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:300px;margin:0 auto}.countdown-separator{display:none}}.password-screen{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:15;color:#fff}.password-container{text-align:center;background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:30px;padding:2.5rem 2rem;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0000004d;max-width:420px;width:90%;display:flex;flex-direction:column;align-items:center}.password-title{font-size:4rem;margin-bottom:1rem;animation:bounce 2s ease-in-out infinite}.password-subtitle{font-size:1.5rem;font-weight:500;margin-bottom:2rem;opacity:.9}.password-display{display:flex;justify-content:center;gap:1rem;margin-bottom:2rem;transition:all .3s ease}.password-display.shake{animation:shake .5s ease-in-out}.password-dot{font-size:2rem;width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.1);border:2px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;transition:all .3s ease}.password-dot.filled{background:rgba(139,92,246,.3);border-color:#8b5cf6cc;color:#fff;transform:scale(1.1)}.password-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem auto;max-width:240px;justify-items:center}.password-key{width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:1.2rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center}.password-key:hover{background:rgba(139,92,246,.3);border-color:#8b5cf6cc;transform:scale(1.1)}.password-key.special{background:rgba(255,193,7,.2);border-color:#ffc10780}.password-key.special:hover{background:rgba(255,193,7,.4);border-color:#ffc107cc}.password-hint{background:rgba(255,193,7,.08);border:1px solid rgba(255,193,7,.2);border-radius:15px;padding:1rem;margin:1.5rem auto 1rem;max-width:280px;text-align:center}.password-hint p{margin:0;font-style:italic;font-size:.95rem;color:gold;opacity:.9}.password-clear{background:rgba(220,53,69,.2);border:1px solid rgba(220,53,69,.5);color:#fff;padding:.8rem 2rem;border-radius:25px;cursor:pointer;font-size:1rem;transition:all .3s ease}.password-clear:hover{background:rgba(220,53,69,.4);border-color:#dc3545cc;transform:translateY(-2px)}.birthday-screen{position:fixed;top:0;left:0;width:100%;height:100vh;display:flex;justify-content:center;align-items:flex-start;overflow-y:auto;padding:2rem 1rem;z-index:15;color:#fff}.birthday-content{text-align:center;max-width:800px;width:90%;margin:0 auto;background:rgba(255,255,255,.05);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:30px;padding:3rem 2rem;border:1px solid rgba(255,255,255,.2);box-shadow:0 8px 32px #0000004d;min-height:fit-content}.birthday-title{font-size:clamp(2rem,6vw,4rem);font-weight:700;margin-bottom:1rem;background:linear-gradient(45deg,#ff6b6b,#4ecdc4,#45b7d1,#96ceb4,#feca57,#ff9ff3);background-size:300% 300%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:rainbow 3s ease-in-out infinite}.birthday-decorations{display:flex;justify-content:center;gap:2rem;margin-bottom:3rem}.decoration{font-size:3rem}.poem-section{margin-bottom:3rem;animation:fadeInUp 1s ease}.poem-title{font-size:2rem;font-weight:600;margin-bottom:2rem;color:gold}.poem-content{font-size:1.2rem;line-height:1.8;max-width:600px;margin:0 auto}.poem-line{margin:.5rem 0;opacity:0;animation:fadeInLine .8s ease forwards}.poem-stanza-break{height:1.5rem;margin:1rem 0}.poem-dedication{text-align:right;font-style:italic;font-size:1rem;color:gold;margin-top:2rem;opacity:0;animation:fadeInLine .8s ease forwards;animation-delay:2s}.letter-section{animation:fadeInUp 1s ease}.letter-title{font-size:2rem;font-weight:600;margin-bottom:2rem;color:#ff9ff3}.letter-container{background:rgba(255,255,255,.1);border-radius:20px;padding:2rem;border:1px solid rgba(255,255,255,.2)}.letter-paper{background:rgba(255,255,255,.95);border-radius:15px;padding:2rem;margin:1rem 0;box-shadow:0 4px 20px #0003;border:1px solid rgba(255,255,255,.8);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.letter-content{color:#333;font-size:1rem;font-family:Poppins,sans-serif;line-height:1.6;text-align:left}.letter-paragraph{margin-bottom:1rem;color:#444}.letter-paragraph:last-child{margin-bottom:0;text-align:right;font-weight:600;color:#e91e63}.letter-footer{text-align:right;font-style:italic;color:#ff9ff3;font-size:1.1rem}.music-control{position:fixed;bottom:30px;right:30px;width:60px;height:60px;border-radius:50%;background:rgba(255,255,255,.1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:1.5rem;cursor:pointer;transition:all .3s ease;z-index:25;display:flex;align-items:center;justify-content:center}.music-control:hover{background:rgba(139,92,246,.3);border-color:#8b5cf6cc;transform:scale(1.1)}.audio-notice{position:fixed;bottom:100px;right:30px;background:rgba(255,193,7,.9);color:#000;padding:1rem;border-radius:10px;max-width:300px;font-size:.9rem;z-index:26;animation:fadeIn .5s ease;border:1px solid rgba(255,193,7,1)}.audio-notice p{margin:0;font-weight:500}.celebration-text{animation:celebration-glow 2s ease-in-out infinite}.test-button{position:fixed;top:20px;right:20px;background:rgba(255,193,7,.9);color:#000;border:1px solid rgba(255,193,7,1);padding:.8rem 1.5rem;border-radius:25px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .3s ease;z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.test-button:hover{background:rgba(255,193,7,1);transform:scale(1.05);box-shadow:0 4px 15px #ffc10766}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLine{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes rainbow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes celebration-glow{0%,to{text-shadow:0 0 20px rgba(255,255,255,.8),0 0 40px rgba(139,92,246,.6),0 0 60px rgba(139,92,246,.4)}50%{text-shadow:0 0 30px rgba(255,255,255,1),0 0 60px rgba(139,92,246,.8),0 0 90px rgba(139,92,246,.6)}}@media (max-width: 768px){.password-container{padding:2rem 1.5rem;max-width:350px}.password-keypad{gap:.8rem;max-width:200px}.password-key{width:50px;height:50px;font-size:1rem}.birthday-content{padding:2rem 1.5rem;width:95%;max-width:none}.birthday-decorations{gap:1rem}.decoration{font-size:2rem}.poem-title{font-size:1.5rem;margin-bottom:1.5rem}.poem-content{font-size:1rem;line-height:1.6;max-width:95%}.poem-dedication{font-size:.9rem;margin-top:1.5rem}.letter-title{font-size:1.5rem;margin-bottom:1.5rem}.letter-paper{padding:1.5rem;margin:.5rem 0;border-radius:10px}.letter-content{font-size:.9rem}.test-button{top:10px;right:10px;padding:.6rem 1rem;font-size:.8rem}.music-control{width:50px;height:50px;bottom:20px;right:20px;font-size:1.2rem}}@media (max-width: 480px){.birthday-content{padding:1.5rem 1rem;width:98%;max-width:none;margin:0}.poem-title{font-size:1.2rem;margin-bottom:1rem}.poem-content{font-size:.9rem;line-height:1.5;max-width:100%}.poem-dedication{font-size:.8rem;margin-top:1rem}.letter-title{font-size:1.2rem;margin-bottom:1rem}.letter-paper{padding:1rem;margin:0;border-radius:8px}.letter-content{font-size:.8rem;line-height:1.5}.decoration{font-size:1.5rem}}
