:root{--forest:#3e4c2c;--forest-deep:#24301e;--berry:#8e2748;--orange:#d86a28;--gold:#f1b653;--blush:#f1c5bf;--cream:#fbf4e9;--paper:#fffdf8;--ink:#202218;--line:rgba(32,34,24,.18);--serif:"Italiana",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:400 1rem/1.7 var(--sans);overflow-x:hidden}img{display:block;width:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:100;background:#fff;padding:.7rem 1rem}.skip-link:focus{top:1rem}.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1.2rem,4vw,4.5rem);position:absolute;top:0;width:100%;z-index:10;color:#fff;border-bottom:1px solid rgba(255,255,255,.3)}.wordmark,.footer-mark{font:2rem var(--serif);letter-spacing:.08em}.wordmark span,.footer-mark span{color:var(--gold);font-style:italic}.site-header nav{display:flex;gap:clamp(1rem,2vw,2.2rem);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.site-header nav a{padding:.8rem 0;border-bottom:1px solid transparent}.site-header nav a:hover,.site-header nav a:focus-visible{border-color:#fff}.menu-button{display:none;background:none;border:1px solid rgba(255,255,255,.6);color:#fff;padding:.5rem .7rem}.hero{height:min(900px,100svh);min-height:650px;position:relative;color:#fff;display:flex;align-items:flex-end}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,22,16,.22),rgba(20,22,16,.12) 45%,rgba(20,22,16,.74))}.hero-copy{position:relative;width:100%;text-align:center;padding:4rem 1.5rem 8rem}.eyebrow{text-transform:uppercase;letter-spacing:.24em;font-size:.72rem;font-weight:600;margin:0 0 1.15rem}.hero h1{font:clamp(4rem,11vw,9.5rem)/.9 var(--serif);font-weight:400;margin:0;text-shadow:0 2px 25px rgba(0,0,0,.25)}.hero h1 i{font-weight:400;color:var(--gold)}.hero-date{font-size:clamp(.85rem,1.3vw,1.05rem);letter-spacing:.12em;text-transform:uppercase;margin:1.8rem 0 2.2rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.45rem;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:600;border:1px solid transparent;cursor:pointer;transition:.25s}.button-light{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.08);backdrop-filter:blur(8px)}.button-light:hover{background:#fff;color:var(--forest)}.button-dark{background:var(--forest-deep);color:#fff}.button-dark:hover{background:var(--berry)}.scroll-cue{position:absolute;right:3rem;bottom:2.5rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;display:flex;gap:.8rem;align-items:center}.scroll-cue span{font-size:1.2rem}.section-pad{padding:clamp(5rem,9vw,9rem) clamp(1.25rem,6vw,7rem)}.welcome{text-align:center;background:var(--cream)}.leaf-mark{color:var(--orange);font-size:1.4rem}.welcome>p{font:clamp(1.6rem,3.1vw,2.7rem)/1.35 var(--serif);max-width:920px;margin:1.5rem auto 4rem}.countdown{max-width:700px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.4rem 0}.countdown div+div{border-left:1px solid var(--line)}.countdown strong{font:clamp(2rem,4vw,3.4rem) var(--serif);display:block}.countdown span{text-transform:uppercase;font-size:.65rem;letter-spacing:.18em}.section-heading{text-align:center;margin:0 auto clamp(3rem,5vw,5rem)}.section-heading .eyebrow{color:var(--berry)}.section-heading h2,.rsvp h2,.extra-card h2,.contact h2{font:clamp(3rem,6vw,6rem)/.95 var(--serif);font-weight:400;margin:0}.section-heading.light{color:#fff}.section-heading.light .eyebrow{color:var(--gold)}.story{background:var(--paper)}.story-grid{max-width:1180px;margin:auto;display:grid;grid-template-columns:minmax(260px,.85fr) 1.1fr;gap:clamp(2.5rem,7vw,7rem);align-items:start}.story-photo{margin:0;position:sticky;top:2rem}.story-photo img{aspect-ratio:2/3;object-fit:cover;filter:grayscale(1)}.story-copy{font-size:1.04rem;max-width:650px}.story-copy p{margin:0 0 1.6rem}.dropcap:first-letter{float:left;font:5rem/.8 var(--serif);color:var(--berry);padding:.1rem .5rem 0 0}.details,.policies{background:var(--forest-deep);color:#f6f0e7}.details-grid,.policy-grid{display:grid;grid-template-columns:repeat(4,1fr);max-width:1400px;margin:auto}.details-grid article,.policy-grid article{padding:2rem clamp(1.2rem,2.4vw,2.5rem);border-left:1px solid rgba(255,255,255,.22)}.details-grid article:last-child,.policy-grid article:last-child{border-right:1px solid rgba(255,255,255,.22)}.details-grid span,.policy-grid span{font-size:.68rem;color:var(--gold);letter-spacing:.15em}.details-grid h3,.policy-grid h3{font:2rem var(--serif);font-weight:400;margin:2rem 0 1rem}.details-grid p,.policy-grid p{color:rgba(255,255,255,.75)}.details-grid a{color:var(--gold);text-transform:uppercase;font-size:.68rem;letter-spacing:.13em}.schedule{background:var(--cream)}.timeline{max-width:1040px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.day{background:var(--paper);padding:2rem}.day.featured{background:#fff}.day-date{text-transform:uppercase;letter-spacing:.13em;color:var(--berry);font-size:.7rem;font-weight:600;border-bottom:1px solid var(--line);padding-bottom:1rem;margin:0 0 1rem}.event{display:grid;grid-template-columns:70px 1fr;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--line)}.event:last-child{border:0}.event time{font-size:.7rem;font-weight:600;color:var(--orange);text-transform:uppercase;letter-spacing:.05em}.event h3{font:1.35rem var(--serif);font-weight:400;margin:0 0 .25rem}.event p{font-size:.82rem;margin:0;color:#595a51}.event a{font-size:.7rem;text-decoration:underline}.travel{background:var(--paper)}.airport-card{max-width:1040px;margin:0 auto 2rem;background:var(--forest);color:#fff;padding:2rem 2.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.airport-card>div{display:flex;align-items:center;gap:1.5rem}.airport-code{font:3rem var(--serif);color:var(--gold)}.airport-card p{margin:0;max-width:400px}.hotel-groups{max-width:1040px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.hotel-groups>div{padding:2rem;border-right:1px solid var(--line)}.hotel-groups>div:last-child{border:0}.hotel-groups h3{font:1.5rem var(--serif);font-weight:400;margin:0 0 1.2rem}.hotel-groups ul{list-style:none;margin:0;padding:0}.hotel-groups li{padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.82rem}.hotel-groups li span{display:block;color:#77786f;font-size:.72rem}.travel-note{max-width:1040px;margin:1.5rem auto 0;padding:1.5rem 2rem;background:var(--cream);display:flex;gap:2rem}.travel-note p{margin:0}.rsvp{background:var(--blush);display:grid;grid-template-columns:.7fr 1fr;gap:clamp(3rem,8vw,8rem)}.rsvp-intro{position:sticky;top:2rem;align-self:start}.rsvp-intro .eyebrow{color:var(--berry)}.rsvp-intro>p:last-child{max-width:260px}form{background:var(--paper);padding:clamp(1.5rem,4vw,3.5rem)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label,legend{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:1.2rem}input,select,textarea{display:block;width:100%;margin-top:.5rem;border:0;border-bottom:1px solid #8f8b80;background:transparent;padding:.8rem .2rem;border-radius:0;color:var(--ink);font-size:1rem;text-transform:none;letter-spacing:0;font-weight:400}textarea{border:1px solid #aaa69b;padding:.8rem;resize:vertical}.rsvp fieldset{border:0;padding:0;margin:0 0 1rem}.choice{display:flex;align-items:center;gap:.7rem;text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:400;margin:.6rem 0}.choice input{width:auto;margin:0;accent-color:var(--berry)}.form-note{font-size:.72rem;color:#68695f;margin:1rem 0 0}.faq-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,6rem);max-width:1200px;margin:auto}.accordion details{border-top:1px solid var(--line);padding:1.2rem 0}.accordion details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font:1.3rem var(--serif);list-style:none;display:flex;justify-content:space-between}summary:after{content:"+";font-family:var(--sans);color:var(--berry)}details[open] summary:after{content:"–"}.accordion details p{max-width:600px;color:#56574f}.attire-board{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-content:start}.attire-board button,.photo-collage button{padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden}.attire-board button:first-child{grid-column:1/-1}.attire-board img{aspect-ratio:4/5;object-fit:cover;transition:transform .45s}.attire-board button:first-child img{aspect-ratio:16/11;object-position:center 42%}.attire-board button:hover img,.photo-collage button:hover img{transform:scale(1.02)}.policy-grid article{min-height:300px}.photos{background:var(--cream)}.photo-collage{max-width:1200px;margin:auto;display:grid;grid-template-columns:1.45fr .7fr .95fr;grid-template-rows:auto auto;gap:1.1rem;align-items:stretch}.photo-collage img{height:100%;object-fit:cover;transition:transform .5s}.photo-wide{grid-column:1/3;aspect-ratio:16/9}.photo-caption{background:var(--berry);color:#fff;padding:2rem;display:flex;flex-direction:column;justify-content:space-between}.photo-caption p{font:clamp(1.5rem,3vw,2.5rem)/1.15 var(--serif);margin:0}.photo-caption span{font-size:.65rem;text-transform:uppercase;letter-spacing:.16em}.photo-tall{grid-column:3;grid-row:1/3;aspect-ratio:2/3}.photo-night{grid-column:1/3;aspect-ratio:16/8}.extras{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);padding-top:0;padding-bottom:0}.extra-card{background:var(--paper);padding:clamp(3rem,6vw,6rem) clamp(1.5rem,4vw,4rem);text-align:center}.extra-card h2{font-size:clamp(2.5rem,4vw,4rem)}.extra-card p:not(.eyebrow){max-width:380px;margin:1.4rem auto 2rem}.extra-card .eyebrow{color:var(--berry)}.coming-soon{text-transform:uppercase;letter-spacing:.15em;font-size:.68rem;color:var(--berry)}.contact{text-align:center;background:var(--orange);color:#fff}.contact h2{margin-bottom:3rem}.contact-list{display:flex;justify-content:center;gap:clamp(2rem,6vw,6rem)}.contact-list a{padding:1rem;border-bottom:1px solid rgba(255,255,255,.6)}.contact-list span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.15em;margin-bottom:.3rem}footer{background:#171b14;color:#fff;text-align:center;padding:4rem 1.5rem}footer .footer-mark{margin:0 0 .5rem}footer p{color:rgba(255,255,255,.7);font-size:.78rem}footer a{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gold)}dialog{border:0;padding:0;background:transparent;max-width:min(92vw,1100px);max-height:92vh}dialog::backdrop{background:rgba(11,12,9,.92)}dialog img{max-width:92vw;max-height:88vh;object-fit:contain}dialog button{position:fixed;top:1rem;right:1rem;border:1px solid #fff;background:#111;color:#fff;width:44px;height:44px;border-radius:50%;font-size:1.5rem;cursor:pointer}
@media(max-width:900px){.site-header{height:68px}.menu-button{display:block}.site-header nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--forest-deep);padding:1rem 1.5rem;flex-direction:column;gap:0}.site-header nav.open{display:flex}.site-header nav a{padding:.7rem 0}.hero{min-height:620px}.scroll-cue{display:none}.story-grid{grid-template-columns:1fr}.story-photo{position:relative;top:auto}.story-photo img{aspect-ratio:4/5}.details-grid,.policy-grid{grid-template-columns:1fr 1fr}.details-grid article:nth-child(3),.policy-grid article:nth-child(3){border-top:1px solid rgba(255,255,255,.22)}.timeline{grid-template-columns:1fr}.hotel-groups{grid-template-columns:1fr}.hotel-groups>div{border-right:0;border-bottom:1px solid var(--line)}.rsvp{grid-template-columns:1fr}.rsvp-intro{position:relative;top:auto}.faq-layout{grid-template-columns:1fr}.extras{grid-template-columns:1fr}.photo-collage{grid-template-columns:1.3fr .7fr}.photo-wide{grid-column:1/3}.photo-tall{grid-column:2;grid-row:2/4}.photo-night{grid-column:1;aspect-ratio:3/4}.photo-caption{grid-column:1;grid-row:2}.contact-list{flex-direction:column;gap:1rem}}
@media(max-width:560px){.section-pad{padding:4.5rem 1.15rem}.hero-copy{padding-bottom:5.5rem}.hero h1{font-size:3.75rem}.countdown strong{font-size:1.75rem}.countdown span{font-size:.55rem}.details-grid,.policy-grid{grid-template-columns:1fr}.details-grid article,.details-grid article:last-child,.policy-grid article,.policy-grid article:last-child{border:0;border-top:1px solid rgba(255,255,255,.22);min-height:0}.airport-card{align-items:flex-start;flex-direction:column}.hotel-groups>div{padding:1.4rem}.travel-note{flex-direction:column;gap:.5rem}.field-row{grid-template-columns:1fr}.photo-collage{display:grid;grid-template-columns:1fr}.photo-wide,.photo-tall,.photo-night,.photo-caption{grid-column:1;grid-row:auto}.photo-wide{aspect-ratio:4/3}.photo-tall{aspect-ratio:3/4}.photo-night{aspect-ratio:3/4}.photo-caption{min-height:220px}.attire-board{grid-template-columns:1fr}.attire-board button:first-child{grid-column:auto}.attire-board button:first-child img,.attire-board img{aspect-ratio:3/4}.contact-list a{font-size:.88rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.rsvp-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}.admin-link{display:inline-block;margin-top:1rem;opacity:.55}.admin-link:hover{opacity:1}
.contact-group{display:flex;flex-direction:column;align-items:center}.contact-group>a{padding:.65rem 1rem}
