.letter-vow{margin:4.5rem 0 3rem;padding:3.5rem 0;border-top:1px solid rgba(23,18,22,.25);border-bottom:1px solid rgba(23,18,22,.25);text-align:center}
.letter-vow p{margin:.35rem 0;font-size:clamp(1rem,2.5vw,1.35rem);letter-spacing:.04em}
.letter-vow p:nth-child(4){margin-top:2.5rem}
.celebration{display:grid;place-items:center;min-height:100svh;overflow:hidden;background:radial-gradient(circle at center,#45131d 0,#160c10 46%,#070607 100%)}
.celebration-copy{position:relative;z-index:3;text-align:center;padding:8vh 5vw}
.celebration-copy>p{text-transform:uppercase;letter-spacing:.25em;font-size:.7rem}
.celebration h2{font:400 clamp(3.8rem,12vw,9rem)/.86 "Italiana";margin:2rem 0}
.celebration h2 em{color:#f0c9cf;font-weight:400}
.celebration-copy>span{font-size:.78rem;letter-spacing:.15em;text-transform:uppercase}
.balloon{position:absolute;bottom:-18vh;font-size:clamp(3rem,7vw,6rem);animation:floatUp var(--speed) linear infinite;animation-delay:var(--delay);filter:drop-shadow(0 12px 15px rgba(0,0,0,.3));opacity:.9}
.confetti-piece{position:absolute;top:-10vh;width:8px;height:16px;background:var(--color);animation:confettiFall var(--speed) linear infinite;animation-delay:var(--delay);opacity:.9}
@keyframes floatUp{0%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-60vh) translateX(22px) rotate(7deg)}100%{transform:translateY(-135vh) translateX(-18px) rotate(-5deg)}}
@keyframes confettiFall{0%{transform:translateY(-10vh) rotate(0)}100%{transform:translateY(120vh) rotate(780deg)}}
@media(prefers-reduced-motion:reduce){.balloon,.confetti-piece{animation:none;display:none}}


/* =========================================================
   FINAL CELEBRATION — reference-match refinements
   ========================================================= */
.celebration {
  min-height: 100svh !important;
  background:
    radial-gradient(circle at 50% 35%, rgba(104,24,39,.62) 0, rgba(44,12,20,.50) 28%, rgba(16,9,12,.96) 66%, #070607 100%) !important;
}
.celebration-copy {
  width: min(1220px, 100%) !important;
  padding: 6vh 3vw 7vh !important;
}
.celebration-copy > p {
  margin: 0 0 4.5vh !important;
  font: 400 clamp(.78rem, 1.45vw, 1.05rem)/1.2 "Manrope", sans-serif !important;
  letter-spacing: .24em !important;
  color: rgba(255,255,255,.95) !important;
}
.celebration h2 {
  font: 400 clamp(5rem, 11.7vw, 10rem)/.86 "Italiana", serif !important;
  margin: 0 auto 7vh !important;
  letter-spacing: -.025em !important;
  color: #f7f1ed !important;
}
.celebration h2 em {
  color: #f0c3cb !important;
  font-style: italic !important;
}
.celebration-copy > span {
  display: block !important;
  font: 400 clamp(.82rem, 1.65vw, 1.15rem)/1.4 "Manrope", sans-serif !important;
  letter-spacing: .16em !important;
  color: rgba(255,255,255,.95) !important;
}

@media (max-width: 700px) {
  .celebration-copy {
    padding: 6vh 4vw 7vh !important;
  }
  .celebration-copy > p {
    margin-bottom: 4vh !important;
  }
  .celebration h2 {
    font-size: clamp(4.1rem, 17vw, 6.8rem) !important;
    margin-bottom: 6vh !important;
  }
  .celebration-copy > span {
    font-size: clamp(.72rem, 3vw, .95rem) !important;
  }
}


/* Extra-small mobile celebration refinements */
@media (max-width: 520px) {
  .celebration {
    min-height: 100svh !important;
  }

  .celebration-copy {
    width: 100% !important;
    padding: 7vh 5vw 8vh !important;
  }

  .celebration-copy > p {
    font-size: .72rem !important;
    margin-bottom: 3.5vh !important;
  }

  .celebration h2 {
    font-size: clamp(3.8rem, 16.5vw, 5.4rem) !important;
    line-height: .88 !important;
    margin-bottom: 5vh !important;
  }

  .celebration-copy > span {
    font-size: .72rem !important;
    letter-spacing: .12em !important;
  }

  .balloon {
    font-size: 3rem !important;
  }

  .confetti-piece {
    width: 6px !important;
    height: 12px !important;
  }
}


/* Full-upgrade final celebration polish */
.celebration::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 44%, rgba(242,187,203,.09), transparent 34%),
    radial-gradient(circle at 50% 100%, rgba(152,56,79,.14), transparent 42%);
  mix-blend-mode: screen;
}

.celebration-copy {
  z-index: 4;
}

.celebration h2 {
  text-shadow:
    0 10px 45px rgba(0,0,0,.40),
    0 0 45px rgba(216,147,166,.05);
}
