:root{--ink:#24332d;--muted:#66675f;--cream:#f8f6f0;--paper:#fffdf8;--gold:#9a7950;--line:#dcd6c9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Georgia,serif}a{color:inherit}img{max-width:100%;display:block}button{font:inherit}.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:99;background:#fff;padding:1rem}.site-header{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:1.2rem max(5vw,1.4rem);background:var(--paper)}.brand{text-decoration:none;font-size:1.45rem;letter-spacing:.03em}.brand small{display:block;font:600 .63rem system-ui,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-top:.3rem}.nav{display:flex;align-items:center;gap:1.65rem}.nav a{text-decoration:none;font:600 .76rem system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase}.nav a:hover,.nav a:focus-visible,.nav a[aria-current=page]{color:var(--gold)}.nav .nav-rsvp{border:1px solid var(--gold);padding:.8rem 1.1rem}.menu-toggle{display:none}.hero{position:relative;min-height:min(760px,78vw);display:grid;align-items:center;overflow:hidden;background:#30392f}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 43%}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,20,16,.6),rgba(12,20,16,.16) 65%),linear-gradient(0deg,rgba(12,20,16,.28),transparent 50%)}.hero-copy{position:relative;z-index:1;max-width:780px;padding:4rem max(7vw,1.5rem);color:#fff}.eyebrow{font:600 .78rem system-ui,sans-serif;letter-spacing:.27em;text-transform:uppercase}.hero h1{font-weight:400;font-size:clamp(4rem,10vw,9rem);line-height:.94;letter-spacing:-.065em;margin:1.5rem 0}.hero h1 em{font-weight:400}.hero .hero-sub{font-size:clamp(1.1rem,2.2vw,1.5rem);line-height:1.5}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.9rem 1.5rem;border:1px solid var(--gold);text-decoration:none;background:var(--ink);color:#fff;font:600 .79rem system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase;transition:background .2s}.button:hover,.button:focus-visible{background:var(--gold)}.button.light{border-color:#fff;background:transparent}.button.light:hover{background:#fff;color:var(--ink)}.section{max-width:1240px;margin:auto;padding:clamp(4rem,9vw,8rem) max(5vw,1.4rem)}.section-title{font-weight:400;font-size:clamp(2.6rem,5vw,5rem);line-height:1.05;letter-spacing:-.035em;margin:.65rem 0 1.4rem}.lead{font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.75;color:var(--muted)}.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,7rem);align-items:center}.split img{width:100%;aspect-ratio:4/5;object-fit:cover}.split .copy{max-width:520px}.copy p{font-size:1.1rem;line-height:1.8;color:var(--muted)}.date-band{background:var(--ink);color:#fff;text-align:center;padding:5rem 1.5rem}.date-band h2{font-weight:400;font-size:clamp(2.4rem,5vw,4.4rem);margin:.7rem 0}.date-band p{font-size:1.15rem;line-height:1.6}.countdown{display:flex;justify-content:center;gap:clamp(1.3rem,5vw,5rem);margin:2rem 0 2.6rem}.countdown strong{display:block;font-size:clamp(2rem,5vw,4rem);font-weight:400;font-variant-numeric:tabular-nums}.countdown span{font:600 .65rem system-ui,sans-serif;letter-spacing:.17em;text-transform:uppercase}.photo-strip{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.photo-strip img{height:clamp(250px,36vw,510px);width:100%;object-fit:cover}.photo-strip img:nth-child(2){object-position:center 30%}.center{text-align:center}.center .lead{max-width:690px;margin:0 auto 2rem}.footer{background:#eae6dc;text-align:center;padding:4rem 1.5rem}.footer .brand{display:inline-block;font-size:2rem}.footer p{font: .9rem system-ui,sans-serif;color:var(--muted);margin:1.5rem 0}.footer a{margin:0 .6rem}.page-intro{text-align:center;max-width:860px;margin:auto;padding:6rem 1.5rem 4rem}.page-intro .lead{margin:auto;max-width:700px}.story-list{max-width:850px;margin:auto;padding:0 1.5rem 7rem}.story-item{border-top:1px solid var(--line);padding:2.1rem 0}.story-item h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:400;margin:0 0 .8rem}.story-item p{font-size:1.12rem;line-height:1.8;color:var(--muted);margin:.5rem 0}.story-feature{max-width:1100px;margin:0 auto 2rem;padding:0 1.5rem}.story-feature img{width:100%;max-height:600px;object-fit:cover}.gallery-grid{max-width:1350px;margin:auto;padding:0 1rem 6rem;columns:3 280px;column-gap:1rem}.gallery-grid img{width:100%;height:auto;margin:0 0 1rem;break-inside:avoid;cursor:zoom-in}.gallery-grid button{display:block;width:100%;border:0;padding:0;background:none;margin:0 0 1rem;break-inside:avoid}.gallery-grid button img{margin:0}.lightbox{border:0;padding:0;background:transparent;max-width:min(95vw,1200px);max-height:94vh}.lightbox::backdrop{background:rgba(0,0,0,.88)}.lightbox img{max-height:87vh;max-width:95vw;object-fit:contain}.lightbox button{position:absolute;top:.6rem;right:.6rem;background:#fff;border:0;padding:.55rem 1rem;cursor:pointer}.note{max-width:760px;margin:2rem auto;padding:1.5rem;border:1px solid var(--line);font-size:1rem;line-height:1.7;color:var(--muted)}@media(max-width:750px){.site-header{flex-wrap:wrap}.menu-toggle{display:block;background:none;border:1px solid var(--line);padding:.6rem .9rem;font:600 .8rem system-ui,sans-serif}.nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;padding-top:1rem}.nav.open{display:flex}.nav a{padding:.9rem 0;border-top:1px solid var(--line)}.nav .nav-rsvp{border:0;border-top:1px solid var(--line)}.hero{min-height:650px;align-items:end}.hero>img{object-position:55% center}.hero:after{background:linear-gradient(0deg,rgba(10,17,13,.82),rgba(10,17,13,.08) 80%)}.hero-copy{padding:3rem 1.5rem}.hero h1{font-size:clamp(4.2rem,16vw,7rem)}.split{grid-template-columns:1fr}.split img{aspect-ratio:5/4}.photo-strip{gap:.35rem}.photo-strip img{height:270px}.photo-strip img:last-child{display:none}.photo-strip{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

.nav{gap:1rem;flex-wrap:wrap;justify-content:flex-end}.nav a{font-size:.69rem}.timeline .story-item{position:relative;padding-left:2rem;border-left:1px solid var(--gold);border-top:0}.timeline .story-item:before{content:"";position:absolute;left:-5px;top:2.5rem;width:9px;height:9px;background:var(--gold);border-radius:50%}.hotel{border:1px solid var(--line);padding:1.3rem;margin:1rem 0;background:var(--paper)}.hotel h3{font-weight:400;font-size:1.45rem;margin:.2rem 0}.hotel a,.story-item>a:not(.button){color:#725536;text-underline-offset:4px}.embed-wrap{max-width:1000px;margin:0 auto 5rem;padding:0 1.5rem;text-align:center}.embed-wrap iframe{width:100%;height:820px;border:1px solid var(--line);background:#fff}.embed-wrap p{font:1rem system-ui,sans-serif;color:var(--muted)}@media(max-width:950px){.site-header{flex-wrap:wrap}.menu-toggle{display:block;background:none;border:1px solid var(--line);padding:.6rem .9rem;font:600 .8rem system-ui,sans-serif}.nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;padding-top:1rem}.nav.open{display:flex}.nav a{padding:.9rem 0;border-top:1px solid var(--line);font-size:.8rem}}

.party-grid{max-width:1280px;margin:auto;padding:0 max(4vw,1.4rem) 7rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.2rem 1.3rem}.party-card{background:var(--paper)}.party-card img{width:100%;aspect-ratio:3/4;object-fit:cover;background:#e7e1d6}.party-card div{padding:1.1rem 1rem 1.4rem}.party-card .eyebrow{font-size:.67rem;color:var(--gold);letter-spacing:.13em}.party-card h2{font-size:1.45rem;font-weight:400;margin:.55rem 0 0;line-height:1.2}@media(max-width:850px){.party-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.party-grid{gap:.7rem}.party-card div{padding:.75rem}.party-card h2{font-size:1.08rem}.party-card .eyebrow{font-size:.58rem}}

.party-grid{max-width:1280px;margin:auto;padding:0 max(4vw,1.4rem) 7rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.2rem 1.3rem}.party-card{background:var(--paper)}.party-card img{width:100%;aspect-ratio:3/4;object-fit:cover;background:#e7e1d6}.party-card div{padding:1.1rem 1rem 1.4rem}.party-card .eyebrow{font-size:.67rem;color:var(--gold);letter-spacing:.13em}.party-card h2{font-size:1.45rem;font-weight:400;margin:.55rem 0 0;line-height:1.2}@media(max-width:850px){.party-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.party-grid{gap:.7rem}.party-card div{padding:.75rem}.party-card h2{font-size:1.08rem}.party-card .eyebrow{font-size:.58rem}}

/* Portraits supplied by Joy have circular crops on dark square backgrounds. Show only the portrait circle. */
.party-card{background:transparent;text-align:center}.party-card .party-photo{width:min(100%,220px);aspect-ratio:1;margin:auto;border-radius:50%;overflow:hidden;background:#e9e3d7}.party-card .party-photo img{width:100%;height:100%;aspect-ratio:1;object-fit:cover;clip-path:circle(47% at 50% 50%)}.party-card:nth-child(8) .party-photo img{transform:scale(.86)}.party-card>div:last-child{padding:1.1rem .4rem 1.4rem}.party-card h2{font-size:1.3rem}.party-grid{row-gap:2.8rem}

.party-hero{max-width:1440px;margin:0 auto}.party-hero img{width:100%;max-height:700px;object-fit:cover;object-position:center 37%}.flower-section{text-align:center;padding:1rem 1rem 4rem}.flower-grid{grid-template-columns:repeat(2,minmax(0,230px));justify-content:center;padding:1rem 0 0}.flower-grid h3{font-size:1.3rem;font-weight:400;margin:.55rem 0 0}.flower-grid .party-photo img{clip-path:none;object-position:center center}@media(max-width:750px){.party-hero img{height:clamp(240px,55vw,400px);object-fit:cover}.flower-grid{gap:1rem}.flower-grid .party-photo{width:100%}}

/* Uniform Wedding Party portraits. One outer circle and one centered photo mask for every card. */
.party-card .party-photo,.flower-grid .party-photo{box-sizing:border-box;width:min(100%,190px);height:auto;aspect-ratio:1 / 1;margin-inline:auto;padding:0;border:3px solid #b9a882;border-radius:50%;overflow:hidden;background:#eee9df;flex:none}
.party-card .party-photo img,.flower-grid .party-photo img{display:block;width:100%;height:100%;aspect-ratio:1 / 1;object-fit:cover;object-position:center;clip-path:circle(44% at 50% 50%);transform:none!important;border:0;border-radius:0;margin:0;background:transparent}
.flower-section{padding-inline:0}
.flower-grid{max-width:1280px;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.2rem 1.3rem;padding:1rem max(4vw,1.4rem) 0}
@media(max-width:850px){.flower-grid{gap:.7rem}}

.party-card .party-photo,.flower-grid .party-photo{position:relative}.party-card .party-photo img,.flower-grid .party-photo img{position:absolute;inset:0}

/* Unified navigation for the event pages. */
@media(min-width:951px){.site-header{gap:1.5rem}.nav{gap:1rem;flex-wrap:wrap;justify-content:flex-end}.nav a{font-size:.7rem}.brand{flex-shrink:0}}.nav a[href="memories.html"]{color:var(--gold)}
