/* ===================================================
   WEDDING INVITATION - PART 1
=================================================== */

@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&family=Cormorant+Garamond:wght@300;400;500;600;700&family=Poppins:wght@300;400;500;600&display=swap');

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

:root{

--gold:#C9A46B;
--gold2:#E9C88E;

--bg:#FBF7F2;

--text:#5A4634;

--white:#fff;

}

html{

scroll-behavior:smooth;

}

body{

background:var(--bg);

font-family:Poppins,sans-serif;

color:var(--text);

overflow-x:hidden;

}

/* ================= INTRO ================= */

#intro{
    position:relative;
    min-height:100dvh;
    display:flex;
    justify-content:center;
    align-items:center;
    overflow:hidden;
    background:#000;
}
#intro h1,
#intro p,
#intro .subtitle{
    color:#fff;
}

.bg-blur{

position:absolute;

border-radius:50%;

filter:blur(60px);

}

.blur1{

width:500px;

height:500px;

left:-200px;

top:-200px;

background:

rgba(201,164,107,.25);

}

.blur2{

    width:300px;
    height:300px;

    right:-120px;
    bottom:-120px;

    background:rgba(201,164,107,.12);

    filter:blur(120px);

}

.intro-box{
    position:relative;
    z-index:5;

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

    padding:30px;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;

    text-align:center;
    transform: translateY(-40px);
}
.subtitle{

letter-spacing:7px;

font-size:14px;

color:var(--gold);

margin-bottom:25px;

text-transform:uppercase;

}

.intro-box h1{

font-family:"Great Vibes";

font-size:90px;

font-weight:400;

color:#8d6334;

}


.desc{

margin-top:20px;

font-size:18px;

line-height:1.8;

color:#666;

}

#openInvitation{

margin-top:40px;

padding:18px 50px;

border:none;

border-radius:60px;

background:white;

font-size:17px;

box-shadow:

0 20px 45px rgba(0,0,0,.08);

transition:.35s;

cursor:pointer;
border:1px solid rgba(255,255,255,.15);
box-shadow:0 15px 35px rgba(0,0,0,.25);

}

#openInvitation:hover{

transform:translateY(-3px);

}

/* ================= MAIN ================= */

#main{

    display:none;

    position:relative;

    max-width:1100px;

    margin:20px auto;

    background:#FBF7F2;

    border:2px solid rgba(201,164,107,.45);

    border-radius:28px;

    box-shadow:
        0 20px 50px rgba(0,0,0,.08);

    overflow:hidden;

}
#main::before{

    content:"";

    position:absolute;

    inset:10px;

    border:1px solid rgba(201,164,107,.28);

    border-radius:20px;

    pointer-events:none;

}

.hero{

padding:70px 20px 20px;

text-align:center;

}


.hero h2{

font-family:"Great Vibes";

font-size:72px;

font-weight:400;

color:#8d6334;

}

.hero span{

display:block;

font-size:35px;

margin:10px;

}

.hero>p{

margin-top:20px;

font-size:19px;

color:#666;

}

.info{

margin-top:70px;

display:flex;

justify-content:center;

gap:30px;

flex-wrap:wrap;

}

.card{

width:260px;

padding:35px;

background:white;

border-radius:30px;

box-shadow:

0 20px 50px rgba(0,0,0,.08);

transition:.35s;

}

.card:hover{

transform:translateY(-8px);

}

.icon{

font-size:40px;

margin-bottom:15px;

}

.card h3{

margin-bottom:10px;

color:#9a6e37;

}
/* ===========================================
   COUNTDOWN
=========================================== */

.countdown{

padding:40px 20px 60px;

text-align:center;

}

.countdown h2{

font-family:"Cormorant Garamond",serif;

font-size:45px;

font-weight:600;

color:#8d6334;

margin-bottom:45px;

}

.timer{

display:flex;

justify-content:center;

gap:25px;

flex-wrap:wrap;

}

.time-box{

width:130px;

height:130px;

background:#fff;

border-radius:30px;

display:flex;

flex-direction:column;

justify-content:center;

align-items:center;

box-shadow:0 20px 45px rgba(0,0,0,.08);

transition:.35s;

}

.time-box:hover{

transform:translateY(-8px);

}

.time-box span{

font-size:45px;

font-weight:700;

color:#b68b50;

}

.time-box small{

margin-top:10px;

font-size:16px;

letter-spacing:2px;

color:#777;

}

/* ===========================================
MESSAGE
=========================================== */

