/**
 * Theme: Romantic / Flower
 * Concept: Romantic, elegant, luminous — continuous floral background
 * templates/themes/romantic/flower/flower.html.twig
 *
 * Palette:
 *   Primary:       #d88c8c
 *   Background:    #f3e7e7
 *   White:         #ffffff
 *   Text:          #3b2f2f
 *   Floral detail: #e9bcbc
 *   Glass:         rgba(255,255,255,0.55)
 *
 * Fonts:
 *   Titles:  Playfair Display
 *   Body:    DM Sans
 *   Names:   Cormorant Garamond
 */

/* ─── Root variables ─── */
.theme-romantic-flower {
  --rf-primary: #d88c8c;
  --rf-primary-hover: #c47878;
  --rf-primary-light: #e9bcbc;
  --rf-bg: #f3e7e7;
  --rf-bg-alt: #faf5f5;
  --rf-white: #ffffff;
  --rf-text: #3b2f2f;
  --rf-text-muted: #7a6565;
  --rf-glass: rgba(255, 255, 255, 0.55);
  --rf-glass-border: rgba(255, 255, 255, 0.7);
  --rf-glass-shadow: 0 4px 24px rgba(180, 120, 120, 0.12);
  --rf-font-title: 'Playfair Display', Georgia, serif;
  --rf-font-names: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  --rf-font-body: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ─── Full-page floral background ─── */
.theme-romantic-flower {
  --site-bg: var(--rf-bg);
  min-height: 100vh;
  background: var(--rf-bg);
  background-image: var(--rf-bg-image, none);
  background-size: cover;
  background-attachment: fixed;
  background-position: center top;
  background-repeat: no-repeat;
  color: var(--rf-text);
  position: relative;
}

/* Soft veil overlay so text is always readable */
.theme-romantic-flower::before {
  content: '';
  position: fixed;
  inset: 0;
  background: radial-gradient(
    ellipse at center top,
    rgba(243, 231, 231, 0.3) 0%,
    rgba(243, 231, 231, 0.15) 50%,
    rgba(243, 231, 231, 0.3) 100%
  );
  pointer-events: none;
  z-index: 0;
}

.theme-romantic-flower > * {
  position: relative;
  z-index: 1;
}

/* ─── ALL SECTIONS TRANSPARENT ─── */
.theme-romantic-flower .hero-video,
.theme-romantic-flower .countdown-section,
.theme-romantic-flower .countdown-section--green,
.theme-romantic-flower .countdown-section--beige,
.theme-romantic-flower .text-section,
.theme-romantic-flower .text-section--bg-beige,
.theme-romantic-flower .text-section--bg-white,
.theme-romantic-flower .program-section,
.theme-romantic-flower .program-section--beige,
.theme-romantic-flower .program-section--white,
.theme-romantic-flower .venue-section,
.theme-romantic-flower .venue-section--beige,
.theme-romantic-flower .venue-section--white,
.theme-romantic-flower .dress-section,
.theme-romantic-flower .dress-section--beige,
.theme-romantic-flower .dress-section--white,
.theme-romantic-flower .rsvp-section,
.theme-romantic-flower .rsvp-section--bg-beige,
.theme-romantic-flower .rsvp-section--bg-white,
.theme-romantic-flower .rsvp-section--bg-cream,
.theme-romantic-flower .infobox-section,
.theme-romantic-flower .infobox-section--beige,
.theme-romantic-flower .infobox-section--white {
  background: transparent !important;
  background-image: none !important;
}

/* ─── Floral decorative divider (SVG inline as CSS) ─── */
.theme-romantic-flower .rf-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0;
  position: relative;
  z-index: 1;
}

.theme-romantic-flower .rf-divider__svg {
  width: 200px;
  height: auto;
  opacity: 0.7;
}

@media (max-width: 768px) {
  .theme-romantic-flower {
    background-image: var(--rf-bg-image-mobile, var(--rf-bg-image, none));
  }
}

@media (max-width: 480px) {
  .theme-romantic-flower .rf-divider__svg {
    width: 150px;
  }
}

/* ─── Glass card mixin (used across components) ─── */
.theme-romantic-flower .countdown__item,
.theme-romantic-flower .venue-card,
.theme-romantic-flower .dress-card,
.theme-romantic-flower .rsvp,
.theme-romantic-flower .text-block--bg-light,
.theme-romantic-flower .text-block--bg-dark,
.theme-romantic-flower .infobox--light,
.theme-romantic-flower .infobox--white,
.theme-romantic-flower .infobox-schedule__card,
.theme-romantic-flower .timeline__content {
  background: var(--rf-glass) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--rf-glass-border) !important;
  box-shadow: var(--rf-glass-shadow) !important;
}

/* ─── HERO ─── */
.theme-romantic-flower .hero-video {
  --hero-gold: var(--rf-primary);
  --hero-font-script: var(--rf-font-names);
  --hero-font-sans: var(--rf-font-body);
  min-height: auto;
  padding: 6rem 1rem 2rem;
}

/* Hero: no video/image background, no overlay — floral bg shows through */
.theme-romantic-flower .hero-video__bg {
  display: none;
}

