/*
 * Invitation -> RSVP flow refinements.
 *
 * Template preview typography is deliberately generic: titles keep whole words,
 * then the shared JavaScript fitter reduces type size when a translated title is
 * taller than its available copy area. New templates inherit this behavior.
 */
.lt-template-card__copy strong {
  max-width: 100%;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  text-wrap: balance;
}

.lt-template-card__copy .lt-template-card__eyebrow,
.lt-template-card__copy > small {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

.pv-rsvp-setting {
  display: grid;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--pv-line);
  border-radius: 14px;
  background: #f8f6f0;
}

.pv-rsvp-setting__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.pv-rsvp-setting__head > span:first-child {
  display: grid;
  gap: 3px;
}

.pv-rsvp-setting__head small,
.pv-photo-recommendation {
  color: #607069;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
}

.pv-rsvp-deadline[hidden] {
  display: none !important;
}

.pv-focal-control input[type="range"] {
  width: 100%;
}

.pv-focal-control small {
  display: flex !important;
  justify-content: space-between;
  margin-top: 3px !important;
  font-size: 10px !important;
}

/* One fully covered photo layer with independent, symmetrical x/y focal points. */
.pv-invitation-photo {
  background-image:
    linear-gradient(rgba(0, 0, 0, var(--invite-overlay)), rgba(0, 0, 0, var(--invite-overlay))),
    var(--invite-image);
  background-position: center, var(--invite-x, 50%) var(--invite-y, 50%);
  background-repeat: no-repeat, no-repeat;
  background-size: cover, cover;
}

.pv-final-step {
  display: grid;
  gap: 12px;
  padding: 24px;
  border-radius: 22px;
  background: #173b32;
  color: #fff;
}

.pv-final-step h2,
.pv-final-step p {
  margin: 0;
  color: inherit;
}

.pv-final-step h2 {
  font-size: clamp(28px, 3vw, 38px);
}

.pv-final-step p {
  color: rgba(255, 255, 255, .78);
  line-height: 1.55;
}

.pv-final-step__actions {
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  gap: 10px;
  margin-top: 4px;
}

.pv-final-step__actions .lt-button {
  width: 100%;
}

.pv-save-guidance {
  margin: 2px 0 0;
  padding: 11px 13px;
  border-radius: 10px;
  background: #fff1cf;
  color: #6d4b12 !important;
  font-weight: 750;
}

.pv-save-guidance[hidden] {
  display: none;
}

.pv-event-send-link {
  background: #173b32;
  border-radius: 999px;
  color: #fff !important;
  font-size: 13px;
  font-weight: 800;
  padding: 10px 14px;
  text-decoration: none !important;
}

.pv-saved-preview-note {
  display: block;
  margin-top: 12px;
  color: #68746f;
  line-height: 1.45;
}

/* A single coordinated envelope timeline: flap, extraction, rotation and zoom overlap. */
.pv-envelope.is-opening .pv-envelope__flap {
  animation: pv-flap-flight 2.15s cubic-bezier(.22, .72, .18, 1) both;
  z-index: 2;
}

.pv-envelope.is-opening .pv-envelope__back,
.pv-envelope.is-opening .pv-envelope__front {
  animation: pv-envelope-recede 2.15s cubic-bezier(.22, .72, .18, 1) both;
}

.pv-envelope.is-opening .pv-envelope__card {
  width: min(600px, 88vw);
  visibility: visible;
  animation: pv-card-flight 2.15s cubic-bezier(.18, .76, .18, 1) both;
}

.pv-envelope.is-opening > button {
  animation: pv-envelope-cta-away .28s ease both;
  pointer-events: none;
}

.pv-envelope.is-open .pv-envelope__card,
.pv-envelope.is-reduced-open .pv-envelope__card {
  width: min(600px, 88vw);
}

@keyframes pv-flap-flight {
  0% { transform: rotateX(0); opacity: 1; filter: none; }
  36% { transform: rotateX(178deg); opacity: 1; filter: none; }
  72% { transform: rotateX(178deg); opacity: .5; filter: blur(.5px); }
  100% { transform: rotateX(178deg); opacity: .08; filter: blur(2px); }
}

