@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Inter:wght@300;400;500;600&display=swap');
:root{--navy:#071b30;--navy2:#0b2a47;--gold:#bd8b36;--cream:#f7f1e7;--paper:#fffaf2;--ink:#18202b;--muted:#6b6c6d;--teal:#205e67;--line:#dfd4c4;--shadow:0 18px 50px rgba(7,27,48,.13)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,sans-serif}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}.wrap{width:min(1180px,92vw);margin:auto}.serif{font-family:'Cormorant Garamond',Georgia,serif}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;color:var(--gold);font-weight:600}.nav{position:sticky;top:0;z-index:20;background:rgba(7,27,48,.96);backdrop-filter:blur(12px);color:white;border-bottom:1px solid rgba(255,255,255,.08)}.nav-inner{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px}.monogram{font-family:'Cormorant Garamond',serif;font-size:2rem;font-style:italic;color:#d4a449}.brand small{display:block;color:#e6d6bd;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}.links{display:flex;gap:22px;font-size:.82rem}.links a:hover{color:#d4a449}.menu{display:none;background:none;border:0;color:white;font-size:1.5rem}.hero{min-height:760px;background:linear-gradient(90deg,rgba(247,241,231,.95),rgba(255,250,242,.9));position:relative;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 32%,rgba(214,174,109,.26),transparent 32%),linear-gradient(115deg,rgba(189,139,54,.09),transparent 32%,transparent 68%,rgba(32,94,103,.09));pointer-events:none}.hero-grid{position:relative;display:grid;grid-template-columns:1fr 1.25fr 1fr;align-items:center;min-height:760px;gap:22px}.portrait{height:580px;border-radius:220px 220px 22px 22px;overflow:hidden;box-shadow:var(--shadow);border:6px solid rgba(255,255,255,.75)}.portrait img{width:100%;height:100%;object-fit:cover}.portrait.dad img{object-position:center 38%}.portrait.mom img{object-position:center 44%}.hero-copy{text-align:center;padding:30px 0}.hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,5vw,5.3rem);line-height:.9;margin:12px 0 16px;color:var(--navy);font-weight:600}.amp{display:block;color:var(--gold);font-size:.65em;margin:.15em}.tagline{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.5rem;color:#46505b}.event-line{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin:28px 0 24px;font-size:.86rem;font-weight:600}.event-line span{display:flex;align-items:center;gap:8px}.btns{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.btn{border:1px solid var(--navy);padding:14px 21px;border-radius:4px;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600;cursor:pointer;display:inline-block}.btn.primary{background:var(--navy);color:white}.btn.gold{background:var(--gold);color:white;border-color:var(--gold)}.btn.light{background:white;color:var(--navy)}section{padding:88px 0}.section-title{font-family:'Cormorant Garamond',serif;color:var(--navy);font-size:clamp(2.6rem,4vw,4.2rem);line-height:1;margin:.2em 0}.lead{font-size:1.05rem;line-height:1.75;color:#555;max-width:720px}.story{background:var(--cream)}.story-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:55px;align-items:center}.story-collage{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.story-collage img{width:100%;height:360px;object-fit:cover;border-radius:12px}.story-collage img:nth-child(2){transform:translateY(-24px)}.strip{background:var(--navy);color:white;padding:34px 0}.strip-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:25px;align-items:center}.countdown{display:flex;gap:14px}.countdown b{font-family:'Cormorant Garamond',serif;font-size:2.6rem;color:#fff}.countdown span{font-size:.65rem;display:block;text-transform:uppercase;letter-spacing:.13em;color:#d8c7ac}.info-card{border-left:1px solid rgba(255,255,255,.2);padding-left:25px}.info-card strong{display:block;color:#d7a858;margin-bottom:6px}.gallery{background:#fffaf2}.gallery-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:32px}.masonry{columns:4 220px;column-gap:14px}.tile{break-inside:avoid;margin:0 0 14px;border-radius:10px;overflow:hidden;position:relative;background:#ddd;box-shadow:0 4px 16px rgba(0,0,0,.06);cursor:pointer}.tile img{width:100%;height:auto;transition:transform .25s}.tile:hover img{transform:scale(1.025)}.tile:after{content:'View';position:absolute;right:10px;bottom:10px;padding:7px 10px;border-radius:99px;background:rgba(7,27,48,.78);color:white;font-size:.65rem;opacity:0;transition:.2s}.tile:hover:after{opacity:1}.share{background:linear-gradient(135deg,var(--navy),#0b3557);color:white}.share .section-title{color:white}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.form-card{background:white;color:var(--ink);border-radius:16px;padding:28px;box-shadow:var(--shadow)}.form-card h3{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--navy);margin:0 0 8px}.form-card p{color:#666;line-height:1.6}.field{margin:15px 0}.field label{display:block;font-size:.75rem;font-weight:600;margin-bottom:7px;color:#46505b}.field input,.field textarea,.field select{width:100%;padding:13px 14px;border:1px solid #d9d5cf;border-radius:8px;background:#fff;font:inherit}.field textarea{min-height:120px;resize:vertical}.notice{font-size:.74rem;color:#777;line-height:1.5}.messages{background:var(--cream)}.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.quote{background:white;border:1px solid var(--line);border-radius:14px;padding:24px;min-height:170px}.quote p{font-family:'Cormorant Garamond',serif;font-size:1.35rem;line-height:1.35;color:var(--navy)}.quote small{color:#777}.rsvp-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:45px;align-items:start}.event-box{background:var(--navy);color:white;border-radius:16px;padding:34px;position:sticky;top:100px}.event-box h3{font-family:'Cormorant Garamond',serif;font-size:2.6rem;margin:0 0 18px}.event-box .row{padding:16px 0;border-top:1px solid rgba(255,255,255,.13)}.event-box .row strong{color:#d7a858;display:block;margin-bottom:5px}.community{background:white}.community-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:32px}.community-item{text-align:center;border:1px solid var(--line);border-radius:12px;padding:20px 10px;font-size:.78rem}.community-item .icon{font-size:1.7rem;margin-bottom:8px}.footer{background:#041426;color:#d8d9da;padding:44px 0 24px}.footer-top{display:flex;justify-content:space-between;gap:30px;align-items:center;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:28px}.footer h4{font-family:'Cormorant Garamond',serif;color:white;font-size:1.8rem;margin:0}.footer small{line-height:1.7}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);display:none;z-index:50;align-items:center;justify-content:center;padding:4vw}.lightbox.open{display:flex}.lightbox img{max-width:92vw;max-height:88vh;object-fit:contain}.lightbox button{position:absolute;top:20px;right:24px;background:white;border:0;border-radius:50%;width:42px;height:42px;font-size:1.3rem;cursor:pointer}.toast{position:fixed;right:18px;bottom:18px;background:#122c44;color:white;padding:14px 18px;border-radius:10px;box-shadow:var(--shadow);display:none;z-index:60;max-width:360px}.toast.show{display:block}
@media(max-width:900px){.links{display:none}.menu{display:block}.links.open{display:flex;position:absolute;top:72px;left:0;right:0;background:#071b30;flex-direction:column;padding:24px}.hero{min-height:auto;padding:40px 0 65px}.hero-grid{min-height:auto;grid-template-columns:1fr 1fr;grid-template-areas:'dad mom' 'copy copy';gap:10px}.portrait{height:390px;border-radius:160px 160px 16px 16px}.dad{grid-area:dad}.mom{grid-area:mom}.hero-copy{grid-area:copy}.story-grid,.rsvp-grid{grid-template-columns:1fr}.story-collage img{height:260px}.strip-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.quotes{grid-template-columns:1fr 1fr}.community-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.nav-inner{height:64px}.hero{padding-top:24px}.portrait{height:300px;border-width:3px}.hero h1{font-size:3.4rem}.tagline{font-size:1.2rem}.event-line{font-size:.78rem;gap:10px}.story-collage{grid-template-columns:1fr 1fr}.story-collage img{height:230px}.story-collage img:nth-child(3){display:none}.strip-grid{grid-template-columns:1fr}.info-card{border-left:0;border-top:1px solid rgba(255,255,255,.2);padding:18px 0 0}.gallery-head{align-items:start;flex-direction:column}.masonry{columns:2 145px}.quotes{grid-template-columns:1fr}.community-grid{grid-template-columns:repeat(2,1fr)}.footer-top{flex-direction:column;align-items:flex-start}.form-card{padding:20px}section{padding:64px 0}}
.hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.tile video{width:100%;display:block;border-radius:12px;background:#000}.tile figcaption{padding:9px 4px 2px;color:#40505c;font-size:.82rem;line-height:1.35}.tile figcaption small{color:#8a6c32}
/* V3.1: story photos intentionally removed */
#story .story-grid { grid-template-columns: 1fr; max-width: 900px; }

/* V4 curated Through the Years gallery: original photos only; presentation crop only */
.curated-gallery{columns:unset;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.curated-gallery .tile{margin:0;aspect-ratio:4/5}
.curated-gallery .tile img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .25s}
.curated-gallery .tile:nth-child(1) img{object-position:center 42%}
.curated-gallery .tile:nth-child(2) img{object-position:center 40%}
.curated-gallery .tile:nth-child(3) img{object-position:center 42%}
.curated-gallery .tile:nth-child(4) img{object-position:center 36%}
.curated-gallery .tile:nth-child(5) img{object-position:center 44%}
.curated-gallery .tile:nth-child(6) img{object-position:center 48%}
.curated-gallery .tile:nth-child(7) img{object-position:center 42%}
@media(max-width:900px){.curated-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.curated-gallery{grid-template-columns:1fr 1fr;gap:10px}.curated-gallery .tile{aspect-ratio:3/4}}

/* V4.3 curated original-photo gallery */
.final-gallery{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
.final-gallery .tile{
  margin:0;
  overflow:hidden;
  border-radius:16px;
  background:#f4efe6;
  box-shadow:0 10px 26px rgba(26,20,13,.10);
  aspect-ratio:4/5;
}
.final-gallery .tile img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
.final-gallery .family-feature{
  grid-column:2 / span 2;
  aspect-ratio:16/9;
}
.final-gallery .family-feature img{object-position:center 42%;}
@media(max-width:800px){
  .final-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}
  .final-gallery .family-feature{grid-column:1 / -1;}
}
@media(max-width:520px){
  .final-gallery{grid-template-columns:1fr;}
  .final-gallery .family-feature{grid-column:auto; aspect-ratio:4/3;}
}

/* V4.5 — approved AI-generated homepage visual */
.approved-ai-homepage{position:relative;background:#f8f4ec;line-height:0}
.approved-ai-homepage>img{display:block;width:100%;height:auto}
.ai-hotspot{position:absolute;display:block;z-index:5;border-radius:8px}
.ai-hotspot:focus{outline:3px solid #d9ae4f;outline-offset:2px}
/* Percentage coordinates correspond to the approved 1536×1536 mockup. */
.nav-story{left:38.6%;top:1.0%;width:6.2%;height:3.4%}
.nav-gallery{left:46.2%;top:1.0%;width:5.4%;height:3.4%}
.nav-share{left:52.5%;top:1.0%;width:9.0%;height:3.4%}
.nav-rsvp{left:62.3%;top:1.0%;width:4.8%;height:3.4%}
.hero-rsvp{left:7.8%;top:36.1%;width:12.0%;height:4.6%}
.hero-share{left:21.0%;top:36.1%;width:16.3%;height:4.6%}
.compact-story{padding:64px 0;background:var(--cream)}
.ai-gallery-anchor{height:1px;scroll-margin-top:20px}
@media(max-width:700px){
  .approved-ai-homepage{overflow:hidden}
  .approved-ai-homepage>img{width:180%;max-width:none;transform:translateX(-22%)}
  .ai-hotspot{display:none}
  .compact-story{padding:48px 0}
}

/* V4.6 — enhanced mobile experience while preserving approved AI desktop */
.mobile-ai-homepage{display:none}
@media(max-width:700px){
  body{overflow-x:hidden;background:#faf6ef}
  .approved-ai-homepage{display:none}
  .mobile-ai-homepage{display:block;background:#f9f5ed;color:#fff;position:relative}
  .mobile-topbar{position:sticky;top:0;z-index:40;height:62px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;background:rgba(11,20,26,.94);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.1)}
  .mobile-brand{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.45rem;color:#fff;font-weight:600;letter-spacing:.01em}
  .mobile-rsvp-pill{background:#e2b64f;color:#1d1a14;border-radius:999px;padding:9px 16px;font-size:.76rem;font-weight:700;letter-spacing:.04em}
  .mobile-hero{background:linear-gradient(180deg,#182025 0%,#0b1116 100%)}
  .mobile-hero-photo{height:48vh;min-height:360px;max-height:520px;overflow:hidden;position:relative}
  .mobile-hero-photo:after{content:'';position:absolute;inset:auto 0 0;height:44%;background:linear-gradient(transparent,#0b1116)}
  .mobile-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 38%;filter:saturate(.98) contrast(1.03)}
  .mobile-hero-copy{padding:8px 20px 28px;margin-top:-34px;position:relative;z-index:2;text-align:left}
  .mobile-kicker{text-transform:uppercase;letter-spacing:.28em;font-size:.62rem;color:#e2b64f;font-weight:700;margin-bottom:9px}
  .mobile-hero h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:3.55rem;line-height:.84;margin:0 0 12px;color:#fff;font-weight:600}
  .mobile-hero-copy>p{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.22rem;line-height:1.28;color:#f1eee8;margin:0 0 18px;max-width:340px}
  .mobile-event-card{border:1px solid rgba(255,255,255,.34);border-radius:16px;padding:13px 15px;background:rgba(255,255,255,.05);display:grid;gap:10px;margin-bottom:16px}
  .mobile-event-card div{display:flex;align-items:center;gap:10px;font-family:'Cormorant Garamond',Georgia,serif;font-size:1rem}
  .mobile-event-card span{color:#e2b64f;font-size:.8rem}.mobile-event-card strong{font-weight:600}
  .mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .mobile-btn{text-align:center;padding:13px 10px;border-radius:999px;font-family:'Cormorant Garamond',Georgia,serif;font-weight:700;font-size:1rem}
  .mobile-btn.primary{background:#e2b64f;color:#16130e}.mobile-btn.secondary{border:1px solid #e2b64f;color:#fff;background:transparent}
  .mobile-years{background:#fbf8f2;color:#171717;padding:38px 14px 30px;text-align:center}
  .mobile-years-label{text-transform:uppercase;letter-spacing:.28em;font-size:.58rem;font-weight:700;color:#6c6257;margin-bottom:6px}
  .mobile-years h2{font-family:'Cormorant Garamond',Georgia,serif;font-size:2.6rem;line-height:1;margin:0 0 20px;font-weight:600}
  .mobile-gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .mobile-gallery-grid img{width:100%;aspect-ratio:1/1.08;object-fit:cover;border-radius:12px;box-shadow:0 6px 18px rgba(24,18,10,.10)}
  .mobile-gallery-grid img:nth-child(1){object-position:center 42%}.mobile-gallery-grid img:nth-child(2){object-position:center 40%}.mobile-gallery-grid img:nth-child(3){object-position:center 45%}.mobile-gallery-grid img:nth-child(4){object-position:center 38%}
  .mobile-family-feature{width:100%;margin:10px 0 0;aspect-ratio:16/9;object-fit:cover;object-position:center;border-radius:12px;box-shadow:0 6px 18px rgba(24,18,10,.10)}
  .mobile-legacy{text-transform:uppercase;letter-spacing:.18em;font-size:.55rem;color:#655d54;margin-top:13px;font-weight:600}
  .mobile-quicknav{position:sticky;bottom:10px;z-index:35;width:calc(100% - 24px);margin:-4px auto 12px;display:grid;grid-template-columns:repeat(3,1fr);background:rgba(9,18,24,.94);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);box-shadow:0 10px 30px rgba(0,0,0,.22);border-radius:999px;padding:5px}
  .mobile-quicknav a{color:#fff;text-align:center;padding:9px 4px;border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.02em}.mobile-quicknav a:last-child{background:#e2b64f;color:#17130c}
  .compact-story{padding:48px 0}.compact-story .wrap{width:min(92vw,680px)}
  .section-title{font-size:2.35rem}.lead{font-size:.98rem;line-height:1.65}
  #event.strip{padding:26px 0}.strip-grid{gap:16px}.countdown b{font-size:2.15rem}
  #share.share{padding:58px 0}.form-card{border-radius:14px;padding:20px}.form-card h3{font-size:1.8rem}.field input,.field textarea,.field select{font-size:16px}
  #messages.messages,#rsvp,.community{padding:58px 0}
  .event-box{position:static;padding:26px}.event-box h3{font-size:2.2rem}
  .community-grid{gap:9px}.community-item{padding:15px 8px}
  .footer{padding-bottom:88px}
}
@media(max-width:390px){
  .mobile-hero h1{font-size:3.15rem}
  .mobile-hero-photo{min-height:330px}
  .mobile-hero-copy{padding-left:16px;padding-right:16px}
  .mobile-actions{grid-template-columns:1fr}
}
