@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;700&family=Cormorant+Garamond:wght@300;400;500;600&family=Great+Vibes&family=Allura&family=Dancing+Script:wght@400;500;600;700&family=Crimson+Text:wght@400;600;700&family=Lora:wght@400;500;600&family=Press+Start+2P&family=Orbitron:wght@400;700;900&display=swap";
:root{--sidebar-width:260px;--bg:#faf7f8;--accent:#b1303b;--hero-image:url(/assets/hero-blur.jpg);--heading-color:#a6192e;--rose-2:#e96c73;--rose-3:#b1303b;--rose-shadow:#b1303b24}*{box-sizing:border-box}html,body,#__next{height:100%}body{background:var(--bg);color:#4b2b33;-webkit-font-smoothing:antialiased;margin:0;font-family:Cormorant Garamond,serif;overflow-x:hidden}h1,h2,h3,.section-title,.gallery-title,.map-title,.postcards-title,.envelope-title,.hero-card h1,.brand-title,.photo-title{letter-spacing:.5px;color:var(--heading-color)!important;font-family:Great Vibes,cursive!important}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:#b1303b29;border-radius:8px}.sidebar-love{width:var(--sidebar-width);z-index:1200;background:linear-gradient(#fff5f6fa,#ffeef0fa);flex-direction:column;gap:12px;padding:22px 18px;transition:transform .34s cubic-bezier(.2,.9,.28,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;box-shadow:8px 0 28px #0000000f}body.sidebar-collapsed .sidebar-love{transform:translateX(calc(-1*var(--sidebar-width)))}.love-menu{flex-direction:column;gap:8px;margin-top:6px;display:flex}nav .nav-link{color:#5e1a23;border-radius:10px;align-items:center;gap:12px;padding:10px 12px;font-weight:600;text-decoration:none;transition:all .16s;display:flex}nav .nav-link:hover{color:var(--accent);transform:translate(6px)}.sidebar-toggle-fixed{top:14px;left:calc(var(--sidebar-width) + 14px);z-index:1600;cursor:pointer;background:#fffffffa;border:0;border-radius:10px;justify-content:center;align-items:center;width:44px;height:44px;transition:left .34s cubic-bezier(.2,.9,.28,1);display:flex;position:fixed;box-shadow:0 8px 20px #00000014}body.sidebar-collapsed .sidebar-toggle-fixed{left:14px}.sidebar-toggle-fixed:focus{outline-offset:3px;outline:3px solid #b1303b1f}.hamburger,.hamburger:before,.hamburger:after{content:"";background:#6d2a2f;border-radius:2px;width:18px;height:2px;transition:transform .22s,opacity .18s;display:block}.hamburger:before{transform:translateY(-6px)}.hamburger:after{transform:translateY(6px)}.hamburger.is-open{background:0 0}.hamburger.is-open:before{transform:rotate(45deg)}.hamburger.is-open:after{transform:rotate(-45deg)}.logo-area{text-align:center;margin-bottom:8px;padding-bottom:6px}.logo-anim{background:linear-gradient(#ffe7ea,#fff0f2);border-radius:14px;justify-content:center;align-items:center;width:86px;height:86px;margin:0 auto;padding:8px;display:flex;box-shadow:0 10px 24px #b1303b0f}.logo-anim svg,.logo-svg,.logo-anim img{object-fit:contain;object-position:center;border-radius:10px;width:100%;height:auto;display:block}.brand-title{color:#5a1d21;margin-top:8px;margin-bottom:2px;font-family:Playfair Display,serif;font-size:20px;font-weight:700}.brand-sub{color:#5a1e24b3;font-size:13px;display:block}.main-content{margin-left:var(--sidebar-width);min-height:100vh;padding:20px;transition:margin-left .34s cubic-bezier(.2,.9,.28,1)}body.sidebar-collapsed .main-content{margin-left:0}.content-wrapper{max-width:1100px;margin:0 auto;position:relative}.hero-wrapper{justify-content:center;align-items:center;width:100%;margin-top:40px;padding:80px 20px 40px;display:flex;position:relative}.hero-wrapper:before{content:"";filter:blur(8px)brightness(.85);opacity:.6;z-index:0;pointer-events:none;background:url(/assets/lov-birthday.JPG) 50%/cover no-repeat;width:100%;height:100%;position:absolute;inset:0}.hero-hero{z-index:1;width:100%;max-width:800px;margin:0 auto;padding:64px 0;position:relative}.content-wrapper .hero-hero:before{content:"";background-image:var(--hero-image);filter:blur(26px)brightness(.96)saturate(1.05);opacity:.95;z-index:-1;background-position:50% 36%;background-size:cover;border-radius:18px;position:absolute;inset:-18px -120px -6px}.hero-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;background:#ffffffe6;border-radius:20px;padding:50px 40px;box-shadow:0 20px 60px #00000026}.hero-card h1{color:#2c1618;margin:0 0 16px;font-family:Playfair Display,serif;font-size:2.8rem}.hero-card p{color:#6f6667;margin:0 0 24px;font-size:1.1rem}.hero-card p.lead{margin:0 0 18px}.hero-subtitle{color:var(--accent);margin-bottom:16px;font-family:Playfair Display,serif;font-size:1.3rem;font-weight:600}.hero-description{color:#6f6667;max-width:600px;margin:0 auto 28px;font-size:1.05rem;line-height:1.7}.hero-buttons{flex-wrap:wrap;justify-content:center;gap:16px;margin-top:18px;display:flex}.btn{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.6rem;padding:10px 18px;font-weight:600;text-decoration:none;transition:transform .2s;display:inline-flex}.btn:hover{transform:translateY(-3px)}.btn--primary{background:linear-gradient(180deg,var(--rose-2),var(--rose-3));color:#fff;box-shadow:0 10px 26px var(--rose-shadow)}.btn--outline{color:var(--rose-3);background:0 0;border:2px solid #b1303b1f}.btn.ghost{background:0 0;border:1px solid #b1303b1f}.bokeh-wrap{pointer-events:none;z-index:2;position:absolute;inset:0}.bokeh-dot{filter:blur(14px);will-change:transform,opacity;animation:bokehFloat var(--dur)ease-in-out infinite alternate;opacity:.06;background:radial-gradient(circle at 30% 30%,#ffffff8c,#ffffff0f),#ffdce124;border-radius:50%;position:absolute;transform:translate(0,0)}@keyframes bokehFloat{0%{opacity:.06;transform:translateY(-6px)scale(1)}to{opacity:.12;transform:translateY(8px)scale(1.02)}}.global-sparkles-overlay{pointer-events:none;z-index:9999;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.global-sparkle{pointer-events:none;opacity:.85;text-shadow:0 1px 2px #fff9;will-change:transform,opacity;font-size:18px;line-height:1;position:absolute}.global-sparkle.heart{color:#e0585b;filter:drop-shadow(0 2px 8px #e0585b4d)}.global-sparkle.snow{color:#ffdfe6;filter:drop-shadow(0 2px 8px #ffdfe64d)}.global-sparkle.star{color:gold;filter:drop-shadow(0 2px 8px #ffd7004d)}.loading-screen{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:all;opacity:1;background:radial-gradient(circle at top,#ffe0ea 0,#fff4f8 45%,#fce5ee 100%);flex-direction:column;justify-content:center;align-items:center;gap:12px;transition:opacity .4s ease-out;display:flex;position:fixed;inset:0;z-index:99999!important}.loading-screen.hide{opacity:0;pointer-events:none}.loading-hearts{width:220px;height:120px;position:relative}.loading-heart{text-shadow:0 8px 20px #b1303b66;font-size:3rem;position:absolute}.loading-heart-left{animation:1.8s ease-in-out infinite heartLeftIn;top:40%;left:0;transform:translateY(-50%)}.loading-heart-right{animation:1.8s ease-in-out infinite heartRightIn;top:40%;right:0;transform:translateY(-50%)}.loading-heart-center{opacity:0;animation:1.8s ease-in-out infinite heartCenterPulse;top:40%;left:50%;transform:translate(-50%,-50%)scale(0)}.loading-text-main{color:#a6192e;text-align:center;font-family:Great Vibes,cursive;font-size:2.1rem}.loading-text-sub{color:#6b4b4e;text-align:center;font-family:Cormorant Garamond,serif;font-size:1.03rem}.loading-spinner{border:4px solid #ff69b44d;border-top-color:#ff69b4;border-radius:50%;width:60px;height:60px;margin:50px auto;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes loadingFadeIn{0%{opacity:0;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes heartLeftIn{0%{opacity:0;transform:translate(-40px,-50%)scale(.9)}30%{opacity:1}50%{transform:translate(10px,-50%)scale(1)}70%{transform:translateY(-50%)scale(.96)}to{opacity:0;transform:translate(-40px,-50%)scale(.9)}}@keyframes heartRightIn{0%{opacity:0;transform:translate(40px,-50%)scale(.9)}30%{opacity:1}50%{transform:translate(-10px,-50%)scale(1)}70%{transform:translateY(-50%)scale(.96)}to{opacity:0;transform:translate(40px,-50%)scale(.9)}}@keyframes heartCenterPulse{0%,25%{opacity:0;transform:translate(-50%,-50%)scale(0)}40%{opacity:1;transform:translate(-50%,-50%)scale(1.05);box-shadow:0 0 #ff78a099}60%{opacity:1;transform:translate(-50%,-50%)scale(.95);box-shadow:0 0 0 16px #ff78a000}80%{opacity:1;transform:translate(-50%,-50%)scale(1.02)}to{opacity:0;transform:translate(-50%,-50%)scale(0)}}.section-container{max-width:1100px;margin:0 auto;padding:0 20px}.section-title{text-align:center;color:#2c1618;margin-bottom:50px;font-family:Playfair Display,serif;font-size:2.5rem;position:relative}.section-title:after{content:"♥";color:var(--accent);margin-top:12px;font-size:1.2rem;display:block}.gallery-page{text-align:center;padding:60px 20px 100px}.gallery-title{color:#a6192e;letter-spacing:1px;margin-bottom:10px;font-family:Great Vibes,cursive;font-size:3.4rem}.gallery-title:after,.envelope-title:after{content:"❦";color:#19490d;margin-top:6px;font-size:1.8rem;display:block}.gallery-subtitle{color:var(--accent);margin-bottom:6px;font-family:Playfair Display,serif;font-size:1.4rem}.gallery-subtext{color:#5e1a23;max-width:680px;margin-bottom:40px;margin-left:auto;margin-right:auto;font-family:Playfair Display,serif;font-size:1.65rem;line-height:1.4}.subtitle,.envelope-sub,.gallery-subtext{color:#7d4b4b;font-family:Cormorant Garamond,serif;font-size:1.1rem;line-height:1.7}.notebook-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:50px;max-width:1200px;margin:60px auto;padding:0 20px;display:grid}.notebook-item{cursor:pointer;transition:transform .3s}.notebook-item:hover{transform:translateY(-5px)}.notebook-wrapper{perspective:1200px;width:280px;height:380px;margin:0 auto;position:relative}.notebook-spiral{z-index:100;pointer-events:none;flex-direction:column;justify-content:space-evenly;align-items:center;width:30px;display:flex;position:absolute;top:0;bottom:0;left:0}.spiral-ring{background:#fff;border:3px solid #666;border-radius:50%;width:20px;height:20px;box-shadow:inset 0 2px 4px #0000001a}.notebook-cover{transform-style:preserve-3d;transform-origin:0;z-index:10;border-radius:0 12px 12px 0;justify-content:center;align-items:center;transition:transform .6s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;inset:0;box-shadow:0 4px 20px #00000026,inset 0 0 40px #fff3}.notebook-item.notebook-open .notebook-cover{transform:rotateY(-140deg)}.cover-decoration{text-align:center;color:#fff;padding:20px}.cover-heart{filter:drop-shadow(0 2px 4px #0003);margin-bottom:15px;font-size:3rem;display:block}.cover-title{color:#fff;text-shadow:2px 2px 4px #0003;margin:10px 0;font-family:Great Vibes,cursive;font-size:2rem}.cover-label{opacity:.9;letter-spacing:2px;text-transform:uppercase;font-family:Cormorant Garamond,serif;font-size:1rem;font-weight:300}.notebook-pages{transform-style:preserve-3d;position:absolute;inset:10px 10px 10px 30px}.notebook-page{transform-origin:0;width:100%;height:100%;transform-style:preserve-3d;backface-visibility:hidden;background:linear-gradient(90deg,#f8f8f8 0%,#fff 10% 90%,#f0f0f0 100%);border-radius:0 8px 8px 0;transition:transform .8s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0;box-shadow:0 1px 3px #0000001a,inset -1px 0 #0000000d}.notebook-page:before{content:"";background:linear-gradient(#0000,#0000000d 10% 90%,#0000);width:2px;position:absolute;top:5%;bottom:5%;left:0}.page-content{border-radius:0 8px 8px 0;width:100%;height:100%;padding:15px;position:relative;overflow:hidden}.page-content img{object-fit:cover;border-radius:4px;width:100%;height:calc(100% - 30px);box-shadow:0 2px 8px #0000001a}.page-number{color:#999;font-family:Cormorant Garamond,serif;font-size:.9rem;font-style:italic;position:absolute;bottom:10px;right:15px}.page-waiting{transform:rotateY(0)}.page-current{transform:rotateY(0);z-index:20!important}.page-turned{transform:rotateY(-170deg);z-index:5!important}.notebook-label{text-align:center;margin-top:15px;font-family:Cormorant Garamond,serif}.label-title{color:#5e1a23;margin-bottom:5px;font-size:1.2rem;font-weight:600;display:block}.page-indicator{color:#999;font-size:.9rem;font-style:italic;animation:.3s fadeIn;display:block}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.book-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px;max-width:1200px;margin:0 auto;display:grid}.book-item{cursor:pointer;perspective:1200px;flex-direction:column;align-items:center;gap:10px;animation:4s ease-in-out infinite bookFloat;display:flex}.book-item:nth-child(2n){animation-delay:.5s}.book-item:nth-child(3n){animation-delay:1s}.book-inner{width:100%;height:260px;position:relative}.book-cover{transform-origin:0;z-index:2;background:linear-gradient(135deg,#ffd1dc,#f7a0bc);border-radius:18px;transition:transform .65s cubic-bezier(.19,1,.22,1);position:absolute;inset:0;box-shadow:0 12px 30px #b1303b40}.book-cover:before{content:"";background:linear-gradient(#e36b88,#bf325c);border-radius:18px 0 0 18px;width:14px;position:absolute;top:6%;bottom:6%;left:0;box-shadow:inset -2px 0 4px #0000002e}.book-cover:after{content:"";background:repeating-linear-gradient(#fff6fa 0 3px,#f0dbe5 3px 6px);border-radius:0 14px 14px 0;width:12px;position:absolute;top:10%;bottom:10%;right:0}.book-sticker{color:#7b142f;text-shadow:0 2px 4px #ffffffb3;font-size:1.3rem;position:absolute;top:12px;right:16px}.book-tag{letter-spacing:.14em;text-transform:uppercase;color:#7b142f;background:#ffffffa6;border:1px solid #ffffffe6;border-radius:999px;padding:5px 14px;font-size:.75rem;position:absolute;bottom:20px;left:40px}.book-photo{backface-visibility:hidden;z-index:1;border-radius:18px;position:absolute;inset:0;overflow:hidden}.book-photo img{object-fit:cover;width:100%;height:100%;transform:scale(1.02)}.book-pages-hint{opacity:0;pointer-events:none;background:repeating-linear-gradient(#ffffffe6 0 3px,#f0dbe5e6 3px 6px);border-radius:0 8px 8px 0;width:10px;transition:opacity .3s,transform .3s;position:absolute;top:12%;bottom:12%;right:6px;transform:translate(4px)}.book-item:hover .book-pages-hint{opacity:1;transform:translate(0)}.book-item:hover .book-cover{transform:rotateY(-110deg)}.book-label{color:#5e1a23;font-family:Cormorant Garamond,serif;font-size:1.05rem;font-weight:600}@keyframes bookFloat{0%{transform:translateY(0)}50%{transform:translateY(-6px)}to{transform:translateY(0)}}.our-story-section{background:linear-gradient(180deg,var(--bg)0%,#fff5f680 100%);padding:80px 0}.story-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;margin-top:40px;display:grid}.story-card{text-align:center;background:#fff;border-radius:16px;padding:40px 30px;transition:transform .3s,box-shadow .3s;box-shadow:0 4px 20px #b1303b14}.story-card:hover{transform:translateY(-8px);box-shadow:0 12px 40px #b1303b26}.story-icon{margin-bottom:20px;font-size:3rem}.story-card h3{color:#2c1618;margin-bottom:16px;font-family:Playfair Display,serif;font-size:1.5rem}.story-card p{color:#6f6667;font-size:1rem;line-height:1.7}.stats-section{background:#fff;padding:60px 0}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:30px;display:grid}.stat-item{text-align:center;background:linear-gradient(145deg,#ffe3e84d,#ffedf04d);border-radius:16px;padding:30px 20px;transition:transform .3s}.stat-item:hover{transform:scale(1.05)}.stat-number{color:var(--accent);margin-bottom:8px;font-family:Playfair Display,serif;font-size:3.5rem;font-weight:700}.stat-label{color:#5e1a23;font-size:1.1rem;font-weight:600}.quote-section{background:linear-gradient(135deg,#ffe3e833,#ffedf066);padding:80px 0}.quote-card{text-align:center;background:#fff;border-radius:20px;max-width:800px;margin:0 auto;padding:50px 40px;position:relative;box-shadow:0 8px 30px #b1303b1a}.quote-card:before{content:"\"";color:#b1303b26;font-family:Playfair Display,serif;font-size:6rem;line-height:1;position:absolute;top:-20px;left:30px}.quote-text{color:#2c1618;margin-bottom:20px;font-family:Playfair Display,serif;font-size:1.6rem;font-style:italic;line-height:1.8}.quote-author{color:var(--accent);font-size:1.1rem;font-weight:600}.cta-section{background:var(--bg);padding:80px 0 100px}.cta-description{text-align:center;color:#6f6667;max-width:600px;margin-bottom:50px;margin-left:auto;margin-right:auto;font-size:1.2rem}.cta-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:25px;margin-top:40px;display:grid}.cta-card{text-align:center;color:inherit;background:#fff;border:2px solid #0000;border-radius:16px;padding:35px 25px;text-decoration:none;transition:all .3s;box-shadow:0 4px 20px #0000000f}.cta-card:hover{border-color:var(--accent);transform:translateY(-10px);box-shadow:0 12px 40px #b1303b26}.cta-icon{margin-bottom:18px;font-size:3rem}.cta-card h3{color:#2c1618;margin-bottom:12px;font-family:Playfair Display,serif;font-size:1.4rem}.cta-card p{color:#6f6667;font-size:.95rem;line-height:1.6}.map-page{max-width:1200px;margin:0 auto;padding:40px 20px 60px}.map-header{text-align:center;margin-bottom:50px}.map-title{color:#2c1618;margin-bottom:12px;font-size:2.5rem}.map-subtitle{color:#6f6667;max-width:600px;margin:0 auto;font-size:1.1rem}#map{border:3px solid #b1303b1a;border-radius:20px;width:100%;height:600px;transition:transform .3s,box-shadow .3s;box-shadow:0 20px 60px #b1303b33}.heart-map-container{max-width:100%;height:700px}.custom-heart-marker{background:0 0;border:none;justify-content:center;align-items:center;display:flex}.custom-heart-marker svg{cursor:pointer;transition:transform .3s}.custom-heart-marker:hover svg{transform:scale(1.15)}.blinking-heart{animation:1.5s ease-in-out infinite blinkHeart!important}@keyframes blinkHeart{0%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes popupEaseIn{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.custom-popup .leaflet-popup-content-wrapper{background:#fff5f6fa;border:2px solid #b1303b;border-radius:12px;overflow:hidden;box-shadow:0 8px 20px #b1303b33;padding:0!important}.custom-popup .leaflet-popup-content{margin:0;font-family:Cormorant Garamond,serif}.custom-popup .leaflet-popup-tip{background:#fff5f6fa;border:2px solid #b1303b;border-top:none;border-left:none}.memory-popup-image{object-fit:contain;background:#fdf5f6;border-top-left-radius:10px;border-top-right-radius:10px;width:100%;height:auto;max-height:190px;display:block}.memory-popup{font-family:Playfair Display,serif}.memory-popup strong{color:#b1303b;margin-bottom:8px;font-size:1.1rem;display:block}.memory-popup .memory-text{color:#6f6667;font-family:Cormorant Garamond,serif;font-size:.95rem;line-height:1.6}.postcards-page{padding:60px 20px 100px}.postcards-title{text-align:center;margin-bottom:10px;font-size:2.5rem}.postcards-subtitle{text-align:center;color:#6f6667;margin-bottom:40px;font-size:1.1rem}.postcards-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:50px;max-width:1200px;margin:0 auto;display:grid}.envelope-title,.envelope-sub{text-align:center;width:100%;margin-left:auto;margin-right:auto;display:block}.envelope-title{margin-top:40px;margin-bottom:10px}.envelope-sub{max-width:650px;margin-bottom:50px;line-height:1.7}.envelope-scene{grid-template-columns:repeat(3,minmax(260px,1fr));justify-items:center;gap:48px;max-width:1200px;margin:0 auto;display:grid}.envelope-item{flex-direction:column;align-items:center;gap:12px;display:flex}.envelope-wrapper{width:100%;height:320px;animation:.6s cubic-bezier(.25,.46,.45,.94) forwards envelopeFloat;position:relative}.envelope-wrapper:first-child{animation-delay:.1s}.envelope-wrapper:nth-child(2){animation-delay:.2s}.envelope-wrapper:nth-child(3){animation-delay:.3s}.envelope-wrapper:nth-child(4){animation-delay:.4s}.envelope-wrapper:nth-child(5){animation-delay:.5s}.envelope-wrapper:nth-child(6){animation-delay:.6s}@keyframes envelopeFloat{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.envelope-front{z-index:10;width:100%;height:100%;transition:all .5s cubic-bezier(.25,.46,.45,.94);position:absolute}.envelope-wrapper.hovered .envelope-front{opacity:0;visibility:hidden;transform:scale(.8)translateY(-20px)}.envelope-bg{box-sizing:border-box;background:linear-gradient(135deg,#b8e1c4 0%,#8dcfa8 50%,#64b488 100%);border:2px solid #5b9f78;border-radius:6px;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:25px;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 35px #00000026}.envelope-bg:before{content:"";pointer-events:none;background:linear-gradient(#9fd9b7 0%,#0000 100%);height:50%;position:absolute;top:0;left:0;right:0}.envelope-flap-line{clip-path:polygon(0 0,100% 0,50% 100%);pointer-events:none;border-bottom:2px solid #6fb48b;height:50%;position:absolute;top:0;left:0;right:0}.envelope-stamp{z-index:5;border-radius:4px;justify-content:center;align-items:center;width:70px;height:70px;transition:all .4s cubic-bezier(.25,.46,.45,.94);display:flex;position:absolute;top:20px;right:20px;background:linear-gradient(45deg,#3c8c6014,#3c8c6008)!important;border:3px dashed #2d8054!important}.envelope-wrapper:hover .envelope-stamp{transform:rotate(-20deg)scale(1.15);box-shadow:0 8px 20px #b1303b40}.stamp-icon{font-size:42px;font-weight:700;line-height:1;color:#256b46!important}.postmark{z-index:5;background:#ffffff4d;border:3px solid #c9a980;border-radius:50%;justify-content:center;align-items:center;width:90px;height:90px;display:flex;position:absolute;top:25px;left:25px}.postmark p{text-align:center;color:#8b7355;margin:0;padding:0 5px;font-size:.75rem;font-weight:700;line-height:1.3}.address-area{z-index:5;text-align:center;margin-top:20px;position:relative}.to-line{color:#2c1618;margin:0 0 8px;font-family:Playfair Display,serif;font-size:1.2rem;font-weight:700}.from-line{color:#6b5344;margin:0;font-size:.95rem;font-style:italic}.photo-popup{box-sizing:border-box;z-index:20;opacity:0;visibility:hidden;flex-direction:column;justify-content:center;align-items:center;gap:15px;width:100%;height:100%;padding:20px;transition:all .5s cubic-bezier(.25,.46,.45,.94);display:flex;position:absolute;top:0;left:0;transform:scale(.5)translateY(50px)}.envelope-wrapper.hovered .photo-popup{opacity:1;visibility:visible;transform:scale(1)translateY(0)}.popup-photo{object-fit:cover;border:4px solid #fff;border-radius:10px;width:100%;height:70%;animation:.5s cubic-bezier(.25,.46,.45,.94) forwards photoSlideUp;box-shadow:0 20px 50px #0000004d}@keyframes photoSlideUp{0%{opacity:0;transform:translateY(80px)}to{opacity:1;transform:translateY(0)}}.photo-label{text-align:center;z-index:5;position:relative}.photo-title{color:#2c1618;margin:0;font-family:Playfair Display,serif;font-size:1.3rem;font-weight:700}.photo-date{color:var(--accent);margin:4px 0 0;font-size:.9rem;font-weight:600}.envelope-caption{color:#5e1a23;font-family:Cormorant Garamond,serif;font-size:1.05rem;font-weight:600}.letter-image{cursor:pointer;width:260px;height:220px;position:relative}.animated-mail{width:260px;height:180px;margin:auto;transition:all .4s;position:absolute;inset:0}.animated-mail .body{z-index:2;border-style:solid;border-width:0 0 120px 260px;width:0;height:0;position:absolute;bottom:0;border-color:#0000 #0000 #76c69a!important}.animated-mail .top-fold{transform-origin:50% 0;z-index:2;border-style:solid;border-width:60px 130px 0;width:0;height:0;transition:transform .4s .4s,z-index .2s .4s;position:absolute;top:60px;border-color:#65b488 #0000 #0000!important}.animated-mail .back-fold{z-index:0;width:260px;height:120px;position:absolute;bottom:0;background:#65b488!important}.animated-mail .left-fold{z-index:2;border-style:solid;border-width:60px 0 60px 130px;width:0;height:0;position:absolute;bottom:0;border-color:#0000 #0000 #0000 #7fcea9!important}.animated-mail .letter{z-index:1;background:#fff;border-radius:8px;width:210px;height:80px;transition:all .4s .2s;position:absolute;bottom:0;left:25px;overflow:hidden;box-shadow:0 10px 25px #00000040}.animated-mail .letter-border{width:100%;height:10px;background:repeating-linear-gradient(-45deg,#6eba92,#6eba92 8px,#0000 8px 18px)!important}.letter-photo-wrapper{width:100%;height:110px;overflow:hidden}.letter-photo{object-fit:cover;width:100%;height:100%;display:block}.letter-meta-block{padding:6px 8px 10px;font-family:Cormorant Garamond,serif}.letter-title-text{color:#cb5a5e;font-size:.95rem;font-weight:700}.letter-date-text{color:#a96a68;font-size:.75rem}.letter-sender-text{color:#8a4b49;font-size:.75rem;font-style:italic}.shadow{background:radial-gradient(#00000080,#0000,#0000);border-radius:100%;width:280px;height:30px;transition:all .4s;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)}.letter-image:hover .animated-mail{transform:translateY(50px)}.letter-image:hover .animated-mail .top-fold{z-index:0;transition:transform .4s,z-index .2s;transform:rotateX(180deg)}.letter-image:hover .animated-mail .letter{height:200px}.letter-image:hover .shadow{width:320px}.wax-seal{z-index:4;background:radial-gradient(circle at 30% 25%,#ffb3c7,#d3415a);border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;transition:transform .45s cubic-bezier(.25,.46,.45,.94),opacity .45s cubic-bezier(.25,.46,.45,.94),box-shadow .45s cubic-bezier(.25,.46,.45,.94);animation:2.4s ease-in-out infinite waxBob;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)scale(1);box-shadow:0 10px 24px #a328428c}.wax-seal:before{content:"";border:3px solid #fff3;border-radius:50%;position:absolute;inset:4px}.wax-seal:after{content:"";opacity:.5;background:radial-gradient(circle,#0006,#0000 70%);border-radius:999px;width:38px;height:10px;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)}.wax-seal-text{letter-spacing:.12em;text-transform:uppercase;color:#fff7f7;font-family:Cormorant Garamond,serif;font-size:.7rem}@keyframes waxBob{0%{transform:translate(-50%)translateY(0)scale(1)}50%{transform:translate(-50%)translateY(-3px)scale(1.02)}to{transform:translate(-50%)translateY(0)scale(1)}}.letter-image:hover .wax-seal{opacity:0;transform:translate(-50%)translateY(24px)scale(.5)rotate(-18deg);box-shadow:0 0 #0000}.timeline-page{max-width:1100px;margin:0 auto;padding:60px 15px 80px}.timeline-header{text-align:center;margin-bottom:40px}.timeline-title{color:#a6192e;letter-spacing:.5px;font-family:Great Vibes,cursive;font-size:2.8rem}.timeline-title:after{content:"❦";color:#d65b7a;margin-top:6px;font-size:1.6rem;display:block}.timeline-sub{color:#6f6667;max-width:600px;margin:10px auto 0;font-family:Cormorant Garamond,serif;font-size:1rem;line-height:1.6}.timeline-s-container{max-width:1000px;height:1400px;margin:30px auto 0;position:relative}.timeline-s-svg{width:100%;height:100%;position:absolute;inset:0}.timeline-s-svg path{fill:none;stroke:#2c2c2c;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18 12;opacity:.75;filter:drop-shadow(0 2px 4px #0000001a);animation:4s linear infinite sPathDash}@keyframes sPathDash{0%{stroke-dashoffset:0}to{stroke-dashoffset:-60px}}.timeline-s-dot{fill:#fff;stroke:#b1303b;stroke-width:3px;filter:drop-shadow(0 3px 8px #b1303b59)}.timeline-s-couple{offset-path:path("M 100 80 C 300 80, 500 80, 700 80 C 850 80, 900 150, 850 220 C 800 280, 650 280, 550 280 C 400 280, 250 320, 200 400 C 150 480, 200 560, 350 600 C 500 640, 700 640, 800 700 C 900 760, 900 840, 800 900 C 700 960, 500 960, 350 1000 C 200 1040, 150 1120, 250 1180 C 350 1240, 550 1260, 750 1280");offset-distance:5%;offset-rotate:auto;z-index:10;opacity:0;justify-content:center;align-items:center;width:75px;height:75px;animation:20s linear 1.2s infinite coupleAlongS,.6s 1.2s forwards bubbleFadeIn;display:flex;position:absolute}.timeline-s-couple:before{content:"";opacity:.98;z-index:-1;background:radial-gradient(circle at 30% 30%,#ffe5ec,#fbd1dd,#f9b0c8);border-radius:50%;position:absolute;inset:0;box-shadow:0 8px 25px #b1303b59}@keyframes bubbleFadeIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@keyframes coupleAlongS{0%{offset-distance:5%}to{offset-distance:105%}}.couple-stage{opacity:0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.couple-emoji{margin-bottom:2px;font-size:1.5rem}.couple-label{color:#7d3942;background:#fffffff2;border-radius:999px;padding:2px 5px;font-family:Cormorant Garamond,serif;font-size:.6rem;font-weight:600}.stage-1{animation:20s linear 1.2s infinite stage1}.stage-2{animation:20s linear 1.2s infinite stage2}.stage-3{animation:20s linear 1.2s infinite stage3}.stage-4{animation:20s linear 1.2s infinite stage4}.stage-5{animation:20s linear 1.2s infinite stage5}.stage-6{animation:20s linear 1.2s infinite stage6}.stage-7{animation:20s linear 1.2s infinite stage7}.stage-8{animation:20s linear 1.2s infinite stage8}.stage-9{animation:20s linear 1.2s infinite stage9}.stage-10{animation:20s linear 1.2s infinite stage10}@keyframes stage1{0%,8%{opacity:1}10%,to{opacity:0}}@keyframes stage2{0%,9%{opacity:0}10%,18%{opacity:1}20%,to{opacity:0}}@keyframes stage3{0%,19%{opacity:0}20%,28%{opacity:1}30%,to{opacity:0}}@keyframes stage4{0%,29%{opacity:0}30%,38%{opacity:1}40%,to{opacity:0}}@keyframes stage5{0%,39%{opacity:0}40%,49%{opacity:1}51%,to{opacity:0}}@keyframes stage6{0%,49%{opacity:0}51%,59%{opacity:1}61%,to{opacity:0}}@keyframes stage7{0%,59%{opacity:0}61%,69%{opacity:1}71%,to{opacity:0}}@keyframes stage8{0%,69%{opacity:0}71%,79%{opacity:1}81%,to{opacity:0}}@keyframes stage9{0%,79%{opacity:0}81%,89%{opacity:1}91%,to{opacity:0}}@keyframes stage10{0%,89%{opacity:0}91%,to{opacity:1}}.timeline-s-events{position:absolute;inset:0}.timeline-s-event{opacity:0;max-width:220px;animation:.6s forwards sCardIn;position:absolute}.event-1{animation-delay:.1s;top:4%;left:1%}.event-2{animation-delay:.2s;top:1%;right:4%}.event-3{animation-delay:.3s;top:24%;left:-5%}.event-4{animation-delay:.4s;top:15%;right:21%}.event-5{animation-delay:.5s;top:40%;left:10%}.event-6{animation-delay:.6s;top:45%;right:-5%}.event-7{animation-delay:.7s;top:60%;left:55%}.event-8{animation-delay:.8s;top:66%;right:67%}.event-9{animation-delay:.9s;top:80%;left:30%}.event-10{animation-delay:1s;top:86%;right:1%}.timeline-s-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffffa;border:2px solid #b1303b14;border-radius:14px;padding:14px 16px;transition:all .35s cubic-bezier(.4,0,.2,1);position:relative;box-shadow:0 10px 30px #b1303b1f}.timeline-emoji{background:linear-gradient(135deg,#ff6b9d,#ffa6c1);border-radius:50%;justify-content:center;align-items:center;width:35px;height:35px;font-size:1.1rem;display:flex;position:absolute;top:-12px;right:12px;box-shadow:0 4px 10px #b1303b40}.timeline-s-card:after{content:"";background:linear-gradient(90deg,#b1303b26,#b1303b80);width:35px;height:2px;position:absolute;top:50%;transform:translateY(-50%)}.timeline-s-event.left .timeline-s-card:after{right:-35px}.timeline-s-event.right .timeline-s-card:after{left:-35px;transform:translateY(-50%)scaleX(-1)}.timeline-s-card:hover{border-color:#b1303b33;transform:translateY(-5px)scale(1.02);box-shadow:0 18px 45px #b1303b38}.timeline-year{letter-spacing:.2em;text-transform:uppercase;color:#b1303b;opacity:.8;margin-bottom:5px;font-family:Cormorant Garamond,serif;font-size:.7rem;font-weight:600}.timeline-card-title{color:#a6192e;margin:0 0 3px;font-family:Great Vibes,cursive;font-size:1.4rem;line-height:1.2}.timeline-card-subtitle{color:#8a4b49;margin:0 0 6px;font-family:Cormorant Garamond,serif;font-size:.82rem;font-style:italic;font-weight:500}.timeline-card-note{color:#5c3a3a;margin:0;font-family:Cormorant Garamond,serif;font-size:.8rem;line-height:1.5}@keyframes sCardIn{0%{opacity:0;transform:translateY(15px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.about-page{background:radial-gradient(circle at top,#ffeef3 0,#fff7fb 45%,#fdf3f6 100%);justify-content:center;align-items:center;min-height:100vh;padding:90px 20px 80px;display:flex;position:relative;overflow:hidden}.about-inner{z-index:1;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:56px;width:100%;max-width:1100px;display:grid;position:relative}.about-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transform-origin:0;background:#fffffff5;border:1px solid #b1303b1f;border-radius:24px;padding:28px 34px 30px;animation:.8s ease-out forwards aboutFadeIn;box-shadow:0 20px 60px #b1303b2e}.about-kicker{letter-spacing:.18em;text-transform:uppercase;color:#b1303b;margin-bottom:6px;font-family:Cormorant Garamond,serif;font-size:.95rem}.about-title{color:#a6192e;margin:0 0 12px;font-family:Great Vibes,cursive;font-size:2.8rem}.about-text{color:#5d3a3c;margin:0 0 12px;font-family:Cormorant Garamond,serif;font-size:1.02rem;line-height:1.9}.about-signoff{color:#7d3942;margin-top:16px;font-family:Cormorant Garamond,serif;font-size:1.05rem;font-style:italic}.about-signoff span{color:#a6192e;margin-left:6px;font-family:Great Vibes,cursive;font-size:1.7rem}.about-photo-wrap{opacity:0;justify-self:center;animation:.9s ease-out .15s forwards aboutSlideUp;position:relative}.about-photo-frame{background:linear-gradient(145deg,#ffe4eb,#ffc8d8);border-radius:22px;width:320px;max-width:100%;padding:12px 12px 40px;transition:transform .35s,box-shadow .35s;position:relative;transform:rotate(-3deg);box-shadow:0 20px 55px #b1303b4d}.about-photo{object-fit:cover;border-radius:16px;width:100%;height:260px;display:block;box-shadow:0 12px 30px #0000002e}.about-photo-caption{color:#7d3942;background:#fffffff5;border-radius:999px;padding:4px 10px;font-family:Cormorant Garamond,serif;font-size:.9rem;position:absolute;bottom:10px;left:18px;box-shadow:0 6px 15px #b1303b40}.about-photo-shadow{opacity:.4;filter:blur(2px);background:radial-gradient(#00000059,#0000 70%);border-radius:999px;height:26px;position:absolute;inset:auto 14px -18px}.about-photo-frame:hover{transform:translateY(-8px)rotate(0)scale(1.02);box-shadow:0 26px 70px #b1303b61}.about-heart{opacity:.25;pointer-events:none;z-index:0;font-size:1.9rem;animation:9s linear infinite aboutHeartFloat;position:absolute}.about-heart-1{animation-delay:0s;bottom:-40px;left:8%}.about-heart-2{animation-delay:2s;bottom:-60px;right:12%}.about-heart-3{animation-delay:4s;bottom:-80px;left:45%}@keyframes aboutHeartFloat{0%{opacity:0;transform:translateY(0)scale(1)}10%{opacity:.25}50%{opacity:.28;transform:translateY(-220px)scale(1.1)}90%{opacity:0}to{opacity:0;transform:translateY(-260px)scale(1.1)}}@keyframes aboutFadeIn{0%{opacity:0;transform:translate(-20px)scale(.98)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes aboutSlideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.special-overlay{z-index:120000;-webkit-backdrop-filter:blur(6px)saturate(1.05);backdrop-filter:blur(6px)saturate(1.05);background:radial-gradient(circle at 20% 10%,#ffe6f0f0,#fffafaeb);place-items:center;display:grid;position:fixed;inset:0}.special-modal{background:linear-gradient(#fffffffc,#fffafafc);border:1px solid #b1303b0f;border-radius:18px;grid-template-columns:1fr 1.2fr;gap:18px;width:min(1120px,94vw);max-height:88vh;padding:22px;display:grid;position:relative;overflow:hidden;box-shadow:0 40px 120px #140a0a24}.special-close{cursor:pointer;background:#fffc;border:0;border-radius:8px;padding:6px 10px;font-size:1.05rem;position:absolute;top:14px;right:14px}.special-left{text-align:center;z-index:2;flex-direction:column;justify-content:center;align-items:center;gap:14px;max-height:calc(90vh - 48px);padding:22px;display:flex;position:relative;overflow-y:auto}.special-left .sketch-wrap{z-index:-1;opacity:.25;pointer-events:none;position:absolute;inset:0 auto auto 0}.special-right{justify-content:center;align-items:center;margin:0 0 55px;display:flex;position:relative;overflow:visible!important}.sketch-wrap{width:100%;min-height:200px;margin-bottom:20px;position:relative}.sketch-container{opacity:0;justify-content:center;align-items:center;transition:opacity .8s,transform .8s;display:flex;position:absolute;inset:0;transform:scale(.9)}.sketch-container.active{opacity:1;transform:scale(1)}.sketch-couple,.sketch-hugging{filter:drop-shadow(0 10px 30px #a328421a);width:100%;max-width:320px;height:auto}.sketch-path{stroke-dasharray:300;stroke-dashoffset:300px;stroke-linecap:round;stroke-linejoin:round}.sketch-path.animate-draw{animation:1.5s forwards sketchDraw}@keyframes sketchDraw{to{stroke-dashoffset:0}}.sketch-dot{transform-origin:50%;transform:scale(0)}.sketch-dot.animate-pop{animation:.6s cubic-bezier(.34,1.56,.64,1) forwards sketchPop}@keyframes sketchPop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.mini-heart{opacity:0;animation:3s ease-in-out infinite miniHeartFloat}.mini-heart.h1{animation-delay:1.5s}.mini-heart.h2{animation-delay:2s}.mini-heart.h3{animation-delay:2.5s}@keyframes miniHeartFloat{0%,to{opacity:0;transform:translateY(0)scale(.8)}20%{opacity:1}50%{opacity:1;transform:translateY(-15px)scale(1)}80%{opacity:.5}}.kiss-mark{opacity:0;animation:2s ease-in-out infinite kissAppear}.kiss-mark.k1{animation-delay:2s}.kiss-mark.k2{animation-delay:3s}@keyframes kissAppear{0%,to{opacity:0;transform:scale(0)rotate(-20deg)}20%,80%{opacity:1;transform:scale(1)rotate(0)}}.sparkle{opacity:0;animation:2.5s ease-in-out infinite sparkleGlow}.sparkle.s1{animation-delay:.5s}.sparkle.s2{animation-delay:1s}.sparkle.s3{animation-delay:1.5s}@keyframes sparkleGlow{0%,to{opacity:0;transform:scale(.5)rotate(0)}50%{opacity:1;transform:scale(1.2)rotate(180deg)}}.hug-heart{opacity:0;animation:3s ease-in-out infinite hugHeartPulse}.hug-heart.hh1{animation-delay:.8s}.hug-heart.hh2{animation-delay:1.2s}.hug-heart.hh3{animation-delay:1.6s}@keyframes hugHeartPulse{0%,to{opacity:0;transform:scale(.5)translateY(10px)}30%,70%{opacity:1;transform:scale(1)translateY(-5px)}}.hug-arm{animation:2s ease-in-out 1s infinite hugSqueeze}@keyframes hugSqueeze{0%,to{stroke-width:3px}50%{stroke-width:4px}}.audio-visualizer-container{background:linear-gradient(135deg,#fff0f580,#ffe6ee4d);border-radius:12px;width:100%;margin:15px 0;position:relative;overflow:hidden;box-shadow:inset 0 2px 10px #b1303b1a}.audio-visualizer-canvas{border-radius:12px;width:100%;height:80px;display:block}.visualizer-hearts{pointer-events:none;position:absolute;inset:0;overflow:hidden}.v-heart{opacity:.7;font-size:16px;animation:3s ease-in-out infinite vHeartFloat;position:absolute}.v-heart.vh1{animation-delay:0s;left:10%}.v-heart.vh2{animation-delay:1s;left:50%}.v-heart.vh3{animation-delay:2s;left:85%}@keyframes vHeartFloat{0%,to{opacity:0;transform:translateY(60px)scale(.8)}20%{opacity:.8}50%{opacity:.9;transform:translateY(20px)scale(1)}80%{opacity:.5}to{opacity:0;transform:translateY(-10px)scale(.6)}}.celebration-confetti{pointer-events:none;z-index:120001;position:fixed;inset:0;overflow:hidden}.confetti-particle{will-change:transform;font-size:24px;animation:linear forwards confettiFall;position:absolute}@keyframes confettiFall{0%{opacity:0;transform:translateY(-20px)rotate(0)scale(0)}10%{opacity:1;transform:translateY(0)rotate(20deg)scale(1)}90%{opacity:1}to{opacity:0;transform:translateY(100vh)rotate(720deg)scale(.5)}}.floating-love-particles{pointer-events:none;z-index:119999;position:fixed;inset:0;overflow:hidden}.love-particle{opacity:0;animation:8s ease-in-out infinite loveParticleRise;position:absolute;bottom:-30px}@keyframes loveParticleRise{0%{opacity:0;transform:translateY(0)translate(0)rotate(0)}10%{opacity:.8}50%{opacity:.6}to{opacity:0;transform:translateY(-100vh)translate(30px)rotate(360deg)}}.special-overlay{animation:.5s forwards overlayFadeIn}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.special-modal{animation:.6s cubic-bezier(.34,1.56,.64,1) forwards modalSlideIn}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.9)translateY(30px)}to{opacity:1;transform:scale(1)translateY(0)}}.special-close{cursor:pointer;z-index:10;background:#fffffff2;border:2px solid #b1303b26;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;font-size:0;transition:all .3s;display:flex;position:absolute;top:16px;right:16px;box-shadow:0 4px 15px #0000001a}.special-close svg{color:#b1303b;transition:transform .3s}.special-close:hover{background:#fff0f3;border-color:#b1303b;transform:rotate(90deg);box-shadow:0 6px 20px #b1303b33}.special-close:hover svg{transform:scale(1.1)}.special-close:active{transform:rotate(90deg)scale(.95)}.special-counter{text-align:center;padding:10px 0}.special-counter-title{color:#a6192e;text-shadow:0 2px 10px #a6192e33;margin-bottom:10px;font-family:Great Vibes,cursive;font-size:2rem;animation:3s ease-in-out infinite titleGlow}@keyframes titleGlow{0%,to{text-shadow:0 2px 10px #a6192e33}50%{text-shadow:0 2px 20px #a6192e66,0 0 40px #ff6b8a4d}}.special-counter-years{justify-content:center;align-items:baseline;gap:12px;margin:15px 0;display:flex}.special-counter-years .num{color:#a6192e;font-family:Great Vibes,cursive;font-size:5rem;line-height:1;animation:2s ease-in-out infinite numPulse}@keyframes numPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.special-counter-years .label{color:#5d3a3c;font-family:Cormorant Garamond,serif;font-size:1.2rem;font-weight:500}.special-meta{margin:15px 0}.special-date{color:#7d3942;margin-bottom:5px;font-family:Cormorant Garamond,serif;font-size:1.1rem}.special-days{color:#9a6b70;font-family:Cormorant Garamond,serif;font-size:.95rem}.special-actions{flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:12px;margin-top:20px;padding-bottom:10px;display:flex}.music-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ff6b8a,#ff8fab);border:none;border-radius:50px;align-items:center;gap:8px;padding:12px 24px;font-size:1rem;font-weight:600;transition:all .3s;display:flex;box-shadow:0 4px 15px #ff6b8a66}.music-btn:hover{transform:translateY(-3px);box-shadow:0 8px 25px #ff6b8a80}.music-btn.playing{background:linear-gradient(135deg,#a6192e,#d64f6e);animation:1s ease-in-out infinite musicPulse}@keyframes musicPulse{0%,to{box-shadow:0 4px 15px #a6192e66}50%{box-shadow:0 4px 25px #a6192e99,0 0 40px #ff6b8a4d}}.music-icon{font-size:1.2rem;animation:.6s ease-in-out infinite musicBounce}.music-btn.playing .music-icon{animation:.4s ease-in-out infinite musicBounce}@keyframes musicBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.love-note-btn{color:#a6192e;cursor:pointer;background:#ffffffe6;border:2px solid #a6192e33;border-radius:50px;padding:12px 24px;font-size:1rem;font-weight:600;transition:all .3s}.love-note-btn:hover{background:#fff0f3;border-color:#a6192e;transform:translateY(-3px);box-shadow:0 8px 20px #a6192e33}.special-flare{text-align:center;margin-top:20px}.initials{color:#7c2a37;background:linear-gradient(135deg,#fffafacc,#fff0f5e6);border-radius:999px;padding:10px 20px;font-family:Great Vibes,cursive;font-size:2.8rem;animation:4s ease-in-out infinite initialsFloat;display:inline-block;box-shadow:0 8px 30px #b1303b26}@keyframes initialsFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.slideshow{border-radius:16px;width:100%;height:100%;min-height:400px;position:relative;overflow:hidden}.slide{object-fit:cover;border-radius:16px;width:100%;height:100%;animation:.6s forwards slideEnter}@keyframes slideEnter{0%{opacity:0;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.slide.empty{color:#7d3942;background:linear-gradient(135deg,#fff5f7,#ffe8ed);flex-direction:column;justify-content:center;align-items:center;gap:15px;font-family:Cormorant Garamond,serif;font-size:1.2rem;display:flex}.empty-heart{font-size:3rem;animation:1.5s ease-in-out infinite emptyHeartPulse}@keyframes emptyHeartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}:root{--ln-backdrop:#0a080a47;--ln-paper-bg:linear-gradient(180deg,#fffdfb,#fff8f4);--ln-text:#6b4b4e}.scroll-overlay{z-index:9999999;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#140a0f99;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.scroll-overlay.show{animation:.4s forwards scrollFadeIn}@keyframes scrollFadeIn{0%{opacity:0}to{opacity:1}}.scroll-container{flex-direction:row;align-items:center;max-width:95vw;height:320px;display:flex;position:relative}.scroll-close{z-index:100;color:#b1303b;cursor:pointer;background:#fff;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:transform .2s;display:flex;position:absolute;top:-12px;right:-12px;box-shadow:0 4px 15px #00000040}.scroll-close:hover{transform:scale(1.1)}.scroll-roll{z-index:10;background:linear-gradient(90deg,#d4b87a 0%,#c9a86c 20%,#a07850 50%,#8b6843 80%,#7a5a3a 100%);border-radius:12px;flex-shrink:0;width:24px;height:100%;min-height:320px;position:relative;box-shadow:3px 0 10px #0000004d,inset -2px 0 4px #0003}.scroll-roll-left{border-radius:12px 6px 6px 12px;margin-right:-6px}.scroll-roll-right{border-radius:6px 12px 12px 6px;margin-left:-6px}.roll-end{background:linear-gradient(#e8c88a 0%,#c9a86c 30%,#a07850 70%,#7a5a3a 100%);border-radius:4px;width:32px;height:18px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 2px 6px #0000004d}.roll-end.top{top:-9px}.roll-end.bottom{bottom:-9px}.scroll-paper{opacity:0;background:linear-gradient(90deg,#dcc8aa80 0%,#0000 3% 97%,#dcc8aa80 100%),linear-gradient(#fdfbf5 0%,#f9f3e3 50%,#f5edd5 100%);border-top:2px solid #e0d4c0;border-bottom:2px solid #e0d4c0;justify-content:center;align-items:center;max-width:0;height:100%;min-height:320px;transition:max-width .8s cubic-bezier(.4,0,.2,1),opacity .3s,padding .8s;display:flex;overflow:hidden;box-shadow:inset 0 0 40px #8b684314,0 4px 20px #0000001a}.scroll-container.unrolled .scroll-paper{opacity:1;max-width:480px;padding:30px 40px}.scroll-content{opacity:0;text-align:center;min-width:250px;max-width:400px;transition:opacity .4s .6s,transform .4s .6s;transform:scale(.9)}.scroll-container.unrolled .scroll-content{opacity:1;transform:scale(1)}.scroll-title{text-shadow:1px 1px 2px #a6192e26;color:#a6192e!important;margin:0 0 20px!important;font-family:Great Vibes,cursive!important;font-size:2rem!important}.scroll-message{color:#4a3728;white-space:pre-wrap;text-align:left;font-family:Cormorant Garamond,Georgia,serif;font-size:1.15rem;line-height:1.8}.scroll-caret{color:#a6192e;margin-left:2px;font-weight:700;animation:.7s step-end infinite scrollBlink}.scroll-caret.hide{display:none}@keyframes scrollBlink{0%,to{opacity:1}50%{opacity:0}}.scroll-signature{text-align:right;color:#7a3b3f;margin-top:24px;font-family:Dancing Script,cursive;font-size:1.25rem;font-style:italic}@media (max-width:600px){.scroll-container{height:280px}.scroll-roll{width:20px;min-height:280px}.scroll-paper{min-height:280px}.scroll-container.unrolled .scroll-paper{max-width:80vw;padding:20px 25px}.scroll-content{min-width:180px}.scroll-title{font-size:1.6rem!important}.scroll-message{font-size:1rem}.roll-end{width:28px;height:14px}}@media (max-width:980px){.sketch-wrap{min-height:150px;margin-bottom:15px}.sketch-couple,.sketch-hugging{max-width:250px}.special-counter-title{font-size:1.6rem}.special-counter-years .num{font-size:4rem}.audio-visualizer-canvas{height:60px}.special-actions{flex-direction:column;align-items:center}.music-btn,.love-note-btn{justify-content:center;width:100%;max-width:280px}}@media (max-width:640px){.special-close{width:36px;height:36px;top:12px;right:12px}.sketch-wrap{flex-shrink:0;height:160px;min-height:120px}.sketch-couple,.sketch-hugging{max-width:200px}.special-counter-title{font-size:1.4rem}.special-counter-years .num{font-size:3.5rem}.special-counter-years .label{font-size:1rem}.initials{padding:8px 16px;font-size:2.2rem}.slideshow{min-height:300px}.confetti-particle{font-size:18px}.love-particle{font-size:14px!important}}@media (max-width:480px){.sketch-wrap{min-height:100px}.sketch-couple,.sketch-hugging{max-width:160px}.special-counter-years .num{font-size:3rem}.music-btn,.love-note-btn{padding:10px 20px;font-size:.9rem}.audio-visualizer-canvas{height:50px}}@media (prefers-reduced-motion:reduce){.sketch-path,.sketch-dot,.mini-heart,.kiss-mark,.sparkle,.hug-heart,.confetti-particle,.love-particle,.v-heart{opacity:1!important;animation:none!important;transform:none!important}.sketch-path{stroke-dashoffset:0!important}.sketch-dot{transform:scale(1)!important}}.sketch-couple{filter:drop-shadow(0 10px 26px #a328420f);width:320px;height:200px;display:block;overflow:visible}.sketch-path{stroke-dasharray:220;stroke-dashoffset:220px;stroke-linecap:round;animation:2s .2s forwards drawStroke}@keyframes drawStroke{to{stroke-dashoffset:0}}.sketch-dot{transform-origin:50%;fill:#fbeaf0;animation:.6s 1.2s forwards popHead;transform:scale(0)}@keyframes popHead{to{transform:scale(1)}}.sketch-caption{color:#7d4b4b;opacity:.95;margin-left:6px;font-family:Cormorant Garamond,serif;font-size:.9rem}.special-counter-title{color:#7d3942;letter-spacing:.14em;text-transform:uppercase;font-family:Cormorant Garamond,serif;font-size:1.05rem}.special-counter-years{align-items:baseline;gap:14px;display:flex}.special-counter-years .num{color:#a6192e;font-family:Great Vibes,cursive;font-size:4.8rem}.special-counter-years .label{color:#5d3a3c;font-family:Cormorant Garamond,serif;font-size:1.05rem}.special-meta{color:#6b4b4e;font-family:Cormorant Garamond,serif}.special-actions{gap:10px;margin-top:10px;display:flex}.special-flare{margin-top:8px}.initials{color:#7c2a37;background:linear-gradient(#fffafa99,#ffffffb3);border-radius:999px;padding:8px 14px;font-family:Great Vibes,cursive;font-size:2.6rem;box-shadow:0 12px 40px #b1303b1f}.slideshow{place-items:center;width:100%;height:520px;display:grid;position:relative}.slide{object-fit:cover;transform-origin:50%;border-radius:12px;width:100%;height:100%;animation:.6s slideIn;box-shadow:0 20px 60px #0000002e}@keyframes slideIn{0%{opacity:0;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.slide-controls{z-index:12;gap:8px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.dot{cursor:pointer;background:#0003;border:1px solid #fff9;border-radius:100%;width:10px;height:10px}.dot.active{background:linear-gradient(#ff7aa6,#ff3f78);box-shadow:0 8px 18px #ff508c2e}.visualizer-wrap{pointer-events:none;z-index:6;justify-content:center;align-items:end;height:64px;display:flex;position:absolute;bottom:14px;left:18px;right:18px}.audio-visualizer{pointer-events:none;background:linear-gradient(#ffffff0f,#ffffff05);border-radius:8px;width:calc(100% - 36px);height:64px;box-shadow:inset 0 -6px 30px #0000000f}.petals{pointer-events:none;z-index:5000;position:absolute;inset:0}.petals:before,.petals:after{content:" ";opacity:.9;background:radial-gradient(circle at 30% 30%,#ffd7e3,#ff9fc0);border-radius:50%;width:20px;height:20px;animation:6s linear infinite fall1;position:absolute;transform:translateY(-20vh)}.petals:after{animation-duration:7.2s;animation-delay:1.2s;left:60%}@keyframes fall1{0%{opacity:0;transform:translateY(-20vh)translate(0)rotate(0)}10%{opacity:1}to{opacity:0;transform:translateY(120vh)translate(18vw)rotate(360deg)}}.fireworks{pointer-events:none;mix-blend-mode:screen;background-image:radial-gradient(circle at 20% 20%,#ffc8e624,#0000 10%),radial-gradient(circle at 70% 40%,#fff5c824,#0000 10%);position:absolute;inset:0}.heart-bloom{transform-origin:50%;transform-box:fill-box;opacity:0;animation:3.6s ease-in-out 2.6s infinite heartSequence}@keyframes heartSequence{0%{opacity:0;transform:scale(.6)translateY(6px)}20%{opacity:1;transform:scale(1.08)translateY(0)}35%{transform:scale(1)translateY(-2px)}50%{transform:scale(.96)translateY(-6px)}70%{filter:drop-shadow(0 6px 18px #ff508c24);transform:scale(1.12)translateY(-10px)}90%{opacity:.95}to{opacity:0;transform:scale(.6)translateY(-20px)}}.petal{fill:#ffd7e3;opacity:0;transform-origin:50%;animation:3.6s ease-in-out infinite petalFlick}@keyframes petalFlick{0%{opacity:0;transform:translateY(0)scale(.6)rotate(0)}24%{opacity:1;transform:translateY(-6px)scale(1)rotate(10deg)}50%{opacity:.8;transform:translateY(-14px)scale(.9)rotate(30deg)}to{opacity:0;transform:translateY(-30px)scale(.4)rotate(80deg)}}@keyframes particleFade{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0)}}@media (min-width:1200px){.content-wrapper{max-width:1200px}}@media (max-width:1024px){.envelope-scene{grid-template-columns:repeat(2,minmax(240px,1fr))}}@media (max-width:980px){.sidebar-love{width:78%;max-width:320px;transform:translate(-100%)}.sidebar-love.open{transform:translate(0)}.main-content{margin-left:0;padding:20px 18px}.sidebar-toggle-fixed{top:10px;left:14px!important}body.sidebar-collapsed .sidebar-toggle-fixed{left:14px!important}.logo-anim{width:72px;height:72px}.hero-wrapper{width:100vw;margin-left:0;padding:60px 16px 100px}.hero-hero{padding:64px 20px}.hero-card{padding:32px 24px}.hero-card h1{font-size:2rem}.hero-card p{font-size:1rem}.content-wrapper .hero-hero:before{left:-40px;right:-40px}.heart-map-container{max-width:90%;height:600px}.map-title{font-size:2rem}.special-modal{grid-template-columns:1fr;height:94vh;padding:16px}.slideshow{height:360px}.sketch-couple{display:none}.timeline-s-container{height:auto;padding-bottom:30px}.timeline-s-svg,.timeline-s-couple{display:none}.timeline-s-events{flex-direction:column;gap:20px;display:flex;position:static}.timeline-s-event{max-width:100%;position:relative;top:auto!important;left:auto!important;right:auto!important}.timeline-s-card:after{display:none}.timeline-emoji{width:32px;height:32px;font-size:1rem}}@media (max-width:900px){.about-inner{grid-template-columns:minmax(0,1fr);gap:40px}.about-photo-wrap{justify-self:center}.about-photo-frame{transform:rotate(-2deg)}}@media (max-width:768px){.section-title{font-size:2rem}.story-grid,.stats-grid,.cta-grid{grid-template-columns:1fr}.quote-text{font-size:1.3rem}.stat-number{font-size:2.8rem}.our-story-section,.quote-section,.cta-section{padding:50px 0}.notebook-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:30px}.notebook-wrapper{width:240px;height:320px}.postcards-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:40px}.envelope-wrapper{height:260px}.postcards-title{font-size:2rem}.postcards-subtitle{font-size:1rem}.envelope-stamp{width:60px;height:60px}.stamp-icon{font-size:36px}.postmark{width:75px;height:75px}.postmark p{font-size:.7rem}.to-line{font-size:1.1rem}.from-line{font-size:.9rem}.photo-title{font-size:1.1rem}.photo-date{font-size:.85rem}}@media (max-width:640px){.loading-heart{font-size:2.5rem}.loading-text-main{font-size:1.8rem}.loading-text-sub{padding:0 20px;font-size:.95rem}.about-page{padding-top:70px}.about-card{padding:22px 20px 24px}.about-title{font-size:2.3rem}.about-photo,.book-inner{height:220px}.heart-map-container{height:500px}#map{height:500px;transform:scale(.85)}.envelope-scene{grid-template-columns:1fr}.letter-image{width:240px;height:210px}.love-envelope{width:260px;height:160px}.timeline-title{font-size:2.2rem}.timeline-sub{font-size:.9rem}.timeline-s-card{padding:12px 14px}.timeline-card-title{font-size:1.3rem}.gallery-title{font-size:2.5rem}.gallery-subtext{padding:0 15px;font-size:1.3rem}}@media (max-width:480px){.hero-card{padding:30px 20px}.hero-card h1{font-size:1.8rem}.hero-buttons{flex-direction:column;gap:12px}.btn{justify-content:center;width:100%}.notebook-grid{grid-template-columns:1fr}.postcards-grid{grid-template-columns:1fr;gap:30px}.envelope-wrapper{height:280px}.postcards-page{padding:40px 15px 80px}.envelope-bg{padding:20px}.envelope-stamp{width:55px;height:55px;top:15px;right:15px}.stamp-icon{font-size:32px}.postmark{width:65px;height:65px;top:15px;left:15px}.to-line{font-size:1rem}.from-line{font-size:.85rem}.quote-card{padding:30px 20px}.quote-text{font-size:1.2rem}.section-title{font-size:1.8rem}.story-card{padding:30px 20px}.stat-number{font-size:2.5rem}.cta-card{padding:25px 20px}.map-page{padding:30px 15px 50px}.map-title{font-size:1.8rem}#map{border-radius:12px;height:400px}.special-counter-years .num{font-size:3.5rem}.about-photo-frame{width:280px;padding:10px 10px 35px}.about-title{font-size:2rem}.about-text{font-size:.95rem}}@media (max-width:360px){.hero-card h1{font-size:1.6rem}.gallery-title{font-size:2rem}.loading-text-main{font-size:1.5rem}.special-counter-years .num{font-size:3rem}.about-photo-frame{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.bokeh-dot,.global-sparkle,.loading-heart,.heart-bloom,.petal{animation:none!important}}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline:3px solid var(--accent);outline-offset:2px}@media (prefers-contrast:high){:root{--accent:#8b0000}.hero-card,.story-card,.quote-card,.cta-card,.about-card,.timeline-s-card{border:2px solid #000}}@media print{.sidebar-love,.sidebar-toggle-fixed,.loading-screen,.global-sparkles-overlay,.bokeh-wrap{display:none!important}.main-content{margin-left:0!important}body{background:#fff}}
