.g8-roster__squad + .g8-roster__squad{margin-top:clamp(48px,7vw,96px)}
.g8-roster__squad-head{display:grid;gap:12px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--line)}
@media (min-width:1080px){.g8-roster__squad-head{grid-template-columns:1fr 1.3fr;align-items:end;gap:48px}}
.g8-roster__squad-name{font-size:clamp(1.8rem,4vw,3rem);font-weight:700;display:flex;flex-wrap:wrap;align-items:baseline;gap:14px}
.g8-roster__squad--proam .g8-roster__squad-name{color:var(--accent)}
.g8-roster__squad-name .g8-num{font-size:.8rem;font-weight:400;letter-spacing:.04em}
.g8-roster__squad-text{color:var(--text-2)}
.g8-roster__cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:0;padding:0;list-style:none}
@media (min-width:760px){.g8-roster__cards{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1080px){.g8-roster__cards{grid-template-columns:repeat(4,1fr)}}
.g8-driver{display:grid;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color .3s,transform .3s}
.g8-driver:hover{border-color:#35353b;transform:translateY(-2px)}
.g8-driver__media{position:relative;aspect-ratio:1;display:grid;place-items:center;background:radial-gradient(70% 70% at 50% 40%,var(--surface-2),var(--background));overflow:hidden}
.g8-driver__media picture,.g8-driver__media img{width:100%;height:100%;object-fit:cover}
.g8-driver__initials{font-family:var(--font-display);font-size:clamp(2rem,6vw,3.6rem);font-weight:700;color:#2c2c32;letter-spacing:-.04em}
.g8-roster__squad--proam .g8-driver__initials{color:color-mix(in srgb,var(--accent) 35%,#2c2c32)}
.g8-driver__number{position:absolute;top:12px;right:12px;padding:3px 9px;border-radius:999px;background:#000a;border:1px solid var(--line);font-size:.75rem;color:var(--text)}
.g8-driver__body{display:grid;gap:4px;padding:16px 18px 18px}
.g8-driver__name{font-weight:600;line-height:1.25}
.g8-driver__nick{color:var(--accent);font-size:.78rem}
.g8-driver__meta{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:6px;color:var(--muted);font-size:.8rem}
.g8-driver__meta span + span::before{content:"·";margin-right:10px;color:#3a3a40}
.g8-roster__pay{margin-top:clamp(56px,8vw,110px);display:grid;gap:20px}
.g8-roster__pay-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.g8-roster__pay-note{max-width:70ch}
.g8-roster tfoot td{padding:14px 18px;border-top:1px solid var(--line);font-weight:600}
.g8-roster tfoot tr + tr td{border-top:0;font-weight:400}
@media (max-width:559px){
    .g8-roster__cards{grid-template-columns:1fr;gap:10px}
    .g8-driver{grid-template-columns:96px 1fr;align-items:center}
    .g8-driver__media{height:100%;min-height:96px;aspect-ratio:auto}
    .g8-driver__initials{font-size:1.9rem}
    .g8-driver__number{top:6px;right:6px;font-size:.65rem;padding:2px 7px}
    .g8-driver__body{padding:14px 16px}
    .g8-driver__name{font-size:1.02rem}
    .g8-driver__meta{font-size:.8rem}
    .g8-roster .g8-table-wrap{overflow:visible;border:0;background:none}
    .g8-roster .g8-table thead{display:none}
    .g8-roster .g8-table tbody tr,.g8-roster .g8-table tfoot tr{display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:14px 16px;margin-bottom:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}
    .g8-roster .g8-table td{padding:0;border:0}
    .g8-roster .g8-table td[data-label]{display:flex;justify-content:space-between;gap:12px;grid-column:1/-1;text-align:left;font-size:.92rem}
    .g8-roster .g8-table td[data-label]::before{content:attr(data-label);font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-self:center}
    .g8-roster tfoot td{border-top:0}
    .g8-roster tfoot td[colspan]{grid-column:1/-1}
}