.theme-romantic-flower .hero-video__overlay {
  display: none;
}

/* Hero content: dark text on light floral bg */
.theme-romantic-flower .hero-video__tag,
.theme-romantic-flower .hero-video__names,
.theme-romantic-flower .hero-video__date,
.theme-romantic-flower .hero-video__cta,
.theme-romantic-flower .hero-video__divider,
.theme-romantic-flower .hero-video__cta-link {
  position: relative;
  z-index: 1;
  color: var(--rf-text);
}

.theme-romantic-flower .hero-video__tag {
  font-family: var(--rf-font-body);
  letter-spacing: 0.25em;
  font-weight: 400;
  opacity: 0.7;
  font-size: 0.7rem;
}

.theme-romantic-flower .hero-video__names {
  font-family: var(--rf-font-names);
  font-weight: 400;
  font-style: italic;
  color: var(--rf-text);
  font-size: clamp(3rem, 12vw, 6rem);
}

.theme-romantic-flower .hero-video__amp {
  color: var(--rf-primary);
  font-family: var(--rf-font-names);
  font-style: italic;
  font-weight: 300;
}

.theme-romantic-flower .hero-video__divider {
  background: var(--rf-primary-light);
  width: 50px;
  opacity: 0.5;
}

.theme-romantic-flower .hero-video__divider::after {
  display: none;
}

.theme-romantic-flower .hero-video__date {
  font-family: var(--rf-font-body);
  letter-spacing: 0.2em;
  font-weight: 400;
  text-transform: uppercase;
  font-size: 0.85rem;
  opacity: 0.85;
}

/* Hero CTA: hidden (countdown + button shown below) */
.theme-romantic-flower .hero-video__cta {
  display: none;
}

/* Hero scroll arrow hidden */
.theme-romantic-flower .hero-video__scroll {
  display: none;
}

/* ─── COUNTDOWN (unified glass bar with vertical dividers) ─── */
.theme-romantic-flower .countdown-section {
  --countdown-font-script: var(--rf-font-title);
  --countdown-font-sans: var(--rf-font-body);
  --countdown-text-dark: var(--rf-text);
  padding: 1rem 1.5rem 2rem;
}

.theme-romantic-flower .countdown-section__title {
  display: none;
}

.theme-romantic-flower .countdown-section__subtitle {
  display: none;
}

/* Countdown container: single glass bar */
.theme-romantic-flower .countdown {
  background: var(--rf-glass);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--rf-glass-border);
  box-shadow: var(--rf-glass-shadow);
  border-radius: 14px;
  gap: 0;
  display: flex;
  max-width: 400px;
  margin: 0 auto;
  overflow: hidden;
}

/* Individual items: no background, separated by vertical lines */
.theme-romantic-flower .countdown__item {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  border-right: 1px solid rgba(216, 140, 140, 0.25) !important;
  padding: 1rem 0;
  min-width: 0;
  flex: 1;
}

.theme-romantic-flower .countdown__item:last-child {
  border-right: none !important;
}

.theme-romantic-flower .countdown__value {
  font-family: var(--rf-font-body);
  color: var(--rf-primary);
  font-weight: 500;
  font-size: 1.8rem;
}

.theme-romantic-flower .countdown__label {
  font-family: var(--rf-font-body);
  color: var(--rf-text-muted);
  font-size: 0.65rem;
  text-transform: capitalize;
  letter-spacing: 0.02em;
}

/* CTA button after countdown */
.theme-romantic-flower .rf-cta-btn {
  display: block;
  max-width: 400px;
  margin: 1.5rem auto 1rem;
  padding: 0.9rem 2rem;
  background: var(--rf-primary);
  color: var(--rf-white);
  border: none;
  border-radius: 50px;
  font-family: var(--rf-font-body);
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  transition: background 0.2s, transform 0.1s;
  opacity: 0.9;
}

.theme-romantic-flower .rf-cta-btn:hover {
  background: var(--rf-primary-hover);
  opacity: 1;
}

.theme-romantic-flower .rf-cta-btn:active {
  transform: scale(0.98);
}

/* Separator image (between CTA and historia) */
.theme-romantic-flower .rf-separator {
  text-align: center;
  padding: 1.5rem 0;
  position: relative;
  z-index: 1;
}

.theme-romantic-flower .rf-separator__img {
  max-width: 280px;
  width: 60%;
  height: auto;
  display: inline-block;
}

/* ─── TEXT BLOCK (Historia, Gift, etc.) ─── */
.theme-romantic-flower .text-section {
  --text-font-script: var(--rf-font-title);
  --text-font-sans: var(--rf-font-body);
  --text-dark: var(--rf-text);
  --text-muted: var(--rf-text-muted);
  --text-olive: var(--rf-primary);
  --text-olive-dark: var(--rf-primary-hover);
  --text-beige: transparent;
  --text-beige-dark: var(--rf-primary-light);
  --text-white: transparent;
}

.theme-romantic-flower .text-section__title {
  font-family: var(--rf-font-title);
  font-weight: 600;
  font-style: italic;
  color: var(--rf-text);
  text-align: center;
}

