/* First personalization pass. Keep the reference's layout and motion runtime. */
body {
  --token-f9e6b4e9-8b96-49cd-82ea-01c022d99e9b: #355640 !important;
  --token-cb43d9d5-9a7b-422a-94e7-7335e809b21c: #25412e !important;
}

/* Match the wedding-day panel's 24px top corners at the closing edge. */
main.framer-1h5murn {
  border-bottom-left-radius: 24px;
  border-bottom-right-radius: 24px;
  z-index: 5;
}

@font-face {
  font-family: 'Fleur De Leah';
  src: url('/fleur-de-leah-regular.ttf') format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

#home h1,
footer .framer-1karpmw p {
  font-family: 'Fleur De Leah', cursive !important;
  font-weight: 400 !important;
  font-style: normal !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
}

footer .framer-1karpmw { max-width: 640px !important; }
footer .framer-1karpmw p {
  font-size: clamp(32px, 4vw, 48px) !important;
  line-height: 1.25 !important;
}

@media (max-width: 767px) {
  #home h1 {
    white-space: pre-line !important;
  }
}

#home .framer-10w4xhs-container,
#__framer-badge-container,
#rsvp,
#dress-code,
#good-to-know,
.framer-6fhfre-container,
.framer-7tr108-container,
header .framer-113y5j0-container,
a[href$="#rsvp"] {
  display: none !important;
}

/* Remove the footer CTA's flex item as well, leaving no empty button gap. */
footer div[class$="-container"]:has(> a[href$="#rsvp"]) {
  display: none !important;
}

/* Original logo link measured 32px high. The mark follows header color states. */
header a[data-framer-name="Logo Text"],
header .framer-1typfkt {
  width: calc(32px * 730 / 299) !important;
  height: 32px !important;
}

header .framer-1typfkt p {
  position: relative;
  width: calc(32px * 730 / 299);
  height: 32px;
  font-size: 0 !important;
  line-height: 0 !important;
}

header .framer-1typfkt p::before {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  background: currentColor;
  -webkit-mask: url('/bird-drive.svg') center / contain no-repeat;
  mask: url('/bird-drive.svg') center / contain no-repeat;
}

/* Header keeps the logo and music control, without desktop or mobile navigation. */
header nav,
header .framer-p57r0-container {
  display: none !important;
}

/* Compact variants use the same logo-left / music-right arrangement. */
header:is(.framer-v-1a0rgvn, .framer-v-7wkffr, .framer-v-r5z74z, .framer-v-1fgmhin) .framer-pnl4ly {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}
header:is(.framer-v-1a0rgvn, .framer-v-7wkffr, .framer-v-r5z74z, .framer-v-1fgmhin) .framer-pnl4ly > .framer-vjip2n {
  grid-area: 1 / 1;
  justify-self: start;
}
header:is(.framer-v-1a0rgvn, .framer-v-7wkffr, .framer-v-r5z74z, .framer-v-1fgmhin) .framer-pnl4ly > .framer-1o7dq6i {
  grid-area: 1 / 2;
  justify-self: end;
}

/* Event cards show only the icon, time and ceremony name. */
#wedding-day .framer-1qsas6w {
  display: none !important;
}

/* Preserve the two address lines exactly as supplied, including Vietnamese case. */
#venue .framer-1pufdk5 p {
  text-transform: none !important;
}
#venue .framer-1h9gq45 p { white-space: pre-line; }

/* Preserve the two requested gift introduction lines above the tree. */
#wedding-gift .framer-u16vp5 p { white-space: pre-line; }

/* Approved single closing photograph; top shade keeps the invitation readable. */
footer .framer-1a4eyx8::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, #07130b99, #07130b33 38%, transparent 58%);
  pointer-events: none;
}
footer .framer-lbl7ws { text-shadow: 0 2px 16px #0006; }
/* The closing keeps the small label and handwritten names, without a title row. */
footer .framer-mlmvrf { display: none !important; }
@media (max-width: 809px) {
  footer .framer-1a4eyx8 img { object-position: 56% center !important; }
}

/* Two independent photographic layers, anchored at the bottom of the hero. */
#home { background: #102013; }
#home .framer-j0rya0 { z-index: 10; }
#home .framer-ojwt5l { overflow: visible; text-shadow: 0 2px 16px #0006; }
#home .framer-16x9net { overflow: hidden; isolation: isolate; }
#home .framer-j5pd0a {
  position: absolute !important;
  inset: -5% 0 !important;
  height: 110% !important;
  transform: translate3d(0, var(--hero-bg-y, 0px), 0) !important;
  will-change: transform;
}
#home .framer-j5pd0a::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, #07130bb3, #07130b35 40%, transparent 65%);
}
#home .framer-1szn4w8 {
  top: auto !important;
  bottom: 0 !important;
  height: min(68%, calc(100% - 280px)) !important;
  overflow: visible !important;
  transform: translate3d(0, var(--hero-fg-y, 0px), 0) !important;
  will-change: transform;
}
#home .framer-1szn4w8 img {
  position: absolute;
  top: 0;
  left: 50%;
  width: auto !important;
  max-width: none !important;
  height: 100% !important;
  object-fit: contain !important;
  transform: translateX(-50%);
}
@media (max-width: 809px) {
  #home .framer-1szn4w8 { height: min(59%, calc(100% - 350px)) !important; }
}
@media (prefers-reduced-motion: reduce) {
  #home .framer-1szn4w8, #home .framer-j5pd0a {
    transform: none !important;
    will-change: auto;
  }
}
