
*{
    box-sizing:border-box;
    margin:0;
    padding:0;
    font-family:Arial;
}


body{
    background:#111;
    color:white;
}

/* ========================================= */
/* HEADER */
/* ========================================= */

header{

    width:100%;

    background:#1b1b1bdd;

    backdrop-filter:blur(10px);

    padding:10px 15px;

    display:flex;

    gap:20px;

    align-items:center;

    border-bottom:1px solid #333;

    position:sticky;

    top:0;

    z-index:1000;
}

.header-button{

    cursor:pointer;

    padding:8px 12px;

    font-size:18px;

    background:rgba(255,255,255,0.04);
    color:white;

    border:1px solid transparent;

    border-radius:5px;

    transition:
        background-color 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease,
        box-shadow 0.25s ease;

    user-select:none;
}

.header-button:hover{

    background:rgba(255,255,255,0.08);

    border-color:rgba(255,150,0,0.8);

    transform:
        translateY(-2px)
        scale(1.03);

    box-shadow:
        0 0 18px rgba(255,255,255,0.08);
}

.header-button:active{

    transform:
        translateY(1px)
        scale(0.98);
}


.dropdown{
    position:relative;
}

.dropdown-content{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    background:#222;
    min-width:160px;
    z-index:10;
}

.dropdown:hover .dropdown-content{
    display:block;
}

.dropdown-content button{

    width:100%;

    padding:18px 24px;

    font-size:26px;

    background:#222;

    color:white;

    border:none;

    text-align:left;

    cursor:pointer;

    transition:
        background-color 0.2s ease,
        padding-left 0.2s ease;
}

.dropdown-content button:hover{

    background:#333;

    padding-left:20px;
}



/* ========================================= */
/* MAIN LAYOUT */
/* ========================================= */

.main-layout{
    display:flex;
    min-height:100vh;
}

/* ========================================= */
/* SIDEBAR */
/* ========================================= */

.sidebar{

    transition:
        width 0.3s ease,
        padding 0.3s ease;

    width:300px;

    background:#1a1a1add;

    backdrop-filter:blur(10px);

    padding:20px;

    border-right:1px solid #333;

    position:sticky;

    top:70px;

    height:calc(100vh - 70px);

    overflow-y:auto;

    align-self:flex-start;
}


.sidebar.collapsed{

    width:50px;

    padding:10px;
}

.sidebar.collapsed #filtersContainer,
.sidebar.collapsed .filter-tools{

    display:none;
}

.sidebar-toggle{

    width:100%;

    margin-bottom:15px;

    cursor:pointer;
}


/* COLLECTION SELECTOR */

.collection-selector{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
}

.collection-selector button{
    padding:8px 12px;
    cursor:pointer;
}

/* FILTER BUTTONS */

.filter-tools{
    display:flex;
    gap:10px;
    margin-bottom:20px;
}

.filter-tools button{
    padding:6px 10px;
    cursor:pointer;
}

.filter-group{
    margin-bottom:15px;
    border:1px solid #333;
}

.filter-title{
    width:100%;
    padding:10px;
    background:#222;
    color:white;
    border:none;
    cursor:pointer;
    text-align:left;
}

.filter-options{
    padding:10px;
    display:none;
}

.filter-options.active{
    display:block;
}

.filter-options label{
    display:block;
    margin-bottom:8px;
    cursor:pointer;
}

/* ========================================= */
/* GALLERY */
/* ========================================= */

.gallery-container{
    flex:1;
    padding:20px;
}

.gallery{
    display:grid;
    grid-template-columns:repeat(auto-fill, 300px);
    gap:10px;
    justify-content:center;
}

.gallery-item{

    width:300px;

    position:relative;

    overflow:hidden;

    border:2px solid transparent;

    border-radius:8px;

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease;

    cursor:pointer;

    background:#111;
}

.gallery-item:hover{

    transform:scale(1.05);

    /*border-color:#00ffff;*/
    border-color:rgba(255,40,30,0.8);

    box-shadow:
        /*0 0 15px rgba(0,255,255,0.7),*/
        0 0 15px rgba(255,40,30,0.8),
        0 0 30px rgba(0,255,255,0.35);

    z-index:5;
}

.gallery-item img{

    width:300px;

    height:300px;

    object-fit:cover;

    display:block;

    transition:transform 0.3s ease;
}

/* ========================================= */
/* OTHER PAGES */
/* ========================================= */

.page-container{

    display:none;

    width:80%;

    padding:50px;

    margin:auto;

}


.page-title{

    font-size:34px;

    margin-bottom:25px;

    font-weight:600;

    color:#f0f0f0;

    letter-spacing:1px;
}

.page-item{

    background:rgba(35,35,35,0.80);

    margin-bottom:50px;

    border-radius:18px;

    box-shadow:
        0 0 15px rgba(0,0,0,0.8),
        0 0 30px rgba(0,0,0,0.35);

}


.page-item h2{

    font-size:34px;

    padding:30px;

    padding-bottom: 0px;

}

.page-text{

    padding:0px 30px;

    white-space:pre-line;

    line-height:1.9;

    font-size:22px;

    color:#d0d0d0;
}

.page-item img{

    max-width:100%;

    padding: 30px;

    border-radius:40px;

}

/* ========================================= */
/* PARALLAX BACKGROUNDS */
/* ========================================= */

.background-layer{

    position:fixed;

    top:0;
    left:0;

    width:100%;
    height:100%;

    background-size:cover;

    background-position:center;

    background-repeat:no-repeat;

    opacity:0;

    z-index:-10;

    pointer-events:none;

    transition:
        opacity 0.8s ease,
        transform 0.2s linear;

    will-change:
        transform,
        opacity;
}

/* ========================================= */
/* PAGE TRANSITION */
/* ========================================= */

#pageTransition{

    position:fixed;

    top:0;
    left:0;

    width:100%;
    height:100%;

    background:black;

    display:flex;

    justify-content:center;

    align-items:center;

    z-index:999999;

    opacity:0;

    pointer-events:none;

    transition:opacity 0.25s ease;
}

#pageTransition.active{

    opacity:1;

    pointer-events:auto;
}

#pageTransitionText{

    color:white;

    font-size:5rem;

    letter-spacing:4px;

    text-transform:uppercase;
}

/* ========================================= */
/* IMAGE VIEWER */
/* ========================================= */

.image-modal{

    display:none;

    position:fixed;

    top:0;
    left:0;

    width:100%;
    height:100%;

    background:rgba(
        0,
        0,
        0,
        0.92
    );

    z-index:99999;

    overflow:hidden;
}

.image-container{

    width:100%;
    height:100%;

    display:flex;

    justify-content:center;

    align-items:center;

    overflow:hidden;

    cursor:grab;
}

.image-container.dragging{

    cursor:grabbing;
}

#modalImage{

    max-width:100%;
    max-height:100%;

    transform-origin:center;

    transition:
        transform 0.05s linear;

    user-select:none;

    pointer-events:none;
}

.close-modal{

    position:absolute;

    top:15px;
    right:25px;

    color:white;

    font-size:40px;

    cursor:pointer;

    z-index:100000;
}

