/* ==========================================
   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:#000;
    color:#fff;
    overflow-x:hidden;
    overflow-y:scroll;
}

/* ==========================================
   SECTIONS
========================================== */

section{
    position:relative;
    min-height:100vh;
    display:flex;
    justify-content:center;
    align-items:center;
    overflow:hidden;
}

.hero,
.photo,
.gift{
    scroll-snap-align:start;
    scroll-snap-stop:always;
}

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

.hero .bg,
.photo img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    animation:zoom 18s ease-in-out infinite alternate;
}

.overlay,
.shade{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.45);
}

.content,
.text{
    position:relative;
    z-index:2;
    width:90%;
    max-width:720px;
    text-align:center;
}

h1{
    font-size:64px;
    margin-bottom:18px;
}

h2{
    font-size:42px;
    margin-bottom:18px;
}

h3{
    margin-bottom:14px;
}

p{
    font-size:22px;
    line-height:1.8;
}

/* ==========================================
   BUTTONS
========================================== */

button{
    margin-top:28px;
    padding:16px 36px;
    border:none;
    border-radius:999px;
    background:linear-gradient(135deg,#ff4f88,#ff7ba5);
    color:#fff;
    font-size:18px;
    font-weight:600;
    cursor:pointer;
    transition:.3s;
}

button:hover{
    transform:translateY(-2px) scale(1.05);
    box-shadow:0 12px 30px rgba(255,79,136,.35);
}

.download-btn{

    display:inline-block;

    margin-top:35px;

    padding:18px 35px;

    border-radius:999px;

    text-decoration:none;

    color:white;

    background:linear-gradient(135deg,#ff4f88,#ff7ba5);

    transition:.3s;

}

.download-btn:hover{

    transform:translateY(-2px) scale(1.05);

    box-shadow:0 15px 35px rgba(255,79,136,.35);

}
/* ==========================================
   REVEAL
========================================== */

.reveal{
    opacity:0;
    transform:translateY(60px);
    transition:1s ease;
}

.reveal.show{
    opacity:1;
    transform:translateY(0);
}

/* ==========================================
   GIFT
========================================== */

.gift{
    background:linear-gradient(#000,#111);
    text-align:center;
}

.gift-container{
    width:90%;
    max-width:720px;
    padding:35px;
}

#step2,
#openGift,
#giftCard{
    display:none;
}

#step1,
#step2{
    font-size:52px;
}

#giftCard{
    margin-top:40px;
    padding:30px;
    border-radius:22px;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.15);
    backdrop-filter:blur(15px);
}

#giftCard.open{
    display:block;
    animation:fade .8s;
}

/* ==========================================
   HEARTS
========================================== */

.heart{
    position:fixed;
    top:-30px;
    pointer-events:none;
    animation:fall 5s linear forwards;
}

/* ==========================================
   ANIMATIONS
========================================== */

@keyframes zoom{
    from{transform:scale(1);}
    to{transform:scale(1.12);}
}

@keyframes fade{
    from{opacity:0;transform:scale(.85);}
    to{opacity:1;transform:scale(1);}
}

@keyframes fall{
    to{
        transform:translateY(110vh);
        opacity:0;
    }
}

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

@media(max-width:768px){

    h1{font-size:42px;}
    h2{font-size:30px;}
    h3{font-size:22px;}
    p{font-size:18px;}
    button{width:90%;}

    #step1,
    #step2{
        font-size:36px;
    }

    #giftCard{
        padding:24px;
    }
}
