:root{
  --wine:#740b1c; --wine2:#a71932; --gold:#c9a24a; --gold2:#f1d88c;
  --cream:#fffaf3; --ivory:#fffdf9; --ink:#3b2223; --muted:#795f60;
  --shadow:0 24px 80px rgba(77,14,24,.12);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--cream);color:var(--ink);font-family:"Cormorant Garamond",serif;font-size:20px;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:5;background:radial-gradient(circle at 50% 20%,transparent 0 35%,rgba(116,11,28,.035) 100%)}
a{text-decoration:none;color:inherit}.section{padding:110px 7%;position:relative;z-index:2}.eyebrow{font-family:Cinzel,serif;font-size:.72rem;letter-spacing:.24em;color:var(--gold);font-weight:600;margin:0 0 15px;text-transform:uppercase}.section-title{text-align:center;max-width:900px;margin:0 auto 50px}.section-title h2,.text-card h2{font-family:Italianno,cursive;font-weight:400;color:var(--wine);font-size:clamp(3rem,7vw,5.5rem);line-height:.95;margin:0 0 18px}.section-title>p:last-child{color:var(--muted)}
.opening{position:fixed;inset:0;z-index:1000;background:radial-gradient(circle at 50% 40%,#fffaf1 0,#f7ead7 55%,#ead3b5 100%);display:grid;place-items:center;transition:opacity 1s,visibility 1s}.opening.closed{opacity:0;visibility:hidden;pointer-events:none}.opening-card{text-align:center;position:relative;z-index:3;padding:40px 25px}.opening-card h1{font-family:Italianno,cursive;font-size:clamp(4rem,12vw,8rem);color:var(--wine);font-weight:400;margin:0}.opening-number{font-family:Cinzel,serif;font-size:clamp(5rem,15vw,10rem);font-weight:700;line-height:.8;color:transparent;-webkit-text-stroke:2px var(--gold);text-shadow:0 0 35px rgba(201,162,74,.25);margin:18px 0}.opening-card>p:not(.eyebrow){font-style:italic;color:var(--muted);font-size:1.35rem}.mini-crown{font-size:3rem;color:var(--gold)}.opening-glow{position:absolute;width:65vw;height:65vw;border-radius:50%;background:rgba(255,255,255,.65);filter:blur(55px)}.opening-flowers:before,.opening-flowers:after{content:"";position:absolute;width:330px;height:330px;background-size:contain;background-repeat:no-repeat;opacity:.92}.opening-flowers:before{left:-40px;top:-40px;background-image:url("../assets/images/roses-top-left.svg")}.opening-flowers:after{right:-40px;bottom:-40px;background-image:url("../assets/images/roses-bottom-right.svg")}
.lux-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--wine),var(--wine2));color:white;border:0;border-radius:999px;padding:16px 30px;font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.13em;box-shadow:0 14px 35px rgba(116,11,28,.22);transition:.35s;cursor:pointer}.lux-btn:hover{transform:translateY(-3px);box-shadow:0 20px 45px rgba(116,11,28,.3)}.lux-btn.dark{margin-top:18px}.sound-link{border:0;background:none;color:var(--wine);font-family:Cinzel,serif;letter-spacing:.1em;font-size:.72rem;cursor:pointer;margin-top:15px}
.hero{min-height:100vh;position:relative;display:grid;place-items:center;overflow:hidden;background:#1e080c}.hero-image{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,4,7,.82),rgba(24,4,7,.2)),url("../assets/images/luxury/01-hero-portrait.jpg") center 30%/cover no-repeat;transform:scale(1.04);animation:heroZoom 16s ease-in-out infinite alternate}.hero-vignette{position:absolute;inset:0;background:radial-gradient(circle at 55% 45%,transparent 0 30%,rgba(18,3,7,.62) 100%)}.hero-content{position:relative;z-index:2;text-align:center;color:white;max-width:780px;padding:30px}.hero-content .eyebrow{color:var(--gold2)}.hero-content h1,.hero-content h2{font-family:Italianno,cursive;font-weight:400;line-height:.8;margin:0}.hero-content h1{font-size:clamp(6rem,15vw,12rem)}.hero-content h2{font-size:clamp(4rem,10vw,8rem);margin-bottom:20px}.hero-copy{font-size:1.35rem;line-height:1.6;text-shadow:0 3px 18px #000;max-width:650px;margin:25px auto}.gold-line{height:1px;background:linear-gradient(90deg,transparent,var(--gold2),transparent);max-width:280px;margin:0 auto}.hero-date{font-family:Cinzel,serif;letter-spacing:.12em;font-size:.78rem;margin:25px 0 30px}.hero-date span{color:var(--gold2);padding:0 8px}.hero-flowers{position:absolute;z-index:1;width:260px;height:260px;background-size:contain;background-repeat:no-repeat;opacity:.85}.flower-left{left:-30px;top:-30px;background-image:url("../assets/images/roses-top-left.svg")}.flower-right{right:-30px;bottom:-30px;background-image:url("../assets/images/roses-bottom-right.svg")}
.split{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center;max-width:1400px;margin:auto}.split.reverse .text-card{order:2}.visual-card{position:relative;border-radius:30px;overflow:hidden;box-shadow:var(--shadow);background:#fff}.visual-card:after{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.55);border-radius:22px;pointer-events:none}.visual-card img{width:100%;display:block;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s}.visual-card:hover img{transform:scale(1.035)}.visual-card.small img{aspect-ratio:4/5}.text-card{padding:30px}.text-card p{line-height:1.75;color:var(--muted)}.signature{font-family:Italianno,cursive!important;font-size:4rem!important;color:var(--wine)!important}.centered{text-align:center}.parent-name{font-family:Italianno,cursive!important;font-size:3rem!important;color:var(--wine)!important;margin:5px!important}.parents{background:linear-gradient(180deg,#fffdf9,#f9efe3)}.parents-grid{display:grid;grid-template-columns:1fr 1fr;gap:5%;max-width:1100px;margin:auto;align-items:center}
.event{background:linear-gradient(180deg,#f9efe3,#fffaf3)}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1100px;margin:auto}.event-box{background:rgba(255,255,255,.8);border:1px solid rgba(201,162,74,.25);border-radius:26px;padding:30px;text-align:center;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.event-box.wide{grid-column:span 1}.event-box strong{font-family:Cinzel,serif;color:var(--wine);font-size:.85rem;letter-spacing:.1em}.event-box small{color:var(--muted)}.event-icon{font-family:Italianno,cursive;font-size:4rem;color:var(--gold)}.event-visual{max-width:480px;margin:45px auto 0}
.countdown-section{background:var(--wine);color:white}.countdown-section .section-title h2,.countdown-section .section-title>p:last-child{color:white}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:900px;margin:auto}.countdown>div{padding:25px 10px;text-align:center;border:1px solid rgba(241,216,140,.4);border-radius:22px;background:rgba(255,255,255,.06);backdrop-filter:blur(8px)}.countdown span{display:block;font-family:Cinzel,serif;font-size:clamp(2rem,6vw,4rem);color:var(--gold2)}.countdown small{font-family:Cinzel,serif;letter-spacing:.12em}
.dress{background:#fff}.dress-card{max-width:1200px;margin:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;background:linear-gradient(135deg,#fffaf3,#f3dfc9);border-radius:34px;overflow:hidden;box-shadow:var(--shadow)}.dress-visual img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.dress-copy{padding:50px;text-align:center}.big-word{font-family:Cinzel,serif;font-weight:700;font-size:clamp(2rem,5vw,4rem);letter-spacing:.15em;color:var(--wine)}.dress-copy p{line-height:1.7;color:var(--muted)}.reserved{font-size:1.25rem!important;color:var(--wine)!important;font-weight:600}
.envelopes{background:radial-gradient(circle at 50% 0,#fff,#f6e5d1)}.envelope-stage{max-width:1000px;height:520px;margin:auto;position:relative;overflow:hidden;border-radius:35px;background:linear-gradient(180deg,#fffaf3,#f4dfc5);box-shadow:var(--shadow);border:1px solid rgba(201,162,74,.25)}.envelope-message{position:absolute;inset:0;display:grid;place-content:center;text-align:center;z-index:2;padding:25px}.envelope-message span{font-size:4rem}.envelope-message h3{font-family:Italianno,cursive;color:var(--wine);font-size:3.5rem;margin:0}.envelope-message p{color:var(--muted)}.envelope-message small{color:#9c7777}.fall-envelope{position:absolute;top:-80px;font-size:45px;cursor:pointer;z-index:3;animation:fall linear forwards;filter:drop-shadow(0 8px 7px rgba(116,11,28,.15))}.fall-envelope:hover{transform:scale(1.25)}.envelope-pop{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%) scale(.8);background:white;border:1px solid var(--gold);padding:28px;border-radius:22px;box-shadow:var(--shadow);opacity:0;pointer-events:none;text-align:center;transition:.4s;max-width:90%}.envelope-pop.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.envelope-pop button{margin-top:10px}
.rsvp{background:#fffdf9}.rsvp-card{max-width:1100px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:5%;align-items:center}.rsvp-card .visual-card img{aspect-ratio:1/1}.rsvp-copy{text-align:center;padding:30px}.rsvp-copy p{color:var(--muted);line-height:1.7}.whatsapp-btn{display:inline-flex;background:#25d366;color:white;padding:17px 26px;border-radius:999px;font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.08em;box-shadow:0 12px 30px rgba(37,211,102,.2);transition:.3s}.whatsapp-btn:hover{transform:translateY(-3px)}.phone{font-family:Cinzel,serif;color:var(--wine)!important;letter-spacing:.12em}
.finale{min-height:95vh;position:relative;display:grid;place-items:center;overflow:hidden;background:#1d070b;color:white;text-align:center}.finale-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,3,7,.9),rgba(24,3,7,.25));transform:scale(1.02)}.finale-content{position:relative;z-index:2;padding:30px;text-shadow:0 4px 20px rgba(0,0,0,.45)}.finale-content h2{font-family:Italianno,cursive;font-size:clamp(4rem,11vw,9rem);font-weight:400;margin:0}.final-number{font-family:Cinzel,serif;font-size:clamp(7rem,18vw,14rem);line-height:.75;color:transparent;-webkit-text-stroke:2px var(--gold2)}.final-text{font-size:1.5rem}.final-date{font-family:Cinzel,serif;letter-spacing:.12em;color:var(--gold2);font-size:.85rem}.final-wait{font-family:Italianno,cursive;font-size:4rem;color:white}
.footer{padding:70px 20px;text-align:center;background:#23080d;color:white}.footer-monogram{font-family:Italianno,cursive;font-size:5rem;color:var(--gold2)}.footer h2{font-family:Italianno,cursive;font-size:3rem;font-weight:400;margin:0}.footer p{color:#eadcc7}
.floating-music{position:fixed;right:20px;bottom:20px;z-index:30;width:55px;height:55px;border-radius:50%;border:1px solid var(--gold);background:rgba(116,11,28,.92);color:white;font-size:1.25rem;box-shadow:0 10px 30px rgba(0,0,0,.18);cursor:pointer}
#ambient{position:fixed;inset:0;pointer-events:none;z-index:4;background-image:radial-gradient(circle,rgba(201,162,74,.75) 0 1px,transparent 1.8px);background-size:95px 95px;opacity:.13;animation:ambientMove 25s linear infinite}.gold-particle{position:fixed;width:5px;height:5px;border-radius:50%;background:var(--gold2);pointer-events:none;z-index:6;box-shadow:0 0 12px rgba(241,216,140,.9);animation:floatUp linear forwards}.butterfly{position:fixed;z-index:7;font-size:26px;pointer-events:none;filter:drop-shadow(0 5px 6px rgba(0,0,0,.15));animation:flyAcross linear forwards}
.reveal{opacity:0;transform:translateY(35px);transition:opacity 1s ease,transform 1s ease}.reveal.visible{opacity:1;transform:none}
@keyframes heroZoom{from{transform:scale(1.04)}to{transform:scale(1.11)}}@keyframes ambientMove{from{background-position:0 0}to{background-position:190px -190px}}@keyframes floatUp{from{transform:translate3d(0,0,0);opacity:0}15%{opacity:.8}to{transform:translate3d(25px,-120vh,0);opacity:0}}@keyframes flyAcross{from{transform:translate3d(-10vw,0,0) rotate(-8deg)}50%{transform:translate3d(50vw,-45px,0) rotate(8deg)}to{transform:translate3d(115vw,20px,0) rotate(-4deg);opacity:.05}}@keyframes fall{from{transform:translateY(0) rotate(-15deg);opacity:0}10%{opacity:1}to{transform:translateY(650px) rotate(35deg);opacity:.2}}
@media(max-width:800px){body{font-size:18px}.section{padding:75px 5%}.split,.parents-grid,.rsvp-card,.dress-card{grid-template-columns:1fr}.split.reverse .text-card{order:0}.text-card{padding:10px 4px 35px}.hero{min-height:92vh}.hero-content h1{font-size:6rem}.hero-content h2{font-size:4rem}.hero-copy{font-size:1.12rem}.hero-flowers{width:180px;height:180px}.event-grid{grid-template-columns:1fr 1fr}.event-box.wide{grid-column:1/-1}.countdown{grid-template-columns:1fr 1fr}.envelope-stage{height:460px}.dress-copy{padding:35px 20px}.finale{min-height:90vh}.final-wait{font-size:3.2rem}}
@media(max-width:480px){.opening-card h1{font-size:4rem}.opening-number{font-size:7rem}.event-grid{grid-template-columns:1fr}.event-box.wide{grid-column:auto}.hero-content{padding:20px}.hero-content h1{font-size:5rem}.hero-content h2{font-size:3.5rem}.hero-date{font-size:.68rem}.lux-btn{padding:14px 20px}.envelope-stage{height:420px}.fall-envelope{font-size:35px}.section-title h2,.text-card h2{font-size:4rem}}


/* =========================================================
   V7 SIGNATURE — cinematic interaction layer
   ========================================================= */
:root{
  --ease-lux:cubic-bezier(.22,.61,.36,1);
  --wine-deep:#3a0710;
}
body{background:
  radial-gradient(circle at 12% 8%,rgba(201,162,74,.08),transparent 22%),
  radial-gradient(circle at 88% 25%,rgba(116,11,28,.055),transparent 24%),
  var(--cream)}
body.is-opening{overflow:hidden}
#sceneProgress{position:fixed;left:0;right:0;top:0;height:3px;background:rgba(255,255,255,.12);z-index:1001;pointer-events:none}
#sceneProgress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),var(--gold2),var(--wine2));box-shadow:0 0 12px rgba(241,216,140,.75);transition:width .12s linear}
#sceneVeil{position:fixed;inset:0;z-index:999;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.95),rgba(255,247,235,.96));pointer-events:none;opacity:0;transition:opacity .55s var(--ease-lux)}
#sceneVeil.flash{opacity:1}
.cinema-nav{position:fixed;top:20px;left:50%;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:20px;padding:8px 12px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(45,5,11,.24);backdrop-filter:blur(16px);box-shadow:0 10px 35px rgba(0,0,0,.1);transition:.45s var(--ease-lux)}
.cinema-nav.scrolled{background:rgba(255,250,243,.86);border-color:rgba(116,11,28,.12);box-shadow:0 14px 35px rgba(60,10,20,.12)}
.nav-brand{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--gold2);border-radius:50%;font:2rem/1 "Italianno",cursive;color:var(--gold2)}
.cinema-nav.scrolled .nav-brand{color:var(--wine);border-color:var(--gold)}
.nav-dots{display:flex;gap:11px;align-items:center}
.nav-dots a{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.55);position:relative;transition:.3s}
.cinema-nav.scrolled .nav-dots a{background:rgba(116,11,28,.25)}
.nav-dots a.active{width:24px;border-radius:99px;background:var(--gold2);box-shadow:0 0 12px rgba(241,216,140,.65)}
.nav-dots a:after{content:attr(data-scene);position:absolute;left:50%;bottom:16px;transform:translateX(-50%) translateY(4px);opacity:0;white-space:nowrap;font:9px Cinzel,serif;letter-spacing:.08em;color:var(--gold2);transition:.25s}
.nav-dots a:hover:after{opacity:1;transform:translateX(-50%)}
.nav-music{border:0;background:none;color:white;font-size:1rem;cursor:pointer}
.cinema-nav.scrolled .nav-music{color:var(--wine)}
.scroll-cue{margin-top:30px;font:9px Cinzel,serif;letter-spacing:.2em;color:rgba(255,255,255,.78);display:flex;flex-direction:column;gap:8px;align-items:center;animation:cuePulse 2.3s infinite}
.scroll-cue span{width:1px;height:30px;background:linear-gradient(var(--gold2),transparent);display:block}
.cinematic-section{overflow:hidden}
.cinematic-section:before{content:attr(data-scene-label);position:absolute;top:30px;left:7%;font:9px Cinzel,serif;letter-spacing:.18em;color:rgba(116,11,28,.35);opacity:0;transform:translateY(-8px);transition:.8s var(--ease-lux)}
.cinematic-section.visible:before{opacity:1;transform:none}
.cinematic-section .visual-card,.cinematic-section .text-card,.cinematic-section .event-box,.cinematic-section .dress-card,.cinematic-section .rsvp-card{transition:transform 1s var(--ease-lux),box-shadow 1s var(--ease-lux)}
.cinematic-section.visible .visual-card{animation:cardIn 1.1s var(--ease-lux) both}
.cinematic-section.visible .text-card{animation:textIn 1.15s .08s var(--ease-lux) both}
.cinematic-section.visible .event-box:nth-child(2){animation:cardIn 1s .12s var(--ease-lux) both}
.cinematic-section.visible .event-box:nth-child(3){animation:cardIn 1s .2s var(--ease-lux) both}
.cinematic-section.visible .event-box:nth-child(1){animation:cardIn 1s var(--ease-lux) both}
.hero:after,.finale:after{content:"";position:absolute;inset:-20%;background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.11) 48%,rgba(241,216,140,.18) 50%,transparent 58%);transform:translateX(-120%) rotate(4deg);animation:lightSweep 10s 2s infinite;pointer-events:none;z-index:3}
.hero-content{animation:heroContent 1.4s .25s var(--ease-lux) both}
.hero-image{will-change:transform}
.visual-card{isolation:isolate}
.visual-card:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.16) 48%,transparent 58%);transform:translateX(-120%);transition:transform 1.5s var(--ease-lux);z-index:1;pointer-events:none}
.visual-card:hover:before{transform:translateX(120%)}
.event-box:hover,.dress-card:hover,.rsvp-card:hover{transform:translateY(-6px);box-shadow:0 35px 90px rgba(77,14,24,.16)}
.final-number{position:relative;text-shadow:0 0 35px rgba(241,216,140,.2)}
.final-number:after{content:"";position:absolute;width:180px;height:180px;border:1px solid rgba(241,216,140,.35);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);animation:ring 4s linear infinite}
.footer-stars{color:var(--gold2);letter-spacing:1.1em;margin:10px 0 18px}
@keyframes cuePulse{0%,100%{opacity:.45;transform:translateY(0)}50%{opacity:1;transform:translateY(6px)}}
@keyframes heroContent{from{opacity:0;transform:translateY(35px) scale(.985)}to{opacity:1;transform:none}}
@keyframes cardIn{from{opacity:0;transform:translateY(25px) scale(.985)}to{opacity:1;transform:none}}
@keyframes textIn{from{opacity:0;transform:translateX(25px)}to{opacity:1;transform:none}}
@keyframes lightSweep{0%,55%{transform:translateX(-120%) rotate(4deg)}70%,100%{transform:translateX(120%) rotate(4deg)}}
@keyframes ring{from{transform:translate(-50%,-50%) rotate(0) scale(.92);opacity:.25}50%{opacity:.6}to{transform:translate(-50%,-50%) rotate(360deg) scale(1.16);opacity:0}}
@media(max-width:800px){
  .cinema-nav{top:auto;bottom:14px;padding:7px 11px;gap:13px;background:rgba(45,5,11,.72)}
  .cinema-nav.scrolled{background:rgba(255,250,243,.9)}
  .nav-dots{gap:9px}
  .nav-dots a{width:6px;height:6px}
  .nav-dots a.active{width:18px}
  .cinematic-section:before{left:5%;top:20px;font-size:8px}
  .scroll-cue{margin-top:22px}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* =========================================================
   LUXURY FULL-BLEED EDITION V9
   Fondos sin texto + secciones a pantalla completa
   ========================================================= */
html,body{width:100%;min-width:100%;background:#090204!important;color:#f8efe7}
body{overflow-x:hidden}
main{width:100%;max-width:none;margin:0;padding:0;background:#090204}

.cinematic-section{
  width:100vw!important;max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  min-height:100vh!important;
  padding:120px 7%!important;
  position:relative;display:flex;align-items:center;justify-content:center;
  background-color:#090204!important;background-position:center!important;
  background-size:cover!important;background-repeat:no-repeat!important;
  border:0!important;overflow:hidden;isolation:isolate;
}
.cinematic-section::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(5,1,3,.80),rgba(12,2,6,.32),rgba(5,1,3,.78)),
             radial-gradient(circle at 50% 40%,rgba(241,216,140,.055),transparent 48%);
}
.cinematic-section::before{
  content:attr(data-scene-label);position:absolute;top:28px;left:7%;z-index:4;
  font:600 9px Cinzel,serif;letter-spacing:.2em;color:rgba(241,216,140,.65);
}
.cinematic-section .visual-card{display:none!important}
.cinematic-section .text-card,.cinematic-section .rsvp-copy,.cinematic-section .dress-card,
.cinematic-section .envelope-stage{
  position:relative;z-index:3;
  background:linear-gradient(145deg,rgba(8,2,5,.62),rgba(65,7,18,.28))!important;
  border:1px solid rgba(241,216,140,.40)!important;
  box-shadow:0 30px 100px rgba(0,0,0,.45),inset 0 0 45px rgba(255,255,255,.025)!important;
  backdrop-filter:blur(13px);color:#fff;
}
.cinematic-section .text-card,.cinematic-section .rsvp-copy{
  width:min(850px,100%);padding:62px 70px;text-align:center;border-radius:32px;
}
.cinematic-section .text-card::before,.cinematic-section .rsvp-copy::before,
.cinematic-section .dress-card::before{
  content:"";position:absolute;inset:12px;border:1px solid rgba(241,216,140,.16);
  border-radius:23px;pointer-events:none;
}
.cinematic-section h2,.cinematic-section .section-title h2{
  color:#fff!important;text-shadow:0 5px 30px rgba(0,0,0,.4);
}
.cinematic-section p{color:rgba(255,247,240,.90)}
.cinematic-section .eyebrow,.cinematic-section .signature,.cinematic-section .parent-name,
.cinematic-section .big-word,.cinematic-section .reserved{color:#e8d08a!important}
.cinematic-section .section-title{position:relative;z-index:3;width:min(1000px,100%);text-align:center;margin:0 auto 38px}
.cinematic-section .section-title p:last-child{color:rgba(255,247,240,.78)}

.story{background-image:url("../assets/images/luxury/01-hero-portrait.jpg")!important}
.parents{background-image:url("../assets/images/luxury/04-velvet-burgundy.jpg")!important}
.event{background-image:url("../assets/images/luxury/05-candlelight-gold.jpg")!important}
.place{background-image:url("../assets/images/luxury/06-black-gold-bokeh.jpg")!important}
.dress{background-image:url("../assets/images/luxury/04-velvet-burgundy.jpg")!important}
.message{background-image:url("../assets/images/luxury/03-hero-dress.jpg")!important}
.envelopes{background-image:url("../assets/images/luxury/05-candlelight-gold.jpg")!important}
.rsvp{background-image:url("../assets/images/luxury/06-black-gold-bokeh.jpg")!important}
.countdown-section{background-image:url("../assets/images/luxury/02-hero-roses.jpg")!important}

.finale,.footer{width:100vw!important;margin-left:calc(50% - 50vw)!important}
.footer{background:#090204!important}

.event{flex-direction:column}
.event-grid{width:min(1100px,100%);position:relative;z-index:3}
.event-box{background:rgba(8,2,5,.58)!important;color:#fff!important;border-color:rgba(241,216,140,.35)!important;
box-shadow:0 20px 60px rgba(0,0,0,.32)!important;backdrop-filter:blur(10px)}
.event-box strong,.event-box small{color:#fff!important}.event-box .event-icon{color:#e8d08a!important}

.countdown-section{flex-direction:column}
.countdown>div{background:rgba(8,2,5,.48)!important;border:1px solid rgba(241,216,140,.35)!important;
box-shadow:0 20px 60px rgba(0,0,0,.3)!important;backdrop-filter:blur(10px)}

.dress{flex-direction:column}.dress-card{display:block!important;width:min(900px,100%)!important;border-radius:32px;overflow:hidden}
.dress-visual{display:none!important}.dress-copy{padding:65px;text-align:center;position:relative;z-index:2}
.big-word{font-size:clamp(3.5rem,8vw,7rem)!important}

.envelopes{flex-direction:column}.envelope-stage{height:520px;width:min(1000px,100%);border-radius:32px}
.envelope-message h3,.envelope-message p,.envelope-message small{color:#fff!important}

.rsvp{flex-direction:column}.rsvp-card{display:flex!important;width:min(850px,100%);justify-content:center;position:relative;z-index:3}
.rsvp-card>.visual-card{display:none!important}.rsvp-copy{width:100%!important}

.place{display:flex!important}.place .text-card{order:1}.place .visual-card{display:none!important}

.finale{background:#090204!important}.finale-bg{opacity:.28!important}

@media(max-width:800px){
 .cinematic-section{min-height:100svh!important;padding:95px 5%!important;background-attachment:scroll!important}
 .cinematic-section .text-card,.cinematic-section .rsvp-copy,.dress-copy{padding:44px 25px!important}
 .event-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){
 .cinematic-section{padding:90px 18px 80px!important}.event-grid{grid-template-columns:1fr}
 .cinematic-section .text-card,.cinematic-section .rsvp-copy,.dress-copy{padding:38px 20px!important}
}

/* =========================================================
   V12 — ROYAL NOIR LUMINOUS
   Más luminoso, cálido y editorial; conserva la animación V11.
   ========================================================= */
:root{
  --lux-gold:#e7c979;
  --lux-gold-light:#f6e2a3;
  --lux-cream:#fff9ef;
  --lux-burgundy:#6f182a;
  --lux-wine:#8f2940;
}
html,body{width:100%;min-width:100%;background:#17080d!important;color:var(--lux-cream)!important}
body{overflow-x:hidden}
main{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:#17080d!important}
.cinematic-section{width:100vw!important;max-width:none!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important;background-color:#4b1422!important}
.cinematic-section::after{background:linear-gradient(90deg,rgba(45,8,16,.48),rgba(103,27,45,.16),rgba(35,6,13,.40)),linear-gradient(180deg,rgba(255,220,155,.07),transparent 45%,rgba(18,3,8,.20)),radial-gradient(circle at 50% 42%,rgba(255,228,174,.14),transparent 56%)!important}
.cinematic-section .text-card,.cinematic-section .rsvp-copy,.cinematic-section .dress-card,.cinematic-section .envelope-stage{background:linear-gradient(145deg,rgba(91,26,41,.58),rgba(39,9,17,.34))!important;border-color:rgba(246,221,151,.52)!important;box-shadow:0 28px 80px rgba(20,3,7,.28),inset 0 0 55px rgba(255,231,178,.045)!important}
.cinematic-section h1,.cinematic-section h2,.cinematic-section h3,.cinematic-section p,.cinematic-section .section-title h2{text-shadow:0 2px 18px rgba(20,3,7,.40)!important}
.cinematic-section h1,.cinematic-section h2,.cinematic-section .section-title h2{color:#fffaf2!important}
.cinematic-section p{color:rgba(255,249,240,.96)!important}
.cinematic-section .eyebrow,.cinematic-section .signature,.cinematic-section .parent-name,.cinematic-section .big-word,.cinematic-section .reserved{color:var(--lux-gold-light)!important}
.cinematic-section .text-card::before,.cinematic-section .rsvp-copy::before,.cinematic-section .dress-card::before{border-color:rgba(246,222,155,.28)!important}
.event-box{background:rgba(86,24,40,.56)!important;border-color:rgba(246,221,151,.45)!important;box-shadow:0 20px 60px rgba(20,3,7,.25)!important}
.event-box strong,.event-box small{color:#fff8ee!important}.event-box .event-icon{color:var(--lux-gold-light)!important}
.countdown-section{background-color:#5a172a!important}.countdown>div{background:rgba(102,28,47,.48)!important;border-color:rgba(246,221,151,.46)!important}
button,.btn,.lux-btn,a[class*="btn"]{border-color:rgba(246,221,151,.68)!important;box-shadow:0 10px 35px rgba(20,3,7,.18)!important}
button:hover,.btn:hover,.lux-btn:hover,a[class*="btn"]:hover{background:rgba(231,201,121,.12)!important;box-shadow:0 15px 45px rgba(20,3,7,.23),0 0 28px rgba(246,221,151,.16)!important}
.particle,.gold-particle,.sparkle{opacity:.72!important;filter:drop-shadow(0 0 5px rgba(246,221,151,.55))}
.footer{background:linear-gradient(180deg,#35101a,#17060c)!important}
header,nav,.navbar{background:rgba(45,10,18,.38)!important;backdrop-filter:blur(12px)}
@media(max-width:800px){.cinematic-section::after{background:linear-gradient(180deg,rgba(65,15,27,.42),rgba(77,19,34,.22),rgba(29,6,13,.38)),radial-gradient(circle at 50% 38%,rgba(255,226,166,.12),transparent 58%)!important}}

/* V13 — ROYAL EXPERIENCE */
html{scroll-behavior:smooth} body{overflow-x:hidden}
.cinematic-section{transform:translateZ(0);background-position:center 46%!important;background-size:cover!important;transition:background-position 1.4s cubic-bezier(.2,.7,.2,1)}
.cinematic-section::after{background:linear-gradient(105deg,rgba(40,7,16,.42),rgba(106,31,48,.10) 48%,rgba(25,4,10,.34)),radial-gradient(circle at 50% 35%,rgba(255,222,159,.14),transparent 42%),linear-gradient(180deg,rgba(255,255,255,.035),transparent 34%,rgba(12,2,6,.18))}
.cinematic-section h1,.cinematic-section h2{opacity:0;transform:translateY(34px);filter:blur(7px)}
.cinematic-section.is-visible h1,.cinematic-section.is-visible h2{animation:royalTitle .95s cubic-bezier(.16,1,.3,1) forwards}
.cinematic-section.is-visible .eyebrow{animation:royalEyebrow .75s ease forwards}.cinematic-section.is-visible p{animation:royalCopy .9s cubic-bezier(.16,1,.3,1) .28s both}
@keyframes royalTitle{0%{opacity:0;transform:translateY(34px);filter:blur(7px)}60%{opacity:1;filter:blur(0)}100%{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes royalEyebrow{from{opacity:0;letter-spacing:.45em;transform:translateY(10px)}to{opacity:1;letter-spacing:.2em;transform:translateY(0)}}
@keyframes royalCopy{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.cinematic-section .section-title::after,.cinematic-section .text-card::after{content:"";display:block;width:0;height:1px;margin:20px auto 0;background:linear-gradient(90deg,transparent,#f5df9a,transparent);opacity:0}
.cinematic-section.is-visible .section-title::after,.cinematic-section.is-visible .text-card::after{animation:goldLine 1.1s ease .45s forwards}@keyframes goldLine{to{width:min(260px,45%);opacity:.9}}
.cinematic-section .text-card,.cinematic-section .rsvp-copy,.cinematic-section .dress-card,.cinematic-section .envelope-stage{transition:transform .8s cubic-bezier(.2,.7,.2,1),box-shadow .8s ease,border-color .8s ease}
.cinematic-section.is-visible .text-card,.cinematic-section.is-visible .rsvp-copy,.cinematic-section.is-visible .dress-card,.cinematic-section.is-visible .envelope-stage{animation:cardRise 1.1s cubic-bezier(.16,1,.3,1) both}
@keyframes cardRise{from{opacity:0;transform:translateY(28px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.hero::after{background:linear-gradient(90deg,rgba(28,5,12,.30),rgba(79,18,33,.06),rgba(28,5,12,.22)),radial-gradient(circle at 50% 44%,rgba(255,227,170,.18),transparent 40%),linear-gradient(180deg,rgba(0,0,0,.03),rgba(24,3,10,.24))}
.hero .xv,.hero .crown,.hero .hero-mark{filter:drop-shadow(0 0 18px rgba(245,220,151,.18));animation:royalGlow 3.8s ease-in-out infinite}@keyframes royalGlow{0%,100%{filter:drop-shadow(0 0 10px rgba(245,220,151,.12))}50%{filter:drop-shadow(0 0 28px rgba(245,220,151,.30))}}
.gallery img,.gallery-section img,.photos img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter 1s ease,box-shadow 1s ease;filter:saturate(.94) contrast(1.03)}
.gallery img:hover,.gallery-section img:hover,.photos img:hover{transform:scale(1.035);filter:saturate(1.08) contrast(1.05);box-shadow:0 28px 70px rgba(20,3,7,.35)}
.royal-particle{position:fixed;width:3px;height:3px;border-radius:50%;background:rgba(245,220,151,.78);box-shadow:0 0 10px rgba(245,220,151,.55);pointer-events:none;z-index:20;animation:particleFloat 7s linear infinite}@keyframes particleFloat{0%{transform:translate3d(0,20px,0);opacity:0}12%{opacity:.75}85%{opacity:.45}100%{transform:translate3d(18px,-105vh,0);opacity:0}}
.royal-music{position:fixed;right:22px;bottom:22px;z-index:9999;width:52px;height:52px;border-radius:50%;border:1px solid rgba(245,220,151,.62);background:rgba(73,19,32,.76);color:#f5df9a;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(10px);box-shadow:0 12px 35px rgba(18,2,7,.28);cursor:pointer;transition:transform .3s ease,box-shadow .3s ease}.royal-music:hover{transform:translateY(-3px)}.royal-music.playing{animation:musicPulse 1.8s ease-in-out infinite}@keyframes musicPulse{50%{box-shadow:0 12px 35px rgba(18,2,7,.28),0 0 24px rgba(245,220,151,.18)}}
.royal-cta{position:relative;overflow:hidden}.royal-cta::after{content:"";position:absolute;top:0;left:-120%;width:70%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);transform:skewX(-18deg);animation:buttonShine 5s ease-in-out infinite}@keyframes buttonShine{0%,65%{left:-120%}78%,100%{left:140%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
