[hidden] { display: none !important; }
.roster { padding-bottom: 64px; }
.roster-heading { padding: 32px 0 24px; }
.roster-heading h1 { font-size: clamp(40px, 6vw, 68px); margin: 12px 0; }
.roster-heading p { color: var(--muted); margin-bottom: 0; }
.roster-filters { max-width: 760px; padding: 24px; border: 1px solid var(--line); background: var(--panel); }
.filter-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.filter-row + .filter-row { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 10px; }
.filter-row button { padding: 14px 6px; min-height: 48px; color: var(--text); background: #111314; border: 1px solid #505252; font: 600 16px/1.4 Inter, Arial, sans-serif; cursor: pointer; }
.filter-row button:hover { border-color: var(--gold); }
.filter-row button[aria-pressed="true"] { background: var(--gold); color: #151515; border-color: var(--gold); }
.roster-count { margin: 24px 0 16px; color: var(--muted); font-size: 14px; }
.roster-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.enforcer-card { min-width: 0; border: 1px solid var(--line); background: var(--panel); }
.enforcer-card .card-art { height: 150px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 10px; background: linear-gradient(145deg, #302d25, #141617); border-bottom: 1px solid var(--line); }
.card-art .slot-number { font: 500 56px/1 'Barlow Condensed', Impact, sans-serif; color: var(--gold); }
.card-art .slot-label { color: var(--muted); font-size: 12px; letter-spacing: 2px; text-transform: uppercase; }
.enforcer-card .card-copy { padding: 20px; }
.enforcer-card h2 { font-size: 27px; line-height: 1.15; margin: 14px 0; }
.enforcer-card p { color: var(--muted); font-size: 14px; margin: 0; }
.card-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.card-tags span { border: 1px solid #555044; color: var(--gold); padding: 3px 8px; font-size: 12px; }
.roster .back { margin-top: 30px; }
@media (max-width: 950px) { .roster-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) {
  .roster-filters { padding: 12px; }
  .filter-row { gap: 6px; }
  .filter-row button { font-size: 14px; }
  .roster-grid { gap: 12px; }
  .enforcer-card .card-copy { padding: 14px; }
  .enforcer-card h2 { font-size: 23px; }
}
@media (max-width: 360px) { .roster-grid { grid-template-columns: minmax(0, 1fr); } }
