/* =========================================
   VARIABLES
========================================= */

:root {

    --cream: #f8f3ed;
    --cream-dark: #eee4d8;
    --brown: #6b5145;
    --brown-dark: #3d2d27;
    --gold: #b79a6b;
    --white: #ffffff;

}


/* =========================================
   RESET
========================================= */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {

    font-family: "Montserrat", sans-serif;

    background: var(--cream);

    color: var(--brown-dark);

    overflow-x: hidden;

}


/* =========================================
   WELCOME SCREEN
========================================= */

.welcome-screen {

    position: fixed;

    inset: 0;

    z-index: 9999;

    background:
        linear-gradient(
            rgba(45, 30, 25, .55),
            rgba(45, 30, 25, .55)
        ),
        url("https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=2000&q=90");

    background-size: cover;

    background-position: center;

    display: flex;

    align-items: center;

    justify-content: center;

    text-align: center;

    transition:
        opacity 1s ease,
        visibility 1s ease;

}

.welcome-screen.hidden {

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

}


.welcome-content {

    color: white;

    padding: 30px;

    animation: fadeUp 1.2s ease;

}


.small-title {

    font-size: 11px;

    letter-spacing: 4px;

    margin-bottom: 25px;

}


.welcome-content h1 {

    font-family: "Cormorant Garamond", serif;

    font-size: clamp(65px, 10vw, 120px);

    font-weight: 400;

    line-height: .75;

}


.welcome-content h1 span {

    font-size: .55em;

    color: #d8bc8a;

}


.welcome-date {

    margin-top: 35px;

    letter-spacing: 5px;

    font-size: 12px;

}


.open-button {

    margin-top: 40px;

    padding: 15px 30px;

    border: 1px solid rgba(255,255,255,.7);

    background: rgba(255,255,255,.08);

    color: white;

    cursor: pointer;

    letter-spacing: 2px;

    text-transform: uppercase;

    transition: .3s;

}

.open-button:hover {

    background: white;

    color: var(--brown-dark);

}


/* =========================================
   MAIN
========================================= */

#mainContent {

    opacity: 0;

    transition: opacity 1.2s ease;

}

#mainContent.visible {

    opacity: 1;

}


/* =========================================
   HERO
========================================= */

.hero {

    height: 100vh;

    min-height: 650px;

    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

    text-align: center;

    background:
        url("https://images.unsplash.com/photo-1519225421980-715cb0215aed?auto=format&fit=crop&w=2000&q=90");

    background-size: cover;

    background-position: center;

}


.hero-overlay {

    position: absolute;

    inset: 0;

    background: rgba(35, 24, 20, .42);

}


.hero-content {

    position: relative;

    z-index: 2;

    color: white;

    padding: 20px;

}


.eyebrow {

    font-size: 11px;

    letter-spacing: 5px;

    margin-bottom: 25px;

}


.hero h1 {

    font-family: "Cormorant Garamond", serif;

    font-size: clamp(70px, 12vw, 150px);

    font-weight: 300;

    line-height: .75;

}


.hero h1 span {

    display: block;

    font-size: .45em;

    color: #d8bc8a;

    margin: 20px 0;

}


.hero-date {

    margin-top: 35px;

    letter-spacing: 7px;

    font-size: 12px;

}


.scroll-indicator {

    margin-top: 90px;

    display: flex;

    flex-direction: column;

    gap: 12px;

    align-items: center;

    font-size: 9px;

    letter-spacing: 3px;

    animation: floating 2s infinite;

}


/* =========================================
   SECTIONS
========================================= */

.section {

    padding: 110px 25px;

}


.container {

    width: min(1100px, 100%);

    margin: auto;

    text-align: center;

}


.section-label {

    font-size: 10px;

    letter-spacing: 4px;

    color: var(--gold);

    margin-bottom: 20px;

    font-weight: 600;

}


.section h2 {

    font-family: "Cormorant Garamond", serif;

    font-size: clamp(42px, 6vw, 68px);

    font-weight: 400;

    line-height: 1;

    color: var(--brown-dark);

}


/* =========================================
   INTRO
========================================= */

.intro {

    background: var(--cream);

}


.intro-text {

    max-width: 650px;

    margin: 30px auto 0;

    font-size: 14px;

    line-height: 2;

    color: #806d63;

}


.decorative-line {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 15px;

    margin: 30px 0;

}


.decorative-line span {

    width: 70px;

    height: 1px;

    background: var(--gold);

}


