@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,500;1,600&display=swap";.reveal{opacity:0;transform:translateY(30px);transition:all .9s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:translateY(0)}.bouquet-section{padding:5rem 2rem;text-align:center;background:transparent;position:relative;overflow:visible}.bouquet-section:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--cream) 0%,#fce8ef 40%,#f9dde6 60%,var(--cream) 100%);z-index:-1}.bouquet-caption{font-size:1.15rem;font-style:italic;color:var(--text-soft);margin-bottom:2.5rem;font-weight:300}.bouquet-frame{display:inline-block;position:relative;max-width:340px;width:85%}.bouquet-svg{width:100%;height:auto;filter:drop-shadow(0 8px 24px rgba(184,48,79,.08))}.bouquet-tag{display:inline-block;margin-top:1rem;padding:.5rem 1.8rem;font-family:Playfair Display,serif;font-size:1rem;font-style:italic;color:var(--rose-deep);background:#fff;border-radius:50px;box-shadow:0 2px 12px #b8304f14;letter-spacing:.05em}.closing{padding:6rem 2rem 8rem;text-align:center;max-width:700px;margin:0 auto}.closing h2{font-family:Playfair Display,serif;font-size:clamp(2rem,5vw,3.5rem);font-weight:400;font-style:italic;color:var(--rose-deep);line-height:1.3;margin-bottom:1.5rem}.closing h2 strong{font-style:normal;font-weight:700;background:linear-gradient(135deg,var(--rose-deep),var(--gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.closing p{font-size:clamp(1.1rem,2.5vw,1.35rem);font-weight:300;color:var(--text-soft);line-height:1.8;font-style:italic;margin-bottom:2.5rem}.signature{font-family:Playfair Display,serif;font-size:clamp(1.5rem,4vw,2rem);font-weight:600;color:var(--rose-deep);letter-spacing:.05em}.divider{display:flex;align-items:center;justify-content:center;gap:1rem;padding:2rem 0}.divider-line{width:60px;height:1px;background:linear-gradient(to right,transparent,var(--gold-light),transparent)}.divider-icon{color:var(--gold);font-size:1rem}.footer{text-align:center;padding:2rem;font-size:.8rem;letter-spacing:.15em;color:var(--text-soft);opacity:.7}.hearts-bg{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}.heart-particle{position:absolute;bottom:-60px;opacity:0;animation:floatUp linear infinite;font-size:1.2rem;filter:blur(.5px)}@keyframes floatUp{0%{transform:translateY(0) rotate(0) scale(1);opacity:0}10%{opacity:.35}90%{opacity:.25}to{transform:translateY(-110vh) rotate(360deg) scale(.5);opacity:0}}.hero{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;background:linear-gradient(165deg,#f9dde4 0%,#fce8ec 30%,var(--cream) 70%);position:relative;overflow:hidden}.hero:before{content:"";position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(214,76,110,.08) 0%,transparent 70%);top:-200px;right:-200px}.hero:after{content:"";position:absolute;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(201,151,93,.06) 0%,transparent 70%);bottom:-100px;left:-100px}.hero-overline{font-size:clamp(.85rem,2vw,1rem);letter-spacing:.35em;text-transform:uppercase;color:var(--gold);font-weight:500;margin-bottom:1.5rem;opacity:0;animation:fadeSlideUp 1s .3s ease forwards}.hero h1{font-family:Playfair Display,Georgia,serif;font-size:clamp(2.8rem,8vw,6rem);font-weight:400;font-style:italic;line-height:1.1;color:var(--rose-deep);margin-bottom:.3em;opacity:0;animation:fadeSlideUp 1.2s .6s ease forwards}.hero h1 span{display:block;font-size:clamp(3.5rem,10vw,7.5rem);font-style:normal;font-weight:700;background:linear-gradient(135deg,var(--rose-deep),var(--rose-mid),var(--gold));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-sub{font-size:clamp(1.1rem,2.5vw,1.5rem);font-weight:300;font-style:italic;color:var(--text-soft);margin-top:1rem;opacity:0;animation:fadeSlideUp 1s 1s ease forwards}.scroll-hint{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:0;animation:fadeIn 1s 2s ease forwards,bob 2s 3s ease-in-out infinite}.scroll-hint span{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blush)}.scroll-hint .arrow{width:1px;height:40px;background:linear-gradient(to bottom,var(--blush),transparent);position:relative}.scroll-hint .arrow:after{content:"";position:absolute;bottom:0;left:-3px;width:7px;height:7px;border-right:1px solid var(--blush);border-bottom:1px solid var(--blush);transform:rotate(45deg)}@keyframes bob{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(8px)}}.stat-section{padding:5rem 2rem;text-align:center;background:linear-gradient(135deg,var(--wine) 0%,var(--rose-deep) 50%,#c44a6a 100%);color:#fff;position:relative;overflow:hidden}.stat-section:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 10 C30 10 20 0 10 10 C0 20 10 30 30 50 C50 30 60 20 50 10 C40 0 30 10 30 10Z' fill='none' stroke='rgba(255,255,255,0.03)' stroke-width='1'/%3E%3C/svg%3E");background-size:60px 60px}.stat-section .section-label{color:var(--gold-light);position:relative;z-index:1}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2.5rem;max-width:750px;margin:2rem auto 0;position:relative;z-index:1}.stat-card{padding:2rem 1rem}.stat-number{font-family:Playfair Display,serif;font-size:clamp(3rem,8vw,4.5rem);font-weight:700;color:#fff;line-height:1;margin-bottom:.3rem}.stat-unit{font-size:.85rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold-light);font-weight:400}.stat-note{font-size:1rem;font-style:italic;color:#ffffffb3;margin-top:.3rem;font-weight:300}@media(max-width:600px){.stat-grid{grid-template-columns:1fr;gap:1.5rem}}.story{padding:6rem 2rem;max-width:700px;margin:0 auto;text-align:center}.story p:not(.section-label){font-size:clamp(1.2rem,3vw,1.55rem);line-height:1.8;font-weight:300;color:var(--text-dark)}.story p em{color:var(--rose-deep);font-weight:500}.timeline-section{padding:4rem 2rem 6rem;background:linear-gradient(180deg,var(--cream) 0%,#fdf0f3 50%,var(--cream) 100%)}.timeline-section .section-label{text-align:center;margin-bottom:3rem}.timeline{max-width:600px;margin:0 auto;position:relative;padding-left:3rem}.timeline:before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--gold-light),var(--blush),var(--rose-mid));border-radius:2px}.tl-item{position:relative;margin-bottom:3rem;opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(.16,1,.3,1)}.tl-item.visible{opacity:1;transform:translateY(0)}.tl-item:before{content:"";position:absolute;left:-3rem;top:.35rem;width:16px;height:16px;border-radius:50%;border:2px solid var(--gold);background:var(--cream);z-index:1;transition:background .3s}.tl-item.visible:before{background:var(--gold);box-shadow:0 0 0 4px #c9975d26}.tl-date{font-family:Playfair Display,serif;font-size:.85rem;font-weight:600;letter-spacing:.1em;color:var(--gold);margin-bottom:.3rem}.tl-title{font-family:Playfair Display,serif;font-size:clamp(1.3rem,3vw,1.7rem);font-weight:600;color:var(--rose-deep);margin-bottom:.5rem;line-height:1.3}.tl-desc{font-size:clamp(1rem,2.5vw,1.15rem);font-weight:300;color:var(--text-soft);line-height:1.7}@media(max-width:600px){.timeline{padding-left:2.5rem}.tl-item:before{left:-2.5rem}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--rose-deep: #b8304f;--rose-mid: #d64c6e;--blush: #f2a0b3;--cream: #fff8f5;--gold: #c9975d;--gold-light: #e6c99a;--wine: #7a1a3a;--text-dark: #3d1523;--text-soft: #7a4558}.valentine-page{font-family:Cormorant Garamond,Georgia,serif;background:var(--cream);color:var(--text-dark);overflow-x:hidden;min-height:100dvh}section{position:relative;z-index:1}.section-label{font-size:.8rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:2rem}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
