/* Composición de papelería: álbum, encaje y notas sobre la misma paleta. */
:root {
 --plum:var(--color-principal,#6b425e); --mauve:var(--color-superficie,#b692a7);
 --pink:var(--color-acento,#e2c5d6); --dusty:var(--color-secundario,#bc96b0);
 --deep:color-mix(in srgb,var(--color-fondo,#0c090e) 67%,var(--plum));
 --rose:color-mix(in srgb,var(--mauve) 38%,var(--pink));
 --paper-blush:color-mix(in srgb,var(--pink) 87%,#fff);
 --middle:color-mix(in srgb,var(--dusty) 65%,var(--plum));
 --script:"Great Vibes","Cormorant Garamond",Georgia,serif;
}
.paper-invitation { background:var(--deep); }
.paper-invitation::before,.paper-invitation::after { border-color:#bc96b03b; }
.hero { min-height:1120px; padding-top:90px; padding-bottom:90px; background:linear-gradient(180deg,var(--ink),var(--deep) 34%,var(--middle) 67%,var(--mauve)); }
.hero__eyebrow { margin-bottom:24px; }
.hero__name-composition { position:relative; display:table; max-width:100%; margin:auto; }
.xv-hero__art { position:absolute; z-index:3; width:128px; max-width:44%; height:auto; top:-62px; left:-8px; margin:0; transform:rotate(-17deg); transform-origin:50% 75%; pointer-events:none; }
.hero__pretitle { margin-bottom:70px; }
.portrait-medallion { position:relative; width:min(86%,300px); aspect-ratio:4/5; margin:25px auto 18px; }
.portrait-medallion__photo { position:absolute; left:14%; top:10.7%; width:72%; height:78.6%; border-radius:50%; object-fit:cover; object-position:50% 30%; }
.portrait-medallion__frame { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.hero__tagline { color:var(--paper); font-size:1.2rem; line-height:1.55; }
.hero__bottom { margin-top:30px; }
.hero__actions { margin-top:1.3rem; }
/* El cambio entre dos papeles ocupa ambos márgenes y mantiene libre el texto. */
main .section:not(.hero) {
 padding:144px 34px;
 background:linear-gradient(180deg,
  var(--join-top,var(--section-from)),
  color-mix(in srgb,var(--join-top,var(--section-from)) 85%,var(--section-from)) 28px,
  color-mix(in srgb,var(--join-top,var(--section-from)) 30%,var(--section-from)) 92px,
  var(--section-from) 140px,
  var(--section-to) calc(100% - 140px),
  color-mix(in srgb,var(--join-bottom,var(--section-to)) 30%,var(--section-to)) calc(100% - 92px),
  color-mix(in srgb,var(--join-bottom,var(--section-to)) 85%,var(--section-to)) calc(100% - 28px),
  var(--join-bottom,var(--section-to)));
}
.section:not(.hero)::after { display:none; }
.section__inner { position:relative; z-index:2; width:min(100%,29rem); }
.section__inner>.display { font:400 clamp(2.6rem,9vw,3.65rem)/1.2 var(--script); letter-spacing:0; max-width:20ch; margin-bottom:1.25rem; }
.section__inner>.eyebrow { font-size:.58rem; letter-spacing:.22em; }
.section__copy,.message__copy,.dress__note,.prize__copy,.rsvp__note { font-size:1.2rem; }
.tone-dark { --paper:var(--color-portada_texto,#ecdde7); --muted:#d7bbcd; --gold:var(--pink); --line:#e2c5d645; color:var(--paper); }
.tone-dark .section__inner .button--solid,.tone-dark .music__play { background:var(--pink); border-color:var(--pink); color:var(--deep); }
.tone-dark .section__inner .button--outline { border-color:var(--pink); color:var(--hero-paper); }
.tone-dark .section__inner .button:hover { background:var(--hero-paper); color:var(--deep); }
#mensaje { --section-from:var(--mauve); --section-to:var(--rose); }
#familia { --section-from:var(--rose); --section-to:var(--middle); }
#musica { --section-from:var(--plum); --section-to:var(--deep); }
#detalles { --section-from:var(--mauve); --section-to:var(--rose); }
#cuenta-regresiva { --section-from:var(--plum); --section-to:var(--deep); }
#lugar { --section-from:var(--deep); --section-to:var(--plum); }
#clima { --section-from:var(--mauve); --section-to:var(--rose); }
#itinerario { --section-from:var(--plum); --section-to:var(--deep); }
#galeria { --section-from:var(--deep); --section-to:var(--plum); }
#video { --section-from:var(--mauve); --section-to:var(--rose); }
#vestimenta { --section-from:var(--plum); --section-to:var(--deep); }
#hospedaje { --section-from:var(--deep); --section-to:var(--mauve); }
#regalos { --section-from:var(--plum); --section-to:var(--deep); }
#premio { --section-from:var(--mauve); --section-to:var(--rose); }
#agendar { --section-from:var(--plum); --section-to:var(--deep); }
#confirmar { --section-from:var(--deep); --section-to:var(--color-fondo,#0c090e); }
.paper-lace { position:absolute; z-index:1; width:min(30%,125px); height:auto; pointer-events:none; user-select:none; opacity:.42; }
.paper-lace--top { left:26px; top:22px; }
.paper-lace--bottom { right:26px; bottom:22px; transform:rotate(15deg); }
.tone-light .paper-lace { filter:brightness(.66); opacity:.45; }
.printed-note {
 --paper:var(--color-texto,#1d1320); --muted:var(--color-suave,#3f2738); --gold:var(--plum); --line:#6b425e48;
 position:relative; isolation:isolate; width:min(100%,27rem); padding:48px 30px 40px!important;
 color:var(--paper); background:transparent!important; border:0!important; border-radius:0!important;
 filter:drop-shadow(0 9px 12px #160d1926);
}
main .section .section__inner.printed-note { padding:48px 30px 40px; background:transparent; }
.printed-note::before { content:""; position:absolute; inset:0; z-index:-2; background:var(--paper-blush); clip-path:polygon(1% .8%,8% 0,18% .9%,26% .1%,37% .6%,45% 0,57% 1%,68% 0,76% .7%,89% .1%,98.5% .7%,99.4% 9%,99% 21%,100% 33%,99.3% 45%,99.8% 58%,99% 71%,99.6% 85%,99% 99%,89% 99.5%,77% 99%,65% 99.8%,54% 99.2%,43% 100%,31% 99.2%,21% 99.7%,10% 99%,.7% 99.4%,0 88%,.8% 74%,.2% 61%,.8% 48%,0 34%,.6% 21%,0 10%); }
.printed-note::after { content:""; position:absolute; inset:13px; z-index:-1; pointer-events:none; border:1px solid #6b425e38; }
.paper-cameo { display:block; width:63px; height:auto; margin:-82px auto 17px; }
.printed-note .section__inner .button--solid,.section__inner .printed-note .button--solid { background:var(--plum); border-color:var(--plum); color:#fbf3f8; }
.section__inner.printed-note>.display { color:var(--paper); }
.message__signature { font:400 2rem var(--script); }
.family-group { max-width:24rem; margin:auto; padding:1.6rem 1rem; border-top:1px solid #6b425e55; border-bottom:1px solid #6b425e55; background:linear-gradient(90deg,transparent,#e2c5d630,transparent); }
.family-group+.family-group { margin-top:1rem; }
.familygroup__title { letter-spacing:.18em; }
.familygroup__names { font:500 2rem/1.3 var(--sans); }
.familygroup__empty { color:#362034; }
.music .celebration-player { background:#e2c5d612; border-radius:2px; border-width:1px 0; padding:1.35rem .3rem; }
.music__song { font-size:2rem; }
.date-paper .month { background:transparent; border:0; padding:0; }
.date-paper .month .month__heading { font:400 1.65rem/1.25 var(--serif); letter-spacing:.06em; }
.countdown-section .countdown { gap:4px; }
.countdown div { aspect-ratio:4/5; display:flex; flex-direction:column; justify-content:center; padding:18px 0 12px; background:url('../media/oval-frame.svg') center/100% 100% no-repeat; border:0; }
.countdown b { font:400 clamp(1.45rem,6vw,2rem)/1 var(--serif); }
.countdown span { margin-top:7px; font-size:.5rem; letter-spacing:.05em; }
.venue__card { margin-top:35px; }
.venue__card .venue__name { font-size:1.7rem; }
.location-paper .printed-note .button--outline { color:var(--plum); border-color:var(--plum); }
.weather__outlook { background:#e2c5d639; border:1px solid #6b425e50; border-radius:90px 90px 2px 2px; padding:2rem 1.1rem; }
.antique-clock { width:104px; margin:1.4rem auto; transform:rotate(9deg); }
.antique-clock svg { display:block; width:100%; height:auto; }
.itinerary__list { max-width:25rem; }
.itinerary__list time { font-size:.75rem; }
.itinerary__list h3 { font-size:1.65rem; }
.itinerary__list p { font-size:1.08rem; }
.photo-album .section__inner { width:min(100%,30rem); }
.gallery__item,.gallery__placeholder { position:relative; aspect-ratio:3/4; padding:16px; border:1px solid #e2c5d65c; border-radius:2px; background:var(--paper-blush); }
.gallery__item::after { content:""; position:absolute; inset:7px; border:1px solid #6b425e59; pointer-events:none; }
.gallery__item img { width:100%; height:100%; object-fit:cover; }
.gallery__placeholder { color:var(--plum); }
.gallery__grid { gap:18px!important; }
.gallery__controls { margin-top:1.3rem; }
.video-section__frame { padding:9px; border:1px solid #6b425e55; background:var(--paper-blush); border-radius:2px; }
.dress__figures { margin:1.5rem auto; }
.dress__palette { gap:22px; margin:1.8rem auto 2rem; }
.dress__palette span { position:relative; width:35px; height:48px; border:0; border-radius:50%; }
.dress__palette span::after { content:""; position:absolute; inset:-8px -8px; pointer-events:none; background:url('../media/oval-frame.svg') center/100% 100% no-repeat; }
.lodging .section__inner { padding:30px 24px!important; background:var(--paper-blush)!important; border:1px solid #6b425e55!important; outline:1px solid #6b425e55; outline-offset:8px; }
.lodging__card { background:transparent; border-width:1px 0; }
.gifts__empty { background:#e2c5d60f; padding:2rem 1.2rem; border-width:1px 0; }
.gifts__panel { border-width:1px 0; background:#e2c5d608; }
.prize__criteria span { border-width:1px 0; }
.prize .section__icon--large { width:34px; height:34px; margin:1.3rem auto; }
.calendar .section__icon { width:58px; height:58px; }
.rsvp .rsvp__form { display:grid; gap:12px; margin:2rem auto 1.5rem; padding:36px 22px!important; }
.rsvp__form>label,.rsvp__choices legend,.rsvp__choices label { color:var(--paper); }
.rsvp .rsvp__form .button--solid { background:var(--plum); border-color:var(--plum); color:#fbf3f8; }
.rsvp .rsvp__form #guestName { width:100%; min-height:46px; padding:.6rem .7rem; background:#fff2; font-size:1.1rem; color:var(--paper); }
.rsvp .rsvp__form #guestName::placeholder { color:var(--muted); }
.rsvp__choices label { font-size:1.1rem; }
.rsvp__deadline { color:var(--hero-paper)!important; }
.footer { background:var(--color-fondo,#0c090e); color:var(--hero-paper); min-height:240px; }
.footer a { color:var(--pink); }
@media(max-width:360px) {
 .hero { min-height:1040px; padding-inline:29px; }
 .hero__pretitle { margin-bottom:64px; }
 .xv-hero__art { top:-55px; width:114px; left:0; }
 .portrait-medallion { width:260px; max-width:100%; }
 main .section:not(.hero) { padding:144px 29px; }
 .printed-note,main .section .section__inner.printed-note { padding:42px 23px 34px!important; }
 .section__inner>.display { font-size:2.6rem; }
 .section__copy,.message__copy,.dress__note,.prize__copy,.rsvp__note { font-size:1.12rem; }
 .countdown b { font-size:1.4rem; }
 .itinerary__list li { grid-template-columns:4.2rem minmax(0,1fr); gap:1rem; }
 .itinerary__list h3 { font-size:1.45rem; }
 .gallery__item { padding:12px; }
 .dress__palette { gap:18px; }
 .lodging .section__inner { padding:27px 18px!important; }
}