.theme-romantic-flower .text-section__inner {
  text-align: center;
}

.theme-romantic-flower .text-block {
  background: transparent !important;
}

.theme-romantic-flower .text-block__content {
  font-family: var(--rf-font-body);
  font-weight: 300;
  line-height: 1.8;
  color: var(--rf-text);
}

.theme-romantic-flower .text-block__icon {
  color: var(--rf-primary);
}

/* ─── VENUE ─── */
.theme-romantic-flower .venue-section {
  --venue-primary: var(--rf-primary);
  --venue-text: var(--rf-text);
  --venue-text-muted: var(--rf-text-muted);
  --venue-card-bg: var(--rf-glass);
  --venue-icon-bg: rgba(233, 188, 188, 0.3);
  --venue-beige: transparent;
  --venue-white: transparent;
  --venue-cream: transparent;
  --venue-font-script: var(--rf-font-title);
  --venue-font-sans: var(--rf-font-body);
}

.theme-romantic-flower .venue-section__title {
  font-family: var(--rf-font-title);
  font-weight: 600;
  font-style: italic;
}

.theme-romantic-flower .venue-card {
  border-radius: 16px;
}

.theme-romantic-flower .venue-card__icon {
  color: var(--rf-primary);
}

.theme-romantic-flower .venue-card__name {
  font-family: var(--rf-font-title);
}

.theme-romantic-flower .venue-card__time-value {
  color: var(--rf-primary);
  font-weight: 500;
}

.theme-romantic-flower .venue-card__btn {
  background: var(--rf-primary);
  color: var(--rf-white);
  border-radius: 50px;
}

.theme-romantic-flower .venue-card__btn:hover {
  background: var(--rf-primary-hover);
}

/* ─── PROGRAM / TIMELINE ─── */
.theme-romantic-flower .program-section {
  --program-olive: var(--rf-primary);
  --program-olive-light: var(--rf-primary-light);
  --program-text-dark: var(--rf-text);
  --program-text-muted: var(--rf-text-muted);
  --program-beige: transparent;
  --program-beige-dark: var(--rf-primary-light);
  --program-white: transparent;
  --program-font-script: var(--rf-font-title);
  --program-font-sans: var(--rf-font-body);
}

.theme-romantic-flower .program-section__title {
  font-family: var(--rf-font-title);
  font-weight: 600;
  font-style: italic;
}

.theme-romantic-flower .timeline__dot {
  background: var(--rf-primary);
  box-shadow: 0 0 0 4px rgba(216, 140, 140, 0.25);
}

.theme-romantic-flower .timeline__line {
  background: var(--rf-primary-light);
  opacity: 0.5;
}

.theme-romantic-flower .timeline__icon {
  color: var(--rf-primary);
}

.theme-romantic-flower .timeline__content {
  border-radius: 14px;
}

/* ─── DRESS CODE ─── */
.theme-romantic-flower .dress-section {
  --dress-primary: var(--rf-primary);
  --dress-text: var(--rf-text);
  --dress-text-muted: var(--rf-text-muted);
  --dress-card-bg: var(--rf-glass);
  --dress-beige: transparent;
  --dress-white: transparent;
  --dress-cream: transparent;
  --dress-font-script: var(--rf-font-title);
  --dress-font-sans: var(--rf-font-body);
}

.theme-romantic-flower .dress-section__title {
  font-family: var(--rf-font-title);
  font-weight: 600;
  font-style: italic;
}

.theme-romantic-flower .dress-card {
  border-radius: 14px;
}

.theme-romantic-flower .dress-card__icon {
  font-size: 2rem;
}

.theme-romantic-flower .dress-note {
  font-family: var(--rf-font-body);
  color: var(--rf-text-muted);
  font-style: italic;
}

/* ─── RSVP ─── */
.theme-romantic-flower .rsvp-section {
  --rsvp-accent: var(--rf-primary);
  --rsvp-accent-light: var(--rf-primary-light);
  --rsvp-accent-hover: var(--rf-primary-hover);
  --rsvp-text-dark: var(--rf-text);
  --rsvp-text-muted: var(--rf-text-muted);
  --rsvp-beige: transparent;
  --rsvp-beige-dark: var(--rf-primary-light);
  --rsvp-cream: var(--rf-glass);
  --rsvp-white: var(--rf-white);
  --rsvp-font-script: var(--rf-font-title);
  --rsvp-font-sans: var(--rf-font-body);
  --rsvp-focus-shadow: 0 0 0 2px rgba(216, 140, 140, 0.25);
  --rsvp-field-bg: rgba(255, 255, 255, 0.7);
  --rsvp-field-border: var(--rf-primary-light);
}

.theme-romantic-flower .rsvp-section__title {
  font-family: var(--rf-font-title);
  font-weight: 600;
  font-style: italic;
  color: var(--rf-text);
}

.theme-romantic-flower .rsvp {
  border-radius: 20px;
}

.theme-romantic-flower .rsvp-form__submit {
  background: var(--rf-primary);
  border-radius: 50px;
  font-family: var(--rf-font-body);
  font-weight: 500;
  letter-spacing: 0.03em;
  width: 100%;
  padding: 1rem;
}

