/* 9000 Catalog pages only. Theme colors and the normal site layout remain shared. */
.catalog-page {
    --catalog-line: color-mix(in srgb, var(--ink) 15%, transparent);
    --catalog-soft: color-mix(in srgb, var(--brand-2) 6%, var(--panel-strong));
    display: grid; gap: 1.4rem; color: var(--ink); padding-block: .25rem 1.5rem;
}
.catalog-page *, .catalog-page *::before, .catalog-page *::after { box-sizing: border-box; }
.catalog-page :where(section, article, nav, div, form, label, details) { min-width: 0; }
.catalog-page :where(h1,h2,h3,p,dl,dd) { margin: 0; }
.catalog-page :where(h1,h2,h3) { line-height: 1.2; text-wrap: balance; overflow-wrap: anywhere; }
.catalog-page a { color: inherit; }
.catalog-page :where(a,button,input,select,summary):focus-visible,
.catalog-page :where(section,article)[tabindex]:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
.catalog-page :where(input,select,button) { font-family: inherit; }
.catalog-page .catalog-kicker { font-size: .72rem; line-height: 1.5; font-weight: 750; letter-spacing: .075em; text-transform: uppercase; color: var(--muted); }
.catalog-page .catalog-hero {
    display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center;
    gap: 2rem; padding: clamp(1.25rem,3vw,2.4rem); border: 1px solid var(--catalog-line); border-radius: 1.5rem;
    background: radial-gradient(ellipse at 0% 0%,color-mix(in srgb,var(--brand-2) 10%,transparent),transparent 65%),var(--panel-strong);
}
.catalog-page .catalog-hero h1 { font-size: clamp(2rem,4vw,3.5rem); font-weight: 850; letter-spacing: -.045em; margin-block: .55rem .85rem; }
.catalog-page .catalog-intro { max-width: 64ch; color: var(--muted); font-size: 1.02rem; line-height: 1.7; }
.catalog-page .catalog-total { display: grid; gap: .2rem; padding-inline: 1.5rem; border-inline-start: 1px solid var(--catalog-line); }
.catalog-page .catalog-total strong { font-size: clamp(2rem,4vw,3.4rem); font-weight: 800; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.catalog-page .catalog-total span { font-weight: 650; font-size: .95rem; }
.catalog-page .catalog-total small { color: var(--muted); font-size: .78rem; }
.catalog-page .catalog-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; margin: 0; }
.catalog-page .catalog-stat { display: flex; flex-direction: column; justify-content: center; gap: .3rem; padding: 1rem 1.2rem; background: var(--panel-strong); border: 1px solid var(--catalog-line); border-radius: 1rem; text-decoration: none; min-width: 0; }
.catalog-page .catalog-stat-value { order: -1; font-size: clamp(1.7rem,2.8vw,2.25rem); line-height: 1.15; font-weight: 800; letter-spacing: -.035em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.catalog-page .catalog-stat-label { font-size: .85rem; line-height: 1.5; color: var(--muted); }
.catalog-page .catalog-hero .catalog-stats { grid-template-columns: repeat(3,minmax(105px,1fr)); gap: .65rem; }
.catalog-page .catalog-hero .catalog-stat { background: transparent; border: 0; border-inline-start: 1px solid var(--catalog-line); border-radius: 0; padding: .5rem .85rem; }
.catalog-page .catalog-hero .catalog-stats:has(.catalog-stat:nth-child(2):last-child) { grid-template-columns: repeat(2,minmax(105px,1fr)); }
.catalog-page .catalog-back, .catalog-page .catalog-text-link { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; width: fit-content; padding: .35rem 0; font-size: .85rem; line-height: 1.5; font-weight: 650; text-decoration: none; text-underline-offset: .22em; }
.catalog-page .catalog-back { color: var(--muted); }
.catalog-page .catalog-tabs, .catalog-page .catalog-nav { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; border-block-end: 1px solid var(--catalog-line); }
.catalog-page .catalog-tabs a, .catalog-page .catalog-nav a { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: .7rem .2rem; border-block-end: 3px solid transparent; font-size: .91rem; font-weight: 700; color: var(--muted); text-decoration: none; text-align: center; }
.catalog-page .catalog-tabs a[aria-current], .catalog-page .catalog-tabs a.is-active, .catalog-page .catalog-nav a[aria-current], .catalog-page .catalog-nav a.is-active { border-block-end-color: var(--ink); color: var(--ink); }
.catalog-page .catalog-section, .catalog-page .catalog-results { display: grid; gap: 1.1rem; scroll-margin-block-start: 1.5rem; }
.catalog-page .catalog-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.catalog-page .catalog-section-heading h2 { font-size: clamp(1.3rem,2.2vw,1.65rem); letter-spacing: -.025em; }
.catalog-page .catalog-section-heading p { color: var(--muted); line-height: 1.65; font-size: .92rem; margin-block-start: .35rem; max-width: 76ch; }
.catalog-page .catalog-search { display: flex; flex-wrap: wrap; align-items: end; gap: .8rem; padding: 1.15rem; border: 1px solid var(--catalog-line); border-radius: 1.1rem; background: var(--panel-strong); }
.catalog-page .catalog-field { display: grid; gap: .4rem; font-size: .8rem; line-height: 1.5; font-weight: 700; flex: 1 1 180px; }
.catalog-page .catalog-search-query { flex: 2 1 300px; }
.catalog-page .catalog-field :where(input,select) { width: 100%; min-width: 0; min-height: 46px; padding: .7rem .85rem; border: 1px solid var(--catalog-line); border-radius: .7rem; color: var(--ink); background: var(--catalog-soft); box-shadow: none; font-size: .93rem; font-weight: 450; }
.catalog-page .catalog-field input::placeholder { color: var(--muted); opacity: 1; }
.catalog-page .catalog-filter-grid { width: 100%; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)) auto; align-items: end; gap: .8rem; }
.catalog-page .catalog-filter-grid .catalog-search-field { grid-column: 1 / -1; }
.catalog-page .catalog-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .9rem; }
.catalog-page .catalog-action { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; width: fit-content; max-width: 100%; min-height: 44px; padding: .7rem 1rem; border: 1px solid var(--catalog-line); border-radius: .75rem; background: var(--panel-strong); color: var(--ink); font-size: .84rem; font-weight: 700; line-height: 1.4; text-decoration: none; text-align: center; cursor: pointer; box-shadow: none; }
.catalog-page .catalog-action.catalog-action-primary { background: var(--ink); color: var(--panel-strong); border-color: var(--ink); }
.catalog-page .catalog-choices { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.catalog-page .catalog-choice { display: flex; flex-direction: column; gap: .8rem; padding: 1.35rem; border: 1px solid var(--catalog-line); border-radius: 1.1rem; background: var(--panel-strong); }
.catalog-page .catalog-choice-heading { display: flex; align-items: center; gap: .75rem; }
.catalog-page .catalog-choice-heading h3 { font-size: 1.2rem; letter-spacing: -.025em; }
.catalog-page .catalog-choice-icon { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; flex: 0 0 2.6rem; background: var(--catalog-soft); border-radius: .8rem; font-size: 1.35rem; }
.catalog-page .catalog-choice > p { font-size: .92rem; line-height: 1.6; color: var(--muted); }
.catalog-page .catalog-choice .catalog-choice-count { color: var(--ink); }
.catalog-page .catalog-choice-count strong { font-size: 1.2rem; font-variant-numeric: tabular-nums; }
.catalog-page .catalog-choice-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .35rem .65rem; margin-block-start: auto; padding-block-start: .8rem; border-block-start: 1px solid var(--catalog-line); }
.catalog-page .catalog-choice-foot .catalog-action { font-size: .81rem; padding: .65rem .75rem; }
.catalog-page .catalog-choice-foot .catalog-text-link { font-size: .77rem; color: var(--muted); }
.catalog-page .catalog-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.catalog-page .catalog-entry-card { display: flex; flex-direction: column; overflow: hidden; background: var(--panel-strong); border: 1px solid var(--catalog-line); border-radius: 1rem; scroll-margin-block-start: 1rem; }
.catalog-page .catalog-entry-media { display: grid; place-items: center; aspect-ratio: 16 / 9; overflow: hidden; width: 100%; position: relative; background: var(--catalog-soft); text-decoration: none; }
.catalog-page .catalog-entry-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.catalog-page .catalog-media-placeholder { font-size: 2rem; font-weight: 800; color: var(--muted); padding: 1rem; }
.catalog-page .catalog-entry-copy { display: flex; flex-direction: column; flex: 1; gap: .65rem; padding: 1.1rem; }
.catalog-page .catalog-entry-copy h3 { font-size: 1.08rem; line-height: 1.4; letter-spacing: -.015em; }
.catalog-page .catalog-entry-copy h3 a { text-decoration: none; }
.catalog-page .catalog-entry-description { font-size: .87rem; line-height: 1.65; color: var(--muted); overflow-wrap: anywhere; }
.catalog-page .catalog-entry-meta { display: flex; flex-wrap: wrap; gap: .3rem .85rem; color: var(--muted); font-size: .78rem; line-height: 1.6; overflow-wrap: anywhere; }
.catalog-page .catalog-entry-meta > span { max-width: 100%; }
.catalog-page .catalog-entry-author { font-size: .82rem; color: var(--muted); line-height: 1.5; overflow-wrap: anywhere; }
.catalog-page .catalog-entry-copy > .catalog-actions, .catalog-page .catalog-entry-copy > .catalog-action { margin-block-start: auto; }
.catalog-page .catalog-entry-copy > .catalog-actions { padding-block-start: .35rem; }
.catalog-page .catalog-badges { display: flex; flex-wrap: wrap; gap: .35rem; }
.catalog-page .catalog-badge { display: inline-flex; align-items: center; padding: .25rem .5rem; background: var(--catalog-soft); color: var(--ink); border: 1px solid var(--catalog-line); border-radius: .45rem; font-size: .68rem; font-weight: 650; line-height: 1.5; }
.catalog-page .catalog-badge.is-seal, .catalog-page .catalog-badge.is-winner { background: color-mix(in srgb,var(--brand-3) 18%,var(--panel-strong)); }
.catalog-page .catalog-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .85rem 1.5rem; padding: 1.2rem 0 .3rem; }
.catalog-page .catalog-pagination > span { color: var(--muted); font-size: .85rem; font-variant-numeric: tabular-nums; }
.catalog-page .catalog-empty { display: grid; justify-items: start; gap: .75rem; padding: 2rem; border: 1px dashed var(--catalog-line); border-radius: 1rem; background: var(--panel-strong); }
.catalog-page .catalog-empty p { color: var(--muted); line-height: 1.65; }
.catalog-page .catalog-submit-details { border: 1px solid var(--catalog-line); border-radius: 1rem; background: var(--catalog-soft); margin: 0; padding: 0; scroll-margin-block-start: 1rem; }
.catalog-page .catalog-submit-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 54px; padding: .9rem 1.15rem; font-size: .95rem; font-weight: 700; list-style: none; cursor: pointer; }
.catalog-page .catalog-submit-details > summary::-webkit-details-marker { display: none; }
.catalog-page .catalog-submit-details > summary > span { font-size: 1.2rem; }
.catalog-page .catalog-submit-details[open] > summary > span { transform: rotate(45deg); }
.catalog-page .catalog-submit-content { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 1.5rem; padding: .25rem 1.15rem 1.15rem; }
.catalog-page .catalog-submit-content p { font-size: .9rem; line-height: 1.65; }
.catalog-page .catalog-submit-form { display: grid; gap: .8rem; }
.catalog-page .catalog-quiet, .catalog-page .catalog-note { font-size: .8rem; line-height: 1.65; color: var(--muted); }
.catalog-page .catalog-submit-content .catalog-quiet { margin-block-start: .4rem; font-size: .8rem; }
.catalog-page .catalog-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; border-block-start: 1px solid var(--catalog-line); padding-block-start: .45rem; }
.catalog-page .catalog-contributor-filter { max-width: 650px; }
.catalog-page .catalog-result-count { color: var(--muted); font-size: .85rem; }
.catalog-page .catalog-leaderboard { list-style: none; display: grid; gap: .6rem; margin: 0; padding: 0; }
.catalog-page .catalog-contributor { display: grid; grid-template-columns: 2.6rem minmax(0,1fr) auto; align-items: center; gap: 1rem; padding: 1.15rem; background: var(--panel-strong); border: 1px solid var(--catalog-line); border-radius: .95rem; }
.catalog-page .catalog-rank { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .8rem; background: var(--catalog-soft); font-size: 1rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.catalog-page .catalog-contributor:first-child .catalog-rank { background: var(--ink); color: var(--panel-strong); }
.catalog-page .catalog-contributor h3 { font-size: 1rem; line-height: 1.4; }
.catalog-page .catalog-contribution-breakdown { display: flex; flex-wrap: wrap; gap: .2rem .9rem; list-style: none; margin: .4rem 0 0; padding: 0; color: var(--muted); font-size: .78rem; line-height: 1.6; }
.catalog-page .catalog-contributor-total { display: grid; gap: .1rem; text-align: end; }
.catalog-page .catalog-contributor-total strong { font-size: 1.6rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.catalog-page .catalog-contributor-total span { color: var(--muted); font-size: .75rem; }
.catalog-page .catalog-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (hover:hover) {
    .catalog-page :where(.catalog-back,.catalog-text-link,.catalog-entry-copy h3 a):hover { text-decoration: underline; }
    .catalog-page a.catalog-stat:hover, .catalog-page .catalog-action:hover { border-color: var(--ink); }
    .catalog-page .catalog-tabs a:hover { color: var(--ink); }
}
@media (max-width:1100px) {
    .catalog-page .catalog-hero { grid-template-columns: 1fr; gap: 1.2rem; }
    .catalog-page .catalog-total { border-inline-start: 0; padding: 0; }
    .catalog-page .catalog-hero .catalog-stats { max-width: 600px; }
    .catalog-page .catalog-hero .catalog-stat:first-child { border-inline-start: 0; padding-inline-start: 0; }
    .catalog-page .catalog-grid, .catalog-page .catalog-choices { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
    .catalog-page { gap: 1.1rem; }
    .catalog-page .catalog-hero { padding: 1.2rem; border-radius: 1.1rem; }
    .catalog-page .catalog-hero h1 { font-size: 2.15rem; }
    .catalog-page .catalog-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
    .catalog-page .catalog-stat { padding: .85rem; }
    .catalog-page .catalog-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .catalog-page .catalog-filter-grid > button { grid-column: 1 / -1; width: 100%; }
    .catalog-page .catalog-submit-content { grid-template-columns: 1fr; gap: 1rem; }
    .catalog-page .catalog-section-heading { align-items: start; flex-direction: column; gap: .35rem; }
    .catalog-page .catalog-search > button { flex: 1 1 auto; }
    .catalog-page .catalog-contributor { grid-template-columns: 2rem minmax(0,1fr) auto; gap: .7rem; padding: .9rem; }
    .catalog-page .catalog-rank { width: 2rem; height: 2rem; border-radius: .6rem; }
}
@media (max-width:500px) {
    .catalog-page .catalog-grid, .catalog-page .catalog-choices { grid-template-columns: 1fr; }
    .catalog-page .catalog-hero .catalog-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .catalog-page .catalog-hero .catalog-stats:has(.catalog-stat:nth-child(2):last-child) { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .catalog-page .catalog-hero .catalog-stat { padding: .3rem .55rem; }
    .catalog-page .catalog-hero .catalog-stat-value { font-size: 1.6rem; }
    .catalog-page .catalog-hero .catalog-stat-label { font-size: .74rem; }
    .catalog-page .catalog-contributor-total { grid-column: 2 / -1; display: flex; align-items: baseline; gap: .4rem; text-align: start; }
    .catalog-page .catalog-contributor-total strong { font-size: 1.2rem; }
    .catalog-page .catalog-filter-grid { grid-template-columns: 1fr; }
}
/* Existing Roblox and asset actions share the same catalog spacing and controls. */
.catalog-page .catalog-stats:has(>.catalog-stat:nth-child(3):last-child) { grid-template-columns: repeat(3,minmax(0,1fr)); }
.catalog-page .catalog-stat > strong:not(.catalog-stat-value) { font-size: clamp(1.7rem,2.8vw,2.25rem); font-weight: 800; line-height: 1.15; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.catalog-page .catalog-stat > span:not(.catalog-stat-label) { font-size: .85rem; color: var(--muted); line-height: 1.5; }
.catalog-page .panel { margin: 0; padding: 1.15rem; background: var(--panel-strong); border: 1px solid var(--catalog-line); border-radius: 1.1rem; box-shadow: none; }
.catalog-page .catalog-hero .lead { max-width: 64ch; font-size: 1.02rem; font-weight: 450; color: var(--muted); line-height: 1.7; margin: 0; }
.catalog-page .catalog-search > label, .catalog-page .roblox-submit-form > label { display: grid; gap: .4rem; flex: 1 1 180px; font-size: .8rem; line-height: 1.5; font-weight: 700; }
.catalog-page .catalog-search > label:first-of-type { flex: 2 1 300px; }
.catalog-page .catalog-search > label :where(input,select), .catalog-page .roblox-submit-form input { width: 100%; min-width: 0; min-height: 46px; padding: .7rem .85rem; border: 1px solid var(--catalog-line); border-radius: .7rem; color: var(--ink); background: var(--catalog-soft); box-shadow: none; font-size: .93rem; font-weight: 450; }
.catalog-page .catalog-search > .button-row { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; }
.catalog-page .button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; padding: .7rem .9rem; border: 1px solid var(--catalog-line); border-radius: .75rem; box-shadow: none; font-size: .84rem; line-height: 1.4; font-weight: 700; background: var(--panel-strong); color: var(--ink); text-decoration: none; }
.catalog-page .button.primary { color: var(--panel-strong); background: var(--ink); border-color: var(--ink); }
.catalog-page .catalog-nav a.button { border: 0; border-radius: 0; background: transparent; border-block-end: 3px solid transparent; color: var(--muted); padding-inline: .3rem; }
.catalog-page .catalog-nav a.button.primary { border-block-end-color: var(--ink); color: var(--ink); }
.catalog-page .catalog-results-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem 1rem; }
.catalog-page .catalog-results-heading h2 { font-size: 1.5rem; }
.catalog-page .catalog-results-heading p { font-size: .87rem; line-height: 1.6; color: var(--muted); }
.catalog-page .catalog-details { margin: 0; padding: .85rem 1rem; border: 1px solid var(--catalog-line); border-radius: .75rem; background: var(--catalog-soft); }
.catalog-page .catalog-details > summary { font-size: .86rem; font-weight: 650; cursor: pointer; min-height: 30px; }
.catalog-page .catalog-details p { color: var(--muted); font-size: .87rem; line-height: 1.6; padding-block: .5rem; }
.catalog-page .catalog-card { overflow: hidden; border: 1px solid var(--catalog-line); border-radius: 1rem; background: var(--panel-strong); min-width: 0; }
.catalog-page .roblox-card { display: flex; flex-direction: column; }
.catalog-page .roblox-card-art { width: 100%; aspect-ratio: 16/9; position: relative; display: grid; place-items: center; overflow: hidden; background: var(--catalog-soft); }
.catalog-page .roblox-card-art img { width: 100%; height: 100%; object-fit: cover; }
.catalog-page .roblox-card-art .placeholder { font-size: 3rem; color: var(--muted); }
.catalog-page .roblox-source-badge, .catalog-page .roblox-award-badge { font-size: .65rem; font-weight: 700; padding: .3rem .45rem; border-radius: .4rem; border: 1px solid var(--catalog-line); background: var(--panel-strong); color: var(--ink); }
.catalog-page .roblox-source-badge { position: absolute; inset-block-start: .6rem; inset-inline-start: .6rem; }
.catalog-page .roblox-award-stack { position: absolute; inset-block-end: .6rem; inset-inline-end: .6rem; display: grid; justify-items: end; gap: .3rem; }
.catalog-page .roblox-award-badge { background: color-mix(in srgb,var(--brand-3) 22%,var(--panel-strong)); }
.catalog-page .roblox-card-body { display: flex; flex-direction: column; flex: 1; gap: .65rem; padding: 1.1rem; }
.catalog-page .roblox-card-body h2, .catalog-page .asset-card h2 { font-size: 1.08rem; line-height: 1.4; letter-spacing: -.015em; }
.catalog-page .roblox-meta, .catalog-page .roblox-rating, .catalog-page .roblox-live-stats { display: flex; flex-wrap: wrap; gap: .3rem .75rem; font-size: .78rem; color: var(--muted); line-height: 1.6; overflow-wrap: anywhere; }
.catalog-page .roblox-rating { color: var(--ink); font-weight: 650; }
.catalog-page .roblox-card-actions { display: flex; flex-wrap: wrap; gap: .45rem; margin-block-start: auto; padding-block-start: .5rem; }
.catalog-page .roblox-submit-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.catalog-page .roblox-submit-panel p { font-size: .9rem; line-height: 1.65; color: var(--muted); margin-block-start: .6rem; }
.catalog-page .roblox-checks { display: grid; gap: .5rem; padding-block-start: .8rem; }
.catalog-page .roblox-check { display: flex; flex-wrap: wrap; gap: .3rem .7rem; justify-content: space-between; font-size: .78rem; line-height: 1.5; padding-block: .5rem; border-block-end: 1px solid var(--catalog-line); }
.catalog-page .roblox-submit-form { display: grid; gap: .85rem; }
.catalog-page .roblox-empty { padding: 1.5rem; background: var(--panel-strong); border: 1px dashed var(--catalog-line); border-radius: 1rem; grid-column: 1/-1; }
.catalog-page .asset-card { display: flex; flex-direction: column; gap: .7rem; }
.catalog-page .asset-card > p { font-size: .87rem; line-height: 1.6; overflow-wrap: anywhere; }
.catalog-page .asset-card .section-head { flex-wrap: wrap; gap: .5rem; align-items: start; }
.catalog-page .asset-card-cover { aspect-ratio: 16/9; width: 100%; display: grid; place-items: center; overflow: hidden; border-radius: .65rem; background: var(--catalog-soft); }
.catalog-page .asset-card-cover img { width: 100%; height: 100%; object-fit: contain; }
.catalog-page .asset-card-cover > span { font-size: 2.5rem; }
.catalog-page .asset-meta { display: flex; flex-wrap: wrap; gap: .25rem .65rem; font-size: .75rem; line-height: 1.6; color: var(--muted); overflow-wrap: anywhere; }
.catalog-page .asset-card .sound-preview { max-width: 100%; width: 100%; min-width: 0; }
.catalog-page .asset-card .status-pill { font-size: .66rem; padding: .2rem .5rem; }
.catalog-page .asset-card :where(.emoji-catalog-details,.sound-catalog-details) { display: grid; gap: .45rem; font-size: .82rem; line-height: 1.5; overflow-wrap: anywhere; }
.catalog-page .asset-card :where(.emoji-catalog-details,.sound-catalog-details) > span { display: flex; flex-wrap: wrap; gap: .2rem .5rem; }
.catalog-page .asset-card :where(.emoji-rating-form,.sound-rating-form) { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem; }
.catalog-page .asset-card :where(.emoji-rating-form,.sound-rating-form) label { flex: 1; min-width: 110px; font-size: .8rem; }
.catalog-page .asset-card :where(.emoji-rating-form,.sound-rating-form) select { width: 100%; min-height: 44px; font-size: .87rem; }
@media (max-width:700px) {
    .catalog-page .roblox-submit-panel { grid-template-columns: 1fr; }
    .catalog-page .catalog-stat > strong:not(.catalog-stat-value) { font-size: 1.6rem; }
    .catalog-page .catalog-stat > span:not(.catalog-stat-label) { font-size: .75rem; }
    .catalog-page .catalog-search > label { flex-basis: calc(50% - .8rem); }
    .catalog-page .catalog-search > label:first-of-type { flex-basis: 100%; }
    .catalog-page .catalog-search > .button-row { flex-basis: 100%; }
    .catalog-page .catalog-search > .button-row .button { flex: 1; }
}
@media (max-width:430px) {
    .catalog-page .catalog-search > label { flex-basis: 100%; }
    .catalog-page .catalog-stats:has(>.catalog-stat:nth-child(3):last-child) { gap: .35rem; }
    .catalog-page .catalog-stats:has(>.catalog-stat:nth-child(3):last-child) > .catalog-stat { padding: .7rem .5rem; }
}
/* Core colors ordinary links and buttons globally; keep catalog actions legible. */
html[data-theme] .catalog-page a:not(.button):not(.catalog-action-primary) { color: var(--ink); }
html[data-theme] .catalog-page a.catalog-action.catalog-action-primary { color: var(--panel-strong); background: var(--ink); }
html[data-theme] .catalog-page button.catalog-action.catalog-action-primary:not(.danger):not(.warn) { color: var(--panel-strong) !important; background: var(--ink) !important; border-color: var(--ink) !important; }
html[data-theme] .catalog-page a.catalog-back:not(.button):not(.nav-link) { color: var(--muted); }
/* Contributor and staff controls stay secondary to browsing. */
.catalog-page .catalog-entry-controls { display: grid; gap: .65rem; margin-block-start: .7rem; padding-block-start: .75rem; border-block-start: 1px solid var(--catalog-line); }
.catalog-page .catalog-confirm-delete { margin: 0; padding: 0; border: 1px solid var(--catalog-line); border-radius: .65rem; background: transparent; }
.catalog-page .catalog-confirm-delete > summary { cursor: pointer; min-height: 44px; padding: .7rem .8rem; font-size: .82rem; font-weight: 650; line-height: 1.5; }
.catalog-page .catalog-confirm-delete > :not(summary) { margin: 0; padding: .15rem .8rem .85rem; }
.catalog-page .catalog-confirm-delete p { font-size: .82rem; line-height: 1.6; color: var(--muted); overflow-wrap: anywhere; }
.catalog-page .catalog-confirm-delete form { display: grid; gap: .6rem; }
.catalog-page .catalog-category-form { display: flex; flex-wrap: wrap; gap: .7rem; align-items: end; }
.catalog-page .catalog-category-form label { display: grid; gap: .4rem; flex: 1 1 200px; font-size: .82rem; font-weight: 650; }
.catalog-page .catalog-category-form select { min-height: 44px; width: 100%; }
.catalog-page .catalog-action-danger { color: var(--ink); border-color: color-mix(in srgb,var(--danger) 55%,var(--ink)); background: color-mix(in srgb,var(--danger) 10%,var(--panel-strong)); }
.catalog-page .catalog-category-editor { display: grid; gap: .7rem; margin-block-start: .8rem; padding: 1rem; border: 1px solid var(--catalog-line); border-radius: .8rem; background: var(--panel-strong); }
.catalog-page .catalog-category-editor p { color: var(--muted); font-size: .85rem; line-height: 1.6; }
.catalog-page .catalog-filter-grid:has(#catalog-category) { grid-template-columns: repeat(3,minmax(0,1fr)); }
.catalog-page .catalog-filter-grid:has(#catalog-category) > button { align-self: end; }
@media(max-width:700px) { .catalog-page .catalog-filter-grid:has(#catalog-category) { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:500px) { .catalog-page .catalog-filter-grid:has(#catalog-category) { grid-template-columns: 1fr; } }
/* Categories can overlap: give each choice its own readable, touchable label. */
.catalog-page .catalog-category-multiple { display: grid; align-items: stretch; gap: 1rem; }
.catalog-page .catalog-category-choices, .catalog-page .catalog-duplicate-choices { padding: 0; margin: 0; border: 0; min-width: 0; }
.catalog-page .catalog-category-choices legend, .catalog-page .catalog-duplicate-choices legend { float: none; width: auto; padding: 0 0 .7rem; font-size: .86rem; font-weight: 700; }
.catalog-page .catalog-category-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem; }
.catalog-page .catalog-category-multiple label.catalog-category-choice { display: flex; flex: none; align-items: center; gap: .6rem; min-height: 46px; padding: .6rem .75rem; border: 1px solid var(--catalog-line); border-radius: .65rem; background: var(--catalog-soft); font-size: .82rem; cursor: pointer; }
.catalog-page .catalog-category-choice:has(input:checked) { border-color: var(--ink); background: color-mix(in srgb,var(--brand-2) 12%,var(--panel-strong)); }
.catalog-page .catalog-category-choice input, .catalog-page .catalog-confirm-check input, .catalog-page .catalog-duplicate-choice > input { flex: 0 0 18px; width: 18px; height: 18px; min-height: 18px; margin: 0; padding: 0; accent-color: var(--ink); }
.catalog-page .catalog-maintenance-stats { grid-template-columns: repeat(4,minmax(0,1fr)); }
.catalog-page .catalog-maintenance-panel { display: grid; gap: 1rem; }
.catalog-page .catalog-maintenance-panel > p, .catalog-page .catalog-duplicate-group p { font-size: .9rem; line-height: 1.7; }
.catalog-page .catalog-duplicate-groups { display: grid; gap: 1rem; margin-block-start: 1rem; }
.catalog-page .catalog-duplicate-group > form { display: grid; gap: 1rem; }
.catalog-page .catalog-duplicate-group h3 { font-size: 1.2rem; line-height: 1.4; overflow-wrap: anywhere; }
.catalog-page .catalog-duplicate-choices { display: grid; gap: .6rem; }
.catalog-page .catalog-duplicate-choice { display: flex; gap: .75rem; align-items: start; padding: 1rem; border: 1px solid var(--catalog-line); border-radius: .8rem; background: var(--catalog-soft); }
.catalog-page .catalog-duplicate-choice:has(input:checked) { border-color: var(--ink); }
.catalog-page .catalog-duplicate-choice > input { margin-block-start: .2rem; }
.catalog-page .catalog-duplicate-copy { display: grid; gap: .35rem; min-width: 0; }
.catalog-page .catalog-duplicate-copy > label { cursor: pointer; font-size: .9rem; line-height: 1.5; overflow-wrap: anywhere; }
.catalog-page .catalog-confirm-check { display: flex; align-items: center; gap: .65rem; margin-block: .9rem; font-size: .84rem; line-height: 1.5; cursor: pointer; }
@media(max-width:760px) {
    .catalog-page .catalog-category-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .catalog-page .catalog-maintenance-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:440px) { .catalog-page .catalog-category-options { grid-template-columns: 1fr; } }

/* Reading first; entry fields live in an intentionally opened editor. */
.catalog-page .catalog-entry-toolbar { display: flex; flex-wrap: wrap; align-items: start; gap: .75rem; }
.catalog-page .catalog-entry-toolbar > .catalog-confirm-delete { flex: 0 1 440px; }
.catalog-page .catalog-entry-controls > button { justify-self: start; }
.catalog-page dialog.catalog-entry-dialog { position: fixed; inset: 0; margin: auto; padding: 0; width: min(720px,calc(100vw - 2rem)); max-width: none; max-height: calc(100vh - 2rem); max-height: calc(100dvh - 2rem); overflow: hidden; color: var(--ink); background: var(--panel-strong); border: 1px solid var(--catalog-line); border-radius: 1.25rem; box-shadow: 0 24px 90px rgba(0,0,0,.4); }
.catalog-page dialog.catalog-entry-dialog:not([open]) { display: none; }
.catalog-page dialog.catalog-entry-dialog[open] { display: flex; flex-direction: column; }
.catalog-page .catalog-entry-dialog::backdrop { background: rgba(6,10,20,.65); backdrop-filter: blur(5px); }
html.catalog-editor-is-open { overflow: hidden; }
.catalog-page .catalog-editor-header { display: flex; flex: 0 0 auto; align-items: start; justify-content: space-between; gap: 1rem; padding: 1.4rem 1.5rem 1.15rem; border-block-end: 1px solid var(--catalog-line); background: var(--catalog-soft); }
.catalog-page .catalog-editor-header h2 { font-size: 1.65rem; letter-spacing: -.035em; margin-block: .2rem .45rem; }
.catalog-page .catalog-editor-entry-name { max-width: 60ch; font-size: .87rem; line-height: 1.5; color: var(--muted); overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.catalog-page button.catalog-editor-close { display: grid; place-items: center; flex: 0 0 44px; width: 44px; min-width: 44px; height: 44px; min-height: 44px; padding: 0; font-size: 1.7rem; line-height: 1; color: var(--ink); background: var(--panel-strong); border: 1px solid var(--catalog-line); border-radius: .7rem; box-shadow: none; cursor: pointer; }
.catalog-page .catalog-editor-form { display: flex; flex-direction: column; flex-wrap: nowrap; flex: 1 1 auto; min-height: 0; margin: 0; gap: 0; }
.catalog-page .catalog-editor-body { display: grid; gap: 1.35rem; overflow-y: auto; overscroll-behavior: contain; min-height: 0; padding: 1.35rem 1.5rem; }
.catalog-page .catalog-editor-intro h3 { font-size: 1.1rem; margin-block-end: .45rem; }
.catalog-page .catalog-editor-intro p { color: var(--muted); font-size: .9rem; line-height: 1.7; max-width: 62ch; }
.catalog-page .catalog-editor-suggestions { display: grid; justify-items: start; gap: .45rem; padding: 1rem; border: 1px solid var(--catalog-line); border-radius: .85rem; background: var(--catalog-soft); }
.catalog-page .catalog-editor-suggestions strong { font-size: .85rem; line-height: 1.6; }
.catalog-page .catalog-editor-suggestions .catalog-action { margin-block-start: .2rem; }
.catalog-page .catalog-editor-footer { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: end; gap: .65rem; padding: 1rem 1.5rem; border-block-start: 1px solid var(--catalog-line); background: var(--panel-strong); }
@media(max-width:540px) {
    .catalog-page dialog.catalog-entry-dialog { width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); max-height: calc(100dvh - 1rem); border-radius: 1rem; }
    .catalog-page .catalog-editor-header { padding: 1rem; }
    .catalog-page .catalog-editor-body { padding: 1rem; gap: 1.1rem; }
    .catalog-page .catalog-editor-footer { padding: .8rem 1rem; }
    .catalog-page .catalog-editor-footer > button { flex: 1; }
    .catalog-page .catalog-entry-dialog .catalog-category-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .catalog-page .catalog-entry-dialog label.catalog-category-choice { gap: .4rem; padding: .55rem; font-size: .78rem; }
}
@media(max-width:350px) { .catalog-page .catalog-entry-dialog .catalog-category-options { grid-template-columns: 1fr; } }

/* Instagram finds use the site's current palette and contributor-written details. */
.catalog-instagram-page .catalog-hero .catalog-stats { grid-template-columns: repeat(4,minmax(0,1fr)); }
.catalog-instagram-page .catalog-field textarea { width: 100%; min-width: 0; min-height: 100px; resize: vertical; padding: .7rem .85rem; border: 1px solid var(--catalog-line); border-radius: .7rem; color: var(--ink); background: var(--catalog-soft); box-shadow: none; font: inherit; font-size: .93rem; font-weight: 450; line-height: 1.65; }
.catalog-instagram-page textarea::placeholder { color: var(--muted); opacity: 1; }
.catalog-instagram-page textarea:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
.catalog-instagram-page .catalog-field > .catalog-quiet { font-weight: 450; }
.catalog-instagram-page .catalog-submit-content { align-items: start; }
.catalog-instagram-page .catalog-instagram-categories .catalog-category-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
.catalog-instagram-page .catalog-instagram-categories label.catalog-category-choice { display: flex; align-items: center; gap: .55rem; min-height: 44px; padding: .55rem .65rem; border: 1px solid var(--catalog-line); border-radius: .65rem; font-size: .8rem; line-height: 1.5; cursor: pointer; }
.catalog-instagram-page .catalog-instagram-categories input[type="checkbox"] { flex: 0 0 auto; width: 17px; height: 17px; min-height: 0; margin: 0; accent-color: var(--brand-2); }
.catalog-instagram-page .catalog-instagram-placeholder { display: grid; place-items: center; gap: .45rem; color: var(--muted); font-size: .82rem; font-weight: 650; padding: 1.5rem; }
.catalog-instagram-page .catalog-instagram-placeholder svg { width: 76px; height: 76px; color: var(--ink); opacity: .8; }
.catalog-instagram-page .catalog-entry-media:has(.catalog-instagram-placeholder) { background: radial-gradient(ellipse at 15% 20%,color-mix(in srgb,var(--brand-2) 15%,transparent),transparent 70%),var(--catalog-soft); }
.catalog-instagram-page .catalog-source-url { overflow-wrap: anywhere; word-break: break-word; }
.catalog-instagram-page .catalog-submission-note { display: grid; gap: .45rem; padding: 1rem 1.15rem; color: var(--ink); border: 1px solid var(--catalog-line); border-inline-start: 4px solid var(--brand-2); border-radius: .75rem; background: var(--catalog-soft); font-size: .86rem; line-height: 1.65; overflow-wrap: anywhere; }
.catalog-instagram-page .catalog-submission-note p { color: var(--muted); }
.catalog-instagram-page .catalog-moderation-badge.is-approved { border-color: color-mix(in srgb,var(--brand-2) 70%,var(--ink)); }
.catalog-instagram-page .catalog-moderation-badge.is-rejected { border-color: color-mix(in srgb,var(--danger) 60%,var(--ink)); }
.catalog-instagram-page .catalog-description-excerpt { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.catalog-instagram-page .catalog-instagram-review .catalog-submit-form { padding-block-start: .7rem; }
.catalog-instagram-page .catalog-instagram-review .catalog-actions { gap: .6rem; }
.catalog-instagram-page .catalog-instagram-detail-hero { grid-template-columns: minmax(0,1fr) minmax(140px,.3fr); gap: 1.5rem; }
.catalog-instagram-page .catalog-instagram-detail-hero > div:first-child { display: grid; justify-items: start; gap: .8rem; }
.catalog-instagram-page .catalog-instagram-detail-hero h1 { margin: 0; font-size: clamp(1.8rem,3.3vw,3rem); }
.catalog-instagram-page .catalog-instagram-author .catalog-text-link { padding: 0; min-height: 32px; }
.catalog-instagram-page .catalog-instagram-emblem { display: grid; place-items: center; align-content: center; gap: .9rem; align-self: stretch; padding: 1.8rem; border-radius: 1.15rem; border: 1px solid var(--catalog-line); color: var(--ink); background: radial-gradient(ellipse at 10% 10%,color-mix(in srgb,var(--brand-2) 18%,transparent),transparent 70%),var(--catalog-soft); }
.catalog-instagram-page .catalog-instagram-emblem svg { width: clamp(72px,10vw,132px); height: auto; }
.catalog-instagram-page .catalog-instagram-emblem span { font-size: .85rem; font-weight: 700; }
.catalog-instagram-page .catalog-instagram-story { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; gap: 1.2rem; }
.catalog-instagram-page .catalog-instagram-about, .catalog-instagram-page .catalog-instagram-preview { display: grid; gap: .9rem; align-content: start; }
.catalog-instagram-page .catalog-description-full { font-size: .96rem; line-height: 1.8; overflow-wrap: anywhere; }
.catalog-instagram-page .catalog-instagram-about h2, .catalog-instagram-page .catalog-instagram-preview h2 { font-size: 1.4rem; letter-spacing: -.025em; }
.catalog-instagram-page .catalog-instagram-embed { min-width: 0; width: 100%; overflow: hidden; border-radius: .75rem; }
.catalog-instagram-page .catalog-instagram-embed:empty, .catalog-instagram-page [data-instagram-status]:empty { display: none; }
.catalog-instagram-page .catalog-instagram-embed :where(iframe,blockquote.instagram-media) { min-width: 0 !important; width: 100% !important; max-width: 100% !important; margin: 0 !important; }
.catalog-instagram-page .catalog-instagram-award { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 1.2rem; }
.catalog-instagram-page .catalog-instagram-award > div:first-child { display: grid; gap: .55rem; }
.catalog-instagram-page .catalog-instagram-award h2 { font-size: 1.45rem; letter-spacing: -.025em; }
.catalog-instagram-page .catalog-instagram-review-grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 1.2rem; align-items: start; }
.catalog-instagram-page .catalog-instagram-own-review { display: grid; justify-items: start; gap: 1rem; }
.catalog-instagram-page .catalog-instagram-own-review .catalog-submit-form { width: 100%; }
.catalog-instagram-page .catalog-instagram-review-list { display: grid; gap: .8rem; }
.catalog-instagram-page .catalog-instagram-review-card { display: grid; gap: .6rem; font-size: .9rem; line-height: 1.65; overflow-wrap: anywhere; }
.catalog-instagram-page .catalog-entry-toolbar > .catalog-instagram-review { flex: 1 1 280px; }
@media(max-width:760px) {
    .catalog-instagram-page .catalog-instagram-story, .catalog-instagram-page .catalog-instagram-review-grid, .catalog-instagram-page .catalog-instagram-award { grid-template-columns: 1fr; }
}
@media(max-width:500px) {
    .catalog-instagram-page .catalog-hero .catalog-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .catalog-instagram-page .catalog-hero .catalog-stat:nth-child(odd) { border-inline-start: 0; padding-inline-start: 0; }
    .catalog-instagram-page .catalog-instagram-detail-hero { grid-template-columns: 1fr; }
    .catalog-instagram-page .catalog-instagram-emblem { display: none; }
}
@media(max-width:360px) {
    .catalog-instagram-page .catalog-instagram-categories .catalog-category-options { grid-template-columns: 1fr; }
}

/* Caption tools share the catalog's current theme, including inside its editor. */
.catalog-instagram-page .catalog-caption-composer { display: grid; gap: .75rem; }
.catalog-instagram-page .catalog-caption-composer [hidden] { display: none !important; }
.catalog-instagram-page .catalog-caption-tools, .catalog-instagram-page .catalog-caption-heading { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.catalog-instagram-page .catalog-caption-heading { justify-content: space-between; }
.catalog-instagram-page .catalog-caption-heading h3 { font-size: 1rem; letter-spacing: -.015em; }
.catalog-instagram-page .catalog-caption-preview, .catalog-instagram-page .catalog-caption-emojis { display: grid; gap: .85rem; min-width: 0; padding: 1rem; border: 1px solid var(--catalog-line); border-radius: .9rem; background: var(--catalog-soft); }
.catalog-instagram-page .catalog-caption-status:empty { display: none; }
.catalog-instagram-page .catalog-caption-emoji-filters { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: .65rem; }
.catalog-instagram-page .catalog-caption-emoji-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(44px,1fr)); gap: .35rem; max-height: 240px; overflow-y: auto; overscroll-behavior: contain; padding: .35rem; }
.catalog-instagram-page button.catalog-caption-emoji { display: grid; place-items: center; min-width: 44px; min-height: 44px; width: 100%; margin: 0; padding: .4rem; color: var(--ink); background: var(--panel-strong); border: 1px solid var(--catalog-line); border-radius: .55rem; box-shadow: none; font-family: 'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif; font-size: 1.45rem; line-height: 1.15; cursor: pointer; }
.catalog-instagram-page button.catalog-caption-emoji:hover { border-color: var(--ink); background: color-mix(in srgb,var(--brand-2) 15%,var(--panel-strong)); }
.catalog-instagram-page .catalog-caption-composer .catalog-action:disabled { opacity: .65; cursor: wait; }
@media(max-width:480px) {
    .catalog-instagram-page .catalog-caption-emoji-filters { grid-template-columns: 1fr; }
    .catalog-instagram-page .catalog-caption-tools > button { flex: 1 1 150px; }
    .catalog-instagram-page .catalog-caption-preview, .catalog-instagram-page .catalog-caption-emojis { padding: .8rem; }
}

/* One editable Instagram caption, with a metadata thumbnail before submission. */
.catalog-instagram-page .catalog-instagram-draft-preview{display:grid;justify-items:start;gap:.55rem;margin:0;padding:.85rem;border:1px solid var(--catalog-line);border-radius:.9rem;background:var(--catalog-soft)}
.catalog-instagram-page .catalog-instagram-draft-preview img{display:block;max-width:100%;width:auto;max-height:250px;object-fit:contain;border-radius:.65rem;background:var(--panel-strong)}
.catalog-instagram-page .catalog-instagram-emblem img{width:100%;height:100%;max-height:280px;object-fit:contain;border-radius:1rem}
