*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Poppins,sans-serif;color:#4b3340;background:#fff8fb;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;z-index:-4;background:radial-gradient(circle at 10% 20%,#f9dce8 0,transparent 30%),radial-gradient(circle at 90% 10%,#e9def8 0,transparent 30%),linear-gradient(135deg,#fff8fb,#fdf4fa 45%,#f8f0fc);animation:bgmove 14s ease-in-out infinite alternate}@keyframes bgmove{to{filter:hue-rotate(8deg);transform:scale(1.03)}}a{text-decoration:none;color:inherit}button{font:inherit;border:0;cursor:pointer}.landing{position:fixed;inset:0;z-index:50;display:grid;place-items:center;text-align:center;padding:25px;background:radial-gradient(circle at center,#fff7fb 0,#f5e6f4 100%);transition:opacity 1s,visibility 1s}.landing.hidden{opacity:0;visibility:hidden;pointer-events:none}.landing-glow{position:absolute;width:380px;height:380px;background:#efb7d0;filter:blur(80px);opacity:.25}.hero-heart{font:100px/1 Great Vibes;color:#d9759e;text-shadow:0 0 30px #efabc9;animation:float 3s ease-in-out infinite}.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.2em;color:#b46888;font-weight:600}.landing h1{font:clamp(3rem,8vw,6rem) "Playfair Display",serif;margin:12px 0;color:#563746}.landing h1 .red{font-family:Poppins;font-size:.6em}.landing-subtitle{font:1.25rem "Dancing Script";margin:8px 0 30px}.primary-btn,.outline-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 25px;border-radius:999px;background:linear-gradient(135deg,#c96893,#a95786);color:white;box-shadow:0 10px 30px #c66e9638;transition:.3s}.primary-btn:hover,.outline-btn:hover{transform:translateY(-3px);box-shadow:0 16px 35px #b45d8d55}.tiny-note{font-size:.7rem;opacity:.55;margin-top:16px}.site-header{position:fixed;z-index:20;top:18px;left:50%;transform:translateX(-50%);width:min(1120px,calc(100% - 28px));padding:11px 16px;border:1px solid #ffffff99;border-radius:20px;background:#ffffff6e;backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:space-between;box-shadow:0 8px 35px #70435b12}.logo{font:26px "Dancing Script";color:#9d5678}.logo span{font-family:Poppins}.site-header nav{display:flex;gap:4px}.site-header nav a{padding:8px 10px;border-radius:12px;font-size:.76rem}.site-header nav a:hover{background:#fff}.menu-btn{display:none;background:none;font-size:25px;color:#8c536d}.section{min-height:100vh;padding:130px max(22px,5vw) 90px;position:relative}.home-section{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:7vw}.hero-copy{max-width:680px}.pill{display:inline-block;padding:8px 13px;border-radius:30px;background:#ffffff82;border:1px solid #fff;margin-bottom:20px;font-size:.75rem;color:#a45a7c}.home-section h2{font:clamp(2.5rem,6vw,5.4rem)/1.06 "Playfair Display";font-weight:500;color:#533542}.home-section h2 em,.section-heading h2 em{font-family:"Great Vibes";font-weight:400;color:#b85d85}.home-section p{max-width:560px;margin:20px 0 28px;line-height:1.8;color:#775d68}.outline-btn{background:#fff8;border:1px solid #fff;color:#9a5277}.glass{background:#ffffff65;border:1px solid #ffffffa8;backdrop-filter:blur(18px);box-shadow:0 20px 60px #7a466015}.floating-card{width:280px;padding:32px;border-radius:28px;transform:rotate(4deg);animation:float 4s ease-in-out infinite}.floating-card p{font:1.3rem/1.5 "Dancing Script";margin:15px 0}.card-heart{font-size:40px;color:#c96c93}.center-section{display:flex;flex-direction:column;align-items:center;justify-content:center}.section-heading{max-width:800px}.section-heading.center,.center{text-align:center;margin-left:auto;margin-right:auto}.section-heading h2{font:clamp(2.1rem,5vw,4rem)/1.15 "Playfair Display";margin:8px 0 15px;color:#573845}.section-heading p{color:#826c76;font-size:.9rem}.countdown{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:45px;padding:30px 38px;border-radius:32px}.countdown div{text-align:center;min-width:100px}.countdown strong{display:block;font:clamp(2.2rem,5vw,4rem) "Playfair Display";color:#a6537a}.countdown span{font-size:.63rem;letter-spacing:.15em;color:#8f7480}.countdown i{font-style:normal;font-size:2rem;color:#d08ba9}.birthday-mode{text-align:center;margin-top:30px}.birthday-mode h2{font:clamp(2rem,5vw,4rem) "Great Vibes";color:#b7557e;text-shadow:0 0 20px #eab0c8}.birthday-mode p{margin-top:8px}.balloon-row{font-size:2.5rem;animation:float 2s ease-in-out infinite}.hidden{display:none!important}.two-col{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center;max-width:1100px;margin:auto}.message-card{border-radius:30px;padding:35px;line-height:1.9;min-height:350px}.typing{white-space:pre-wrap}.more-message{max-height:0;overflow:hidden;opacity:0;transition:.7s}.more-message.open{max-height:500px;opacity:1;margin-top:15px}.text-btn{background:none;color:#b1587e;font-weight:600;margin-top:20px}.gallery{max-width:1100px;margin:45px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.photo-card{background:#fff;border-radius:22px;padding:9px;box-shadow:0 15px 45px #71465b18;transform:rotate(var(--r,0deg));transition:.4s;cursor:pointer}.photo-card:nth-child(2){--r:2deg}.photo-card:nth-child(4){--r:-2deg}.photo-card img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:16px;transition:.5s}.photo-card:hover{transform:translateY(-8px) rotate(0);box-shadow:0 25px 60px #71465b25}.photo-card:hover img{transform:scale(1.03)}figcaption{text-align:center;font:1rem "Dancing Script";padding:12px;color:#805265}.soft-section{background:#ffffff28}.reasons-grid{max-width:1100px;margin:45px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.reason-card{padding:25px;border-radius:25px;background:#ffffff62;border:1px solid #ffffff99;box-shadow:0 15px 40px #71465b0e;transition:.4s}.reason-card:hover{transform:translateY(-8px)}.reason-card span{font-size:2rem}.reason-card h3{font:1.4rem "Dancing Script";margin:10px 0}.reason-card p{font-size:.8rem;line-height:1.7;color:#806d76}.letter-section{background:radial-gradient(circle at center,#f8e5ee55,transparent 50%)}.love-letter{max-width:760px;margin:45px auto 0;padding:60px 70px;background:#fffaf0;border-radius:5px;box-shadow:0 25px 80px #71465b1c;position:relative;transform:rotate(-.5deg);font:1.05rem/2 "Dancing Script";color:#604b53}.love-letter:before{content:"";position:absolute;inset:14px;border:1px solid #d9b7a7;border-radius:3px;pointer-events:none}.paper-flower{position:absolute;right:35px;top:25px;color:#c57d92;font-size:35px}.letter-dear{font-size:1.5rem}.love-letter p{margin:16px 0}.signature{text-align:right;font-size:1.35rem}.gift-area{text-align:center;margin-top:35px}.gift-box{width:150px;height:130px;margin:0 auto 30px;position:relative;animation:float 3s infinite}.gift-box .box{position:absolute;inset:30px 0 0;font-size:90px}.gift-box .lid{position:absolute;z-index:2;top:20px;left:10px;width:130px;height:30px;background:#d8789f;border-radius:7px;transition:.7s;box-shadow:0 6px 15px #0001}.gift-box.open .lid{transform:translateY(-65px) rotate(-15deg)}.gift-message{max-width:500px;margin:25px auto 0;padding:30px;border-radius:25px}.gift-message span{font-size:35px;color:#c96893}.gift-message h3{font:1.6rem "Dancing Script";margin:8px}.gift-message p{line-height:1.7}.cake-section{background:#fff8fb}.cake{width:250px;height:230px;position:relative;margin:30px auto 10px}.cake-body{position:absolute;left:35px;bottom:30px;width:180px;height:100px;border-radius:15px 15px 28px 28px;background:linear-gradient(#f4aec6,#d77c9f);box-shadow:inset 0 -10px #c86e94}.cake-top{position:absolute;left:30px;top:80px;width:190px;height:65px;border-radius:50%;background:#fff0f5;box-shadow:inset 0 -12px #f5b6cd}.icing{position:absolute;z-index:2;top:96px;left:55px;font-size:23px;color:#cf7299;letter-spacing:9px}.plate{position:absolute;left:20px;bottom:20px;width:210px;height:18px;border-radius:50%;background:#fff;box-shadow:0 5px 20px #0001}.candles{position:absolute;z-index:4;top:20px;left:67px;display:flex;gap:25px}.candle{width:18px;height:60px;border-radius:7px;background:repeating-linear-gradient(45deg,#fff 0 7px,#eca5bf 7px 13px);position:relative}.flame{position:absolute;top:-25px;left:-3px;font-size:20px;animation:flicker .5s infinite alternate}.candle.out .flame{display:none}.wish-text{font:1.25rem "Dancing Script";color:#a55c7d}.final-section{min-height:100vh;display:grid;place-items:center;text-align:center;padding:100px 25px;background:linear-gradient(135deg,#f7e0ea,#eee4f8)}.final-content{max-width:850px}.big-heart{font:90px "Great Vibes";color:#c76d96;animation:float 3s infinite}.final-content h2{font:clamp(2rem,5vw,4.3rem)/1.2 "Playfair Display";margin:20px 0}.final-content>p:not(.eyebrow){font:1.2rem "Dancing Script";font-size:1.4rem}.final-line{height:1px;width:90px;background:#c98aa5;margin:35px auto}.final-content h3{font:2rem "Great Vibes";color:#a9567b}.final-content strong{display:block;margin-top:20px;font-family:"Dancing Script";font-size:1.4rem}.music-player{position:fixed;z-index:25;bottom:18px;right:18px;border-radius:18px;padding:10px 13px;display:flex;align-items:center;gap:10px;width:300px}.music-player button{width:35px;height:35px;border-radius:50%;background:#b65e85;color:white}.disc{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#4f3542;color:white}.disc.playing{animation:spin 2s linear infinite}.song-info{display:flex;flex-direction:column;flex:1;font-size:.7rem}.song-info span{opacity:.6}.music-player input{width:55px}.lightbox{position:fixed;inset:0;background:#24131ccc;z-index:60;display:none;align-items:center;justify-content:center;gap:20px;padding:50px}.lightbox.open{display:flex}.lightbox img{max-width:80vw;max-height:80vh;border-radius:15px;box-shadow:0 20px 80px #0008}.lightbox button{background:#fff2;color:white;font-size:42px}.close-lightbox{position:absolute;right:25px;top:15px}.lightbox p{position:absolute;bottom:25px;color:white;font:1.3rem "Dancing Script"}.toast{position:fixed;z-index:70;bottom:90px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#4e3440;color:white;padding:14px 20px;border-radius:30px;font-size:.8rem;transition:.5s;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}#secretHeart{position:absolute;right:2.5%;bottom:9%;background:none;color:#d995ae;font-size:12px;opacity:.25}#confetti{position:fixed;inset:0;pointer-events:none;z-index:80;overflow:hidden}.confetti-piece{position:absolute;top:-20px;width:8px;height:12px;animation:fall 3.5s linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg);opacity:0}}@keyframes float{50%{transform:translateY(-12px)}}@keyframes flicker{to{transform:scale(1.1) rotate(3deg)}}@keyframes spin{to{transform:rotate(360deg)}}.reveal{opacity:0;transform:translateY(35px);filter:blur(5px);transition:1s cubic-bezier(.2,.8,.2,1)}.reveal.visible{opacity:1;transform:none;filter:none}@media(max-width:850px){.site-header nav{display:none;position:absolute;top:62px;left:0;right:0;flex-direction:column;background:#fffdfde8;padding:10px;border-radius:18px}.site-header nav.open{display:flex}.menu-btn{display:block}.home-section{flex-direction:column;text-align:center;padding-top:150px}.home-section p{margin-left:auto;margin-right:auto}.floating-card{width:min(320px,90vw);transform:none}.two-col{grid-template-columns:1fr;gap:30px}.reasons-grid{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:repeat(2,1fr)}.countdown{gap:7px;padding:20px 10px;width:100%}.countdown div{min-width:20vw}.countdown i{font-size:1.3rem}.music-player{width:auto;left:12px;right:12px;bottom:10px}.music-player input{display:none}.love-letter{padding:45px 30px}.section{padding-top:120px}}@media(max-width:500px){.section{padding-left:17px;padding-right:17px}.home-section h2{font-size:2.7rem}.gallery{gap:10px}.photo-card{padding:6px;border-radius:15px}.photo-card img{border-radius:11px}.reasons-grid{grid-template-columns:1fr}.countdown strong{font-size:1.8rem}.countdown span{font-size:.48rem}.countdown i{font-size:1rem}.love-letter{padding:40px 25px;font-size:1rem}.music-player .song-info{display:none}.music-player{width:120px}.disc{margin-left:auto}.final-content h3{font-size:1.7rem}}@media(pointer:coarse){#heartTrail{display:none}}