.decorative-line i {

    color: var(--gold);

    font-size: 13px;

}


/* =========================================
   COUNTDOWN
========================================= */

.countdown-section {

    background: var(--cream-dark);

}


.countdown {

    display: flex;

    justify-content: center;

    gap: 15px;

    margin-top: 50px;

    flex-wrap: wrap;

}


.count-box {

    width: 130px;

    height: 130px;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    border: 1px solid rgba(107,81,69,.25);

}


.count-box span {

    font-family: "Cormorant Garamond", serif;

    font-size: 50px;

    font-weight: 500;

}


.count-box small {

    font-size: 8px;

    letter-spacing: 2px;

    margin-top: 5px;

}


/* =========================================
   STORY
========================================= */

.story {

    background: white;

}


.story-grid {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 70px;

    align-items: center;

    margin-top: 70px;

    text-align: left;

}


.story-image img {

    width: 100%;

    height: 600px;

    object-fit: cover;

}


.story-text span {

    color: var(--gold);

    font-size: 13px;

    letter-spacing: 3px;

}


.story-text h3 {

    font-family: "Cormorant Garamond", serif;

    font-size: 42px;

    font-weight: 400;

    margin: 15px 0 25px;

}


.story-text p {

    color: #806d63;

    line-height: 2;

    font-size: 14px;

    margin-bottom: 20px;

}


/* =========================================
   EVENT
========================================= */

.event-section {

    background: var(--cream);

}


.event-grid {

    display: grid;

    grid-template-columns: repeat(3,1fr);

    gap: 25px;

    margin-top: 60px;

}


.event-card {

    padding: 50px 25px;

    background: white;

    border: 1px solid #eee4dc;

}


.event-icon {

    width: 55px;

    height: 55px;

    margin: 0 auto 20px;

    border: 1px solid var(--gold);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    color: var(--gold);

}


.event-card h3 {

    font-family: "Cormorant Garamond", serif;

    font-size: 30px;

    font-weight: 500;

    margin-bottom: 15px;

}


.event-card p {

    font-size: 13px;

    line-height: 2;

    color: #806d63;

}


/* =========================================
   LOCATION
========================================= */

.location-section {

    background:
        linear-gradient(
            rgba(40,28,23,.68),
            rgba(40,28,23,.68)
        ),
        url("https://images.unsplash.com/photo-1519167758481-83f550bb49b3?auto=format&fit=crop&w=2000&q=90");

    background-size: cover;

    background-position: center;

    color: white;

}


.location-section h2 {

    color: white;

}


.location-description {

    max-width: 500px;

    margin: 25px auto;

    font-size: 13px;

    line-height: 2;

}


.location-button {

    display: inline-flex;

    gap: 10px;

    align-items: center;

    padding: 15px 30px;

    border: 1px solid white;

    color: white;

    text-decoration: none;

    font-size: 11px;

    letter-spacing: 2px;

    text-transform: uppercase;

    transition: .3s;

}


.location-button:hover {

    background: white;

    color: var(--brown-dark);

}


/* =========================================
   GALLERY
========================================= */

.gallery-section {

    background: white;

}


.gallery {

    display: grid;

    grid-template-columns: repeat(2,1fr);

    gap: 12px;

    margin-top: 60px;

}


.gallery-item {

    height: 320px;

    overflow: hidden;

}


.gallery-item.large {

    grid-column: span 2;

    height: 500px;

}


.gallery-item img {

    width: 100%;

    height: 100%;

    object-fit: cover;

    transition: transform .7s ease;

}


.gallery-item:hover img {

    transform: scale(1.05);

}


/* =========================================
   DRESS
========================================= */

.dress-section {

    background: var(--cream-dark);

}


.dress-icon {

    width: 65px;

    height: 65px;

    border: 1px solid var(--gold);

    border-radius: 50%;

    display: flex;

    align-items: center;

    justify-content: center;

    margin: 0 auto 25px;

    color: var(--gold);

}


.dress-section p:last-child {

    max-width: 550px;

    margin: 25px auto;

    line-height: 2;

    font-size: 14px;

}


/* =========================================
   GIFTS
========================================= */

.gifts-section {

    background: white;

}


.gifts-section > .container > p:not(.section-label) {

    max-width: 600px;

    margin: 25px auto;

    line-height: 2;

    font-size: 14px;

    color: #806d63;

}


