:root {
    --brand-yellow: #fbb03b;
    --brand-dark-blue: #2a2244;
    --background-color-start: #633468;
    --background-color-end: #4b264f;
    --card-background: #2c2c2c;
    --text-light: #ffffff;
    --header-bg: #f5f5f5;
    --font-pixel: 'Press Start 2P', cursive;
    --font-body: 'Poppins', sans-serif; 
    --sidebar-width-desktop: 240px;
    --sidebar-width-mobile: 280px;
}
html, body { height: 100%; overflow: hidden; }
body { font-family: var(--font-body); margin: 0; background-color: var(--header-bg); }
.app-container { display: flex; height: 100%; }
.main-wrapper { flex-grow: 1; display: flex; flex-direction: column; height: 100%; }
.sidebar { position: fixed; top: 0; left: 0; width: var(--sidebar-width-mobile); height: 100%; background-color: rgba(42, 34, 68, 0.95); backdrop-filter: blur(10px); z-index: 1002; transform: translateX(-100%); transition: transform 0.35s cubic-bezier(0.23, 1, 0.32, 1); border-right: 1px solid rgba(255, 255, 255, 0.1); display: flex; flex-direction: column; max-height: 100vh; }
.sidebar.open { transform: translateX(0); }
.sidebar-header { display: none; }
#category-menu { flex-grow: 1; overflow-y: auto; padding: 20px 10px; }
#category-menu a { display: flex; align-items: center; gap: 12px; padding: 12px 15px; text-decoration: none; color: var(--text-light); border-radius: 8px; margin-bottom: 8px; font-size: 1rem; font-weight: 500; transition: background-color 0.2s ease; }
#category-menu a:hover { background-color: rgba(255, 255, 255, 0.1); }
#category-menu a.active { background-color: var(--brand-yellow); color: var(--brand-dark-blue); font-weight: 700; }
#category-menu a .fa-fw { font-size: 1.1em; }
.top-header { flex-shrink: 0; height: 65px; padding: 0 15px; background-color: var(--header-bg); border-bottom: 1px solid #e0e0e0; z-index: 100; display: flex; align-items: center; gap: 15px; }
.hamburger-btn { background: none; border: none; font-size: 1.4rem; color: #333; cursor: pointer; padding: 0; }
.mobile-logo-link { display: block; line-height: 0; }
.mobile-logo { height: 35px; }
.search-container { flex-grow: 1; }
.search-bar { display: flex; align-items: center; background-color: #e9e9e9; border-radius: 20px; padding: 0 15px; width: 100%; }
.search-bar i { color: #777; }
.search-bar input { border: none; background: none; outline: none; padding: 10px; font-family: var(--font-body); font-size: 1rem; width: 100%; }
.main-content { flex-grow: 1; overflow-y: auto; background: linear-gradient(180deg, var(--background-color-start) 0%, var(--background-color-end) 100%); }
.overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 1001; opacity: 0; visibility: hidden; transition: opacity 0.35s ease, visibility 0.35s ease; }
.overlay.active { opacity: 1; visibility: visible; }
.games-grid-container { padding: 20px; max-width: 1800px; margin: 0 auto; }
.games-container { display: grid; grid-template-columns: 1fr; gap: 20px; }
.main-footer { text-align: center; padding: 25px; background-color: var(--header-bg); border-top: 1px solid #e0e0e0; font-size: 0.9em; color: #555555; }
.game-card { background-color: var(--card-background); border-radius: 12px; border: 1px solid #444; overflow: hidden; text-decoration: none; color: inherit; display: flex; flex-direction: column; transition: transform 0.3s ease, box-shadow 0.3s ease; animation: card-fade-in 0.5s ease-out forwards; opacity: 0; }
.game-card:hover { transform: translateY(-8px); box-shadow: 0 0 25px -5px var(--brand-yellow); }
@keyframes card-fade-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
.game-card.hidden { display: none; }
.game-card img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 16 / 9; background-color: #333; }
.game-card-content { padding: 15px; }
.game-card-content h3 { font-family: var(--font-pixel); font-size: 0.8em; color: var(--text-light); margin: 0 0 10px 0; line-height: 1.4; }
.game-card-content p { font-family: var(--font-body); margin: 0; font-size: 0.9em; color: #aaa; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
#load-more-trigger { height: 50px; }
.skeleton-card { background-color: #3a3a3a; border-radius: 12px; overflow: hidden; position: relative; }
.skeleton-card .skeleton-img { width: 100%; aspect-ratio: 16 / 9; background-color: #4f4f4f; }
.skeleton-card .skeleton-text { height: 1em; width: 80%; background-color: #4f4f4f; border-radius: 4px; margin: 15px; }
.skeleton-card .skeleton-text.short { width: 50%; margin-top: 10px; }
.skeleton-card::after { content: ''; position: absolute; top: 0; left: -150%; width: 150%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent); animation: skeleton-shine 1.5s infinite; }
@keyframes skeleton-shine { from { left: -150%; } to { left: 150%; } }
@media (min-width: 901px) {
    .app-container { padding-left: var(--sidebar-width-desktop); }
    .sidebar { transform: translateX(0); width: var(--sidebar-width-desktop); background-color: var(--brand-dark-blue); backdrop-filter: none; border-right: none; }
    .sidebar-header { display: flex; align-items: center; justify-content: center; padding: 12px 10px; height: 65px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
    .sidebar-header .logo { height: 40px; }
    #category-menu { padding-top: 10px; } 
    .hamburger-btn { display: none; }
    .mobile-logo-link { display: none; }
    .top-header { justify-content: center; }
    .search-container { max-width: 400px; }
    .overlay { display: none; }
    .games-container { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
}
