@import url(https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,800;1,400;1,600&family=Dancing+Script:wght@400;500;600;700&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&display=swap);@keyframes heroGlow{0%{transform:translate(0,0) scale(1)}to{transform:translate(5%,3%) scale(1.1)}}@keyframes floatUp{0%{opacity:0;transform:translateY(0) translateX(0) rotate(0deg) scale(.5)}10%,90%{opacity:var(--max-opacity, 0.7)}50%{transform:translateY(-50vh) translateX(var(--drift, 30px)) rotate(180deg) scale(1)}to{opacity:0;transform:translateY(-110vh) translateX(calc(var(--drift, 30px)*-1)) rotate(360deg) scale(.3)}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes heartbeat{0%,30%,to{transform:scale(1)}15%{transform:scale(1.15)}45%{transform:scale(1.1)}}@keyframes scrollBounce{0%,to{transform:rotate(45deg) translate(0,0);opacity:.5}50%{transform:rotate(45deg) translate(5px,5px);opacity:1}}@keyframes counterPulse{0%,to{text-shadow:0 0 20px rgba(232,160,180,.2)}50%{text-shadow:0 0 40px rgba(232,160,180,.5)}}@keyframes sealPulse{0%,to{box-shadow:0 3px 12px rgba(231,76,111,.5)}50%{box-shadow:0 3px 20px rgba(231,76,111,.8),0 0 40px rgba(231,76,111,.2)}}@keyframes hintPulse{0%,to{opacity:.5}50%{opacity:1}}@keyframes infinitySpin{0%{transform:rotateY(0deg)}to{transform:rotateY(360deg)}}@keyframes mouseSparkle{0%{opacity:1;transform:scale(1) translate(0,0)}to{opacity:0;transform:scale(0) translate(var(--dx, 20px),var(--dy, -30px))}}@keyframes currentYearGlow{0%{box-shadow:0 0 15px rgba(232,160,180,.15)}to{box-shadow:0 0 30px rgba(232,160,180,.35),0 0 60px rgba(232,160,180,.1)}}@keyframes heartFall{0%{opacity:0;transform:translateX(0) rotate(0deg) scale(.5)}10%{opacity:var(--max-opacity, 0.3);transform:translateX(0) rotate(calc(var(--rotation, 0deg)*.1)) scale(.8)}25%{transform:translateX(calc(var(--sway, 30px)*.5)) rotate(calc(var(--rotation, 0deg)*.3)) scale(1)}50%{opacity:var(--max-opacity, 0.3);transform:translateX(var(--sway, 30px)) rotate(calc(var(--rotation, 0deg)*.6)) scale(.9)}75%{transform:translateX(calc(var(--sway, 30px)*.3)) rotate(calc(var(--rotation, 0deg)*.8)) scale(.8)}to{opacity:0;transform:translateX(calc(var(--sway, 30px)*-.2)) rotate(var(--rotation, 360deg)) scale(.4);top:105vh}}@keyframes twinkle{0%{opacity:.1;transform:scale(.5);box-shadow:0 0 2px rgba(255,255,255,.3)}50%{opacity:.8;transform:scale(1.2);box-shadow:0 0 8px rgba(232,160,180,.6),0 0 15px rgba(232,160,180,.2)}to{opacity:.2;transform:scale(.7);box-shadow:0 0 3px rgba(255,255,255,.4)}}@keyframes heartBurst{0%{opacity:1;transform:translate(0,0) scale(0)}30%{opacity:1;transform:translate(calc(var(--burst-dx)*.5),calc(var(--burst-dy)*.5)) scale(1.2)}to{opacity:0;transform:translate(var(--burst-dx),calc(var(--burst-dy) + 30px)) scale(.3)}}@keyframes heartPop{0%{opacity:0;transform:scale(0) translateY(0)}20%{opacity:.8;transform:scale(1.3) translateY(-5px)}to{opacity:0;transform:scale(.5) translateY(-60px)}}@keyframes shimmer{0%{left:-100%}50%,to{left:150%}}@keyframes heartIconPulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 0 transparent)}50%{transform:scale(1.3);filter:drop-shadow(0 0 8px rgba(231,76,111,.6))}}:root{--rose-primary:#e8a0b4;--rose-soft:#f4c7d4;--rose-blush:#f9dce5;--bg-deep:#1a0a10;--bg-midnight:#2a0f1a;--bg-card:rgba(42, 15, 26, 0.6);--gold-warm:#d4a574;--gold-champagne:#f0d5a8;--text-cream:#faf0f3;--text-rose:#e8c8d4;--text-muted:#b08898;--heart-red:#e74c6f;--heart-pink:#f28da5;--shadow-rose:rgba(232, 160, 180, 0.15);--shadow-gold:rgba(212, 165, 116, 0.2);--font-display:'Playfair Display', Georgia, serif;--font-script:'Dancing Script', cursive;--font-body:'Cormorant Garamond', 'Times New Roman', serif;--ease-romantic:cubic-bezier(0.25, 0.46, 0.45, 0.94);--ease-bounce:cubic-bezier(0.68, -0.55, 0.265, 1.55)}*,::after,::before{margin:0;padding:0;box-sizing:border-box}body,html{overflow-x:hidden}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);background:var(--bg-deep);color:var(--text-cream);line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--rose-primary);border-radius:3px}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,rgba(232,160,180,.12) 0%,transparent 60%),radial-gradient(ellipse at 80% 70%,rgba(212,165,116,.08) 0%,transparent 50%),linear-gradient(175deg,var(--bg-midnight) 0%,var(--bg-deep) 40%,#120812 100%)}.hearts-container,.hero::before{position:absolute;pointer-events:none}.hero::before{content:"";top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 50% 50%,rgba(232,160,180,.04)0,transparent 50%);animation:heroGlow 8s ease-in-out infinite alternate}.hearts-container{inset:0;overflow:hidden;z-index:1}.floating-heart{position:absolute;bottom:-80px;opacity:0;animation:floatUp var(--duration, 8s) var(--delay, 0s) infinite;filter:blur(var(--blur, 0px));color:var(--color, var(--heart-pink));font-size:var(--size, 20px);will-change:transform,opacity;transform:translateZ(0)}.hero-content{position:relative;z-index:2;padding:2rem}.hero-subtitle-top{font-family:var(--font-script);font-size:clamp(1.2rem,3vw,1.8rem);color:var(--gold-champagne);opacity:0;animation:fadeSlideUp 1.2s .3s var(--ease-romantic) forwards;margin-bottom:.5rem}.hero-year-badge{display:inline-block;font-family:var(--font-display);font-size:clamp(.9rem,2vw,1.1rem);color:var(--gold-warm);border:1px solid rgba(212,165,116,.3);padding:.4rem 1.5rem;border-radius:50px;letter-spacing:3px;text-transform:uppercase;margin-bottom:1.5rem;opacity:0;animation:fadeSlideUp 1.2s .6s var(--ease-romantic) forwards;background:rgba(212,165,116,.05);backdrop-filter:blur(10px)}.hero-title,.section-header h2{font-family:var(--font-display);color:var(--text-cream);margin-bottom:.5rem}.hero-title{font-size:clamp(2.5rem,8vw,5.5rem);font-weight:700;line-height:1.1;opacity:0;animation:fadeSlideUp 1.2s .9s var(--ease-romantic) forwards;text-shadow:0 0 60px rgba(232,160,180,.3)}.hero-title .highlight{background:linear-gradient(135deg,var(--rose-primary),var(--gold-champagne));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-heart-divider{font-size:2.5rem;margin:1rem 0;opacity:0;animation:fadeSlideUp 1s 1.2s var(--ease-romantic) forwards,heartbeat 1.5s 2.5s ease-in-out infinite;filter:drop-shadow(0 0 15px rgba(231,76,111,.5))}.hero-names,.hero-sub-message{font-family:var(--font-script);opacity:0}.hero-names{font-size:clamp(1.8rem,5vw,3.2rem);color:var(--rose-soft);margin-bottom:2rem;animation:fadeSlideUp 1.2s 1.5s var(--ease-romantic) forwards}.hero-names .ampersand{font-family:var(--font-display);font-style:italic;color:var(--gold-warm);margin:0 .5rem;font-size:.8em}.hero-sub-message{font-size:clamp(1.2rem,3.5vw,2rem);color:var(--gold-champagne);animation:fadeSlideUp 1.2s 1.8s var(--ease-romantic) forwards;margin-top:-.5rem}.love-counter::before,.scroll-indicator{position:absolute;left:50%;transform:translateX(-50%)}.scroll-indicator{bottom:2rem;z-index:2;opacity:0;animation:fadeSlideUp 1s 2.5s var(--ease-romantic) forwards}.scroll-indicator span{display:block;font-family:var(--font-body);font-size:.85rem;color:var(--text-muted);letter-spacing:2px;margin-bottom:.5rem}.scroll-arrow{display:block;margin:0 auto;width:24px;height:24px;border-right:2px solid var(--rose-primary);border-bottom:2px solid var(--rose-primary);transform:rotate(45deg);animation:scrollBounce 2s ease-in-out infinite}.love-counter{padding:5rem 2rem;text-align:center;position:relative;background:linear-gradient(180deg,var(--bg-deep) 0%,var(--bg-midnight) 50%,var(--bg-deep) 100%)}.love-counter::before{content:"";top:0;width:1px;height:60px;background:linear-gradient(to bottom,transparent,var(--rose-primary),transparent)}.counter-title{font-family:var(--font-script);font-size:clamp(1.5rem,4vw,2.2rem);color:var(--gold-champagne);margin-bottom:2.5rem}.counter-grid{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap;max-width:700px;margin:0 auto 2.5rem}.counter-item{background:rgba(232,160,180,.06);border:1px solid rgba(232,160,180,.12);border-radius:16px;padding:1.5rem 1.8rem;min-width:120px;backdrop-filter:blur(10px);transition:transform .3s var(--ease-romantic),box-shadow .3s}.counter-item:hover{transform:translateY(-4px);box-shadow:0 8px 30px var(--shadow-rose)}.counter-number{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,3.5rem);font-weight:700;color:var(--rose-primary);line-height:1;display:block;animation:counterPulse 3s ease-in-out infinite}.counter-label{font-family:var(--font-body);font-size:.95rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;margin-top:.5rem}.counter-heartbeat{font-size:2rem;display:inline-block;animation:heartbeat 1.5s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(231,76,111,.4))}.counter-subtitle{font-family:var(--font-body);font-style:italic;font-size:clamp(1rem,2.5vw,1.3rem);color:var(--text-rose);max-width:500px;margin:0 auto}.timeline-section{padding:5rem 2rem 3rem;position:relative;background:var(--bg-deep)}.section-header{text-align:center;margin-bottom:4rem}.section-header h2{font-size:clamp(2rem,5vw,3rem);font-weight:600}.section-header .decorative-line{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem}.decorative-line span{display:block;height:1px;width:60px;background:linear-gradient(to right,transparent,var(--gold-warm),transparent)}.decorative-line .heart-icon{color:var(--heart-red);font-size:.9rem}.timeline{position:relative;max-width:900px;margin:0 auto;padding-left:40px}.timeline::before{content:"";position:absolute;left:15px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,transparent,var(--rose-primary) 10%,var(--rose-primary) 90%,transparent)}.timeline-year{position:relative;margin-bottom:1rem;padding-top:2rem}.timeline-year-label{position:relative;display:inline-flex;align-items:center;gap:.8rem;font-family:var(--font-display);font-size:clamp(1rem,3vw,1.5rem);font-weight:700;color:var(--gold-champagne);padding:.5rem 1.5rem;background:var(--bg-deep);border:1px solid rgba(212,165,116,.2);border-radius:50px;margin-left:-8px;z-index:2}.timeline-year-label::before{content:"";position:absolute;left:-33px;top:50%;transform:translateY(-50%);width:14px;height:14px;background:var(--gold-warm);border-radius:50%;border:3px solid var(--bg-deep);box-shadow:0 0 15px rgba(212,165,116,.5)}.timeline-year-label .year-heart{font-size:1rem}.timeline-item{position:relative;margin-bottom:2.5rem;padding-left:1.5rem;opacity:0;transform:translateX(-20px);transition:all .8s var(--ease-romantic)}.timeline-item.visible{opacity:1;transform:translateX(0)}.timeline-item::before{content:"";position:absolute;left:-29px;top:20px;width:10px;height:10px;background:var(--rose-primary);border-radius:50%;border:2px solid var(--bg-deep);box-shadow:0 0 10px rgba(232,160,180,.4);transition:box-shadow .3s}.timeline-item:hover::before{box-shadow:0 0 20px rgba(232,160,180,.8)}.vday-photos-grid .timeline-item::before{display:none}.vday-photos-grid .timeline-item{padding-left:0;margin-bottom:0}.timeline-card{background:var(--bg-card);border:1px solid rgba(232,160,180,.1);border-radius:16px;overflow:hidden;transition:transform .4s var(--ease-romantic),box-shadow .4s;backdrop-filter:blur(10px)}.timeline-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(232,160,180,.15)}.timeline-card-image{position:relative;width:100%;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,rgba(232,160,180,.1),rgba(212,165,116,.1));display:flex;align-items:center;justify-content:center}.timeline-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-romantic)}.gallery-card:hover img,.timeline-card:hover .timeline-card-image img{transform:scale(1.05)}.photo-placeholder{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-muted);font-family:var(--font-body);font-size:.9rem}.photo-placeholder .placeholder-icon{font-size:2.5rem;opacity:.5}.timeline-card-content{padding:1.2rem 1.5rem}.timeline-card-date{font-family:var(--font-body);font-size:.85rem;color:var(--gold-warm);letter-spacing:1px;margin-bottom:.3rem}.timeline-card-caption{font-family:var(--font-body);font-size:1.05rem;color:var(--text-rose);font-style:italic}.envelope-tap,.love-letter-section{display:flex;flex-direction:column;align-items:center}.love-letter-section{padding:5rem 2rem;position:relative;background:linear-gradient(180deg,var(--bg-deep),var(--bg-midnight),var(--bg-deep))}.envelope-tap{cursor:pointer;gap:1rem;-webkit-tap-highlight-color:transparent}.envelope-visual{position:relative;width:min(70vw,280px);aspect-ratio:1.5;transition:transform .4s var(--ease-bounce)}.envelope-tap:active .envelope-visual{transform:scale(.95)}.envelope-body{position:absolute;inset:0;background:linear-gradient(145deg,#d4a574,#c49464);border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.4);overflow:hidden}.envelope-body::after{content:"";position:absolute;inset:8px;border:1px dashed rgba(255,255,255,.15);border-radius:4px;pointer-events:none}.envelope-flap,.reason-card::before{position:absolute;top:0;left:0;width:100%}.envelope-flap{height:55%;background:linear-gradient(165deg,#c49464,#b88454);clip-path:polygon(0 0,50% 70%,100%0);z-index:3;box-shadow:0 5px 15px rgba(0,0,0,.2)}.envelope-seal{position:absolute;top:32%;left:50%;transform:translate(-50%,-50%);width:50px;height:50px;background:radial-gradient(circle,#e74c6f,#c43a5a);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.3rem;z-index:4;box-shadow:0 3px 12px rgba(231,76,111,.5);animation:sealPulse 2s ease-in-out infinite}.envelope-hint{font-family:var(--font-body);font-size:1rem;color:var(--text-muted);text-align:center;animation:hintPulse 2s ease-in-out infinite}.letter-overlay{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .4s ease}.letter-overlay.active{opacity:1;pointer-events:all}.letter-modal{position:relative;width:min(92vw,480px);max-height:85vh;transform:scale(.8) translateY(30px);transition:transform .5s var(--ease-bounce)}.letter-overlay.active .letter-modal{transform:scale(1) translateY(0)}.letter-close{position:absolute;top:-40px;right:0;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:1.4rem;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;-webkit-tap-highlight-color:transparent}.letter-paper{background:linear-gradient(to bottom,linen,#f5e6d3);border-radius:12px;padding:2rem 1.5rem;overflow-y:auto;max-height:80vh;-webkit-overflow-scrolling:touch;box-shadow:0 20px 60px rgba(0,0,0,.4),inset 0 0 30px rgba(139,90,43,.08)}.letter-greeting{font-family:var(--font-script);font-size:1.8rem;color:#8b5a2b;margin-bottom:1rem}.letter-body{font-family:var(--font-script);font-size:1.3rem;color:#5a3a1a;line-height:2}.letter-signature{font-family:var(--font-script);font-size:1.5rem;color:#8b5a2b;text-align:right;margin-top:1.5rem}.gallery-section{padding:5rem 2rem;background:linear-gradient(180deg,var(--bg-midnight),var(--bg-deep))}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;max-width:900px;margin:0 auto}.gallery-card{border-radius:12px;overflow:hidden;aspect-ratio:1;cursor:pointer;position:relative;background:var(--bg-card);border:1px solid rgba(232,160,180,.08);transition:transform .3s ease,box-shadow .3s ease}.gallery-card:active{transform:scale(.97)}.gallery-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}.reasons-section{padding:5rem 2rem;background:var(--bg-deep)}.reasons-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;max-width:900px;margin:0 auto}.reason-card{background:rgba(232,160,180,.04);border:1px solid rgba(232,160,180,.1);border-radius:16px;padding:1.8rem;position:relative;overflow:hidden;opacity:0;transform:translateY(30px) rotate(var(--rotation, -1deg));transition:all .6s var(--ease-romantic);backdrop-filter:blur(8px)}.reason-card.visible{opacity:1;transform:translateY(0) rotate(0deg)}.reason-card::before{content:"";height:3px;background:linear-gradient(90deg,var(--rose-primary),var(--gold-warm),var(--rose-primary));opacity:0;transition:opacity .3s}.reason-card:hover::before{opacity:1}.reason-card:hover{transform:translateY(-6px) rotate(0deg);box-shadow:0 12px 35px var(--shadow-rose);border-color:rgba(232,160,180,.25)}.reason-number{font-family:var(--font-display);font-size:2.5rem;font-weight:800;color:rgba(232,160,180,.12);position:absolute;top:.5rem;right:1rem;line-height:1}.reason-icon{font-size:1.8rem;margin-bottom:.8rem;display:block}.reason-text{font-family:var(--font-body);font-size:1.1rem;color:var(--text-rose);font-style:italic;line-height:1.6}.site-footer{padding:4rem 2rem 3rem;text-align:center;position:relative;background:linear-gradient(180deg,var(--bg-deep),#0d0508)}.footer-heart,.vday-current::before{animation:heartbeat 1.5s ease-in-out infinite}.footer-heart{font-size:3rem;display:inline-block;filter:drop-shadow(0 0 20px rgba(231,76,111,.5));margin-bottom:1.5rem}.footer-message,.vday-current-message p{font-family:var(--font-script);color:var(--rose-soft)}.footer-message{font-size:clamp(1.5rem,4vw,2.5rem);margin-bottom:1rem}.footer-date{font-family:var(--font-body);font-size:1rem;color:var(--text-muted);letter-spacing:3px}.footer-infinity{display:inline-block;font-size:2rem;color:var(--gold-warm);margin-top:1rem;animation:infinitySpin 4s linear infinite}.reveal{opacity:0;transform:translateY(30px);transition:all .8s var(--ease-romantic);will-change:transform,opacity}.reveal.visible{opacity:1;transform:translateY(0)}.mouse-sparkle{position:fixed;pointer-events:none;z-index:9999;font-size:12px;animation:mouseSparkle .8s ease-out forwards}.vday-celebration{margin-bottom:3rem;padding-left:1.5rem}.vday-header{margin-bottom:1.2rem}.vday-date{display:block;font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--gold-warm);letter-spacing:1px;margin-bottom:.3rem}.vday-subtitle{display:block;font-family:var(--font-body);font-size:1.05rem;color:var(--text-rose);font-style:italic}.vday-photos-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.vday-photo-card{background:var(--bg-card);border:1px solid rgba(232,160,180,.1);border-radius:16px;overflow:hidden;aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;transition:transform .4s var(--ease-romantic),box-shadow .4s;cursor:pointer}.vday-photo-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 40px rgba(232,160,180,.2)}.vday-photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-romantic)}.vday-photo-card:hover img{transform:scale(1.06)}.timeline-year-label.current-year{background:linear-gradient(135deg,rgba(232,160,180,.12),rgba(212,165,116,.12));border-color:rgba(232,160,180,.3);animation:currentYearGlow 3s ease-in-out infinite alternate}.vday-current{text-align:center;padding:2rem 1.5rem;margin-left:1.5rem;background:linear-gradient(135deg,rgba(232,160,180,.06),rgba(212,165,116,.04));border:1px solid rgba(232,160,180,.15);border-radius:20px;position:relative}.vday-current::before{content:"💕";position:absolute;top:-15px;left:50%;transform:translateX(-50%);font-size:1.8rem}.vday-current-message{margin-top:1rem}.vday-current-message p{font-size:clamp(1.1rem,3vw,1.5rem);line-height:1.8}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .4s;backdrop-filter:blur(10px)}.lightbox.active{opacity:1;pointer-events:all}.lightbox img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5);transform:scale(.9);transition:transform .4s var(--ease-bounce)}.lightbox.active img{transform:scale(1)}.lightbox-close{position:absolute;top:1.5rem;right:1.5rem;font-size:2rem;color:var(--text-cream);background:0 0;border:0;cursor:pointer;opacity:.7;transition:opacity .3s;font-family:var(--font-body)}.lightbox-close:hover{opacity:1}@media (hover:none){.counter-item:hover,.timeline-card:hover{transform:none;box-shadow:none}.reason-card:hover{transform:translateY(0) rotate(0deg);box-shadow:none;border-color:rgba(232,160,180,.1)}.reason-card:hover::after,.reason-card:hover::before{opacity:0}.vday-photo-card:hover{transform:none;box-shadow:none}.timeline-card:hover .timeline-card-image img,.vday-photo-card:hover img{transform:none}.mouse-sparkle{display:none}}@supports (height:100dvh){.hero{min-height:100dvh}}@media (max-width:768px){html{font-size:17px}.hero{padding:0 1.2rem}.hero-content{padding:1.5rem 1rem}.hero-subtitle-top{font-size:1.3rem}.hero-year-badge{font-size:.9rem;padding:.4rem 1.3rem;letter-spacing:2px}.hero-title{font-size:clamp(2rem,8vw,3.5rem);line-height:1.15}.hero-heart-divider{font-size:2.2rem;margin:.8rem 0}.hero-names{font-size:clamp(1.4rem,5vw,2.2rem);margin-bottom:1rem}.hero-sub-message{font-size:clamp(1.1rem,3.5vw,1.6rem)}.scroll-indicator{bottom:1.5rem}.scroll-indicator span{font-size:.85rem}.love-counter{padding:3.5rem 1rem}.counter-title{font-size:1.6rem;margin-bottom:1.5rem}.counter-grid{gap:.8rem}.counter-item{min-width:75px;padding:1rem 1.1rem;border-radius:12px}.counter-number{font-size:2.4rem}.counter-label{font-size:.85rem;letter-spacing:1px}.counter-subtitle{font-size:1.1rem;padding:0 1rem}.timeline-section{padding:3rem 1rem 2rem}.section-header{margin-bottom:2.5rem}.section-header h2{font-size:clamp(1.7rem,6vw,2.5rem)}.timeline{padding-left:30px}.timeline::before{left:10px;width:2px}.timeline-year-label{font-size:clamp(.95rem,3.2vw,1.3rem);padding:.5rem 1.1rem;gap:.5rem;margin-left:-5px}.timeline-year-label::before{left:-25px;width:12px;height:12px}.timeline-year-label .year-heart{font-size:.9rem}.timeline-item::before{left:-23px;width:8px;height:8px}.vday-celebration{padding-left:.8rem;margin-bottom:2rem}.vday-date{font-size:1.1rem}.vday-subtitle{font-size:1.05rem}.vday-photos-grid{grid-template-columns:1fr 1fr;gap:.8rem}.vday-photo-card{border-radius:12px;aspect-ratio:3/4}.vday-current{margin-left:0;padding:1.5rem 1rem;border-radius:16px}.vday-current-message p{font-size:1.3rem;line-height:1.7}.gallery-section{padding:3rem .8rem}.gallery-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.gallery-card,.lightbox img{border-radius:8px}.love-letter-section{padding:3rem 1rem}.envelope-visual{width:min(80vw,260px)}.envelope-seal{width:46px;height:46px;font-size:1.2rem}.letter{padding:1.4rem 1rem}.letter-greeting{font-size:1.5rem}.letter-body{font-size:1.1rem;line-height:1.8}.letter-signature{font-size:1.3rem}.envelope-hint{font-size:1rem}.reasons-section{padding:3rem 1rem}.reasons-grid{grid-template-columns:1fr;gap:1rem}.reason-card{padding:1.5rem;border-radius:14px}.reason-icon{font-size:1.8rem;margin-bottom:.6rem}.reason-text{font-size:1.15rem;line-height:1.7}.reason-number{font-size:2.2rem}.site-footer{padding:3rem 1rem 2rem}.footer-heart{font-size:2.8rem;margin-bottom:1rem}.footer-message{font-size:clamp(1.5rem,5vw,2.2rem)}.footer-date{font-size:1rem;letter-spacing:2px}.footer-infinity{font-size:1.8rem}.lightbox img{max-width:95vw;max-height:80vh}.lightbox-close{top:1rem;right:1rem;font-size:2rem}}@media (max-width:480px){html{font-size:16px}.hero-title{font-size:clamp(1.8rem,9vw,2.8rem)}.hero-names{font-size:clamp(1.2rem,5.5vw,1.8rem)}.hero-sub-message{font-size:clamp(1rem,4vw,1.4rem)}.hero-year-badge{font-size:.8rem;padding:.35rem 1rem}.counter-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;max-width:300px}.counter-item{min-width:unset;padding:.8rem}.counter-number{font-size:2rem}.counter-label{font-size:.8rem}.counter-title{font-size:1.4rem}.counter-subtitle{font-size:1rem}.timeline{padding-left:25px}.timeline::before{left:8px}.timeline-year-label{font-size:.85rem;padding:.4rem .9rem}.timeline-year-label::before{left:-22px;width:10px;height:10px}.vday-photos-grid{grid-template-columns:1fr 1fr;gap:.6rem}.vday-photo-card{aspect-ratio:3/4;border-radius:10px}.envelope-visual{width:min(80vw,240px)}.section-header h2{font-size:clamp(1.5rem,6vw,2rem)}.decorative-line span{width:35px}.love-counter::before{height:40px}.reason-card{padding:1.3rem}.reason-text{font-size:1.1rem}.letter-body{font-size:1.05rem}.vday-current-message p{font-size:1.2rem}.footer-message{font-size:clamp(1.3rem,5vw,1.8rem)}}@supports (padding-bottom:env(safe-area-inset-bottom)){.site-footer{padding-bottom:calc(2rem + env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hearts-container,.hearts-rain,.twinkling-stars{display:none}}.page-loader{position:fixed;inset:0;background:var(--bg-deep);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .8s var(--ease-romantic)}.page-loader.hidden{opacity:0;pointer-events:none}.loader-heart{font-size:3rem;animation:heartbeat 1s ease-in-out infinite;filter:drop-shadow(0 0 25px rgba(231,76,111,.6))}.hearts-rain{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:9998}.falling-heart{position:absolute;top:-40px;opacity:0;animation:heartFall var(--fall-duration, 6s) linear forwards;pointer-events:none;will-change:transform,opacity;transform:translateZ(0)}.twinkling-stars{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.twinkle-star{position:absolute;background:radial-gradient(circle,rgba(255,255,255,.9),rgba(232,160,180,.4));border-radius:50%;animation:twinkle var(--twinkle-duration, 3s) var(--twinkle-delay, 0s) ease-in-out infinite alternate}.counter-heart-pop,.heart-burst-particle{position:fixed;pointer-events:none;z-index:9999;animation:heartBurst 1s ease-out forwards}.counter-heart-pop{z-index:50;animation:heartPop 1.5s ease-out forwards}.section-header h2{position:relative;overflow:hidden}.section-header h2::after{content:"";position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(232,160,180,.15),rgba(240,213,168,.2),transparent);animation:shimmer 4s ease-in-out infinite}.decorative-line .heart-icon{animation:heartIconPulse 2s ease-in-out infinite}.reason-card::after{content:"✨";position:absolute;top:.8rem;left:1rem;font-size:1.2rem;opacity:0;transform:scale(0) rotate(-20deg);transition:all .4s var(--ease-bounce)}.reason-card:hover::after{opacity:1;transform:scale(1) rotate(0deg)}