/* Soft reply control and a flame confined to the closing lantern. */
#invitation-page #rsvp.finale-scene .rsvp-art {
  filter: saturate(.8) brightness(1.055);
}
#invitation-page #rsvp.finale-scene .rsvp-copy .button {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  gap: .7rem; min-height: 56px; min-width: 210px; padding: .95rem 1.8rem;
  border: 1px solid #eee9cdba; border-radius: 999px;
  background: linear-gradient(145deg,#faf3df,#dfe4cc 70%,#d3dcc4);
  color: #304b3a; font-size: .88rem; font-weight: 500;
  text-shadow: 0 1px #ffffffe0;
  box-shadow: inset 0 1px 0 #fffef7,0 5px 18px #081b1533,0 0 25px #e8d59c0b;
  transition: background .25s ease,box-shadow .25s ease,transform .25s ease;
}
#invitation-page #rsvp.finale-scene .rsvp-copy .button::before {
  content: ''; width: 20px; height: 17px; flex: 0 0 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 20' fill='none' stroke='%2357735d' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='14' rx='2'/%3E%3Cpath d='m3 4 9 7 9-7M3 16l6-5m12 5-6-5'/%3E%3C/svg%3E") center/contain no-repeat;
}
#invitation-page #rsvp.finale-scene .rsvp-copy .button::after {
  content: ''; position: absolute; inset: 4px; border: 1px solid #64764b24;
  border-radius: inherit; pointer-events: none;
}
@media(hover:hover) {
  #invitation-page #rsvp.finale-scene .rsvp-copy .button:hover {
    background: linear-gradient(145deg,#fff9e8,#e8ecd9 72%,#dfe5cc);
    transform: translateY(-2px);
    box-shadow: inset 0 1px #fff,0 9px 24px #081b1540,0 0 30px #e8d59c1c;
  }
}
#invitation-page #rsvp.finale-scene .rsvp-copy .button:active { transform: translateY(1px); }
#invitation-page #rsvp.finale-scene .rsvp-copy .button:focus-visible {
  outline: 2px solid #f6e6b9; outline-offset: 5px;
}
/* Reinforce the actual wick inside the existing moving closing photograph. */
#invitation-page #closing.finale-scene .gif-lantern::before {
  content: ''; position: absolute; z-index: 2; left: 39.6%; top: 42%;
  width: 35%; height: 36%; border-radius: 50%; pointer-events: none;
  background: radial-gradient(ellipse,#ffb54d3d,transparent 70%);
  mix-blend-mode: screen;
  animation: finale-flame-glow-v70 2.3s ease-in-out infinite;
  animation-play-state: var(--finale-play,paused);
}
#invitation-page #closing.finale-scene .gif-lantern::after {
  content: ''; position: absolute; z-index: 3; left: 39.6%; top: 44.3%;
  width: 1.8%; height: 4.6%; border-radius: 75% 25% 55% 45%;
  background: linear-gradient(0deg,#ef952ae0,#ffeda9 35%,#fffce9 75%,#ffe0a099);
  box-shadow: 0 0 5px 2px #ffb34073,0 0 13px 4px #f39b2524;
  transform-origin: 50% 100%; pointer-events: none;
  animation: finale-flame-flicker-v70 .92s ease-in-out infinite;
  animation-play-state: var(--finale-play,paused);
}
#invitation-page #closing.finale-scene .closing-bough {
  animation: finale-leaves-breeze-v70 6.2s ease-in-out infinite;
  animation-play-state: var(--finale-play,paused);
}
@keyframes finale-flame-flicker-v70 {
  0%,100% { opacity: .7; transform: translate(-50%,-100%) rotate(-5deg) scale(.9,1); }
  24% { opacity: .92; transform: translate(-50%,-100%) rotate(6deg) scale(.8,1.18); }
  49% { opacity: .66; transform: translate(-50%,-100%) rotate(-3deg) scale(1.06,.89); }
  72% { opacity: .87; transform: translate(-50%,-100%) rotate(4deg) scale(.9,1.08); }
}
@keyframes finale-flame-glow-v70 {
  0%,100% { opacity: .55; transform: translate(-50%,-50%) scale(.93); }
  38% { opacity: .92; transform: translate(-50%,-50%) scale(1.07); }
  67% { opacity: .65; transform: translate(-50%,-50%) scale(.98); }
}
@keyframes finale-leaves-breeze-v70 {
  0%,100% { transform: rotate(-2.8deg) translate3d(0,0,0); }
  48% { transform: rotate(3.5deg) translate3d(-3px,-2px,0); }
}
@media(prefers-reduced-motion:reduce) {
  #invitation-page #closing.finale-scene .gif-lantern::before { animation: none; opacity: .55; transform: translate(-50%,-50%); }
  #invitation-page #closing.finale-scene .gif-lantern::after { animation: none; opacity: .7; transform: translate(-50%,-100%); }
  #invitation-page #closing.finale-scene .closing-bough { animation: none; transform: none; }
}
body.card-preview #invitation-page #closing.finale-scene .gif-lantern::before { animation: none; transform: translate(-50%,-50%); }
body.card-preview #invitation-page #closing.finale-scene .gif-lantern::after { animation: none; transform: translate(-50%,-100%); }