.message{

padding:50px 20px;

text-align:center;

max-width:900px;

margin:auto;

}

.message h2{

font-family:"Great Vibes";

font-size:70px;

font-weight:400;

color:#8d6334;

margin-bottom:25px;

}

.message p{

font-size:19px;

line-height:2;

color:#666;

}


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

#musicButton{

    position:fixed;

    right:18px;
    bottom:18px;

    width:62px;
    height:62px;

    border-radius:50%;

    display:flex;
    justify-content:center;
    align-items:center;

    font-size:26px;

    color:white;

    background:rgba(201,164,107,.88);

    backdrop-filter:blur(10px);

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

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

    cursor:pointer;

    transition:.35s;

    z-index:9999;

}
#musicButton img{

    width:24px;
    height:24px;

    display:block;

    object-fit:contain;

    pointer-events:none;

}

#musicButton:hover{

    transform:scale(1.05);

}
#musicButton:active{

    transform:scale(.92);

}
#musicButton.playing{

    background:#b68b50;

    box-shadow:
        0 12px 35px rgba(182,139,80,.35);

}

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

@keyframes heart{

0%,100%{

transform:scale(1);

}

50%{

transform:scale(1.18);

}

}

@keyframes fadeUp{

from{

opacity:0;

transform:translateY(60px);

}

to{

opacity:1;

transform:translateY(0);

}

}

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

@media(max-width:768px){

.intro-box h1{

font-size:62px;

}

.hero h2{

font-size:58px;

}

.message h2{

font-size:55px;

}

.countdown h2{

font-size:34px;

}

.time-box{

width:95px;

height:95px;

}

.time-box span{

font-size:32px;

}

.card{

width:100%;

}

}
/* ======================================
COUPLE PHOTO
====================================== */

.couple{

    display:flex;

    justify-content:center;

    margin-bottom:40px;

}

.photo-frame{

    width:360px;

    max-width:92%;

    padding:8px;

    background:#fff;

    border-radius:28px;

    border:2px solid rgba(201,164,107,.25);

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

    overflow:hidden;

}

.photo-frame:hover{

    transform:translateY(-6px) scale(1.015);

    box-shadow:
        0 25px 55px rgba(0,0,0,.12),
        0 12px 30px rgba(201,164,107,.18);

}

.photo-frame img{

    width:100%;

    display:block;

    border-radius:24px;

    object-fit:cover;

    filter:
        brightness(.98)
        contrast(1.05)
        saturate(1.06);
    animation:zoomPhoto 12s ease-in-out infinite alternate;

}

@keyframes zoomPhoto{

    0%{

        transform:scale(1);

    }

    100%{

        transform:scale(1.03);

    }

}
.calendar-section{

margin:40px auto 20px;

max-width:600px;

text-align:center;

}

.calendar-section h2{

font-size:54px;

font-family:"Cormorant Garamond",serif;

color:#8d6334;

margin-bottom:20px;

letter-spacing:3px;

}

.weekdays{

display:grid;

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

margin-bottom:15px;

font-size:14px;

letter-spacing:2px;

color:#888;

}

.calendar{

    display:grid;

    grid-template-columns:repeat(7,minmax(0,1fr));

    gap:16px;

    justify-items:center;
    grid-auto-rows:48px;
    row-gap:10px;

}

.calendar span{

font-size:28px;

padding:10px;

color:#444;

}

.heart-day{

margin-top:4px;

position:relative;

width:78px;

height:78px;

margin:auto;

display:flex;

justify-content:center;

align-items:center;

animation:heartbeat 1.5s infinite;

}

.heart-day img{

width:100%;

display:block;

filter:drop-shadow(0 10px 25px rgba(217,47,75,.35));

}

.heart-day span{

position:absolute;

color:#fff;

font-size:24px;

font-weight:700;

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

top:50%;

left:50%;

transform:translate(-50%,-58%);

pointer-events:none;

}

@keyframes heartbeat{

0%,100%{

transform:scale(1);

}

50%{

transform:scale(1.08);

}

}
/* ===========================
LOCATION
=========================== */

.location-section{

padding:120px 20px;

text-align:center;

}

.building{

width:430px;

max-width:90%;

margin-bottom:30px;

filter:drop-shadow(0 20px 35px rgba(0,0,0,.08));

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

}

.location-section h3{

font-size:34px;

letter-spacing:3px;

color:#9b6b36;

margin-bottom:10px;

}

.address{

font-size:20px;

color:#666;

margin-bottom:45px;

}

