:root{--paper:#fffdf8;--paper-warm:#f7f0df;--ink:#292b27;--green:#667f43;--peach:#efc4aa;--rule:rgba(41,43,39,.18);--serif:"EB Garamond",Georgia,serif;--sans:"Manrope",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.55;overflow-x:hidden}a{color:inherit}button{font:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.site-header{position:fixed;inset:0 0 auto;z-index:20;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,4vw,68px);background:rgba(255,253,248,.84);border-bottom:1px solid transparent;backdrop-filter:blur(14px);transition:border-color .25s ease}.site-header.scrolled{border-color:var(--rule)}.wordmark{font-family:var(--serif);font-size:1.15rem;letter-spacing:.11em;text-decoration:none}.wordmark i{color:var(--green);font-weight:400}.site-nav{display:flex;gap:clamp(22px,3vw,46px)}.site-nav a{padding:8px 0;text-decoration:none;font-size:.68rem;letter-spacing:.19em;text-transform:uppercase;border-bottom:1px solid transparent}.site-nav a:hover,.site-nav a:focus-visible{border-color:var(--green)}.menu-button{display:none;border:0;background:transparent;padding:10px 0 10px 10px;color:var(--ink)}.menu-button>span:not(.sr-only){display:block;width:25px;height:1px;margin:7px 0;background:currentColor}
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,.93fr) minmax(420px,1.07fr);align-items:center;overflow:hidden;padding-top:72px}.stripe-band{position:absolute;left:0;top:72px;bottom:0;width:clamp(22px,3.5vw,56px);background:repeating-linear-gradient(90deg,transparent 0 7px,rgba(239,196,170,.72) 7px 9px,transparent 9px 15px)}.hero-florals{grid-column:2;justify-self:end;width:min(680px,55vw);height:calc(100svh - 72px);object-fit:contain;object-position:center right;opacity:.86}.hero-copy{grid-column:1;grid-row:1;z-index:2;width:min(560px,78%);margin-left:clamp(70px,9vw,170px);padding:60px 0}.kicker{margin:0 0 24px;font-size:.65rem;text-transform:uppercase;letter-spacing:.26em}.hero h1{margin:0 0 50px;font-family:var(--serif);font-weight:400;font-size:clamp(4.5rem,8vw,8.5rem);line-height:.82;letter-spacing:-.055em}.hero h1 em{color:var(--green);font-weight:400}.hero-date,.hero-place{margin:0;font-family:var(--serif);font-size:1.15rem;letter-spacing:.08em;line-height:1.55}.hero-place{margin-top:24px;font-size:.92rem;font-style:italic;color:#52564e}.down{position:absolute;left:50%;bottom:25px;text-decoration:none;font-size:1.4rem;color:var(--green)}
.content-section{width:min(1240px,calc(100% - 48px));margin:0 auto;padding:clamp(110px,13vw,190px) 0;scroll-margin-top:72px}.section-heading{display:grid;grid-template-columns:80px 1fr;gap:clamp(30px,8vw,110px);align-items:start}.number{margin:9px 0 0;font-size:.65rem;letter-spacing:.18em;color:var(--green)}.section-heading .kicker,.attire-copy .kicker,.rsvp-copy .kicker{margin-bottom:18px}h2{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(4.2rem,8vw,8rem);line-height:.85;letter-spacing:-.045em}h3{font-family:var(--serif);font-weight:400}
.event-list{margin:80px 0 0 clamp(110px,13vw,190px);border-top:1px solid var(--rule)}.event-list article{display:grid;grid-template-columns:100px minmax(0,1fr) 180px;gap:clamp(24px,5vw,78px);align-items:center;min-height:170px;padding:28px 0;border-bottom:1px solid var(--rule)}.day{display:flex;align-items:baseline;gap:14px}.day span,.status{font-size:.62rem;text-transform:uppercase;letter-spacing:.22em}.day strong{font-family:var(--serif);font-size:2.7rem;font-weight:400;color:var(--green)}.event-list h3{margin:0 0 8px;font-size:clamp(2rem,3vw,3rem);line-height:1}.event-list article div:nth-child(2) p{margin:0;color:#5a5d56;max-width:500px}.status{margin:0;text-align:right;color:#65685f}
.event-details{display:grid;gap:5px;margin:18px 0 14px}.event-details p{display:grid;grid-template-columns:74px 1fr;gap:14px}.event-details time{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--green)}.transport-note{font-size:.82rem;font-style:italic}
.stripe-divider{height:76px;background:repeating-linear-gradient(90deg,transparent 0 14px,rgba(239,196,170,.52) 14px 16px,transparent 16px 28px)}.travel-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:clamp(60px,10vw,150px);margin:80px 0 0 clamp(110px,13vw,190px)}.hotel{padding:clamp(45px,6vw,80px);border:1px solid var(--green)}.hotel .kicker{color:var(--green)}.hotel h3{margin:0;font-size:clamp(3.5rem,6vw,6rem);line-height:.85}.large-copy{margin:30px 0;font-family:var(--serif);font-size:1.55rem}.hotel>span{display:inline-block;margin-top:35px;padding-top:12px;border-top:1px solid var(--green);font-size:.62rem;letter-spacing:.18em;text-transform:uppercase}.travel-notes article{padding:30px 0;border-bottom:1px solid var(--rule)}.travel-notes article:first-child{border-top:1px solid var(--rule)}.travel-notes p{margin:0 0 18px;color:var(--green);font-size:.62rem;letter-spacing:.21em;text-transform:uppercase}.travel-notes h3{margin:0 0 10px;font-size:2rem;line-height:1.1}.travel-notes span{color:#65685f;font-size:.9rem}
.attire{width:100%;min-height:900px;padding:0;display:grid;grid-template-columns:1fr 1fr;background:var(--paper-warm)}.attire-art{min-height:900px;display:grid;place-items:end center;overflow:hidden}.attire-art img{width:min(720px,100%);height:900px;object-fit:contain;object-position:center bottom;opacity:.82}.attire-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(70px,9vw,150px)}.attire-copy h2{color:var(--green);font-size:clamp(4.4rem,7.5vw,8rem)}.attire-copy>p:not(.number):not(.kicker){max-width:460px;margin:38px 0;font-family:var(--serif);font-size:1.35rem}.palette{display:flex;gap:12px}.palette span{width:clamp(34px,4vw,52px);aspect-ratio:1;border-radius:50%;background:var(--color)}
.rsvp{position:relative;min-height:82svh;display:grid;grid-template-columns:.36fr .64fr;scroll-margin-top:72px}.stripe-panel{background:repeating-linear-gradient(90deg,var(--paper) 0 18px,rgba(239,196,170,.62) 18px 21px,var(--paper) 21px 39px)}.rsvp-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(65px,10vw,170px)}.rsvp-copy h2{color:var(--green)}.rsvp-copy>p:not(.number):not(.kicker):not(.reply-date){margin:40px 0 14px;font-family:var(--serif);font-size:1.4rem}.reply-date{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.rsvp button{margin-top:40px;padding:13px 24px;border:1px solid var(--ink);background:transparent;border-radius:0;text-transform:lowercase;letter-spacing:.16em;font-size:.68rem;color:var(--ink)}
footer{display:flex;justify-content:space-between;align-items:center;padding:38px clamp(24px,5vw,80px);border-top:1px solid var(--rule);font-size:.68rem;letter-spacing:.16em}footer p{margin:0;font-family:var(--serif);font-size:1.1rem}footer i{color:var(--green)}.reveal{opacity:0;transform:translateY(18px);transition:opacity .75s ease,transform .75s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:820px){.site-header{height:64px}.menu-button{display:block}.site-nav{position:absolute;inset:64px 0 auto;display:grid;gap:0;padding:10px 24px 25px;background:var(--paper);border-bottom:1px solid var(--rule);transform:translateY(-130%);opacity:0;z-index:-1;transition:transform .28s ease,opacity .28s ease}.site-header.menu-open .site-nav{transform:translateY(0);opacity:1}.site-nav a{padding:14px 0;border-bottom:1px solid var(--rule)}.hero{min-height:100svh;display:block;padding-top:64px}.stripe-band{top:64px;width:22px}.hero-florals{position:absolute;inset:64px -28% 0 auto;width:112%;height:calc(100svh - 64px);object-position:right center;opacity:.42}.hero-copy{position:relative;display:flex;min-height:calc(100svh - 64px);width:auto;margin:0;padding:18vh 54px 92px 48px;flex-direction:column;justify-content:center}.hero h1{margin-bottom:42px;font-size:clamp(4.4rem,21vw,7rem);max-width:8ch}.hero-date{font-size:1rem}.hero-place{font-size:.82rem}.down{left:48px}.content-section{width:min(100% - 36px,680px);padding:105px 0}.section-heading{grid-template-columns:40px 1fr;gap:18px}h2{font-size:clamp(4.1rem,21vw,6.5rem)}.event-list{margin:55px 0 0}.event-list article{grid-template-columns:76px 1fr;gap:24px;min-height:0;padding:32px 0}.event-list h3{font-size:2rem}.status{grid-column:2;text-align:left}.travel-layout{grid-template-columns:1fr;gap:50px;margin:55px 0 0}.hotel{padding:42px 28px}.hotel h3{font-size:4rem}.attire{min-height:0;grid-template-columns:1fr}.attire-art{min-height:470px;order:2}.attire-art img{height:560px;width:100%;object-position:center top;opacity:.62}.attire-copy{padding:95px 28px 30px}.attire-copy h2{font-size:clamp(4.2rem,18vw,6.5rem)}.rsvp{min-height:80svh;grid-template-columns:24px 1fr}.rsvp-copy{padding:90px 28px;align-items:flex-start}footer{align-items:flex-start;gap:20px}}
@media(max-width:400px){.hero-copy{padding-left:38px;padding-right:22px}.down{left:38px}.hero h1{font-size:4.5rem}.day strong{font-size:2.3rem}.event-list article{grid-template-columns:66px 1fr;gap:17px}.palette{gap:7px}footer{flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

.private-event{background:linear-gradient(90deg,rgba(247,240,223,.72),rgba(255,253,248,0))}.invitation-only{margin:0 0 8px!important;color:var(--green)!important;font-size:.62rem!important;font-style:normal!important;font-weight:600;letter-spacing:.18em;text-transform:uppercase}.guest-access{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.72fr);gap:clamp(36px,7vw,100px);align-items:end;margin:54px 0 0 clamp(110px,13vw,190px);padding:34px 38px;border:1px solid var(--rule);background:var(--paper-warm)}.guest-access h3{margin:3px 0 7px;font-family:var(--serif);font-size:2rem;font-weight:400;line-height:1}.guest-access>div>p:last-child{margin:0;color:#5a5d56;font-size:.86rem}.guest-access form{display:grid;gap:8px}.guest-access label{font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.guest-access-controls{display:grid;grid-template-columns:minmax(90px,1fr) auto}.guest-access input{min-width:0;padding:12px 14px;border:1px solid var(--ink);border-right:0;border-radius:0;background:var(--paper);color:var(--ink);font:500 1rem var(--sans);letter-spacing:.13em}.guest-access button{padding:12px 18px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:var(--paper);font-size:.66rem;letter-spacing:.13em;text-transform:lowercase;cursor:pointer}.guest-access button:hover,.guest-access button:focus-visible{background:var(--green);border-color:var(--green)}.guest-access input:focus-visible,.guest-access button:focus-visible{outline:2px solid var(--peach);outline-offset:2px}.guest-access-message{min-height:1.35em;margin:2px 0 0;color:#5a5d56;font-size:.76rem}.guest-access form.confirmed .guest-access-message{color:var(--green);font-weight:600}

@media(max-width:820px){.guest-access{grid-template-columns:1fr;gap:24px;margin:42px 0 0;padding:28px 22px}.guest-access h3{font-size:1.85rem}}
@media(max-width:400px){.guest-access-controls{grid-template-columns:1fr}.guest-access input{border-right:1px solid var(--ink);border-bottom:0}.guest-access button{width:100%}}

body.site-locked{overflow:hidden}.access-gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;min-height:100svh;padding:32px;background:var(--paper);overflow:hidden}.access-gate-stripes{position:absolute;inset:0 auto 0 0;width:clamp(22px,13vw,190px);background:repeating-linear-gradient(90deg,var(--paper) 0 18px,rgba(239,196,170,.62) 18px 21px,var(--paper) 21px 39px)}.access-gate-florals{position:absolute;inset:0 -4% 0 auto;width:min(53vw,780px);height:100%;object-fit:cover;object-position:left center;opacity:.22;pointer-events:none}.access-gate-card{position:relative;width:min(100%,540px);padding:clamp(44px,7vw,76px);text-align:center;border:1px solid var(--rule);background:rgba(255,253,248,.94);box-shadow:0 26px 70px rgba(41,43,39,.1)}.gate-monogram{margin:0 0 32px;font-family:var(--serif);font-size:1.15rem;letter-spacing:.18em;color:var(--green)}.gate-monogram i{font-weight:400}.access-gate h1{margin:4px 0 20px;font-family:var(--serif);font-size:clamp(4.4rem,9vw,6.8rem);font-weight:400;line-height:.82;color:var(--green)}.access-gate-card>p:not(.kicker):not(.gate-monogram):not(.gate-date){width:min(100%,390px);margin:0 auto;color:#5a5d56}.access-gate form{display:grid;gap:9px;margin:35px auto 0;text-align:left}.access-gate label{font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.site-access-controls{display:grid;grid-template-columns:minmax(100px,1fr) auto}.access-gate input{min-width:0;padding:14px 16px;border:1px solid var(--ink);border-right:0;border-radius:0;background:var(--paper);color:var(--ink);font:500 1.05rem var(--sans);letter-spacing:.18em}.access-gate input[aria-invalid="true"]{border-color:#9f3d32;background:#fff7f4}.access-gate button{padding:14px 28px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:var(--paper);font-size:.7rem;letter-spacing:.16em;text-transform:lowercase;cursor:pointer}.access-gate button:hover,.access-gate button:focus-visible{background:var(--green);border-color:var(--green)}.access-gate input:focus-visible,.access-gate button:focus-visible{outline:2px solid var(--peach);outline-offset:2px}.site-access-message{min-height:1.5em;margin:2px 0 0;color:#9f3d32;font-size:.78rem}.gate-date{margin:34px 0 0;font-family:var(--serif);font-size:.85rem;letter-spacing:.11em;text-transform:lowercase;color:var(--green)}

@media(max-width:820px){.access-gate{padding:22px}.access-gate-stripes{width:22px}.access-gate-florals{inset:0 -28% 0 auto;width:110%;opacity:.14}.access-gate-card{padding:46px 28px}.access-gate h1{font-size:clamp(4.2rem,20vw,6.2rem)}}
@media(max-width:400px){.access-gate{padding:16px 16px 16px 34px}.access-gate-card{padding:38px 20px}.gate-monogram{margin-bottom:22px}.site-access-controls{grid-template-columns:1fr}.access-gate input{border-right:1px solid var(--ink);border-bottom:0}.access-gate button{width:100%}.gate-date{margin-top:26px}}