@keyframes pv-envelope-recede {
  0%, 42% { opacity: 1; filter: none; transform: scale(1); }
  100% { opacity: .08; filter: blur(2px); transform: scale(.96); }
}

@keyframes pv-card-flight {
  0% {
    top: 71%;
    opacity: 0;
    transform: translate(-50%, -50%) rotate(90deg) scale(.43);
    z-index: 3;
  }
  10% {
    top: 69%;
    opacity: 1;
    transform: translate(-50%, -50%) rotate(90deg) scale(.45);
    z-index: 3;
  }
  38% {
    top: 39%;
    opacity: 1;
    transform: translate(-50%, -50%) rotate(86deg) scale(.6);
    z-index: 6;
  }
  68% {
    top: 31%;
    opacity: 1;
    transform: translate(-50%, -50%) rotate(44deg) scale(.77);
    z-index: 8;
  }
  86% {
    top: 43%;
    opacity: 1;
    transform: translate(-50%, -50%) rotate(12deg) scale(.93);
    z-index: 9;
  }
  100% {
    top: 49%;
    opacity: 1;
    transform: translate(-50%, -50%) rotate(0) scale(1);
    filter: drop-shadow(0 24px 34px rgba(0, 0, 0, .2));
    z-index: 9;
  }
}

@keyframes pv-envelope-cta-away {
  to { opacity: 0; transform: translate(-50%, 8px); }
}

/* Local recipient links are visible only when the simulated send completes. */
.pv-local-links {
  width: min(820px, 100%);
  margin: 28px auto 0;
  padding: 24px;
  border: 1px solid var(--pv-line);
  border-radius: 22px;
  background: #fff;
  color: #1f342f;
  text-align: left;
}

.pv-local-links h2,
.pv-local-links p {
  margin-top: 0;
}

.pv-local-links > p {
  color: #64716c;
}

.pv-local-links__list {
  display: grid;
  gap: 10px;
}

.pv-local-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border-radius: 13px;
  background: #f5f2eb;
}

.pv-local-link strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.pv-copy-link {
  border: 1px solid #bfc9c4;
  border-radius: 999px;
  background: transparent;
  color: #173b32;
  cursor: pointer;
  font-weight: 750;
  padding: 10px 13px;
}

.pv-copy-link.is-copied {
  border-color: #2f7059;
  background: #e5f1e9;
}

.pv-private-links-panel {
  width: 100%;
  margin: 0 0 24px;
  padding: 22px;
}

.pv-private-links-panel > h2 {
  margin-bottom: 7px;
  font-size: clamp(28px, 3vw, 40px);
}

.pv-private-links-panel > p:not(.lt-kicker) {
  margin-bottom: 18px;
  font-size: 14px;
}

.pv-private-links-panel .pv-local-links__list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.pv-private-links-panel .pv-local-link {
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 66px;
  padding: 11px 12px;
  border: 1px solid #e2ded5;
  border-radius: 15px;
  background: #f7f5f0;
}

