/* Page-owned styles for Game Database */
.games-page {
    min-width: 0;
}

.games-hero__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-md);
    max-width: 1280px;
}

.games-hero__label {
    color: var(--ink-muted);
}

.games-hero__title {
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    line-height: 1.05;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin-block-end: 0;
    max-width: 900px;
}

.games-hero__intro {
    max-width: 720px;
    margin-block-end: 0;
    color: var(--ink);
}

.games-hero__search-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    width: 100%;
    max-width: 900px;
    margin-block-start: var(--space-sm);
}

.games-hero__search-input {
    flex: 1 1 300px;
    min-width: 0;
    font-family: var(--font-body);
    font-size: var(--text-body);
    line-height: var(--leading-body);
    color: var(--ink);
    background-color: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-sm) var(--space-md);
    min-height: 44px;
    transition: border-color var(--transition-fast);
}

.games-hero__search-input:focus {
    border-color: var(--accent-cyan);
    outline: none;
}

.games-hero__filter-btn {
    flex: 0 0 auto;
}

.games-filters {
    background-color: var(--steel);
    border-block: 1px solid var(--border);
}

.games-filters__inner {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.games-filters__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm);
    flex-wrap: wrap;
}

.games-filters__title {
    margin-block-end: 0;
}

.games-filters__clear {
    flex: 0 0 auto;
}

.games-filters__intro {
    margin-block-end: 0;
    max-width: 720px;
    color: var(--ink-muted);
}

.games-filters__chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
    align-items: center;
}

.games-filter-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: var(--space-xs) var(--space-sm);
    font-family: var(--font-body);
    font-size: var(--text-label);
    line-height: var(--leading-label);
    font-weight: 700;
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    background-color: var(--white);
    color: var(--ink);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

.games-filter-chip:hover {
    border-color: var(--ink-muted);
}

.games-filter-chip[aria-pressed="true"] {
    background-color: var(--accent-cyan);
    border-color: var(--accent-cyan);
    color: var(--white);
}

.games-filters__sort-row {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
}

.games-filters__sort-label {
    font-size: var(--text-label);
    line-height: var(--leading-label);
    font-weight: 700;
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--ink);
}

.games-filters__sort-select {
    flex: 0 1 200px;
    min-width: 0;
}

.games-listing__inner {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}

.games-listing__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-sm);
    flex-wrap: wrap;
}

.games-listing__title {
    margin-block-end: 0;
}

.games-listing__count {
    font-size: var(--text-body-small);
    line-height: var(--leading-body-small);
    color: var(--ink-muted);
}

.games-listing__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-lg);
    align-items: stretch;
}

.game-card {
    min-width: 0;
    display: flex;
    flex-direction: column;
    background-color: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    transition: border-color var(--transition-fast);
}

.game-card:hover {
    border-color: var(--ink-muted);
}

.game-card__link {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    color: var(--ink);
    text-decoration: none;
    padding: var(--space-md);
    gap: var(--space-xs);
}

.game-card__link:hover {
    text-decoration: none;
}

.game-card__link:hover .game-card__title {
    color: var(--accent-cyan);
}

.game-card__image {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    margin-block-end: var(--space-sm);
}

.game-card__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
    min-width: 0;
}

.game-card__title {
    font-size: var(--text-h3);
    line-height: var(--leading-h3);
    font-weight: 700;
    letter-spacing: var(--tracking-h3);
    color: var(--ink);
    margin-block-end: 0;
    transition: color var(--transition-fast);
    overflow-wrap: break-word;
    word-wrap: break-word;
}

.game-card__meta,
.game-card__genre,
.game-card__date {
    font-size: var(--text-body-small);
    line-height: var(--leading-body-small);
    color: var(--ink-muted);
    margin-block-end: 0;
}

.game-card__genre {
    color: var(--ink);
    font-weight: 600;
}

.game-card__status {
    margin-block-end: 0;
}

.games-listing__no-results {
    margin-block-end: 0;
    color: var(--ink-muted);
}

.games-scope {
    background-color: var(--white);
    border-block: 1px solid var(--border);
}