.location-buttons{

display:flex;

justify-content:center;

gap:20px;

flex-wrap:wrap;

}

.location-btn{

    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;

    padding:20px 42px;

    border:2px solid #C9A46B;

    background:#C9A46B;

    color:#fff;

    border-radius:50px;

    font-size:17px;

    font-weight:500;

    cursor:pointer;

    transition:.35s;

    text-decoration:none;

}
.location-icon{

    width:20px;
    height:20px;

    display:block;

}


.location-btn:hover{

    background:#B68B50;

    border-color:#B68B50;

    color:#fff;

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

    box-shadow:
        0 14px 30px rgba(182,139,80,.35);

}

@keyframes float{

0%,100%{

transform:translateY(0);

}

50%{

transform:translateY(-10px);

}

}
.location-section > h2{
    font-family: "Cormorant Garamond", serif !important;
    font-size: 64px !important;
    font-weight: 500 !important;
    color: #9b6b3d !important;
    text-align: center !important;
    margin-bottom:30px;
}
/* ================= MOBILE ================= */

@media (max-width:768px){

.hero-image{

    object-position:60% center;

    transform:scale(1.2);

}

.intro-box{

    padding:25px;

}

.intro-box h1{

    font-size:70px;

}

.desc{

    font-size:20px;

}

}
.hero-image{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    object-fit:cover;

    object-position:55% center;

    transform:scale(1.08);

    filter:brightness(.45);

    z-index:0;

}

.intro-box{

    position:relative;

    z-index:5;

}
.separator{
    font-family: "Cormorant Garamond", serif;
    font-size:48px;
    font-style: italic;
    font-weight: 500;

    color: #ffffff;

    line-height: 1;
    margin:8px 0;

    text-shadow: 0 2px 12px rgba(0,0,0,.35);

    animation: none;
}
.invite-btn{

    position: relative;

    width: 320px;

    height: 72px;

    border: none;

    border-radius: 999px;

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

    color: #2f2f2f;

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

    font-size: 23px;

    font-weight: 500;

    cursor: pointer;

    transition: all .35s ease;

    box-shadow:
        0 12px 35px rgba(0,0,0,.22),
        inset 0 1px 1px rgba(255,255,255,.9);

    overflow: hidden;

    backdrop-filter: blur(10px);

}
.invite-btn::before{

    content:"";

    position:absolute;

    top:0;

    left:-120%;

    width:70%;

    height:100%;

    background:linear-gradient(
        120deg,
        transparent,
        rgba(255,255,255,.8),
        transparent
    );

    transition:.7s;

}
.invite-btn:hover{

    transform:translateY(-5px);

    box-shadow:
        0 22px 45px rgba(0,0,0,.28);

}

.invite-btn:hover::before{

    left:150%;

}
.invite-btn:active{

    transform:scale(.97);

}
@media (max-width:768px){

    .invite-btn{

        width:280px;

        height:64px;

        font-size:21px;

    }

}
@media (max-width:768px){

    .calendar-section{
        max-width:100%;
        padding:0 10px;
    }

    .calendar-section h2{
        font-size:34px;
        color:#8d6334;
        letter-spacing:1px;
        margin-bottom:20px;
    }

    .weekdays,
    .calendar{

        display:grid;
        grid-template-columns:repeat(7,minmax(0,1fr));
        gap:6px;

    }

    .weekdays span{

        font-size:13px;
letter-spacing:1px;

    }

    .calendar span{

    padding:0;
    line-height:38px;
    font-size:20px;

}

 .heart-day{
    width:38px;
    height:38px;
}

.heart-day img{
    width:38px;
    height:38px;
}

.heart-day span{
    font-size:13px;
}

}
.heart-day small{
    position:absolute;
    inset:0;
    display:flex;
    justify-content:center;
    align-items:center;
    color:#fff;
    font-size:13px;
    font-weight:700;
}
@media (max-width:768px){

    .location-section{

        padding:60px 20px 30px;

    }

    .message{

        padding:40px 20px;

    }

}

.calendar-title{
    text-align:center;
    font-size:42px;
}
@media (max-width:768px){

    .photo-frame{

        width:100%;

        padding:8px;

        border-radius:24px;

    }

    .photo-frame img{

        border-radius:18px;

    }

}
@media (max-width:768px){

    #main{

        margin:8px;

        border-radius:22px;

    }

    #main::before{

        inset:8px;

        border-radius:16px;

    }

}
