@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');

:root {
    --rose:#c95c75; --deep:#472331; --cream:#fff9f7;
    --soft:#f8e9eb; --text:#5b4148; --white:#fff;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--text);font-family:"DM Sans",sans-serif;line-height:1.7;overflow-x:hidden}
h1,h2,h3{font-family:"Playfair Display",serif;color:var(--deep);font-weight:500}
a{color:inherit}
.nav{position:absolute;top:25px;left:7%;right:7%;display:flex;justify-content:space-between;align-items:center;z-index:5}
.logo{font:1.5rem "Playfair Display",serif;color:var(--deep);text-decoration:none}
.logo span{color:var(--rose)}
.nav-links{display:flex;gap:22px;flex-wrap:wrap;justify-content:flex-end}
.nav-links a{text-decoration:none;font-size:.85rem}
.nav-links a:hover{color:var(--rose)}
.hero,.page-hero{min-height:100vh;position:relative;display:flex;align-items:center;padding:100px 8%;overflow:hidden;background:radial-gradient(circle at 80% 20%,rgba(201,92,117,.18),transparent 28%),radial-gradient(circle at 15% 80%,rgba(255,214,222,.65),transparent 30%),linear-gradient(135deg,#fffaf8,#f8e8eb)}
.hero-content,.page-title{max-width:820px;position:relative;z-index:2}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:600;color:var(--rose);margin-bottom:18px}
h1{font-size:clamp(4rem,10vw,8rem);line-height:.95;letter-spacing:-.04em}
h1 span{font-style:italic;color:var(--rose)}
h2{font-size:clamp(2.5rem,5vw,4.5rem);line-height:1.1}
.hero-text{max-width:600px;font-size:1.08rem;margin:28px 0}
.button{display:inline-block;background:var(--deep);color:white;text-decoration:none;padding:13px 23px;border-radius:100px;font-size:.9rem;transition:.25s}
.button:hover{background:var(--rose);transform:translateY(-3px)}
.section{max-width:1100px;margin:auto;padding:110px 8%}
.center{text-align:center}
.section-text{max-width:700px;margin:24px auto}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:35px}
.card{background:white;border:1px solid rgba(71,35,49,.08);border-radius:24px;padding:32px;box-shadow:0 18px 50px rgba(71,35,49,.06);transition:.3s}
.card:hover{transform:translateY(-7px)}
.icon{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:var(--soft);color:var(--rose);font-size:1.4rem;margin-bottom:20px}
.card h3{font-size:1.55rem;margin-bottom:8px}
.photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 25px;
    margin-top: 35px;
}

.photo-card {
    background: white;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 15px 40px rgba(71, 35, 49, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.photo-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 50px rgba(71, 35, 49, 0.14);
}

.photo-card img {
    width: 100%;
    height: 320px;
    object-fit: contain;
    display: block;
    background: #f8e9eb;
}

.photo-card > div {
    padding: 22px;
}

.photo-card h3 {
    font-size: 1.6rem;
    margin-bottom: 8px;
}

.photo-card p {
    font-size: 0.95rem;
}
.timeline{position:relative;max-width:800px;margin:50px auto}
.timeline:before{content:"";position:absolute;left:18px;top:0;bottom:0;width:2px;background:#e8cbd1}
.timeline-item{position:relative;padding:0 0 45px 60px}
.dot{position:absolute;left:8px;top:5px;width:22px;height:22px;border-radius:50%;background:var(--rose);border:6px solid var(--cream)}
.timeline-item h3{font-size:1.7rem}
.letter{background:white;border-radius:8px;padding:clamp(35px,7vw,75px);box-shadow:0 30px 80px rgba(71,35,49,.1);max-width:900px;margin:auto}
.letter p{margin:0 0 20px;max-width:720px}
.signature{font:italic 1.3rem "Playfair Display",serif;margin-top:35px}
.final{text-align:center;min-height:65vh;display:flex;flex-direction:column;justify-content:center;align-items:center}
.final-heart{width:85px;height:85px;display:grid;place-items:center;border-radius:50%;background:var(--soft);color:var(--rose);font-size:2.5rem;margin-bottom:28px;animation:heartbeat 1.8s infinite}
footer{text-align:center;padding:30px;background:var(--deep);color:#f9e9ec;font-size:.85rem}
footer span{color:#f3a5b7}
.secret-box{max-width:550px;margin:40px auto;background:white;padding:35px;border-radius:22px;text-align:center;box-shadow:0 20px 60px rgba(71,35,49,.08)}
.secret-box input{padding:13px 15px;border:1px solid #e6cfd5;border-radius:10px;width:100%;margin:15px 0;font:inherit}
.secret-message{display:none;margin-top:25px;font:italic 1.5rem "Playfair Display",serif;color:var(--rose)}
.hearts{position:fixed;inset:0;pointer-events:none;z-index:10;overflow:hidden}
.hearts span{position:absolute;bottom:-30px;color:rgba(201,92,117,.2);animation:floatUp linear infinite}
.hearts span:nth-child(1){left:8%;animation-duration:12s;animation-delay:1s}.hearts span:nth-child(2){left:20%;animation-duration:15s;animation-delay:4s}.hearts span:nth-child(3){left:35%;animation-duration:11s;animation-delay:2s}.hearts span:nth-child(4){left:52%;animation-duration:16s;animation-delay:7s}.hearts span:nth-child(5){left:68%;animation-duration:13s;animation-delay:3s}.hearts span:nth-child(6){left:84%;animation-duration:17s;animation-delay:5s}
@keyframes floatUp{from{transform:translateY(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translateY(-110vh) rotate(360deg);opacity:0}}
@keyframes heartbeat{0%,100%{transform:scale(1)}15%{transform:scale(1.12)}30%{transform:scale(1)}45%{transform:scale(1.08)}}
@media (max-width: 800px) {

    .nav {
        left: 6%;
        right: 6%;
        align-items: flex-start;
    }

    .nav-links {
        gap: 10px;
        font-size: 0.75rem;
    }

    .hero,
    .page-hero {
        padding-left: 6%;
        padding-right: 6%;
    }

    .section {
        padding: 80px 6%;
    }

    h1 {
        font-size: clamp(3.5rem, 17vw, 6rem);
    }

    .cards {
        grid-template-columns: 1fr;
    }

    .photo-grid {
        grid-template-columns: 1fr;
    }

    .photo-card img {
        height: auto;
        max-height: 500px;
        object-fit: contain;
    }
}