.games-scope__inner {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: var(--space-xl);
    align-items: start;
}

.games-scope__text {
    min-width: 0;
}

.games-scope__title {
    margin-block-end: var(--space-md);
}

.games-scope__subtitle {
    margin-block-start: var(--space-lg);
    margin-block-end: var(--space-sm);
}

.games-scope__stats {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    background-color: var(--steel);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    min-width: 0;
}

.games-scope__stat {
    display: flex;
    flex-direction: column;
    gap: var(--space-2xs);
}

.games-scope__stat-value {
    font-size: var(--text-h2);
    line-height: var(--leading-h2);
    font-weight: 700;
    color: var(--ink);
}

.games-scope__stat-label {
    font-size: var(--text-body-small);
    line-height: var(--leading-body-small);
    color: var(--ink-muted);
}

.games-scope__verified {
    margin-block-end: 0;
    font-size: var(--text-body-small);
    line-height: var(--leading-body-small);
    color: var(--ink-muted);
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    flex-wrap: wrap;
}

.games-updates__inner {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}

.games-updates__title {
    margin-block-end: 0;
}

.games-updates__intro {
    margin-block-end: 0;
    max-width: 720px;
    color: var(--ink-muted);
}

.games-updates__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-lg);
    align-items: stretch;
}

.update-card {
    min-width: 0;
    background-color: var(--steel);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    transition: border-color var(--transition-fast);
}

.update-card:hover {
    border-color: var(--ink-muted);
}

.update-card__link {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    padding: var(--space-md);
    color: var(--ink);
    text-decoration: none;
    height: 100%;
}

.update-card__link:hover {
    text-decoration: none;
}

.update-card__link:hover .update-card__title {
    color: var(--accent-cyan);
}

.update-card__title {
    font-size: var(--text-h3);
    line-height: var(--leading-h3);
    font-weight: 700;
    letter-spacing: var(--tracking-h3);
    color: var(--ink);
    margin-block-end: 0;
    transition: color var(--transition-fast);
    overflow-wrap: break-word;
    word-wrap: break-word;
}

.update-card__date,
.update-card__note {
    font-size: var(--text-body-small);
    line-height: var(--leading-body-small);
    color: var(--ink-muted);
    margin-block-end: 0;
}

.update-card .badge {
    align-self: flex-start;
    margin-block-start: auto;
}

.games-submit {
    background-color: var(--white);
    border-block: 1px solid var(--border);
}

.games-submit__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: var(--space-md);
    max-width: 600px;
    margin-inline: auto;
}

.games-submit__title {
    margin-block-end: 0;
}

.games-submit__text {
    margin-block-end: 0;
    color: var(--ink);
}

.games-submit__btn {
    flex: 0 0 auto;
}

.games-disclaimer {
    border-block-start: 1px solid var(--border);
}

.games-disclaimer__inner {
    max-width: 800px;
}

.games-disclaimer__text {
    font-size: var(--text-body-small);
    line-height: var(--leading-body-small);
    color: var(--ink-muted);
    margin-block-end: 0;
}

@media (max-width: 1024px) {
    .games-listing__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .games-updates__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .games-scope__inner {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-lg);
    }
}

@media (max-width: 767px) {
    .games-hero__search-row {
        flex-direction: column;
        align-items: stretch;
    }

    .games-hero__search-input {
        flex: 1 1 auto;
        width: 100%;
    }

    .games-hero__filter-btn {
        width: 100%;
    }

    .games-filters__chips {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-block-end: var(--space-xs);
        scrollbar-width: thin;
    }

    .games-filter-chip {
        flex: 0 0 auto;
    }

    .games-filters__sort-row {
        flex-direction: column;
        align-items: stretch;
    }

    .games-filters__sort-select {
        flex: 1 1 auto;
        width: 100%;
    }

    .games-listing__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-md);
    }

    .games-updates__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-md);
    }

    .games-scope__inner {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-md);
    }

    .games-submit__inner {
        align-items: stretch;
        text-align: left;
    }

    .games-submit__btn {
        width: 100%;
    }
}
