:root{--primary-rose: #ff6b9d;--deep-rose: #c44569;--soft-pink: #ffeef8;--cream: #fff5f7;--gold: #d4af37;--dark: #2c1810;--shadow: rgba(196, 69, 105, .3)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Cormorant Garamond,serif;background:linear-gradient(135deg,#ffeef8,#fff5f7,#ffe8f0);min-height:100vh;overflow-x:hidden;color:var(--dark)}body.modal-open{overflow:hidden}.envelope-wrapper{position:fixed;top:0;left:0;width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ffeef8,#fff5f7,#ffe8f0);z-index:9999;opacity:1;visibility:visible;transition:opacity .8s ease,visibility .8s ease}.envelope-wrapper.hidden{opacity:0;visibility:hidden;pointer-events:none}.envelope{position:relative;width:320px;height:200px;cursor:pointer;transition:transform .3s ease;animation:envelopeFloat 3s ease-in-out infinite}.envelope:hover{transform:scale(1.05) translateY(-10px)}@keyframes envelopeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.envelope-back,.envelope-front{position:absolute;width:100%;height:100%;background:linear-gradient(135deg,#fff,#ffe8f0);border:3px solid var(--gold);box-shadow:0 10px 40px var(--shadow)}.envelope-front{z-index:3;clip-path:polygon(0 0,50% 60%,100% 0)}.envelope-flap{position:absolute;top:0;width:100%;height:100%;background:linear-gradient(135deg,var(--primary-rose) 0%,var(--deep-rose) 100%);clip-path:polygon(0 0,50% 50%,100% 0);transform-origin:top;transition:transform .6s ease;z-index:4;border-left:3px solid var(--gold);border-right:3px solid var(--gold);border-top:3px solid var(--gold)}.envelope.open .envelope-flap{transform:rotateX(180deg)}.envelope-letter{position:absolute;top:10%;left:10%;width:80%;height:85%;background:#fff;z-index:2;transition:transform .8s ease .3s;box-shadow:0 5px 20px #0000001a;border:1px solid var(--gold)}.envelope.open .envelope-letter{transform:translateY(-120%)}.letter-content{padding:30px 20px;text-align:center;height:100%;display:flex;align-items:center;justify-content:center;background:#ffffffe6;border-radius:5px}.letter-hint{font-family:Dancing Script,cursive;font-size:2rem;color:#c44569;font-weight:700;text-shadow:1px 1px 2px rgba(255,255,255,.9),-1px -1px 2px rgba(255,255,255,.9),1px -1px 2px rgba(255,255,255,.9),-1px 1px 2px rgba(255,255,255,.9);animation:pulse 2s ease-in-out infinite;letter-spacing:.5px}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.wax-seal{position:absolute;bottom:-25px;left:50%;transform:translate(-50%);width:60px;height:60px;background:var(--deep-rose);border-radius:50%;z-index:5;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 15px #c4456980;border:3px solid var(--gold)}.heart-seal{font-size:2rem;animation:heartbeat 1.5s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(1)}}.floating-petals{position:absolute;width:100%;height:100%;pointer-events:none}.petal{position:absolute;width:10px;height:10px;background:radial-gradient(circle,var(--primary-rose),var(--deep-rose));border-radius:50% 0;opacity:.7;animation:petalFloat 4s ease-in-out infinite}.petal:nth-child(1){top:10%;left:20%;animation-delay:0s}.petal:nth-child(2){top:30%;left:80%;animation-delay:1s}.petal:nth-child(3){top:60%;left:15%;animation-delay:2s}.petal:nth-child(4){top:70%;left:75%;animation-delay:.5s}.petal:nth-child(5){top:20%;left:50%;animation-delay:1.5s}.petal:nth-child(6){top:80%;left:45%;animation-delay:2.5s}@keyframes petalFloat{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(10px,-15px) rotate(90deg)}50%{transform:translate(-5px,-25px) rotate(180deg)}75%{transform:translate(-15px,-15px) rotate(270deg)}}.main-content{opacity:0;visibility:hidden;transition:opacity 1s ease .5s}.main-content.visible{opacity:1;visibility:visible}.flowers-bg{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:-1;overflow:hidden}.flower{position:absolute;font-size:3rem;opacity:.15;animation:rotateFlower 20s linear infinite}.flower-1{top:5%;left:10%;animation-duration:25s}.flower-2{top:15%;right:8%;animation-duration:30s;animation-direction:reverse}.flower-3{top:40%;left:5%;animation-duration:22s}.flower-4{top:60%;right:15%;animation-duration:28s;animation-direction:reverse}.flower-5{top:75%;left:20%;animation-duration:26s}.flower-6{bottom:10%;right:10%;animation-duration:24s;animation-direction:reverse}.flower-7{top:30%;left:50%;animation-duration:27s}.flower-8{bottom:25%;left:45%;animation-duration:23s;animation-direction:reverse}@keyframes rotateFlower{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.petals-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:hidden}.petal-fall{position:absolute;top:-10%;width:12px;height:12px;background:radial-gradient(circle,var(--primary-rose),var(--deep-rose));border-radius:50% 0;opacity:.6;animation:fall 10s linear infinite}.petal-fall:nth-child(1){left:10%;animation-delay:0s;animation-duration:12s}.petal-fall:nth-child(2){left:25%;animation-delay:2s;animation-duration:10s}.petal-fall:nth-child(3){left:40%;animation-delay:4s;animation-duration:14s}.petal-fall:nth-child(4){left:55%;animation-delay:1s;animation-duration:11s}.petal-fall:nth-child(5){left:70%;animation-delay:3s;animation-duration:13s}.petal-fall:nth-child(6){left:85%;animation-delay:5s;animation-duration:9s}.petal-fall:nth-child(7){left:15%;animation-delay:6s;animation-duration:12s}.petal-fall:nth-child(8){left:60%;animation-delay:7s;animation-duration:10s}.petal-fall:nth-child(9){left:35%;animation-delay:8s;animation-duration:11s}.petal-fall:nth-child(10){left:80%;animation-delay:9s;animation-duration:13s}@keyframes fall{to{transform:translateY(110vh) rotate(360deg);opacity:0}}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:2rem}.hero-decoration{position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none}.rose-vine{position:absolute;width:150px;height:300px;opacity:.3}.rose-left{top:20%;left:5%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 200'%3E%3Cpath d='M50,0 Q30,50 50,100 T50,200' stroke='%23c44569' stroke-width='3' fill='none'/%3E%3Ccircle cx='50' cy='30' r='15' fill='%23ff6b9d'/%3E%3Ccircle cx='45' cy='80' r='12' fill='%23ff6b9d'/%3E%3Ccircle cx='55' cy='130' r='13' fill='%23ff6b9d'/%3E%3Ccircle cx='50' cy='180' r='14' fill='%23ff6b9d'/%3E%3C/svg%3E") center/contain no-repeat;animation:vineGrow 2s ease-out forwards}.rose-right{top:20%;right:5%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 200'%3E%3Cpath d='M50,0 Q70,50 50,100 T50,200' stroke='%23c44569' stroke-width='3' fill='none'/%3E%3Ccircle cx='50' cy='30' r='15' fill='%23ff6b9d'/%3E%3Ccircle cx='55' cy='80' r='12' fill='%23ff6b9d'/%3E%3Ccircle cx='45' cy='130' r='13' fill='%23ff6b9d'/%3E%3Ccircle cx='50' cy='180' r='14' fill='%23ff6b9d'/%3E%3C/svg%3E") center/contain no-repeat;animation:vineGrow 2s ease-out .2s forwards;opacity:0}@keyframes vineGrow{0%{opacity:0;transform:scaleY(0);transform-origin:top}to{opacity:.3;transform:scaleY(1)}}.main-title{font-family:Playfair Display,serif;font-size:clamp(3rem,10vw,6rem);font-weight:700;text-align:center;color:var(--deep-rose);line-height:1.2;margin-bottom:2rem;position:relative;z-index:2}.title-line{display:block;opacity:0;transform:translateY(30px);animation:titleReveal 1s ease-out forwards}.title-line:nth-child(1){animation-delay:.3s}.title-line:nth-child(2){animation-delay:.6s;font-style:italic;color:var(--primary-rose)}@keyframes titleReveal{to{opacity:1;transform:translateY(0)}}.subtitle-wrapper{margin-top:2rem}.heart-divider{display:flex;align-items:center;justify-content:center;gap:1rem}.heart-divider:before,.heart-divider:after{content:"";width:100px;height:2px;background:linear-gradient(to right,transparent,var(--gold),transparent)}.heart{font-size:2rem;animation:heartPulse 2s ease-in-out infinite;display:inline-block}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.container{max-width:900px;margin:0 auto}.letter-section{padding:4rem 2rem;position:relative;z-index:2}.letter-card{background:#fffffff2;border-radius:20px;padding:3rem;box-shadow:0 20px 60px var(--shadow);border:2px solid var(--gold);position:relative;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:cardSlideIn 1s ease-out}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.card-decoration{position:absolute;width:80px;height:80px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50,20 L55,35 L70,35 L58,45 L63,60 L50,50 L37,60 L42,45 L30,35 L45,35 Z' fill='%23d4af37' opacity='0.4'/%3E%3C/svg%3E") center/contain no-repeat}.top-decoration{top:-20px;left:-20px}.bottom-decoration{bottom:-20px;right:-20px;transform:rotate(180deg)}.letter-text{font-size:1.25rem;line-height:2;color:var(--dark)}.letter-intro{font-family:Dancing Script,cursive;font-size:2rem;color:var(--primary-rose);margin-bottom:1.5rem}.letter-text p{margin-bottom:1.5rem;text-align:justify}.letter-signature{margin-top:2rem;font-style:italic}.signature-name{font-family:Dancing Script,cursive;font-size:2rem;color:var(--deep-rose);text-align:right;margin-top:.5rem}.memories-section{padding:4rem 2rem;position:relative;z-index:2}.section-title{font-family:Playfair Display,serif;font-size:clamp(2rem,5vw,3.5rem);text-align:center;color:var(--deep-rose);margin-bottom:1rem;position:relative}.section-subtitle{font-family:Cormorant Garamond,serif;font-size:clamp(1.2rem,3vw,1.5rem);text-align:center;color:var(--dark);margin-bottom:3rem;font-style:italic;opacity:.9}.section-title:after{content:"";display:block;width:100px;height:3px;background:var(--gold);margin:1rem auto}.memories-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-top:3rem}.memory-card{background:#ffffffe6;border-radius:15px;padding:2.5rem 2rem;text-align:center;box-shadow:0 10px 30px var(--shadow);border:2px solid transparent;transition:all .4s ease;opacity:0;transform:translateY(30px);animation:cardAppear .8s ease-out forwards}.memory-card:hover{transform:translateY(-10px);box-shadow:0 20px 50px var(--shadow);border-color:var(--gold)}.card-1{animation-delay:.2s}.card-2{animation-delay:.4s}.card-3{animation-delay:.6s}.card-4{animation-delay:.8s}.card-5{animation-delay:1s}.card-6{animation-delay:1.2s}.card-7{animation-delay:1.4s}.card-8{animation-delay:1.6s}@keyframes cardAppear{to{opacity:1;transform:translateY(0)}}.memory-icon{font-size:3rem;margin-bottom:1rem;animation:iconBounce 2s ease-in-out infinite}@keyframes iconBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.memory-card h3{font-family:Playfair Display,serif;font-size:1.5rem;color:var(--deep-rose);margin-bottom:.8rem}.memory-card p{color:var(--dark);font-size:1.1rem;line-height:1.6}.photos-section{padding:4rem 2rem;background:linear-gradient(180deg,transparent 0%,rgba(255,107,157,.05) 100%);position:relative;z-index:2}.photos-intro{font-size:1.3rem;line-height:1.8;text-align:center;color:var(--dark);max-width:700px;margin:0 auto 3rem;font-style:italic}.photos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-top:3rem;max-width:100%}.photo-frame{aspect-ratio:4/3;background:#fff;border-radius:15px;padding:1rem;box-shadow:0 10px 30px var(--shadow);border:3px solid var(--gold);transition:all .4s ease;opacity:0;transform:translateY(30px) scale(.95);animation:photoAppear .8s ease-out forwards;max-width:100%;margin:0 auto}.photo-frame:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 20px 50px var(--shadow)}.frame-1{animation-delay:.2s}.frame-2{animation-delay:.4s}.frame-3{animation-delay:.6s}.frame-4{animation-delay:.8s}.frame-5{animation-delay:1s}.frame-6{animation-delay:1.2s}@keyframes photoAppear{to{opacity:1;transform:translateY(0) scale(1)}}.photo-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--soft-pink),var(--cream));border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;border:2px dashed var(--primary-rose)}.photo-icon{font-size:3rem;opacity:.5}.photo-label{font-family:Dancing Script,cursive;font-size:1.2rem;color:var(--deep-rose);opacity:.7}.interactive-section{padding:4rem 2rem;position:relative;z-index:2}.heart-container{text-align:center}.beating-heart{width:200px;height:200px;margin:2rem auto;cursor:pointer;transition:transform .3s ease}.beating-heart:hover{transform:scale(1.1)}.heart-svg{width:100%;height:100%;fill:var(--primary-rose);filter:drop-shadow(0 10px 30px var(--shadow));animation:heartBeat 1.5s ease-in-out infinite}@keyframes heartBeat{0%,to{transform:scale(1)}25%{transform:scale(1.1)}50%{transform:scale(1)}}.beating-heart.clicked .heart-svg{animation:heartExplode .6s ease-out}@keyframes heartExplode{0%{transform:scale(1)}50%{transform:scale(1.5) rotate(10deg)}to{transform:scale(1) rotate(0)}}.modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:99999;display:none;align-items:center;justify-content:center}.modal.active{display:flex}.modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:fadeIn .3s ease;z-index:99998}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{position:relative;background:#fff;border-radius:20px;padding:2rem;max-width:90%;max-height:90%;box-shadow:0 20px 60px #00000080;border:3px solid var(--gold);animation:modalSlideIn .5s ease-out;z-index:99999}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.8) translateY(-50px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-close{position:absolute;top:-15px;right:-15px;width:40px;height:40px;border-radius:50%;background:var(--deep-rose);color:#fff;border:3px solid white;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 5px 15px #0000004d}.modal-close:hover{background:var(--primary-rose);transform:rotate(90deg)}.modal-gif{text-align:center}.modal-gif img{max-width:100%;max-height:60vh;border-radius:15px;box-shadow:0 10px 30px #0003}.modal-text{font-family:Dancing Script,cursive;font-size:2.5rem;color:var(--deep-rose);margin-top:1.5rem;animation:textFloat 2s ease-in-out infinite}@keyframes textFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.final-section{padding:4rem 2rem;position:relative;z-index:2}.final-card{background:linear-gradient(135deg,#ff6b9d33,#c4456933);border-radius:20px;padding:3rem;text-align:center;border:3px solid var(--gold);box-shadow:0 20px 60px var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.final-title{font-family:Playfair Display,serif;font-size:clamp(2rem,5vw,3rem);color:var(--deep-rose);margin-bottom:1.5rem}.final-text{font-size:1.3rem;line-height:2;color:var(--dark);margin-bottom:2rem}.date-tag{display:inline-block;background:var(--gold);color:#fff;padding:.8rem 2rem;border-radius:50px;font-family:Playfair Display,serif;font-size:1.1rem;font-weight:600;box-shadow:0 5px 20px #d4af3766}.footer{padding:3rem 2rem;text-align:center;position:relative;z-index:2}.footer-hearts{font-size:2rem;margin-bottom:1rem;display:flex;justify-content:center;gap:1rem}.footer-hearts span{display:inline-block;animation:heartFloat 3s ease-in-out infinite}.footer-hearts span:nth-child(1){animation-delay:0s}.footer-hearts span:nth-child(2){animation-delay:.3s}.footer-hearts span:nth-child(3){animation-delay:.6s}.footer-hearts span:nth-child(4){animation-delay:.9s}.footer-hearts span:nth-child(5){animation-delay:1.2s}@keyframes heartFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-15px) scale(1.1)}}.footer p{font-family:Dancing Script,cursive;font-size:1.3rem;color:var(--deep-rose)}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.letter-card:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 3s infinite}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}}.main-title:before{content:"✨";position:absolute;top:-20px;left:10%;font-size:2rem;animation:sparkle 2s ease-in-out infinite}.main-title:after{content:"✨";position:absolute;top:-20px;right:10%;font-size:2rem;animation:sparkle 2s ease-in-out infinite 1s}@media(max-width:768px){.envelope{width:280px;height:175px}.letter-card{padding:2rem 1.5rem}.letter-text{font-size:1.1rem}.memories-grid{grid-template-columns:1fr}.photos-grid{grid-template-columns:1fr;gap:1.5rem;padding:0 1rem}.photo-frame{max-width:100%;width:100%}.rose-vine{width:80px;height:160px}.beating-heart{width:150px;height:150px}.final-card{padding:2rem 1.5rem}.modal-content{padding:1.5rem;max-width:95%}.modal-text,.section-title{font-size:2rem}.photos-intro{font-size:1.1rem;padding:0 1rem}}@media(max-width:480px){.envelope{width:240px;height:150px}.wax-seal{width:50px;height:50px;bottom:-20px}.heart-seal{font-size:1.5rem}.letter-card{padding:1.5rem 1rem}.letter-text{font-size:1rem;line-height:1.8}.letter-intro,.signature-name{font-size:1.5rem}.memory-card{padding:2rem 1.5rem}.heart-divider:before,.heart-divider:after{width:50px}.beating-heart{width:120px;height:120px}.modal-close{top:-10px;right:-10px;width:35px;height:35px;font-size:1.3rem}.modal-text{font-size:1.5rem}.photos-intro{font-size:1rem;padding:0 .5rem}.photos-grid{grid-template-columns:1fr;gap:1.5rem;padding:0 .5rem}.photo-frame{padding:.75rem;width:100%;max-width:100%}.section-title{font-size:1.75rem;padding:0 .5rem}.container{padding:0 .5rem}}
