/* ============================================================
   12.6.3 — FULL-WIDTH RSVP / CONTINUOUS HANDOFF
   The former left photographic panel is gone. The stationery surface
   owns the whole viewport, enters from the gallery and lifts into finale.
   ============================================================ */

/* Gallery -> RSVP: resolve the gallery into the SAME ivory stationery world. */
@media(min-width:681px){
  .gallery-exit-wash{
    display:grid!important;grid-template-columns:1fr!important;place-items:center!important;
    background:#fbf8f2!important;color:#2b2824!important;padding:0!important;
  }
  .gallery-exit-wash::before{
    display:block!important;content:""!important;position:absolute!important;inset:0!important;
    background:radial-gradient(circle at 72% 22%,rgba(196,164,117,.13),transparent 30%),linear-gradient(180deg,rgba(255,255,255,.35),transparent 48%)!important;
  }
  .gallery-exit-photo{display:none!important}
  .gallery-exit-note{
    width:min(900px,84vw)!important;text-align:center!important;padding:42px!important;margin:0 auto!important;
    transform:translate3d(0,var(--gallery-exit-note-y,24px),0)!important;
  }
  .gallery-exit-note::before{margin:0 auto 28px!important}
  .gallery-exit-note strong{transform:translate3d(0,var(--gallery-exit-head-y,20px),0) scale(var(--gallery-exit-head-s,.98))!important;transform-origin:center!important}
  .gallery-exit-note small{margin:0 auto!important}
  .gallery-exit-rule{margin:28px auto 0!important}
}

/* Main RSVP scroll runway. */
.rsvp-section,.rsvp-section:not(.has-answer){
  position:relative!important;height:185vh!important;min-height:0!important;margin:0!important;padding:0!important;
  overflow:visible!important;background:#11110f!important;display:block!important;
}
.rsvp-stage,.rsvp-section:not(.has-answer) .rsvp-stage{
  position:sticky!important;top:0!important;width:100%!important;height:100svh!important;min-height:0!important;
  display:block!important;overflow:hidden!important;isolation:isolate!important;background:#11110f!important;
}
.rsvp-stage::after{
  content:"";position:absolute;z-index:0;inset:-3%;pointer-events:none;
  background:var(--finale-photo,linear-gradient(145deg,#332d27,#131210)) center 50%/cover no-repeat;
  opacity:var(--rsvp-exit-bg-o,0);transform:scale(var(--rsvp-exit-bg-s,1.035));
  transition:none;will-change:opacity,transform;
}
.rsvp-stage::before{
  content:"";position:absolute;z-index:1;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,9,8,.02),rgba(10,9,8,.25));
  opacity:var(--rsvp-exit-bg-o,0);
}
.rsvp-photo-echo,.rsvp-photo-caption{display:none!important}
.rsvp-paper,.rsvp-section:not(.has-answer) .rsvp-paper{
  position:absolute!important;z-index:3!important;inset:0!important;left:0!important;right:0!important;top:0!important;
  margin:0!important;width:100vw!important;height:100svh!important;min-height:0!important;
  padding:clamp(78px,8vh,112px) max(7vw,calc((100vw - 980px)/2)) clamp(64px,7vh,96px)!important;
  display:grid!important;align-content:center!important;background:#fbf8f2!important;box-shadow:none!important;
  border:0!important;overflow:hidden!important;opacity:var(--rsvp-paper-o,0)!important;
  clip-path:inset(var(--rsvp-paper-clip-top,10%) 0 var(--rsvp-paper-clip-bottom,0%) 0)!important;
  transform:translate3d(0,var(--rsvp-paper-y,68px),0) scale(var(--rsvp-paper-s,.972))!important;
  transform-origin:center center!important;will-change:transform,opacity,clip-path!important;
}
.rsvp-paper::before{inset:28px!important;border:1px solid rgba(128,103,68,.16)!important}
.rsvp-paper::after{opacity:.19!important}
.rsvp-step-choice,.rsvp-form{width:min(920px,100%)!important;margin-inline:auto!important}
.rsvp-step-choice{text-align:left!important}
.rsvp-step-choice h2,.rsvp-question{font-size:clamp(5.2rem,8vw,9rem)!important;line-height:.76!important;max-width:850px!important}
.rsvp-question-rule{left:max(7vw,calc((100vw - 980px)/2))!important;right:max(7vw,calc((100vw - 980px)/2))!important;width:auto!important;transform:scaleX(var(--rsvp-question-rule-s,0))!important;transform-origin:left center!important}
.rsvp-choice-grid{grid-template-columns:1fr 1fr!important;gap:16px!important;max-width:920px!important}
.rsvp-monogram{left:max(7vw,calc((100vw - 980px)/2))!important;right:auto!important;transform:translate3d(0,var(--rsvp-monogram-y,0),0)!important;opacity:var(--rsvp-monogram-o,0)!important}
.rsvp-date-side{right:max(3vw,34px)!important;opacity:var(--rsvp-date-o,0)!important}
.rsvp-paper-accent{left:max(7vw,calc((100vw - 980px)/2))!important;right:max(7vw,calc((100vw - 980px)/2))!important}
.rsvp-ghost-word{left:max(-.03em,calc((100vw - 1500px)/2))!important;font-size:clamp(11rem,24vw,26rem)!important}

/* The content fades in as one authored sequence. */
.rsvp-step-choice>small{opacity:var(--rsvp-kicker-o,0)!important;transform:translate3d(0,var(--rsvp-kicker-y,14px),0)!important}
.rsvp-question span{opacity:var(--rsvp-q1-o,0)!important}
.rsvp-question em{opacity:var(--rsvp-q2-o,0)!important}
.rsvp-step-choice>p{opacity:var(--rsvp-deadline-o,0)!important;transform:translate3d(0,var(--rsvp-deadline-y,14px),0)!important}
.rsvp-choice-grid{opacity:var(--rsvp-choices-o,0)!important;transform:translate3d(0,var(--rsvp-choices-y,28px),0)!important}

/* Interaction mode: once a response is selected, release the sticky runway so
   long forms remain naturally scrollable and accessible. */
.rsvp-section.has-answer{
  height:auto!important;min-height:100svh!important;overflow:visible!important;background:#fbf8f2!important;
}
.rsvp-section.has-answer .rsvp-stage{
  position:relative!important;top:auto!important;height:auto!important;min-height:100svh!important;overflow:visible!important;background:#fbf8f2!important;
}
.rsvp-section.has-answer .rsvp-stage::before,.rsvp-section.has-answer .rsvp-stage::after{display:none!important}
.rsvp-section.has-answer .rsvp-paper{
  position:relative!important;inset:auto!important;width:100%!important;height:auto!important;min-height:100svh!important;
  margin:0!important;padding:clamp(84px,8vw,128px) max(7vw,calc((100vw - 980px)/2))!important;
  opacity:1!important;clip-path:none!important;transform:none!important;overflow:visible!important;
}
.rsvp-section.has-answer .rsvp-form{width:min(920px,100%)!important;margin-inline:auto!important}

