:root{--ink:#17382f;--forest:#214b3d;--sage:#a6b6a3;--ivory:#f5f0e8;--cream:#fbf8f2;--gold:#b18a55;--rose:#c69a8c;--white:#fff;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);overflow-x:hidden}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.noise{position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}.loader{position:fixed;inset:0;background:var(--ink);color:var(--ivory);z-index:2000;display:grid;place-content:center;text-align:center;transition:opacity .8s,visibility .8s}.loader.hidden{opacity:0;visibility:hidden}.loader-mark{font:64px var(--serif);letter-spacing:.08em}.loader-mark span{font-style:italic;color:var(--gold)}.loader p{letter-spacing:.22em;text-transform:uppercase;font-size:10px}.site-header{position:fixed;top:0;left:0;right:0;height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;z-index:1000;color:white;transition:.4s}.site-header.scrolled{background:rgba(245,240,232,.9);backdrop-filter:blur(14px);color:var(--ink);box-shadow:0 1px 0 rgba(23,56,47,.1)}.monogram{font:28px var(--serif)}.nav{display:flex;gap:28px;font-size:12px;letter-spacing:.12em;text-transform:uppercase}.nav a{position:relative}.nav a:after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:currentColor;transition:.3s}.nav a:hover:after{width:100%}.menu-btn{display:none;background:none;border:0;width:42px;height:42px}.menu-btn span{display:block;height:1px;background:currentColor;margin:7px}.hero{position:relative;height:100svh;min-height:680px;color:white;display:grid;place-items:center;text-align:center;overflow:hidden}.hero-media,.hero-overlay{position:absolute;inset:0}.hero-media img{object-position:center 46%;animation:heroZoom 22s ease-in-out infinite alternate}.hero-overlay{background:linear-gradient(180deg,rgba(8,20,17,.18),rgba(8,20,17,.56))}.hero-copy{position:relative;z-index:2}.eyebrow,.section-kicker{font-size:11px;letter-spacing:.24em;text-transform:uppercase}.hero h1{font:clamp(58px,10vw,152px)/.78 var(--serif);margin:22px 0}.hero h1 span{display:block}.hero h1 i{display:block;font-size:.45em;color:#e8cba3;margin:.2em}.hero-date{letter-spacing:.32em;margin:30px 0}.pill{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 28px;border-radius:99px;text-transform:uppercase;letter-spacing:.16em;font-size:10px;border:1px solid}.pill.light{border-color:rgba(255,255,255,.7)}.pill.dark{background:var(--ink);color:white;border-color:var(--ink);cursor:pointer}.scroll-cue{position:absolute;bottom:28px;z-index:2;font-size:9px;letter-spacing:.18em;text-transform:uppercase}.scroll-cue span{display:block;width:1px;height:38px;background:white;margin:0 auto 10px;animation:pulse 1.8s infinite}.section{padding:120px 6vw}.intro{background:var(--ivory)}.intro-grid{display:grid;grid-template-columns:1.4fr .7fr;gap:10vw;align-items:end;margin:40px 0 100px}.display,.section-heading h2,.couple h2,.film-copy h2,.rsvp h2,.closing h2{font:clamp(42px,6vw,84px)/1.02 var(--serif);font-weight:400;margin:0}.intro-copy{font:17px/1.8 var(--serif)}blockquote{margin:40px 0 0;padding-left:22px;border-left:1px solid var(--gold);font-style:italic}blockquote span{display:block;font:10px var(--sans);letter-spacing:.16em;text-transform:uppercase;margin-top:12px}.story-strip{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:20px;align-items:center}.parallax-card{height:520px;margin:0;position:relative;overflow:hidden}.parallax-card.tall{height:680px}.parallax-card figcaption{position:absolute;left:22px;bottom:22px;color:white;font:italic 24px var(--serif)}.countdown-section{position:relative;min-height:650px;display:grid;place-items:center;color:white;text-align:center;background:var(--forest);overflow:hidden}.countdown-bg{position:absolute;inset:0;background:url('assets/images/couple-traditional.jpg') center/cover;opacity:.36;transform:scale(1.06)}.countdown-wrap{position:relative;z-index:1}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:3vw;margin-top:50px}.countdown div{min-width:120px}.countdown strong{display:block;font:clamp(52px,7vw,100px) var(--serif)}.countdown span{font-size:10px;letter-spacing:.2em;text-transform:uppercase}.events{background:var(--cream)}.section-heading{max-width:900px;margin-bottom:60px}.section-heading.center{text-align:center;margin-left:auto;margin-right:auto}.section-heading h2{margin-top:14px}.section-heading>p:last-child{max-width:600px;line-height:1.7}.event-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(23,56,47,.14)}.event-card{background:var(--cream);padding:40px 28px;min-height:420px;display:flex;flex-direction:column}.event-card.feature{background:var(--forest);color:white}.event-no{font:italic 28px var(--serif);color:var(--gold)}.event-date{font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-top:auto}.event-card h3{font:38px var(--serif);font-weight:400;margin:20px 0 5px}.event-time{font:20px var(--serif)}.text-link{margin-top:auto;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.couple{background:var(--ivory)}.profile{display:grid;grid-template-columns:1.2fr .8fr;min-height:780px;margin:100px 0}.profile-groom{grid-template-columns:.8fr 1.2fr}.profile-image{overflow:hidden}.profile-copy{padding:7vw;display:flex;flex-direction:column;justify-content:center;background:var(--cream)}.profile-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase}.profile-copy h3{font:clamp(60px,8vw,118px)/1 var(--serif);font-weight:400;margin:15px 0 25px}.profile-copy p{font:18px/1.7 var(--serif);max-width:420px}.mini-photo{width:180px;height:240px;margin-top:35px;align-self:flex-end}.film-section{display:grid;grid-template-columns:.7fr 1.3fr;gap:7vw;align-items:center;background:var(--forest);color:white}.film-frame video{width:100%;max-height:720px;background:#000}.film-copy p{line-height:1.7}.people{background:var(--cream)}.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.person{position:relative;height:520px;overflow:hidden}.person img{transition:transform .8s;object-position:center}.person:hover img{transform:scale(1.015)}.person:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(7,20,17,.86))}.person>div{position:absolute;left:24px;right:24px;bottom:22px;color:white;z-index:2}.person h3{font:32px var(--serif);font-weight:400;margin:0}.person p{font-size:10px;letter-spacing:.16em;text-transform:uppercase}.person.family:before{content:"Family";position:absolute;top:18px;right:18px;background:var(--gold);color:white;padding:8px 12px;border-radius:99px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;z-index:2}.families{background:var(--ivory)}.family-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:7vw;align-items:center;margin-top:70px}.family-card{text-align:center;padding:50px 20px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}.family-card span{font-size:10px;letter-spacing:.2em;text-transform:uppercase}.family-card h3{font:36px/1.3 var(--serif);font-weight:400}.family-card p{line-height:1.7}.family-mark{font:72px var(--serif)}.family-mark i{color:var(--gold)}.gallery{background:var(--cream)}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:250px;gap:16px}.gallery-item{border:0;padding:10px;overflow:hidden;cursor:zoom-in;grid-column:span 4;background:#ece6dc;display:grid;place-items:center}.gallery-item.wide{grid-column:span 8}.gallery-item.tall{grid-row:span 2}.gallery-item img{width:100%;height:100%;object-fit:contain;transition:transform .7s}.gallery-item:hover img{transform:scale(1.012)}.rsvp{padding:0;display:grid;grid-template-columns:1.1fr .9fr;min-height:900px;background:var(--ivory)}.rsvp-photo{min-height:900px}.rsvp-panel{padding:10vw 7vw;align-self:center}.rsvp-panel>p{line-height:1.7}.rsvp form{display:grid;gap:20px;margin-top:40px}.rsvp label{display:grid;gap:8px;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.rsvp input,.rsvp select,.rsvp textarea{width:100%;border:0;border-bottom:1px solid rgba(23,56,47,.35);background:transparent;padding:12px 0;outline:none;color:var(--ink);text-transform:none;letter-spacing:0}.closing{position:relative;min-height:750px;color:white;display:grid;place-items:center;text-align:center;overflow:hidden}.closing>img,.closing-overlay{position:absolute;inset:0}.closing-overlay{background:rgba(8,24,19,.5)}.closing-copy{position:relative;z-index:1}.closing-copy p{font:italic 28px var(--serif)}.closing-copy span{letter-spacing:.18em;text-transform:uppercase;font-size:10px}.closing h2{font-size:clamp(52px,8vw,110px)}footer{padding:40px 6vw;background:var(--ink);color:white;display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.1em;text-transform:uppercase}footer span{font:34px var(--serif)}.story-strip img,.profile-image img,.mini-photo,.person img,.rsvp-photo,.closing>img{object-position:center}.profile-image img{transform:scale(1.005)}.parallax-card img{transform:scale(1.005)}
.lightbox{border:0;padding:0;background:rgba(4,12,10,.94);width:100vw;height:100vh;max-width:none;max-height:none}.lightbox::backdrop{background:rgba(4,12,10,.94)}.lightbox img{object-fit:contain;padding:4vh 5vw}.lightbox button{position:fixed;top:20px;right:25px;color:white;background:none;border:0;font-size:42px;z-index:2;cursor:pointer}.reveal{opacity:0;transform:translateY(45px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.65,.25,1)}.reveal.visible{opacity:1;transform:none}@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.025)}}@keyframes pulse{0%,100%{opacity:.2;transform:scaleY(.5);transform-origin:top}50%{opacity:1;transform:scaleY(1)}}
@media(max-width:980px){.nav{position:fixed;inset:0;background:var(--ivory);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;font:30px var(--serif);opacity:0;visibility:hidden;transition:.35s}.nav.open{opacity:1;visibility:visible}.menu-btn{display:block;position:relative;z-index:3}.intro-grid,.film-section,.rsvp{grid-template-columns:1fr}.event-grid{grid-template-columns:1fr 1fr}.profile,.profile-groom{grid-template-columns:1fr;min-height:auto}.profile-groom .profile-copy{order:2}.profile-image{height:75vh}.people-grid{grid-template-columns:1fr 1fr}.rsvp-photo{min-height:70vh}.family-grid{grid-template-columns:1fr}.family-mark{display:none}.story-strip{grid-template-columns:1fr 1fr}.story-strip .parallax-card:last-child{grid-column:span 2}.countdown div{min-width:0}}
@media(max-width:640px){.section{padding:85px 20px}.hero h1{font-size:58px}.site-header{height:68px;padding:0 20px}.intro-grid{gap:40px;margin-bottom:60px}.story-strip{display:block}.parallax-card,.parallax-card.tall{height:500px;margin-bottom:16px}.countdown{gap:10px}.countdown strong{font-size:40px}.countdown span{font-size:8px}.event-grid{grid-template-columns:1fr}.event-card{min-height:340px}.profile{margin:60px 0}.profile-image{height:65vh}.profile-copy{padding:50px 24px}.mini-photo{width:140px;height:190px}.people-grid{grid-template-columns:1fr}.person{height:520px}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:minmax(320px,70vh)}.gallery-item,.gallery-item.wide{grid-column:auto}.gallery-item.tall{grid-row:auto}.rsvp{display:block}.rsvp-photo{min-height:60vh}.rsvp-panel{padding:80px 24px}.closing{min-height:650px}footer{flex-direction:column;gap:18px;text-align:center}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* Expanded family and friends presentation */
.people-subheading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin:70px 0 28px;border-bottom:1px solid rgba(23,56,47,.16);padding-bottom:18px}.people-subheading span{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}.people-subheading h3{font:40px var(--serif);font-weight:400;margin:0}.family-people-grid{grid-template-columns:repeat(3,1fr)}.friends-grid{grid-template-columns:repeat(4,1fr);gap:18px}.friends-grid .person{height:360px}.friends-grid .person h3{font-size:25px}.friends-grid .person>div{left:18px;right:18px;bottom:16px}.family-people-grid .person{height:470px}.friends-thanks{max-width:900px;margin:80px auto 0;text-align:center;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);padding:45px 6vw}.friends-thanks p{font:italic 24px/1.65 var(--serif);margin:0}.friends-thanks span{display:block;margin-top:22px;font-size:10px;letter-spacing:.18em;text-transform:uppercase}.hero h1{max-width:1200px}.hero h1 span:first-child{font-size:.72em}.person img{object-position:center 25%}
@media(max-width:1100px){.friends-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.family-people-grid{grid-template-columns:repeat(3,1fr)}.friends-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.people-subheading{align-items:flex-start;flex-direction:column;gap:8px}.people-subheading h3{font-size:34px}.family-people-grid,.friends-grid{grid-template-columns:repeat(2,1fr);gap:12px}.family-people-grid .person,.friends-grid .person{height:300px}.person h3,.friends-grid .person h3{font-size:20px}.person p{font-size:8px}.friends-thanks{margin-top:55px;padding:36px 10px}.friends-thanks p{font-size:20px}.hero h1 span:first-child{font-size:.82em}}

