body.majov2 {
  isolation: isolate;
  position: relative;
  --lettering: "Adelia", "Cormorant Garamond", Georgia, serif;
  --majov2-ink: #4b3447;
  --majov2-muted: #725968;
  background: #f8f0ec;
}

.majov2-bg-stage {
  position: fixed;
  z-index: -1;
  inset: -2rem;
  pointer-events: none;
  background-color: #f8f0ec;
  background-image: var(--majov2-stage-background);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  filter: blur(16px) saturate(1.08);
  opacity: 0.9;
  transform: scale(1.045);
  transition: opacity 520ms cubic-bezier(0.16, 1, 0.3, 1), filter 700ms cubic-bezier(0.16, 1, 0.3, 1), transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, filter, transform;
}

.majov2-bg-stage.is-changing {
  filter: blur(24px) saturate(0.9);
  opacity: 0.12;
  transform: scale(1.015);
}

.majov2 .majov2-section {
  overflow: hidden;
  background: transparent;
}

.majov2-section-hero { --majov2-background: url("/media/majov2-bg-hero.svg"); }
.majov2-section-story { --majov2-background: url("/media/majov2-bg-story.svg"); }
.majov2-section-interlude { --majov2-background: url("/media/majov2-bg-interlude.svg"); }
.majov2-section-agenda { --majov2-background: url("/media/majov2-bg-agenda.svg"); }
.majov2-section-details { --majov2-background: url("/media/majov2-bg-details.svg"); }
.majov2-section-countdown { --majov2-background: url("/media/majov2-bg-countdown.svg"); }
.majov2-section-gallery { --majov2-background: url("/media/majov2-bg-gallery.svg"); }
.majov2-section-rsvp { --majov2-background: url("/media/majov2-bg-rsvp.svg"); }

.majov2 .interlude,
.majov2 .countdown-section,
.majov2 .rsvp-section { background: transparent; }

/* The original portrait remains as a quiet texture over this section's floral background. */
.majov2 .interlude-image {
  opacity: 0.14;
}

.majov2 .interlude-image img {
  filter: blur(10px) saturate(0.65) !important;
  transform: scale(1.12) !important;
}

.majov2 .floral-ornament {
  animation: none;
}

.majov2 .majov2-title-reveal {
  opacity: 0;
  filter: blur(12px);
  transform: translate3d(0, 4.25rem, 0) rotate(-3deg) scale(0.9);
  transform-origin: 50% 100%;
  transition: opacity 900ms cubic-bezier(0.16, 1, 0.3, 1), transform 900ms cubic-bezier(0.16, 1, 0.3, 1), filter 900ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform, filter;
}

.majov2 .majov2-title-reveal.majov2-title-is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0) rotate(0) scale(1);
}

.majov2 .majov2-title-reveal.majov2-title-is-out {
  opacity: 0;
}

.majov2 .hero h1,
.majov2 .story-heading h2,
.majov2 .section-heading h2,
.majov2 .detail-panel h2,
.majov2 .countdown-content h2,
.majov2 .gallery-heading h2,
.majov2 .rsvp-content h2 {
  letter-spacing: -0.008em;
}

.majov2 .hero h1 { max-width: 8ch; }

@media (max-width: 760px) {
  .majov2 .hero h1 { max-width: 100%; font-size: clamp(3.7rem, 15.5vw, 5.8rem); }
  .majov2 .section-heading h2 { font-size: clamp(2.6rem, 10.7vw, 4.1rem); }
  .majov2-bg-stage { inset: -1rem; background-position: center top; background-repeat: repeat-y; background-size: 100% auto; filter: blur(7px) saturate(1.08); }
  .majov2 .majov2-title-reveal { transform: translate3d(0, 2.5rem, 0) rotate(-2deg) scale(0.94); }
  .majov2 .majov2-title-reveal.majov2-title-is-visible { transform: translate3d(0, 0, 0) rotate(0) scale(1); }
}

@media (max-width: 360px) {
  .majov2 .hero h1 { font-size: clamp(3.4rem, 15vw, 5rem); }
  .majov2 .section-heading h2 { font-size: clamp(2.35rem, 10vw, 3.7rem); }
}

@media (prefers-reduced-motion: reduce) {
  .majov2 .majov2-title-reveal,
  .majov2 .majov2-title-reveal.majov2-title-is-out,
  .majov2 .majov2-title-reveal.majov2-title-is-visible {
    opacity: 1;
    filter: none;
    transform: none;
    transition: none;
  }
}
