/* ===========================
   RESET
=========================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
    scroll-snap-type:y mandatory;
}

body{
    font-family:'Poppins',sans-serif;
    background:#f8f4ef;
    color:#3d3027;
    overflow-x:hidden;
}

/* ===========================
   SCROLL
=========================== */

section{
    width:100%;
    min-height:100vh;
    scroll-snap-align:start;
    position:relative;
    display:flex;
    justify-content:center;
    align-items:center;
}

.container{
    width:min(900px,90%);
    margin:auto;
    text-align:center;
}

/* ===========================
   TIPOGRAFÍAS
=========================== */

h1{
    font-family:'Cormorant Garamond',serif;
    font-size:5rem;
    font-weight:600;
    letter-spacing:3px;
}

h2{
    font-family:'Cormorant Garamond',serif;
    font-size:3.5rem;
    margin-bottom:20px;
}

h3{
    font-family:'Great Vibes',cursive;
    font-size:3rem;
    color:#c49572;
    margin-bottom:25px;
}

p{
    font-size:1.15rem;
    line-height:1.9;
    font-weight:300;
}

small{
    font-size:.9rem;
}

/* ===========================
   HERO
=========================== */

.hero{
    overflow:hidden;
}

.hero .bg{

    position:absolute;

    width:100%;
    height:100%;

    object-fit:cover;
}

.overlay{

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.45);

}

.hero .content{

    position:relative;

    z-index:10;

    text-align:center;

    color:white;

}

.hero h2{

    font-family:'Great Vibes';

    font-size:4rem;

    color:#fff;

}

.hero h1{

    color:#fff;

}

.hero span{

    display:block;

    margin-top:20px;

    letter-spacing:6px;

    font-size:1.1rem;

}

/* ===========================
   BOTONES
=========================== */

button,
.button{

    display:inline-block;

    margin-top:35px;

    padding:16px 42px;

    border:none;

    border-radius:50px;

    background:#c89b7b;

    color:white;

    text-decoration:none;

    cursor:pointer;

    transition:.35s;

    font-size:1rem;

}

button:hover,
.button:hover{

    transform:translateY(-3px);

    background:#b78564;

}

.secondary{

    background:#6b5b50;

}

.secondary:hover{

    background:#51453d;

}

/* ===========================
   FOTOS
=========================== */

.photo{

    width:340px;

    max-width:90%;

    margin-top:40px;

    border-radius:18px;

    box-shadow:0 15px 35px rgba(0,0,0,.18);

}

.imageSection{

    overflow:hidden;

}

.imageSection img{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

}

.caption{

    position:relative;

    z-index:5;

    width:80%;

    color:white;

    font-family:'Cormorant Garamond';

    font-size:3rem;

    text-align:center;

    text-shadow:0 0 20px rgba(0,0,0,.5);

}

/* ===========================
   TARJETAS
=========================== */

.card{

    margin:40px auto;

    padding:35px;

    max-width:500px;

    background:white;

    border-radius:25px;

    box-shadow:0 10px 35px rgba(0,0,0,.08);

    line-height:2;

}

.alias{

    margin-top:35px;

    font-size:1.4rem;

    letter-spacing:2px;

    font-weight:600;

    color:#b78564;

}

/* ===========================
   CONTADOR
=========================== */

#countdown{

    margin-top:60px;

    display:flex;

    justify-content:center;

    gap:30px;

    flex-wrap:wrap;

}

#countdown div{

    width:130px;

    height:130px;

    border-radius:20px;

    background:white;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

}

#countdown span{

    font-size:3rem;

    font-family:'Cormorant Garamond';

    color:#b78564;

}

/* ==========================================
   LOADER
========================================== */

#loader{
    position:fixed;
    inset:0;
    background:#f8f4ef;
    display:flex;
    justify-content:center;
    align-items:center;
    z-index:9999;
    transition:.8s;
}

#loader h2{
    font-family:'Great Vibes',cursive;
    font-size:4rem;
    color:#c89b7b;
    animation:pulse 1.8s infinite;
}

#loader.hide{
    opacity:0;
    visibility:hidden;
}