/* Refinement: keep the couple as the visual focus */
.profile{
  min-height:860px;
  margin:120px 0;
  box-shadow:0 28px 80px rgba(20,40,34,.10);
}
.profile-image{
  min-height:860px;
  background:#e9e2d7;
}
.profile-image img{
  object-fit:contain;
  transform:none;
}
.profile-copy{
  position:relative;
}
.profile-copy:before{
  content:"";
  position:absolute;
  inset:26px;
  border:1px solid rgba(177,137,84,.28);
  pointer-events:none;
}
.mini-photo{
  object-fit:contain;
  background:#e9e2d7;
  padding:6px;
}

/* Gallery: show every photograph in full without forced cropping */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:auto;
  align-items:start;
  gap:22px;
}
.gallery-item,
.gallery-item.wide,
.gallery-item.tall{
  grid-column:auto;
  grid-row:auto;
  min-height:0;
  height:auto;
  padding:12px;
  background:#e9e2d7;
  border:1px solid rgba(23,56,47,.08);
}
.gallery-item.wide{grid-column:span 2}
.gallery-item img{
  width:100%;
  height:auto;
  max-height:760px;
  object-fit:contain;
  transform:none!important;
}
.gallery-item:hover img{transform:none!important}

/* Family and friends: quieter, smaller portraits */
.family-people-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  max-width:980px;
  margin-inline:auto;
  gap:24px;
}
.family-people-grid .person{
  height:390px;
}
.friends-grid{
  grid-template-columns:repeat(4,minmax(0,1fr));
  max-width:1080px;
  margin-inline:auto;
  gap:16px;
}
.friends-grid .person{
  height:270px;
}
.friends-grid .person h3{
  font-size:21px;
}
.friends-grid .person p{
  font-size:8px;
}
.friends-grid .person>div{
  left:14px;
  right:14px;
  bottom:12px;
}
.person img{
  transform:none!important;
}
.person:hover img{
  transform:scale(1.008)!important;
}

