:root{
    --navy:#002556; --navy-deep:#001B3F;
    --gold:#E3B506; --gold-deep:#8A6B08;
    --sub:#4B61B9;
    --cream:#FBF7EF; --oat:#F3EBDA; --periwinkle-pale:#EEF2FB;
    --ink:#33405F; --muted:#5B657F; --line:#EBE3D2;
    --maxw:1000px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;background:var(--cream);color:var(--ink);font-family:'Hanken Grotesk',system-ui,-apple-system,sans-serif;font-size:17px;line-height:1.72;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
  h1,h2,h3{font-family:'Gantari',system-ui,sans-serif;color:var(--navy);font-weight:700;line-height:1.16;letter-spacing:-.01em;margin:0 0 .5em;}
  h1{font-size:clamp(2.1rem,5vw,3.4rem);}
  h2{font-size:clamp(1.6rem,3.4vw,2.3rem);}
  p{margin:0 0 1.15em;}
  a{color:inherit;}
  img,svg{max-width:100%;display:block;}
  .wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 26px;}
  .narrow{max-width:660px;margin:0 auto;}
  .caption{font-family:'Gantari',sans-serif;text-transform:uppercase;letter-spacing:.24em;font-weight:600;font-size:.68rem;color:var(--gold-deep);}
  .isub{font-family:'Hanken Grotesk',sans-serif;font-style:italic;color:var(--sub);font-weight:500;}
  .divider{width:52px;height:3px;border-radius:3px;background:var(--gold);border:0;margin:0 0 26px;}
  .divider.center{margin-left:auto;margin-right:auto;}

  header.top{position:sticky;top:0;z-index:40;background:rgba(251,247,239,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
  header.top .in{max-width:var(--maxw);margin:0 auto;padding:12px 26px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
  header.top img{height:34px;}
  header.top nav{display:flex;gap:22px;align-items:center;}
  header.top nav a{font-family:'Gantari',sans-serif;font-weight:500;font-size:.92rem;color:var(--navy);opacity:.82;}
  header.top nav a:hover{opacity:1;color:var(--gold-deep);}
  header.top nav a[aria-current="page"]{opacity:1;color:var(--gold-deep);font-weight:600;}
  .cta-pill{background:var(--gold);color:var(--navy-deep)!important;border-radius:100px;padding:9px 16px;opacity:1!important;font-weight:600;}
  .nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;margin:0;color:var(--navy);}
  .nav-toggle svg{width:24px;height:24px;display:block;}
  @media(max-width:760px){
    header.top nav a:not(.cta-pill){display:none;}
    .nav-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:46px;min-width:46px;}
    header.top nav.open{position:fixed;top:59px;left:0;right:0;background:var(--cream);flex-direction:column;align-items:flex-start;padding:10px 26px 20px;box-shadow:0 12px 24px -18px rgba(0,37,86,.25);gap:0;z-index:41;}
    header.top nav.open a:not(.cta-pill){display:block;padding:12px 0;width:100%;border-bottom:1px solid var(--line);}
    header.top nav.open .cta-pill{margin-top:14px;}
  }

  section{padding:clamp(64px,9vw,120px) 0;}
  section.hero{position:relative;text-align:center;padding:clamp(80px,12vw,150px) 0;overflow:hidden;}
  section.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(251,247,239,.72),rgba(251,247,239,.9)),url('../img/photo-d16e1a.webp') center/cover no-repeat;opacity:.5;z-index:0;}
  section.hero .wrap{position:relative;z-index:1;}
  .hero .mark{width:58px;height:58px;margin:0 auto 26px;opacity:.92;}
  .hero h1{max-width:16ch;margin-inline:auto;}
  .hero .isub{font-size:1.2rem;max-width:40ch;margin:0 auto 26px;}

  .two{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,5vw,64px);align-items:center;}
  .two.rev .col-img{order:2;}
  .col-img{border-radius:22px;overflow:hidden;box-shadow:0 26px 60px -34px rgba(0,37,86,.4);aspect-ratio:4/5;}
  .col-img img{width:100%;height:100%;object-fit:cover;}
  @media(max-width:760px){ .two,.two.rev{grid-template-columns:1fr;gap:26px;} .two.rev .col-img,.col-img{order:-1;aspect-ratio:16/11;} }

  .what .row{padding:22px 0;border-top:1px solid var(--line);}
  .what .row:first-of-type{border-top:0;}
  .what .lbl{font-family:'Gantari',sans-serif;text-transform:uppercase;letter-spacing:.16em;font-weight:600;font-size:.72rem;color:var(--gold-deep);margin-bottom:6px;}
  .what .val{font-size:1.15rem;color:var(--navy);font-family:'Gantari',sans-serif;font-weight:500;}
  .what .val.small{font-size:1.02rem;color:var(--ink);font-family:'Hanken Grotesk',sans-serif;font-weight:400;}

  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px;}
  .ccard{background:var(--oat);border:1px solid var(--line);border-radius:22px;padding:30px 26px;}
  .ccard h3{font-size:1.2rem;margin-bottom:.5rem;}
  .ccard p{margin:0;color:var(--ink);font-size:.98rem;}
  @media(max-width:760px){ .cards{grid-template-columns:1fr;} }

  .not{background:var(--periwinkle-pale);}
  .not .quote{font-family:'Hanken Grotesk',sans-serif;font-style:italic;color:var(--navy);font-size:clamp(1.2rem,2.4vw,1.55rem);line-height:1.6;text-align:center;max-width:34ch;margin:0 auto;}
  .not .caption{display:block;text-align:center;margin-bottom:22px;}

  .invite{background:#fff;text-align:center;}
  .invite h2{max-width:20ch;margin-inline:auto;}
  .invite .narrow{margin-bottom:26px;}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:56px;padding:0 2rem;font-family:'Gantari',sans-serif;font-weight:600;font-size:1.05rem;border-radius:100px;background:var(--navy);color:var(--cream);box-shadow:0 16px 34px -18px rgba(0,37,86,.55);transition:transform .25s,box-shadow .25s;}
  .btn:hover{transform:translateY(-3px);}
  .btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}
  a:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px;}
  .invite .fine{margin-top:16px;font-size:.9rem;color:var(--muted);}

  footer{background:var(--navy-deep);color:#D7E1F6;text-align:center;padding:46px 0;}
  footer .mk{height:30px;margin:0 auto 16px;opacity:.9;}
  footer p{margin:.2em 0;font-size:.92rem;opacity:.85;}
  footer .sss{font-family:'Gantari',sans-serif;color:#fff;opacity:.95;letter-spacing:.02em;}
  footer .fnav{margin:0 0 18px;font-size:.88rem;}
  footer .fnav a{opacity:.82;}
  footer .fnav a:hover{opacity:1;}

  .reveal{opacity:0;transform:translateY(20px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);}
  .reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} .reveal{opacity:1;transform:none;transition:none;} }

  img[width][height]:not(.col-img img){height:auto;}
