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

body{
    font-family:'Poppins', sans-serif;
}

.cover{
    width:100%;
    height:100vh;
    background:
linear-gradient(
rgba(54,72,57,.30),
rgba(54,72,57,.65)
),
url("../assets/images/cover.jpg");

background-size:cover;
background-position:center;
background-repeat:no-repeat; 

    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;
    color:white;

    padding:20px;
}

.content{
    width:100%;
    max-width:600px;
    text-shadow:0 4px 20px rgba(0,0,0,.45);
    transition:all .5s ease;
}

.subtitle{

    font-size:14px;

    letter-spacing:6px;

    text-transform:uppercase;

    opacity:.95;

}

h1{

    font-family:'Cormorant Garamond',serif;

    font-size:72px;

    font-weight:600;

    line-height:1.1;

    margin:20px 0;

}

h1 span{
    display:block;
    
    font-size:48px;

    margin:8px 0;
}

.date{

    margin-top:25px;

    margin-bottom:35px;

    font-size:20px;

    letter-spacing:3px;

    font-weight:300;

}

.guest{

    margin:40px auto;

    width:100%;
    max-width:420px;

    padding:25px;

    border-radius:22px;

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

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

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    box-shadow:0 15px 35px rgba(0,0,0,.18);
    
} 
    
.guest p{
    font-size:14px;
    opacity:.85;
}

.guest h2{
    margin-top:12px;
    font-size:28px;
    font-weight:600;
    font-family:'Cormorant Garamond',serif;
}

button{

    padding:18px 38px;

    border:none;

    border-radius:999px;

    background:#C8A96A;

    color:white;

    font-size:17px;

    font-weight:500;

    letter-spacing:1px;

    cursor:pointer;

    transition:.35s;

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

}

button:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 35px rgba(0,0,0,.28);
}

button:active{
    transform:scale(.97);
}

body{

    font-family:'Poppins',sans-serif;

    overflow-x:hidden;

    background:#F7F4EE;

}

.cover{

    position:relative;

    width:100%;

    height:100vh;

    ...
}

/* =========================
        MEMPELAI
========================= */

.couple{

    background:#F7F4EE;

    color:#445248;

    padding:90px 25px;

}

.container{

    max-width:700px;

    margin:auto;

    text-align:center;

}

.section-subtitle{

    font-size:14px;

    letter-spacing:6px;

    color:#6F8972;

    margin-bottom:12px;

}

.couple h2{

    font-family:'Cormorant Garamond',serif;

    font-size:52px;

    margin-bottom:24px;

}

.intro{

    line-height:1.9;

    max-width:520px;

    margin:0 auto 60px;

}

.person{

    margin-bottom:35px;

}

.person img{

    width:220px;

    height:220px;

    border-radius:50%;

    object-fit:cover;

    border:6px solid white;

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

}

.person h3{

    margin-top:22px;

    font-size:36px;

    font-family:'Cormorant Garamond',serif;

    font-weight:600;

}

.person p{

    margin-top:16px;

    line-height:1.9;

}

.love{

    font-size:38px;

    color:#C8A96A;

    margin:40px 0;

}

/* =========================
        AYAT
========================= */

.verse{

    background:white;

    color:#445248;

    padding:100px 25px;

}

.verse h2{

    font-size:18px;

    font-weight:500;

    margin-bottom:40px;

}

.arabic{

    font-size:34px;

    line-height:2;

    max-width:750px;

    margin:auto;

}

.translation{

    max-width:650px;

    margin:50px auto 0;

    line-height:2;

    font-style:italic;

    opacity:.85;

}

/* =========================
      SAVE THE DATE
========================= */

.save-date{

    background:#6F8972;

    color:white;

    padding:100px 25px;

    text-align:center;

}

.save-date h2{

    font-family:'Cormorant Garamond',serif;

    font-size:56px;

    margin:18px 0;

}

.save-text{

    max-width:520px;

    margin:0 auto 60px;

    line-height:1.9;

}

.countdown{

    display:flex;

    justify-content:center;

    gap:18px;

    flex-wrap:wrap;

}

.time-box{

    width:110px;

    padding:22px;

    border-radius:20px;

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

    backdrop-filter:blur(15px);

    -webkit-backdrop-filter:blur(15px);

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

}

.time-box span{

    display:block;

    font-size:42px;

    font-weight:600;

}

.time-box small{

    display:block;

    margin-top:8px;

    letter-spacing:2px;

    text-transform:uppercase;

}

