@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Dancing+Script:wght@400;700&family=Poppins:wght@300;400;500&display=swap";body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#root{width:100%}:root{--primary:#e91e63;--primary-light:#f48fb1;--secondary:#9c27b0;--accent:#ff6f91;--gold:gold;--cream:#fff5f8;--dark:#2d1b33}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--dark);font-family:Poppins,sans-serif;overflow-x:hidden}.particles{pointer-events:none;z-index:1;width:100%;height:100%;position:fixed;top:0;left:0}.particle{opacity:0;border-radius:50%;animation:linear infinite float;position:absolute}@keyframes float{0%{opacity:0;transform:translateY(100vh)rotate(0)}10%{opacity:.8}90%{opacity:.8}to{opacity:0;transform:translateY(-10vh)rotate(720deg)}}.navbar{-webkit-backdrop-filter:blur(12px);z-index:1000;background:#fff5f8d9;border-bottom:1px solid #0000;justify-content:center;gap:.5rem;width:100%;padding:1rem 2rem;transition:all .3s;display:flex;position:fixed;top:0}.navbar.scrolled{background:#fff5f8f7;border-bottom:1px solid #e91e631a;padding:.7rem 2rem;box-shadow:0 2px 20px #e91e6314}.navbar button{color:var(--dark);cursor:pointer;background:0 0;border:none;padding:.5rem 1.2rem;font-family:Poppins,sans-serif;font-size:.95rem;font-weight:500;transition:color .3s;position:relative}.navbar button:after{content:"";background:linear-gradient(90deg, var(--primary), var(--secondary));width:0;height:2px;transition:all .3s;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.navbar button:hover{color:var(--primary)}.navbar button:hover:after{width:80%}.hero{text-align:center;background:linear-gradient(135deg,#fce4ec 0%,#f3e5f5 50%,#e8eaf6 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(circle,#e91e6314 0%,#0000 70%);width:150%;height:150%;animation:4s ease-in-out infinite pulse;position:absolute}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.hero-content{z-index:2;opacity:0;transition:all 1s cubic-bezier(.25,.46,.45,.94);position:relative;transform:translateY(40px)}.hero-content.visible{opacity:1;transform:translateY(0)}.hero-title{background:linear-gradient(135deg, var(--primary), var(--secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem;font-family:Playfair Display,serif;font-size:5rem;font-weight:700}.hero-subtitle{color:var(--accent);font-family:Dancing Script,cursive;font-size:2.5rem}.hero-date{color:#666;letter-spacing:3px;margin-top:1rem;font-size:1.2rem}.hero-date-secondary{color:var(--accent);letter-spacing:1px;font-family:Dancing Script,cursive;font-size:1.4rem}.scroll-indicator{z-index:2;animation:2s infinite bounce;position:absolute;bottom:2rem}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-20px)}60%{transform:translateY(-10px)}}.section-title{text-align:center;background:linear-gradient(135deg, var(--primary), var(--secondary));-webkit-text-fill-color:transparent;opacity:0;-webkit-background-clip:text;background-clip:text;margin-bottom:3rem;font-family:Playfair Display,serif;font-size:3rem;transition:all .8s cubic-bezier(.25,.46,.45,.94);transform:translateY(30px)}.section-title.visible{opacity:1;transform:translateY(0)}.countdown{background:linear-gradient(135deg, var(--dark) 0%, #4a1942 100%);color:#fff;text-align:center;padding:6rem 2rem}.countdown .section-title{background:linear-gradient(135deg, var(--gold), #fff);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.countdown-container{flex-wrap:wrap;justify-content:center;gap:2rem;margin-top:2rem;display:flex}.countdown-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;min-width:130px;padding:2rem;transition:transform .3s,box-shadow .3s}.countdown-item:hover{transform:translateY(-10px);box-shadow:0 20px 40px #e91e634d}.countdown-item .number{color:var(--gold);font-family:Playfair Display,serif;font-size:3.5rem;font-weight:700;display:block}.countdown-item .label{text-transform:uppercase;letter-spacing:2px;opacity:.8;font-size:.9rem}.birthday-today{text-align:center;animation:.8s ease-out fadeInScale}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.birthday-emoji{margin-bottom:1rem;font-size:5rem;animation:1s ease-in-out infinite alternate pulse-emoji;display:block}@keyframes pulse-emoji{0%{transform:scale(1)}to{transform:scale(1.15)}}.birthday-message{color:var(--gold);margin-bottom:.5rem;font-family:Dancing Script,cursive;font-size:2.5rem}.birthday-sub{opacity:.7;letter-spacing:1px;font-size:1.1rem}.wishes{background:linear-gradient(135deg,#fff5f8 0%,#fce4ec 100%);padding:6rem 2rem}.wishes-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:1200px;margin:0 auto;display:grid}.wish-card{opacity:0;background:#fff;border-radius:20px;padding:2rem;transition:all .5s cubic-bezier(.25,.46,.45,.94);transform:translateY(50px)scale(.9);box-shadow:0 10px 40px #e91e6314}.wish-card.visible{opacity:1;transform:translateY(0)scale(1)}.wish-card:hover{transform:translateY(-15px)scale(1.02);box-shadow:0 25px 60px #e91e632e}.wish-card .icon{margin-bottom:1rem;font-size:3rem}.wish-card h3{color:var(--primary);margin-bottom:.5rem;font-family:Playfair Display,serif;font-size:1.5rem}.wish-card p{color:#666;line-height:1.7}.gallery{background:linear-gradient(135deg,#f3e5f5 0%,#e8eaf6 100%);padding:6rem 2rem}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;max-width:1200px;margin:0 auto;display:grid}.gallery-item{cursor:pointer;opacity:0;border-radius:20px;transition:all .6s cubic-bezier(.25,.46,.45,.94);position:relative;overflow:hidden;transform:scale(.8)}.gallery-item.visible{opacity:1;transform:scale(1)}.gallery-item img{object-fit:cover;aspect-ratio:1;width:100%;height:100%;transition:transform .5s;display:block}.gallery-item:hover img{transform:scale(1.1)}.gallery-item:after{content:"";opacity:0;background:linear-gradient(45deg,#e91e6333,#9c27b033);transition:opacity .3s;position:absolute;inset:0}.gallery-item:hover:after{opacity:1}.videos-section{background:linear-gradient(135deg,#fce4ec 0%,#f3e5f5 100%);padding:6rem 2rem}.videos-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;max-width:1200px;margin:0 auto;display:grid}.video-card{opacity:0;background:#fff;border-radius:20px;transition:all .6s cubic-bezier(.25,.46,.45,.94);overflow:hidden;transform:translateY(40px)scale(.95);box-shadow:0 10px 40px #e91e631a}.video-card.visible{opacity:1;transform:translateY(0)scale(1)}.video-card:hover{transform:translateY(-10px)scale(1.02);box-shadow:0 20px 50px #e91e6333}.video-wrapper{aspect-ratio:1;background:#1a1a2e;width:100%;position:relative;overflow:hidden}.video-wrapper video{object-fit:cover;width:100%;height:100%;display:block}.video-wrapper video:fullscreen{object-fit:contain}.video-modal-overlay{z-index:9999;background:#000000e6;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.video-modal{background:#000;border-radius:16px;width:90%;max-width:900px;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000080}.video-modal video{outline:none;width:100%;height:auto;display:block}.video-modal-close{color:#fff;cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:2rem;transition:color .3s;position:absolute;top:-40px;right:0}.video-modal-close:hover{color:var(--primary)}.video-title{color:var(--primary);text-align:center;padding:1rem 1.5rem;font-family:Playfair Display,serif;font-size:1.2rem}.playlist-section{text-align:center;background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);padding:6rem 2rem}.playlist-section .section-title{background:linear-gradient(135deg, var(--gold), #fff, var(--primary-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text}.playlist-subtitle{color:#ffffffb3;opacity:0;margin-bottom:2rem;font-family:Dancing Script,cursive;font-size:1.5rem;transition:all .8s ease-out .3s;transform:translateY(20px)}.playlist-subtitle.visible{opacity:1;transform:translateY(0)}.playlist-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;max-width:900px;margin:0 auto;display:grid}.playlist-label{color:#ffffffd9;margin-bottom:1rem;font-family:Playfair Display,serif;font-size:1.2rem}.playlist-embed{opacity:0;border-radius:20px;max-width:700px;margin:0 auto;transition:all .8s cubic-bezier(.25,.46,.45,.94) .5s;overflow:hidden;transform:translateY(30px)scale(.95);box-shadow:0 20px 60px #0006}.playlist-embed.visible{opacity:1;transform:translateY(0)scale(1)}.playlist-embed iframe{border:none;display:block}.timeline-section{background:linear-gradient(135deg,#fce4ec 0%,#fff5f8 100%);padding:6rem 2rem}.timeline{max-width:800px;margin:0 auto;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--primary), var(--secondary));width:3px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{opacity:0;justify-content:flex-end;margin-bottom:3rem;padding-right:calc(50% + 30px);transition:all .8s cubic-bezier(.25,.46,.45,.94);display:flex;position:relative;transform:translate(-50px)}.timeline-item.even{justify-content:flex-start;padding-left:calc(50% + 30px);padding-right:0;transform:translate(50px)}.timeline-item.visible{opacity:1;transform:translate(0)}.timeline-item:before{content:"";background:var(--primary);width:20px;height:20px;box-shadow:0 0 0 4px var(--primary);border:4px solid #fff;border-radius:50%;position:absolute;top:20px;left:50%;transform:translate(-50%)}.timeline-content{background:#fff;border-radius:15px;max-width:300px;padding:1.5rem;transition:transform .3s,box-shadow .3s;box-shadow:0 10px 30px #e91e631a}.timeline-content:hover{transform:translateY(-5px);box-shadow:0 15px 40px #e91e6326}.timeline-content .year{color:var(--primary);margin-bottom:.5rem;font-family:Playfair Display,serif;font-size:1.5rem}.timeline-content p{color:#666;font-size:.95rem;line-height:1.6}.book-section{text-align:center;background:linear-gradient(135deg,#fff5f8 0%,#fce4ec 100%);padding:6rem 2rem}.book-container{opacity:0;max-width:600px;margin:0 auto;transition:all .8s cubic-bezier(.25,.46,.45,.94) .3s;transform:translateY(30px)}.book-container.visible{opacity:1;transform:translateY(0)}.book{border-radius:20px;transition:transform .4s;overflow:hidden;box-shadow:0 20px 60px #e91e6333}.book.flipping{transform:scale(.95)}.book-page{color:#fff;flex-direction:column;justify-content:center;align-items:center;min-height:350px;padding:3rem 2.5rem;transition:background .4s;display:flex}.book-emoji{margin-bottom:1.5rem;font-size:4rem}.book-message{max-width:450px;font-family:Playfair Display,serif;font-size:1.4rem;line-height:1.7}.book-page-num{opacity:.6;letter-spacing:2px;margin-top:2rem;font-size:.85rem}.book-nav{justify-content:center;align-items:center;gap:1.5rem;margin-top:1.5rem;display:flex}.book-nav-btn{border:2px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;border-radius:50px;padding:.6rem 1.5rem;font-family:Poppins,sans-serif;font-size:.9rem;font-weight:500;transition:all .3s}.book-nav-btn:hover:not(:disabled){background:var(--primary);color:#fff}.book-nav-btn:disabled{opacity:.3;cursor:not-allowed}.book-dots{gap:.5rem;display:flex}.book-dot{border:2px solid var(--primary);cursor:pointer;background:0 0;border-radius:50%;width:12px;height:12px;padding:0;transition:all .3s}.book-dot.active{background:var(--primary);transform:scale(1.2)}.timeline-media{border-radius:12px;margin-top:1rem;overflow:hidden}.timeline-media img,.timeline-media video{border-radius:12px;width:100%;height:auto;display:block}.timeline-media-2{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.cake-section{text-align:center;background:linear-gradient(135deg,#fff5f8 0%,#fce4ec 100%);padding:6rem 2rem}.cake-container{margin-top:2rem;display:inline-block;position:relative}.cake{width:200px;height:280px;position:relative}.cake-layer{border-radius:20px 20px 10px 10px;transition:all .5s;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.cake-layer.layer-1{background:linear-gradient(#f48fb1 0%,#e91e63 100%);width:200px;height:80px}.cake-layer.layer-2{background:linear-gradient(#ce93d8 0%,#9c27b0 100%);width:160px;height:70px;bottom:75px}.cake-layer.layer-3{background:linear-gradient(#f48fb1 0%,#e91e63 100%);width:120px;height:60px;bottom:140px}.candles{gap:15px;display:flex;position:absolute;bottom:195px;left:50%;transform:translate(-50%)}.candle{background:linear-gradient(#fff 0%,#ffe0b2 100%);border-radius:4px 4px 0 0;width:8px;height:40px;position:relative}.flame{background:linear-gradient(#fff 0%,#ffd54f 50%,#ff9800 100%);border-radius:50%/60% 60% 40% 40%;width:12px;height:20px;transition:opacity .5s,transform .5s;animation:.3s ease-in-out infinite alternate flicker;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.flame.blown{opacity:0;transform:translate(-50%)scale(0)}@keyframes flicker{0%{transform:translate(-50%)scale(1)rotate(-2deg)}to{transform:translate(-50%)scale(1.1)rotate(2deg)}}.cake-buttons{margin-top:2rem}.blow-btn{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;cursor:pointer;border:none;border-radius:50px;padding:1rem 3rem;font-family:Poppins,sans-serif;font-size:1.2rem;font-weight:500;transition:all .3s;box-shadow:0 10px 30px #e91e634d}.blow-btn:hover{transform:translateY(-5px);box-shadow:0 20px 50px #e91e6366}.reset-btn{background:linear-gradient(135deg, var(--secondary), #7b1fa2)}.message{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:80vh;padding:6rem 2rem;display:flex}.message .section-title{background:linear-gradient(135deg, white, var(--gold));-webkit-text-fill-color:transparent;-webkit-background-clip:text}.message-text{opacity:0;max-width:800px;font-family:Dancing Script,cursive;font-size:2.5rem;line-height:1.6;transition:all 1s cubic-bezier(.25,.46,.45,.94) .3s;transform:scale(.9)}.message-text.visible{opacity:1;transform:scale(1)}.signature{opacity:0;margin-top:2rem;font-family:Dancing Script,cursive;font-size:1.8rem;transition:opacity 1s .8s}.signature.visible{opacity:1}.message-divider{color:var(--gold);opacity:0;margin:2rem 0;font-size:1.5rem;transition:opacity 1s .6s}.message-divider.visible{opacity:1}.message-prayer{opacity:0;max-width:700px;transition:all 1s .8s;transform:translateY(20px)}.message-prayer.visible{opacity:1;transform:translateY(0)}.prayer-title{color:var(--gold);margin-bottom:1rem;font-family:Playfair Display,serif;font-size:1.5rem}.prayer-text{opacity:.9;font-size:1.1rem;font-style:italic;line-height:1.8}.message-verse{opacity:0;max-width:650px;transition:all 1s 1s;transform:translateY(20px)}.message-verse.visible{opacity:1;transform:translateY(0)}.verse-text{color:var(--gold);font-family:Playfair Display,serif;font-size:1.3rem;font-style:italic;line-height:1.7}.verse-ref{opacity:.7;letter-spacing:1px;margin-top:1rem;font-size:1rem}.footer{background:var(--dark);color:#fff;text-align:center;padding:3rem 2rem}.footer p{opacity:.8;font-family:Dancing Script,cursive;font-size:1.5rem}@media (width<=768px){.hero-title{font-size:3rem}.hero-subtitle{font-size:1.8rem}.navbar{flex-wrap:wrap;gap:.25rem;padding:.8rem 1rem}.navbar button{padding:.4rem .8rem;font-size:.8rem}.section-title{font-size:2.2rem}.countdown-item{min-width:100px;padding:1.5rem}.countdown-item .number{font-size:2.5rem}.message-text{font-size:1.8rem}.timeline:before{left:20px}.timeline-item,.timeline-item.even{justify-content:flex-start;padding-left:50px;padding-right:0}.timeline-item:before{left:20px}.wishes-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.hero-title{font-size:2.2rem}.hero-subtitle{font-size:1.4rem}.gallery-grid{grid-template-columns:1fr}}
