:root{--white:#F8F5EC;--ivory:#FFFFF6;--birch:#CAC7B1;--celery:#A9B096;--sage:#6A703F;--fern:#3F4B15;--deep:#151E08;--ink:#1E2610;--muted:#5F6450;--gold:#C8A96A;--line:rgba(30,38,16,.14);
--serif:'Cormorant Garamond',Georgia,serif;--disp:'Italiana','Cormorant Garamond',serif;--sans:'Jost',system-ui,sans-serif;--ease:cubic-bezier(.2,.7,.1,1)}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--white);color:var(--ink);font:300 17px/1.75 var(--sans);overflow-x:hidden}
img{max-width:100%}a{color:inherit}em{font-style:italic;font-family:var(--serif);font-weight:300}
.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:.5rem 1rem}
mark.ph{background:rgba(200,169,106,.18);color:inherit;border-bottom:1px dashed var(--gold);padding:0 .15em}
.dark mark.ph,.hero mark.ph{background:rgba(200,169,106,.25)}
/* nav */
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;gap:2rem;padding:1.3rem clamp(1.2rem,4vw,3.5rem);color:#fff;transition:.5s var(--ease)}
.nav.solid{background:rgba(244,242,238,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--ink);padding-block:.8rem;box-shadow:0 1px 0 var(--line)}
.mono{font:400 1.7rem/1 var(--disp);text-decoration:none;letter-spacing:.06em}.mono span{font:italic 300 1.2em var(--serif);color:var(--celery);margin:0 .12em}.nav.solid .mono span{color:var(--sage)}
.nav nav{margin-left:auto}.nav ul{display:flex;gap:clamp(1rem,2vw,2rem);list-style:none}
.nav ul a{font:400 .72rem/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;text-decoration:none;position:relative;padding:.4rem 0}
.nav ul a:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:currentColor;transition:.4s var(--ease)}.nav ul a:hover:after{right:0}
.lang{font:400 .7rem var(--sans);letter-spacing:.2em;text-transform:uppercase;background:none;color:inherit;border:1px solid currentColor;padding:.55rem 1rem;border-radius:99px;cursor:pointer;opacity:.85}
.burger{display:none;background:none;border:0;width:34px;height:22px;position:relative;cursor:pointer;color:inherit}.burger i{position:absolute;left:4px;right:4px;height:1px;background:currentColor;transition:.3s}.burger i:first-child{top:7px}.burger i:last-child{top:14px}
/* hero */
.hero{position:relative;height:100svh;min-height:620px;display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:-6% 0;background-size:cover;background-position:50% 60%;transform:scale(1.08);animation:kb 22s var(--ease) both;will-change:transform}
@keyframes kb{from{filter:brightness(.7) saturate(.85)}to{filter:brightness(1) saturate(1)}}
.hero-veil{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,rgba(21,30,8,.25),rgba(21,30,8,.62) 75%),linear-gradient(180deg,rgba(12,18,5,.5),transparent 30%,transparent 60%,rgba(12,18,5,.7))}
.hero-in{position:relative;padding:6rem 1.2rem 4rem;max-width:1100px}
.hero-in>*{opacity:0;transform:translateY(18px);animation:up 1.6s var(--ease) forwards}
.hero-in>:nth-child(2){animation-delay:.25s}.hero-in>:nth-child(3){animation-delay:.5s}.hero-in>:nth-child(4){animation-delay:.9s}.hero-in>:nth-child(5){animation-delay:1.05s}.hero-in>:nth-child(6){animation-delay:1.3s}.hero-in>:nth-child(7){animation-delay:1.5s}
@keyframes up{to{opacity:1;transform:none}}
.kicker,.eyebrow{font:400 .72rem/1 var(--sans);letter-spacing:.42em;text-transform:uppercase}
.hero-mono{font:400 1.1rem var(--disp);letter-spacing:.3em;margin:1.6rem auto 1.2rem;width:74px;height:74px;border:1px solid rgba(255,255,255,.55);border-radius:50%;display:grid;place-items:center}.hero-mono em{color:var(--celery)}
.names{font:400 clamp(3.6rem,11vw,10.5rem)/.92 var(--disp);letter-spacing:.01em;display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 .25em;text-shadow:0 2px 40px rgba(0,0,0,.25)}
.names em{font-size:.62em;color:var(--celery)}
.hdate{font:italic 300 clamp(1.4rem,2.6vw,2rem)/1.3 var(--serif);margin-top:1.6rem}
.hplace{font:400 .74rem var(--sans);letter-spacing:.32em;text-transform:uppercase;opacity:.85;margin-top:.6rem}
.count{display:flex;justify-content:center;align-items:center;gap:clamp(.8rem,3vw,2.4rem);margin:2.4rem 0 2.6rem}
.count div{min-width:3.6rem}.count b{display:block;font:300 clamp(2rem,4vw,3.2rem)/1 var(--serif);font-variant-numeric:lining-nums tabular-nums}.count span{font:400 .6rem var(--sans);letter-spacing:.3em;text-transform:uppercase;opacity:.75}
.count i{width:1px;height:2.4rem;background:rgba(255,255,255,.35)}
.btn{display:inline-block;font:400 .74rem var(--sans);letter-spacing:.3em;text-transform:uppercase;text-decoration:none;padding:1.1rem 2.6rem;border:1px solid var(--deep);background:var(--deep);color:var(--white);cursor:pointer;transition:.5s var(--ease)}
.btn:hover{background:transparent;color:var(--deep)}.btn.light{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}.btn.light:hover{background:#fff;color:var(--deep)}
.scroll-cue{position:absolute;bottom:2rem;left:50%;width:1px;height:60px;background:linear-gradient(rgba(255,255,255,.8),transparent);animation:cue 2.4s infinite}@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
/* sections */
.sec{padding:clamp(5rem,12vw,10rem) clamp(1.3rem,6vw,6rem);position:relative}
.head{text-align:center;max-width:760px;margin:0 auto clamp(3rem,6vw,5rem)}
.eyebrow{color:var(--sage);display:flex;align-items:center;justify-content:center;gap:1rem}.eyebrow:before,.eyebrow:after{content:"";width:2.2rem;height:1px;background:currentColor;opacity:.6}
h2{font:300 clamp(2.6rem,6vw,5rem)/1.04 var(--serif);margin-top:1.3rem;letter-spacing:-.01em}h2 em{color:var(--sage)}
.note{font:italic 300 1.15rem var(--serif);color:var(--muted);margin-top:1rem}.lead{font:300 1.35rem/1.6 var(--serif);margin:1.5rem 0 2.4rem}
h3{font:400 1.7rem/1.2 var(--serif)}
.frame{overflow:hidden;position:relative;margin:0}.zoom{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.12);transition:transform 2.6s var(--ease)}.frame.in .zoom{transform:scale(1)}
.frame figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.4rem 1.4rem 1.2rem;color:#fff;font:italic 300 1.15rem var(--serif);letter-spacing:.04em;background:linear-gradient(transparent,rgba(10,16,12,.6))}
.rv{opacity:0;transform:translateY(40px);transition:opacity 1.3s var(--ease),transform 1.3s var(--ease)}.rv.in{opacity:1;transform:none}
/* story */
.story-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2.5rem,7vw,7rem);align-items:center;max-width:1240px;margin:auto}
.story .eyebrow{justify-content:flex-start}.story .eyebrow:after{display:none}
.portrait{aspect-ratio:3/4;box-shadow:30px 30px 0 -1px var(--celery)}
.paras p{font:300 1.32rem/1.7 var(--serif);margin-top:1.4rem}.paras p:first-child:first-letter{font:400 4.6rem/.8 var(--disp);float:left;margin:.45rem .6rem 0 0;color:var(--sage)}
.miles{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);max-width:1240px;margin:clamp(4rem,8vw,7rem) auto 0;border-top:1px solid var(--line)}
.miles li{padding:1.8rem 1rem 0;text-align:center;position:relative}.miles li:before{content:"";position:absolute;top:-5px;left:50%;width:9px;height:9px;margin-left:-4.5px;border-radius:50%;background:var(--white);border:1px solid var(--sage)}
.miles b{display:block;font:400 1.6rem var(--disp);color:var(--deep)}.miles span{font:400 .7rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
/* band */
.band{height:70vh;min-height:380px;position:relative;overflow:hidden;display:grid;place-items:center}.band-bg{position:absolute;inset:-15% 0;background-size:cover;background-position:center;will-change:transform}
.band:after{content:"";position:absolute;inset:0;background:rgba(21,30,8,.35)}.band-q{position:relative;z-index:1;color:#fff;font:400 clamp(.7rem,1.2vw,.85rem) var(--sans);letter-spacing:.5em;text-transform:uppercase;text-align:center;padding:0 1rem}
/* dark */
.dark{background:radial-gradient(ellipse at 20% 0%,rgba(63,75,21,.55),transparent 60%),var(--deep);color:var(--white)}.dark .eyebrow{color:var(--celery)}.dark h2 em{color:var(--celery)}.dark .note{color:rgba(244,242,238,.65)}
.weekend:before,.foot .stripe{content:"";position:absolute;top:0;left:0;right:0;height:10px;background:repeating-linear-gradient(90deg,var(--sage) 0 22px,var(--white) 22px 44px);opacity:.9}
.days{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:1.4rem;max-width:1240px;margin:auto;align-items:start}
.day{border:1px solid rgba(169,176,150,.25);padding:2.4rem 2rem}.day.main{background:rgba(244,242,238,.04);border-color:rgba(169,176,150,.55);padding:3rem 2.4rem}
.day h3{font:400 .78rem var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--celery);padding-bottom:1.2rem;border-bottom:1px solid rgba(169,176,150,.25);margin-bottom:.6rem}
.day ul{list-style:none}.day li{display:grid;grid-template-columns:5.6rem 1fr;gap:1rem;padding:1.1rem 0;border-bottom:1px solid rgba(244,242,238,.07)}.day li:last-child{border:0}
.day time{font:italic 300 1.15rem var(--serif);color:var(--celery)}.day b{display:block;font:400 1.45rem/1.2 var(--serif)}.day span{font-size:.88rem;opacity:.7}
.day:nth-child(2){transition-delay:.15s}.day:nth-child(3){transition-delay:.3s}
/* details */
.det-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,6rem);max-width:1240px;margin:auto;align-items:start}
.tall{aspect-ratio:4/5;position:sticky;top:6rem}.det-text article{padding:0 0 2.6rem;margin-bottom:2.6rem;border-bottom:1px solid var(--line)}
.det-text p{margin-top:.8rem;color:#3c463f}.sub{font:italic 300 1.3rem var(--serif)!important;color:var(--sage)!important}
.link{display:inline-block;margin-top:1.2rem;font:400 .72rem var(--sans);letter-spacing:.28em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--sage);padding-bottom:.3rem}
.swatches{list-style:none;display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:1.6rem}.swatches li{font:400 .62rem var(--sans);letter-spacing:.18em;text-transform:uppercase;text-align:center;color:var(--muted);width:4.6rem}
.swatches i{display:block;width:3.6rem;height:3.6rem;border-radius:50%;margin:0 auto .6rem;border:1px solid var(--line)}
.sw0{background:var(--ivory)}.sw1{background:var(--birch)}.sw2{background:var(--celery)}.sw3{background:var(--sage)}.sw4{background:var(--fern)}.sw5{background:var(--deep)}
.wide{aspect-ratio:16/10}
/* travel */
.travel{background:#EFEDE2}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);max-width:1300px;margin:auto;border:1px solid var(--line)}
.card{background:#F6F4EC;padding:2.6rem 2rem 3rem;transition:background .5s}.card:hover{background:#fff}
.num{font:400 2.6rem var(--disp);color:var(--celery)}.card h3{margin:1rem 0 .8rem}.card p{font-size:.95rem;color:#4a534c}
.card:nth-child(2){transition-delay:.1s}.card:nth-child(3){transition-delay:.2s}.card:nth-child(4){transition-delay:.3s}
/* registry */
.candle{background:radial-gradient(ellipse at 50% 120%,rgba(232,200,134,.22),transparent 60%),var(--fern);text-align:center}.candle .head{margin-bottom:0}
/* faq */
.acc{max-width:860px;margin:auto;border-top:1px solid var(--line)}.qa{border-bottom:1px solid var(--line)}
.qa button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1rem;text-align:left;background:none;border:0;padding:1.7rem .2rem;font:400 clamp(1.25rem,2.2vw,1.6rem)/1.3 var(--serif);color:var(--ink);cursor:pointer}
.qa button i{flex:none;width:16px;height:16px;position:relative}.qa button i:before,.qa button i:after{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--sage);transition:.4s var(--ease)}.qa button i:after{transform:rotate(90deg)}.qa.open button i:after{transform:rotate(0)}
.ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s var(--ease)}.ans>div{overflow:hidden}.qa.open .ans{grid-template-rows:1fr}.ans p{padding:0 3rem 1.8rem .2rem;color:#4a534c}
:focus-visible{outline:2px solid var(--sage);outline-offset:3px}
/* rsvp */
.rsvp{background:linear-gradient(180deg,var(--white),var(--birch))}
.rsvp-wrap{display:grid;grid-template-columns:.85fr 1.15fr;max-width:1240px;margin:auto;box-shadow:0 40px 80px -40px rgba(31,46,36,.35)}
.rsvp-photo{min-height:520px}.rsvp-card{background:#fff;padding:clamp(2.4rem,5vw,4.6rem)}.rsvp-card .head{margin-bottom:2.6rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:0 1.6rem}
.fld{display:block;border:0;margin-bottom:1.5rem}.fld>span,.fld legend{display:block;font:400 .66rem var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}
input:not([type=radio]):not([type=checkbox]),select,textarea{width:100%;font:300 1.05rem var(--sans);color:var(--ink);background:transparent;border:0;border-bottom:1px solid rgba(30,38,16,.28);padding:.7rem 0;border-radius:0;transition:border-color .3s;-webkit-appearance:none;appearance:none}
select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238A9A5B'/%3E%3C/svg%3E") right center no-repeat}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--sage)}
.err{display:block;color:#9b4a3c;font-size:.78rem;min-height:1em;margin-top:.3rem}
.att{display:flex;flex-wrap:wrap;gap:.8rem}.att legend{width:100%;margin-bottom:.8rem}.att .err{width:100%}
.pill{position:relative;cursor:pointer}.pill input{position:absolute;opacity:0}.pill span{display:block;padding:.85rem 1.5rem;border:1px solid rgba(30,38,16,.25);font:italic 300 1.15rem var(--serif);transition:.3s}
.pill input:checked+span{background:var(--deep);color:var(--white);border-color:var(--deep)}.pill input:focus-visible+span{outline:2px solid var(--sage);outline-offset:2px}
.checks{display:flex;flex-wrap:wrap;gap:.8rem 2rem;margin:0 0 1.8rem}.chk{display:flex;align-items:center;gap:.7rem;cursor:pointer;font-size:.95rem}.chk input{accent-color:var(--sage);width:18px;height:18px}
.if-yes{animation:up .6s var(--ease) both}.formmsg{color:#9b4a3c;margin-top:1rem}
.ok{text-align:center;padding:3rem 0;outline:0;animation:up 1s var(--ease) both}.ok-mono{font:400 1.4rem var(--disp);letter-spacing:.3em;width:96px;height:96px;margin:0 auto 1.6rem;border:1px solid var(--sage);border-radius:50%;display:grid;place-items:center}.ok-mono em{color:var(--sage)}
.ok h3{font:300 3rem var(--serif)}.ok p{font:italic 300 1.35rem var(--serif);color:var(--muted);margin-top:.6rem}
/* footer */
.foot{position:relative;background:var(--deep);color:var(--white);text-align:center;padding:5rem 1rem 4rem}.foot .mono.big{font-size:3rem}.foot p{font:italic 300 1.15rem var(--serif);opacity:.75;margin-top:1rem}
/* responsive */
@media (max-width:1060px){.days{grid-template-columns:1fr;max-width:640px}.cards{grid-template-columns:1fr 1fr}.nav ul{gap:1rem}}
@media (max-width:900px){
 .burger{display:block;order:3}.nav{gap:1rem}.lang{margin-left:auto;padding:.45rem .8rem}
 .nav nav{position:fixed;inset:0;background:var(--deep);color:var(--white);display:grid;place-items:center;opacity:0;pointer-events:none;transition:.5s var(--ease);margin:0;z-index:-1}
 .nav ul{flex-direction:column;align-items:center;gap:1.6rem}.nav ul a{font:300 2rem var(--serif);letter-spacing:.02em;text-transform:none}
 body.menu .nav{color:var(--white);background:transparent;box-shadow:none}body.menu .nav nav{opacity:1;pointer-events:auto}body.menu .burger i:first-child{transform:translateY(3.5px) rotate(45deg)}body.menu .burger i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
 .story-grid,.det-grid,.rsvp-wrap{grid-template-columns:1fr}.portrait{box-shadow:16px 16px 0 -1px var(--celery);margin-right:16px}.tall{position:relative;top:0;aspect-ratio:4/3}
 .miles{grid-template-columns:1fr 1fr;gap:2rem 0}.rsvp-photo{min-height:auto;aspect-ratio:4/3}.rsvp-photo .zoom{background-position:50% 35%}
}
@media (max-width:560px){body{font-size:16px}.cards,.row2{grid-template-columns:1fr}.count div{min-width:2.8rem}.count i{height:1.8rem}.hero-mono{width:60px;height:60px;font-size:.9rem;margin:1.2rem auto .9rem}
 .day{padding:2rem 1.4rem}.day li{grid-template-columns:4.6rem 1fr}.paras p{font-size:1.2rem}.ans p{padding-right:1rem}.pill{flex:1}.pill span{text-align:center;padding:.8rem .6rem;font-size:1.05rem}.hplace{letter-spacing:.2em;font-size:.66rem}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv,.hero-in>*{opacity:1;transform:none}}
.motif{text-align:center;font:400 clamp(.7rem,1.3vw,.9rem) var(--sans);letter-spacing:.42em;text-transform:uppercase;color:var(--sage);margin-top:clamp(4rem,8vw,6rem)}
.motif+.miles{margin-top:2.4rem}

.weekend{background:var(--ivory)}
.weekend .day{border-color:rgba(106,112,63,.25);background:#fff}.weekend .day.main{background:#fff;border-color:var(--sage);box-shadow:0 30px 60px -40px rgba(21,30,8,.35)}
.weekend .day h3{color:var(--sage);border-color:rgba(106,112,63,.2)}.weekend .day li{border-color:rgba(21,30,8,.07)}.weekend .day time{color:var(--sage)}
.rsvp{background:linear-gradient(180deg,var(--white),#EEECE0)}
.story{background:var(--white)}.details{background:var(--ivory)}.faq{background:var(--white)}
.sprig{display:block;width:220px;margin:0 auto 2rem;color:var(--sage);opacity:.8}.story .sprig{margin-top:clamp(4rem,8vw,6rem)}.motif{margin-top:0}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.duo .frame{aspect-ratio:4/5}.wk-img{max-width:1240px;margin:clamp(3rem,6vw,5rem) auto 0;aspect-ratio:21/9}@media(max-width:560px){.wk-img{aspect-ratio:4/3}}
.hero-mono,.ok-mono{white-space:nowrap;letter-spacing:.12em;font-size:.95rem}.hero-mono{width:84px;height:84px}.ok-mono{font-size:1.2rem}
.hero-veil{background:radial-gradient(ellipse at 50% 48%,rgba(21,30,8,.42),rgba(21,30,8,.22) 70%),linear-gradient(180deg,rgba(12,18,5,.45),transparent 28%,transparent 62%,rgba(12,18,5,.55))}
@media(max-width:560px){.kicker{letter-spacing:.26em;font-size:.62rem;line-height:1.6}.hero-mono{width:66px;height:66px;font-size:.8rem}}
.hero-mono,.ok-mono{display:flex;align-items:center;justify-content:center;gap:.3em}
.gallery{display:grid;grid-template-columns:1.15fr .7fr .85fr;gap:clamp(1.2rem,3vw,2.6rem);align-items:center;max-width:1240px;margin:clamp(4rem,8vw,7rem) auto 0}
.g-a{aspect-ratio:3/4}.g-b{aspect-ratio:3/4;margin-top:clamp(3rem,8vw,7rem)}.g-text{text-align:center}.g-text .eyebrow{justify-content:center;flex-direction:column;gap:1rem;line-height:1.8}.g-text .eyebrow:after{display:block}
.g-years{font:400 clamp(1.6rem,2.6vw,2.2rem) var(--disp);color:var(--fern);margin-top:1rem;letter-spacing:.06em}
@media(max-width:900px){.gallery{grid-template-columns:1fr 1fr}.g-text{grid-column:1/-1;order:-1}.g-b{margin-top:3rem}}
.g-years{display:flex;align-items:center;justify-content:center;gap:.8rem}.g-years i{display:inline-block;width:2.4rem;height:1px;background:var(--sage)}
.sunset{height:88vh;min-height:520px;place-items:end center}.sunset .band-bg{background-position:50% 62%}.sunset:after{background:linear-gradient(180deg,rgba(248,245,236,.35),transparent 25%,transparent 60%,rgba(21,30,8,.45))}
.band-cap{position:relative;z-index:1;color:#fff;font:italic 300 clamp(2rem,5vw,4rem)/1 var(--serif);padding-bottom:clamp(3rem,8vh,5rem);text-shadow:0 2px 30px rgba(0,0,0,.3)}
@media(max-width:560px){.sunset{height:80svh}.sunset .band-bg{background-position:58% 60%}}
.band:not(.sunset) .band-bg{background-position:50% 72%}@media(max-width:560px){.band-q{letter-spacing:.3em;font-size:.62rem;line-height:2}}
@media(max-width:560px){.band:not(.sunset){height:56svh;min-height:340px}.band:not(.sunset) .band-bg{background-position:50% 88%}}

/* ===== v2: multi-page ===== */
.nav ul a[aria-current=page]:after{right:0}
.hero.page{height:62svh;min-height:440px}.hero.page .hero-in{padding:7rem 1.2rem 3rem}
.ptitle{font:300 clamp(3rem,8vw,6.6rem)/1 var(--serif);margin:1.2rem 0 1rem;text-shadow:0 2px 40px rgba(0,0,0,.25)}.ptitle em{color:var(--birch)}
.hero .hdate{font:italic 300 clamp(1.1rem,2vw,1.4rem) var(--serif)}
.hero.nf{height:100svh}.hero.nf .btn{margin-top:2rem}.hero.nf .hplace{letter-spacing:.06em;text-transform:none;font:italic 300 1.3rem var(--serif)}
/* home */
.welcome{background:var(--ivory)}.welcome .head{margin-bottom:2rem}.welcome .lead{margin-bottom:.6rem}
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,2vw,1.8rem);max-width:1300px;margin:3rem auto 0}
.tile{text-decoration:none;color:inherit;display:flex;flex-direction:column;background:#fff;border:1px solid rgba(106,112,63,.18);transition:box-shadow .6s var(--ease),transform .6s var(--ease)}
.tile:hover{box-shadow:0 30px 60px -40px rgba(21,30,8,.45);transform:translateY(-4px)}.tile:hover .zoom{transform:scale(1.05)}
.tile .frame{aspect-ratio:4/5}.tile-t{padding:1.6rem 1.5rem 1.8rem;display:flex;flex-direction:column;flex:1}.tile .num{font-size:2rem}
.tile h3{font:400 1.6rem/1.2 var(--serif);margin:.4rem 0 .5rem}.tile p{font-size:.93rem;color:#4a534c;flex:1}.tile .link{align-self:flex-start}
.tile:nth-child(2){transition-delay:.1s}.tile:nth-child(3){transition-delay:.2s}.tile:nth-child(4){transition-delay:.3s}
.band-cta{position:relative;z-index:1;text-align:center;padding-bottom:clamp(3rem,8vh,5rem)}.band-cta .band-cap{padding-bottom:1.6rem}
/* footer */
.foot-nav{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 2rem;margin:2.4rem auto 0;max-width:820px}
.foot-nav a{font:400 .68rem var(--sans);letter-spacing:.24em;text-transform:uppercase;text-decoration:none;color:var(--birch)}.foot-nav a:hover{color:#fff}
.foot .foot-small{font:300 .85rem/1.9 var(--sans);font-style:normal;opacity:.6;margin-top:2rem}.foot mark.ph{background:rgba(200,169,106,.25)}
/* rsvp v2 */
.rsvp-card label,.fld>label{display:block;font:400 .66rem var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}
.rsvp-card label.pill,.rsvp-card label.chk{letter-spacing:0;text-transform:none;font:inherit;color:inherit;margin:0}
.opt{font-style:normal;letter-spacing:.1em;text-transform:lowercase;opacity:.7}
.hint{display:block;font-size:.78rem;color:var(--muted);margin-top:.35rem;line-height:1.5}
.fld.bad input,.fld.bad select{border-color:#9b4a3c}.fld.bad .pill span{border-color:rgba(155,74,60,.6)}
.err:empty{min-height:0;margin:0}
.att.small .pill span{padding:.55rem 1.4rem;font-size:1.05rem}.att.small .hint{width:100%;margin-top:0}
.extras{display:grid;gap:.9rem;margin-bottom:1.8rem}.extras legend{margin-bottom:.9rem}
.chk{align-items:flex-start!important}.chk input{margin-top:.25rem;flex:none}.chk b{display:block;font-weight:400}.chk small{display:block;font-size:.8rem;color:var(--muted)}
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.err-sum{background:rgba(155,74,60,.07);border-left:2px solid #9b4a3c;color:#7d3a2f;padding:.8rem 1rem;margin-bottom:1.6rem;font-size:.92rem;outline:0}
.submit-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem}.privacy{font-size:.8rem;color:var(--muted)}
.btn:disabled{opacity:.6;cursor:progress}
.ok-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin:2rem auto 1.4rem;max-width:520px;text-align:center}
.ok-sum div{background:var(--ivory);padding:1rem .6rem}.ok-sum dt{font:400 .6rem var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--sage)}.ok-sum dd{font:400 1.15rem/1.3 var(--serif);margin-top:.3rem;overflow-wrap:anywhere}
.ok .ok-mail{font:300 .9rem var(--sans);font-style:normal;overflow-wrap:anywhere}.ok-btns{display:flex;justify-content:center;gap:2rem;margin-top:1.4rem}
button.link{background:none;border:0;border-bottom:1px solid var(--sage);cursor:pointer;color:inherit;font:400 .72rem var(--sans);letter-spacing:.28em;text-transform:uppercase;padding:0 0 .3rem}
@media (max-width:1060px){.tiles{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.nav ul a[aria-current=page]{font-style:italic;color:var(--celery)}}
@media (max-width:560px){.tiles{grid-template-columns:1fr}.tile .frame{aspect-ratio:16/10}.hero.page{height:52svh;min-height:380px}.ptitle{font-size:clamp(2.6rem,12vw,3.4rem)}
 .rsvp-card{padding:2.2rem 1.3rem}.submit-row .btn{width:100%;text-align:center}.foot-nav{gap:.8rem 1.4rem}}
.hero.page .hero-veil{background:linear-gradient(180deg,rgba(12,18,5,.55),rgba(21,30,8,.35) 40%,rgba(21,30,8,.5))}
.hero.page .kicker mark.ph,.hero .kicker mark.ph{color:#fff}
[hidden]{display:none!important}