@keyframes pulse{

    0%{opacity:.4;transform:scale(.95);}

    50%{opacity:1;transform:scale(1.05);}

    100%{opacity:.4;transform:scale(.95);}

}

/* ==========================================
   BOTÓN MÚSICA
========================================== */

#musicButton{

    position:fixed;

    right:25px;

    bottom:25px;

    width:60px;

    height:60px;

    border-radius:50%;

    border:none;

    background:rgba(255,255,255,.9);

    backdrop-filter:blur(10px);

    color:#b78564;

    font-size:24px;

    cursor:pointer;

    box-shadow:0 8px 25px rgba(0,0,0,.18);

    z-index:999;

}

#musicButton:hover{

    transform:scale(1.1);

}

/* ==========================================
   ANIMACIONES
========================================== */

.fade{

    opacity:0;

    transform:translateY(50px);

    transition:1s;

}

.fade.visible{

    opacity:1;

    transform:translateY(0);

}

.zoom{

    animation:zoom 18s linear infinite alternate;

}

@keyframes zoom{

    from{

        transform:scale(1);

    }

    to{

        transform:scale(1.12);

    }

}

.float{

    animation:float 5s ease-in-out infinite;

}

@keyframes float{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-12px);

    }

    100%{

        transform:translateY(0);

    }

}

/* ==========================================
   GLASS
========================================== */

.glass{

    background:rgba(255,255,255,.25);

    backdrop-filter:blur(15px);

    border:1px solid rgba(255,255,255,.3);

    border-radius:25px;

}

/* ==========================================
   FRASES
========================================== */

.phrase{

    font-family:'Cormorant Garamond';

    font-size:2rem;

    font-style:italic;

    max-width:700px;

    margin:auto;

}

/* ==========================================
   FINAL
========================================== */

.final{

    overflow:hidden;

}

.final .bg{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

}

.final .content{

    position:relative;

    z-index:10;

    color:white;

    text-align:center;

    width:min(800px,90%);

}

.final p{

    font-size:2rem;

    line-height:2;

    font-family:'Cormorant Garamond';

    text-shadow:0 4px 18px rgba(0,0,0,.5);

}

.final h3{

    margin-top:40px;

    color:white;

    font-size:3.2rem;

}

/* ==========================================
   EFECTO FONDO
========================================== */

body::before{

    content:"";

    position:fixed;

    inset:0;

    pointer-events:none;

    background-image:

    radial-gradient(circle at 15% 20%,rgba(255,255,255,.4) 2px,transparent 3px),

    radial-gradient(circle at 80% 30%,rgba(255,255,255,.3) 2px,transparent 3px),

    radial-gradient(circle at 60% 80%,rgba(255,255,255,.3) 2px,transparent 3px);

    background-size:280px 280px;

    animation:stars 25s linear infinite;

    opacity:.35;

}

@keyframes stars{

    from{

        transform:translateY(0);

    }

    to{

        transform:translateY(-250px);

    }

}

/* ==========================================
   RESPONSIVE TABLET
========================================== */

@media(max-width:992px){

    h1{

        font-size:4rem;

    }

    h2{

        font-size:2.8rem;

    }

    .caption{

        font-size:2.4rem;

    }

}

/* ==========================================
   RESPONSIVE CELULAR
========================================== */

@media(max-width:768px){

    h1{

        font-size:3rem;

    }

    h2{

        font-size:2.2rem;

    }

    h3{

        font-size:2.3rem;

    }

    p{

        font-size:1rem;

        line-height:1.7;

    }

    .phrase{

        font-size:1.6rem;

    }

    .caption{

        font-size:2rem;

        width:90%;

    }

    #countdown{

        gap:15px;

    }

    #countdown div{

        width:95px;

        height:95px;

    }

    #countdown span{

        font-size:2rem;

    }

    .card{

        padding:25px;

    }

    button,

    .button{

        width:100%;

        max-width:320px;

    }

}

/* ==========================================
   SCROLL BAR
========================================== */

::-webkit-scrollbar{

    width:8px;

}

::-webkit-scrollbar-track{

    background:#f5efe8;

}

::-webkit-scrollbar-thumb{

    background:#c89b7b;

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:#b78564;

}