/* =========================
      DETAIL ACARA
========================= */

.event{

    background:#F7F4EE;

    color:#445248;

    padding:100px 25px;

}

.event-card{

    max-width:600px;

    margin:50px auto 0;

    background:white;

    border-radius:28px;

    padding:40px;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

}

.event-item{

    text-align:center;

}

.event-icon{

    font-size:32px;

    margin-bottom:18px;

}

.event-item h3{

    font-family:'Cormorant Garamond',serif;

    font-size:38px;

    margin-bottom:18px;

}

.event-item p{

    margin:10px 0;

    line-height:1.8;

}

.event-card hr{

    margin:35px 0;

    border:none;

    border-top:1px solid #e6e6e6;

}

/* =========================
        LOKASI
========================= */

.location{

    padding:100px 25px;

    background:#6F8972;

    color:white;

    text-align:center;

}

.location h2{

    font-family:'Cormorant Garamond',serif;

    font-size:52px;

    margin:20px 0;

}

.location-text{

    line-height:2;

    margin-bottom:40px;

}

.maps-button{

    display:inline-block;

    padding:18px 42px;

    border-radius:999px;

    background:#C8A96A;

    color:white;

    text-decoration:none;

    font-weight:600;

    transition:.3s;

}

.maps-button:hover{

    transform:translateY(-3px);

}

.map{

    margin-top:50px;

    border-radius:24px;

    overflow:hidden;

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

}

.map iframe{

    width:100%;

    height:350px;

    border:0;

}

/* =========================
      OPEN ANIMATION
========================= */

.cover.hide{

    opacity:0;

    pointer-events:none;

    transition:1s ease;

}

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

.reveal{

    opacity:0;

    transform:translateY(40px);

    transition:1s ease;

}


.reveal.show{

    opacity:1;

    transform:translateY(0);

}

/* =========================
        GALERI
========================= */


.gallery{

    background:#F7F4EE;

    color:#445248;

    padding:100px 25px;

}


.gallery h2{

    font-family:'Cormorant Garamond',serif;

    font-size:52px;

    margin:20px 0 50px;

}


.gallery-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:18px;

}


.gallery-grid img{

    width:100%;

    height:230px;

    object-fit:cover;

    border-radius:22px;

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

    transition:.4s ease;

}

.gallery-grid img:last-child{

    grid-column:1 / 3;

    width:50%;

    justify-self:center;

}

.gallery-grid img:hover{

    transform:scale(1.04);

}

/* =========================
        LIGHTBOX
========================= */

.lightbox{

    position:fixed;

    inset:0;

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

    display:flex;

    justify-content:center;

    align-items:center;

    opacity:0;

    visibility:hidden;

    transition:.35s ease;

    z-index:9999;

}

.lightbox.show{

    opacity:1;

    visibility:visible;

}

.lightbox img{

    width:90%;

    max-width:900px;

    max-height:85vh;

    object-fit:contain;

    border-radius:18px;

}

/* =========================
      MUSIC BUTTON
========================= */

.music-button{

    position:fixed;

    right:20px;

    bottom:20px;

    width:58px;

    height:58px;

    border:none;

    border-radius:50%;

    background:#C8A96A;

    color:white;

    font-size:24px;

    cursor:pointer;

    box-shadow:0 12px 30px rgba(0,0,0,.25);

    z-index:999;

    display:none;

}

.music-button.show{

    display:flex;

    justify-content:center;

    align-items:center;

}

@keyframes rotateMusic{

    from{

        transform:rotate(0deg);

    }

    to{

        transform:rotate(360deg);

    }

}

.music-button.playing{

    animation:rotateMusic 4s linear infinite;

}

/* =========================
          FOOTER
========================= */

.footer{

    background:#445248;

    color:white;

    text-align:center;

    padding:90px 25px;

}

.footer h2{

    font-family:'Cormorant Garamond',serif;

    font-size:52px;

    margin-bottom:25px;

}

.footer-text{

    max-width:650px;

    margin:auto;

    line-height:1.9;

    opacity:.9;

    font-size:17px;

}

.footer h3{

    margin-top:50px;

    font-family:'Cormorant Garamond',serif;

    font-size:42px;

    font-weight:600;

}

.footer h3 span{

    display:block;

    margin:8px 0;

    font-size:34px;

}

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

