/* =========================
   RESET
========================= */

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

/* =========================
   GLOBAL
========================= */

html,
body{
    width:100%;
    height:100%;
    overflow:hidden;

    font-family:Arial,sans-serif;

    background:#121212;
    color:white;
}

body.default{
    background:#121212;
}

/* =========================
   APP
========================= */

.app{
    width:100%;
    height:100vh;

    display:flex;

    position:relative;
    z-index:2;
}

/* =========================
   BACKGROUND
========================= */

.bg-layer{
    position:fixed;
    inset:0;

    pointer-events:none;
}

.bg-stars{
    background:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.12) 1px, transparent 1px),
    radial-gradient(circle at 70% 60%, rgba(255,255,255,0.08) 1px, transparent 1px),
    radial-gradient(circle at 50% 80%, rgba(255,255,255,0.08) 2px, transparent 2px);

    background-size:300px 300px;

    opacity:0.45;

    animation:drift 120s linear infinite;
}

@keyframes drift{

    from{
        transform:translateY(0);
    }

    to{
        transform:translateY(-300px);
    }

}

/* =========================
   SIDEBAR
========================= */

.sidebar{
    width:340px;
    min-width:340px;

    background:rgba(30,30,30,0.88);

    border-right:1px solid rgba(255,255,255,0.08);

    backdrop-filter:blur(20px);

    padding:18px;

    display:flex;
    flex-direction:column;

    gap:16px;

    overflow-y:auto;
}

/* =========================
   ACTIVE THEME DISPLAY
========================= */

.active-theme-box{
    width:100%;

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

    border:1px solid rgba(255,255,255,0.08);

    border-radius:14px;

    padding:10px 14px;

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

    gap:10px;
}

.active-theme-label{
    font-size:11px;

    font-weight:bold;

    letter-spacing:1.5px;

    color:#888;

    white-space:nowrap;
}

#active-theme-name{
    font-size:13px;

    font-weight:bold;

    color:white;

    text-align:right;

    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

/* =========================
   LOGO
========================= */

.Web-Logo{
    width:100%;
    max-width:300px;

    display:block;

    margin:auto;

    border-radius:26px;
}

/* =========================
   SEARCH BAR
========================= */

#search-bar{
    width:100%;

    padding:14px;

    border:none;
    outline:none;

    border-radius:16px;

    background:#1e1e1e;

    color:white;

    font-size:15px;

    transition:0.3s ease;
}

#search-bar::placeholder{
    color:#888;
}

#search-bar:focus{
    background:#252525;

    transform:scale(1.02);
}

/* =========================
   DISCLAIMER
========================= */

.disclaimer{
    font-size:14px;

    line-height:1.6;

    opacity:0.72;
}

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

.main{
    flex:1;

    display:flex;
    flex-direction:column;

    overflow:hidden;
}

/* =========================
   CONVEYOR
========================= */

.conveyor{
    height:100px;

    overflow:hidden;

    border-bottom:1px solid rgba(255,255,255,0.08);

    display:flex;
    align-items:center;

    position:relative;
}

.conveyor-track{
    display:flex;

    gap:18px;

    width:max-content;

    animation:scrollConveyor 45s linear infinite;
}

.conveyor:hover .conveyor-track{
    animation-play-state:paused;
}

@keyframes scrollConveyor{

    from{
        transform:translateX(0);
    }

    to{
        transform:translateX(-50%);
    }

}

.mini-card{
    min-width:180px;
    height:65px;

    background:#1e1e1e;

    border-radius:16px;

    border:1px solid rgba(255,255,255,0.06);

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

    cursor:pointer;

    transition:0.3s ease;

    padding:10px;

    text-align:center;
}

.mini-card:hover{
    transform:translateY(-4px);
}

/* =========================
   GAME AREA
========================= */

.game-scroll{
    flex:1;

    overflow-y:auto;

    padding:20px;
}

.game-list{
    display:grid;

    grid-template-columns:repeat(auto-fill,minmax(240px,1fr));

    gap:20px;
}

.game-container{
    background:#1e1e1e;

    border-radius:18px;

    overflow:hidden;

    border:1px solid rgba(255,255,255,0.06);

    transition:0.35s ease;

    display:flex;
    flex-direction:column;

    min-height:520px;
}