@media(max-width:980px){
  .profile,.profile-image{min-height:0}
  .profile-image{height:78vh}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-item.wide{grid-column:span 2}
  .family-people-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .friends-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .friends-grid .person{height:250px}
}

@media(max-width:640px){
  .profile{margin:70px 0;box-shadow:0 18px 45px rgba(20,40,34,.09)}
  .profile-image{height:68vh;min-height:480px}
  .profile-copy:before{inset:14px}
  .gallery-grid{grid-template-columns:1fr;gap:16px}
  .gallery-item,.gallery-item.wide,.gallery-item.tall{grid-column:auto;padding:8px}
  .gallery-item img{max-height:78vh}
  .family-people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .family-people-grid .person{height:280px}
  .friends-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .friends-grid .person{height:215px}
  .friends-grid .person h3{font-size:17px}
  .friends-grid .person>div{left:10px;right:10px;bottom:8px}
}

/* 2026 hero + music refinement */
.hero-media img{
  object-fit:cover;
  object-position:center 46%;
  animation:heroBreath 24s ease-in-out infinite alternate;
}
.hero-overlay{
  background:linear-gradient(180deg,rgba(10,17,14,.14),rgba(10,17,14,.60));
}
.hero-copy{max-width:1180px;padding:0 5vw}
.hero-enter{background:rgba(255,255,255,.08);color:#fff;cursor:pointer;backdrop-filter:blur(8px);transition:background .3s,transform .3s}
.hero-enter:hover{background:rgba(255,255,255,.18);transform:translateY(-2px)}
.site-header.hero-header{opacity:0;transform:translateY(-18px);pointer-events:none}
.site-header.hero-header.is-visible{opacity:1;transform:none;pointer-events:auto}
.music-toggle{
  position:absolute;right:28px;bottom:24px;z-index:5;border:1px solid rgba(255,255,255,.55);
  color:#fff;background:rgba(10,20,17,.22);backdrop-filter:blur(10px);border-radius:999px;
  min-height:44px;padding:0 16px;display:flex;align-items:center;gap:9px;cursor:pointer;
  letter-spacing:.14em;text-transform:uppercase;font-size:9px;transition:.3s;
}
.music-toggle:hover{background:rgba(255,255,255,.14)}
.music-toggle.playing .music-icon{animation:musicPulse 1.4s ease-in-out infinite}
.music-icon{font-size:18px;line-height:1}.music-label{white-space:nowrap}
@keyframes heroBreath{from{transform:scale(1)}to{transform:scale(1.018)}}
@keyframes musicPulse{0%,100%{transform:scale(1);opacity:.7}50%{transform:scale(1.18);opacity:1}}
@media(max-width:640px){
  .hero-media img{object-position:center 45%}
  .music-toggle{right:14px;bottom:14px;padding:0 13px}.music-label{display:none}
  .hero-copy{padding:0 20px}.hero h1{font-size:52px}
}
@media(prefers-reduced-motion:reduce){.hero-media img{animation:none}.music-toggle.playing .music-icon{animation:none}}

/* Cinematic opening and featured E&A film */
.cinematic-intro{background:radial-gradient(circle at center,#17251f 0,#08110e 70%);overflow:hidden}
.cinematic-intro:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(225,194,145,.06),transparent 65%);animation:introGlow 2.8s ease both}
.cinematic-intro .cinematic-line{width:min(300px,55vw);height:1px;background:linear-gradient(90deg,transparent,#d8b77f,transparent);margin:0 auto 28px;transform:scaleX(0);animation:drawGold 1.15s .3s ease forwards}
.cinematic-intro .loader-mark{opacity:0;transform:translateY(12px);animation:introTitle .9s 1.05s ease forwards}
.cinematic-intro .loader-mark span{font-size:.55em;vertical-align:middle;color:#d8b77f}
.cinematic-intro p{opacity:0;animation:introTitle .8s 1.55s ease forwards}
@keyframes drawGold{to{transform:scaleX(1)}}
@keyframes introTitle{to{opacity:1;transform:none}}
@keyframes introGlow{0%{opacity:0;transform:translateX(-15%)}50%{opacity:1}100%{opacity:.2;transform:translateX(15%)}}
.film-frame{min-width:0}
.film-frame video{display:block;width:100%;max-height:760px;aspect-ratio:9/16;object-fit:contain;background:#07110e;border:1px solid rgba(216,183,127,.25);box-shadow:0 28px 70px rgba(0,0,0,.25)}
.video-note{margin:12px 0 0;font-size:10px;letter-spacing:.12em;text-transform:uppercase;opacity:.7;text-align:center}
@media (prefers-reduced-motion:reduce){.cinematic-intro .cinematic-line,.cinematic-intro .loader-mark,.cinematic-intro p,.cinematic-intro:before{animation:none;opacity:1;transform:none}}
.closing-date{
    margin-top:12px;
    font-size:1rem;
    letter-spacing:3px;
    text-transform:uppercase;
    opacity:.9;
    color:#d4af37;
}