@media (max-width:768px){

    h1{

        font-size:56px;

    }

    h1 span{

        font-size:38px;

    }

    .section-title,
    .couple h2,
    .gallery h2,
    .footer h2{

        font-size:42px;

    }

    .gallery-grid{

        grid-template-columns:1fr;

    }

    .gallery-grid img{

        height:260px;

    }

    .gallery-grid img:last-child{

        grid-column:auto;

        width:100%;

    }

}

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

.progress-bar{

    position:fixed;

    top:0;

    left:0;

    width:0%;

    height:4px;

    background:#C8A96A;

    z-index:9999;

    transition:width .15s linear;

}

/* =========================
      WISHES
========================= */

.wishes{

    padding:110px 20px;

    background:#F7F5F2;

    text-align:center;

}

.wishes .container{

    max-width:720px;

    margin:auto;

}

.wishes-text{

    margin:20px auto 45px;

    color:#666;

    line-height:1.8;

    max-width:520px;

}

#wishForm{

    display:flex;

    flex-direction:column;

    gap:18px;

}

#wishForm input,
#wishForm textarea{

    width:100%;

    padding:18px;

    border:none;

    border-radius:18px;

    background:white;

    font-size:16px;

    font-family:'Poppins',sans-serif;

    box-shadow:0 8px 20px rgba(0,0,0,.06);

    outline:none;

    transition:.3s;

}

#wishForm input:focus,
#wishForm textarea:focus{

    box-shadow:0 0 0 3px rgba(200,169,106,.25);

}

#wishForm textarea{

    resize:none;

}

#wishList{

    margin-top:50px;

}

.wish-list{

    margin-top:40px;

    display:flex;

    flex-direction:column;

    gap:18px;

}

.wish-card{

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

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    border-radius:22px;

    padding:22px;

    box-shadow:0 12px 30px rgba(0,0,0,.08);

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

    animation: cardIn .5s ease forwards;

}

.wish-card h3{

    color:#365039;

    margin-bottom:8px;

    font-size:18px;

}

.wish-card p{

    color:#555;

    line-height:1.7;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(20px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

.wish-list{

    display:flex;

    flex-direction:column;

    gap:18px;

    margin-top:35px;

}

.wish-card{

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

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

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

    border-radius:22px;

    padding:22px;

    box-shadow:0 12px 30px rgba(0,0,0,.08);

    animation:fadeUp .6s ease;
    
    opacity:0;

animation:cardIn .5s ease forwards;

}

.wish-header{

    display:flex;

    align-items:center;

    gap:15px;

    margin-bottom:15px;

}

.avatar{

    width:58px;

    height:58px;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    color:white;

    font-size:22px;

    font-weight:700;

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

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

    flex-shrink:0;

}

.wish-header h3{

    margin:0;

    color:#365039;

}

.wish-header span{

    font-size:13px;

    color:#888;

}

.wish-card p{

    line-height:1.8;

    color:#555;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(20px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

.wish-info{

    display:flex;

    flex-direction:column;

    gap:3px;

}

.wish-bubble{

    margin-top:18px;

    background:#ffffff;

    border-radius:18px;

    padding:18px 20px;

    line-height:1.8;

    color:#555;

    position:relative;

    box-shadow:0 6px 18px rgba(0,0,0,.05);

}

.wish-bubble::before{

    content:"";

    position:absolute;

    top:-8px;

    left:22px;

    width:18px;

    height:18px;

    background:white;

    transform:rotate(45deg);

}

@keyframes cardIn{

    from{

        opacity:0;

        transform:translateY(25px) scale(.96);

    }

    to{

        opacity:1;

        transform:translateY(0) scale(1);

    }

}

.empty-wish{

    text-align:center;

    padding:45px 25px;

    color:#6b8f71;

    border:2px dashed rgba(107,143,113,.25);

    border-radius:20px;

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

}

#submitWish{

    transition:.3s ease;

}

#submitWish:disabled{

    opacity:.7;

    cursor:not-allowed;

    transform:scale(.98);

}

.toast{

    position:fixed;

    left:50%;

    bottom:30px;

    transform:translateX(-50%) translateY(100px);

    background:#365039;

    color:#fff;

    padding:14px 24px;

    border-radius:50px;

    font-size:15px;

    font-weight:500;

    box-shadow:0 12px 30px rgba(0,0,0,.18);

    opacity:0;

    pointer-events:none;

    transition:.4s ease;

    z-index:9999;

}

.toast.show{

    opacity:1;

    transform:translateX(-50%) translateY(0);

}