@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{--bg:#100d22;--panel:#1b1733;--pink:#ff7aa8;--white:#fff8fc;--muted:#c9bfd6}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 80% 5%,#38204d 0,transparent 36%),var(--bg);color:var(--white);font-family:'DM Sans',sans-serif;overflow-x:hidden}
.stars{position:fixed;inset:0;pointer-events:none;opacity:.18;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:43px 43px;z-index:-1}
.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 7%;border-bottom:1px solid #ffffff18;background:#100d22c9;backdrop-filter:blur(12px);position:sticky;top:0;z-index:5}
.brand{font-weight:700;font-size:1.1rem;color:white;text-decoration:none}.brand span,footer span{color:var(--pink)}
nav{display:flex;gap:28px}nav a,footer a{color:var(--muted);text-decoration:none;font-size:.92rem}nav a:hover,footer a:hover{color:var(--pink)}.menu{display:none;background:none;border:0;color:white;font-size:1.5rem}
.hero{max-width:1180px;margin:auto;min-height:650px;padding:85px 7%;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:60px}
.eyebrow{text-transform:uppercase;letter-spacing:3px;color:var(--pink);font-size:.72rem;font-weight:700}.hero h1{font:600 clamp(3rem,6vw,5.3rem)/1.08 'Playfair Display',serif;margin:20px 0}.hero h1 span{color:var(--pink)}.intro,.section-intro{color:var(--muted);line-height:1.8;max-width:520px}.primary{display:inline-block;margin-top:22px;background:linear-gradient(110deg,#ff659a,#c65bce);padding:15px 23px;border-radius:40px;color:white;text-decoration:none;font-weight:700;box-shadow:0 12px 35px #ed5b9a33}.primary span{margin-left:10px}.signature{font-size:.8rem;color:#a99eb8;margin-top:28px}
.hero-photo{position:relative;max-width:390px;margin:auto}.photo-frame{padding:12px;background:linear-gradient(135deg,#ff8ab5,#8d65d9);border-radius:190px 190px 28px 28px;transform:rotate(2deg);box-shadow:0 25px 80px #0008}.photo-frame img{width:100%;height:470px;object-fit:cover;object-position:center 25%;display:block;border-radius:180px 180px 20px 20px}.floating-heart{position:absolute;color:var(--pink);font-size:3rem;text-shadow:0 5px 20px #ff6da977;animation:float 3s ease-in-out infinite}.heart-one{top:15%;right:-20px}.heart-two{bottom:18%;left:-28px;animation-delay:1s}.photo-note{position:absolute;bottom:-20px;right:-25px;background:#fff;color:#4c2544;padding:13px 20px;border-radius:30px;font-family:'Playfair Display',serif;box-shadow:0 10px 30px #0005}
.section{padding:95px 7%;text-align:center}.section h2{font:600 clamp(2.3rem,4vw,3.5rem) 'Playfair Display',serif;margin:12px 0 18px}.section-intro{margin:0 auto 45px}.promise-grid{max-width:950px;margin:45px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.promise-grid article{padding:30px 22px;background:#ffffff09;border:1px solid #ffffff16;border-radius:20px}.promise-grid article>span{font-size:2rem;color:var(--pink)}.promise-grid h3{font-family:'Playfair Display',serif;font-size:1.35rem}.promise-grid p{color:var(--muted);line-height:1.7;font-size:.92rem}
.gallery{background:#ffffff06}.photos{display:grid;grid-template-columns:repeat(2,minmax(0,330px));justify-content:center;gap:24px;margin-top:38px}.photos figure{margin:0;background:#ffffff0b;padding:12px;border:1px solid #ffffff18;border-radius:18px}.photos img{width:100%;height:360px;object-fit:cover;object-position:center 25%;border-radius:12px}.photos figcaption{padding:15px 5px 6px;color:#f5c4d7}
.letter-card{max-width:650px;margin:35px auto 0;padding:45px 48px;background:linear-gradient(145deg,#fff9fc,#f6e8f0);color:#45283d;border-radius:8px 8px 22px 22px;box-shadow:0 25px 70px #0005;position:relative;text-align:left;line-height:1.85}.letter-card .wax{text-align:center;color:#e85e91;font-size:2rem}.letter-card>p:first-of-type{font-family:'Playfair Display',serif;font-size:1.3rem}.signed{font:700 1.5rem 'Playfair Display',serif;color:#c64e83}.surprise{border:0;background:#d84f88;color:white;padding:13px 20px;border-radius:30px;font-weight:700;cursor:pointer}.hidden-message{display:none;background:#fce0ec;padding:15px;border-radius:12px;color:#87375c}.hidden-message.show{display:block;animation:appear .5s ease}
footer{padding:30px 7%;border-top:1px solid #ffffff18;display:flex;justify-content:space-between;color:var(--muted);font-size:.9rem}
@keyframes float{50%{transform:translateY(-13px) rotate(8deg)}}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:760px){.topbar{height:65px}.menu{display:block}nav{display:none;position:absolute;top:64px;left:0;right:0;padding:20px 7%;background:#17122b;flex-direction:column;gap:18px}nav.open{display:flex}.hero{grid-template-columns:1fr;padding-top:65px;gap:55px;text-align:center}.intro{margin:auto}.hero-photo{max-width:310px}.photo-frame img{height:390px}.promise-grid{grid-template-columns:1fr}.section{padding:70px 6%}.photos{grid-template-columns:1fr;max-width:380px;margin-left:auto;margin-right:auto}.photos img{height:390px}.letter-card{padding:30px 24px}footer{padding:25px 6%}}