.game-container:hover{
    transform:translateY(-8px);

    box-shadow:0 0 25px rgba(255,255,255,0.08);
}

.game-banner{
    width:100%;
    height:340px;

    object-fit:contain;

    background:#111;

    display:block;
}

.game-info{
    padding:15px;

    display:flex;
    flex-direction:column;

    flex:1;
}

.game-title{
    font-size:20px;

    font-weight:bold;

    text-align:center;

    margin-bottom:10px;
}

.game-description{
    color:#ccc;

    text-align:center;

    flex:1;

    font-size:14px;

    margin-bottom:15px;
}

.download-button{
    width:160px;

    margin:auto;

    display:block;

    transition:0.3s ease;
}

.download-button:hover{
    transform:scale(1.05);
}

/* =========================
   OVERLAY
========================= */

#dark-overlay{
    position:fixed;
    inset:0;

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

    pointer-events:none;

    z-index:9998;

    opacity:0;

    transition:0.3s;
}

#dark-overlay.active{
    opacity:1;
}

/* =========================
   FLOATING BUTTONS
========================= */

.floating-btn{
    position:fixed;

    right:20px;

    width:55px;
    height:55px;

    border-radius:50%;

    background:#1e1e1e;

    border:1px solid #333;

    color:white;

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

    cursor:pointer;

    z-index:9999;

    transition:0.3s ease;
}

.floating-btn:hover{
    transform:scale(1.08);
}

#dark-toggle{
    bottom:20px;
}

#theme-toggle{
    bottom:90px;
}

#suggest-btn{
    bottom:160px;
}

#toggle-conveyor{
    top:20px;
    left:20px;
}

/* =========================
   THEME MENU
========================= */

#theme-menu{
    position:fixed;

    right:90px;
    bottom:80px;

    width:240px;

    background:#1a1a1a;

    border-radius:18px;

    padding:15px;

    display:none;
    flex-direction:column;

    gap:10px;

    z-index:99999;

    border:1px solid rgba(255,255,255,0.08);

    backdrop-filter:blur(20px);

    max-height:50vh;

    overflow-y:auto;
    overflow-x:hidden;

    scrollbar-width:thin;
    scrollbar-color:#555 #1a1a1a;
}

#theme-menu.show{
    display:flex;
}

/* =========================
   THEME MENU SCROLLBAR
========================= */

#theme-menu::-webkit-scrollbar{
    width:8px;
}

#theme-menu::-webkit-scrollbar-track{
    background:#1a1a1a;

    border-radius:10px;
}

#theme-menu::-webkit-scrollbar-thumb{
    background:#555;

    border-radius:10px;
}

#theme-menu::-webkit-scrollbar-thumb:hover{
    background:#777;
}

/* =========================
   THEME HEADERS
========================= */

.theme-header{
    font-size:12px;

    font-weight:bold;

    letter-spacing:1px;

    color:#999;

    margin-top:6px;

    padding-left:4px;
}

/* =========================
   THEME BUTTONS
========================= */

.theme-btn{
    border:none;

    padding:12px;

    border-radius:12px;

    background:#252525;

    color:white;

    cursor:pointer;

    text-align:left;

    transition:0.25s ease;
}

.theme-btn:hover{
    background:#333;

    transform:translateX(4px);
}

/* =========================
   EVENT POPUP
========================= */

#event-popup{
    position:fixed;

    top:30px;
    left:50%;

    transform:translateX(-50%);

    background:#1e1e1e;

    border:1px solid #333;

    border-radius:16px;

    padding:15px 25px;

    z-index:99999;

    display:none;
}

/* =========================
   MOBILE
========================= */

@media(max-width:900px){

    body{
        overflow:auto;
    }

    .app{
        flex-direction:column;

        height:auto;
    }

    .sidebar{
        width:100%;

        min-width:100%;

        border-right:none;
    }

    .game-list{
        grid-template-columns:1fr;
    }

    #theme-menu{
        right:20px;

        bottom:90px;

        width:calc(100% - 40px);

        max-height:45vh;
    }

}