.gift-button {

    border: 1px solid var(--brown);

    background: transparent;

    padding: 15px 30px;

    cursor: pointer;

    font-family: inherit;

    letter-spacing: 2px;

    text-transform: uppercase;

    font-size: 10px;

    color: var(--brown);

    transition: .3s;

}


.gift-button:hover {

    background: var(--brown);

    color: white;

}


.gift-options {

    display: none;

    justify-content: center;

    gap: 20px;

    margin-top: 35px;

}


.gift-options.active {

    display: flex;

}


.gift-options div {

    padding: 25px 40px;

    background: var(--cream);

    display: flex;

    flex-direction: column;

    gap: 10px;

    color: var(--brown);

}


.gift-options i {

    color: var(--gold);

    font-size: 20px;

}


/* =========================================
   CONFIRMATION
========================================= */

.confirmation-section {

    background: var(--cream);

}


.confirmation-section > .container > p:not(.section-label) {

    max-width: 600px;

    margin: 25px auto 35px;

    line-height: 2;

    font-size: 14px;

    color: #806d63;

}


.whatsapp-button {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    padding: 16px 28px;

    background: #5c765f;

    color: white;

    text-decoration: none;

    font-size: 11px;

    letter-spacing: 1px;

    transition: .3s;

}


.whatsapp-button:hover {

    transform: translateY(-3px);

}


/* =========================================
   FINAL
========================================= */

.final-section {

    min-height: 650px;

    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

    text-align: center;

    background:
        url("https://images.unsplash.com/photo-1511285560929-80b456fea0bc?auto=format&fit=crop&w=2000&q=90");

    background-size: cover;

    background-position: center;

}


.final-overlay {

    position: absolute;

    inset: 0;

    background: rgba(35,25,21,.5);

}


.final-content {

    position: relative;

    color: white;

}


.final-content p {

    font-family: "Cormorant Garamond", serif;

    font-size: clamp(50px,7vw,85px);

    line-height: 1;

}


.final-content span {

    display: block;

    margin-top: 35px;

    font-size: 10px;

    letter-spacing: 5px;

}


/* =========================================
   FOOTER
========================================= */

footer {

    padding: 40px 20px;

    text-align: center;

    background: var(--brown-dark);

    color: white;

}


footer p {

    font-family: "Cormorant Garamond", serif;

    font-size: 25px;

}


footer span {

    display: block;

    margin-top: 10px;

    font-size: 9px;

    letter-spacing: 4px;

    opacity: .6;

}


/* =========================================
   MUSIC
========================================= */

.music-button {

    position: fixed;

    right: 20px;

    bottom: 20px;

    z-index: 1000;

    width: 48px;

    height: 48px;

    border-radius: 50%;

    border: 1px solid white;

    background: var(--brown);

    color: white;

    cursor: pointer;

    box-shadow: 0 5px 20px rgba(0,0,0,.15);

}


.music-button.playing i {

    animation: rotateMusic 2s linear infinite;

}


/* =========================================
   ANIMATIONS
========================================= */

@keyframes fadeUp {

    from {

        opacity: 0;

        transform: translateY(30px);

    }

    to {

        opacity: 1;

        transform: translateY(0);

    }

}


@keyframes floating {

    0%,100% {

        transform: translateY(0);

    }

    50% {

        transform: translateY(10px);

    }

}


@keyframes rotateMusic {

    from {

        transform: rotate(0);

    }

    to {

        transform: rotate(360deg);

    }

}


/* =========================================
   RESPONSIVE
========================================= */

@media(max-width: 768px) {

    .section {

        padding: 80px 20px;

    }


    .hero h1 {

        font-size: 75px;

    }


    .story-grid {

        grid-template-columns: 1fr;

        gap: 40px;

    }


    .story-image img {

        height: 450px;

    }


    .event-grid {

        grid-template-columns: 1fr;

    }


    .gallery {

        grid-template-columns: 1fr;

    }


    .gallery-item.large {

        grid-column: span 1;

        height: 350px;

    }


    .gallery-item {

        height: 300px;

    }


    .count-box {

        width: 105px;

        height: 105px;

    }


    .count-box span {

        font-size: 40px;

    }

}


@media(max-width: 480px) {

    .welcome-content h1 {

        font-size: 70px;

    }


    .hero h1 {

        font-size: 68px;

    }


    .hero-date {

        letter-spacing: 4px;

    }


    .countdown {

        gap: 8px;

    }


    .count-box {

        width: 90px;

        height: 90px;

    }


    .count-box span {

        font-size: 34px;

    }


    .gift-options {

        flex-direction: column;

    }

}