:root{
  --navy:#0f2336;
  --navy-2:#162f45;
  --gold:#caa45d;
  --gold-light:#e7cf9a;
  --cream:#f5efe4;
  --ink:#16202a;
  --white:#fffdf8;
  --shadow:0 18px 60px rgba(10,25,39,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Montserrat",sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.65;
}
h1,h2,h3,.hero-name{font-family:"Cormorant Garamond",serif}
h2{font-size:clamp(2rem,5vw,3.6rem);line-height:1.05;margin:.2rem 0 1rem}
img{display:block;width:100%}
.hero{
  min-height:100svh;
  position:relative;
  display:grid;
  place-items:center;
  background:url("assets/facu_babero.webp") center 28%/cover no-repeat;
  overflow:hidden;
}
.hero-overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(7,21,34,.58),rgba(7,21,34,.8)),
    radial-gradient(circle at 50% 20%,rgba(202,164,93,.2),transparent 42%);
}
.hero-content{
  position:relative;
  z-index:2;
  color:var(--white);
  text-align:center;
  width:min(92%,850px);
  padding:5rem 1.4rem 3rem;
}
.hero h1{
  font-size:clamp(3.4rem,11vw,7.5rem);
  font-weight:500;
  font-style:italic;
  line-height:.85;
  margin:.4rem 0 1.7rem;
  color:var(--gold-light);
}
.eyebrow{
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:.75rem;
  font-weight:600;
  color:var(--gold);
}
.hero .eyebrow{color:var(--gold-light);font-size:.85rem}
.hero-name{font-size:clamp(1.6rem,4vw,2.6rem);margin:0}
.hero-date{opacity:.88;margin:.4rem 0 2rem}
.symbol{
  position:absolute;
  top:3.5%;
  left:50%;
  transform:translateX(-50%);
  z-index:2;
  color:rgba(231,207,154,.16);
  font-size:4.5rem;
  width:150px;height:115px;
  text-align:center;
  pointer-events:none;
}
.symbol .compass{position:absolute;left:50%;top:0;transform:translateX(-50%) rotate(45deg)}
.symbol .square{position:absolute;left:50%;top:34px;transform:translateX(-50%);font-size:3rem}
.button{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;
  padding:.85rem 1.35rem;
  border-radius:999px;
  border:1px solid transparent;
  text-decoration:none;
  font-weight:600;
  cursor:pointer;
  transition:.25s ease;
}
.button.primary{background:var(--gold);color:#102131}
.button.primary:hover{transform:translateY(-2px);background:var(--gold-light)}
.button.secondary{border-color:var(--gold);color:var(--gold);background:transparent}
.button.secondary:hover{background:var(--gold);color:var(--navy)}
.button.disabled{opacity:.45;pointer-events:none}
.section{
  width:min(1120px,92%);
  margin:0 auto;
  padding:6rem 0;
}
.welcome{
  text-align:center;
  max-width:850px;
  font-family:"Cormorant Garamond",serif;
  font-size:clamp(1.35rem,3vw,1.75rem);
}
.ornament{color:var(--gold);font-size:1.8rem;margin-bottom:1.5rem}
.split,.venue,.dress,.gift{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:3rem;
  align-items:center;
}
.photo-card img,.venue-photo img,.dress img,.gift img{
  border-radius:28px;
  box-shadow:var(--shadow);
  aspect-ratio:4/5;
  object-fit:cover;
}
.info-card,.venue-copy,.gift-copy{
  background:var(--navy);
  color:var(--white);
  padding:clamp(2rem,5vw,4rem);
  border-radius:28px;
  box-shadow:var(--shadow);
  position:relative;
  overflow:hidden;
}
.info-card:before,.venue-copy:before,.gift-copy:before{
  content:"";position:absolute;inset:14px;border:1px solid rgba(202,164,93,.32);border-radius:20px;pointer-events:none;
}
.event-facts p,.bank-data p{
  display:grid;
  grid-template-columns:145px 1fr;
  gap:1rem;
  padding:.8rem 0;
  border-bottom:1px solid rgba(202,164,93,.25);
}
.event-facts strong,.bank-data strong{color:var(--gold-light)}
.warning span{color:#f4d6ac}
.venue{background:var(--navy);width:100%;max-width:none;padding:6rem max(4%,calc((100% - 1120px)/2))}
.venue-photo img{aspect-ratio:16/10}
.centered{text-align:center}
.narrow{max-width:650px;margin-left:auto;margin-right:auto}
.timeline{
  max-width:760px;
  margin:3rem auto 0;
  position:relative;
}
.timeline:before{
  content:"";position:absolute;left:74px;top:8px;bottom:8px;width:1px;background:var(--gold);
}
.timeline-item{
  display:grid;grid-template-columns:75px 1fr;gap:2rem;padding:1.2rem 0;position:relative;
}
.timeline-item time{
  color:var(--gold);font-family:"Cormorant Garamond",serif;font-size:1.5rem;font-weight:600;
}
.timeline-item h3{font-size:1.6rem;margin:0}
.timeline-item p{margin:.2rem 0 0;color:#5d6670}
.timeline-item div:before{
  content:"";position:absolute;left:69px;margin-top:9px;width:11px;height:11px;border-radius:50%;background:var(--gold);
}
.dress img{aspect-ratio:4/4.7}
.rsvp-card{
  background:var(--white);
  box-shadow:var(--shadow);
  border-radius:24px;
  padding:2.5rem;
  max-width:700px;
  margin:2.5rem auto 0;
  text-align:center;
}
.rsvp-card ul{display:inline-block;text-align:left;margin:1rem auto 2rem}
.rsvp-card small{display:block;margin-top:1rem;color:#757575}
.gift{background:#ece4d6;width:100%;max-width:none;padding:6rem max(4%,calc((100% - 1120px)/2))}
.gift img{aspect-ratio:1/1.15}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:2.5rem}
.gallery-grid img{border-radius:24px;box-shadow:var(--shadow);height:500px;object-fit:cover}
footer{background:var(--navy);color:var(--white);text-align:center;padding:3.5rem 1rem}
footer p{font-family:"Cormorant Garamond",serif;font-size:1.8rem;margin:0}
footer span{color:var(--gold);font-size:.8rem;letter-spacing:.12em}
dialog{
  width:min(92%,560px);
  border:0;border-radius:24px;
  padding:2.5rem;
  background:var(--navy);
  color:var(--white);
  box-shadow:0 30px 100px rgba(0,0,0,.5);
}
dialog::backdrop{background:rgba(8,17,28,.7);backdrop-filter:blur(4px)}
.close{
  position:absolute;right:18px;top:12px;
  border:0;background:none;color:var(--gold-light);font-size:2rem;cursor:pointer;
}
.copy-status{min-height:1.5rem;color:var(--gold-light)}
.reveal{opacity:0;transform:translateY(24px);transition:.7s ease}
.reveal.visible{opacity:1;transform:none}
@media (max-width:760px){
  .section{padding:4.5rem 0}
  .split,.venue,.dress,.gift{grid-template-columns:1fr;gap:1.5rem}
  .venue,.gift{padding:4.5rem 4%}
  .dress img{order:-1}
  .event-facts p,.bank-data p{grid-template-columns:1fr;gap:.15rem}
  .gallery-grid{grid-template-columns:1fr}
  .gallery-grid img{height:380px}
  .timeline:before{left:61px}
  .timeline-item{grid-template-columns:62px 1fr;gap:1.5rem}
  .timeline-item div:before{left:56px}
  .hero{background-position:62% center}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none;transition:none}
}

.future-note{
  max-width:760px;
  margin:1.2rem auto 1.5rem;
  font-family:"Cormorant Garamond",serif;
  font-size:1.25rem;
  font-style:italic;
  color:rgba(255,253,248,.82);
}

.hero.hero-final{
  background-image:url("assets/hero_facu.webp");
  background-position:center 35%;
}
@media (max-width:760px){
  .hero.hero-final{
    background-position:center 28%;
  }
}


/* Confirmación y regalo — composición definitiva */
.rsvp-definitive{
  max-width:760px;
  padding:2.5rem;
}
.rsvp-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.8rem;
  margin-bottom:1.5rem;
}
.rsvp-fields span{
  border:1px solid #dfd4c2;
  border-radius:12px;
  padding:.85rem;
  background:#faf7f1;
  font-size:.86rem;
}
.deadline{
  max-width:640px;
  margin:1.4rem auto .3rem;
  color:#5b4b30;
  font-weight:600;
}
.pending-note{
  margin:0;
  color:#888;
  font-size:.78rem;
}

.gift-definitive{
  width:100%;
  max-width:none;
  margin:0;
  padding:6rem max(4%,calc((100% - 1120px)/2));
  background:#0f2336;
  color:#fffdf8;
}
.gift-inner{
  width:min(1120px,100%);
  margin:auto;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:center;
}
.gift-copy-definitive{
  background:none;
  box-shadow:none;
  padding:0;
  border-radius:0;
}
.gift-copy-definitive:before{display:none}
.gift-copy-definitive h2{color:#fffdf8}
.gift-definitive figure{margin:0}
.gift-definitive figure img{
  width:100%;
  aspect-ratio:1/1.1;
  object-fit:cover;
  border-radius:24px;
  box-shadow:var(--shadow);
}

.envelope{
  position:relative;
  width:240px;
  height:150px;
  border:0;
  background:#efe3cc;
  border-radius:8px;
  margin-top:1.3rem;
  cursor:pointer;
  box-shadow:0 20px 45px rgba(0,0,0,.25);
  overflow:hidden;
}
.envelope:before,.envelope:after{
  content:"";
  position:absolute;
  bottom:0;
  width:0;
  height:0;
  border-style:solid;
}
.envelope:before{
  left:0;
  border-width:75px 120px;
  border-color:transparent transparent #e1d1b3 #e1d1b3;
}
.envelope:after{
  right:0;
  border-width:75px 120px;
  border-color:transparent #dac7a3 #dac7a3 transparent;
}
.flap{
  position:absolute;
  left:0;
  top:0;
  width:0;
  height:0;
  border-left:120px solid transparent;
  border-right:120px solid transparent;
  border-top:82px solid #f4ead7;
  z-index:3;
  transform-origin:top;
  transition:.45s ease;
}
.envelope:hover .flap,.envelope:focus .flap{transform:rotateX(35deg)}
.seal{
  position:absolute;
  z-index:4;
  left:50%;
  top:52%;
  transform:translate(-50%,-50%);
  width:44px;
  height:44px;
  border-radius:50%;
  background:#caa45d;
  display:grid;
  place-items:center;
  color:#0f2336;
  font-family:"Cormorant Garamond",serif;
  font-size:1.5rem;
}
.envelope-label{
  position:absolute;
  z-index:5;
  left:0;
  right:0;
  bottom:10px;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#0f2336;
}

@media (max-width:760px){
  .rsvp-definitive{padding:1.5rem 1rem}
  .rsvp-fields{grid-template-columns:1fr}
  .rsvp-definitive .button{width:100%}

  .gift-definitive{padding:4.5rem 1rem}
  .gift-inner{grid-template-columns:1fr;gap:1.5rem}
  .gift-definitive figure{order:-1}
  .gift-definitive figure img{border-radius:20px}
  .envelope{width:220px;height:140px}
}


/* Edición de Colección — apertura cinematográfica */
body.intro-lock{
  overflow:hidden;
}

.cinematic-intro{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  background:#071421;
  color:#ead7a6;
  opacity:1;
  visibility:visible;
  transition:opacity 1s ease, visibility 1s ease;
}

.cinematic-intro.finished{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.intro-stage{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:2rem;
  text-align:center;
  opacity:0;
}

.intro-stage p{
  margin:0;
  max-width:900px;
  font-family:"Cormorant Garamond",serif;
  font-weight:500;
}

.intro-stage-one p{
  font-size:clamp(2.2rem,7vw,5rem);
  font-style:italic;
  line-height:1.05;
}

.intro-stage-two p{
  font-size:clamp(2.6rem,8vw,5.5rem);
  color:#caa45d;
  letter-spacing:.04em;
}

.cinematic-intro.play .intro-stage-one{
  animation:introPhrase 3.1s ease forwards;
}

.cinematic-intro.play .intro-stage-two{
  animation:introWelcome 1.8s ease 3.05s forwards;
}

@keyframes introPhrase{
  0%{opacity:0;transform:translateY(10px)}
  18%{opacity:1;transform:none}
  72%{opacity:1;transform:none}
  100%{opacity:0;transform:translateY(-8px)}
}

@keyframes introWelcome{
  0%{opacity:0;transform:scale(.985)}
  28%{opacity:1;transform:scale(1)}
  72%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1.015)}
}

.hero-cinematic{
  opacity:0;
  transform:scale(1.025);
  transition:opacity 1.25s ease, transform 1.8s cubic-bezier(.2,.7,.2,1);
}

.hero-cinematic.hero-visible{
  opacity:1;
  transform:scale(1);
}

.hero-cinematic .hero-content{
  opacity:0;
  transform:translateY(14px);
  transition:opacity 1s ease .45s, transform 1s ease .45s;
}

.hero-cinematic.hero-visible .hero-content{
  opacity:1;
  transform:none;
}

.hero-cinematic .button{
  opacity:0;
  transform:translateY(8px);
  transition:opacity .8s ease 1.05s, transform .8s ease 1.05s, background .25s ease;
}

.hero-cinematic.hero-visible .button{
  opacity:1;
  transform:none;
}

/* Respeta accesibilidad y evita obligar a ver animaciones */
@media (prefers-reduced-motion: reduce){
  .cinematic-intro{display:none}
  .hero-cinematic,
  .hero-cinematic .hero-content,
  .hero-cinematic .button{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }
}


/* Ajuste final de la sección de regalo: centrada como el resto del sitio */
.gift-definitive{
  display:block;
}
.gift-definitive .gift-inner{
  width:min(1040px,100%);
  margin-inline:auto;
  grid-template-columns:minmax(0,1fr) minmax(320px,460px);
  gap:clamp(3rem,7vw,6rem);
  justify-content:center;
  align-items:center;
}
.gift-copy-definitive{
  max-width:500px;
  justify-self:end;
}
.gift-definitive figure{
  width:100%;
  max-width:440px;
  justify-self:start;
}
.gift-definitive figure img{
  width:100%;
  aspect-ratio:4/5;
}

@media (max-width:760px){
  .gift-definitive .gift-inner{
    width:100%;
    grid-template-columns:1fr;
    gap:2rem;
  }
  .gift-copy-definitive,
  .gift-definitive figure{
    max-width:560px;
    width:100%;
    justify-self:center;
  }
  .gift-copy-definitive{
    padding-inline:.25rem;
  }
  .gift-definitive figure{
    order:-1;
  }
}

.form-note{
  margin:.8rem 0 0;
  text-align:center;
  font-size:.84rem;
  color:#858585;
}