.theme-romantic-flower .rsvp-form__submit:hover {
  background: var(--rf-primary-hover);
}

.theme-romantic-flower .rsvp-form__choice-btn.is-selected {
  background: var(--rf-primary);
  border-color: var(--rf-primary);
}

.theme-romantic-flower .rsvp-form__chip.is-selected {
  background: var(--rf-primary);
  border-color: var(--rf-primary);
}

@media (max-width: 480px) {
  .theme-romantic-flower .rsvp-form__label {
    font-size: 0.78rem;
  }
}

/* ─── INFO BOX / TRANSPORT ─── */
.theme-romantic-flower .infobox-section {
  --infobox-primary: var(--rf-primary);
  --infobox-text: var(--rf-text);
  --infobox-text-muted: var(--rf-text-muted);
}

.theme-romantic-flower .infobox-section__title {
  font-family: var(--rf-font-title);
  font-weight: 600;
  font-style: italic;
}

.theme-romantic-flower .infobox__text {
  font-family: var(--rf-font-body);
}

.theme-romantic-flower .infobox-schedule__card {
  border-radius: 14px;
}

.theme-romantic-flower .infobox-schedule__time {
  color: var(--rf-primary);
  font-weight: 500;
}

/* ─── FOOTER ─── */
.theme-romantic-flower .site-footer {
  background: rgba(59, 47, 47, 0.9) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.theme-romantic-flower .site-footer__names {
  font-family: var(--rf-font-names);
  font-style: italic;
  font-weight: 300;
}

.theme-romantic-flower .site-footer__heart svg {
  color: var(--rf-primary-light);
}

/* ─── AUDIO TOGGLE ─── */
.theme-romantic-flower .audio-toggle {
  background: var(--rf-glass);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--rf-primary);
  border: 1px solid var(--rf-glass-border);
}

/* ─── SPLASH ─── */
.theme-romantic-flower .splash {
  background: transparent;
}

/* Sparkle lights overlay — edges around the flower */
.rf-splash-sparkles {
  position: fixed;
  inset: 0;
  z-index: 10000;
  pointer-events: none;
  overflow: hidden;
}

.rf-splash-sparkles__dot {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0) 70%);
  animation: rf-sparkle var(--dur, 2.5s) var(--delay, 0s) ease-in-out infinite;
}

/* Size variants */
.rf-splash-sparkles__dot--sm { width: 4px; height: 4px; box-shadow: 0 0 6px 1px rgba(255,255,255,0.5), 0 0 12px 3px rgba(233,188,188,0.3); }
.rf-splash-sparkles__dot--md { width: 6px; height: 6px; box-shadow: 0 0 8px 2px rgba(255,255,255,0.6), 0 0 18px 4px rgba(233,188,188,0.4); }
.rf-splash-sparkles__dot--lg { width: 8px; height: 8px; box-shadow: 0 0 10px 3px rgba(255,255,255,0.7), 0 0 24px 6px rgba(233,188,188,0.5); }

