*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    background:#111;
    font-family:'Segoe UI',sans-serif;
    overflow-x:hidden;
}

/* ================= DESKTOP LAYOUT ================= */

.desktop-wrapper{
    display:flex;
}

.desktop-side{
    width:70%;
    background:#fff;
}

.mobile-side{
    width:30%;
    background:#0b0b0b;
    display:flex;
    justify-content:center;
    align-items:flex-start;
    padding:20px;
    position:sticky;
    top:0;
    height:100vh;
}

.phone-frame{
    width:390px;
    height:844px;
    background:#000;
    border-radius:35px;
    overflow:hidden;
    box-shadow:
    0 0 0 10px #222,
    0 20px 60px rgba(0,0,0,.5);
}

.phone-frame iframe{
    width:100%;
    height:100%;
    border:none;
}

/* ================= HERO ================= */

.hero{
    min-height:100vh;
    position:relative;

    background:
    linear-gradient(
        rgba(0,0,0,.35),
        rgba(0,0,0,.35)
    ),
    url('../images/hero.jpg');

    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;

    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;

    color:#fff;
}

.overlay{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.2);
}

.hero-content{
    position:relative;
    z-index:2;
}

.hero h1{
    font-size:70px;
    font-family:Georgia, serif;
}

/* ================= SEMUA SECTION ================= */

.section{

    position:relative;

    padding:120px 30px;

    background:
    linear-gradient(
        rgba(255,255,255,.82),
        rgba(255,255,255,.82)
    ),
    url('../images/hero.jpg');

    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    background-attachment:fixed;
}

.section>*{
    position:relative;
    z-index:2;
}

/* ================= CARD ================= */

.card-custom{

    background:
    rgba(255,255,255,.90);

    backdrop-filter:blur(10px);

    padding:30px;

    border-radius:25px;

    box-shadow:
    0 10px 30px rgba(0,0,0,.12);

    text-align:center;

    border:
    1px solid rgba(255,255,255,.4);
}

.card-custom img{
    width:100%;
    height:500px;
    object-fit:cover;
    border-radius:20px;
}

/* ================= MEMPELAI ================= */

.foto-mempelai{
    width:250px;
    height:250px;
    object-fit:cover;
    border-radius:50%;
    border:6px solid #fff;
    box-shadow:0 10px 30px rgba(0,0,0,.15);
}

/* ================= GALLERY ================= */

.gallery{
    width:100%;
    height:350px;
    object-fit:cover;
    border-radius:20px;
    transition:.3s;
    cursor:pointer;
}

.gallery:hover{
    transform:scale(1.03);
}

/* ================= EVENT CARD ================= */

.event-card{

    max-width:700px;

    margin:auto;

    padding:50px;

    background:
    rgba(255,255,255,.92);

    backdrop-filter:blur(10px);

    border-radius:30px;

    box-shadow:
    0 10px 30px rgba(0,0,0,.12);
}

/* ================= BUTTON ================= */

.btn-custom{

    display:inline-block;

    padding:12px 25px;

    background:#b89165;

    color:#fff;

    text-decoration:none;

    border-radius:30px;

    transition:.3s;
}

.btn-custom:hover{
    background:#a07d56;
    color:#fff;
}

/* ================= MOBILE ================= */

@media(max-width:991px){

    .desktop-wrapper{
        display:block;
    }

    .desktop-side{
        width:100%;
    }

    .mobile-side{
        display:none;
    }

    .hero h1{
        font-size:42px;
    }

    .card-custom img{
        height:350px;
    }

    .gallery{
        height:220px;
    }

}
/* =========================
   REVEAL ANIMATION
========================= */

.reveal{
    opacity:0;
    transform:translateY(40px);
    transition:
        opacity .9s ease,
        transform .9s ease;
}

.reveal.active{
    opacity:1;
    transform:translateY(0);
}

/* Delay Animation */

.delay-1{
    transition-delay:.2s;
}

.delay-2{
    transition-delay:.4s;
}

.delay-3{
    transition-delay:.6s;
}

/* =========================
   PREMIUM HOVER
========================= */

.card-custom,
.event-card{
    transition:
        transform .4s ease,
        box-shadow .4s ease;
}

.card-custom:hover,
.event-card:hover{

    transform:translateY(-10px);

    box-shadow:
        0 20px 50px rgba(0,0,0,.18);
}

.gallery{
    transition:
        transform .4s ease,
        box-shadow .4s ease;
}

.gallery:hover{

    transform:scale(1.05);

    box-shadow:
        0 15px 40px rgba(0,0,0,.25);
}

/* =========================
   HERO ANIMATION
========================= */

.hero-content h5,
.hero-content h1,
.hero-content p,
.hero-content .btn-custom,
.hero-content .btn{

    opacity:0;

    animation:
        heroFade 1s ease forwards;
}

.hero-content h1{
    animation-delay:.2s;
}

.hero-content p{
    animation-delay:.4s;
}

.hero-content .btn,
.hero-content .btn-custom{
    animation-delay:.6s;
}

@keyframes heroFade{

    from{
        opacity:0;
        transform:translateY(35px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

/* =========================
   LIGHTBOX GALLERY
========================= */

.gallery-overlay{

    position:fixed;
    inset:0;

    background:
        rgba(0,0,0,.95);

    display:flex;
    justify-content:center;
    align-items:center;

    z-index:99999;

    cursor:pointer;

    animation:fadeOverlay .3s ease;
}

.gallery-overlay img{

    max-width:90%;
    max-height:90%;

    border-radius:15px;

    animation:zoomImage .3s ease;
}

@keyframes fadeOverlay{

    from{
        opacity:0;
    }

    to{
        opacity:1;
    }

}

@keyframes zoomImage{

    from{
        transform:scale(.9);
    }

    to{
        transform:scale(1);
    }

}
@media (max-width:768px){

    .desktop-side{
        display:none;
    }

    .mobile-side{
        width:100%;
        height:100vh;
    }

    .phone-frame{
        width:100%;
        height:100vh;
        border:none;
        border-radius:0;
        margin:0;
    }

    .phone-frame iframe{
        width:100%;
        height:100vh;
    }
}
