 :root{--paper:#f5f0e8;--white:#fbf9f5;--ink:#292820;--muted:#777166;--olive:#6f735d;--clay:#a56f5b;--line:#d8d0c2}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font-family:"DM Sans",sans-serif;text-align:center}
.hero{min-height:100vh;position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;text-align:left;padding:80px 8vw 70px;gap:5vw;background:var(--paper);overflow:hidden}
.topline{position:absolute;top:28px;left:8vw;right:8vw;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.2em;color:var(--muted)}
.hero-copy{max-width:600px;z-index:1}.eyebrow{font-size:9px;letter-spacing:.22em;font-weight:600;color:var(--clay);margin:0 0 22px}.script-kicker{font-family:"Great Vibes",cursive;color:var(--olive);font-size:31px;margin:0 0 4px}
h1,h2,h3,.footer-names{font-family:"Cormorant Garamond",serif;font-weight:400}h1{font-size:clamp(76px,10vw,142px);line-height:.78;letter-spacing:-.055em;margin:18px 0 25px}h1 em,h2 em,.footer-names em{font-weight:400;color:var(--clay)}
.full-names{font-size:10px;letter-spacing:.25em;color:var(--muted)}.full-names span{color:var(--clay);padding:0 8px}.hairline{width:75px;border-top:1px solid var(--clay);margin:30px 0 20px}.date-line{font-size:9px;letter-spacing:.17em;color:var(--muted)}.year{font-family:"Cormorant Garamond",serif;font-size:42px;margin:2px 0 25px;color:var(--olive)}
.text-link{font-size:9px;letter-spacing:.17em;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--clay);padding-bottom:9px}.text-link span{padding-left:12px;color:var(--clay)}
.hero-image-wrap{position:relative;max-width:570px;justify-self:center;width:100%;padding:13px;background:#fffdf9;box-shadow:0 25px 70px #302b2014;transform:rotate(1.2deg)}.hero-image-wrap img{display:block;width:100%;height:min(68vh,650px);object-fit:cover;object-position:center 30%}.image-note{position:absolute;bottom:-29px;right:8px;font-family:"Cormorant Garamond",serif;font-style:italic;font-size:16px;color:var(--muted)}.vertical-note{position:absolute;right:22px;top:50%;writing-mode:vertical-rl;font-size:8px;letter-spacing:.25em;color:#9c9588}
section{padding:105px 7vw}.intro{max-width:850px;margin:auto}.intro h2,.family h2,.closing h2,.gallery h2,.countdown h2,.event-intro h2{font-size:clamp(48px,7vw,82px);line-height:.95;margin:0 0 24px}.intro>p:last-child{max-width:620px;margin:auto;color:var(--muted);font-family:"Cormorant Garamond",serif;font-size:25px;line-height:1.45}
.gallery{background:#e9e5dc;padding-left:8vw;padding-right:8vw}.gallery-heading{text-align:left;max-width:1000px;margin:0 auto 34px}.gallery-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:26px;max-width:1000px;margin:auto;align-items:start}.gallery-grid figure{margin:0;background:var(--white);padding:12px;box-shadow:0 15px 40px #302b2010}.gallery-grid img{width:100%;display:block;object-fit:cover}.gallery-large img{height:510px}.gallery-small{margin-top:100px!important}.gallery-small img{height:360px}.gallery-grid figcaption{text-align:left;padding:13px 5px 5px;font-family:"Cormorant Garamond",serif;font-style:italic;font-size:20px;color:var(--muted)}
.countdown{background:var(--olive);color:#fff}.countdown .eyebrow{color:#e8d9c5}.countdown h2{color:#fff}.count-grid{display:flex;justify-content:center;gap:clamp(25px,7vw,90px);flex-wrap:wrap;margin-top:40px}.count-grid div{display:flex;flex-direction:column;gap:8px;min-width:75px}.count-grid strong{font-family:"Cormorant Garamond",serif;font-size:clamp(54px,8vw,85px);font-weight:400}.count-grid span{font-size:8px;letter-spacing:.22em;color:#e4ddcf}
.event-section{background:var(--paper)}.event-intro{margin:0 auto 42px}.event-intro>p:last-child{color:var(--muted);font-family:"Cormorant Garamond",serif;font-size:22px}.event-card{max-width:650px;margin:auto;padding:48px 25px 52px;background:#fffdf9;border:1px solid var(--line);box-shadow:0 22px 60px #302b200c}.event-meta{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.2em;color:var(--clay)}.event-script{font-family:"Great Vibes",cursive;font-size:30px;color:var(--olive);margin:35px 0 0}.event-card h3{font-size:clamp(55px,8vw,78px);line-height:.85;margin:12px 0 20px}.event-time{font-family:"Cormorant Garamond",serif;font-size:27px;color:var(--clay)}.event-rule{width:50px;border-top:1px solid var(--line);margin:25px auto}.event-card h4{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:25px;margin:0 0 8px}.event-place{font-size:11px;color:var(--muted);letter-spacing:.08em}.map-link{display:inline-block;margin-top:24px;padding:14px 19px;border:1px solid var(--olive);color:var(--olive);text-decoration:none;font-size:8px;letter-spacing:.16em}.calendar-button,.share-button{margin-top:28px;background:transparent;border:0;border-bottom:1px solid var(--clay);padding:12px 3px;color:var(--ink);font:500 9px "DM Sans",sans-serif;letter-spacing:.17em;cursor:pointer}
.family{background:#e9e5dc}.family-card{max-width:680px;margin:35px auto 0;padding:35px 25px;border-top:1px solid #c9c0b1;border-bottom:1px solid #c9c0b1}.family-label{font-size:8px;letter-spacing:.2em;color:var(--clay)}.family-card h3{font-size:36px;line-height:1.05;margin:18px 0}.family-card h3 span{font-style:italic;color:var(--clay)}.family-members{font-family:"Cormorant Garamond",serif;font-size:20px;color:var(--olive);line-height:1.5}.family-address{font-size:10px;line-height:1.8;color:var(--muted)}
.closing{padding:110px 20px;background:var(--paper)}.closing h2{font-size:clamp(58px,8vw,92px)}.closing>p:not(.script-kicker){font-family:"Cormorant Garamond",serif;font-size:22px;color:var(--muted)}
footer{background:#292e27;color:#eee9df;padding:42px 20px 36px}.footer-names{font-size:48px;margin:0 0 12px}footer p:not(.footer-names){font-size:8px;letter-spacing:.2em;color:#c7c0b4}footer p span{color:#c18d75;padding:0 8px}footer small{font-size:7px;letter-spacing:.25em;color:#a8a092}
@media(max-width:760px){.hero{grid-template-columns:1fr;padding:85px 8vw 65px;gap:50px;text-align:center}.hero-copy{margin:auto}.hero-image-wrap{max-width:460px}.hero-image-wrap img{height:440px}.vertical-note{display:none}.hairline{margin:25px auto 18px}.gallery-grid{grid-template-columns:1fr;gap:22px}.gallery-heading{text-align:center}.gallery-small{margin-top:0!important}.gallery-large img,.gallery-small img{height:auto;max-height:540px}.count-grid{gap:28px}.count-grid div{min-width:62px}section{padding:75px 6vw}}
@media(max-width:420px){h1{font-size:78px}.topline{font-size:7px}.hero-image-wrap img{height:360px}.event-card{padding:35px 17px}.family-card h3{font-size:30px}}