.fe-body--invite .fe-header,
.fe-body--invite .fe-footer,
.fe-body--invite .fe-pbar { display: none; }
.fe-invite-top {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin: 0;
  padding: 1rem 6vw 0;
  background: transparent;
  position: relative;
  z-index: 3;
}
.fe-invite-top a {
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .55;
}
.fe-invite-foot {
  text-align: center;
  padding: 1.2rem 1rem 2.2rem;
  font-size: .8rem;
}
.fe-invite-foot a { color: inherit; }

.fe-inv {
  --inv-bg: #fbf7f4;
  --inv-ink: #3d3536;
  --inv-accent: #c9a4a8;
  --inv-on-accent: #3d3536;
  --inv-card: #ffffff;
  min-height: 100vh;
  margin: 0;
  padding: 0 0 4rem;
  background:
    radial-gradient(80rem 36rem at 50% -10%, color-mix(in srgb, var(--inv-accent) 26%, transparent), transparent 62%),
    var(--inv-bg);
  color: var(--inv-ink);
  font-size: 1.12rem;
  line-height: 1.55;
}
.fe-inv--classic { --inv-bg:#fbf7f4; --inv-ink:#3d3536; --inv-accent:#c9a4a8; --inv-on-accent:#3d3536; --inv-card:#ffffff; font-family: "Cormorant Garamond", Georgia, serif; }
.fe-inv--garden { --inv-bg:#f3f6f2; --inv-ink:#2e3530; --inv-accent:#8fa392; --inv-on-accent:#2e3530; --inv-card:#ffffff; font-family: "Cormorant Garamond", Georgia, serif; }
.fe-inv--midnight { --inv-bg:#1c1b20; --inv-ink:#f4f0eb; --inv-accent:#e4d4c6; --inv-on-accent:#2a2623; --inv-card:#27262c; font-family: "Playfair Display", Georgia, serif; }
.fe-inv--blush { --inv-bg:#fbf6f7; --inv-ink:#45383c; --inv-accent:#d2a8b3; --inv-on-accent:#45383c; --inv-card:#ffffff; font-family: "Cormorant Garamond", Georgia, serif; }
.fe-inv--champagne { --inv-bg:#faf7f4; --inv-ink:#3d3634; --inv-accent:#d0bbb4; --inv-on-accent:#3d3634; --inv-card:#fffefc; font-family: "Playfair Display", Georgia, serif; }
.fe-inv--ocean { --inv-bg:#f3f7f8; --inv-ink:#2c3a3e; --inv-accent:#8aadc0; --inv-on-accent:#2c3a3e; --inv-card:#ffffff; }
.fe-inv--rustica { --inv-bg:#f6f3ee; --inv-ink:#3a342f; --inv-accent:#b9a39a; --inv-on-accent:#3a342f; --inv-card:#fffcf8; font-family: "Cormorant Garamond", Georgia, serif; }
.fe-inv--modern { --inv-bg:#f6f5f3; --inv-ink:#2a2927; --inv-accent:#6b6864; --inv-on-accent:#ffffff; --inv-card:#ffffff; }
.fe-inv--party { --inv-bg:#fff6f3; --inv-ink:#3a2e2c; --inv-accent:#e8a99a; --inv-on-accent:#3a2e2c; --inv-card:#ffffff; }
.fe-inv--formal { --inv-bg:#f4f6f8; --inv-ink:#2a3036; --inv-accent:#5c7384; --inv-on-accent:#ffffff; --inv-card:#ffffff; }
.fe-inv--kids { --inv-bg:#f8f5fb; --inv-ink:#3a3540; --inv-accent:#c9b3d6; --inv-on-accent:#3a3540; --inv-card:#ffffff; }
.fe-inv--loft { --inv-bg:#f5f3f0; --inv-ink:#322e2b; --inv-accent:#b5a8a0; --inv-on-accent:#322e2b; --inv-card:#fffcfa; }
.fe-inv--classic h1, .fe-inv--garden h1, .fe-inv--blush h1, .fe-inv--rustica h1,
.fe-inv--classic .fe-inv__sub, .fe-inv--garden .fe-inv__sub, .fe-inv--blush .fe-inv__sub, .fe-inv--rustica .fe-inv__sub,
.fe-inv--classic .fe-inv__date, .fe-inv--garden .fe-inv__date, .fe-inv--blush .fe-inv__date, .fe-inv--rustica .fe-inv__date,
.fe-inv--classic .fe-inv__welcome, .fe-inv--garden .fe-inv__welcome, .fe-inv--blush .fe-inv__welcome, .fe-inv--rustica .fe-inv__welcome,
.fe-inv--classic .fe-inv__clock strong, .fe-inv--garden .fe-inv__clock strong, .fe-inv--blush .fe-inv__clock strong, .fe-inv--rustica .fe-inv__clock strong {
  font-family: "Cormorant Garamond", Georgia, serif;
}
.fe-inv--midnight h1, .fe-inv--champagne h1,
.fe-inv--midnight .fe-inv__sub, .fe-inv--champagne .fe-inv__sub,
.fe-inv--midnight .fe-inv__date, .fe-inv--champagne .fe-inv__date,
.fe-inv--midnight .fe-inv__welcome, .fe-inv--champagne .fe-inv__welcome,
.fe-inv--midnight .fe-inv__clock strong, .fe-inv--champagne .fe-inv__clock strong {
  font-family: "Playfair Display", Georgia, serif;
}
.fe-inv--modern h1, .fe-inv--formal h1, .fe-inv--ocean h1, .fe-inv--party h1, .fe-inv--kids h1, .fe-inv--loft h1 {
  font-family: Manrope, sans-serif;
  font-weight: 600;
  letter-spacing: -.03em;
}

.fe-inv__sheet {
  max-width: none;
  margin: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}
.fe-inv__hero {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-height: calc(100vh - 3rem);
  padding: 8vh 6vw 4rem;
  overflow: hidden;
}
.fe-inv__orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, color-mix(in srgb, var(--inv-accent) 42%, transparent), transparent 70%);
  animation: fe-inv-float 14s ease-in-out infinite;
}
.fe-inv__orb--a { width: 22rem; height: 22rem; top: -6rem; left: -4rem; }
.fe-inv__orb--b { width: 16rem; height: 16rem; right: -3rem; top: 18%; animation-delay: -4s; }
.fe-inv__orb--c { width: 12rem; height: 12rem; bottom: 8%; left: 18%; animation-delay: -8s; opacity: .7; }
@keyframes fe-inv-float {
  0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
  50% { transform: translate3d(18px, -22px, 0) scale(1.06); }
}
.fe-inv__kicker {
  margin: 0 0 .85rem;
  color: var(--inv-accent);
  letter-spacing: .22em;
  text-transform: uppercase;
  font-size: .72rem;
  font-weight: 500;
}
.fe-inv h1 {
  margin: 0 0 .45rem;
  font-size: clamp(2.8rem, 9vw, 6.2rem);
  font-weight: 500;
  line-height: 1.02;
  max-width: 16ch;
}
.fe-inv__hero h1 i {
  display: block;
  margin: .15rem 0;
  font-size: .38em;
  font-style: italic;
  letter-spacing: .18em;
  color: var(--inv-accent);
}
.fe-inv__sub {
  margin: 0;
  font-style: italic;
  font-size: 1.2rem;
  opacity: .78;
}
.fe-inv__mark {
  display: block;
  width: 2.75rem;
  height: 1px;
  margin: 1.35rem auto 1.2rem;
  background: var(--inv-accent);
  position: relative;
}
.fe-inv__mark::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  border: 1px solid var(--inv-accent);
  background: var(--inv-card);
  transform: translate(-50%, -50%) rotate(45deg);
}
.fe-inv__date {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 1.7rem);
  letter-spacing: .04em;
  line-height: 1.25;
}
.fe-inv__date em {
  display: block;
  margin-bottom: .2rem;
  font-style: normal;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--inv-accent);
}
.fe-inv__count, .fe-inv__to {
  margin: .45rem 0 0;
  color: var(--inv-accent);
  font-size: .95rem;
  letter-spacing: .04em;
}
.fe-inv__clock {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: .7rem;
  margin: 1.6rem 0 0;
  overflow-x: auto;
  max-width: 100%;
}
.fe-inv__clock > div {
  flex: 0 0 auto;
  min-width: 4.6rem;
  padding: .7rem .85rem .6rem;
  border-radius: 18px;
  background: color-mix(in srgb, var(--inv-card) 72%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--inv-accent) 28%, transparent);
}
.fe-inv__clock strong {
  display: block;
  font-size: clamp(1.6rem, 4vw, 2.2rem);
  font-weight: 500;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.fe-inv__clock span {
  display: block;
  margin-top: .28rem;
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--inv-accent);
}
.fe-inv__cue {
  margin-top: auto;
  padding-top: 2.4rem;
  color: var(--inv-accent);
  text-decoration: none;
  font-size: 1.2rem;
  animation: fe-inv-cue 1.8s ease-in-out infinite;
}
@keyframes fe-inv-cue {
  0%, 100% { transform: translateY(0); opacity: .4; }
  50% { transform: translateY(8px); opacity: 1; }
}
.fe-inv__jump {
  position: sticky;
  top: 0;
  z-index: 4;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: .85rem;
  padding: .75rem 6vw;
  overflow-x: auto;
  background: color-mix(in srgb, var(--inv-bg) 86%, transparent);
  backdrop-filter: blur(14px);
}
.fe-inv__jump a {
  flex: 0 0 auto;
  color: inherit;
  text-decoration: none;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: .62;
}
.fe-inv__jump a:hover { opacity: 1; color: var(--inv-accent); }
.fe-inv__story,
.fe-inv__places,
.fe-inv__program,
.fe-inv__notes,
.fe-inv__rsvp {
  width: min(72rem, calc(100% - 12vw));
  margin-left: auto;
  margin-right: auto;
}
.fe-inv__welcome {
  max-width: 36rem;
  margin: 0 auto;
  text-align: center;
  font-style: italic;
  font-size: clamp(1.25rem, 2.4vw, 1.7rem);
  line-height: 1.55;
}
.fe-inv__reveal {
  opacity: 0;
  transform: translateY(28px);
}
.fe-inv__reveal.is-in {
  opacity: 1;
  transform: none;
  transition: opacity .8s ease, transform .8s ease;
}
.fe-inv h2 {
  margin: 0 0 .4rem;
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--inv-accent);
}
.fe-inv__places,
.fe-inv__notes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.4rem;
  margin-top: 4.5rem;
  text-align: center;
}
.fe-inv__places--one,
.fe-inv__notes--one { grid-template-columns: 1fr; }
.fe-inv__places p, .fe-inv__notes p { margin: 0; }
.fe-inv__spot,
.fe-inv__note {
  display: grid;
  justify-items: center;
  gap: .45rem;
  padding: 2rem 1.6rem;
  color: inherit;
  text-decoration: none;
  border-radius: 28px;
  background: color-mix(in srgb, var(--inv-card) 78%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--inv-accent) 22%, transparent);
}
.fe-inv__spot em {
  font-style: normal;
  font-size: .68rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--inv-accent);
}
.fe-inv__ico,
.fe-inv__swatches {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  width: 3rem;
  height: 3rem;
  color: var(--inv-accent);
}
.fe-inv__ico svg { width: 2rem; height: 2rem; }
.fe-inv__swatches { width: auto; }
.fe-inv__swatches i {
  width: .85rem;
  height: .85rem;
  border-radius: 50%;
  background: var(--inv-accent);
}
.fe-inv__swatches i:nth-child(2) { background: color-mix(in srgb, var(--inv-accent) 70%, #fff); }
.fe-inv__swatches i:nth-child(3) { background: color-mix(in srgb, var(--inv-accent) 40%, var(--inv-ink)); }
.fe-inv__swatches i:nth-child(4) { background: color-mix(in srgb, var(--inv-accent) 25%, #fff); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--inv-accent) 40%, transparent); }
.fe-inv__story { margin-top: 4.2rem; }
.fe-inv__program { margin-top: 4.5rem; text-align: center; }
.fe-inv__line,
.fe-inv__timing {
  list-style: none;
  margin: 2rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  gap: 1rem;
  overflow-x: auto;
}
.fe-inv__line li,
.fe-inv__timing li {
  position: relative;
  flex: 1 0 8.5rem;
  display: grid;
  justify-items: center;
  gap: .7rem;
  min-width: 8.5rem;
}
.fe-inv__line li + li::before {
  content: "";
  position: absolute;
  left: -50%;
  top: 2.55rem;
  width: 100%;
  height: 1px;
  background: color-mix(in srgb, var(--inv-accent) 45%, transparent);
}
.fe-inv__line i,
.fe-inv__timing i {
  width: .7rem;
  height: .7rem;
  border-radius: 50%;
  background: var(--inv-card);
  box-shadow: 0 0 0 2px var(--inv-accent);
  z-index: 1;
}
.fe-inv__timing strong {
  color: var(--inv-accent);
  font-weight: 600;
  font-size: 1.15rem;
  font-variant-numeric: tabular-nums;
}
.fe-inv__timing span { max-width: 12ch; }
.fe-inv__rsvp {
  margin-top: 4.8rem;
  padding: 2.2rem 0 0;
  text-align: center;
}
.fe-inv__form {
  display: grid;
  gap: .45rem;
  margin-top: .75rem;
  text-align: left;
}
.fe-inv__form > p {
  margin: .45rem 0 0;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--inv-accent);
}
.fe-inv__form label { display: grid; gap: .3rem; }
.fe-inv__form input[type="text"],
.fe-inv__form textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid color-mix(in srgb, var(--inv-accent) 40%, transparent);
  background: transparent;
  color: inherit;
  font: inherit;
  padding: .35rem 0;
  border-radius: 0;
}
.fe-inv__choices {
  display: flex;
  flex-wrap: nowrap;
  gap: .5rem;
  overflow-x: auto;
  margin: 0 0 .35rem;
}
.fe-inv__choices label {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: .35rem;
  flex: 0 0 auto;
  white-space: nowrap;
  padding: .35rem .7rem;
  border: 1px solid color-mix(in srgb, var(--inv-accent) 35%, transparent);
  border-radius: 999px;
  font-size: .92rem;
}
.fe-inv__btn {
  appearance: none;
  justify-self: center;
  border: 1px solid var(--inv-accent);
  border-radius: 999px;
  padding: .55rem 1.4rem;
  margin-top: .6rem;
  background: transparent;
  color: var(--inv-ink);
  font: inherit;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .78rem;
  cursor: pointer;
}
.fe-inv__btn:disabled { opacity: .45; cursor: default; }
.fe-inv__ok { color: var(--inv-accent); font-weight: 600; }
.fe-inv__hint { margin: .35rem 0 0; font-size: .9rem; opacity: .65; }
.fe-inv__hint--foot {
  width: min(72rem, calc(100% - 12vw));
  margin: 3rem auto 0;
  text-align: center;
}
.fe-inv__demo-cta {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 1.2rem;
  margin: 1.6rem 0 0;
  overflow-x: auto;
}
.fe-inv__demo-cta a {
  color: var(--inv-accent);
  text-decoration: none;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .72rem;
}

.fe-invites-land { padding-bottom: 3rem; }
.fe-invites-hero { padding: 2.5rem 0 1.5rem; }
.fe-invites-kicker {
  margin: 0 0 .4rem;
  color: #e11d6a;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .8rem;
}
.fe-invites-hero h1 {
  margin: 0 0 .6rem;
  max-width: none;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.fe-invites-lead { max-width: 40rem; margin: 0 0 1.1rem; }
.fe-invites-hero__act {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: .65rem;
  overflow-x: auto;
}
.fe-invites-head {
  display: grid;
  gap: .45rem;
  margin: 0 0 1rem;
}
.fe-invites-head__row,
.fe-invites-kinds {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: .65rem;
  min-width: 0;
}
.fe-invites-head__row {
  justify-content: space-between;
}
.fe-invites-head h2 {
  margin: 0;
  flex: 0 0 auto;
}
.fe-invites-head__row .fe-btn {
  flex: 0 0 auto;
  white-space: nowrap;
}
.fe-invites-kinds {
  flex: 1 1 auto;
  justify-content: flex-start;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.fe-invites-kinds::-webkit-scrollbar {
  display: none;
}
.fe-invites-kinds .fe-lk-chip {
  appearance: none;
  -webkit-appearance: none;
  flex: 0 0 auto;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
  hyphens: none;
  border: 1px solid rgba(51, 66, 56, .18);
  background: #fff;
  color: inherit;
  cursor: pointer;
}
.fe-invites-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: .85rem;
}
.fe-invites-card {
  display: block;
  padding: 1rem 1rem 1.1rem;
  border-radius: 18px;
  background: var(--inv-bg, #fff);
  color: var(--inv-ink, inherit);
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(36, 43, 38, .06);
}
.fe-invites-card__swatch {
  display: block;
  height: 4.5rem;
  margin: 0 0 .7rem;
  border-radius: 12px;
  background:
    linear-gradient(145deg, var(--inv-accent) 0%, color-mix(in srgb, var(--inv-accent) 28%, var(--inv-bg)) 52%, var(--inv-bg) 100%);
}
.fe-invites-card strong { display: block; }
.fe-invites-card em { font-style: normal; font-size: .8rem; color: var(--inv-accent); }
.fe-invites-card p { margin: .35rem 0; font-size: .9rem; }
.fe-invites-card__names { font-size: 1.05rem; }
.fe-invites-calc, .fe-invites-feat, .fe-invites-order { margin-top: 2.2rem; }
.fe-invites-feat ul { margin: 0; padding-left: 1.1rem; display: grid; gap: .4rem; }
.fe-invites-form { max-width: 28rem; display: grid; gap: .7rem; }
.fe-invites-total { margin: 1rem 0 0; font-size: 1.1rem; }
.fe-lk-chip.is-on { background: #fde8f1; color: #e11d6a; }

.fe-invite-theme {
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: .35rem .8rem;
  background: var(--inv-bg);
  color: var(--inv-ink);
  box-shadow: inset 0 0 0 2px var(--inv-accent);
  white-space: nowrap;
  cursor: pointer;
  font: inherit;
  flex: 0 0 auto;
}
.fe-invite-presets .fe-invite-theme {
  min-height: 2.1rem;
}
.fe-invite-theme.is-on { background: var(--inv-accent); color: var(--inv-on-accent, #fff); }
.fe-invite-timing-row {
  display: flex;
  flex-wrap: nowrap;
  gap: .5rem;
}
.fe-invite-timing-row input:first-child { flex: 0 0 5.5rem; }
.fe-invite-timing-row input:last-child { flex: 1 1 auto; }

@media (max-width: 720px) {
  .fe-invites-head__row {
    flex-wrap: wrap;
  }
  .fe-invites-kinds {
    flex-basis: 100%;
  }
  .fe-inv__hero { padding: 6vh 1.25rem 3rem; min-height: 92vh; }
  .fe-inv__places, .fe-inv__notes {
    grid-template-columns: 1fr;
    width: min(72rem, calc(100% - 2.4rem));
    gap: .9rem;
  }
  .fe-inv__story, .fe-inv__program, .fe-inv__rsvp {
    width: min(72rem, calc(100% - 2.4rem));
  }
  .fe-inv__line, .fe-inv__timing { padding-bottom: .4rem; }
  .fe-invite-timing-row {
    flex-wrap: wrap;
  }
  .fe-invite-timing-row input:first-child,
  .fe-invite-timing-row input:last-child {
    flex: 1 1 100%;
    min-width: 0;
    max-width: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .fe-inv__orb, .fe-inv__cue { animation: none; }
  .fe-inv__reveal { opacity: 1; transform: none; }
}
