@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--wine:#7f1832;--rose:#b83d5d;--pink:#f7dfe5;--cream:#fffaf7;--ink:#44232d}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;overflow-x:hidden}
.page{width:100%;overflow:hidden}.hero{min-height:100svh;padding:38px 22px 28px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:radial-gradient(circle at 50% 38%,#fff 0,#fff7f5 48%,#f7dfe5 100%);position:relative}
.eyebrow,.section-tag{font-size:.68rem;letter-spacing:.22em;font-weight:700;color:var(--rose)}.heart{font-size:5rem;color:var(--rose);line-height:1;margin:34px 0 20px;filter:drop-shadow(0 10px 14px #b83d5d30);animation:pulse 1.8s infinite}
.overline{font-size:.85rem;color:#98616f;margin:0 0 10px}.hero h1{font:600 clamp(3rem,10vw,5.5rem) 'Playfair Display',serif;margin:0;color:var(--wine)}.intro{max-width:390px;line-height:1.8;color:#805c65;margin:18px auto 26px}
button{font:600 .9rem 'DM Sans',sans-serif;border:0;cursor:pointer;transition:transform .2s,box-shadow .2s}button:active{transform:scale(.97)}.primary-btn,.surprise-btn{background:var(--wine);color:white;padding:15px 23px;border-radius:4px;box-shadow:0 9px 22px #7f18322a}.primary-btn span{margin-left:10px;color:#ffc5d2}.scroll-note{position:absolute;bottom:25px;font-size:.65rem;letter-spacing:.2em;color:#a87984}
.message-section,.reasons,.final-section{padding:100px 22px;text-align:center}.message-section h2,.reasons h2,.final-section h2{font:600 clamp(2rem,6vw,3.2rem) 'Playfair Display',serif;color:var(--wine);margin:15px 0 35px}
.letter{max-width:650px;margin:auto;text-align:left;background:white;padding:clamp(25px,6vw,52px);border:1px solid #f0d5dc;box-shadow:0 18px 50px #6720330d;line-height:1.9;color:#694651}.letter-top{text-align:center;letter-spacing:.2em;font-size:.7rem;color:var(--rose);margin-bottom:28px}.letter p{margin:0 0 18px}.signature{padding-top:15px}.reasons{background:#f8e9ec}.reason-grid{max-width:900px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.reason{background:#fffaf8;padding:28px 20px;border:1px solid #f1d7de}.reason span{font-size:2rem}.reason h3{font:600 1.25rem 'Playfair Display',serif;color:var(--wine)}.reason p{font-size:.9rem;line-height:1.7;color:#86636c}
.final-section{background:var(--wine);color:#fff3f5;padding-bottom:35px}.final-section h2{color:white;margin-bottom:14px}.final-section>p{max-width:470px;margin:0 auto 28px;line-height:1.8;color:#f3cbd5}.big-heart{font-size:3rem;color:#ffb9ca;animation:pulse 1.8s infinite}.surprise-btn{background:#fff0f3;color:var(--wine);box-shadow:none}.surprise-text{margin:25px auto 0!important;color:#ffe2e9!important;font:500 1.2rem 'Playfair Display',serif}footer{margin-top:75px;font-size:.72rem;color:#dbaab7;letter-spacing:.08em}
.floating-hearts{position:fixed;inset:0;pointer-events:none;z-index:5;overflow:hidden}.float-heart{position:absolute;bottom:-30px;color:#d65b78;opacity:0;animation:floatUp 6s linear forwards}
@keyframes pulse{50%{transform:scale(1.09)}}@keyframes floatUp{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:.65}100%{transform:translateY(-110vh) rotate(35deg);opacity:0}}
@media(max-width:650px){.message-section,.reasons,.final-section{padding:75px 20px}.reason-grid{grid-template-columns:1fr}.reason{padding:24px}.heart{font-size:4.3rem}.eyebrow{font-size:.58rem}}

.surprise-card{max-width:560px;margin:26px auto 0;padding:28px 25px;background:#fff5f7;color:#713247;border:1px solid #f4cbd6;box-shadow:0 14px 35px #3d07151f;line-height:1.9;animation:reveal .65s ease both}
.surprise-card p{margin:0 0 16px!important;color:#805563!important}
.surprise-card strong{display:block;color:#8b2443;font-family:'Playfair Display',serif;font-size:1.08rem}
.surprise-card-heart{font-size:2.1rem;color:#c94e70;margin-bottom:8px}
@keyframes reveal{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
