:root{--ink:#243024;--cream:#f2eee3;--paper:#e8e1cf;--wine:#580b1a;--gold:#b9aa79;--line:rgba(36,48,36,.25)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font-family:"Cormorant Garamond",serif;font-size:18px}.hero{height:100svh;min-height:680px;position:relative;overflow:hidden;color:#fff}.hero video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,20,11,.28),transparent 48%,rgba(12,20,11,.12))}.desktop-nav,.standalone-rsvp nav{position:relative;z-index:3;display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr;align-items:center;gap:20px;max-width:1160px;margin:auto;padding:38px 50px;text-align:center}.desktop-nav a,.standalone-rsvp nav a{text-decoration:none;color:inherit;text-transform:uppercase;letter-spacing:.08em;font-size:15px}.monogram{font-family:"Cormorant",serif!important;font-size:43px!important;font-weight:400;letter-spacing:-.15em!important;text-transform:none!important}.monogram span{font-size:.65em;font-style:italic}.hero h1{position:absolute;z-index:2;top:47%;left:50%;transform:translate(-50%,-50%);margin:0;width:100%;text-align:center;font-family:"Pinyon Script",cursive;font-size:clamp(55px,8vw,112px);font-weight:400}.hero h1 span,.rsvp-intro h2 span,.standalone-rsvp h1 span{font-size:.7em}.mobile-nav,.mobile-menu{display:none}.parchment{background-color:var(--paper);background-image:linear-gradient(rgba(242,238,227,.78),rgba(242,238,227,.78)),url('/assets/imaKyK5GnZmT8jrnV2SGUDqZK0.png');background-size:cover}.dark{background:#253021;color:#f7f1e5}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:15px}.love{padding:120px max(6vw,30px)}.love>.eyebrow{text-align:center;margin-bottom:60px}.love-grid{max-width:1080px;margin:auto;display:grid;grid-template-columns:.85fr 1fr;align-items:center;gap:8vw}.love figure{margin:0;height:660px;overflow:hidden}.love img{width:100%;height:100%;object-fit:cover}.poem{font-family:"Cormorant",serif;font-size:clamp(28px,3.2vw,48px);line-height:1.35;text-align:center}.poem .signature{margin-top:45px;font-family:"Pinyon Script",cursive;font-size:1.25em}.location{display:grid;grid-template-columns:1fr 1fr;min-height:680px}.location-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px;text-align:center}.location h2,.dress h2{font-size:clamp(38px,5vw,72px);font-weight:400;text-transform:uppercase;line-height:1.05;letter-spacing:.06em}.address{text-transform:uppercase;letter-spacing:.13em;line-height:1.8}.location>img{width:100%;height:100%;object-fit:cover}.registry{padding:120px 8vw;display:grid;grid-template-columns:.75fr 1fr;gap:8vw;align-items:center}.registry-art{height:700px}.registry-art img{width:100%;height:100%;object-fit:contain}.registry-copy{font-size:clamp(20px,2vw,28px);line-height:1.55}.registry-copy .eyebrow{font-size:15px}.registry-copy a{color:inherit}.dress{display:grid;grid-template-columns:1.25fr .75fr;min-height:700px}.dress>img{width:100%;height:100%;object-fit:cover}.dress>div{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8vw;text-align:center}.dress h2{font-size:clamp(36px,4vw,64px)}.questions{padding:120px max(8vw,30px)}.questions>.eyebrow{text-align:center}.faq{max-width:900px;margin:55px auto 0;border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:28px 4px}summary{cursor:pointer;font-family:"Cormorant",serif;font-size:28px;list-style:none}summary:after{content:'+';float:right;font-size:25px}details[open] summary:after{content:'–'}details p{max-width:720px;line-height:1.6;color:#465047}.rsvp-intro{min-height:760px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;text-align:center}.rsvp-intro img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.28}.rsvp-intro>div{position:relative;z-index:1;padding:50px}.rsvp-intro h2,.standalone-rsvp h1{font-family:"Cormorant",serif;font-size:clamp(68px,10vw,150px);line-height:.75;font-weight:400;margin:30px 0}.rsvp-intro h2 span,.standalone-rsvp h1 span{font-family:"Pinyon Script",cursive;font-weight:400}.rsvp-intro>div>p:last-child{font-size:24px}.form-section{padding:100px 24px}.rsvp-form{max-width:700px;margin:auto;display:grid;gap:26px}.rsvp-form label{display:grid;gap:8px;color:#6f756c;font-size:15px}.rsvp-form input,.rsvp-form select,.rsvp-form textarea{width:100%;border:1px solid rgba(36,48,36,.15);background:rgba(255,255,255,.78);padding:17px 18px;font:16px "Cormorant Garamond",serif;color:#111;border-radius:0}.rsvp-form textarea{min-height:120px;resize:vertical}.rsvp-form button{border:0;background:var(--wine);color:#fff;padding:18px;font:600 17px "Cormorant",serif;cursor:pointer}.rsvp-form button:hover{background:#711225}.honeypot{position:absolute!important;left:-9999px!important}footer{background:#1f291f;color:#f6f0e4;text-align:center;padding:70px 20px}footer p{text-transform:uppercase;letter-spacing:.18em;font-size:13px}.standalone-rsvp{background:var(--paper)}.standalone-rsvp nav{color:#263023}.standalone-rsvp .rsvp-intro{min-height:420px;background:#273124;color:#fff}.standalone-rsvp .rsvp-intro img{object-fit:contain;opacity:.16}.standalone-rsvp h1{margin:20px 0}.thanks main{min-height:100svh;background:#263023 url('/assets/imaKyK5GnZmT8jrnV2SGUDqZK0.png') center/cover;display:grid;place-items:center;padding:24px;text-align:center;color:#fff}.thanks main>div{max-width:650px}.thanks h1{font-family:"Pinyon Script",cursive;font-size:clamp(56px,8vw,100px);font-weight:400;margin:18px 0}.thanks .return{display:inline-block;margin-top:35px;color:#fff;text-transform:uppercase;letter-spacing:.14em;font-size:13px}.thanks .monogram{color:#fff;text-decoration:none}
@media(max-width:809.98px){.desktop-nav{display:none}.mobile-nav{position:relative;z-index:4;display:flex;align-items:center;justify-content:space-between;padding:24px 28px}.mobile-nav .monogram{color:#fff;text-decoration:none}.mobile-nav button{border:0;background:transparent;color:#fff;font:15px "Cormorant",serif;text-transform:uppercase}.mobile-menu{position:absolute;z-index:5;top:78px;left:20px;right:20px;background:rgba(31,41,31,.97);padding:24px;flex-direction:column;gap:18px}.mobile-menu.open{display:flex}.mobile-menu a{color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:14px}.hero{min-height:600px}.hero h1{top:24%;font-family:"Allura",cursive;font-size:51px;line-height:1.4}.love{padding:80px 24px}.love-grid,.location,.registry,.dress{grid-template-columns:1fr}.love figure{height:500px}.poem{padding:30px 0}.location-copy{padding:80px 24px}.location>img{height:480px}.registry{padding:80px 24px}.registry-art{height:480px}.dress>img{height:500px}.dress>div{padding:90px 24px}.questions{padding:80px 24px}.rsvp-intro{min-height:600px}.form-section{padding:75px 20px}.standalone-rsvp nav{display:flex;padding:20px;justify-content:center}.standalone-rsvp nav a:not(.monogram){display:none}}

/* Destination compositions, motion, accordion and mobile overlay. */
.location{grid-template-columns:1.05fr .95fr;align-items:center;min-height:100svh;padding:8vh 7vw;color:var(--wine)}
.location-visual{height:min(68vh,620px);overflow:hidden;border-radius:32px}
.location-visual img{width:100%;height:100%;object-fit:cover}
.location-copy{padding:70px}

/* The Framer composition uses the venue photograph as a single centered
   artwork at every breakpoint. The address is already present in the
   invitation artwork, so it is intentionally not repeated beside it. */
.location{display:grid;grid-template-columns:1fr;place-items:center}
.location-visual{width:min(48vw,460px);height:auto;aspect-ratio:1.58/1;border-radius:22px}
.location-copy{display:none}
.registry{position:relative;min-height:934px;padding:219px 24px;display:grid;grid-template-columns:1fr;place-items:center;text-align:center;color:#660220;background:#f5f1e9;overflow:hidden}
.registry-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;pointer-events:none}
.registry-copy{position:relative;z-index:1;width:min(100%,960px);font:400 20px/36px "Cormorant",serif;text-transform:capitalize}
.registry-copy p{margin:0}
.registry-copy p+p{margin-top:36px}
.registry-copy a{color:inherit;text-decoration:underline;text-underline-offset:3px}.registry-copy .registry-link{font-weight:600;text-decoration-line:underline;text-decoration-thickness:2px;text-underline-offset:.2em}.registry-copy .registry-link .gift-word{text-decoration-line:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
.registry h2{margin:0 0 24px;font:400 92px/2 "Pinyon Script",cursive;color:#6e2a37;opacity:1;transform:none;transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}
.registry.is-visible h2{opacity:1;transform:none}
.registry-copy .gift-word{display:inline-block;opacity:1;filter:none;transform:none;transition:opacity .55s ease,filter .55s ease,transform .55s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--word-index)*22ms + 180ms)}
.registry.is-visible .gift-word{opacity:1;filter:blur(0);transform:none}
summary{display:flex;align-items:center;justify-content:space-between;gap:24px}
summary:after{content:'⌄';display:grid;place-items:center;float:none;flex:0 0 36px;width:36px;height:36px;border:1px solid currentColor;border-radius:50%;font-size:21px;line-height:1;transition:transform .35s ease}
details[open] summary:after{content:'⌄';transform:rotate(180deg)}
details p{height:0;overflow:hidden;margin:0;opacity:0;transition:height .36s cubic-bezier(.4,0,.2,1),opacity .28s ease,margin .36s ease}
details[open] p{margin:18px 0 0;opacity:1}
.rsvp-intro{min-height:100svh;flex-direction:column;background:#78806b url('/assets/imaKyK5GnZmT8jrnV2SGUDqZK0.png') center/cover no-repeat;color:#fff}
.rsvp-intro img{position:relative;inset:auto;width:min(430px,36vw);height:min(58vh,560px);object-fit:contain;opacity:1}
.rsvp-intro h2{position:relative;margin:-1vh 0 0;font:400 clamp(68px,7vw,105px)/.9 "Pinyon Script",cursive;text-shadow:0 2px 18px rgba(25,35,25,.22)}

@media(max-width:809.98px){
  body.menu-open{overflow:hidden}
  .mobile-nav{position:fixed;inset:0 0 auto;z-index:42;padding:20px 24px}
  .mobile-nav .monogram{font-size:30px!important}
  .mobile-nav button{position:relative;z-index:2;letter-spacing:.08em}
  .mobile-menu{position:fixed;z-index:40;inset:0;top:0;left:0;right:0;background:#050505;padding:120px 28px 50px;align-items:flex-start;justify-content:center;gap:28px;opacity:0;transform:translateY(-12px);transition:opacity .35s ease,transform .35s ease}
  .mobile-menu.open{display:flex;opacity:1;transform:none}
  .mobile-menu a{font:400 clamp(30px,10vw,46px)/1.1 "Cormorant",serif;letter-spacing:.08em}
  .hero h1{top:24%;font-family:"Allura",cursive;font-size:51px;line-height:1.4}
  .location{padding:80px 24px;gap:30px}
  .location-visual{height:390px;border-radius:22px}
  .location-copy{padding:30px 0 70px}
  .registry{min-height:760px;padding:132px 24px;background-position:center}
  .registry-copy{width:min(100%,560px);font-size:20px;line-height:36px}
  .registry-copy p+p{margin-top:30px}
  .registry h2{margin-bottom:20px;font-size:50px;line-height:2}
  summary{font-size:22px}
  .rsvp-intro{min-height:100svh}
  .rsvp-intro img{width:min(88vw,430px);height:min(66vh,560px)}
  .rsvp-intro h2{font-size:70px;margin-top:-4vh}
}

/* Intro label: matches the mobile Menu typeface at 75% of its 15px size. */
.hero-kicker{position:absolute;z-index:2;top:calc(47% - 86px);left:50%;transform:translateX(-50%);margin:0;width:100%;text-align:center;font:400 15.75px "Cormorant",serif;letter-spacing:.08em;text-transform:uppercase}
@media(min-width:1200px){.hero-kicker{top:calc(31.22% - 70px)}}
@media(min-width:810px) and (max-width:1199.98px){.hero-kicker{top:calc(26% - 70px)}}
@media(max-width:809.98px){.hero-kicker{top:calc(24% - 48px)}}

/* Full Dress Code artwork and staged text reveal. */
.dress{position:relative;display:block;min-height:973px;overflow:hidden;background:#f5f1e9;color:#660220}
.dress-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.dress-copy{position:relative;z-index:1;width:min(100% - 48px,900px);margin:0 auto;padding-top:106px;text-align:center}
.dress-copy h2{margin:0;font:400 62px/1.9 "Pinyon Script",cursive;letter-spacing:0;text-transform:none;color:#6e2a37;opacity:1;transform:none;transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}
.dress-copy p{margin:0 auto;width:100%;font:400 28px/36px "Cormorant",serif;text-transform:capitalize;color:#660220;white-space:nowrap}
.dress-copy .dress-word{display:inline-block;opacity:1;filter:none;transform:none;transition:opacity .55s ease,filter .55s ease,transform .55s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--word-index)*45ms + 180ms)}
.dress.is-visible .dress-copy h2{opacity:1;transform:none}
.dress.is-visible .dress-word{opacity:1;filter:blur(0);transform:none}
@media(max-width:809.98px){
  .dress{min-height:760px}
  .dress-background{object-position:center}
  .dress-copy{width:min(100% - 40px,560px);padding-top:84px}
  .dress-copy h2{font-size:50px;line-height:1.9}
  .dress-copy p{font-size:22px;line-height:31px;white-space:normal}
}

/* Full-bleed Our Love composition. */
.love-original{height:642px;min-height:620px;position:relative;overflow:hidden;color:#fff;padding:0 24px;background:none}
.love-original .love-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.love-original:after{content:"";position:absolute;inset:0;background:rgba(12,20,20,.13);pointer-events:none}
.love-original .love-grid{position:relative;z-index:1;max-width:1150px;height:100%;margin:auto;display:grid;grid-template-columns:1fr;align-items:center}
.love-original figure{margin:0;width:320px;height:400px;justify-self:center;overflow:hidden;opacity:1}
.love-original figure img{width:100%;height:100%;object-fit:contain}
.love-original .poem{padding:0;font-family:"Cormorant",serif;font-size:25px;line-height:1.513;text-align:center;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.18);animation:love-rise .85s cubic-bezier(.22,1,.36,1) both}
.love-original .poem h2{margin:0 0 22px;font:400 55px/1.15 "Pinyon Script",cursive}
.love-original .poem p{margin:0}
.love-original .poem .signature{margin-top:34px;font:400 39px/1.35 "Pinyon Script",cursive}
@keyframes love-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(max-width:809.98px){
  .love-original{height:auto;min-height:760px;padding:54px 24px}
  .love-original .love-background{object-position:18% center}
  .love-original .love-grid{grid-template-columns:1fr;gap:18px}
  .love-original figure{width:min(76vw,320px);height:auto;aspect-ratio:4/5}
  .love-original .poem{font-size:20px}
  .love-original .poem h2{font-size:45px;margin-bottom:16px}
  .love-original .poem .signature{font-size:34px;margin-top:25px}
}

/* Mobile legibility pass: preserve the artwork while keeping every label and
   paragraph readable over light, dark, and illustrated sections. */
@media(max-width:809.98px){
  body{font-size:18px}
  .mobile-nav{
    min-height:72px;
    background:linear-gradient(180deg,rgba(24,31,23,.58),rgba(24,31,23,.18) 72%,transparent);
    text-shadow:0 1px 8px rgba(0,0,0,.65);
    transition:transform .42s cubic-bezier(.4,0,.2,1),opacity .28s ease
  }
  .mobile-nav.nav-hidden{transform:translateY(calc(-100% - 12px));opacity:0;pointer-events:none}
  .mobile-nav button{min-width:64px;min-height:44px;font-size:16px;font-weight:500}
  .mobile-menu{background:#050505;text-shadow:none}
  .mobile-menu a{color:#fff}
  .eyebrow{font-size:16px;font-weight:600}

  .love-original:after{background:linear-gradient(90deg,rgba(9,20,22,.18),rgba(9,20,22,.08))}
  .love-original .poem{font-size:21px;line-height:1.55;text-shadow:0 2px 10px rgba(0,0,0,.62)}
  .love-original .poem h2{font-size:48px}
  .love-original .poem .signature{font-size:36px}

  .location{grid-template-columns:minmax(112px,.72fr) 1.28fr;padding:96px 24px 70px;gap:22px;min-height:100svh}
  .location-visual{height:390px}
  .location-copy{padding:20px 0;text-align:center}
  .location h2{font-size:clamp(34px,10vw,45px);line-height:1.08}
  .location .address{font-size:18px;line-height:1.75;letter-spacing:.1em}

  .registry{min-height:0;padding:120px 20px 96px}
  .registry:after{content:"";position:absolute;inset:0;background:rgba(249,246,238,.34);z-index:1;pointer-events:none}
  .registry-copy{z-index:2;padding:26px 16px;background:rgba(251,248,240,.78);box-shadow:0 8px 40px rgba(78,45,37,.08);font-size:20px;line-height:1.62}
  .registry h2{font-size:54px;line-height:1.2;margin-bottom:28px}
  .registry-copy p+p{margin-top:28px}
  .registry-copy .gift-word{transition-delay:calc(var(--word-index)*12ms + 120ms)}

  .dress{min-height:760px}
  .dress-copy{width:calc(100% - 32px);padding:82px 16px 18px;background:linear-gradient(180deg,rgba(250,247,239,.98) 0%,rgba(250,247,239,.92) 78%,rgba(250,247,239,.72) 100%)}
  .dress-copy h2{font-size:52px;line-height:1.2;margin-bottom:18px}
  .dress-copy p{font-size:21px;line-height:1.45;font-weight:500}
  .dress-copy .dress-word{transition-delay:calc(var(--word-index)*30ms + 120ms)}

  .questions{padding:96px 24px 80px}
  .faq{margin-top:42px}
  summary{font-size:23px;line-height:1.25}
  details p{font-size:18px;line-height:1.55;color:#303a31}

  .form-section{padding:92px 20px 76px}
  .rsvp-form{gap:28px}
  .rsvp-form label{font-size:17px;line-height:1.35;color:#394238;font-weight:500}
  .rsvp-form input,.rsvp-form select,.rsvp-form textarea{min-height:54px;font-size:17px;line-height:1.35;color:#20251f;background:rgba(255,255,255,.9)}
  .rsvp-form input::placeholder,.rsvp-form textarea::placeholder{color:#596158;opacity:1}
  .rsvp-form button{min-height:56px;font-size:18px}
  footer p{font-size:16px}
}

@media(max-width:350px){
  .location{grid-template-columns:104px 1fr;padding-inline:18px;gap:16px}
  .location h2{font-size:32px}
  .location .address{font-size:16px;letter-spacing:.08em}
  .registry-copy{font-size:18px;padding-inline:14px}
  .dress-copy p{font-size:19px}
}

/* Opening transition: the swan hero pins while Our Love scrolls over it. */
.intro-stack{position:relative;isolation:isolate;background:#283222}
.intro-stack .hero{position:sticky;top:0;z-index:0}
.intro-stack .love-original{position:relative;z-index:1;opacity:1;box-shadow:0 -28px 70px rgba(11,18,13,.18)}
/* The Our Love image moves upward over the pinned swan hero at full opacity.
   Do not couple its movement to a fade: the image, section, and ancestors must
   remain solid throughout the complete transition on every breakpoint. */
.intro-stack .love-original,.intro-stack .love-original .love-background{opacity:1;will-change:auto}
.intro-stack .love-original:after{opacity:1;will-change:auto}

/* Web, Tablet, and Mobile use distinct responsive layouts. */
.desktop-nav{position:absolute;inset:0 0 auto;z-index:42;width:min(100%,1160px);padding:20px 32px;color:#fff}
footer{display:none}

@media(min-width:1200px){
  .hero h1{top:31.22%;font-family:"Pinyon Script",cursive;font-size:90px;line-height:1}
  .location{height:544px;min-height:544px;padding:40px 7vw;grid-template-rows:minmax(0,1fr);overflow:hidden}
  .location-visual{height:auto}
  .location-copy{padding:40px}
  .questions{min-height:946px;padding:150px max(8vw,30px)}
  .form-section{min-height:917px;padding:64px 24px}
  .rsvp-form{gap:13px}
}

@media(min-width:810px) and (max-width:1199.98px){
  .hero h1{top:26%;font-family:"Pinyon Script",cursive;font-size:90px;line-height:1}
  .love-original{height:590px;min-height:590px}
  .love-original .love-grid{grid-template-columns:1fr;gap:0}
  .love-original figure{width:300px;height:375px}
  .wedding-details{height:904px;min-height:904px}
  .location{height:771px;min-height:771px;padding:64px 44px}
  .location-visual{width:min(58vw,500px);height:auto}
  .registry{min-height:1030px;padding:190px 42px}
  .dress{min-height:964px}
  .questions{min-height:946px;padding:140px 56px}
  .rsvp-intro{min-height:813px;height:813px}
  .rsvp-intro img{width:min(390px,48vw);height:min(540px,60vh)}
  .form-section{min-height:868px;padding:54px 24px}
  .rsvp-form{gap:9px}
}

@media(max-width:809.98px){
  .hero{height:710px;min-height:710px}
  .love-original{height:874px;min-height:874px;margin-top:0;padding:0}
  .intro-stack .love-original .love-background{opacity:1!important;will-change:auto;object-position:18% center}
  .intro-stack .love-original:after{z-index:0;opacity:1!important;background:rgba(8,15,18,.24);will-change:auto}
  .love-original .love-grid{position:relative;z-index:1;display:block;height:100%;max-width:none}
  .love-original figure{display:none}
  .love-original .poem{position:absolute;left:18px;right:18px;bottom:16px;padding:0;font-size:17px;line-height:1.55;text-shadow:0 2px 10px rgba(0,0,0,.65)}
  .love-original .poem h2{margin:0 0 24px;font-size:51px;line-height:1.05}
  .love-original .poem .signature{margin-top:28px;font-size:34px;line-height:1.2}
  .wedding-details{height:597px;min-height:597px}
  .location{height:559px;min-height:559px;padding:70px 24px 48px}
  .location-visual{height:330px}
  .registry{height:1054px;min-height:1054px;padding:132px 20px 108px}
  .dress{min-height:1046px}
  .questions{min-height:1145px;padding:130px 24px 110px}
  .rsvp-intro{height:680px;min-height:680px}
  .rsvp-intro img{height:min(500px,58vh)}
  .form-section{position:relative;z-index:1;min-height:1366px;margin-top:-45px;padding:118px 20px 100px}
}

/* Exact Framer mobile composition. Keep this isolated from Tablet and Web. */
.form-intro{display:none}
@media(max-width:809.98px){
  .love-original:after{display:block;background:linear-gradient(180deg,rgba(8,15,18,.04) 35%,rgba(8,15,18,.52) 100%)}
  .love-original .poem{display:block}
  .intro-stack .love-original .love-background{object-position:18% center}

  .location{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;place-content:center;place-items:center;padding:54px 24px;background:#f6f3eb;background-image:none}
  .location-visual{width:min(76vw,300px);height:auto;aspect-ratio:1.58/1}
  .location-visual img{object-fit:cover}
  .location-copy{display:flex;padding:30px 0 0}
  .location-copy .eyebrow{margin:0 0 10px}
  .location-copy h2{margin:0 0 16px;font-size:35px}
  .location-copy .address{margin:0;font-size:14px;line-height:1.55}

  .registry{display:flex;align-items:center;justify-content:center;padding:84px 34px;background-color:#f3eee5}
  .registry:after{background:rgba(249,246,238,.16)}
  .registry-copy{width:100%;max-width:330px;padding:0;background:transparent;box-shadow:none;font-size:16px;line-height:1.48;text-align:center}
  .registry h2{font-size:50px;margin:0 0 26px}
  .registry-copy p{margin:0}
  .registry-copy p+p{margin-top:24px}

  .dress{background:#f7f4ed}
  .dress>.dress-background{height:100%;object-fit:cover;object-position:center}
  .dress-copy{width:100%;padding:80px 24px 30px;background:transparent}
  .dress-copy h2{font-size:60px;margin:0 0 20px}
  .dress-copy p{font-size:18px;line-height:1.45}

  .questions{background:#f7f4ed;background-image:none;padding:92px 40px 72px}
  .questions>.eyebrow{text-align:center;font:400 40px/1.2 "Pinyon Script",cursive;text-transform:none;letter-spacing:0}
  .faq{margin-top:50px}
  details{padding:23px 0}
  summary{font-size:17px;line-height:1.28}
  details p{font-size:13px;line-height:1.55}

  .form-section{margin-top:0;padding:70px 20px 70px;background:#f7f4ed;background-image:none}
  .form-intro{display:block;text-align:center;margin:0 auto 46px;color:#5b0b1d}
  .form-intro h2{margin:0 0 25px;font:400 52px/.9 "Pinyon Script",cursive}
  .form-intro p{margin:0;color:#4b5049;font-size:17px;line-height:1.5}
  .rsvp-form{gap:17px}
  .rsvp-form label{gap:6px;font-size:12px;line-height:1.25;color:#777;font-weight:500}
  .rsvp-form input,.rsvp-form select,.rsvp-form textarea{min-height:42px;padding:11px 12px;font-size:14px}
  .rsvp-form textarea{min-height:92px}
  .rsvp-form button{min-height:48px;font-size:15px}
}

/* Framer's Web and Tablet RSVP section is a two-column invitation: the
   editorial introduction sits beside the form. Mobile deliberately stacks it. */
@media(min-width:810px){
  .location{grid-template-columns:minmax(300px,.9fr) minmax(330px,1.1fr);gap:clamp(32px,6vw,90px)}
  .location-visual{width:min(100%,460px)}
  .location-copy{display:flex;padding:40px 24px}
  .location-copy .eyebrow{margin:0 0 14px}
  .location-copy h2{margin:0 0 24px}
  .location-copy .address{margin:0}
  .questions>.eyebrow{font:400 71px/1.2 "Pinyon Script",cursive;text-transform:none;letter-spacing:0}
  .rsvp-intro h2{font-size:86px}
  .form-section{display:grid;grid-template-columns:minmax(230px,1fr) minmax(420px,540px);gap:clamp(56px,8vw,130px);align-items:start;padding-left:max(7vw,48px);padding-right:max(7vw,48px)}
  .form-intro{display:block;padding-top:82px;color:var(--wine)}
  .form-intro h2{margin:0 0 30px;font:400 64px/.9 "Pinyon Script",cursive}
  .form-intro p{margin:0;font-size:20px;line-height:1.5;color:#4b5049}
  .rsvp-form{width:100%;margin:0}
}

@media(max-width:809.98px){
  .wedding-details picture{width:min(76vw,380px)}
  .rsvp-intro h2{font-size:40px}
}
.hero-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-animation{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}
.rsvp-instructions{position:relative;z-index:1;width:min(90%,760px);margin:0 auto;text-align:center;color:#fff;text-shadow:0 2px 18px rgba(25,35,25,.35)}
.rsvp-portal-link{display:inline-block;margin-bottom:24px;color:#fff;font:400 clamp(34px,5vw,68px)/1 "Pinyon Script",cursive;text-decoration:underline;text-underline-offset:.12em}
.rsvp-instructions p{max-width:720px;margin:16px auto 0;font:400 clamp(19px,2vw,27px)/1.45 "Cormorant",serif}
.rsvp-instructions p a{color:inherit;overflow-wrap:anywhere}
.desktop-nav{position:absolute;top:0;left:0;right:0;width:100%;max-width:none;display:flex;align-items:center;justify-content:space-between;gap:0;padding:20px 32px;white-space:nowrap}
.nav-left-links,.nav-right-links{display:flex;align-items:center;justify-content:space-between;flex:0 0 calc(50% - 76px);min-width:0;gap:16px}
.nav-right-links{justify-content:space-between}
.nav-left-links a,.nav-right-links a{font-size:13px;line-height:1;white-space:nowrap;word-spacing:normal}
.desktop-nav .monogram{position:absolute;top:20px;left:50%;z-index:2;transform:translateX(-50%)}
@media (min-width:810px) and (max-width:1000px){
  .desktop-nav{padding-inline:24px}
  .nav-left-links,.nav-right-links{flex-basis:calc(50% - 52px);gap:8px}
  .nav-left-links a,.nav-right-links a{font-size:12px}
}
@media (min-width:810px){
  .desktop-nav{display:none!important}
  .mobile-nav{position:fixed;inset:0 0 auto;z-index:42;display:flex;align-items:center;justify-content:space-between;padding:20px 32px}
  .mobile-nav .monogram{margin-right:auto;color:#fff;text-decoration:none}
  .mobile-nav button{border:0;background:transparent;color:#fff;font:15px "Cormorant",serif;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}
  .mobile-menu{position:fixed;z-index:40;inset:0;background:rgba(31,41,31,.98);padding:120px 8vw 60px;flex-direction:column;align-items:center;justify-content:center;gap:24px}
  .mobile-menu a{color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font:400 clamp(26px,3vw,42px)/1.05 "Cormorant",serif}
  .mobile-menu.open{display:flex}
}
@media (max-width:809.98px){
  .desktop-nav{display:none!important}
  .mobile-nav .monogram{display:none}
  .mobile-nav{justify-content:flex-end}
  .mobile-menu:not(.open){display:none!important}
  .standalone-rsvp nav a:not(.monogram){display:none!important}
  .standalone-rsvp nav .monogram{display:none!important}
  .location-copy{padding-top:58px}
  .rsvp-intro{height:auto;min-height:calc(100svh + 140px);padding:90px 20px 80px;justify-content:flex-start;gap:24px;overflow:visible}
  .rsvp-intro img{width:min(88vw,430px);height:auto;max-height:none;flex:none}
  .rsvp-instructions{width:100%;flex:none}
  .rsvp-portal-link{font-size:48px}
  .rsvp-instructions p{font-size:19px;line-height:1.45}
}
@media (min-width:810px){
  .desktop-nav{display:flex!important}
  .mobile-nav{display:none!important}
}
.desktop-nav a{font-size:13px}