/* 96 sparkles — edge positions (mobile) */
.rf-splash-sparkles__dot:nth-child(1)  { top: 80%; left: 45%; --dur: 2.4s; --delay: 0.6s; }
.rf-splash-sparkles__dot:nth-child(2)  { top: 97%; left: 21%; --dur: 3.0s; --delay: 1.1s; }
.rf-splash-sparkles__dot:nth-child(3)  { top: 4%; left: 37%; --dur: 2.4s; --delay: 1.3s; }
.rf-splash-sparkles__dot:nth-child(4)  { top: 19%; left: 35%; --dur: 3.2s; --delay: 1.6s; }
.rf-splash-sparkles__dot:nth-child(5)  { top: 82%; left: 17%; --dur: 3.0s; --delay: 0.7s; }
.rf-splash-sparkles__dot:nth-child(6)  { top: 7%; left: 64%; --dur: 2.6s; --delay: 0.7s; }
.rf-splash-sparkles__dot:nth-child(7)  { top: 58%; left: 86%; --dur: 2.2s; --delay: 0.9s; }
.rf-splash-sparkles__dot:nth-child(8)  { top: 16%; left: 88%; --dur: 2.1s; --delay: 1.8s; }
.rf-splash-sparkles__dot:nth-child(9)  { top: 92%; left: 20%; --dur: 2.9s; --delay: 0.7s; }
.rf-splash-sparkles__dot:nth-child(10) { top: 23%; left: 86%; --dur: 3.2s; --delay: 0.2s; }
.rf-splash-sparkles__dot:nth-child(11) { top: 52%; left: 86%; --dur: 2.4s; --delay: 2.2s; }
.rf-splash-sparkles__dot:nth-child(12) { top: 83%; left: 17%; --dur: 3.1s; --delay: 2.1s; }
.rf-splash-sparkles__dot:nth-child(13) { top: 62%; left: 7%; --dur: 2.4s; --delay: 1.7s; }
.rf-splash-sparkles__dot:nth-child(14) { top: 85%; left: 78%; --dur: 3.2s; --delay: 0.6s; }
.rf-splash-sparkles__dot:nth-child(15) { top: 87%; left: 88%; --dur: 3.1s; --delay: 1.7s; }
.rf-splash-sparkles__dot:nth-child(16) { top: 56%; left: 98%; --dur: 2.1s; --delay: 0.6s; }
.rf-splash-sparkles__dot:nth-child(17) { top: 12%; left: 61%; --dur: 2.5s; --delay: 0.2s; }
.rf-splash-sparkles__dot:nth-child(18) { top: 11%; left: 95%; --dur: 2.7s; --delay: 2.2s; }
.rf-splash-sparkles__dot:nth-child(19) { top: 79%; left: 88%; --dur: 2.3s; --delay: 0.6s; }
.rf-splash-sparkles__dot:nth-child(20) { top: 23%; left: 16%; --dur: 3.0s; --delay: 1.0s; }
.rf-splash-sparkles__dot:nth-child(21) { top: 32%; left: 93%; --dur: 2.8s; --delay: 0.2s; }
.rf-splash-sparkles__dot:nth-child(22) { top: 5%; left: 29%; --dur: 3.1s; --delay: 0.4s; }
.rf-splash-sparkles__dot:nth-child(23) { top: 94%; left: 5%; --dur: 2.7s; --delay: 1.0s; }
.rf-splash-sparkles__dot:nth-child(24) { top: 91%; left: 88%; --dur: 2.9s; --delay: 2.2s; }
.rf-splash-sparkles__dot:nth-child(25) { top: 5%; left: 78%; --dur: 2.5s; --delay: 1.9s; }
.rf-splash-sparkles__dot:nth-child(26) { top: 8%; left: 89%; --dur: 2.7s; --delay: 0.4s; }
.rf-splash-sparkles__dot:nth-child(27) { top: 10%; left: 74%; --dur: 2.3s; --delay: 1.3s; }
.rf-splash-sparkles__dot:nth-child(28) { top: 89%; left: 74%; --dur: 3.0s; --delay: 0.5s; }
.rf-splash-sparkles__dot:nth-child(29) { top: 10%; left: 97%; --dur: 2.9s; --delay: 2.3s; }
.rf-splash-sparkles__dot:nth-child(30) { top: 20%; left: 80%; --dur: 2.2s; --delay: 2.3s; }
.rf-splash-sparkles__dot:nth-child(31) { top: 12%; left: 4%; --dur: 2.4s; --delay: 2.2s; }
.rf-splash-sparkles__dot:nth-child(32) { top: 82%; left: 72%; --dur: 2.2s; --delay: 2.4s; }
.rf-splash-sparkles__dot:nth-child(33) { top: 31%; left: 12%; --dur: 2.8s; --delay: 2.4s; }
.rf-splash-sparkles__dot:nth-child(34) { top: 48%; left: 10%; --dur: 3.0s; --delay: 1.1s; }
.rf-splash-sparkles__dot:nth-child(35) { top: 84%; left: 97%; --dur: 3.2s; --delay: 1.7s; }
.rf-splash-sparkles__dot:nth-child(36) { top: 17%; left: 14%; --dur: 2.8s; --delay: 2.2s; }
.rf-splash-sparkles__dot:nth-child(37) { top: 78%; left: 87%; --dur: 2.4s; --delay: 0.2s; }
.rf-splash-sparkles__dot:nth-child(38) { top: 20%; left: 80%; --dur: 2.4s; --delay: 1.5s; }
.rf-splash-sparkles__dot:nth-child(39) { top: 4%; left: 90%; --dur: 2.1s; --delay: 0.6s; }
.rf-splash-sparkles__dot:nth-child(40) { top: 12%; left: 19%; --dur: 2.9s; --delay: 0.6s; }
.rf-splash-sparkles__dot:nth-child(41) { top: 81%; left: 97%; --dur: 2.3s; --delay: 1.8s; }
.rf-splash-sparkles__dot:nth-child(42) { top: 82%; left: 95%; --dur: 2.7s; --delay: 0.5s; }
.rf-splash-sparkles__dot:nth-child(43) { top: 93%; left: 55%; --dur: 2.7s; --delay: 1.0s; }
.rf-splash-sparkles__dot:nth-child(44) { top: 5%; left: 17%; --dur: 2.7s; --delay: 1.8s; }
.rf-splash-sparkles__dot:nth-child(45) { top: 87%; left: 34%; --dur: 2.4s; --delay: 1.3s; }
.rf-splash-sparkles__dot:nth-child(46) { top: 69%; left: 4%; --dur: 2.5s; --delay: 1.2s; }
.rf-splash-sparkles__dot:nth-child(47) { top: 94%; left: 80%; --dur: 2.2s; --delay: 0.1s; }
.rf-splash-sparkles__dot:nth-child(48) { top: 4%; left: 40%; --dur: 2.3s; --delay: 1.0s; }
.rf-splash-sparkles__dot:nth-child(49) { top: 81%; left: 92%; --dur: 2.1s; --delay: 0.4s; }
.rf-splash-sparkles__dot:nth-child(50) { top: 14%; left: 43%; --dur: 2.8s; --delay: 0.7s; }
.rf-splash-sparkles__dot:nth-child(51) { top: 79%; left: 86%; --dur: 2.5s; --delay: 0.5s; }
.rf-splash-sparkles__dot:nth-child(52) { top: 20%; left: 79%; --dur: 2.1s; --delay: 1.9s; }
.rf-splash-sparkles__dot:nth-child(53) { top: 3%; left: 84%; --dur: 2.8s; --delay: 1.3s; }
.rf-splash-sparkles__dot:nth-child(54) { top: 22%; left: 10%; --dur: 2.2s; --delay: 2.1s; }
.rf-splash-sparkles__dot:nth-child(55) { top: 82%; left: 40%; --dur: 2.7s; --delay: 0.3s; }
.rf-splash-sparkles__dot:nth-child(56) { top: 20%; left: 94%; --dur: 2.2s; --delay: 1.0s; }
.rf-splash-sparkles__dot:nth-child(57) { top: 13%; left: 86%; --dur: 3.1s; --delay: 1.8s; }
.rf-splash-sparkles__dot:nth-child(58) { top: 48%; left: 91%; --dur: 2.3s; --delay: 1.7s; }
.rf-splash-sparkles__dot:nth-child(59) { top: 19%; left: 13%; --dur: 2.2s; --delay: 0.0s; }
.rf-splash-sparkles__dot:nth-child(60) { top: 82%; left: 78%; --dur: 2.4s; --delay: 1.3s; }
.rf-splash-sparkles__dot:nth-child(61) { top: 59%; left: 3%; --dur: 2.4s; --delay: 0.9s; }
.rf-splash-sparkles__dot:nth-child(62) { top: 71%; left: 15%; --dur: 2.9s; --delay: 1.8s; }
.rf-splash-sparkles__dot:nth-child(63) { top: 19%; left: 48%; --dur: 3.1s; --delay: 0.3s; }
.rf-splash-sparkles__dot:nth-child(64) { top: 48%; left: 3%; --dur: 2.2s; --delay: 1.9s; }
.rf-splash-sparkles__dot:nth-child(65) { top: 49%; left: 6%; --dur: 3.0s; --delay: 0.5s; }
.rf-splash-sparkles__dot:nth-child(66) { top: 11%; left: 88%; --dur: 2.9s; --delay: 1.2s; }
.rf-splash-sparkles__dot:nth-child(67) { top: 4%; left: 64%; --dur: 2.5s; --delay: 0.1s; }
.rf-splash-sparkles__dot:nth-child(68) { top: 9%; left: 88%; --dur: 2.3s; --delay: 1.9s; }
.rf-splash-sparkles__dot:nth-child(69) { top: 92%; left: 3%; --dur: 2.2s; --delay: 0.2s; }
.rf-splash-sparkles__dot:nth-child(70) { top: 84%; left: 2%; --dur: 2.6s; --delay: 1.5s; }
.rf-splash-sparkles__dot:nth-child(71) { top: 70%; left: 4%; --dur: 2.1s; --delay: 0.8s; }
.rf-splash-sparkles__dot:nth-child(72) { top: 13%; left: 36%; --dur: 3.1s; --delay: 0.6s; }
.rf-splash-sparkles__dot:nth-child(73) { top: 91%; left: 81%; --dur: 2.7s; --delay: 2.4s; }
.rf-splash-sparkles__dot:nth-child(74) { top: 45%; left: 15%; --dur: 2.3s; --delay: 2.4s; }
.rf-splash-sparkles__dot:nth-child(75) { top: 67%; left: 2%; --dur: 2.3s; --delay: 1.8s; }
.rf-splash-sparkles__dot:nth-child(76) { top: 18%; left: 87%; --dur: 2.5s; --delay: 0.4s; }
.rf-splash-sparkles__dot:nth-child(77) { top: 92%; left: 14%; --dur: 2.8s; --delay: 0.6s; }
.rf-splash-sparkles__dot:nth-child(78) { top: 86%; left: 89%; --dur: 2.4s; --delay: 0.6s; }
.rf-splash-sparkles__dot:nth-child(79) { top: 66%; left: 90%; --dur: 2.5s; --delay: 2.2s; }
.rf-splash-sparkles__dot:nth-child(80) { top: 16%; left: 19%; --dur: 2.7s; --delay: 1.7s; }
.rf-splash-sparkles__dot:nth-child(81) { top: 5%; left: 83%; --dur: 2.5s; --delay: 0.4s; }
.rf-splash-sparkles__dot:nth-child(82) { top: 6%; left: 6%; --dur: 3.0s; --delay: 1.1s; }
.rf-splash-sparkles__dot:nth-child(83) { top: 18%; left: 96%; --dur: 2.2s; --delay: 1.0s; }
.rf-splash-sparkles__dot:nth-child(84) { top: 47%; left: 85%; --dur: 3.2s; --delay: 1.1s; }
.rf-splash-sparkles__dot:nth-child(85) { top: 61%; left: 91%; --dur: 2.2s; --delay: 2.4s; }
.rf-splash-sparkles__dot:nth-child(86) { top: 24%; left: 90%; --dur: 3.1s; --delay: 2.1s; }
.rf-splash-sparkles__dot:nth-child(87) { top: 21%; left: 12%; --dur: 3.1s; --delay: 1.0s; }
.rf-splash-sparkles__dot:nth-child(88) { top: 84%; left: 20%; --dur: 2.3s; --delay: 0.5s; }
.rf-splash-sparkles__dot:nth-child(89) { top: 80%; left: 12%; --dur: 2.7s; --delay: 1.4s; }
.rf-splash-sparkles__dot:nth-child(90) { top: 11%; left: 46%; --dur: 2.4s; --delay: 1.1s; }
.rf-splash-sparkles__dot:nth-child(91) { top: 19%; left: 94%; --dur: 2.8s; --delay: 1.7s; }
.rf-splash-sparkles__dot:nth-child(92) { top: 80%; left: 82%; --dur: 2.5s; --delay: 1.3s; }
.rf-splash-sparkles__dot:nth-child(93) { top: 7%; left: 87%; --dur: 3.1s; --delay: 0.8s; }
.rf-splash-sparkles__dot:nth-child(94) { top: 33%; left: 85%; --dur: 2.1s; --delay: 0.6s; }
.rf-splash-sparkles__dot:nth-child(95) { top: 94%; left: 82%; --dur: 2.8s; --delay: 1.0s; }
.rf-splash-sparkles__dot:nth-child(96) { top: 64%; left: 92%; --dur: 2.7s; --delay: 0.6s; }

