body {
    background-color: #111; /* Dark background outside the container */
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

.main-container {
    width: 100%;
    max-width: 437px; /* Based on background.jpg dimensions */
    min-height: 100vh;
    background-image: url('assets/background.jpg');
    background-size: 100% auto;
    background-repeat: repeat-y;
    position: relative;
    box-shadow: 0 0 20px rgba(0,0,0,0.8);
}

/* To make this compatible across all mobile devices, we use percentage-based 
   padding. This keeps the spacer in sync with the background image as it 
   scales with the screen width. */
.top-spacer {
    width: 100%;
    padding-top: 155%; /* Adjusted between 150% and 170% */
}

/* Game Grid */
.game-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px; /* Increased gap for smaller looking icons */
    padding: 0 45px 20px 45px; /* Increased side padding to shrink icons */
}

.game-card {
    /* Remove the CSS borders/backgrounds entirely because the icons 
       in logo_icons already seem to have their own styling and backgrounds in the sample. */
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: transform 0.2s;
    text-decoration: none; /* For anchor tags */
}

.game-card img {
    width: 100%;
    height: auto;
    display: block;
    /* Optional: subtle shadow to separate from background */
    filter: drop-shadow(0 4px 6px rgba(0,0,0,0.5));
}

.game-card:hover {
    transform: translateY(-5px);
}

.footer-spacer {
    height: 50px;
}

@media (max-width: 450px) {
    .main-container {
        width: 100vw;
    }
}