:root {
    --soft:#FDF0EB;
    --rosa-title: #cb96b6;
    --rosa-background:#f1c6dc;
    --lila: #e8dff518;
    --crema: #FFF6EF;
    --dorado: #C9A24D;
    --rosa:#d5a8ca;
    --curtins-color1:#d5a8ca;
    --curtins-color2:#e8dff518;
    --btn-color1:#d5a8ca;
    --btn-color2:#e8dff518;
    --gris: #6B6B6B;
    --welcomebox: #ed63c3;
    --section-img-shadow:#767474;
    --hero-title: #fb9b9b;
    --hero-title-nombre: #f9acac;
    --hero-title-shadow: #ffeded;
    --countdown: #fff;
    --foter-line:#fdfbfa;
    --foter-background: #f1c6dc;
    --foter-background-container:#eab8d1;
    --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-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;
    background: var(--rosa-background);
    color: var(--gris);
    text-align: center;
    
    overflow-x: hidden;
    overflow-y: auto;
  }
  
  /* PRELOADER */
  #preloader {
    position: fixed;
    inset: 0;
    background: var(--crema);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10000;
  }
  
  /* Contenido */
  .loader {
    text-align: center;
    color: var(--gris);
    font-family: 'Poppins', sans-serif;
  }
  
  /* Spinner animado */
  .spinner {
    width: 50px;
    height: 50px;
    border: 5px solid #ddd;
    border-top: 5px solid var(--dorado);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 15px;
  }
  
  @keyframes spin {
    to { transform: rotate(360deg); }
  }
  
  /* 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;
}

/* 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: 100px;
    right: 0px;
    border: none;
    background: rgba(255,255,255,.8);
    padding: 10px;
    border-radius: 0%;
    z-index: 10;
  }

  .contenedor-general{
    max-width: 500px;
    margin: auto;
    position: relative;
  }
  
  /* 👑 HERO */
  .hero {
    position: relative;
    max-width: 500px;
    width: 100%;
    overflow: hidden;
    min-height: 120vh;
  }
  
  .hero.open {
    opacity: 1;
  }
  
  .hero-content {
    width: 100%;
    z-index: 3;
  }

  .hero-video{
    display: block;
    width: 100%;
    height: 100vh;
    
  }
  
  /* 🎭 CORTINAS */
  .curtain {
    position: absolute;
    top: 0;
    width: 50vw;
    height: 100vh;
    background: linear-gradient(to bottom, var(--curtins-color1), var(--curtins-color2));
    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); }


  
  
  /* 🌸 ESCENAS */
  .scene {
    padding: 20px 20px;
    animation: slideUp 1.2s ease both;
  }
  
  .soft {
    background: var(--rosa-background);
  }
  
  h2 {
    font-family: 'Playfair Display', serif;
    color: var(--rosa-title);
    letter-spacing: 2px;
  }
  
  .phrase {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    max-width: 600px;
    margin: auto;
    font-size: 18px;
  }
  
  .parents {
    display: block;
    margin-top: 20px;
    color: var(--rosa-title);
  }
  
  /* ✨ BOTONES */
  .btn {
    display: inline-block;
    margin-top: 20px;
    padding: 14px 36px;
    border-radius: 50px;
    background: linear-gradient(135deg, var(--btn-color1), var(--btn-color2));
    color: var(--gris);
    text-decoration: none;
  }
  
  .whatsapp {
    background: linear-gradient(135deg, var(--btn-color1), var(--btn-color2));
  }

  /* 🎥 SECCIÓN CON VIDEO */
.scene-video {
  position: relative;
  height: fit-content;
  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 */
.scene-content {
  position: relative;
  z-index: 3;
  text-align: center;
  padding: 30% 2%;
}

.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;
}

/* VESTIMENTA*/

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

/* FOTOS */

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

.carousel {
  position: relative;
  width: 100%;
  height: 100%;
}

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

.slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  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 (max-width: 1440px) {
  .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;
  }
  
  /* Contenido encima */
  .scene-content {
    position: relative;
    z-index: 3;
    text-align: center;
    padding-top: 25vh;
    color: white;
  }
  
  /* 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 10px;

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

  
  }

  .section-img{
    width: 80%;
    height: auto;
    box-shadow: 2px 2px 10px var(--section-img-shadow);
    border-radius: 15px;
  }
  

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

    max-width: 100%;
    height: 50vh;

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

  /* 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(--color-base1);
  }
  
  .info-grid p {
    margin-top: 8px;
    font-size: 1.5rem;
  }
  
  /* 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: scroll;
    background-size: cover;

  }

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

  /* foter */

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

  .foter {
    display: flex;
    flex-direction: row;
    justify-content: center;
    
    font-size: 1rem;
    width: 100%;
    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;
  }

  