.game-catalog {
    --catalog-ink: #172033;
    --catalog-muted: #516173;
    --catalog-rule: #d9e2ec;
    --catalog-accent: #1756a9;
    color: var(--catalog-ink);
    margin-top: 2rem;
    max-width: 96rem;
    padding-bottom: 1rem;
    scrollbar-color: #8a9db4 #f5f7fb;
}

.game-catalog ::selection { background: #dbeafe; color: var(--catalog-ink); }
.game-catalog [hidden] { display: none !important; }
.game-catalog a { color: var(--catalog-accent); text-underline-offset: .2em; }
.game-catalog a:hover { color: #103c76; }
.game-catalog :is(a, button, input, select, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--catalog-accent);
    outline-offset: 3px;
}
.game-catalog__navigation { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-bottom: 1.25rem; }
.game-catalog h1 { font-size: 2.5rem; font-weight: 650; line-height: 1.1; margin-bottom: .75rem; }
.game-catalog__intro { font-size: 1.125rem; line-height: 1.6; max-width: 70ch; margin-bottom: .65rem; }
.game-catalog__scope { color: var(--catalog-muted); line-height: 1.6; max-width: 75ch; margin-bottom: .65rem; }
.game-catalog summary { cursor: pointer; min-height: 2.75rem; padding-block: .6rem; }
.game-catalog summary:hover { color: var(--catalog-accent); }
.game-catalog__review-guide { font-size: .875rem; max-width: 75ch; }
.game-catalog__review-guide p { line-height: 1.6; }
.game-catalog__review-guide ol { padding-left: 1.5rem; line-height: 1.8; }
.game-catalog__recommendations { border-block: 1px solid var(--catalog-rule); margin-block: 1.5rem; padding-block: 1.5rem; }
.game-catalog__recommendations h2, .game-catalog__comparison-title { font-size: 1.6rem; line-height: 1.25; margin: 0 0 .75rem; }
.game-catalog__recommendations p { line-height: 1.6; max-width: 75ch; }
.game-catalog__recommendation-groups { display: grid; gap: 2.5rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-block: 1.5rem .5rem; }
.game-catalog__recommendation-groups h3 { font-size: 1.125rem; font-weight: 650; margin: 0 0 .5rem; }
.game-catalog__recommendation-list { margin: 0; padding-left: 1.6rem; }
.game-catalog__recommendation-list li::marker { color: var(--catalog-accent); font-weight: 700; font-variant-numeric: tabular-nums; }
.game-catalog__recommendation-list li { border-bottom: 1px solid var(--catalog-rule); padding-block: .6rem .8rem; }
.game-catalog__recommendation-list p { margin: 0; }
.game-catalog__recommendation-name { align-items: center; display: inline-flex; font-weight: 650; gap: .5rem; min-height: 2.75rem; overflow-wrap: anywhere; }
.game-catalog__other-movers { margin-block: 1rem; }
.game-catalog__assessment-note { color: var(--catalog-muted); font-size: .875rem; }
.game-catalog__assessment-links { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; }
.game-catalog__assessment-links a { align-items: center; display: inline-flex; min-height: 2.75rem; }
.game-catalog__assessment-links a[aria-current="page"] { color: var(--catalog-ink); font-weight: 700; text-decoration-thickness: 2px; }
.game-catalog__assessment-label { color: var(--catalog-accent); display: block; font-size: .8125rem; font-weight: 650; line-height: 1.5; margin-block: .5rem; }
.game-catalog__assessment-detail > strong { display: block; margin-bottom: .5rem; }
.game-catalog__comparison-title { margin-top: 2rem; scroll-margin-top: 1rem; }
@media (max-width: 767px) {
    .game-catalog__recommendation-groups { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
}
.game-catalog__filters {
    align-items: end;
    background: #f5f7fb;
    border-block: 1px solid var(--catalog-rule);
    display: grid;
    gap: .85rem;
    grid-template-columns: minmax(14rem, 1.5fr) minmax(12rem, 1fr) minmax(10rem, .8fr) auto auto;
    margin-top: 1rem;
    padding: 1rem;
}
.game-catalog__filters > div { min-width: 0; }
.game-catalog__filters label { display: block; font-size: .875rem; font-weight: 650; margin-bottom: .4rem; }
.game-catalog__filters :is(input, select) {
    background: white;
    border: 1px solid #8a9db4;
    border-radius: 6px;
    caret-color: var(--catalog-accent);
    color: var(--catalog-ink);
    min-height: 2.75rem;
    padding: .6rem .75rem;
    width: 100%;
}
.game-catalog__filters input::placeholder { color: var(--catalog-muted); opacity: 1; }
.game-catalog__clear {
    background: white;
    border: 1px solid #8a9db4;
    border-radius: 6px;
    color: var(--catalog-accent);
    min-height: 2.75rem;
    padding: .6rem .8rem;
    white-space: nowrap;
}
.game-catalog__clear:hover:not(:disabled) { background: #eaf1fb; }
.game-catalog__clear:active:not(:disabled) { background: #dbeafe; }
.game-catalog__clear:disabled { color: #657487; cursor: default; }
.game-catalog__result-count {
    color: var(--catalog-muted);
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1.5rem;
    justify-content: space-between;
    font-size: .875rem;
    font-variant-numeric: tabular-nums;
    margin-top: .85rem;
}
.game-catalog__table-help { color: var(--catalog-muted); font-size: .8125rem; line-height: 1.5; margin: .5rem 0 1rem; }
.game-catalog__table-region {
    border: 1px solid #8a9db4;
    isolation: isolate;
    max-height: 75vh;
    overflow: auto;
    overscroll-behavior: contain;
    position: relative;
    scroll-padding: 4rem 1rem 1rem 17rem;
    width: 100%;
}
.game-catalog__table {
    border-collapse: separate;
    border-spacing: 0;
    font-size: .875rem;
    line-height: 1.55;
    margin: 0;
    table-layout: fixed;
    width: 201rem;
}
.game-catalog__table :is(th, td) {
    background: white;
    border-bottom: 1px solid var(--catalog-rule);
    border-right: 1px solid var(--catalog-rule);
    overflow-wrap: anywhere;
    padding: 1rem;
    text-align: left;
    vertical-align: top;
}
.game-catalog__table p { margin: 0 0 .65rem; }
.game-catalog__table p:last-child { margin-bottom: 0; }
.game-catalog__table .game-catalog__source-notes { white-space: pre-line; }
.game-catalog__table thead th {
    background: #edf1f7;
    border-bottom: 1px solid #8a9db4;
    padding: 0;
    position: sticky;
    top: 0;
    z-index: 2;
}
.game-catalog__table thead button {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--catalog-ink);
    display: flex;
    font: inherit;
    font-weight: 650;
    gap: .65rem;
    justify-content: space-between;
    min-height: 3.25rem;
    padding: .75rem 1rem;
    text-align: left;
    width: 100%;
}
.game-catalog__table thead button:hover:not(:disabled) { background: #dce6f4; }
.game-catalog__table thead button:active:not(:disabled) { background: #cbdcf1; }
.game-catalog__table thead button:focus-visible { outline-offset: -4px; }
.game-catalog__table thead button:disabled { cursor: default; opacity: 1; }
.game-catalog__table thead button:disabled i { visibility: hidden; }
.game-catalog__table thead th[aria-sort] { background: #dce6f4; }
.game-catalog__table thead th[aria-sort] button { color: #103c76; }
.game-catalog__table :is(th, td):last-child { border-right: 0; }
.game-catalog__table tbody tr:last-child :is(th, td) { border-bottom: 0; }
.game-catalog__table tbody tr:hover :is(th, td) { background: #f8faff; }
.game-catalog__table th:first-child { border-right-color: #8a9db4; left: 0; position: sticky; z-index: 1; }
.game-catalog__table thead th:first-child { z-index: 3; }
.game-catalog__table tbody th { font-weight: 400; }
.game-catalog__name { display: block; font-size: 1rem; font-weight: 650; line-height: 1.4; margin-bottom: .5rem; }
.game-catalog__edition, .game-catalog__collection-label { display: block; color: var(--catalog-muted); font-size: .8125rem; margin-bottom: .3rem; }
.game-catalog__play { align-items: center; display: inline-flex; gap: .45rem; min-height: 2.75rem; }
.game-catalog__rating { display: block; font-size: 1.25rem; font-variant-numeric: tabular-nums; line-height: 1.4; }
.game-catalog__rating span { color: var(--catalog-muted); font-size: .875rem; font-weight: 400; }
.game-catalog__maturity-label { display: block; font-weight: 650; margin: .35rem 0 .65rem; }
.game-catalog__rating-date { color: var(--catalog-muted); display: block; font-size: .8125rem; }
.game-catalog time { font-variant-numeric: tabular-nums; }
.game-catalog__rating-date time { display: block; white-space: nowrap; }
.game-catalog__data-type { display: block; margin-bottom: .5rem; }
.game-catalog__table details { margin-top: .4rem; }
.game-catalog__table summary { color: var(--catalog-accent); line-height: 1.5; }
.game-catalog__table ul { padding-left: 1rem; margin: .25rem 0 0; }
.game-catalog__table li { margin-bottom: .5rem; }
.game-catalog__links { font-size: .8125rem; }
.game-catalog__evidence code { color: var(--catalog-muted); font-size: .75rem; overflow-wrap: anywhere; }
.game-catalog__column--name { width: 16rem; }
.game-catalog__column--maturity { width: 10rem; }
.game-catalog__column--description { width: 22rem; }
.game-catalog__column--data { width: 24rem; }
.game-catalog__column--content { width: 17rem; }
.game-catalog__column--limitations { width: 26rem; }
.game-catalog__column--language { width: 9rem; }
.game-catalog__column--mode { width: 14rem; }
.game-catalog__column--runtime { width: 18rem; }
.game-catalog__column--next { width: 22rem; }
.game-catalog__column--review { width: 23rem; }
.game-catalog__empty { padding-block: 2rem; }
.game-catalog__empty h2 { font-size: 1.5rem; }
.game-catalog__empty p, .game-catalog__footer p { color: var(--catalog-muted); line-height: 1.6; max-width: 75ch; }
.game-catalog__footer { margin-top: 1.5rem; font-size: .875rem; }
@media (max-width: 1100px) {
    .game-catalog__filters { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
    .game-catalog__search { grid-column: span 2; }
    .game-catalog__filters > div:nth-child(2) { grid-column: span 1; }
}
@media (max-width: 767px) {
    .game-catalog { margin-top: 1.5rem; padding-inline: 1rem; }
    .game-catalog h1 { font-size: 2rem; }
    .game-catalog__navigation { font-size: .875rem; gap: .5rem 1rem; }
    .game-catalog__filters { gap: .75rem; grid-template-columns: minmax(0, 1fr) auto; padding: .85rem; }
    .game-catalog__filters > div:nth-child(2) { grid-column: span 2; }
    .game-catalog__filters .game-catalog__clear { justify-self: start; }
    .game-catalog__table { width: 192rem; }
    .game-catalog__column--name { width: 8rem; }
    .game-catalog__column--maturity { width: 9rem; }
    .game-catalog__table-region { scroll-padding-left: 9rem; }
    .game-catalog__table :is(th, td) { padding: .75rem; }
    .game-catalog__table thead th { padding: 0; }
    .game-catalog__table thead button { padding: .65rem .75rem; }
    .game-catalog__name { font-size: .9375rem; }
}

/* Direction views retain one rich comparison row per canonical edition. */
.game-catalog__directions { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; border-block: 1px solid var(--catalog-rule); padding-block: .65rem; margin-block: 1.25rem .65rem; }
.game-catalog__directions a { align-items: center; display: inline-flex; gap: .5rem; min-height: 2.75rem; }
.game-catalog__directions a[aria-current="page"] { color: var(--catalog-ink); font-weight: 700; text-decoration-thickness: 2px; }
.game-catalog__directions span { color: var(--catalog-muted); font-size: .875rem; font-variant-numeric: tabular-nums; }
.game-catalog__category-note { color: var(--catalog-muted); font-size: .875rem; line-height: 1.6; max-width: 75ch; }
.game-catalog__filters { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.game-catalog__search { grid-column: span 2; }
.game-catalog__filters :is(input, select) { font-size: 1rem; }
.game-catalog__clear { white-space: normal; justify-self: start; }
.game-catalog__table { width: 217rem; }
.game-catalog__column--direction { width: 15rem; }
.game-catalog__column--language { width: 17rem; }
.game-catalog__column--content { width: 26rem; }
.game-catalog__column--difficulty { width: 20rem; }
.game-catalog__column--mode { width: 19rem; }
.game-catalog__column--limitations { width: 24rem; }
.game-catalog__column--data { width: 23rem; }
.game-catalog__column--review { width: 25rem; }
.game-catalog__table .game-catalog__tags { list-style: none; margin: 0; padding: 0; }
.game-catalog__tags a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.game-catalog__facts { margin: 0 0 .75rem; }
.game-catalog__facts dt { font-weight: 650; }
.game-catalog__facts dd { margin: 0 0 .6rem; }
.game-catalog__table summary { min-height: 2.75rem; }
.game-catalog__table details[open] > summary { font-weight: 600; }
@media (max-width: 1100px) {
    .game-catalog__filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .game-catalog__filters { grid-template-columns: minmax(0, 1fr); }
    .game-catalog__filters > div, .game-catalog__filters > div:nth-child(2), .game-catalog__search { grid-column: auto; }
    .game-catalog__table {
        --catalog-phone-column: calc(100vw - 10rem - 2px);
        width: calc(8rem + var(--catalog-phone-column) * 10);
    }
    .game-catalog__table col:not(.game-catalog__column--name) { width: var(--catalog-phone-column); }
    .game-catalog__directions { gap: .25rem 1rem; }
}

.game-catalog__test-wave { min-width: 0; }
.game-catalog__test-start { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin: 1.25rem 0; }
.game-catalog__test-start p { margin: 0; max-width: 48ch; }
.game-catalog a.game-catalog__test-button { display: inline-flex; align-items: center; gap: .6rem; min-height: 2.75rem; padding: .65rem 1rem; border-radius: 6px; background: var(--catalog-accent); color: #fff; font-weight: 650; text-decoration: none; }
.game-catalog a.game-catalog__test-button:hover { background: #103c76; color: #fff; text-decoration: underline; }
.game-catalog__test-button i { flex-shrink: 0; }
.game-catalog__test-wave[data-test-wave="1"] { grid-column: 1 / -1; }
.game-catalog__test-wave[data-test-wave="1"] h3 { font-size: 1.35rem; color: var(--catalog-accent); }
.game-catalog__test-wave[data-test-wave="1"] .game-catalog__recommendation-row { display: grid; grid-template-columns: minmax(14rem, .6fr) minmax(0, 1.4fr); align-items: baseline; gap: .5rem 1.5rem; }
.game-catalog__recommendation-name i { flex-shrink: 0; }
.game-catalog__wave-purpose { color: var(--catalog-muted); margin-bottom: .5rem; }
.game-catalog__wave-compare { display: inline-flex; gap: .4rem; align-items: center; min-height: 2.75rem; margin-top: .5rem; }
.game-catalog__wave-compare[aria-current="page"] { font-weight: 700; color: var(--catalog-ink); }
.game-catalog__test-priority { display: block; font-weight: 700; font-size: .875rem; color: var(--catalog-ink); line-height: 1.5; margin-top: .75rem; }
.game-catalog__testing-detail { padding-bottom: .5rem; margin-bottom: .75rem; border-bottom: 1px solid var(--catalog-rule); }
@media (max-width: 767px) {
    .game-catalog__test-wave[data-test-wave="1"] .game-catalog__recommendation-row { display: block; }
}
