*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Montserrat',sans-serif;
    background:#000;
    color:white;
    overflow-x:hidden;
}

img{
    width:100%;
    display:block;
}

.section{
    min-height:100vh;

    display:flex;
    align-items:center;
    justify-content:center;

    padding:40px 20px;
}

.container,
.content{
    width:min(1100px, 100%);
    margin:auto;
}

/* HERO */

.hero{
    position:relative;

    background:
    linear-gradient(
        rgba(0,0,0,.65),
        rgba(0,0,0,.75)
    ),
    url('../imgs/section-1.jpg');

    background-size:cover;
    background-position:center;

    text-align:center;
}

.overlay{
    position:absolute;
    inset:0;

    background:
    radial-gradient(
        circle,
        rgba(255,20,147,.15),
        transparent 70%
    );
}

.hero .content{
    position:relative;
    z-index:2;
}

.subtitle{
    font-size:.85rem;

    letter-spacing:5px;

    text-transform:uppercase;

    opacity:.75;

    margin-bottom:20px;
}

.title{
    font-size:clamp(4rem, 12vw, 8rem);

    line-height:.9;

    font-weight:900;

    margin-bottom:24px;
}

.phrase{
    max-width:700px;

    margin:auto auto 30px;

    font-size:clamp(1rem, 3vw, 1.3rem);

    line-height:1.7;

    opacity:.9;

    font-style:italic;
}

.party-info{
    font-size:1.1rem;

    margin-bottom:40px;
}

/* COUNTDOWN */

.countdown{
    display:flex;
    justify-content:center;
    gap:14px;
    flex-wrap:wrap;
}

.time-box{
    width:90px;

    padding:16px;

    border-radius:22px;

    background:rgba(255,255,255,.08);

    border:1px solid rgba(255,255,255,.12);

    backdrop-filter:blur(10px);
}

.time-box h3{
    font-size:2rem;

    margin-bottom:5px;
}

.time-box span{
    font-size:.8rem;

    opacity:.7;
}

/* BUTTON */

.button{
    display:inline-block;

    margin-top:40px;

    padding:18px 28px;

    border-radius:999px;

    background:white;

    color:#111;

    text-decoration:none;

    font-weight:700;

    transition:.3s;
}

.button:hover{
    transform:translateY(-3px);
}

/* TITLES */

.section-top{
    text-align:center;

    margin-bottom:20px;

    font-size:.8rem;

    letter-spacing:5px;

    text-transform:uppercase;

    opacity:.7;
}

.section-title{
    text-align:center;

    font-size:clamp(2.8rem, 7vw, 5rem);

    line-height:1;

    font-weight:900;
}

.big-title{
    text-align:center;

    font-size:clamp(3rem, 8vw, 6rem);

    line-height:1;

    font-weight:900;
}

/* GALLERY */

.gallery{
    background:
    linear-gradient(
        180deg,
        #ff1493,
        #ff69b4
    );
}

.gallery .section-title{
    margin-bottom:60px;
}

.photo-grid{
    display:grid;

    grid-template-columns:
    repeat(2,1fr);

    gap:18px;
}

.photo-grid img{
    border-radius:24px;

    aspect-ratio:1/1;

    object-fit:cover;

    border:8px solid white;
}

/* NOSTALGIA */

.nostalgia{
    background:#050505;
}

/* DOCES */

.candies{
    background:
    radial-gradient(
        circle at top,
        #ff7ac3 0%,
        #ff1493 40%,
        #0f0f0f 100%
    );
}

.candies .section-title{
    margin-bottom:60px;
}

.candies-grid{
    display:grid;

    grid-template-columns:
    repeat(2,1fr);

    gap:20px;
}

.candies-grid img{
    border-radius:28px;

    border:10px solid white;

    aspect-ratio:1/1;

    object-fit:cover;
}

/* FOOTER */

/* FOOTER */

.footer{
    position:relative;

    overflow:hidden;

    background:
    radial-gradient(
        circle at top,
        #111 0%,
        #050505 100%
    );

    text-align:center;
}

.footer-content{
    position:relative;
    z-index:2;
}

/* PARTÍCULAS */

.particles{
    position:absolute;
    inset:0;

    overflow:hidden;

    pointer-events:none;

    z-index:1;
}

.particles::before,
.particles::after{
    content:"";

    position:absolute;

    inset:-200px;

    background-image:
        radial-gradient(
            rgba(255,255,255,.7) 2px,
            transparent 2px
        );

    background-size:
        120px 120px;

    opacity:.18;

    animation:
        floatParticles 18s linear infinite;
}

.particles::after{

    background-size:
        180px 180px;

    opacity:.1;

    animation-duration:28s;
}

@keyframes floatParticles{

    from{
        transform:
            translateY(0);
    }

    to{
        transform:
            translateY(-120px);
    }
}

/* RESPONSIVO */

@media(max-width:768px){

    .section{
        padding:80px 20px;
    }

    .title{
        font-size:clamp(3.5rem, 16vw, 5rem);
    }

    .big-title,
    .section-title{
        line-height:1.05;
    }

    .countdown{
        gap:10px;
    }

    .time-box{
        width:74px;

        padding:12px;
    }

    .time-box h3{
        font-size:1.5rem;
    }

    .photo-grid,
    .candies-grid{
        grid-template-columns:1fr;
    }
}