:root{--ivory:#f7f2e9;--paper:#fffdf8;--navy:#17395f;--gold:#b88435;--ink:#463b34;--sage:#9da58e;--shadow:0 18px 60px rgba(68,50,29,.14)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Georgia,'Times New Roman',serif;background:var(--ivory);background-image:radial-gradient(circle at 10% 5%,rgba(255,255,255,.95),transparent 28%),radial-gradient(circle at 90% 93%,rgba(255,255,255,.9),transparent 30%)}
body:before,body:after{content:'❀';position:fixed;color:rgba(184,132,53,.16);font-size:11rem;z-index:-1}body:before{top:-42px;left:-38px}body:after{right:-25px;bottom:-55px;transform:rotate(180deg)}
.section{min-height:100svh;max-width:720px;margin:auto;padding:72px 26px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative}.hero{padding-top:86px}.eyebrow,.date,h3{letter-spacing:.14em;font-size:.78rem;color:var(--navy)}h1{font-size:clamp(3rem,12vw,5.6rem);margin:.15em 0;color:var(--navy);line-height:.95}h1 span,.script,.signature{color:var(--gold);font-weight:400}.rule{width:150px;height:1px;background:var(--gold);margin:20px auto 28px}.portrait{width:min(82vw,470px);padding:9px;margin:8px 0 26px;background:#fff;border:1px solid var(--gold);box-shadow:var(--shadow)}.portrait img{width:100%;display:block}.promise,.script{font-style:italic}.promise{font-size:1.25rem;line-height:1.5;color:var(--navy)}.scroll{color:var(--gold);text-decoration:none;margin-top:24px}.script{font-size:clamp(1.8rem,7vw,3rem);margin:.2em 0}.scripture blockquote{font-size:clamp(1.4rem,5vw,2rem);line-height:1.75;margin:0;color:var(--ink)}.scripture strong{color:var(--navy);letter-spacing:.06em}.card{width:100%;background:rgba(255,253,248,.92);border:1px solid rgba(184,132,53,.24);border-radius:28px;padding:48px 28px;box-shadow:var(--shadow)}h2{color:var(--navy);font-size:clamp(1.65rem,6vw,2.5rem);margin:22px 0 8px}.year{color:var(--navy);font-size:2rem;font-weight:bold;margin:0}.large{font-size:1.6rem}address{font-style:normal;line-height:1.7;font-size:1.1rem}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;min-height:52px;padding:14px 24px;margin:12px 5px;font:700 1rem Georgia,serif;text-decoration:none;cursor:pointer}.primary,.yes{background:var(--navy);color:#fff}.timeline{list-style:none;padding:0;margin:20px 0;width:min(100%,420px)}.timeline li{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding:18px 0;border-bottom:1px solid rgba(184,132,53,.25);text-align:left}.timeline time{font-weight:bold;color:var(--navy);text-align:right}.dress img{width:min(100%,520px);border:1px solid var(--gold);box-shadow:var(--shadow);margin:20px 0}.dress h3{font-size:.9rem}.dress p{line-height:1.8}.dress em{color:var(--gold);margin-top:15px}.honeymoon strong{display:block;color:var(--navy);font-size:1.4rem;margin:28px 0 0}.copy{background:#fff;border:1px solid var(--gold);color:var(--navy)}.signature{font-size:1.8rem}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:32px 0}.choices .button{margin:0}.no{background:#fff;color:var(--navy);border:1px solid var(--navy)}.phone{display:block;color:var(--navy);font-weight:bold;font-size:1.25rem}.closing{color:var(--gold);margin-top:32px}.music{position:fixed;z-index:5;right:14px;top:14px;border:1px solid rgba(184,132,53,.55);border-radius:999px;background:rgba(255,253,248,.94);color:var(--navy);padding:11px 15px;box-shadow:0 6px 25px rgba(0,0,0,.12);font-weight:bold}.music.playing{background:var(--navy);color:#fff}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:var(--navy);color:#fff;padding:12px 22px;border-radius:999px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:520px){.section{padding:64px 20px}.card{padding:40px 20px}.choices{grid-template-columns:1fr}.music span{display:none}.timeline li{gap:12px}.dress h3{line-height:1.5}.date{line-height:1.5}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.download{background:transparent;color:var(--navy);border:1px solid var(--gold);margin-top:22px}
