:root {
    --soft:#FDF0EB;
    --h2-color: #154591;
    --p-color:#8e4f7e;
    --button-text-color:#5170ff;
    --rosa-background:#f1d3e3;
    --lila: #e8dff518;
    --crema: #FFF6EF;
    --dorado: #C9A24D;
    --rosa:#d5a8ca;
    --gris: #6B6B6B;
    --welcomebox: #d9c6ee;
    --hero-title: #fb9b9b;
    --hero-title-nombre: #f9acac;
    --hero-title-shadow: #ffeded;
    --countdown: #a73c7e;
    --direccion-titulo:#154591;
    --direccion-texto:#2b5eaf;
    --foter-line:#fdfbfa;
    --foter-background: #f1c6dc;
    --foter-background-container:#f1c6dc;
    --foter-background-cont:#ea99d2;
  }

  @font-face {
    font-family: 'fp';
    src: url('./fonts/Monitor.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
  }

  @font-face {
    font-family: 'fp-2';
    src: url('./fonts/AracmeWaround.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
  }

  @font-face {
    font-family: 'fp-3';
    src: url('./fonts/GOODTIME.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
  }

  @font-face {
    font-family: 'fp-4';
    src: url('./fonts/Vogue.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
  }

  @font-face {
    font-family: 'fp-5';
    src: url('./fonts/ALBAS.TTF') format('truetype');
    font-weight: normal;
    font-style: normal;
  }

  @font-face {
    font-family: 'fp-6';
    src: url('./fonts/MeowScript-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
  }

  @font-face {
    font-family: 'fp-cute';
    src: url('./fonts/CuteEgg.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
  }
  
  
  body {
    margin: 0;
    font-family: 'fp-cute','Poppins', sans-serif;
    font-size: 1.5rem;
    background: var(--rosa-background);
    color: var(--p-color);
    text-align: center;
    overflow: hidden;
  }

  /* Oculta la invitación al inicio */
#mainContent {
  opacity: 0;
  transition: opacity 1.2s ease;
}

/* Fondo que cubre toda la pantalla */
#welcomeOverlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: var(--crema); /* cambia por el color que quieras */
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  overflow: hidden;

  background-image: url('img/welcomebox-fondo.webp');
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
}

  /* FIX IPHONE */
  @supports (-webkit-touch-callout: none) {

    #welcomeOverlay{
      background-attachment: scroll;
    }
  
  }

/* Caja central */

.welcomeBox {
  width: 100%;

  text-align: center;
  transform: translateY(-150%);
  animation: slideDown 1s ease forwards;  

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  
}

.welcomeBox h2 {
  display: flex;
  top: 1%;
  left: 5%;
  font-family: 'fp-cute', serif;
  font-size: 2rem;
  text-shadow: 2px 2px 3px var(--gris);
  margin-bottom: 10px;
  color: var(--welcomebox);
}

.welcomeBox img {
  display: flex;
  width: 70%;
  height: auto;

}

.welcomeBox button {
  display: flex;
  top: 80%;
  left: 30%;
  padding: 12px 30px;
  font-family: 'fp-cute',Verdana, Geneva, Tahoma, sans-serif;
  text-shadow: 2px 2px 3px var(--gris);
  font-size: 1.5rem;
  border: 5px solid #fff;
  background: linear-gradient(#ffffff96, #f8b4b47b);
  color: var(--welcomebox);
  cursor: pointer;
  border-radius: 30px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.welcomeBox button:hover {
  transform: scale(1.05);
}

/* Animación de entrada */
@keyframes slideDown {
  to {
    transform: translateY(0);
  }
}

@media (min-width: 1000px)  {
  .welcomeBox img{
    width: 30%;
  }

  .welcomeBox h2{
    top: 30vh;
    left: 20%;
  }

  .welcomeBox button{
    top: 98vh;
    left: 35%;
  }
}
  
  /* 🎵 BOTÓN MÚSICA */
  .music-btn {
    position: fixed;
    top: 20px;
    right: 0px;
    border: none;
    background: rgba(255,255,255,.8);
    padding: 10px;
    border-radius: 0%;
    z-index: 10;
  }
  
  /* 👑 HERO */
  .hero {
    height: auto;
    position: relative;
    overflow: hidden;
  }

  .hero-title {
    position: absolute;
    top: 65%;
    margin-top: 20px;
    color: var(--hero-title);
    z-index: 6;
    text-align: center;
    letter-spacing: 2px;
  }

  .hero-title.nombre {
    bottom:1%;
    left: 28%;
    font-size: 5rem;
    color: var(--hero-title-nombre);
    font-family: "fp-5", sans-serif;
    font-weight: 900;
    font-style: normal;
    text-shadow: 1px 1px 3px var(--hero-title-shadow);
  }

  .hero-title.mis {
    left: 11%;
    font-size: 6rem;
    font-family: "Dancing Script", cursive;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    text-shadow: 3px 3px 3px var(--hero-title-shadow);
  }

  .hero-title.xv {
    top:70%;
    left: 50%;
    font-size: 3rem;
    color: var(--hero-title);
    font-family: "fp-5", sans-serif;
    font-weight: 900;
    font-style: normal;
    text-shadow: 1px 1px 3px var(--hero-title-shadow);
  }

  .hero-title.anios {
    left: 65%;
    font-size: 6rem;
    font-family: "Dancing Script", cursive;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    text-shadow: 3px 3px 3px var(--hero-title-shadow);
  }

  .hero-title {
    opacity: 0;
    transition: opacity 1.5s ease;
  }
  
  .hero.open .hero-title {
    opacity: 1;
  }
  
  .hero-content {
    position: relative;
    z-index: 3;
    top: 0%;
    transform: translateY(0%);
  }
  
  .princess {
    width: 100vw;
    height: auto;
    border-radius: 0%;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0);
    animation: fadeIn 2s ease forwards;
  }

  @media(min-width:1000px ){
    .princess{
      height: 100%;
      width: auto;
      box-shadow: 0 15px 40px rgba(0, 0, 0, 0);
    }
  }
  
  /* 🎭 CORTINAS */
  .curtain {
    position: absolute;
    top: 0;
    width: 50vw;
    height: 100vh;
    background: linear-gradient(to bottom, var(--rosa), var(--lila));
    z-index: 5;
    transition: transform 2s ease-in-out;
  }

  .curtain img {
    width: 100vw;
    height: 100vh;
  }
  
  .curtain.left { left: 0;}
  .curtain.right { right: 0;}
  
  .hero.open .left { transform: translateX(-100vw); }
  .hero.open .right { transform: translateX(100vw); }


  /* hero video*/

  .hero-video{
    width: 100%;

    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
  
  @media(min-width:1000px){
    .hero{
      width: 100%;
      max-width: 500px;
      margin: 0 auto;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;

    }

    .hero-video{
      width: 100%;
      max-width: 500px;
      display: block;
      margin: 0 auto;

    }
  }

  /* 🌸 ESCENAS */
  .scene {
    padding: 20px 20px;
    animation: slideUp 1.2s ease both;
  }
  
  .soft {
    background: var(--rosa-background);
  }
  
  h2 {
    font-family: 'Playfair Display', serif;
    color: var(--h2-color);
    letter-spacing: 2px;
  }
  
  .phrase {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    max-width: 600px;
    margin: auto;
    text-align: justify;
    padding: 10px 25px;
    
  }

  .phrase-2{
    font-family: 'Playfair Display', serif;
    font-style: italic;
   
    margin: auto;
    text-align: center;
  }

  .itinerario{
    max-width: 600px;
    display: flex;
    flex-direction: column;
  }

  .itinerario-baseline{
    font-size: 1rem;
    max-width: 600px;
    display: flex;
    flex-direction: column;
    align-items: baseline;
  }
  
  .parents {
    display: block;
    margin-top: 20px;
    color: var(--h2-color);
  }

  .phrase-row{
    padding: 1% 5%;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .phrase-center{
    font-family: 'Playfair Display', serif;
    font-style: italic;
    max-width: 600px;
    margin: auto;
    text-align: justify;
    padding: 10px 25px;
    
    text-align: center;
  }
  
  /* ✨ BOTONES */
  .btn {
    display: inline-block;
    margin-top: 20px;
    padding: 14px 36px;
    border-radius: 50px;
    background: linear-gradient(135deg, var(--rosa), var(--lila));
    color: var(--button-text-color);
    text-decoration: none;
  }
  
  .whatsapp {
    background: linear-gradient(135deg, var(--rosa), var(--lila));
  }

  /* 🎥 SECCIÓN CON VIDEO */
.scene-video {
  height: 100vh;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* VIDEO */
.bg-video {
  position: absolute;
  top: 50%;
  left: 50%;
  min-width: 100%;
  min-height: 100%;
  transform: translate(-50%, -50%);
  object-fit: cover;
  z-index: 1;
}

/* OVERLAY ELEGANTE */
.video-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 246, 239, 0.55); /* pastel suave */
  z-index: 2;
}

/* CONTENIDO */
/* Contenido encima */
.scene-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;

  text-align: center;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.scene-content-title {
  font-size: 42px;
  font-family: 'Playfair Display', serif;
  color: var(--countdown);
  letter-spacing: 3px;
}

/* CONTADOR */
#countdown {
  font-size: 42px;
  font-family: 'Playfair Display', serif;
  color: var(--countdown);
  letter-spacing: 3px;
}

@media(min-width:1000px){
  .scene-video{
    width: 100%;
    max-width: 500px;
    margin:0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }
}

/* VESTIMENTA*/

.vestimenta-img {
  margin: 0px;
  padding: 0px;
  width: 90%;
  height: auto;
  align-content: center;
}

/* FOTOS */

.fotos {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;  
}

.carousel {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  margin:0 auto;
}

.slide {
  position: absolute;
  inset:0;
  top: 0;
  left: 0;
  opacity: 0;
  transform-origin: center;
  transition: opacity 0.5s ease-out;
}

.slide img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.slide.active {
  opacity: 1;
  z-index: 2;
}

/* Animaciones */
@keyframes rotateLeftOut {
  0% { transform: rotate(0deg) scale(1); opacity: 1; transform-origin: top left; }
  100% { transform: rotate(-90deg) scale(0.8); opacity: 0; }
}

@keyframes rotateRightOut {
  0% { transform: rotate(0deg) scale(1); opacity: 1; transform-origin: top right; }
  100% { transform: rotate(90deg) scale(0.8); opacity: 0; }
}

@keyframes rotateLeftIn {
  0% { transform: rotate(90deg) scale(0.8); opacity: 0; transform-origin: top right; }
  100% { transform: rotate(0deg) scale(1); opacity: 1; }
}

@keyframes rotateRightIn {
  0% { transform: rotate(-90deg) scale(0.8); opacity: 0; transform-origin: top left; }
  100% { transform: rotate(0deg) scale(1); opacity: 1; }
}

/* Botones */
.controls {
  margin: 0 !important;
  padding: 0 !important;
  position: absolute;
  bottom: 33vh;
  width: 100vw;
  display: flex;
  justify-content: space-between;
  padding: 0 40px;
  z-index: 3;
}

.fotos-btn {
  background-color: transparent;
  border: none;
  color: var(--foter-background);
  font-size: 5rem;
  width: 5rem;
  height: 5rem;
  border-radius: 0%;
  cursor: pointer;
  transition: background 0.3s;
}

.fotos-btn:hover {
  background-color: rgba(255,255,255,0.4);
}

/* Responsividad */
@media (min-width: 1000px) {
  .fotos{
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    
  }

  .fotos-btn {
    width: 5rem;
    height: 5rem;
    font-size: 1.5rem;
  }
}





  
  /* ✨ ANIMACIONES */

  @keyframes slideUp {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
  }
  
  @keyframes fadeIn {
    from { opacity: 0; transform: scale(.95); }
    to { opacity: 1; transform: scale(1); }
  }

  /* CEREMONIA */
  .scene-parallax {
    position: relative;
    height: 80vh;
    overflow: hidden;
  }
  
  /* Contenedor de la imagen */
  .img-parallax {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
  }
  
  /* La imagen */
  .ceremoni {
    width: 100%;
    height: 120%; /* más grande para efecto */
    object-fit: cover;
    position: absolute;
    top: -10%;
    left: 0;
    will-change: transform;
  }
  
  
  
  /* Overlay elegante */
  .scene-parallax::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.35);
    z-index: 2;
  }

  /* CEREMONY 2 */

  /* CEREMONY */

  .section {
    margin: 0;
    padding: 5px 0px;

    background-image: url('img/fondo-dino-rosa.webp');
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-size: cover;
  }

  @media(min-width:1000px){
    .section{
      width: 100%;
      max-width: 500px;
      margin: 0 auto;
    }
  }
  

  .ceremony-img {
    margin: 0;
    padding: 0;

    width: 100%;
    height: 50vh;

    background-image: url('img/direccion2.webp');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
  }


    /* FIX IPHONE */
  @supports (-webkit-touch-callout: none) {

    .ceremony-img{
      background-attachment: scroll;
    }

    .section{
      background-attachment: scroll;
    }

  }

  @media(min-width:1000px){
    .ceremony-img{
      width: 100%;
      height: 50vh;
      background-image: url('img/direccion2.webp');
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
    }
  }

  /* INFO */
  .info-grid {
    margin-top: 40px;

    display: flex;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
  }
  
  .info-grid span {
    font-size: 2rem;
    font-weight: bold;
    letter-spacing: 2px;
    color: var(--direccion-titulo);
  }
  
  .info-grid p {
    margin-top: 8px;
    font-size: 1.5rem;
    color:var(--direccion-texto);
  }


  
  /* RECEPCION */

  .reception-img {
    margin: 0;
    padding: 0;

    width: 100VW;
    height: 50vh;

    background-image: url('img/reception.jpg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
  }
  
  /* CONFIRMACION */

  .confirm {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    background-image: url('img/fondo-dino-rosa.webp');
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-size: cover;
  }

  /* FIX IPHONE */
  @supports (-webkit-touch-callout: none) {

    .confirm{
      background-attachment: scroll;
    }
  
  }

  @media(min-width:1000px){
    .confirm{
      width: 100%;
      max-width: 500px;
      margin: 0 auto;
    }
  }

  .confirm-img {
    width: 10vw;
    height: 10vw;
  }

  /* foter */

  .line{
    margin: 0;
    padding: 0;
    border: none;
    height: 2px;
    background-color: var(--foter-line);
    width: 100vw;
  }

  .foter {
    display: flex;
    flex-direction: row;
    justify-content: center;
    
    font-size: 1rem;
    width: 100vw;
    height: fit-content;
    position: relative;

    background-color: var(--foter-background-container);

  }

  .foter-row {
    
    border: 2px solid var(--foter-background-cont);
    border-radius: 50px;

    margin: 0px 10px;
    padding: 0px 20px;
    gap:1px;

    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;

    background-color: var(--foter-background);
  }

  .foter-col {
    margin: 0px 0px;
    padding: 0px;
    display: flex;
    flex-direction: column;
    gap:0px;
    align-items: center;
    justify-content: center;
    color: #fff;
  }

  .foter-mchic {
    width: 8vw;
    height: auto;
  } 

  .foter-ci {
    width: 5vw;
    height: auto;
  }

  .foter-whats {
    width: 4vw;
    height: auto;
  }

  