/* Desktop: constrain to center strip for 9:16 contain */
@media (min-width: 768px) {
  .rf-splash-sparkles__dot:nth-child(1)  { left: 48%; }
  .rf-splash-sparkles__dot:nth-child(2)  { left: 41%; }
  .rf-splash-sparkles__dot:nth-child(3)  { left: 46%; }
  .rf-splash-sparkles__dot:nth-child(4)  { left: 45%; }
  .rf-splash-sparkles__dot:nth-child(5)  { left: 40%; }
  .rf-splash-sparkles__dot:nth-child(6)  { left: 53%; }
  .rf-splash-sparkles__dot:nth-child(7)  { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(8)  { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(9)  { left: 41%; }
  .rf-splash-sparkles__dot:nth-child(10) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(11) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(12) { left: 40%; }
  .rf-splash-sparkles__dot:nth-child(13) { left: 37%; }
  .rf-splash-sparkles__dot:nth-child(14) { left: 57%; }
  .rf-splash-sparkles__dot:nth-child(15) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(16) { left: 63%; }
  .rf-splash-sparkles__dot:nth-child(17) { left: 53%; }
  .rf-splash-sparkles__dot:nth-child(18) { left: 62%; }
  .rf-splash-sparkles__dot:nth-child(19) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(20) { left: 40%; }
  .rf-splash-sparkles__dot:nth-child(21) { left: 62%; }
  .rf-splash-sparkles__dot:nth-child(22) { left: 44%; }
  .rf-splash-sparkles__dot:nth-child(23) { left: 37%; }
  .rf-splash-sparkles__dot:nth-child(24) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(25) { left: 57%; }
  .rf-splash-sparkles__dot:nth-child(26) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(27) { left: 56%; }
  .rf-splash-sparkles__dot:nth-child(28) { left: 56%; }
  .rf-splash-sparkles__dot:nth-child(29) { left: 63%; }
  .rf-splash-sparkles__dot:nth-child(30) { left: 58%; }
  .rf-splash-sparkles__dot:nth-child(31) { left: 37%; }
  .rf-splash-sparkles__dot:nth-child(32) { left: 56%; }
  .rf-splash-sparkles__dot:nth-child(33) { left: 39%; }
  .rf-splash-sparkles__dot:nth-child(34) { left: 38%; }
  .rf-splash-sparkles__dot:nth-child(35) { left: 63%; }
  .rf-splash-sparkles__dot:nth-child(36) { left: 39%; }
  .rf-splash-sparkles__dot:nth-child(37) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(38) { left: 58%; }
  .rf-splash-sparkles__dot:nth-child(39) { left: 61%; }
  .rf-splash-sparkles__dot:nth-child(40) { left: 41%; }
  .rf-splash-sparkles__dot:nth-child(41) { left: 63%; }
  .rf-splash-sparkles__dot:nth-child(42) { left: 62%; }
  .rf-splash-sparkles__dot:nth-child(43) { left: 51%; }
  .rf-splash-sparkles__dot:nth-child(44) { left: 40%; }
  .rf-splash-sparkles__dot:nth-child(45) { left: 45%; }
  .rf-splash-sparkles__dot:nth-child(46) { left: 37%; }
  .rf-splash-sparkles__dot:nth-child(47) { left: 58%; }
  .rf-splash-sparkles__dot:nth-child(48) { left: 47%; }
  .rf-splash-sparkles__dot:nth-child(49) { left: 61%; }
  .rf-splash-sparkles__dot:nth-child(50) { left: 48%; }
  .rf-splash-sparkles__dot:nth-child(51) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(52) { left: 58%; }
  .rf-splash-sparkles__dot:nth-child(53) { left: 59%; }
  .rf-splash-sparkles__dot:nth-child(54) { left: 38%; }
  .rf-splash-sparkles__dot:nth-child(55) { left: 47%; }
  .rf-splash-sparkles__dot:nth-child(56) { left: 62%; }
  .rf-splash-sparkles__dot:nth-child(57) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(58) { left: 61%; }
  .rf-splash-sparkles__dot:nth-child(59) { left: 39%; }
  .rf-splash-sparkles__dot:nth-child(60) { left: 57%; }
  .rf-splash-sparkles__dot:nth-child(61) { left: 36%; }
  .rf-splash-sparkles__dot:nth-child(62) { left: 40%; }
  .rf-splash-sparkles__dot:nth-child(63) { left: 49%; }
  .rf-splash-sparkles__dot:nth-child(64) { left: 36%; }
  .rf-splash-sparkles__dot:nth-child(65) { left: 37%; }
  .rf-splash-sparkles__dot:nth-child(66) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(67) { left: 53%; }
  .rf-splash-sparkles__dot:nth-child(68) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(69) { left: 36%; }
  .rf-splash-sparkles__dot:nth-child(70) { left: 36%; }
  .rf-splash-sparkles__dot:nth-child(71) { left: 37%; }
  .rf-splash-sparkles__dot:nth-child(72) { left: 46%; }
  .rf-splash-sparkles__dot:nth-child(73) { left: 58%; }
  .rf-splash-sparkles__dot:nth-child(74) { left: 40%; }
  .rf-splash-sparkles__dot:nth-child(75) { left: 36%; }
  .rf-splash-sparkles__dot:nth-child(76) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(77) { left: 39%; }
  .rf-splash-sparkles__dot:nth-child(78) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(79) { left: 61%; }
  .rf-splash-sparkles__dot:nth-child(80) { left: 41%; }
  .rf-splash-sparkles__dot:nth-child(81) { left: 59%; }
  .rf-splash-sparkles__dot:nth-child(82) { left: 37%; }
  .rf-splash-sparkles__dot:nth-child(83) { left: 62%; }
  .rf-splash-sparkles__dot:nth-child(84) { left: 59%; }
  .rf-splash-sparkles__dot:nth-child(85) { left: 61%; }
  .rf-splash-sparkles__dot:nth-child(86) { left: 61%; }
  .rf-splash-sparkles__dot:nth-child(87) { left: 39%; }
  .rf-splash-sparkles__dot:nth-child(88) { left: 41%; }
  .rf-splash-sparkles__dot:nth-child(89) { left: 39%; }
  .rf-splash-sparkles__dot:nth-child(90) { left: 48%; }
  .rf-splash-sparkles__dot:nth-child(91) { left: 62%; }
  .rf-splash-sparkles__dot:nth-child(92) { left: 58%; }
  .rf-splash-sparkles__dot:nth-child(93) { left: 60%; }
  .rf-splash-sparkles__dot:nth-child(94) { left: 59%; }
  .rf-splash-sparkles__dot:nth-child(95) { left: 58%; }
  .rf-splash-sparkles__dot:nth-child(96) { left: 61%; }
}

@keyframes rf-sparkle {
  0%, 100% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.3); }
}

