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

html{
    scroll-behavior:smooth;
}

body{
    font-family:Arial, sans-serif;
    background:#f5f5f5;
    color:#222;
}

/* HERO SECTION */

.gallery-hero{

    height:100vh;

    background:
    linear-gradient(
    rgba(0,0,0,0.55),
    rgba(0,0,0,0.65)
    ),
    url("background.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;
}

.hero-content{

    max-width:1000px;
}

.hero-content h1{

    font-size:5rem;

    font-weight:800;

    margin-bottom:15px;

    text-transform:uppercase;
}

.hero-content h2{

    font-size:2.5rem;

    margin-bottom:25px;

    color:#ffffff;
}

.hero-content p{

    font-size:1.3rem;

    line-height:1.6;

    margin-bottom:25px;
}

/* BACK BUTTON */

.back-btn{

    display:inline-block;

    background:#00a651;

    color:white;

    text-decoration:none;

    padding:14px 30px;

    border-radius:40px;

    font-weight:bold;

    transition:0.3s;
}

.back-btn:hover{

    background:#008a43;

    transform:translateY(-2px);
}

/* YEAR BUTTONS */

.year-selector{

    margin-top:40px;

    display:flex;

    justify-content:center;

    gap:15px;

    flex-wrap:wrap;
}

.year-btn{

    background:rgba(255,255,255,0.15);

    backdrop-filter:blur(8px);

    border:2px solid white;

    color:white;

    padding:12px 30px;

    border-radius:40px;

    cursor:pointer;

    font-size:16px;

    font-weight:600;

    transition:0.3s;
}

.year-btn:hover{

    background:#00a651;

    border-color:#00a651;

    transform:translateY(-3px);
}

.year-btn.active{

    background:#00a651;

    border-color:#00a651;
}

/* ARCHIVE TEXT */

.archive-text{

    margin-top:25px;

    font-size:18px;

    color:#f5f5f5;
}

/* STATS BAR */

.gallery-stats{

    background:#111;

    color:white;

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(220px,1fr));

    text-align:center;

    padding:40px 20px;

    gap:20px;
}

.gallery-stats h3{

    font-size:1.2rem;
}

/* GALLERY SECTION */

.gallery-section{

    display:none;

}

/* GALLERY GRID */

.gallery-grid{

    columns:3 320px;

    column-gap:20px;

    padding:0;

}

.gallery-wrapper{

    position:relative;

    width:100%;

    margin-bottom:12px;

    break-inside:avoid;

    overflow:hidden;

    border-radius:15px;

}

.gallery-img{

    width:100%;

    height:auto;

    display:block;

    cursor:pointer;

    border-radius:15px;

    transition:
    transform .35s ease,
    filter .35s ease;

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

}
.gallery-wrapper:hover .gallery-img{

    transform:scale(1.03);

    filter:brightness(.92);

}
.gallery-wrapper:hover .image-actions{

    opacity:1;

}
.gallery-wrapper::after{

    content:"";

    position:absolute;

    inset:0;

    background:
    linear-gradient(
        to top,
        rgba(0,0,0,.45),
        transparent
    );

    opacity:0;

    transition:.3s;

    pointer-events:none;

}

.gallery-wrapper:hover::after{

    opacity:1;

}

/* DOWNLOAD + SHARE */

.image-actions{

    position:absolute;

    bottom:15px;

    right:15px;

    display:flex;

    gap:10px;

    z-index:20;

    opacity:0;

    transition:.3s;

}

.gallery-wrapper:hover .image-actions{

    opacity:1;

}

.image-btn{

    width:42px;

    height:42px;

    border:none;

    border-radius:50%;

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

    backdrop-filter:blur(8px);

    color:white;

    text-decoration:none;

    display:flex;

    align-items:center;

    justify-content:center;

    cursor:pointer;

    font-size:20px;

    transition:.3s;

}

.image-btn:hover{

    transform:scale(1.12);

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

}

/* TABLET */

@media(max-width:1200px){

    .gallery-grid{

        columns:2 280px;

    }

}

/* MOBILE */

@media(max-width:768px){

    .hero-content h1{

        font-size:2.8rem;

    }

    .hero-content h2{

        font-size:1.7rem;

    }

    .hero-content p{

        font-size:1rem;

    }

    .gallery-section{

        padding:0 8px;

    }

    .gallery-grid{

        columns:2;

        column-gap:8px;

        padding:0;

    }

    .gallery-wrapper{

        margin-bottom:8px;

    }

    .gallery-img{

        width:100%;

        height:auto;

        border-radius:10px;

    }

    .image-actions{

        opacity:0;
    
        pointer-events:none;
    
        transition:.3s;
    
    }

    .image-btn{

        width:34px;

        height:34px;

        font-size:16px;

    }

    .year-btn{

        width:140px;

    }

}

/* LIGHTBOX */

#lightbox{

    display:none;

    position:fixed;

    top:0;
    left:0;

    width:100%;
    height:100%;

    background:
    rgba(0,0,0,0.95);

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

    z-index:9999;
}

#lightboxImg{

    max-width:90%;

    max-height:90%;

    border-radius:10px;
}

#closeBtn{

    position:absolute;

    top:20px;
    right:35px;

    color:white;

    font-size:55px;

    cursor:pointer;

    transition:0.3s;
}

#closeBtn:hover{

    transform:scale(1.1);
}
.lightbox-actions{

    margin-top:20px;

    display:flex;

    gap:15px;

    justify-content:center;

}

.lightbox-actions a,
.lightbox-actions button{

    background:#f4c400;

    color:#000;

    border:none;

    padding:12px 25px;

    border-radius:30px;

    font-weight:700;

    cursor:pointer;

    text-decoration:none;

}
.lightbox-toolbar{

    position:absolute;

    bottom:30px;

    right:30px;

    display:flex;

    gap:20px;

    z-index:10000;

}

.toolbar-btn{

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

    backdrop-filter:blur(8px);

    border:none;

    color:white;

    width:55px;

    height:55px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    text-decoration:none;

    font-size:26px;

    cursor:pointer;

    transition:.3s;

}

.toolbar-btn:hover{

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

    transform:scale(1.1);

}

/* FOOTER */

.gallery-footer{

    background:#000;
    color:white;
    text-align:center;
    padding:50px 20px;

}

.gallery-footer h3{

    font-size:32px;

    margin-bottom:10px;

    color:#00c853;

}

.gallery-footer p{

    margin:10px 0;

    color:#ddd;

}

.footer-links{

    margin-top:20px;

}

.footer-links a{

    color:white;

    text-decoration:none;

    margin:0 15px;

    font-weight:600;

    transition:0.3s;

}

.footer-links a:hover{

    color:#00c853;

}
