:root { --navy:#12264b; --navy-deep:#091831; --mist:#d8dce2; --paper:#f8f7f4; --ink:#1a2435; --serif:'Cormorant Garamond',Georgia,serif; --script:'Great Vibes',cursive; --sans:Manrope,Arial,sans-serif; }
* { box-sizing:border-box; }
html { background:var(--navy-deep); }
body { margin:0; background:var(--paper); color:var(--ink); font:400 1rem/1.55 var(--sans); }
.cover { position:fixed; inset:0; z-index:20; display:grid; place-items:center; padding:26px; background:radial-gradient(circle at 30% 10%,#2d4775 0,transparent 33%),linear-gradient(145deg,#07142c,#153263); transition:opacity .45s ease,visibility .45s ease; }
.cover.is-open { opacity:0; visibility:hidden; pointer-events:none; }
.cover-card { width:min(100%,440px); padding:64px 28px; text-align:center; color:#fff; border:1px solid #d8dce2a8; background:#0b1c3e9e; box-shadow:0 22px 55px #0008; }
.eyebrow { margin:0 0 12px; color:#aebbd0; font-size:.72rem; font-weight:600; letter-spacing:.22em; }
.cover h1 { margin:0 0 12px; font:400 clamp(4.5rem,16vw,6.7rem)/.95 var(--script); }
.cover-date { margin:0 0 32px; font-size:.77rem; letter-spacing:.17em; }
.button { display:inline-block; min-height:48px; padding:13px 20px; border:1px solid transparent; font:600 .78rem/1.3 var(--sans); letter-spacing:.04em; text-align:center; text-decoration:none; transition:transform .2s ease,background .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-light { background:#f2f3f4; color:var(--navy); }
.button-navy { background:var(--navy); color:#fff; }
.button-muted { width:100%; max-width:320px; background:#cdd1d7; color:#647080; cursor:not-allowed; }
.hero { position:relative; min-height:100svh; display:grid; place-items:center; overflow:hidden; text-align:center; color:#fff; isolation:isolate; }
.hero>img,.hero-shade { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center 38%; }
.hero-shade { z-index:-1; background:linear-gradient(180deg,rgba(4,14,31,.3),rgba(4,14,31,.72)),linear-gradient(90deg,rgba(4,14,31,.52),transparent 60%); }
.hero-content { padding:68px 24px 48px; text-shadow:0 2px 18px #071426c7; }
.hero .eyebrow { color:#e1e6ee; }
.hero-intro { margin-bottom:34px; }
.hero-intro .eyebrow { margin-bottom:17px; }
.hero-identity { margin-bottom:28px; }
.kicker { margin:0; font:italic 2.35rem/1 var(--serif); }
.hero h2 { margin:0; font:400 clamp(5.8rem,19vw,9.4rem)/.93 var(--script); }
.surname { margin:10px 0 0; font-size:.85rem; letter-spacing:.24em; text-transform:uppercase; }
.quote { margin:0; font:italic 1.5rem/1.35 var(--serif); }
.date { display:flex; align-items:center; justify-content:center; gap:16px; margin:28px 0 13px; }
.date strong { font:500 4.3rem/1 var(--serif); }
.date span { border-left:1px solid #fff9; padding-left:16px; font-size:.77rem; letter-spacing:.18em; line-height:1.65; text-align:left; }
.date b { font-weight:500; }
.day { margin:0; font-size:.75rem; font-weight:600; letter-spacing:.22em; }
.details,.gallery,.rsvp { padding:62px 24px; text-align:center; }
.details-alt { background:#eef0f2; }
.details { background:var(--paper); }
.details h2,.gallery h2,.rsvp h2 { margin:0 0 31px; font:500 clamp(2.55rem,9vw,4rem)/1 var(--serif); }
.event-card { max-width:540px; margin:0 auto; }
.event-label { margin:0 0 10px; color:#59677d; font-size:.7rem; font-weight:600; letter-spacing:.2em; }
.event-card h3 { margin:0 0 11px; color:var(--navy); font:600 2.25rem/1.05 var(--serif); }
.event-card p { margin:0 0 22px; }
.event-card .time { margin:-4px 0 12px; color:#243d69; font-size:1.1rem; font-weight:600; }
.dress-section { padding-top:50px; padding-bottom:50px; }
.dress { margin:0 auto; padding:26px 20px; max-width:420px; border-top:1px solid #ccd1d8; border-bottom:1px solid #ccd1d8; }
.dress p:last-child { margin:0; color:var(--navy); font:italic 1.55rem var(--serif); }
.blue-exclusive { display:flex; align-items:center; justify-content:center; gap:9px; margin:17px auto 0; padding:12px 15px; max-width:350px; color:#173f86; border:1px solid #9db4dc; background:#edf4ff; font-size:.83rem; font-weight:700; line-height:1.35; letter-spacing:.015em; }
.blue-exclusive span { flex:0 0 10px; width:10px; height:10px; border-radius:50%; background:#1e65c8; box-shadow:0 0 0 3px #cfe0fb; }
.photo-panel { margin:0; background:var(--navy-deep); line-height:0; }
.photo-panel img { display:block; width:min(100%,860px); max-height:900px; margin:auto; object-fit:contain; }
.gallery { color:#fff; background:linear-gradient(150deg,#0b1b38,#173568); }
.gallery .eyebrow { color:#b7c4d9; }
.gallery h2 { margin-bottom:32px; }
.photo-story { display:grid; grid-template-columns:1fr; gap:18px; max-width:640px; margin:auto; }
.photo-story img { display:block; width:100%; height:auto; max-height:620px; margin:auto; object-fit:contain; border:1px solid #e7edf555; }
.rsvp { background:#eef0f2; }
.rsvp p { max-width:400px; margin:0 auto 26px; color:#556275; }
footer { padding:31px 24px 36px; color:#dbe3ef; background:var(--navy-deep); text-align:center; font-size:.8rem; }
footer p { margin:0; }
.brand { margin-top:20px!important; color:#fff; font-size:.78rem; letter-spacing:.25em; }
.brand span { color:#aebbd0; font-size:.67rem; }
@media (max-width:600px) { .hero>img { object-position:center 24%; } .details,.gallery,.rsvp { padding:50px 18px; } .event-card h3 { font-size:2rem; } .photo-story { gap:14px; } }