.splash--playing ~ .rf-splash-sparkles,
.splash--done ~ .rf-splash-sparkles {
  display: none;
}

.rf-splash-title {
  position: fixed;
  top: 10%;
  left: 0;
  right: 0;
  z-index: 10000;
  text-align: center;
  font-family: var(--rf-font-title);
  font-size: 1.5rem;
  font-style: italic;
  font-weight: 400;
  color: #fff;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
  padding: 0 1.5rem;
  pointer-events: none;
  animation: rf-splash-title-pulse 2s ease-in-out infinite;
}

.splash--playing ~ .rf-splash-title,
.splash--done ~ .rf-splash-title {
  display: none;
}

@keyframes rf-splash-title-pulse {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}

.theme-romantic-flower .splash__title {
  font-family: var(--rf-font-names);
  font-weight: 300;
  font-style: italic;
  color: var(--rf-text);
}

.theme-romantic-flower .splash__subtitle {
  font-family: var(--rf-font-body);
  color: var(--rf-text-muted);
}

.theme-romantic-flower .splash__btn {
  background: var(--rf-primary);
  color: var(--rf-white);
  border-radius: 50px;
  font-family: var(--rf-font-body);
}

.theme-romantic-flower .splash__btn:hover {
  background: var(--rf-primary-hover);
}

/* ─── FAQ ─── */
.theme-romantic-flower .faq-section__title {
  font-family: var(--rf-font-title);
  font-weight: 600;
  font-style: italic;
}

/* ─── Claim invitation overrides ─── */
.theme-romantic-flower .claim-invitation__fab {
  background: var(--rf-glass);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: var(--rf-primary);
  border: 1px solid var(--rf-glass-border);
}

.theme-romantic-flower .claim-invitation__fab:hover {
  background: var(--rf-primary);
  color: var(--rf-white);
}
