
/* =========================================================
   V14 ROYAL CINEMATIC — mejora integral sobre V13
   ========================================================= */
:root{--r-black:#050204;--r-wine:#3b0711;--r-red:#7e1020;--r-gold:#c8a24a;--r-champ:#f0d58a;--r-ivory:#fff8ef;--r-ease:cubic-bezier(.22,.61,.36,1)}
html{background:var(--r-black)!important;scroll-behavior:smooth}body{background:var(--r-black)!important;color:var(--r-ivory)!important;overflow-x:hidden}.opening{background:radial-gradient(circle at 50% 35%,rgba(240,213,138,.15),transparent 20%),radial-gradient(circle at 15% 80%,rgba(126,16,32,.32),transparent 35%),linear-gradient(135deg,#030102,#1b030a 52%,#050103)!important;transition:opacity 1.1s var(--r-ease),visibility 1.1s var(--r-ease),transform 1.1s var(--r-ease)}.opening.closed{opacity:0!important;visibility:hidden!important;transform:scale(1.035);pointer-events:none}.opening::before{content:"";position:absolute;inset:22px;border:1px solid rgba(240,213,138,.28)}.opening::after{content:"";position:absolute;inset:34px;border:1px solid rgba(240,213,138,.08)}.opening-card{opacity:0;animation:openingIn 1.4s .3s var(--r-ease) forwards}.opening-number,.opening-xv{font:clamp(7rem,18vw,13rem)/.78 Cinzel,serif!important;color:transparent!important;-webkit-text-stroke:1px var(--r-champ)!important;text-shadow:0 0 35px rgba(240,213,138,.2)!important;opacity:0;transform:translateY(22px) scale(.94);animation:xvIn 1.7s .9s var(--r-ease) forwards;position:relative}.opening-xv::after{content:"";position:absolute;top:50%;left:50%;width:90px;height:130px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9),rgba(240,213,138,.9),transparent);filter:blur(8px);transform:translate(-160%,-50%) skewX(-15deg);opacity:0;animation:nameSweep 1.5s 2.2s ease forwards}.opening-name{position:relative;color:var(--r-champ)!important}.opening-rule{height:1px;width:0;margin:20px auto;background:linear-gradient(90deg,transparent,var(--r-champ),transparent);animation:lineDraw 1s 2.35s var(--r-ease) forwards}.opening-card>p:not(.eyebrow){color:rgba(255,248,239,.8)!important}@keyframes openingIn{to{opacity:1;transform:none}}@keyframes xvIn{to{opacity:1;transform:none}}@keyframes lineDraw{to{width:min(330px,65vw)}}@keyframes nameSweep{0%{opacity:0}25%{opacity:1}100%{opacity:0;transform:translate(160%,-50%) skewX(-15deg)}}
/* Todas las secciones pasan a escena inmersiva; las fotos dejan de verse como tarjetas pegadas. */
main{background:var(--r-black)!important;overflow:hidden!important}.cinematic-section{width:100vw!important;max-width:none!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;min-height:100svh!important;border:0!important;background-size:cover!important;background-position:center!important;background-attachment:scroll!important;position:relative!important;overflow:hidden!important;isolation:isolate}.cinematic-section::before{color:rgba(240,213,138,.6)!important}.cinematic-section::after{background:linear-gradient(90deg,rgba(4,1,3,.84),rgba(12,2,6,.22),rgba(4,1,3,.8)),radial-gradient(circle at 50% 50%,transparent 25%,rgba(0,0,0,.5))!important}.cinematic-section .visual-card{display:none!important}.cinematic-section .text-card,.cinematic-section .dress-card,.cinematic-section .rsvp-card{background:transparent!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important}.cinematic-section .text-card::before,.cinematic-section .dress-card::before,.cinematic-section .rsvp-card::before{display:none!important}.cinematic-section .section-title{position:relative;z-index:5}.cinematic-section .section-title,.cinematic-section .text-card,.cinematic-section .parents-grid,.cinematic-section .event-grid,.cinematic-section .countdown,.cinematic-section .dress-card,.cinematic-section .rsvp-card{position:relative;z-index:5}.cinematic-section h2{font:clamp(4.5rem,9vw,8rem)/.82 Italianno,cursive!important;color:var(--r-champ)!important;text-shadow:0 5px 30px rgba(0,0,0,.35)}.cinematic-section .eyebrow{color:var(--r-champ)!important;letter-spacing:.28em!important}.cinematic-section p{color:rgba(255,248,239,.86)}
/* Fondos por escena */
#historia{background-image:linear-gradient(90deg,rgba(4,1,3,.82),rgba(4,1,3,.25),rgba(4,1,3,.8)),url('../assets/images/luxury/02-hero-roses.jpg')!important}.parents{background-image:linear-gradient(90deg,rgba(4,1,3,.78),rgba(20,3,8,.25),rgba(4,1,3,.82)),url('../assets/images/luxury/01-hero-portrait.jpg')!important}.event{background-image:linear-gradient(90deg,rgba(4,1,3,.8),rgba(4,1,3,.25),rgba(4,1,3,.8)),url('../assets/images/luxury/06-black-gold-bokeh.jpg')!important}.countdown-section{background-image:linear-gradient(90deg,rgba(4,1,3,.86),rgba(4,1,3,.5)),url('../assets/images/luxury/05-candlelight-gold.jpg')!important}.place{background-image:linear-gradient(90deg,rgba(4,1,3,.25),rgba(4,1,3,.55),rgba(4,1,3,.9)),url('../assets/images/luxury/04-velvet-burgundy.jpg')!important}.dress{background-image:linear-gradient(90deg,rgba(255,248,239,.88),rgba(255,248,239,.25),rgba(20,2,7,.62)),url('../assets/images/luxury/03-hero-dress.jpg')!important}.message{background-image:linear-gradient(90deg,rgba(4,1,3,.75),rgba(4,1,3,.2),rgba(4,1,3,.85)),url('../assets/images/luxury/02-hero-roses.jpg')!important}.envelopes{background-image:linear-gradient(90deg,rgba(4,1,3,.72),rgba(4,1,3,.35),rgba(4,1,3,.8)),url('../assets/images/luxury/05-candlelight-gold.jpg')!important}.rsvp{background-image:linear-gradient(90deg,rgba(4,1,3,.82),rgba(4,1,3,.28),rgba(4,1,3,.8)),url('../assets/images/luxury/06-black-gold-bokeh.jpg')!important}.finale{background-image:linear-gradient(rgba(4,1,3,.35),rgba(4,1,3,.75)),url('../assets/images/luxury/01-hero-portrait.jpg')!important}
/* Títulos: reveal en varias direcciones + línea dorada */
.lux-reveal-text{opacity:0}.lux-reveal-text.lux-text-visible{animation:royalText .85s var(--r-ease) forwards}.lux-title-line{height:1px;width:0;max-width:280px;background:linear-gradient(90deg,transparent,var(--r-champ),transparent);margin:15px auto 25px;box-shadow:0 0 15px rgba(240,213,138,.35)}.lux-title-line.lux-text-visible{animation:lineDraw .9s var(--r-ease) forwards}@keyframes royalText{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
/* Galería editorial */
.royal-gallery{width:100vw!important;margin-left:calc(50% - 50vw)!important;min-height:100svh;padding:110px 6vw 140px;position:relative;overflow:hidden;background:#070305!important}.gallery-bg{position:absolute;inset:0;background:linear-gradient(rgba(5,2,4,.76),rgba(5,2,4,.94)),url('../assets/images/luxury/06-black-gold-bokeh.jpg') center/cover;opacity:.9}.gallery-header{position:relative;z-index:3;text-align:center;max-width:800px;margin:0 auto 45px}.royal-gallery-grid{position:relative;z-index:3;max-width:1300px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:280px;gap:14px}.gallery-item{position:relative;display:block;overflow:hidden;background:#10050a;opacity:0;transform:translateY(30px);transition:opacity .9s var(--r-ease),transform .9s var(--r-ease),box-shadow .5s}.gallery-item.visible,.gallery-item.lux-text-visible{opacity:1;transform:none}.gallery-item.gallery-tall{grid-row:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--r-ease),filter 1.2s}.gallery-item:hover img{transform:scale(1.07);filter:saturate(1.05)}.gallery-item::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent 38%,rgba(255,255,255,.2) 50%,transparent 62%);transform:translateX(-130%);transition:transform 1s}.gallery-item:hover::after{transform:translateX(130%)}
/* Contador champagne */
.countdown{gap:14px!important}.countdown>div{background:rgba(10,2,6,.45)!important;border:1px solid rgba(240,213,138,.32)!important;box-shadow:0 18px 55px rgba(0,0,0,.28)!important;backdrop-filter:blur(10px)}.countdown span{color:var(--r-champ)!important;text-shadow:0 0 20px rgba(240,213,138,.18)}.countdown small{color:rgba(255,248,239,.78)!important;font-family:Cinzel,serif}
/* Música */
.floating-music,.royal-music{border-color:rgba(240,213,138,.55)!important;background:rgba(13,2,7,.78)!important;color:var(--r-champ)!important;backdrop-filter:blur(14px);transition:.35s}.floating-music.playing{animation:musicPulse 1.7s ease-in-out infinite}@keyframes musicPulse{50%{box-shadow:0 0 0 10px rgba(240,213,138,.04),0 0 30px rgba(240,213,138,.3);transform:scale(1.06)}}
/* Lluvia de sobres */
.envelopes .envelope-stage{background:transparent!important;border:0!important;box-shadow:none!important}.fall-envelope{filter:drop-shadow(0 10px 14px rgba(0,0,0,.35));cursor:pointer}.envelope-pop{position:fixed!important;z-index:10010!important;background:linear-gradient(145deg,#12030a,#2b0710)!important;color:white!important;border:1px solid rgba(240,213,138,.35)!important;box-shadow:0 35px 100px rgba(0,0,0,.6)!important}
/* Lightbox premium */
.lightbox{background:rgba(4,1,3,.96)!important}.lightbox-image{border:1px solid rgba(240,213,138,.35)!important;border-radius:4px!important;box-shadow:0 40px 120px rgba(0,0,0,.65)!important}.lightbox-close,.lightbox-prev,.lightbox-next{background:rgba(20,4,10,.72)!important;border-color:rgba(240,213,138,.35)!important}.lightbox-caption,.lightbox-counter{color:var(--r-champ)!important}
/* Partículas y mariposas */
#v14Particles{position:fixed;inset:0;z-index:4500;pointer-events:none;overflow:hidden}.v14-particle{position:absolute;bottom:-20px;width:4px;height:4px;border-radius:50%;background:var(--r-champ);box-shadow:0 0 12px rgba(240,213,138,.75);animation:v14Particle linear forwards}@keyframes v14Particle{0%{transform:translate3d(0,0,0) scale(.6);opacity:0}12%{opacity:.6}50%{transform:translate3d(var(--drift),-55vh,0);opacity:.4}100%{transform:translate3d(calc(var(--drift)*-.3),-115vh,0) scale(.2);opacity:0}}.v14-butterfly{position:fixed;left:-60px;z-index:4501;pointer-events:none;animation:v14Butterfly linear forwards}@keyframes v14Butterfly{0%{transform:translateX(-70px);opacity:0}10%{opacity:.7}50%{transform:translateX(50vw) translateY(-30px)}100%{transform:translateX(115vw) translateY(20px);opacity:0}}
#sceneVeil{position:fixed;inset:0;z-index:10001;pointer-events:none;background:radial-gradient(circle,rgba(255,248,239,.9),rgba(240,213,138,.2),rgba(59,7,17,.95));opacity:0;transition:opacity .45s}.flash{opacity:.8!important}
@media(max-width:800px){.opening::before{inset:12px}.opening::after{inset:22px}.opening-name{font-size:4.3rem}.cinema-nav{top:auto!important;bottom:12px!important}.royal-gallery{padding:90px 5vw 130px;min-height:auto}.royal-gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px;gap:9px}.gallery-item.gallery-tall{grid-row:span 2}.cinematic-section .section-title,.cinematic-section .text-card,.cinematic-section .parents-grid,.cinematic-section .event-grid,.cinematic-section .countdown,.cinematic-section .dress-card,.cinematic-section .rsvp-card{max-width:100%;margin-left:auto;margin-right:auto}.cinematic-section .section-title,.cinematic-section .text-card,.cinematic-section .dress-card,.cinematic-section .rsvp-card{padding-left:6vw;padding-right:6vw}.cinematic-section .text-card{text-align:center}.countdown{grid-template-columns:repeat(2,1fr)!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* V14.1 — Galería: las miniaturas deben ser visibles desde el primer momento. */
.royal-gallery-grid .gallery-item{opacity:1!important;transform:none!important;visibility:visible!important}
.royal-gallery-grid .gallery-item img{opacity:1!important;visibility:visible!important}
.royal-gallery-grid .gallery-item:focus-visible{outline:2px solid var(--r-champ);outline-offset:3px}
.royal-gallery-grid .gallery-item::before{content:'VER FOTO';position:absolute;left:14px;bottom:14px;z-index:2;padding:6px 9px;border:1px solid rgba(240,213,138,.5);background:rgba(5,2,4,.42);backdrop-filter:blur(8px);color:var(--r-champ);font:9px Cinzel,serif;letter-spacing:.16em;opacity:0;transition:.35s;pointer-events:none}
.royal-gallery-grid .gallery-item:hover::before,.royal-gallery-grid .gallery-item:focus-visible::before{opacity:1}
/* V14.1 — Programación premium */
.schedule-section{min-height:100svh!important;display:flex;align-items:center;justify-content:center;padding:110px 7vw;position:relative;background:#070305;overflow:hidden}
.schedule-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,2,4,.92),rgba(59,7,17,.55),rgba(5,2,4,.9)),url('../assets/images/luxury/05-candlelight-gold.jpg') center/cover;filter:saturate(.9)}
.schedule-content{position:relative;z-index:2;width:min(980px,100%);text-align:center}
.schedule-content h2{font:clamp(4.2rem,8vw,7rem)/.9 Italianno,cursive;color:var(--r-champ);margin:0 0 8px}
.schedule-content .gold-line{width:0;height:1px;margin:12px auto 38px;background:linear-gradient(90deg,transparent,var(--r-champ),transparent);animation:lineDraw .9s .4s var(--r-ease) forwards}
.schedule-timeline{position:relative;max-width:900px;margin:auto;text-align:left}
.schedule-timeline:before{content:'';position:absolute;left:168px;top:12px;bottom:12px;width:1px;background:linear-gradient(var(--r-champ),rgba(240,213,138,.12),var(--r-champ));box-shadow:0 0 15px rgba(240,213,138,.18)}
.schedule-item{display:grid;grid-template-columns:145px 46px 1fr;align-items:center;min-height:130px;position:relative}
.schedule-time{font:1.35rem Cinzel,serif;color:var(--r-champ);text-align:right;padding-right:22px;letter-spacing:.05em}
.schedule-time small{font-size:.65em;display:block;opacity:.8;margin-top:5px}
.schedule-dot{width:13px;height:13px;border-radius:50%;background:var(--r-champ);border:3px solid rgba(59,7,17,.9);box-shadow:0 0 0 1px var(--r-champ),0 0 18px rgba(240,213,138,.35);justify-self:center;z-index:2}
.schedule-item h3{margin:0 0 7px;font:2rem Cinzel,serif;color:#fff8ef;font-weight:500}
.schedule-item p{margin:0;color:rgba(255,248,239,.72);font-size:1rem;line-height:1.55;max-width:560px}
@media(max-width:800px){
 .schedule-section{padding:95px 6vw 120px}
 .schedule-timeline:before{left:92px}
 .schedule-item{grid-template-columns:75px 34px 1fr;min-height:145px}
 .schedule-time{font-size:1rem;padding-right:10px}
 .schedule-item h3{font-size:1.25rem}
 .schedule-item p{font-size:.92rem}
 .schedule-dot{width:11px;height:11px}
}


/* =========================================================
   V14.2 — refinamiento sin alterar la estética V14.1
   ========================================================= */
/* Entrada: misma estética, pero con una secuencia más clara: XV → nombre → contenido. */
.opening-card .opening-name{opacity:0;animation:nameReveal .9s 1.25s var(--r-ease) forwards}
.opening-card .opening-card>p:not(.eyebrow){opacity:0;animation:openingCopy .8s 1.7s var(--r-ease) forwards}
.opening-card .opening-card>.lux-btn,.opening-card .sound-link{opacity:0;animation:openingControls .8s 2.05s var(--r-ease) forwards}
@keyframes nameReveal{from{opacity:0;transform:translateY(12px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
@keyframes openingCopy{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes openingControls{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
/* La galería siempre conserva sus previews visibles, incluso si otro estilo de animación falla. */
.royal-gallery-grid{content-visibility:auto;contain-intrinsic-size:900px}
.royal-gallery-grid .gallery-item{opacity:1!important;visibility:visible!important;transform:none!important}
.royal-gallery-grid .gallery-item img{opacity:1!important;visibility:visible!important;display:block!important}
.royal-gallery-grid .gallery-item{cursor:zoom-in}
/* Entrada de cada bloque de programación, manteniendo el diseño V14.1. */
.schedule-item{opacity:0;transform:translateY(16px);animation:scheduleIn .7s var(--r-ease) forwards}
.schedule-item:nth-child(1){animation-delay:.15s}.schedule-item:nth-child(2){animation-delay:.3s}.schedule-item:nth-child(3){animation-delay:.45s}.schedule-item:nth-child(4){animation-delay:.6s}
@keyframes scheduleIn{to{opacity:1;transform:none}}
.event-calendar{display:inline-flex!important;margin:22px auto 0!important;position:relative;z-index:6}
@media(max-width:800px){.event-calendar{margin:18px auto 0!important}.schedule-item{animation-delay:.05s}}
@media(prefers-reduced-motion:reduce){.opening-card .opening-name,.opening-card .opening-card>p:not(.eyebrow),.opening-card .opening-card>.lux-btn,.opening-card .sound-link,.schedule-item{animation:none!important;opacity:1!important;transform:none!important}}


/* V14.3 polish: one robust envelope modal */
body.modal-open{overflow:hidden}
.envelope-pop{display:grid;place-items:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .32s ease,visibility .32s ease!important}
.envelope-pop.show{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
.envelope-pop-inner{position:relative;width:min(560px,calc(100vw - 32px));padding:42px 34px 30px;border-radius:24px;background:linear-gradient(145deg,#12030a,#2b0710);border:1px solid rgba(240,213,138,.45);box-shadow:0 35px 100px rgba(0,0,0,.65),inset 0 0 50px rgba(240,213,138,.04);text-align:center}
.envelope-pop-x{position:absolute;top:10px;right:13px;width:38px;height:38px;border-radius:50%;border:1px solid rgba(240,213,138,.35);background:rgba(255,255,255,.05);color:#f0d58a;font-size:25px;line-height:1;cursor:pointer}
.envelope-pop-x:hover{background:rgba(240,213,138,.12);transform:rotate(90deg)}
.envelope-pop .envelope-close{cursor:pointer;position:relative;z-index:2}
.envelope-pop p{max-width:470px;margin:12px auto 18px;line-height:1.65}
.fall-envelope{user-select:none;-webkit-tap-highlight-color:transparent}
.fall-envelope:focus{outline:2px solid #f0d58a;outline-offset:5px;border-radius:8px}
@media(max-width:600px){.envelope-pop-inner{padding:42px 22px 24px}.envelope-pop h3{font-size:2.6rem}.envelope-pop p{font-size:1rem}}

/* =========================================================
   V14.4 — recuerdos reales de Sara + pulido fino
   ========================================================= */
.royal-gallery{
  min-height:100svh!important;
  padding:110px 5vw 140px!important;
  background:#070305!important;
}
.gallery-bg{
  background:
    radial-gradient(circle at 15% 15%,rgba(240,213,138,.12),transparent 25%),
    radial-gradient(circle at 85% 70%,rgba(126,16,32,.16),transparent 30%),
    linear-gradient(rgba(4,1,3,.82),rgba(4,1,3,.96)),
    url('../assets/images/luxury/06-black-gold-bokeh.jpg') center/cover!important;
  opacity:1!important;
}
.gallery-glow{position:absolute;width:420px;height:420px;border-radius:50%;filter:blur(70px);pointer-events:none;z-index:1;opacity:.18}
.gallery-glow-a{left:-160px;top:25%;background:#c8a24a}.gallery-glow-b{right:-180px;bottom:10%;background:#7e1020}
.gallery-header{position:relative;z-index:3;max-width:840px;margin:0 auto 48px!important;text-align:center!important}
.gallery-header h2{margin-bottom:16px!important}
.gallery-intro{max-width:650px;margin:18px auto 0;color:rgba(255,248,239,.7)!important;font-size:1.08rem;line-height:1.65}
.royal-gallery-grid-11{
  max-width:1320px!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-auto-rows:340px!important;
  gap:16px!important;
  align-items:stretch;
}
.royal-gallery-grid-11 .gallery-item{
  opacity:1!important;visibility:visible!important;transform:none!important;
  position:relative!important;display:flex!important;align-items:flex-end!important;justify-content:center!important;
  border-radius:26px!important;overflow:hidden!important;
  border:1px solid rgba(240,213,138,.22)!important;
  background:#16070c!important;
  box-shadow:0 20px 70px rgba(0,0,0,.34),inset 0 0 0 1px rgba(255,255,255,.03)!important;
  isolation:isolate;
}
.royal-gallery-grid-11 .gallery-item::after{
  content:""!important;position:absolute!important;inset:0!important;z-index:1!important;
  background:linear-gradient(180deg,transparent 45%,rgba(3,1,2,.08) 56%,rgba(3,1,2,.72) 100%)!important;
  transform:none!important;opacity:1!important;pointer-events:none!important;
}
.royal-gallery-grid-11 .gallery-item::before{
  content:""!important;position:absolute!important;inset:12px!important;z-index:3!important;
  border:1px solid rgba(240,213,138,.16)!important;border-radius:18px!important;
  background:linear-gradient(135deg,rgba(255,255,255,.07),transparent 28%,transparent 72%,rgba(240,213,138,.05))!important;
  opacity:1!important;pointer-events:none!important;
}
.royal-gallery-grid-11 .gallery-item img{
  position:relative!important;z-index:2!important;
  width:100%!important;height:100%!important;display:block!important;
  object-fit:contain!important;object-position:center bottom!important;
  background:transparent!important;border:0!important;border-radius:0!important;
  padding:15px!important;
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.34))!important;
  transition:transform 1s var(--r-ease),filter 1s var(--r-ease)!important;
}
.royal-gallery-grid-11 .gallery-item:hover img{transform:scale(1.045) translateY(-5px)!important;filter:drop-shadow(0 24px 34px rgba(0,0,0,.5)) saturate(1.04)!important}
.gallery-age{position:absolute!important;left:18px!important;top:18px!important;z-index:5!important;padding:7px 11px!important;border-radius:999px!important;border:1px solid rgba(240,213,138,.34)!important;background:rgba(5,2,4,.55)!important;color:var(--r-champ)!important;backdrop-filter:blur(10px)!important;font:9px Cinzel,serif!important;letter-spacing:.18em!important;box-shadow:0 8px 20px rgba(0,0,0,.18)!important}
.gallery-item[data-caption]::marker{display:none}
.royal-gallery-grid-11 .gallery-item:nth-child(1){background:radial-gradient(circle at 50% 20%,rgba(240,213,138,.18),transparent 35%),linear-gradient(145deg,#2e1514,#100308),url('../assets/images/luxury/05-candlelight-gold.jpg') center/cover}
.royal-gallery-grid-11 .gallery-item:nth-child(2){background:radial-gradient(circle at 50% 20%,rgba(240,213,138,.13),transparent 34%),linear-gradient(145deg,#5e2030,#120309),url('../assets/images/luxury/02-hero-roses.jpg') center/cover}
.royal-gallery-grid-11 .gallery-item:nth-child(3){background:radial-gradient(circle at 50% 15%,rgba(240,213,138,.15),transparent 30%),linear-gradient(145deg,#28303c,#09060a),url('../assets/images/luxury/06-black-gold-bokeh.jpg') center/cover}
.royal-gallery-grid-11 .gallery-item:nth-child(4){background:radial-gradient(circle at 50% 20%,rgba(240,213,138,.12),transparent 35%),linear-gradient(145deg,#4e1b27,#0a0206),url('../assets/images/luxury/04-velvet-burgundy.jpg') center/cover}
.royal-gallery-grid-11 .gallery-item:nth-child(5){background:radial-gradient(circle at 50% 20%,rgba(240,213,138,.13),transparent 35%),linear-gradient(145deg,#49301b,#090509),url('../assets/images/luxury/05-candlelight-gold.jpg') center/cover}
.royal-gallery-grid-11 .gallery-item:nth-child(6){background:radial-gradient(circle at 50% 20%,rgba(240,213,138,.1),transparent 35%),linear-gradient(145deg,#3f1723,#080307),url('../assets/images/luxury/02-hero-roses.jpg') center/cover}
.royal-gallery-grid-11 .gallery-item:nth-child(7){background:radial-gradient(circle at 50% 18%,rgba(240,213,138,.12),transparent 35%),linear-gradient(145deg,#1e1b22,#080307),url('../assets/images/luxury/06-black-gold-bokeh.jpg') center/cover}
.royal-gallery-grid-11 .gallery-item:nth-child(8){background:radial-gradient(circle at 50% 18%,rgba(240,213,138,.14),transparent 35%),linear-gradient(145deg,#4a171e,#090307),url('../assets/images/luxury/03-hero-dress.jpg') center/cover}
.royal-gallery-grid-11 .gallery-item:nth-child(9){background:radial-gradient(circle at 50% 18%,rgba(240,213,138,.13),transparent 34%),linear-gradient(145deg,#2a1520,#070307),url('../assets/images/luxury/04-velvet-burgundy.jpg') center/cover}
.royal-gallery-grid-11 .gallery-item:nth-child(10){background:radial-gradient(circle at 50% 15%,rgba(240,213,138,.14),transparent 34%),linear-gradient(145deg,#2c1c1a,#070305),url('../assets/images/luxury/05-candlelight-gold.jpg') center/cover}
.royal-gallery-grid-11 .gallery-item:nth-child(11){background:radial-gradient(circle at 50% 15%,rgba(240,213,138,.2),transparent 38%),linear-gradient(145deg,#40111d,#080307),url('../assets/images/luxury/01-hero-portrait.jpg') center/cover}
.royal-gallery-grid-11 .gallery-feature{grid-column:span 2;grid-row:span 2}
.royal-gallery-grid-11 .gallery-landscape{grid-column:span 2}
.royal-gallery-grid-11 .gallery-final{grid-column:span 2}
.royal-gallery-grid-11 .gallery-feature img{padding:8px 12%!important}
.royal-gallery-grid-11 .gallery-final img{padding:8px 12%!important}
/* Hace que los marcos de la galería se sientan como parte del escenario, no como una foto pegada. */
.royal-gallery-grid-11 .gallery-item:hover{border-color:rgba(240,213,138,.42)!important;box-shadow:0 28px 90px rgba(0,0,0,.5),0 0 0 1px rgba(240,213,138,.08)!important;transform:translateY(-4px)!important}
/* Lightbox de las fotos reales */
.lightbox{background:radial-gradient(circle at 50% 35%,rgba(126,16,32,.18),rgba(4,1,3,.97) 60%)!important}
.lightbox-image{max-width:min(92vw,1300px)!important;max-height:84vh!important;object-fit:contain!important;border-radius:8px!important;background:radial-gradient(circle,rgba(240,213,138,.06),transparent 55%)!important;padding:8px!important}
.lightbox-content::before{border-color:rgba(240,213,138,.22)!important;box-shadow:0 0 55px rgba(240,213,138,.05)!important}
.lightbox-caption{font-family:Italianno,cursive!important;font-size:2.1rem!important;letter-spacing:.02em!important}
/* Programación: pequeños retoques sin cambiar la estética V14.2 */
.schedule-item:hover .schedule-dot{box-shadow:0 0 0 1px var(--r-champ),0 0 28px rgba(240,213,138,.5)!important;transform:scale(1.15)}
.schedule-item h3{transition:transform .35s var(--r-ease),color .35s ease}.schedule-item:hover h3{transform:translateX(6px);color:var(--r-champ)!important}
/* Contador: microanimación al cambiar de cifra */
.countdown span{display:inline-block;transition:transform .25s ease,opacity .25s ease}.countdown span.tick{transform:translateY(-5px) scale(1.04);opacity:.68}
/* Música */
.floating-music.playing{animation:musicPulse 1.7s ease-in-out infinite!important}
/* Modal de lluvia de sobres: más aire y cierre táctil */
.envelope-pop-inner{backdrop-filter:blur(16px)}
.envelope-close{min-height:44px;min-width:130px}
@media(max-width:900px){
  .royal-gallery{padding:90px 4.5vw 120px!important}
  .royal-gallery-grid-11{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:260px!important;gap:10px!important}
  .royal-gallery-grid-11 .gallery-feature,.royal-gallery-grid-11 .gallery-landscape,.royal-gallery-grid-11 .gallery-final{grid-column:span 2}
  .royal-gallery-grid-11 .gallery-feature{grid-row:span 2}
  .gallery-intro{font-size:1rem;padding:0 6vw}
}
@media(max-width:560px){
  .royal-gallery-grid-11{grid-auto-rows:245px!important}
  .royal-gallery-grid-11 .gallery-item img{padding:10px!important}
  .royal-gallery-grid-11 .gallery-feature img,.royal-gallery-grid-11 .gallery-final img{padding:8px 7%!important}
  .gallery-age{font-size:8px!important;left:13px!important;top:13px!important}
  .lightbox-caption{font-size:1.8rem!important;bottom:-38px!important}
}

/* =========================================================
   V14.4 FINAL GALLERY — MINIATURE FULLSCREEN MODE
   ========================================================= */
#galeria.royal-gallery{
  min-height:100svh!important;
  height:100svh!important;
  max-height:100svh!important;
  box-sizing:border-box!important;
  padding:clamp(18px,3vh,30px) clamp(14px,3vw,42px) clamp(18px,3vh,30px)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  overflow:hidden!important;
}
#galeria .gallery-header{
  flex:0 0 auto!important;
  width:100%!important;
  max-width:none!important;
  margin:0 auto clamp(10px,1.7vh,18px)!important;
  text-align:center!important;
}
#galeria .gallery-header .eyebrow{
  margin:0 0 5px!important;
  font-size:clamp(8px,0.75vw,11px)!important;
  letter-spacing:.26em!important;
}
#galeria .gallery-header h2{
  margin:0!important;
  font-size:clamp(2.6rem,4.5vw,4.6rem)!important;
  line-height:.9!important;
}
#galeria .gallery-header .gold-line{
  width:90px!important;
  margin:8px auto!important;
}
#galeria .gallery-intro{display:none!important}
#galeria .royal-gallery-grid-11{
  flex:1 1 auto!important;
  min-height:0!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-template-rows:repeat(3,minmax(0,1fr))!important;
  grid-auto-rows:auto!important;
  gap:clamp(5px,.8vw,10px)!important;
  overflow:hidden!important;
  align-content:stretch!important;
}
#galeria .royal-gallery-grid-11 .gallery-item,
#galeria .royal-gallery-grid-11 .gallery-item.gallery-feature,
#galeria .royal-gallery-grid-11 .gallery-item.gallery-landscape,
#galeria .royal-gallery-grid-11 .gallery-item.gallery-final{
  grid-column:span 1!important;
  grid-row:span 1!important;
  min-width:0!important;
  min-height:0!important;
  width:100%!important;
  height:100%!important;
  border-radius:12px!important;
  border:1px solid rgba(240,213,138,.20)!important;
  background:rgba(16,5,10,.82)!important;
  box-shadow:0 10px 32px rgba(0,0,0,.28)!important;
  transform:none!important;
}
#galeria .royal-gallery-grid-11 .gallery-item img,
#galeria .royal-gallery-grid-11 .gallery-item.gallery-feature img,
#galeria .royal-gallery-grid-11 .gallery-item.gallery-final img{
  width:100%!important;
  height:100%!important;
  padding:5px!important;
  object-fit:contain!important;
  object-position:center!important;
  filter:drop-shadow(0 9px 15px rgba(0,0,0,.34))!important;
}
#galeria .royal-gallery-grid-11 .gallery-item::before{
  inset:6px!important;
  border-radius:8px!important;
}
#galeria .royal-gallery-grid-11 .gallery-item::after{
  background:linear-gradient(180deg,transparent 45%,rgba(3,1,2,.62) 100%)!important;
}
#galeria .royal-gallery-grid-11 .gallery-age{
  left:9px!important;
  top:9px!important;
  padding:5px 8px!important;
  font-size:7px!important;
  letter-spacing:.14em!important;
  background:rgba(5,2,4,.62)!important;
}
#galeria .royal-gallery-grid-11 .gallery-item:hover{
  transform:translateY(-2px)!important;
  border-color:rgba(240,213,138,.40)!important;
  box-shadow:0 15px 40px rgba(0,0,0,.42)!important;
}
#galeria .royal-gallery-grid-11 .gallery-item:hover img{
  transform:scale(1.035)!important;
}
@media(max-width:700px){
  #galeria.royal-gallery{
    padding:14px 8px 16px!important;
  }
  #galeria .gallery-header{
    margin-bottom:8px!important;
  }
  #galeria .gallery-header h2{
    font-size:clamp(2.15rem,10vw,3.1rem)!important;
  }
  #galeria .royal-gallery-grid-11{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-template-rows:repeat(4,minmax(0,1fr))!important;
    gap:4px!important;
  }
  #galeria .royal-gallery-grid-11 .gallery-item{
    border-radius:7px!important;
  }
  #galeria .royal-gallery-grid-11 .gallery-item::before{
    inset:3px!important;
    border-radius:5px!important;
  }
  #galeria .royal-gallery-grid-11 .gallery-age{
    left:5px!important;
    top:5px!important;
    padding:3px 5px!important;
    font-size:6px!important;
  }
}

/* V14.4.1 — ELEGANTE responsive en móviles */
.cinematic-section .big-word{
  font-size:clamp(2.2rem,10vw,7rem)!important;
  line-height:.95!important;
  letter-spacing:clamp(.04em,1.1vw,.15em)!important;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:normal;
  text-align:center;
}
@media(max-width:480px){
  .cinematic-section .big-word{
    font-size:clamp(2rem,11.5vw,4.5rem)!important;
    letter-spacing:.06em!important;
    line-height:.95!important;
  }
}


/* V14.5 — limpieza, rendimiento, accesibilidad y responsive final */
.opening-active .cinema-nav,
.opening-active #musicToggle,
.opening-active #sceneProgress{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
.family-greeting{
  margin:14px auto 18px!important;
  color:var(--r-champ)!important;
  font-family:Cinzel,serif;
  font-size:.82rem!important;
  letter-spacing:.08em;
}
.family-greeting strong{color:#fff8ef}
.dress .dress-copy .big-word{
  font-family:Cinzel,serif;
  font-weight:700;
  color:var(--r-champ)!important;
  font-size:clamp(2.1rem,8vw,6.5rem)!important;
  line-height:.9!important;
  letter-spacing:clamp(.025em,.8vw,.11em)!important;
  width:100%;
  max-width:100%;
  overflow-wrap:normal;
  word-break:normal;
  white-space:nowrap;
  text-align:center;
}
.dress .section-title h2{font-size:clamp(2.4rem,6vw,4.5rem)!important;line-height:1!important}
.dress .section-title>p:last-child{margin-top:8px}
.whatsapp-btn{min-height:52px;align-items:center;justify-content:center;text-align:center}
@media(max-width:800px){
  .cinematic-section h2{font-size:clamp(3rem,12vw,5.2rem)!important;line-height:.9!important}
  .cinematic-section .section-title{padding-top:12px}
  .cinematic-section .text-card{padding-top:18px;padding-bottom:28px}
  .cinematic-section .event-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .cinematic-section .event-box{padding:20px 10px!important;min-width:0}
  .cinematic-section .event-icon{font-size:3.1rem!important}
  .cinematic-section .event-box strong{font-size:.72rem!important}
  .cinematic-section .event-box small{font-size:.72rem!important}
  .dress .dress-card{min-height:0}
  .dress .dress-copy{padding:28px 16px 34px!important}
  .dress .dress-copy .big-word{font-size:clamp(2rem,10vw,3.7rem)!important;letter-spacing:.035em!important}
  .dress .reserved{font-size:1rem!important}
  .cinema-nav{max-width:calc(100vw - 20px);}
}
@media(max-width:360px){
  .cinema-nav{gap:8px!important;padding:6px 9px!important}
  .nav-dots{gap:6px!important}
  .nav-dots a{width:5px!important;height:5px!important}
  .nav-dots a.active{width:15px!important}
  .nav-music{font-size:.9rem!important}
  .dress .dress-copy .big-word{font-size:2rem!important;letter-spacing:.02em!important}
  .whatsapp-btn{width:100%;padding:14px 12px!important;font-size:.68rem!important}
}
@media(prefers-reduced-motion:reduce){
  .opening-active .cinema-nav,.opening-active #musicToggle{display:none!important}
  .fall-envelope,.v14-particle,.v14-butterfly{animation:none!important}
}

/* V14.6 — móvil premium: evitar recortes y mantener jerarquía visual */
@media (max-width: 480px){
  .dress .dress-copy .big-word{
    font-size:clamp(1.85rem,9.4vw,3.1rem)!important;
    letter-spacing:.018em!important;
    white-space:nowrap!important;
    transform:none!important;
  }
  .dress .section-title h2{font-size:clamp(2rem,8vw,3rem)!important}
  .dress .section-title>p:last-child{font-size:.92rem!important}
  .hero-content{padding-inline:18px!important}
  .hero-copy{max-width:34rem;margin-inline:auto}
  .hero-date{font-size:clamp(.72rem,3vw,.95rem)!important;letter-spacing:.12em!important}
}
@media (max-width: 340px){
  .dress .dress-copy .big-word{font-size:1.72rem!important;letter-spacing:.01em!important}
  .hero-date{letter-spacing:.08em!important}
  .lux-btn{max-width:calc(100vw - 36px)}
}

/* V14.7 — Lightbox gallery: controles sobre la fotografía */
.lightbox-content{
  position:relative!important;
  width:min(92vw,1300px)!important;
  max-width:1300px!important;
  max-height:88vh!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.lightbox-image{
  display:block!important;
  max-width:92vw!important;
  max-height:84vh!important;
  object-fit:contain!important;
}
.lightbox-close,
.lightbox-prev,
.lightbox-next{
  z-index:20!important;
  position:absolute!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  pointer-events:auto!important;
  box-shadow:0 8px 28px rgba(0,0,0,.45)!important;
  background:rgba(8,2,5,.72)!important;
  backdrop-filter:blur(10px)!important;
}
.lightbox-close{
  top:14px!important;
  right:14px!important;
  width:48px!important;
  height:48px!important;
  font-size:1.65rem!important;
  line-height:1!important;
}
.lightbox-prev,
.lightbox-next{
  top:50%!important;
  width:52px!important;
  height:52px!important;
  margin:0!important;
}
.lightbox-prev{
  left:14px!important;
  transform:translateY(-50%)!important;
}
.lightbox-next{
  right:14px!important;
  transform:translateY(-50%)!important;
}
.lightbox-prev:hover,
.lightbox-next:hover{
  transform:translateY(-50%) scale(1.08)!important;
}
.lightbox-counter{
  z-index:20!important;
  top:14px!important;
  left:50%!important;
}
.lightbox-caption{
  z-index:20!important;
  bottom:82px!important;
  left:50%!important;
  max-width:78vw!important;
  padding:6px 14px!important;
  border-radius:999px!important;
  background:rgba(8,2,5,.58)!important;
  backdrop-filter:blur(8px)!important;
  text-shadow:0 2px 12px rgba(0,0,0,.8)!important;
}
@media(max-width:700px){
  .lightbox{padding:10px!important}
  .lightbox-content{width:96vw!important;max-width:96vw!important;max-height:88vh!important}
  .lightbox-image{max-width:96vw!important;max-height:82vh!important;padding:5px!important}
  .lightbox-close{top:8px!important;right:8px!important;width:44px!important;height:44px!important;font-size:1.5rem!important}
  .lightbox-prev,.lightbox-next{width:46px!important;height:46px!important}
  .lightbox-prev{left:8px!important}
  .lightbox-next{right:8px!important}
  .lightbox-counter{top:8px!important;font-size:.68rem!important;padding:6px 11px!important}
  .lightbox-caption{bottom:8px!important;font-size:1.35rem!important;max-width:72vw!important;padding:4px 10px!important}
}
@media(max-width:380px){
  .lightbox-close{width:40px!important;height:40px!important;top:6px!important;right:6px!important}
  .lightbox-prev,.lightbox-next{width:42px!important;height:42px!important}
  .lightbox-prev{left:6px!important}
  .lightbox-next{right:6px!important}
}

/* V14.8 — Galería inmersiva + compartir invitación */
.lightbox-content{width:min(94vw,1320px)!important;max-width:1320px!important;max-height:92vh!important}
.lightbox-image{max-width:min(94vw,1280px)!important;max-height:82vh!important}
.lightbox-close,.lightbox-prev,.lightbox-next{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.lightbox-close:focus-visible,.lightbox-prev:focus-visible,.lightbox-next:focus-visible{outline:2px solid #E8D08A!important;outline-offset:3px!important}
.lightbox-progress{position:absolute;left:18px;right:18px;bottom:58px;height:2px;border-radius:99px;background:rgba(255,255,255,.14);overflow:hidden;z-index:22;pointer-events:none}
.lightbox-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#7b0f1e,#e8d08a);transition:width .35s ease}
.lightbox-thumbs{position:absolute;left:18px;right:18px;bottom:14px;display:flex;gap:7px;overflow-x:auto;justify-content:center;padding:3px 2px 5px;z-index:23;scrollbar-width:none}
.lightbox-thumbs::-webkit-scrollbar{display:none}
.lightbox-thumb{flex:0 0 48px;width:48px;height:38px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:7px;overflow:hidden;background:#13070a;opacity:.62;cursor:pointer;transition:transform .2s ease,opacity .2s ease,border-color .2s ease}
.lightbox-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.lightbox-thumb.active{opacity:1;border-color:#E8D08A;transform:translateY(-2px)}
.share-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:12px auto 0;padding:13px 20px;border:1px solid rgba(200,162,74,.34);border-radius:999px;background:rgba(255,255,255,.05);color:#F8F3EC;font-family:Cinzel,serif;font-size:.72rem;letter-spacing:.12em;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}
.share-btn:hover{transform:translateY(-2px);background:rgba(123,15,30,.42);border-color:rgba(232,208,138,.65)}
.share-btn:focus-visible{outline:2px solid #E8D08A;outline-offset:3px}
.share-status{min-height:1.3em;margin:7px auto 0!important;font-size:.82rem;color:rgba(255,248,239,.72)!important}
@media(max-width:700px){
  .lightbox-progress{bottom:57px;left:14px;right:14px}
  .lightbox-thumbs{justify-content:flex-start;bottom:10px;left:12px;right:12px}
  .lightbox-thumb{flex-basis:44px;width:44px;height:36px}
  .lightbox-caption{bottom:88px!important;max-width:82vw!important;font-size:1.35rem!important}
  .lightbox-counter{top:12px!important}
}
@media(prefers-reduced-motion:reduce){
  .lightbox-progress span,.lightbox-thumb,.share-btn{transition:none!important}
}

/* V15.1 — cierre visual y experiencia de apertura */
.opening .lux-btn{min-width:min(320px,calc(100vw - 56px));}
.opening .sound-link{margin-top:10px;}
.hero-content{max-width:820px;}
.hero-copy{max-width:680px;}
@media (max-width:480px){
  .opening-card{padding-inline:18px!important;}
  .opening-card .lux-btn{min-width:0;width:min(320px,calc(100vw - 44px));}
  .hero-content{padding-inline:20px!important;}
  .hero-copy{font-size:1.02rem!important;line-height:1.5!important;}
  .hero-date{white-space:nowrap;}
}
@media (prefers-reduced-motion:reduce){
  .opening-card .opening-name,.opening-card .opening-card>p:not(.eyebrow),.opening-card .opening-card>.lux-btn,.opening-card .sound-link{animation:none!important;opacity:1!important;transform:none!important;}
}