/* Mobile: a portrait paper reveal, not a scaled desktop split. */
@media(max-width:680px){
  .mobile-gallery-exit{
    display:grid!important;min-height:76svh!important;margin-top:34px!important;padding:0!important;
    place-items:center!important;background:#fbf8f2!important;color:#2b2824!important;text-align:center!important;grid-template-rows:1fr!important;
  }
  .mobile-gallery-exit>.mobile-exit-photo{display:none!important}
  .mobile-gallery-exit>.mobile-exit-copy{
    width:100%!important;padding:13vh 24px 14vh!important;background:transparent!important;text-align:center!important;
    opacity:var(--mg-copy-o,1);transform:translate3d(0,var(--mg-copy-y,26px),0);
  }
  .mobile-exit-copy span{font-size:.68rem!important;letter-spacing:.18em!important}
  .mobile-exit-copy strong{margin:1rem auto 0!important;font-size:13vw!important;max-width:88vw!important}
  .mobile-exit-copy small{display:block!important;max-width:320px!important;margin:1rem auto 0!important;font:400 .92rem/1.6 var(--sans)!important;color:#71685f!important}

  .rsvp-section,.rsvp-section:not(.has-answer){height:170svh!important;min-height:0!important;background:#11110f!important;overflow:visible!important}
  .rsvp-stage,.rsvp-section:not(.has-answer) .rsvp-stage{position:sticky!important;top:0!important;height:100svh!important;min-height:0!important;overflow:hidden!important;background:#11110f!important}
  .rsvp-paper,.rsvp-section:not(.has-answer) .rsvp-paper{
    position:absolute!important;inset:0!important;width:100%!important;height:100svh!important;min-height:0!important;margin:0!important;
    padding:76px 22px 54px!important;clip-path:inset(var(--rsvp-paper-clip-top,8%) 0 var(--rsvp-paper-clip-bottom,0%) 0)!important;
    transform:translate3d(0,var(--rsvp-paper-y,54px),0) scale(var(--rsvp-paper-s,.982))!important;opacity:var(--rsvp-paper-o,0)!important;overflow:hidden!important;
  }
  .rsvp-paper::before{inset:14px!important}
  .rsvp-step-choice,.rsvp-form{width:100%!important;max-width:none!important;margin:0!important}
  .rsvp-step-choice h2,.rsvp-question{font-size:15.5vw!important;line-height:.78!important;max-width:92vw!important}
  .rsvp-choice-grid{grid-template-columns:1fr!important;gap:10px!important;margin-top:1.7rem!important}
  .rsvp-choice{min-height:70px!important}
  .rsvp-monogram{left:22px!important;right:auto!important;top:28px!important}
  .rsvp-date-side{right:14px!important}
  .rsvp-paper-accent{left:22px!important;right:22px!important}
  .rsvp-question-rule{left:22px!important;right:22px!important}
  .rsvp-ghost-word{font-size:37vw!important;left:-.04em!important}

  .rsvp-section.has-answer{height:auto!important;min-height:0!important;background:#fbf8f2!important}
  .rsvp-section.has-answer .rsvp-stage{position:relative!important;height:auto!important;min-height:0!important;background:#fbf8f2!important;overflow:visible!important}
  .rsvp-section.has-answer .rsvp-paper{position:relative!important;height:auto!important;min-height:100svh!important;padding:72px 22px 58px!important;clip-path:none!important;transform:none!important;opacity:1!important;overflow:visible!important}
}

@media(prefers-reduced-motion:reduce){
  .rsvp-section,.rsvp-section:not(.has-answer){height:auto!important;min-height:100svh!important;background:#fbf8f2!important}
  .rsvp-stage,.rsvp-section:not(.has-answer) .rsvp-stage{position:relative!important;height:auto!important;min-height:100svh!important;background:#fbf8f2!important}
  .rsvp-stage::before,.rsvp-stage::after{display:none!important}
  .rsvp-paper,.rsvp-section:not(.has-answer) .rsvp-paper{position:relative!important;height:auto!important;min-height:100svh!important;opacity:1!important;clip-path:none!important;transform:none!important}
  .rsvp-step-choice>small,.rsvp-question span,.rsvp-question em,.rsvp-step-choice>p,.rsvp-choice-grid,.rsvp-monogram,.rsvp-date-side{opacity:1!important;transform:none!important}
}


/* ============================================================
   12.6.4 — RSVP HEADER + ACCEPT / DECLINE EXPERIENCE
   ============================================================ */

/* Header: RSVP marker left, monogram right, wedding date on the edge. */
.rsvp-paper-accent{
  top:clamp(34px,4.6vh,54px)!important;
  left:max(7vw,calc((100vw - 980px)/2))!important;
  right:auto!important;
  width:auto!important;
  max-width:44vw!important;
  gap:14px!important;
  white-space:nowrap!important;
}
.rsvp-paper-accent i{width:clamp(42px,5vw,76px)!important}
.rsvp-monogram{
  left:auto!important;
  right:max(7vw,calc((100vw - 980px)/2))!important;
  top:clamp(34px,4.6vh,54px)!important;
  transform:translate3d(0,var(--rsvp-monogram-y,0),0)!important;
  font:500 .78rem/1 var(--serif)!important;
  letter-spacing:.16em!important;
  color:#8f7452!important;
  white-space:nowrap!important;
}
.rsvp-date-side{
  right:clamp(20px,2.2vw,38px)!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  writing-mode:vertical-rl!important;
  white-space:nowrap!important;
}

/* A selected answer becomes a designed editorial state. */
.rsvp-section.has-answer .rsvp-paper{
  background:
    radial-gradient(circle at 72% 15%,rgba(193,158,105,.10),transparent 30%),
    #fbf8f2!important;
}
.rsvp-section.rsvp-no.has-answer .rsvp-paper{
  background:
    radial-gradient(circle at 72% 15%,rgba(91,82,72,.065),transparent 30%),
    #fbf8f2!important;
}
.rsvp-form-head{
  position:relative!important;
  text-align:left!important;
  margin:0 0 clamp(2.7rem,5vh,4.4rem)!important;
  padding-top:clamp(22px,2.8vh,34px)!important;
}
.rsvp-form-head::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:1px;
  background:linear-gradient(90deg,rgba(155,126,84,.42),rgba(155,126,84,.08),transparent 76%);
}
.rsvp-back{
  margin:0 0 clamp(2.4rem,4vh,3.5rem)!important;
  padding:0!important;text-align:left!important;
  color:#847461!important;transition:opacity .25s ease,color .25s ease!important;
}
.rsvp-back:hover{color:#332d27!important}
.rsvp-response-mark{
  width:64px;height:64px;border:1px solid rgba(162,130,86,.38);border-radius:50%;
  display:grid;place-items:center;margin-bottom:1.4rem;color:#9b7d55;
  transform:scale(.82);opacity:0;
}
.rsvp-response-mark span{font:400 1.65rem/1 var(--serif)}
.rsvp-form-head>small{
  display:block!important;margin:0 0 .8rem!important;
  font-size:.65rem!important;letter-spacing:.26em!important;color:#9a7b51!important;
}
.rsvp-form-head h2{
  max-width:800px!important;margin:.3rem 0 1rem!important;
  font-size:clamp(3.5rem,5.8vw,6.7rem)!important;line-height:.82!important;
  letter-spacing:-.052em!important;
}
.rsvp-response-copy{
  max-width:650px;margin:0!important;color:#71665b!important;
  font:400 clamp(1rem,1.3vw,1.18rem)/1.65 var(--sans)!important;
}
.rsvp-response-rule{width:100%;height:1px;margin-top:2.1rem;overflow:hidden}
.rsvp-response-rule i{display:block;width:100%;height:1px;background:linear-gradient(90deg,#a98c61,rgba(169,140,97,.10));transform:scaleX(0);transform-origin:left center}

.rsvp-form.active .rsvp-response-mark{animation:rsvpMarkIn .55s .10s var(--ease) forwards}
.rsvp-form.active .rsvp-response-rule i{animation:rsvpRuleIn .72s .20s var(--ease) forwards}
@keyframes rsvpMarkIn{to{opacity:1;transform:scale(1)}}
@keyframes rsvpRuleIn{to{transform:scaleX(1)}}

/* Yes: warm, celebratory, elegant. */
.rsvp-form.response-yes .rsvp-response-mark{
  border-color:rgba(168,132,77,.44);background:rgba(190,154,99,.08);color:#9f7d4f;
}
.rsvp-form.response-yes .submit-rsvp{
  background:#28231e!important;color:#fff!important;
}
.rsvp-form.response-yes .submit-rsvp:hover{background:#151310!important}

/* No: gentle, restrained, still premium. */
.rsvp-form.response-no .rsvp-response-mark{
  border-color:rgba(85,76,67,.26);background:rgba(72,65,58,.035);color:#6f665d;
}
.rsvp-form.response-no .rsvp-form-head>small{color:#81766b!important}
.rsvp-form.response-no .rsvp-response-rule i{background:linear-gradient(90deg,#776b60,rgba(119,107,96,.08))}
.rsvp-form.response-no .submit-rsvp{background:#5c554e!important}
.rsvp-form.response-no .submit-rsvp:hover{background:#403b36!important}
.rsvp-form.response-no .accept-only{display:none!important}

/* Keep the fields visually connected to the response header. */
.rsvp-section.has-answer .field{
  border-bottom-color:rgba(67,56,45,.18)!important;
  padding:1.15rem 0 .9rem!important;
}
.rsvp-section.has-answer .field>span{color:#8b7965!important}
.rsvp-section.has-answer .submit-rsvp{margin-top:2.6rem!important;min-height:74px!important}

@media(max-width:680px){
  .rsvp-paper-accent{
    left:22px!important;right:auto!important;top:28px!important;max-width:62vw!important;gap:10px!important;
  }
  .rsvp-paper-accent i{width:30px!important}
  .rsvp-paper-accent span{font-size:.52rem!important;letter-spacing:.14em!important}
  .rsvp-monogram{
    left:auto!important;right:22px!important;top:28px!important;
    font-size:.68rem!important;letter-spacing:.12em!important;
  }
  .rsvp-date-side{display:none!important}
  .rsvp-form-head{padding-top:20px!important;margin-bottom:2.4rem!important}
  .rsvp-back{margin-bottom:2rem!important;font-size:.54rem!important}
  .rsvp-response-mark{width:54px;height:54px;margin-bottom:1.15rem}
  .rsvp-response-mark span{font-size:1.4rem}
  .rsvp-form-head>small{font-size:.57rem!important;letter-spacing:.22em!important}
  .rsvp-form-head h2{
    font-size:clamp(3rem,12.2vw,4.5rem)!important;line-height:.86!important;margin:.4rem 0 1rem!important;
  }
  .rsvp-response-copy{font-size:.96rem!important;line-height:1.58!important;max-width:92%!important}
  .rsvp-response-rule{margin-top:1.7rem}
  .rsvp-section.has-answer .rsvp-paper{padding-top:78px!important}
  .rsvp-section.has-answer .submit-rsvp{min-height:68px!important;margin-top:2.2rem!important}
}

@media(prefers-reduced-motion:reduce){
  .rsvp-response-mark{opacity:1!important;transform:none!important;animation:none!important}
  .rsvp-response-rule i{transform:none!important;animation:none!important}
}


/* ============================================================
   12.6.5 — HORIZONTAL ACCEPT / DECLINE STATES
   Selected RSVP responses become a full-width editorial composition:
   response identity on the left, fields/actions across the right.
   ============================================================ */

.rsvp-section.has-answer .rsvp-paper{
  min-height:100svh!important;
  padding:clamp(76px,8vh,110px) max(4.5vw,calc((100vw - 1500px)/2))!important;
  display:grid!important;
  align-items:center!important;
  align-content:center!important;
}
.rsvp-section.has-answer .rsvp-form{
  position:relative!important;
  width:min(1480px,100%)!important;
  margin:0 auto!important;
  opacity:1!important;
  transform:none!important;
  overflow:visible!important;
}
.rsvp-section.has-answer .rsvp-form.active{animation:none!important}
.rsvp-form-layout{
  position:relative;z-index:3;
  display:grid;
  grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
  gap:clamp(50px,6.2vw,116px);
  align-items:center;
  min-height:min(700px,74svh);
}
.rsvp-form-head{
  margin:0!important;
  padding:clamp(34px,4vh,56px) clamp(24px,2.5vw,42px) clamp(34px,4vh,56px) 0!important;
  min-width:0;
  align-self:center;
}
.rsvp-form-head::before{
  top:0!important;width:100%!important;
  background:linear-gradient(90deg,rgba(155,126,84,.56),rgba(155,126,84,.11),transparent 90%)!important;
}
.rsvp-form-head::after{
  content:"";position:absolute;right:calc(clamp(50px,6.2vw,116px) * -.5);top:4%;bottom:4%;width:1px;
  background:linear-gradient(180deg,transparent,rgba(151,121,81,.22) 16%,rgba(151,121,81,.22) 84%,transparent);
  transform:scaleY(.12);opacity:0;transform-origin:center;
}
.rsvp-response-heading{position:relative;z-index:2;min-width:0}
.rsvp-form-head>small,.rsvp-response-heading>small{margin:0 0 .9rem!important}
.rsvp-form-head h2{
  max-width:690px!important;
  font-size:clamp(3.25rem,4.85vw,6.25rem)!important;
  line-height:.82!important;
  margin:.35rem 0 1.15rem!important;
  text-wrap:balance;
}
.rsvp-response-copy{max-width:520px!important;font-size:clamp(.94rem,1.05vw,1.08rem)!important}
.rsvp-response-rule{margin-top:clamp(28px,4vh,48px)!important}
.rsvp-back{margin-bottom:clamp(28px,4vh,48px)!important}
.rsvp-response-mark{
  width:68px!important;height:68px!important;margin-bottom:clamp(18px,2.3vh,28px)!important;
  position:relative;overflow:hidden;
}
.rsvp-response-mark::after{
  content:"";position:absolute;inset:7px;border-radius:50%;border:1px solid currentColor;opacity:.14;
}

.rsvp-form-body{
  position:relative;z-index:3;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  grid-auto-rows:auto;
  column-gap:clamp(24px,3vw,54px);
  row-gap:clamp(22px,3vh,34px);
  align-content:center;
  padding:clamp(26px,3vh,42px) 0;
}
.rsvp-form-body .field{margin:0!important;padding:1rem 0 .82rem!important;min-width:0}
.rsvp-form-body .field input,
.rsvp-form-body .field textarea,
.rsvp-form-body .field select{font-size:clamp(1.08rem,1.45vw,1.48rem)!important}
.field-name{grid-column:1;grid-row:1}
.accept-only{
  grid-column:2;grid-row:1;
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:clamp(20px,2vw,34px)!important;
  min-width:0;
}
.field-message{grid-column:1;grid-row:2}
.field-message textarea{min-height:72px!important}
.rsvp-submit-wrap{
  grid-column:2;grid-row:2;
  display:flex;flex-direction:column;justify-content:flex-end;align-self:stretch;min-width:0;
}
.rsvp-submit-wrap .submit-rsvp{
  margin:0!important;min-height:74px!important;width:100%!important;
  position:relative;overflow:hidden;isolation:isolate;
}
.rsvp-submit-wrap .submit-rsvp::before{
  content:"";position:absolute;z-index:-1;left:-30%;top:-140%;width:32%;height:380%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);transform:rotate(17deg) translateX(-250%);
}
.rsvp-submit-wrap .demo-note{text-align:left!important;margin-top:12px!important}

/* Decline stays horizontal: name and note share the row, action below. */
.rsvp-form.response-no .rsvp-form-body{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)}
.rsvp-form.response-no .accept-only{display:none!important}
.rsvp-form.response-no .field-name{grid-column:1;grid-row:1}
.rsvp-form.response-no .field-message{grid-column:2;grid-row:1}
.rsvp-form.response-no .rsvp-submit-wrap{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:minmax(280px,.62fr) 1fr;gap:24px;align-items:center}
.rsvp-form.response-no .rsvp-submit-wrap .demo-note{margin:0!important;align-self:center}

/* Background focus elements for both answer states. */
.rsvp-response-aura{
  position:absolute;z-index:0;width:min(50vw,760px);aspect-ratio:1;border-radius:50%;right:-12%;top:50%;
  transform:translateY(-50%) scale(.74);opacity:0;pointer-events:none;
  background:radial-gradient(circle,rgba(180,143,91,.11) 0%,rgba(180,143,91,.035) 38%,transparent 70%);
  filter:blur(2px);
}
.rsvp-form.response-no .rsvp-response-aura{
  background:radial-gradient(circle,rgba(86,76,66,.075) 0%,rgba(86,76,66,.025) 42%,transparent 72%);
}
.rsvp-response-trace{position:absolute;z-index:1;inset:0;pointer-events:none;overflow:hidden}
.rsvp-response-trace i{position:absolute;display:block;height:1px;background:linear-gradient(90deg,transparent,rgba(166,132,85,.18),transparent);transform:scaleX(0)}
.rsvp-response-trace i:nth-child(1){left:44%;right:0;top:12%}
.rsvp-response-trace i:nth-child(2){left:49%;right:6%;top:50%;opacity:.52}
.rsvp-response-trace i:nth-child(3){left:41%;right:2%;bottom:9%;opacity:.35}
.rsvp-form.response-no .rsvp-response-trace i{background:linear-gradient(90deg,transparent,rgba(91,82,72,.13),transparent)}

/* Entrance choreography — opposite directions make the horizontal layout obvious. */
.rsvp-form.response-enter .rsvp-form-head{animation:rsvpHeadSweep .76s cubic-bezier(.18,.78,.2,1) both}
.rsvp-form.response-enter .rsvp-form-body{animation:rsvpBodySweep .76s .08s cubic-bezier(.18,.78,.2,1) both}
.rsvp-form.response-enter .rsvp-form-head::after{animation:rsvpDividerGrow .76s .28s ease both}
.rsvp-form.response-enter .rsvp-response-aura{animation:rsvpAuraIn 1.05s .14s cubic-bezier(.2,.75,.2,1) both}
.rsvp-form.response-enter .rsvp-response-trace i:nth-child(1){animation:rsvpTraceIn .85s .26s ease both}
.rsvp-form.response-enter .rsvp-response-trace i:nth-child(2){animation:rsvpTraceIn .9s .36s ease both}
.rsvp-form.response-enter .rsvp-response-trace i:nth-child(3){animation:rsvpTraceIn .95s .46s ease both}
.rsvp-form.response-enter .field-name{animation:rsvpFieldIn .58s .24s ease both}
.rsvp-form.response-enter .accept-only{animation:rsvpFieldIn .58s .31s ease both}
.rsvp-form.response-enter .field-message{animation:rsvpFieldIn .58s .38s ease both}
.rsvp-form.response-enter .rsvp-submit-wrap{animation:rsvpFieldIn .58s .45s ease both}
.rsvp-form.response-enter .rsvp-response-mark{animation:rsvpMarkPop .62s .16s cubic-bezier(.18,1.15,.3,1) both!important}
.rsvp-form.response-enter .rsvp-response-rule i{animation:rsvpRuleIn .8s .33s var(--ease) forwards!important}
.rsvp-form.response-enter .submit-rsvp::before{animation:rsvpButtonShine 1s .78s ease both}

@keyframes rsvpHeadSweep{from{opacity:0;transform:translate3d(-54px,0,0)}to{opacity:1;transform:none}}
@keyframes rsvpBodySweep{from{opacity:0;transform:translate3d(58px,0,0)}to{opacity:1;transform:none}}
@keyframes rsvpDividerGrow{from{opacity:0;transform:scaleY(.12)}to{opacity:1;transform:scaleY(1)}}
@keyframes rsvpAuraIn{from{opacity:0;transform:translateY(-50%) scale(.74)}to{opacity:1;transform:translateY(-50%) scale(1)}}
@keyframes rsvpTraceIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes rsvpFieldIn{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:none}}
@keyframes rsvpMarkPop{0%{opacity:0;transform:scale(.55) rotate(-14deg)}70%{opacity:1;transform:scale(1.06) rotate(2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes rsvpButtonShine{0%{transform:rotate(17deg) translateX(-250%)}100%{transform:rotate(17deg) translateX(520%)}}

/* Subtle living state after the reveal. */
.rsvp-form.response-yes.active .rsvp-response-mark{box-shadow:0 0 0 0 rgba(164,129,76,.0);animation:rsvpMarkBreathe 3.8s 1.1s ease-in-out infinite!important}
.rsvp-form.response-no.active .rsvp-response-mark{animation:rsvpMarkBreatheSoft 4.4s 1.1s ease-in-out infinite!important}
@keyframes rsvpMarkBreathe{0%,100%{box-shadow:0 0 0 0 rgba(164,129,76,0)}50%{box-shadow:0 0 0 12px rgba(164,129,76,.055)}}
@keyframes rsvpMarkBreatheSoft{0%,100%{box-shadow:0 0 0 0 rgba(82,73,64,0)}50%{box-shadow:0 0 0 10px rgba(82,73,64,.04)}}

@media(max-width:900px) and (min-width:681px){
  .rsvp-form-layout{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:42px}
  .rsvp-form-head h2{font-size:clamp(2.8rem,5.2vw,4.8rem)!important}
  .rsvp-form-head::after{right:-21px}
  .rsvp-form-body{column-gap:22px}
  .accept-only{gap:18px!important}
}

/* Mobile: keep the response visually HORIZONTAL without crushing usability.
   The heading becomes a compact horizontal masthead and the fields use a 2-col grid. */
@media(max-width:680px){
  .rsvp-section.has-answer .rsvp-paper{
    padding:72px 16px 46px!important;min-height:100svh!important;
  }
  .rsvp-section.has-answer .rsvp-form{width:100%!important}
  .rsvp-form-layout{display:block;min-height:0}
  .rsvp-form-head{
    display:grid!important;
    grid-template-columns:54px minmax(0,1fr)!important;
    column-gap:14px!important;
    align-items:start!important;
    padding:18px 4px 22px!important;
    margin:0 0 18px!important;
  }
  .rsvp-form-head::before{left:4px;width:calc(100% - 8px)!important}
  .rsvp-form-head::after{display:none}
  .rsvp-back{grid-column:1/-1;margin:0 0 18px!important;font-size:.49rem!important}
  .rsvp-response-mark{grid-column:1;grid-row:2;width:48px!important;height:48px!important;margin:2px 0 0!important}
  .rsvp-response-heading{grid-column:2;grid-row:2;min-width:0}
  .rsvp-response-heading>small{font-size:.51rem!important;letter-spacing:.17em!important;margin:0 0 6px!important}
  .rsvp-form-head h2{
    font-size:clamp(2.05rem,9.6vw,3rem)!important;line-height:.87!important;
    margin:0 0 .7rem!important;max-width:none!important;
  }
  .rsvp-response-copy{font-size:.78rem!important;line-height:1.45!important;max-width:100%!important}
  .rsvp-response-rule{grid-column:1/-1;margin:18px 0 0!important}
  .rsvp-form-body{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    column-gap:14px!important;row-gap:14px!important;padding:6px 4px 0!important;
  }
  .rsvp-form-body .field{padding:.72rem 0 .62rem!important}
  .rsvp-form-body .field>span{font-size:.39rem!important;letter-spacing:.13em!important;margin-bottom:.42rem!important}
  .rsvp-form-body .field input,
  .rsvp-form-body .field textarea,
  .rsvp-form-body .field select{font-size:1rem!important;line-height:1.3!important}
  .field-name{grid-column:1!important;grid-row:1!important}
  .accept-only{grid-column:2!important;grid-row:1!important;display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  .field-message{grid-column:1!important;grid-row:2!important}
  .field-message textarea{min-height:58px!important}
  .rsvp-submit-wrap{grid-column:2!important;grid-row:2!important;display:flex!important;gap:0!important;align-self:end!important}
  .rsvp-submit-wrap .submit-rsvp{min-height:62px!important;font-size:.47rem!important;letter-spacing:.14em!important;padding:0 12px!important}
  .rsvp-submit-wrap .demo-note{font-size:.38rem!important;line-height:1.35!important;margin-top:8px!important;text-align:left!important}

  .rsvp-form.response-no .rsvp-form-body{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr)!important}
  .rsvp-form.response-no .field-name{grid-column:1!important;grid-row:1!important}
  .rsvp-form.response-no .field-message{grid-column:2!important;grid-row:1!important}
  .rsvp-form.response-no .rsvp-submit-wrap{grid-column:1/-1!important;grid-row:2!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:14px!important;align-items:center!important}
  .rsvp-form.response-no .rsvp-submit-wrap .demo-note{margin:0!important}

  .rsvp-response-aura{width:82vw;right:-36%;top:46%;opacity:.5}
  .rsvp-response-trace i:nth-child(1){left:28%;top:18%}
  .rsvp-response-trace i:nth-child(2){left:35%;top:58%}
  .rsvp-response-trace i:nth-child(3){left:20%;bottom:7%}
  .rsvp-form.response-enter .rsvp-form-head{animation:rsvpHeadMobile .64s cubic-bezier(.18,.78,.2,1) both}
  .rsvp-form.response-enter .rsvp-form-body{animation:rsvpBodyMobile .68s .08s cubic-bezier(.18,.78,.2,1) both}
  @keyframes rsvpHeadMobile{from{opacity:0;transform:translate3d(-28px,0,0)}to{opacity:1;transform:none}}
  @keyframes rsvpBodyMobile{from{opacity:0;transform:translate3d(28px,0,0)}to{opacity:1;transform:none}}
}

@media(max-width:390px){
  .rsvp-section.has-answer .rsvp-paper{padding-left:13px!important;padding-right:13px!important}
  .rsvp-form-head{grid-template-columns:46px minmax(0,1fr)!important;column-gap:10px!important}
  .rsvp-response-mark{width:42px!important;height:42px!important}
  .rsvp-form-head h2{font-size:8.9vw!important}
  .rsvp-response-copy{font-size:.72rem!important}
  .rsvp-form-body{column-gap:10px!important}
  .rsvp-submit-wrap .submit-rsvp{font-size:.43rem!important;letter-spacing:.1em!important}
}

@media(prefers-reduced-motion:reduce){
  .rsvp-form.response-enter .rsvp-form-head,
  .rsvp-form.response-enter .rsvp-form-body,
  .rsvp-form.response-enter .rsvp-response-aura,
  .rsvp-form.response-enter .rsvp-response-trace i,
  .rsvp-form.response-enter .field-name,
  .rsvp-form.response-enter .accept-only,
  .rsvp-form.response-enter .field-message,
  .rsvp-form.response-enter .rsvp-submit-wrap,
  .rsvp-form.response-enter .rsvp-response-mark,
  .rsvp-form.response-yes.active .rsvp-response-mark,
  .rsvp-form.response-no.active .rsvp-response-mark,
  .rsvp-form.response-enter .submit-rsvp::before{
    animation:none!important;opacity:1!important;transform:none!important;
  }
  .rsvp-form-head::after{opacity:1!important;transform:none!important}
  .rsvp-response-trace i{transform:none!important}
}


/* ============================================================
   12.6.6 — TRUE FULL-WIDTH HORIZONTAL RESPONSE STATES
   Fixes the selected RSVP view being compressed into the left side.
   ============================================================ */

/* Selected states use the whole viewport rather than the old 980px stationery measure. */
.rsvp-section.has-answer .rsvp-paper{
  padding:clamp(82px,8vh,108px) clamp(42px,5vw,96px) clamp(52px,6vh,78px)!important;
  display:grid!important;
  align-content:center!important;
}
.rsvp-section.has-answer .rsvp-form{
  width:min(1600px,100%)!important;
  max-width:none!important;
  margin:0 auto!important;
}
.rsvp-section.has-answer .rsvp-date-side{display:none!important}
.rsvp-section.has-answer .rsvp-paper-accent{
  left:clamp(42px,5vw,96px)!important;
  right:auto!important;
}
.rsvp-section.has-answer .rsvp-monogram{
  right:clamp(42px,5vw,96px)!important;
  left:auto!important;
}

/* Real horizontal split: narrative left, fields right. */
.rsvp-form-layout{
  width:100%!important;
  min-height:calc(100svh - clamp(180px,20vh,240px))!important;
  display:grid!important;
  grid-template-columns:minmax(360px,.76fr) minmax(650px,1.42fr)!important;
  gap:clamp(54px,5.2vw,104px)!important;
  align-items:center!important;
}
.rsvp-form-head{
  align-self:center!important;
  padding:clamp(18px,2.6vh,32px) clamp(20px,2vw,34px) clamp(18px,2.6vh,32px) 0!important;
  margin:0!important;
}
.rsvp-form-head::after{
  right:calc(clamp(54px,5.2vw,104px) * -.5)!important;
  top:2%!important;bottom:2%!important;
}
.rsvp-back{
  margin:0 0 clamp(24px,3.2vh,38px)!important;
  font-size:.55rem!important;
  letter-spacing:.16em!important;
}
.rsvp-response-mark{
  width:58px!important;height:58px!important;
  margin-bottom:clamp(16px,2vh,22px)!important;
}
.rsvp-response-heading>small{
  display:block!important;
  margin:0 0 .7rem!important;
  font-size:.62rem!important;
  letter-spacing:.22em!important;
}
.rsvp-form-head h2{
  max-width:540px!important;
  font-size:clamp(3rem,4.15vw,5.35rem)!important;
  line-height:.88!important;
  letter-spacing:-.045em!important;
  margin:.2rem 0 .95rem!important;
  text-wrap:balance!important;
}
.rsvp-response-copy{
  max-width:480px!important;
  font-size:clamp(.92rem,1vw,1.06rem)!important;
  line-height:1.6!important;
}
.rsvp-response-rule{margin-top:clamp(24px,3vh,34px)!important}

/* YES = three fields across row one; message + action across row two. */
.rsvp-form-body{
  display:grid!important;
  grid-template-columns:minmax(180px,1fr) minmax(120px,.62fr) minmax(180px,.88fr)!important;
  grid-template-rows:auto auto!important;
  column-gap:clamp(22px,2.2vw,42px)!important;
  row-gap:clamp(24px,3vh,36px)!important;
  align-content:center!important;
  padding:clamp(20px,2.4vh,34px) 0!important;
  min-width:0!important;
}
.rsvp-form-body .field{
  min-width:0!important;
  padding:.9rem 0 .72rem!important;
}
.rsvp-form-body .field>span{
  font-size:.55rem!important;
  letter-spacing:.17em!important;
  line-height:1.35!important;
  min-height:1.4em!important;
}
.rsvp-form-body .field input,
.rsvp-form-body .field textarea,
.rsvp-form-body .field select{
  font-size:clamp(1.05rem,1.28vw,1.42rem)!important;
  line-height:1.3!important;
}
.field-name{grid-column:1!important;grid-row:1!important}
.rsvp-form.response-yes .accept-only{display:contents!important}
.rsvp-form.response-yes .accept-only.hidden{display:none!important}
.rsvp-form.response-yes .accept-only .field:nth-child(1){grid-column:2!important;grid-row:1!important}
.rsvp-form.response-yes .accept-only .field:nth-child(2){grid-column:3!important;grid-row:1!important}
.rsvp-form.response-yes .field-message{grid-column:1 / span 2!important;grid-row:2!important}
.rsvp-form.response-yes .field-message textarea{min-height:64px!important;max-height:86px!important}
.rsvp-form.response-yes .rsvp-submit-wrap{
  grid-column:3!important;grid-row:2!important;
  display:flex!important;flex-direction:column!important;justify-content:flex-end!important;
  align-self:stretch!important;
}
.rsvp-form.response-yes .submit-rsvp{min-height:68px!important}

/* NO = a single clean horizontal row across the right side. */
.rsvp-form.response-no .rsvp-form-body{
  grid-template-columns:minmax(190px,.8fr) minmax(260px,1.2fr) minmax(210px,.9fr)!important;
  grid-template-rows:auto!important;
  align-items:end!important;
}
.rsvp-form.response-no .accept-only{display:none!important}
.rsvp-form.response-no .field-name{grid-column:1!important;grid-row:1!important}
.rsvp-form.response-no .field-message{grid-column:2!important;grid-row:1!important}
.rsvp-form.response-no .field-message textarea{min-height:64px!important;max-height:86px!important}
.rsvp-form.response-no .rsvp-submit-wrap{
  grid-column:3!important;grid-row:1!important;
  display:flex!important;flex-direction:column!important;justify-content:flex-end!important;
  gap:0!important;align-self:stretch!important;
}
.rsvp-form.response-no .submit-rsvp{min-height:68px!important}
.rsvp-submit-wrap .demo-note{
  margin-top:10px!important;
  font-size:.47rem!important;
  line-height:1.4!important;
  max-width:260px!important;
}

/* Keep decorative effects across the whole surface instead of the old left panel. */
.rsvp-response-aura{
  width:min(42vw,680px)!important;
  right:1vw!important;
  top:50%!important;
}
.rsvp-response-trace i:nth-child(1){left:42%!important;right:2%!important;top:18%!important}
.rsvp-response-trace i:nth-child(2){left:48%!important;right:5%!important;top:52%!important}
.rsvp-response-trace i:nth-child(3){left:39%!important;right:1%!important;bottom:12%!important}

/* More deliberate reveal: the selected state opens outward horizontally. */
.rsvp-form.response-enter .rsvp-form-layout{animation:rsvpResponseCanvasIn .55s ease both}
.rsvp-form.response-enter .rsvp-form-head{animation:rsvpHeadWideIn .72s cubic-bezier(.18,.78,.2,1) both!important}
.rsvp-form.response-enter .rsvp-form-body{animation:rsvpBodyWideIn .78s .06s cubic-bezier(.18,.78,.2,1) both!important}
.rsvp-form.response-enter .rsvp-response-heading{animation:rsvpHeadingReveal .7s .12s cubic-bezier(.2,.8,.2,1) both}
.rsvp-form.response-enter .field-name{animation:rsvpFieldWideIn .52s .22s ease both!important}
.rsvp-form.response-enter .accept-only .field:nth-child(1){animation:rsvpFieldWideIn .52s .29s ease both!important}
.rsvp-form.response-enter .accept-only .field:nth-child(2){animation:rsvpFieldWideIn .52s .36s ease both!important}
.rsvp-form.response-enter .field-message{animation:rsvpFieldWideIn .52s .43s ease both!important}
.rsvp-form.response-enter .rsvp-submit-wrap{animation:rsvpFieldWideIn .52s .50s ease both!important}
@keyframes rsvpResponseCanvasIn{from{opacity:.2}to{opacity:1}}
@keyframes rsvpHeadWideIn{from{opacity:0;transform:translate3d(-70px,0,0)}to{opacity:1;transform:none}}
@keyframes rsvpBodyWideIn{from{opacity:0;transform:translate3d(76px,0,0)}to{opacity:1;transform:none}}
@keyframes rsvpHeadingReveal{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes rsvpFieldWideIn{from{opacity:0;transform:translate3d(24px,10px,0)}to{opacity:1;transform:none}}

/* Tablet: still horizontal, just tighter. */
@media(max-width:1100px) and (min-width:681px){
  .rsvp-section.has-answer .rsvp-paper{padding-left:38px!important;padding-right:38px!important}
  .rsvp-form-layout{
    grid-template-columns:minmax(300px,.72fr) minmax(520px,1.28fr)!important;
    gap:38px!important;
  }
  .rsvp-form-head::after{right:-19px!important}
  .rsvp-form-head h2{font-size:clamp(2.7rem,4.6vw,4.5rem)!important}
  .rsvp-form-body{column-gap:18px!important}
  .rsvp-form-body .field input,.rsvp-form-body .field textarea,.rsvp-form-body .field select{font-size:1.06rem!important}
}

/* Mobile: horizontal masthead + two-column field rows, not a giant vertical headline. */
@media(max-width:680px){
  .rsvp-section.has-answer .rsvp-paper{
    padding:72px 18px 38px!important;
    display:block!important;
  }
  .rsvp-section.has-answer .rsvp-paper-accent{left:18px!important;top:27px!important}
  .rsvp-section.has-answer .rsvp-monogram{right:18px!important;top:27px!important}
  .rsvp-form-layout{
    min-height:0!important;
    display:block!important;
  }
  .rsvp-form-head{
    display:grid!important;
    grid-template-columns:48px minmax(0,1fr)!important;
    column-gap:12px!important;
    align-items:start!important;
    padding:16px 2px 20px!important;
    margin:0 0 16px!important;
  }
  .rsvp-form-head::after{display:none!important}
  .rsvp-back{grid-column:1/-1!important;margin:0 0 16px!important;font-size:.47rem!important}
  .rsvp-response-mark{
    grid-column:1!important;grid-row:2!important;
    width:44px!important;height:44px!important;margin:2px 0 0!important;
  }
  .rsvp-response-heading{grid-column:2!important;grid-row:2!important;min-width:0!important}
  .rsvp-response-heading>small{font-size:.48rem!important;letter-spacing:.16em!important;margin:0 0 5px!important}
  .rsvp-form-head h2{
    font-size:clamp(2rem,8.6vw,2.8rem)!important;
    line-height:.91!important;
    max-width:12ch!important;
    margin:0 0 .55rem!important;
  }
  .rsvp-response-copy{font-size:.76rem!important;line-height:1.45!important;max-width:100%!important}
  .rsvp-response-rule{grid-column:1/-1!important;margin:16px 0 0!important}

  .rsvp-form-body{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-rows:auto auto auto!important;
    column-gap:12px!important;row-gap:12px!important;
    padding:4px 2px 0!important;
  }
  .rsvp-form-body .field{padding:.65rem 0 .55rem!important}
  .rsvp-form-body .field>span{font-size:.38rem!important;letter-spacing:.11em!important;min-height:auto!important}
  .rsvp-form-body .field input,.rsvp-form-body .field textarea,.rsvp-form-body .field select{font-size:.96rem!important}

  .rsvp-form.response-yes .field-name{grid-column:1!important;grid-row:1!important}
  .rsvp-form.response-yes .accept-only{display:contents!important}
  .rsvp-form.response-yes .accept-only .field:nth-child(1){grid-column:2!important;grid-row:1!important}
  .rsvp-form.response-yes .accept-only .field:nth-child(2){grid-column:1!important;grid-row:2!important}
  .rsvp-form.response-yes .field-message{grid-column:2!important;grid-row:2!important}
  .rsvp-form.response-yes .rsvp-submit-wrap{grid-column:1/-1!important;grid-row:3!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,.9fr)!important;gap:12px!important;align-items:center!important}
  .rsvp-form.response-yes .rsvp-submit-wrap .demo-note{margin:0!important}

  .rsvp-form.response-no .rsvp-form-body{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)!important;grid-template-rows:auto auto!important}
  .rsvp-form.response-no .field-name{grid-column:1!important;grid-row:1!important}
  .rsvp-form.response-no .field-message{grid-column:2!important;grid-row:1!important}
  .rsvp-form.response-no .rsvp-submit-wrap{grid-column:1/-1!important;grid-row:2!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,.9fr)!important;gap:12px!important;align-items:center!important}
  .rsvp-form.response-no .rsvp-submit-wrap .demo-note{margin:0!important}
  .rsvp-submit-wrap .submit-rsvp{min-height:58px!important;font-size:.46rem!important;letter-spacing:.13em!important;padding:0 14px!important}
  .rsvp-submit-wrap .demo-note{font-size:.36rem!important;line-height:1.35!important}

  .rsvp-response-aura{width:90vw!important;right:-48%!important;top:48%!important;opacity:.45!important}
  .rsvp-form.response-enter .rsvp-form-head{animation:rsvpHeadWideMobile .58s cubic-bezier(.18,.78,.2,1) both!important}
  .rsvp-form.response-enter .rsvp-form-body{animation:rsvpBodyWideMobile .62s .05s cubic-bezier(.18,.78,.2,1) both!important}
  @keyframes rsvpHeadWideMobile{from{opacity:0;transform:translate3d(-24px,0,0)}to{opacity:1;transform:none}}
  @keyframes rsvpBodyWideMobile{from{opacity:0;transform:translate3d(24px,0,0)}to{opacity:1;transform:none}}
}

@media(max-width:380px){
  .rsvp-section.has-answer .rsvp-paper{padding-left:14px!important;padding-right:14px!important}
  .rsvp-form-head{grid-template-columns:42px minmax(0,1fr)!important;column-gap:9px!important}
  .rsvp-response-mark{width:39px!important;height:39px!important}
  .rsvp-form-head h2{font-size:8.2vw!important}
  .rsvp-response-copy{font-size:.7rem!important}
  .rsvp-form-body{column-gap:9px!important}
  .rsvp-submit-wrap .submit-rsvp{font-size:.42rem!important;letter-spacing:.09em!important}
}


/* ============================================================
   12.6.7 — BALANCED EDITORIAL RESPONSE LAYOUT
   Selected RSVP states use a composed statement + form-panel design.
   ============================================================ */
.rsvp-section.has-answer .rsvp-paper{
  padding:clamp(82px,8vh,104px) clamp(34px,4.6vw,88px) clamp(46px,5.5vh,68px)!important;
  display:grid!important;
  align-content:center!important;
}
.rsvp-section.has-answer .rsvp-form{
  width:100%!important;
  max-width:1520px!important;
  margin:0 auto!important;
}
.rsvp-section.has-answer .rsvp-ghost-word{
  opacity:.035!important;
  transform:translate3d(-2%,4%,0) scale(.92)!important;
}
.rsvp-section.has-answer .rsvp-question-rule{opacity:.22!important}

.rsvp-section.has-answer .rsvp-form-layout{
  width:100%!important;
  min-height:min(690px,calc(100svh - 160px))!important;
  display:grid!important;
  grid-template-columns:minmax(300px,.82fr) minmax(560px,1.38fr)!important;
  gap:clamp(42px,4.8vw,86px)!important;
  align-items:center!important;
  max-width:1480px!important;
  margin:0 auto!important;
}

/* Left statement: tighter hierarchy, wider lines, no word-by-word tower. */
.rsvp-section.has-answer .rsvp-form-head{
  position:relative!important;
  align-self:center!important;
  display:block!important;
  padding:clamp(18px,2.4vh,30px) clamp(8px,1vw,16px) clamp(18px,2.4vh,30px) 0!important;
  margin:0!important;
  max-width:520px!important;
}
.rsvp-section.has-answer .rsvp-form-head::after{
  content:""!important;
  position:absolute!important;
  top:5%!important;bottom:5%!important;
  right:calc(clamp(42px,4.8vw,86px) * -.5)!important;
  width:1px!important;
  background:linear-gradient(180deg,transparent,rgba(151,121,82,.30) 16%,rgba(151,121,82,.30) 84%,transparent)!important;
  opacity:1!important;
}
.rsvp-section.has-answer .rsvp-back{
  display:inline-flex!important;
  align-items:center!important;
  margin:0 0 clamp(30px,4vh,46px)!important;
  font-size:.52rem!important;
  letter-spacing:.18em!important;
  color:#786d61!important;
}
.rsvp-section.has-answer .rsvp-response-mark{
  width:54px!important;height:54px!important;
  margin:0 0 18px!important;
  border-width:1px!important;
}
.rsvp-section.has-answer .rsvp-response-heading>small{
  display:block!important;
  margin:0 0 .72rem!important;
  font-size:.58rem!important;
  letter-spacing:.22em!important;
}
.rsvp-section.has-answer .rsvp-form-head h2{
  width:auto!important;
  max-width:9.4ch!important;
  margin:0 0 1rem!important;
  font-size:clamp(3.25rem,4.45vw,5.5rem)!important;
  line-height:.91!important;
  letter-spacing:-.043em!important;
  text-wrap:balance!important;
}
.rsvp-section.has-answer .rsvp-response-copy{
  max-width:430px!important;
  margin:0!important;
  font-size:clamp(.88rem,.95vw,1.02rem)!important;
  line-height:1.65!important;
  color:#73695f!important;
}
.rsvp-section.has-answer .rsvp-response-rule{
  width:min(260px,78%)!important;
  margin-top:clamp(24px,3vh,34px)!important;
}

/* Right side becomes one refined stationery panel rather than loose fields. */
.rsvp-section.has-answer .rsvp-form-body{
  position:relative!important;
  display:grid!important;
  min-width:0!important;
  align-content:center!important;
  padding:clamp(30px,3.4vw,52px)!important;
  background:rgba(255,253,248,.48)!important;
  border:1px solid rgba(139,110,73,.17)!important;
  box-shadow:0 24px 70px rgba(84,64,40,.055),inset 0 1px rgba(255,255,255,.72)!important;
  column-gap:clamp(24px,2.5vw,42px)!important;
  row-gap:clamp(22px,2.4vh,32px)!important;
  overflow:hidden!important;
}
.rsvp-section.has-answer .rsvp-form-body::before{
  content:""!important;
  position:absolute!important;
  left:0;right:0;top:0;height:2px!important;
  background:linear-gradient(90deg,transparent,rgba(166,132,85,.50),transparent)!important;
  transform-origin:left center!important;
}
.rsvp-section.has-answer .rsvp-form-body::after{
  content:""!important;
  position:absolute!important;
  width:260px;height:260px!important;
  right:-120px;bottom:-150px!important;
  border:1px solid rgba(166,132,85,.10)!important;
  border-radius:50%!important;
  pointer-events:none!important;
}
.rsvp-section.has-answer .rsvp-form-body .field{
  margin:0!important;
  padding:.4rem 0 .68rem!important;
  min-width:0!important;
}
.rsvp-section.has-answer .rsvp-form-body .field>span{
  display:block!important;
  min-height:0!important;
  margin-bottom:.62rem!important;
  font-size:.51rem!important;
  letter-spacing:.18em!important;
  color:#8a7762!important;
}
.rsvp-section.has-answer .rsvp-form-body .field input,
.rsvp-section.has-answer .rsvp-form-body .field textarea,
.rsvp-section.has-answer .rsvp-form-body .field select{
  width:100%!important;
  font-size:clamp(1.08rem,1.22vw,1.36rem)!important;
  line-height:1.35!important;
  padding-bottom:.72rem!important;
  border-bottom-color:rgba(93,76,58,.19)!important;
}
.rsvp-section.has-answer .rsvp-form-body .field textarea{
  resize:none!important;
}

/* YES: two balanced pairs, then a composed footer. */
.rsvp-form.response-yes .rsvp-form-body{
  grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr)!important;
  grid-template-rows:auto auto auto!important;
}
.rsvp-form.response-yes .field-name{grid-column:1!important;grid-row:1!important}
.rsvp-form.response-yes .accept-only{display:contents!important}
.rsvp-form.response-yes .accept-only.hidden{display:none!important}
.rsvp-form.response-yes .accept-only .field:nth-child(1){grid-column:2!important;grid-row:1!important}
.rsvp-form.response-yes .accept-only .field:nth-child(2){grid-column:1!important;grid-row:2!important}
.rsvp-form.response-yes .field-message{grid-column:2!important;grid-row:2!important}
.rsvp-form.response-yes .field-message textarea{min-height:48px!important;max-height:70px!important}
.rsvp-form.response-yes .rsvp-submit-wrap{
  grid-column:1/-1!important;grid-row:3!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(230px,.48fr)!important;
  gap:clamp(20px,2vw,34px)!important;
  align-items:end!important;
  padding-top:clamp(8px,1vh,14px)!important;
  border-top:1px solid rgba(128,103,70,.12)!important;
}
.rsvp-form.response-yes .rsvp-submit-wrap .demo-note{
  grid-column:1!important;
  margin:0!important;
  align-self:center!important;
  max-width:340px!important;
}
.rsvp-form.response-yes .submit-rsvp{
  grid-column:2!important;
  min-height:66px!important;
  margin:0!important;
}

/* NO: name + note with a quieter, elegant action footer. */
.rsvp-form.response-no .rsvp-form-body{
  grid-template-columns:minmax(190px,.68fr) minmax(320px,1.32fr)!important;
  grid-template-rows:auto auto!important;
}
.rsvp-form.response-no .accept-only{display:none!important}
.rsvp-form.response-no .field-name{grid-column:1!important;grid-row:1!important}
.rsvp-form.response-no .field-message{grid-column:2!important;grid-row:1!important}
.rsvp-form.response-no .field-message textarea{min-height:48px!important;max-height:72px!important}
.rsvp-form.response-no .rsvp-submit-wrap{
  grid-column:1/-1!important;grid-row:2!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(230px,.48fr)!important;
  gap:clamp(20px,2vw,34px)!important;
  align-items:end!important;
  padding-top:clamp(8px,1vh,14px)!important;
  border-top:1px solid rgba(96,83,70,.12)!important;
}
.rsvp-form.response-no .rsvp-submit-wrap .demo-note{
  grid-column:1!important;
  margin:0!important;
  align-self:center!important;
  max-width:340px!important;
}
.rsvp-form.response-no .submit-rsvp{
  grid-column:2!important;
  min-height:66px!important;
  margin:0!important;
}

/* Motion: statement arrives first, form panel opens like stationery, fields follow. */
.rsvp-form.response-enter .rsvp-form-head{
  animation:rsvp1267Head .72s cubic-bezier(.18,.78,.2,1) both!important;
}
.rsvp-form.response-enter .rsvp-form-body{
  animation:rsvp1267Panel .82s .08s cubic-bezier(.16,.82,.2,1) both!important;
}
.rsvp-form.response-enter .rsvp-form-body::before{
  animation:rsvp1267Line 1s .34s cubic-bezier(.2,.76,.18,1) both!important;
}
.rsvp-form.response-enter .field-name{animation:rsvp1267Field .52s .28s ease both!important}
.rsvp-form.response-enter .accept-only .field:nth-child(1){animation:rsvp1267Field .52s .34s ease both!important}
.rsvp-form.response-enter .accept-only .field:nth-child(2){animation:rsvp1267Field .52s .40s ease both!important}
.rsvp-form.response-enter .field-message{animation:rsvp1267Field .52s .46s ease both!important}
.rsvp-form.response-enter .rsvp-submit-wrap{animation:rsvp1267Field .52s .54s ease both!important}
.rsvp-form.response-yes.response-enter .rsvp-response-mark{animation:rsvpMarkPop .62s .14s cubic-bezier(.18,1.15,.3,1) both!important}
.rsvp-form.response-no.response-enter .rsvp-response-mark{animation:rsvp1267MarkSoft .58s .14s ease both!important}
@keyframes rsvp1267Head{from{opacity:0;transform:translate3d(-38px,0,0)}to{opacity:1;transform:none}}
@keyframes rsvp1267Panel{from{opacity:0;clip-path:inset(0 0 0 100%);transform:translate3d(26px,0,0)}to{opacity:1;clip-path:inset(0);transform:none}}
@keyframes rsvp1267Line{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes rsvp1267Field{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}
@keyframes rsvp1267MarkSoft{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}

/* Mid-size desktop/tablet: keep the editorial split but avoid tiny fields. */
@media(max-width:1180px) and (min-width:681px){
  .rsvp-section.has-answer .rsvp-paper{padding-left:30px!important;padding-right:30px!important}
  .rsvp-section.has-answer .rsvp-form-layout{
    grid-template-columns:minmax(260px,.72fr) minmax(500px,1.28fr)!important;
    gap:38px!important;
  }
  .rsvp-section.has-answer .rsvp-form-head::after{right:-19px!important}
  .rsvp-section.has-answer .rsvp-form-head h2{font-size:clamp(2.75rem,4.3vw,4.3rem)!important;max-width:9.2ch!important}
  .rsvp-section.has-answer .rsvp-form-body{padding:30px!important;column-gap:24px!important}
  .rsvp-section.has-answer .rsvp-form-body .field input,
  .rsvp-section.has-answer .rsvp-form-body .field textarea,
  .rsvp-section.has-answer .rsvp-form-body .field select{font-size:1.02rem!important}
}

/* Mobile: compact horizontal response masthead + paired field layout. */
@media(max-width:680px){
  .rsvp-section.has-answer .rsvp-paper{
    padding:72px 16px 34px!important;
    min-height:100svh!important;
  }
  .rsvp-section.has-answer .rsvp-form{width:100%!important;max-width:none!important}
  .rsvp-section.has-answer .rsvp-form-layout{
    display:block!important;
    min-height:0!important;
    max-width:none!important;
  }
  .rsvp-section.has-answer .rsvp-form-head{
    display:grid!important;
    grid-template-columns:44px minmax(0,1fr)!important;
    column-gap:12px!important;
    row-gap:0!important;
    padding:10px 2px 20px!important;
    max-width:none!important;
  }
  .rsvp-section.has-answer .rsvp-form-head::after{display:none!important}
  .rsvp-section.has-answer .rsvp-back{grid-column:1/-1!important;margin:0 0 15px!important;font-size:.45rem!important}
  .rsvp-section.has-answer .rsvp-response-mark{
    grid-column:1!important;grid-row:2!important;
    width:42px!important;height:42px!important;margin:2px 0 0!important;
  }
  .rsvp-section.has-answer .rsvp-response-heading{grid-column:2!important;grid-row:2!important}
  .rsvp-section.has-answer .rsvp-response-heading>small{font-size:.45rem!important;letter-spacing:.16em!important;margin-bottom:4px!important}
  .rsvp-section.has-answer .rsvp-form-head h2{
    max-width:14ch!important;
    font-size:clamp(1.9rem,8vw,2.55rem)!important;
    line-height:.94!important;
    margin:0 0 .5rem!important;
  }
  .rsvp-section.has-answer .rsvp-response-copy{font-size:.73rem!important;line-height:1.45!important;max-width:95%!important}
  .rsvp-section.has-answer .rsvp-response-rule{grid-column:1/-1!important;width:100%!important;margin-top:14px!important}

  .rsvp-section.has-answer .rsvp-form-body{
    padding:18px 16px 16px!important;
    column-gap:12px!important;
    row-gap:10px!important;
  }
  .rsvp-section.has-answer .rsvp-form-body .field{padding:.44rem 0 .5rem!important}
  .rsvp-section.has-answer .rsvp-form-body .field>span{font-size:.36rem!important;letter-spacing:.11em!important;margin-bottom:.42rem!important}
  .rsvp-section.has-answer .rsvp-form-body .field input,
  .rsvp-section.has-answer .rsvp-form-body .field textarea,
  .rsvp-section.has-answer .rsvp-form-body .field select{font-size:.91rem!important;padding-bottom:.56rem!important}

  .rsvp-form.response-yes .rsvp-form-body{
    grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)!important;
    grid-template-rows:auto auto auto!important;
  }
  .rsvp-form.response-yes .field-name{grid-column:1!important;grid-row:1!important}
  .rsvp-form.response-yes .accept-only{display:contents!important}
  .rsvp-form.response-yes .accept-only .field:nth-child(1){grid-column:2!important;grid-row:1!important}
  .rsvp-form.response-yes .accept-only .field:nth-child(2){grid-column:1!important;grid-row:2!important}
  .rsvp-form.response-yes .field-message{grid-column:2!important;grid-row:2!important}
  .rsvp-form.response-yes .rsvp-submit-wrap,
  .rsvp-form.response-no .rsvp-submit-wrap{
    grid-column:1/-1!important;
    display:grid!important;
    grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)!important;
    gap:10px!important;
    align-items:center!important;
    padding-top:10px!important;
  }
  .rsvp-form.response-yes .rsvp-submit-wrap{grid-row:3!important}
  .rsvp-form.response-no .rsvp-form-body{
    grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)!important;
    grid-template-rows:auto auto!important;
  }
  .rsvp-form.response-no .field-name{grid-column:1!important;grid-row:1!important}
  .rsvp-form.response-no .field-message{grid-column:2!important;grid-row:1!important}
  .rsvp-form.response-no .rsvp-submit-wrap{grid-row:2!important}
  .rsvp-form.response-yes .rsvp-submit-wrap .demo-note,
  .rsvp-form.response-no .rsvp-submit-wrap .demo-note{grid-column:1!important;margin:0!important;font-size:.34rem!important;line-height:1.35!important}
  .rsvp-form.response-yes .submit-rsvp,
  .rsvp-form.response-no .submit-rsvp{grid-column:2!important;min-height:54px!important;font-size:.42rem!important;letter-spacing:.11em!important;padding:0 12px!important}
  .rsvp-response-aura{opacity:.25!important}
}

@media(max-width:390px){
  .rsvp-section.has-answer .rsvp-paper{padding-left:12px!important;padding-right:12px!important}
  .rsvp-section.has-answer .rsvp-form-body{padding:16px 12px!important;column-gap:9px!important}
  .rsvp-section.has-answer .rsvp-form-head h2{font-size:7.7vw!important}
}

@media(prefers-reduced-motion:reduce){
  .rsvp-form.response-enter .rsvp-form-head,
  .rsvp-form.response-enter .rsvp-form-body,
  .rsvp-form.response-enter .rsvp-form-body::before,
  .rsvp-form.response-enter .field-name,
  .rsvp-form.response-enter .accept-only .field,
  .rsvp-form.response-enter .field-message,
  .rsvp-form.response-enter .rsvp-submit-wrap,
  .rsvp-form.response-enter .rsvp-response-mark{animation:none!important;opacity:1!important;transform:none!important;clip-path:none!important}
}


/* ============================================================
   12.6.8 — VIEWPORT-FIT RESPONSE + ZERO DEAD RUNWAY
   Desktop selected states occupy exactly one viewport; mobile hugs
   its content. The next sequence begins immediately after the form.
   ============================================================ */

/* DESKTOP / TABLET SELECTED STATE */
@media(min-width:681px){
  .rsvp-section.has-answer{
    height:100svh!important;
    min-height:720px!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    background:#fbf8f2!important;
  }
  .rsvp-section.has-answer .rsvp-stage{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    height:100%!important;
    min-height:720px!important;
    overflow:hidden!important;
    background:#fbf8f2!important;
  }
  .rsvp-section.has-answer .rsvp-paper{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:clamp(86px,10vh,112px) clamp(44px,5.2vw,102px) clamp(44px,5.5vh,64px)!important;
    overflow:hidden!important;
    display:block!important;
  }
  .rsvp-section.has-answer .rsvp-form{
    width:100%!important;
    height:100%!important;
    max-width:1600px!important;
    margin:0 auto!important;
  }
  .rsvp-section.has-answer .rsvp-form-layout{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-width:none!important;
    margin:0!important;
    display:grid!important;
    grid-template-columns:minmax(330px,.72fr) minmax(650px,1.28fr)!important;
    gap:clamp(56px,5.5vw,108px)!important;
    align-items:center!important;
  }

  /* Statement fills its half vertically instead of sitting at the top. */
  .rsvp-section.has-answer .rsvp-form-head{
    height:min(620px,74vh)!important;
    max-width:520px!important;
    padding:clamp(28px,3.8vh,46px) clamp(20px,2vw,34px) clamp(28px,3.8vh,46px) 0!important;
    margin:0!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-self:center!important;
  }
  .rsvp-section.has-answer .rsvp-back{
    position:absolute!important;
    left:0!important;
    top:0!important;
    margin:0!important;
  }
  .rsvp-section.has-answer .rsvp-response-mark{
    flex:0 0 auto!important;
  }
  .rsvp-section.has-answer .rsvp-form-head h2{
    max-width:9.6ch!important;
    font-size:clamp(3.35rem,4.4vw,5.65rem)!important;
    line-height:.9!important;
  }
  .rsvp-section.has-answer .rsvp-response-copy{
    max-width:440px!important;
  }

  /* The form itself becomes a proper full-height stationery panel. */
  .rsvp-section.has-answer .rsvp-form-body{
    align-self:center!important;
    width:100%!important;
    height:min(620px,74vh)!important;
    min-height:510px!important;
    padding:clamp(38px,4vw,62px)!important;
    align-content:center!important;
    border:1px solid rgba(139,110,73,.20)!important;
    background:
      linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,.12)),
      rgba(255,253,248,.55)!important;
    box-shadow:0 30px 90px rgba(84,64,40,.07),inset 0 1px rgba(255,255,255,.76)!important;
  }
  .rsvp-section.has-answer .rsvp-form-body .field{
    padding:.72rem 0 .88rem!important;
  }
  .rsvp-section.has-answer .rsvp-form-body .field>span{
    margin-bottom:.72rem!important;
  }
  .rsvp-section.has-answer .rsvp-form-body .field input,
  .rsvp-section.has-answer .rsvp-form-body .field textarea,
  .rsvp-section.has-answer .rsvp-form-body .field select{
    font-size:clamp(1.12rem,1.28vw,1.42rem)!important;
  }
  .rsvp-form.response-yes .rsvp-form-body{
    grid-template-rows:1fr 1fr auto!important;
  }
  .rsvp-form.response-no .rsvp-form-body{
    grid-template-rows:1fr auto!important;
  }
  .rsvp-form.response-yes .rsvp-submit-wrap,
  .rsvp-form.response-no .rsvp-submit-wrap{
    align-self:end!important;
  }
  .rsvp-section.has-answer .rsvp-to-finale{display:none!important}
}

/* Keep laptops from creating a second viewport just because the form is tall. */
@media(min-width:681px) and (max-height:760px){
  .rsvp-section.has-answer{min-height:660px!important;height:100svh!important;overflow:auto!important}
  .rsvp-section.has-answer .rsvp-stage{min-height:660px!important}
  .rsvp-section.has-answer .rsvp-paper{
    min-height:660px!important;
    padding-top:76px!important;
    padding-bottom:34px!important;
  }
  .rsvp-section.has-answer .rsvp-form-head,
  .rsvp-section.has-answer .rsvp-form-body{
    height:min(540px,72vh)!important;
    min-height:460px!important;
  }
  .rsvp-section.has-answer .rsvp-form-head h2{font-size:clamp(3rem,4vw,4.7rem)!important}
  .rsvp-section.has-answer .rsvp-form-body{padding:30px 38px!important}
}

/* MOBILE SELECTED STATE — no artificial viewport spacer. */
@media(max-width:680px){
  .rsvp-section.has-answer{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    background:#fbf8f2!important;
  }
  .rsvp-section.has-answer .rsvp-stage{
    position:relative!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  .rsvp-section.has-answer .rsvp-paper{
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    padding:72px 18px 28px!important;
    overflow:hidden!important;
  }
  .rsvp-section.has-answer .rsvp-form,
  .rsvp-section.has-answer .rsvp-form-layout{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-width:none!important;
  }
  .rsvp-section.has-answer .rsvp-form-head{
    margin-bottom:14px!important;
  }
  .rsvp-section.has-answer .rsvp-form-body{
    height:auto!important;
    min-height:0!important;
    padding:18px 16px 16px!important;
  }
  .rsvp-section.has-answer .rsvp-to-finale{display:none!important}
}

/* Small phones: prioritize touch size and remove cramped paired controls. */
@media(max-width:460px){
  .rsvp-section.has-answer .rsvp-paper{padding:68px 14px 24px!important}
  .rsvp-section.has-answer .rsvp-form-head{
    grid-template-columns:42px minmax(0,1fr)!important;
    column-gap:10px!important;
  }
  .rsvp-section.has-answer .rsvp-form-body{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-auto-rows:auto!important;
    gap:8px!important;
    padding:16px 14px!important;
  }
  .rsvp-form.response-yes .field-name,
  .rsvp-form.response-yes .accept-only .field:nth-child(1),
  .rsvp-form.response-yes .accept-only .field:nth-child(2),
  .rsvp-form.response-yes .field-message,
  .rsvp-form.response-no .field-name,
  .rsvp-form.response-no .field-message{
    grid-column:1!important;
    grid-row:auto!important;
  }
  .rsvp-form.response-yes .accept-only{display:contents!important}
  .rsvp-form.response-yes .rsvp-submit-wrap,
  .rsvp-form.response-no .rsvp-submit-wrap{
    grid-column:1!important;
    grid-row:auto!important;
    display:flex!important;
    flex-direction:column-reverse!important;
    gap:10px!important;
    padding-top:12px!important;
  }
  .rsvp-form.response-yes .submit-rsvp,
  .rsvp-form.response-no .submit-rsvp{
    width:100%!important;
    min-height:58px!important;
  }
  .rsvp-form.response-yes .rsvp-submit-wrap .demo-note,
  .rsvp-form.response-no .rsvp-submit-wrap .demo-note{
    width:100%!important;
    max-width:none!important;
  }
}