.pv-private-links-panel .pv-local-link > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.pv-private-links-panel .pv-local-link strong {
  overflow: hidden;
  font-size: 14px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pv-private-links-panel .pv-local-link small {
  color: #64716c;
  font-size: 11px;
}

.pv-private-links-panel .pv-copy-link {
  min-height: 32px;
  padding: 6px 10px;
  background: #fff;
  font-size: 11px;
  line-height: 1;
  white-space: nowrap;
}

@media (max-width: 1050px) {
  .pv-private-links-panel .pv-local-links__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .pv-private-links-panel {
    padding: 18px;
  }

  .pv-private-links-panel .pv-local-links__list {
    grid-template-columns: 1fr;
  }
}


/* Guest-facing page: no site navigation, no account chrome, one linear task. */
.lt-public-invitation {
  background: radial-gradient(circle at 18% 10%, rgba(221, 199, 151, .22), transparent 27%), #f7f3eb;
}

.lt-guest-page {
  min-height: 100vh;
  padding: 18px 0 70px;
}

.lt-guest-page__brand {
  display: flex;
  justify-content: center;
  margin-bottom: 8px;
}

.lt-guest-page__brand .lt-brand {
  pointer-events: none;
}

.lt-guest-page__brand .lt-brand__mark {
  width: 82px;
}

.lt-guest-page .pv-envelope-stage {
  width: min(900px, calc(100% - 28px));
  min-height: 850px;
  margin: 0 auto;
  padding: 24px;
  border-radius: 30px;
  background: radial-gradient(circle at 25% 12%, #fff, #e4e0d8);
}

.lt-guest-page .pv-envelope {
  width: min(660px, 94%);
}

.lt-guest-page .pv-envelope__card {
  pointer-events: auto;
}

.lt-guest-recipient {
  margin: 0;
  color: #61706a;
  text-align: center;
}

.lt-public-invitation:not(.pv-public-open) [data-public-rsvp] {
  display: none;
}

.lt-guest-rsvp {
  width: min(680px, calc(100% - 28px));
  margin: 34px auto 0;
  padding: clamp(24px, 5vw, 46px);
  border: 1px solid var(--pv-line);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 24px 65px rgba(28, 42, 36, .12);
}

.lt-guest-rsvp h1 {
  margin: 4px 0 12px;
  font-size: clamp(34px, 7vw, 56px);
}

.lt-guest-rsvp__intro,
.lt-guest-rsvp__deadline,
.lt-guest-rsvp__privacy {
  color: #64716c;
  line-height: 1.55;
}

.lt-guest-rsvp__deadline {
  padding: 10px 12px;
  border-radius: 10px;
  background: #f5f2eb;
  font-weight: 700;
}

.lt-guest-rsvp__expired {
  padding: 16px;
  border-radius: 12px;
  background: #f5f2eb;
  color: #624f32;
  font-weight: 750;
}

.lt-rsvp-form {
  display: grid;
  gap: 20px;
  margin-top: 26px;
}

.lt-rsvp-form fieldset {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
}

.lt-rsvp-form legend {
  margin-bottom: 10px;
  font-family: var(--lt-serif);
  font-size: 23px;
}

.lt-rsvp-form .lt-choice {
  display: block;
  cursor: pointer;
}

.lt-rsvp-form .lt-choice input {
  position: absolute;
  opacity: 0;
}

.lt-rsvp-form .lt-choice span {
  display: flex;
  align-items: center;
  min-height: 54px;
  padding: 13px 16px;
  border: 1px solid #c8d0cc;
  border-radius: 13px;
  background: #faf9f6;
  font-weight: 750;
  transition: .18s ease;
}

.lt-rsvp-form .lt-choice input:checked + span {
  border-color: #173b32;
  background: #173b32;
  color: #fff;
}

.lt-rsvp-form .lt-choice input:focus-visible + span {
  outline: 3px solid rgba(22, 117, 209, .28);
  outline-offset: 2px;
}

.lt-rsvp-followup {
  display: grid;
  gap: 18px;
  padding: 18px;
  border-radius: 16px;
  background: #f5f2eb;
}

.lt-rsvp-followup[hidden],
.lt-rsvp-plus-name[hidden] {
  display: none !important;
}

.lt-guest-rsvp textarea {
  resize: vertical;
}

.lt-rsvp-current {
  margin: 18px 0 0;
  padding: 13px 15px;
  border-left: 3px solid #2f7059;
  background: #eef5f0;
  color: #2c5948;
}

.pv-response-list .pv-plus-one-name {
  grid-column: 1 / -1;
}

@media (max-width: 700px) {
  .pv-final-step__actions,
  .pv-local-link {
    grid-template-columns: 1fr;
  }

  .pv-local-link .lt-button,
  .pv-copy-link {
    width: 100%;
  }

  .lt-guest-page {
    padding-top: 8px;
  }

  .lt-guest-page .pv-envelope-stage,
  .lt-guest-page .pv-envelope-stage.is-invitation-open {
    width: calc(100% - 12px);
    min-height: 690px;
    padding: 16px 6px;
    border-radius: 20px;
  }

  .lt-guest-page .pv-envelope {
    height: 570px;
  }

  .lt-guest-page .pv-envelope.is-opening .pv-envelope__card,
  .lt-guest-page .pv-envelope.is-open .pv-envelope__card {
    width: min(440px, 94vw);
  }

  .lt-guest-rsvp {
    width: calc(100% - 20px);
    margin-top: 20px;
    border-radius: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pv-envelope.is-opening .pv-envelope__flap,
  .pv-envelope.is-opening .pv-envelope__back,
  .pv-envelope.is-opening .pv-envelope__front,
  .pv-envelope.is-opening .pv-envelope__card,
  .pv-envelope.is-opening > button {
    animation: none !important;
  }
}

.pv-guest-experience.is-rsvp-disabled,
.pv-guest-experience.is-preview-open {
  grid-template-columns: 1fr;
}

.pv-guest-experience:not(.is-preview-open) > .pv-demo-rsvp {
  display: none;
}

.pv-guest-experience.is-preview-open > .pv-demo-rsvp {
  width: min(680px, 100%);
  margin: 0 auto;
}

.pv-demo-rsvp .lt-button--primary {
  background: #173b32;
  color: #fff;
}

.pv-demo-rsvp [data-preview-feedback] {
  min-height: 24px;
  margin: 0;
  color: #2c664b;
  font-weight: 700;
}

/* Elegant continuous envelope preview — v0.14.17 */
.pv-envelope-stage {
  isolation: isolate;
  min-height: 900px;
  border: 1px solid rgba(112, 91, 61, .1);
  background:
    radial-gradient(circle at 18% 12%, rgba(255,255,255,.96) 0 7%, transparent 31%),
    radial-gradient(circle at 82% 84%, rgba(205,190,165,.3), transparent 34%),
    linear-gradient(145deg, #f7f4ee 0%, #e8e3d9 54%, #ded8cc 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 28px 70px rgba(43, 47, 42, .1);
}

.pv-envelope {
  width: min(740px, 100%);
  height: 720px;
  margin: 18px auto 0;
  perspective: 1700px;
  isolation: isolate;
}

.pv-envelope__back,
.pv-envelope__front,
.pv-envelope__flap {
  left: 50%;
  right: auto;
  bottom: 52px;
  width: min(690px, 94vw);
  height: 355px;
  border: 1px solid rgba(107, 82, 51, .15);
  border-radius: 18px;
  transform: translateX(-50%);
  backface-visibility: hidden;
}

.pv-envelope__back {
  z-index: 1;
  overflow: hidden;
  background:
    linear-gradient(145deg, rgba(255,255,255,.72), transparent 44%),
    linear-gradient(160deg, #f4ede3, #d9cbbb);
  box-shadow: 0 34px 65px rgba(37, 34, 29, .24), inset 0 0 0 1px rgba(255,255,255,.55);
}

.pv-envelope__back::before {
  content: "";
  position: absolute;
  inset: 7px 8px auto;
  height: 226px;
  clip-path: polygon(0 0, 100% 0, 50% 88%);
  background:
    radial-gradient(circle at 20% 24%, rgba(80,113,101,.24) 0 2px, transparent 3px),
    radial-gradient(circle at 76% 36%, rgba(181,145,91,.24) 0 2px, transparent 3px),
    repeating-linear-gradient(135deg, rgba(255,255,255,.5) 0 7px, rgba(222,211,195,.45) 7px 9px),
    #eee5d8;
  box-shadow: inset 0 -16px 30px rgba(91, 68, 43, .08);
}

.pv-envelope__back::after {
  content: "";
  position: absolute;
  inset: 13px;
  border: 1px solid rgba(154, 122, 78, .17);
  border-radius: 12px;
  pointer-events: none;
}

.pv-envelope__front {
  z-index: 5;
  overflow: hidden;
  clip-path: polygon(0 3%, 50% 57%, 100% 3%, 100% 100%, 0 100%);
  background:
    linear-gradient(33deg, rgba(255,255,255,.58) 0 49.6%, transparent 50%),
    linear-gradient(-33deg, rgba(208,194,174,.5) 0 49.6%, transparent 50%),
    linear-gradient(145deg, #eee6da, #d5c7b6 74%);
  box-shadow: inset 0 -1px 0 rgba(109, 82, 51, .18);
}

.pv-envelope__front::after {
  content: "";
  position: absolute;
  left: 9%;
  right: 9%;
  bottom: 26px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(126,98,61,.22), transparent);
}

.pv-envelope__flap {
  z-index: 6;
  overflow: hidden;
  clip-path: polygon(0 0, 50% 64%, 100% 0);
  transform-origin: 50% 0;
  background:
    linear-gradient(145deg, rgba(255,255,255,.72), transparent 48%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.24) 0 8px, rgba(191,174,151,.12) 8px 10px),
    #e4d8c9;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

.pv-envelope__flap::after {
  content: "";
  position: absolute;
  inset: 12px 16px 62px;
  clip-path: polygon(0 0, 50% 66%, 100% 0);
  border-top: 1px solid rgba(129, 98, 59, .2);
  background: linear-gradient(180deg, rgba(255,255,255,.16), transparent);
}

.pv-envelope > button {
  z-index: 8;
  bottom: 92px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 54px;
  padding: 8px 22px 8px 9px;
  border: 1px solid rgba(255,255,255,.38);
  background: rgba(24, 63, 53, .96);
  box-shadow: 0 14px 32px rgba(24,63,53,.27), inset 0 1px 0 rgba(255,255,255,.2);
  letter-spacing: .015em;
  backdrop-filter: blur(8px);
}

.pv-envelope > button::before {
  content: "P";
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255,255,255,.52);
  border-radius: 50%;
  background: linear-gradient(145deg, #c7a76e, #9b7743);
  color: #fffaf0;
  font-family: var(--lt-serif);
  font-size: 19px;
  font-weight: 600;
  box-shadow: inset 0 0 0 3px rgba(255,255,255,.1);
}

.pv-envelope > button:hover {
  background: #103b30;
  transform: translateX(-50%) translateY(-2px);
}

.pv-envelope__card {
  left: 50%;
  top: 71%;
  bottom: auto;
  width: min(620px, 88vw);
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -50%) !important;
  transform-origin: center;
  transition: none !important;
  filter: drop-shadow(0 12px 18px rgba(0,0,0,.12));
  pointer-events: none;
  will-change: top, opacity, filter;
}

.pv-envelope__card .lt-invitation {
  width: 100%;
  transform: rotate(90deg) scale(.43);
  transform-origin: center;
  backface-visibility: hidden;
  will-change: transform;
}

.pv-envelope.is-opening .pv-envelope__flap {
  z-index: 2;
  animation: pv-elegant-flap 2.75s linear both;
}

.pv-envelope.is-opening .pv-envelope__back,
.pv-envelope.is-opening .pv-envelope__front {
  animation: pv-envelope-soft-recede 2.75s linear both;
}

.pv-envelope.is-opening .pv-envelope__card {
  width: min(620px, 88vw);
  visibility: visible;
  animation: pv-card-rise-flight 2.75s linear both;
}

.pv-envelope.is-opening .pv-envelope__card .lt-invitation {
  animation: pv-card-turn-zoom 2.75s linear both;
}

.pv-envelope.is-opening > button {
  animation: pv-elegant-cta-away .3s ease both;
  pointer-events: none;
}

.pv-envelope.is-open .pv-envelope__card,
.pv-envelope.is-reduced-open .pv-envelope__card {
  top: 49%;
  width: min(620px, 88vw);
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, -50%) !important;
  filter: drop-shadow(0 30px 42px rgba(25,28,25,.22));
  pointer-events: auto;
}

.pv-envelope.is-open .pv-envelope__card .lt-invitation,
.pv-envelope.is-reduced-open .pv-envelope__card .lt-invitation {
  transform: rotate(0) scale(1);
}

.pv-guest-experience.is-preview-opening,
.pv-guest-experience.is-preview-open {
  grid-template-columns: 1fr;
}

.pv-guest-experience.is-preview-opening > .pv-demo-rsvp {
  display: none;
}

@keyframes pv-elegant-flap {
  0% { transform: translateX(-50%) rotateX(0); opacity: 1; filter: none; }
  12% { transform: translateX(-50%) rotateX(52deg); opacity: 1; filter: none; }
  30% { transform: translateX(-50%) rotateX(150deg); opacity: 1; filter: none; }
  40% { transform: translateX(-50%) rotateX(178deg); opacity: .96; filter: none; }
  72% { transform: translateX(-50%) rotateX(178deg); opacity: .42; filter: blur(.6px); }
  100% { transform: translateX(-50%) rotateX(178deg) scale(.97); opacity: .06; filter: blur(2.4px); }
}

@keyframes pv-envelope-soft-recede {
  0%, 38% { transform: translateX(-50%) scale(1); opacity: 1; filter: none; }
  66% { transform: translateX(-50%) scale(.99); opacity: .72; filter: blur(0); }
  100% { transform: translateX(-50%) scale(.94); opacity: .06; filter: blur(2.4px); }
}

@keyframes pv-card-rise-flight {
  0% { top: 71%; opacity: 0; filter: drop-shadow(0 12px 18px rgba(0,0,0,.1)); }
  8% { top: 68%; opacity: 1; filter: drop-shadow(0 14px 20px rgba(0,0,0,.13)); }
  28% { top: 58%; opacity: 1; filter: drop-shadow(0 17px 24px rgba(0,0,0,.15)); }
  52% { top: 44%; opacity: 1; filter: drop-shadow(0 22px 30px rgba(0,0,0,.18)); }
  76% { top: 43%; opacity: 1; filter: drop-shadow(0 27px 37px rgba(0,0,0,.2)); }
  100% { top: 49%; opacity: 1; filter: drop-shadow(0 30px 42px rgba(25,28,25,.22)); }
}

@keyframes pv-card-turn-zoom {
  0% { transform: rotate(90deg) scale(.43); }
  28% { transform: rotate(90deg) scale(.53); }
  48% { transform: rotate(73deg) scale(.65); }
  70% { transform: rotate(38deg) scale(.81); }
  88% { transform: rotate(12deg) scale(.94); }
  100% { transform: rotate(0) scale(1); }
}

@keyframes pv-elegant-cta-away {
  to { opacity: 0; transform: translate(-50%, 10px) scale(.96); }
}

@media (max-width: 700px) {
  .pv-envelope-stage,
  .pv-envelope-stage.is-invitation-open,
  .lt-guest-page .pv-envelope-stage,
  .lt-guest-page .pv-envelope-stage.is-invitation-open {
    min-height: 735px;
    padding: 18px 6px;
  }

  .pv-envelope,
  .lt-guest-page .pv-envelope {
    height: 620px;
    margin-top: 8px;
  }

  .pv-envelope__back,
  .pv-envelope__front,
  .pv-envelope__flap {
    bottom: 38px;
    width: min(540px, 96vw);
    height: 285px;
    border-radius: 14px;
  }

  .pv-envelope__back::before { height: 188px; }
  .pv-envelope > button { bottom: 67px; }
  .pv-envelope__card,
  .pv-envelope.is-opening .pv-envelope__card,
  .pv-envelope.is-open .pv-envelope__card,
  .pv-envelope.is-reduced-open .pv-envelope__card,
  .lt-guest-page .pv-envelope.is-opening .pv-envelope__card,
  .lt-guest-page .pv-envelope.is-open .pv-envelope__card {
    width: min(460px, 92vw);
  }
}

@media (max-width: 430px) {
  .pv-envelope-stage,
  .pv-envelope-stage.is-invitation-open,
  .lt-guest-page .pv-envelope-stage,
  .lt-guest-page .pv-envelope-stage.is-invitation-open { min-height: 675px; }
  .pv-envelope,
  .lt-guest-page .pv-envelope { height: 565px; }
  .pv-envelope__back,
  .pv-envelope__front,
  .pv-envelope__flap { height: 245px; bottom: 36px; }
  .pv-envelope__back::before { height: 160px; }
  .pv-envelope > button { bottom: 55px; padding-right: 16px; }
  .pv-envelope__card,
  .pv-envelope.is-opening .pv-envelope__card,
  .pv-envelope.is-open .pv-envelope__card,
  .pv-envelope.is-reduced-open .pv-envelope__card { width: min(420px, 92vw); }
}

@media (prefers-reduced-motion: reduce) {
  .pv-envelope.is-opening .pv-envelope__card,
  .pv-envelope.is-opening .pv-envelope__card .lt-invitation,
  .pv-envelope.is-opening .pv-envelope__back,
  .pv-envelope.is-opening .pv-envelope__front,
  .pv-envelope.is-opening .pv-envelope__flap,
  .pv-envelope.is-opening > button { animation: none !important; }
  .pv-envelope.is-opening .pv-envelope__card { top: 49%; opacity: 1; visibility: visible; }
  .pv-envelope.is-opening .pv-envelope__card .lt-invitation { transform: rotate(0) scale(1); }
  .pv-envelope.is-opening .pv-envelope__back,
  .pv-envelope.is-opening .pv-envelope__front,
  .pv-envelope.is-opening .pv-envelope__flap { opacity: .06; }
}

/* Refined ivory envelope — v0.14.19 */
.pv-guest-experience:not(.is-preview-open) {
  grid-template-columns: 1fr;
}

.pv-envelope {
  width: min(700px, 100%);
}

.pv-envelope__back,
.pv-envelope__front,
.pv-envelope__flap {
  bottom: 64px;
  width: min(640px, 92%);
  height: 330px;
  border-color: rgba(112, 87, 56, .13);
  border-radius: 16px;
}

.pv-envelope__back {
  background: linear-gradient(155deg, #fdfbf7 0%, #eee6db 55%, #e2d7c8 100%);
  box-shadow: 0 30px 62px rgba(49, 42, 33, .2), inset 0 1px 0 rgba(255,255,255,.95);
}

.pv-envelope__back::before {
  inset: 8px 9px auto;
  height: 210px;
  background:
    radial-gradient(ellipse at 8% 15%, rgba(113,143,127,.18) 0 8%, transparent 8.5%),
    radial-gradient(ellipse at 22% 38%, rgba(188,151,130,.14) 0 7%, transparent 7.5%),
    radial-gradient(ellipse at 76% 24%, rgba(113,143,127,.15) 0 9%, transparent 9.5%),
    radial-gradient(ellipse at 92% 48%, rgba(190,158,111,.13) 0 8%, transparent 8.5%),
    linear-gradient(160deg, #f3ece3, #e8ddd0 68%, #f7f3ed);
  box-shadow: inset 0 -18px 30px rgba(91, 68, 43, .06);
}

.pv-envelope__back::after {
  inset: 12px;
  border-color: rgba(151, 119, 75, .12);
}

.pv-envelope__front {
  clip-path: polygon(0 2%, 50% 56%, 100% 2%, 100% 100%, 0 100%);
  background:
    linear-gradient(33deg, transparent 49.65%, rgba(126, 99, 66, .14) 49.9%, transparent 50.2%),
    linear-gradient(-33deg, transparent 49.65%, rgba(126, 99, 66, .14) 49.9%, transparent 50.2%),
    linear-gradient(165deg, #fdfaf4 0%, #f3ede4 58%, #e7ded2 100%);
  box-shadow: inset 0 -1px 0 rgba(109,82,51,.13), inset 0 1px 0 rgba(255,255,255,.8);
}

.pv-envelope__front::after {
  display: none;
}

.pv-envelope__flap {
  clip-path: polygon(0 0, 50% 62%, 100% 0);
  background:
    linear-gradient(145deg, rgba(255,255,255,.82), transparent 50%),
    linear-gradient(165deg, #f9f5ef, #e7ddd0 82%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.95), inset 0 -1px 0 rgba(126,98,61,.1);
}

.pv-envelope__flap::after {
  inset: 13px 18px 64px;
  border-top-color: rgba(129,98,59,.13);
  background: linear-gradient(180deg, rgba(255,255,255,.22), transparent);
}

.pv-envelope > button {
  bottom: 202px;
  justify-content: center;
  min-width: 176px;
  min-height: 50px;
  gap: 0;
  padding: 13px 25px;
  border-color: rgba(255,255,255,.3);
  background: #173f35;
  box-shadow: 0 12px 28px rgba(24,63,53,.24), inset 0 1px 0 rgba(255,255,255,.16);
}

.pv-envelope > button::before {
  content: none;
  display: none;
}

.pv-envelope > button:hover {
  background: #0f352c;
}

@media (max-width: 700px) {
  .pv-envelope__back,
  .pv-envelope__front,
  .pv-envelope__flap {
    bottom: 46px;
    width: min(540px, 95%);
    height: 270px;
  }
  .pv-envelope__back::before { height: 174px; }
  .pv-envelope > button { bottom: 154px; }
}

@media (max-width: 430px) {
  .pv-envelope__back,
  .pv-envelope__front,
  .pv-envelope__flap {
    bottom: 40px;
    height: 235px;
  }
  .pv-envelope__back::before { height: 150px; }
  .pv-envelope > button { bottom: 130px; }
}


/* Dedicated RSVP confirmation — v0.15.16 */
.lt-rsvp-confirmation-page{background:radial-gradient(circle at 18% 5%,rgba(224,196,137,.22),transparent 28rem),linear-gradient(145deg,#f8f5ee,#edf2ee)}
.lt-rsvp-confirmation{display:grid;align-content:start;min-height:100vh;padding:22px 16px 70px}
.lt-rsvp-confirmation .lt-guest-page__brand{margin-bottom:22px}
.lt-rsvp-thanks{width:min(720px,100%);margin:0 auto;padding:clamp(30px,6vw,58px);border:1px solid rgba(24,61,51,.13);border-radius:30px;background:rgba(255,255,255,.94);box-shadow:0 28px 75px rgba(28,47,39,.13);text-align:center}
.lt-rsvp-thanks__seal{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 22px;border-radius:24px;background:#1e6b56;color:#fff;box-shadow:0 15px 32px rgba(30,107,86,.23);font-size:1.65rem}
.lt-rsvp-thanks.is-not-attending .lt-rsvp-thanks__seal{background:#9b6c55;box-shadow:0 15px 32px rgba(132,85,65,.2)}
.lt-rsvp-thanks h1{max-width:610px;margin:8px auto 13px;font-size:clamp(38px,7vw,64px);line-height:.98;letter-spacing:-.04em;text-wrap:balance}
.lt-rsvp-thanks__lead{margin:0;color:#65716b;font-size:1.05rem}
.lt-rsvp-thanks__status{display:flex;align-items:center;gap:14px;margin:30px 0 15px;padding:17px 19px;border:1px solid #bddbce;border-radius:17px;background:#edf7f1;text-align:left}
.lt-rsvp-thanks.is-not-attending .lt-rsvp-thanks__status{border-color:#e0c9bd;background:#f8f0ec}
.lt-rsvp-thanks__status>span{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:13px;background:#1e6b56;color:#fff;font-weight:800}
.lt-rsvp-thanks.is-not-attending .lt-rsvp-thanks__status>span{background:#9b6c55}
.lt-rsvp-thanks__status div{display:grid;gap:3px}
.lt-rsvp-thanks__status small{color:#627169;font-size:.67rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase}
.lt-rsvp-thanks__status strong{color:#173d32;font-size:1.08rem}
.lt-rsvp-thanks__event{display:grid;gap:5px;padding:21px;border:1px solid rgba(24,61,51,.1);border-radius:17px;background:#faf8f3}
.lt-rsvp-thanks__event small{color:#8a7654;font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.lt-rsvp-thanks__event strong{font-family:var(--lt-serif);font-size:1.45rem;font-weight:500}
.lt-rsvp-thanks__event span{color:#65716b}
.lt-rsvp-thanks__note{max-width:560px;margin:22px auto;color:#65716b;line-height:1.6}
.lt-rsvp-thanks .lt-button{min-width:220px}
@media(max-width:600px){.lt-rsvp-confirmation{padding:10px 8px 30px}.lt-rsvp-thanks{padding:28px 20px;border-radius:22px}.lt-rsvp-thanks__status{align-items:flex-start}.lt-rsvp-thanks .lt-button{width:100%}}

