/* Contributor discovery and portfolios build on the shared Catalog.css controls. */
.contributors-page { --contributor-highlight: color-mix(in srgb,var(--brand-2) 18%,var(--panel-strong)); }
.contributors-page .contributor-filter-grid { grid-template-columns: repeat(4,minmax(0,1fr)) auto; }
.contributors-page .contributor-filter-note { grid-column: 1 / -1; font-weight: 400; }
.contributors-page .contributor-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.contributors-page .contributor-card { position: relative; display: flex; flex-direction: column; gap: 1rem; padding: 1.3rem; background: var(--panel-strong); border: 1px solid var(--catalog-line); border-radius: 1.2rem; transition: border-color .15s ease,transform .15s ease; }
.contributors-page .contributor-person-link { display: flex; align-items: center; gap: .85rem; text-decoration: none; }
.contributors-page .contributor-person-link::after { content: ''; position: absolute; inset: 0; border-radius: 1.2rem; }
.contributors-page .contributor-person-link:focus-visible { outline: none; }
.contributors-page .contributor-person-link:focus-visible::after { outline: 3px solid var(--ink); outline-offset: 4px; }
.contributors-page .contributor-avatar { width: 64px; height: 64px; flex: 0 0 64px; display: block; border-radius: 1rem; object-fit: cover; background: var(--catalog-soft); border: 1px solid var(--catalog-line); }
.contributors-page .contributor-avatar-fallback { display: grid; place-items: center; font-size: 1.65rem; font-weight: 850; color: var(--ink); }
.contributors-page .contributor-identity { display: grid; gap: .2rem; min-width: 0; }
.contributors-page .contributor-identity > strong { font-size: 1.13rem; line-height: 1.35; overflow-wrap: anywhere; }
.contributors-page .contributor-identity > span { font-size: .76rem; line-height: 1.5; color: var(--muted); overflow-wrap: anywhere; }
.contributors-page .contributor-count { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .55rem; padding-block: .1rem; }
.contributors-page .contributor-count > strong { font-size: 2.2rem; line-height: 1.1; font-weight: 850; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.contributors-page .contributor-count > span { font-size: .83rem; color: var(--muted); }
.contributors-page .contributor-count > small { display: block; width: 100%; font-size: .75rem; line-height: 1.6; color: var(--muted); }
.contributors-page .contributor-category-chips, .contributors-page .contributor-badge-chips { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.contributors-page .contributor-category-chip, .contributors-page .contributor-badge-chip { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 32px; max-width: 100%; padding: .35rem .55rem; border: 1px solid var(--catalog-line); border-radius: .55rem; background: var(--catalog-soft); font-size: .72rem; line-height: 1.45; font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.contributors-page .contributor-category-chip strong { font-variant-numeric: tabular-nums; }
.contributors-page .contributor-badge-chip { background: var(--contributor-highlight); }
.contributors-page .contributor-badge-chip > span { font-size: .94rem; }
.contributors-page .contributor-badge-more { position: relative; z-index: 1; display: inline-flex; min-height: 32px; align-items: center; padding: .3rem; font-size: .75rem; font-weight: 650; text-underline-offset: .2em; }
.contributors-page .contributor-card-dates { display: flex; flex-wrap: wrap; gap: .2rem .8rem; margin-block-start: auto; font-size: .73rem; line-height: 1.6; color: var(--muted); }
.contributors-page .contributor-card-dates:empty { display: none; }
.contributors-page .contributor-badge-guide { padding: 0; border: 1px solid var(--catalog-line); background: var(--panel-strong); border-radius: 1rem; }
.contributors-page .contributor-badge-guide summary { padding: 1.1rem 1.25rem; font-size: .93rem; font-weight: 700; cursor: pointer; }
.contributors-page .contributor-badge-guide-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.4rem; padding: 0 1.25rem 1.25rem; }
.contributors-page .contributor-badge-guide-grid h3 { font-size: .92rem; margin-block-end: .45rem; }
.contributors-page .contributor-badge-guide-grid p { color: var(--muted); font-size: .84rem; line-height: 1.65; }
.contributors-page .contributor-profile-hero { --contributor-hero-bg: var(--panel-strong); --contributor-hero-surface: var(--panel-strong); --contributor-hero-ink: var(--ink); --contributor-hero-muted: var(--muted); --contributor-hero-accent: var(--brand); --contributor-hero-secondary: var(--brand-2); position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1.5rem 2rem; align-items: center; overflow: hidden; padding: clamp(1.4rem,4vw,3rem); background: radial-gradient(ellipse at 100% 0%,color-mix(in srgb,var(--contributor-hero-secondary) 22%,transparent),transparent 70%),var(--contributor-hero-bg); color: var(--contributor-hero-ink); border: 1px solid color-mix(in srgb,var(--contributor-hero-ink) 20%,transparent); border-radius: 1.5rem; }
.contributors-page .contributor-theme-art { position: absolute; inset: 0 0 0 auto; width: 72%; height: 100%; z-index: -2; object-fit: cover; object-position: center; opacity: .26; pointer-events: none; }
.contributors-page .contributor-profile-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,var(--contributor-hero-bg) 0%,color-mix(in srgb,var(--contributor-hero-bg) 94%,transparent) 35%,color-mix(in srgb,var(--contributor-hero-bg) 70%,transparent) 100%); pointer-events: none; }
.contributors-page .contributor-profile-identity { display: flex; align-items: center; gap: 1.4rem; }
.contributors-page .contributor-profile-identity > div { display: grid; gap: .55rem; }
.contributors-page .contributor-profile-avatar { width: 112px; height: 112px; flex-basis: 112px; border-radius: 1.55rem; border: 2px solid color-mix(in srgb,var(--contributor-hero-ink) 25%,transparent); box-shadow: 0 8px 30px #0002; background: var(--contributor-hero-surface); color: var(--contributor-hero-ink); font-size: 2.8rem; }
.contributors-page .contributor-profile-hero .catalog-kicker, .contributors-page .contributor-profile-hero .contributor-profile-handle, .contributors-page .contributor-profile-hero .contributor-profile-dates { color: var(--contributor-hero-muted); }
.contributors-page .contributor-profile-hero h1 { font-size: clamp(1.7rem,4vw,3.1rem); letter-spacing: -.04em; }
.contributors-page .contributor-profile-handle { font-size: .87rem; overflow-wrap: anywhere; }
.contributors-page .contributor-profile-dates { display: flex; flex-wrap: wrap; gap: .3rem 1rem; font-size: .78rem; line-height: 1.6; }
.contributors-page .contributor-profile-theme { display: inline-flex; align-items: center; gap: .4rem; width: fit-content; border: 1px solid color-mix(in srgb,var(--contributor-hero-ink) 20%,transparent); background: color-mix(in srgb,var(--contributor-hero-bg) 75%,transparent); border-radius: 1rem; font-size: .7rem; line-height: 1.5; padding: .25rem .65rem; }
.contributors-page .contributor-profile-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.contributors-page .contributor-profile-hero .catalog-action { background: var(--contributor-hero-ink); border-color: var(--contributor-hero-ink); color: var(--contributor-hero-bg); }
.contributors-page .contributor-profile-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .9rem; }
.contributors-page .contributor-profile-stats .catalog-stat { background: var(--panel-strong); }
.contributors-page .contributor-badge-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .85rem; }
.contributors-page .contributor-badge-tile { display: flex; gap: .85rem; align-items: start; padding: 1.05rem; background: var(--panel-strong); border: 1px solid var(--catalog-line); border-radius: 1rem; text-decoration: none; }
.contributors-page .contributor-badge-icon { display: grid; place-items: center; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; font-size: 1.45rem; background: var(--contributor-highlight); border-radius: .8rem; }
.contributors-page .contributor-badge-tile > div { display: grid; gap: .4rem; }
.contributors-page .contributor-badge-tile h3 { font-size: .93rem; line-height: 1.45; }
.contributors-page .contributor-badge-tile p, .contributors-page .contributor-badge-tile small { color: var(--muted); font-size: .76rem; line-height: 1.65; }
.contributors-page .contributor-badge-tile small { font-size: .68rem; }
.contributors-page .contributor-category-nav { display: flex; flex-wrap: wrap; gap: .5rem; }
.contributors-page .contributor-category-nav .contributor-category-chip { min-height: 42px; gap: .65rem; padding: .55rem .85rem; font-size: .8rem; border-radius: .75rem; }
.contributors-page .contributor-category-chip[aria-current="page"] { background: var(--ink); color: var(--panel-strong); border-color: var(--ink); }
.contributors-page .contributor-entry-filter { grid-template-columns: minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto; }
.contributors-page .contributor-entry-filter .catalog-search-field { grid-column: auto; }
.contributors-page .contributor-entry-groups { display: grid; gap: 1.8rem; }
.contributors-page .contributor-entry-group { display: grid; gap: .85rem; }
.contributors-page .contributor-entry-group-heading { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }
.contributors-page .contributor-entry-group-heading h3 { font-size: 1.12rem; }
.contributors-page .contributor-entry-group .catalog-entry-copy h4 { margin: 0; font-size: 1.05rem; line-height: 1.45; overflow-wrap: anywhere; }
.contributors-page .contributor-entry-group .catalog-entry-copy h4 a { color: inherit; text-decoration: none; }
.contributors-page .contributor-entry-placeholder { display: grid; place-items: center; gap: .35rem; padding: 1rem; color: var(--muted); font-size: .82rem; }
.contributors-page .contributor-entry-placeholder > span { font-size: 2.5rem; }
.contributors-page .contributor-entry-group .catalog-entry-media img { object-fit: contain; }
.contributors-page .contributor-sound-preview { display: block; width: 100%; max-width: 100%; min-width: 0; }
.contributors-page .contributor-entry-group .catalog-entry-card { scroll-margin-top: 7rem; }
.contributors-page .contributor-entry-group .catalog-entry-card:target { outline: 3px solid var(--brand); outline-offset: 3px; }
@media (hover:hover) {
    .contributors-page .contributor-card:hover { border-color: var(--ink); transform: translateY(-2px); }
    .contributors-page .contributor-category-chip:hover, .contributors-page .contributor-badge-chip:hover, .contributors-page .contributor-badge-tile:hover { border-color: var(--ink); }
    .contributors-page .contributor-entry-group .catalog-entry-copy h4 a:hover { text-decoration: underline; text-underline-offset: .2em; }
}
@media (max-width:1100px) {
    .contributors-page .contributor-grid, .contributors-page .contributor-badge-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .contributors-page .contributor-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .contributors-page .contributor-filter-grid > button { grid-column: 1 / -1; justify-self: start; }
    .contributors-page .contributor-profile-hero { grid-template-columns: 1fr; }
    .contributors-page .contributor-profile-actions { padding-inline-start: calc(112px + 1.4rem); }
    .contributors-page .contributor-entry-filter { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .contributors-page .contributor-entry-filter .catalog-search-field { grid-column: 1 / -1; }
    .contributors-page .contributor-entry-filter > button { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width:700px) {
    .contributors-page .contributor-badge-guide-grid { grid-template-columns: 1fr; gap: 1rem; }
    .contributors-page .contributor-card { padding: 1.1rem; }
    .contributors-page .contributor-profile-identity { align-items: start; gap: 1rem; }
    .contributors-page .contributor-profile-avatar { width: 80px; height: 80px; flex-basis: 80px; border-radius: 1.1rem; }
    .contributors-page .contributor-profile-actions { padding-inline-start: 0; }
    .contributors-page .contributor-profile-stats { gap: .55rem; }
    .contributors-page .contributor-profile-stats .catalog-stat { padding: .85rem .7rem; }
    .contributors-page .contributor-filter-grid > button, .contributors-page .contributor-entry-filter > button { width: 100%; }
}
@media (max-width:520px) {
    .contributors-page .contributor-grid, .contributors-page .contributor-badge-grid, .contributors-page .contributor-filter-grid, .contributors-page .contributor-entry-filter { grid-template-columns: 1fr; }
    .contributors-page .contributor-profile-identity { flex-direction: column; }
    .contributors-page .contributor-profile-stats .catalog-stat-value { font-size: 1.65rem; }
    .contributors-page .contributor-profile-stats .catalog-stat-label { font-size: .75rem; }
    .contributors-page .contributor-category-nav .contributor-category-chip { font-size: .74rem; }
}
@media (prefers-reduced-motion:reduce) { .contributors-page .contributor-card { transition: none; transform: none !important; } }
