/* Contraste opcional. Retirar este enlace del HTML devuelve el aspecto anterior. */
:root {
  --reading-ink: 16 6 28;
  --reading-opacity: .52;
}

/* Bordes definidos, sin resplandor ni desenfoque en las letras grandes. */
.hero__title,
.hero__event-date,
.section__inner > .display {
  paint-order: stroke fill;
  -webkit-text-stroke: .65px rgb(var(--reading-ink) / .9);
}
.hero__title { color: #fff9ff; font-weight: 700; }
.hero__event-date { color: #fff4df; font-weight: 700; }
.section__inner > .display { color: #fff9ff; font-weight: 600; }

/* El apoyo queda limitado al texto suelto; el paisaje permanece visible alrededor. */
:is(.hero__eyebrow, .hero__tagline, .hero__event-date),
.section__inner > :is(.message__copy, .message__signature, .dress__note,
  .prize__copy, .rsvp__note, .details__note, .weather__copy,
  .video-section__copy, .lodging__copy, .gifts__copy, .empty-note,
  .gallery__note, .section__status, .rsvp__deadline) {
  isolation: isolate;
}
.section__inner > :is(.message__copy, .message__signature, .dress__note,
  .prize__copy, .rsvp__note, .details__note, .weather__copy,
  .video-section__copy, .lodging__copy, .gifts__copy, .empty-note,
  .gallery__note, .section__status, .rsvp__deadline) {
  position: relative;
}
:is(.hero__eyebrow, .hero__tagline, .hero__event-date)::before,
.section__inner > :is(.message__copy, .message__signature, .dress__note,
  .prize__copy, .rsvp__note, .details__note, .weather__copy,
  .video-section__copy, .lodging__copy, .gifts__copy, .empty-note,
  .gallery__note, .section__status, .rsvp__deadline)::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: -.65rem -.75rem;
  background: linear-gradient(90deg, transparent,
    rgb(var(--reading-ink) / var(--reading-opacity)) 12%,
    rgb(var(--reading-ink) / var(--reading-opacity)) 88%, transparent);
  mask-image: linear-gradient(180deg, transparent, #000 22%, #000 78%, transparent);
  pointer-events: none;
}
.hero__tagline,
.section__inner > :is(.message__copy, .dress__note, .prize__copy,
  .rsvp__note, .details__note, .weather__copy, .video-section__copy,
  .lodging__copy, .gifts__copy, .empty-note, .gallery__note) {
  color: #fff6ff;
  font-weight: 500;
}
.hero__eyebrow, .section__inner > .eyebrow { color: #ffe0ac; }
.section__status, .section__inner .rsvp__deadline { color: #eee2f6; }

/* Más opacidad en las superficies que ya contienen datos y controles. */
.horror-card, .horror-player, .countdown div, .weather__day,
.lodging__card, .gifts__panel, .video-section__frame, .gallery__placeholder {
  background: #180a26eb;
}
.itinerary__list li { background: #180a2694; }
.itinerary__list h3 { color: #fff6ff; font-weight: 600; }
.itinerary__list p { color: #f0e3f7; font-weight: 500; }
