:root{--ink:#122d3d;--deep:#073b4b;--teal:#0b6677;--cyan:#49c7cf;--line:#d9e8ec;--muted:#5b7280}
*{box-sizing:border-box}
html{background:#ecf4f6}
body{margin:0;color:var(--ink);background:linear-gradient(180deg,#e8f2f5,#f7fafb 460px);font-family:Barlow,sans-serif}
button,input,select{font:inherit}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.roster-shell{width:min(100%,1900px);min-height:100vh;margin:auto;padding:0 clamp(16px,2.3vw,40px) 50px}
.roster-hero{position:relative;display:flex;align-items:end;justify-content:space-between;gap:24px;min-height:265px;margin:0 calc(-1*clamp(16px,2.3vw,40px));padding:34px clamp(22px,3vw,56px);overflow:hidden;color:#fff;background:linear-gradient(92deg,rgba(3,33,45,.96) 0%,rgba(4,58,73,.88) 48%,rgba(3,61,77,.34) 100%),url('../img/category-wave.png') center 44%/cover no-repeat}
.roster-hero:after{content:"";position:absolute;right:-4%;bottom:-125px;width:430px;height:430px;border:1px solid rgba(255,255,255,.2);border-radius:50%;box-shadow:0 0 0 48px rgba(255,255,255,.035),0 0 0 98px rgba(255,255,255,.025);pointer-events:none}
.roster-hero-copy,.roster-total{position:relative;z-index:1}
.roster-back{display:inline-block;margin-bottom:27px;color:#a9eff0;font:700 13px/1 Barlow,sans-serif;text-decoration:none}
.roster-back:hover{text-decoration:underline}
.roster-eyebrow{display:block;color:#9fe7ea;font:700 12px/1 Barlow,sans-serif;letter-spacing:.19em;text-transform:uppercase}
.roster-hero h1{margin:8px 0 0;font:italic 900 clamp(64px,8vw,126px)/.8 "Barlow Condensed",sans-serif;letter-spacing:-.025em;text-transform:uppercase}
.roster-hero p{margin:17px 0 0;color:#d8ecef;font-size:16px}
.roster-total{min-width:142px;padding:12px 4px 8px;text-align:right;border-top:2px solid var(--cyan);text-transform:uppercase}
.roster-total strong{display:block;font:900 clamp(50px,5vw,78px)/.85 "Barlow Condensed",sans-serif}
.roster-total span{display:block;margin-top:8px;color:#d7ecef;font:700 14px/1 "Barlow Condensed",sans-serif;letter-spacing:.08em}
.roster-controls{display:grid;grid-template-columns:minmax(260px,1fr) repeat(3,minmax(150px,210px));align-items:end;gap:12px;margin-top:21px;padding:16px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 12px 35px rgba(13,66,83,.055)}
.roster-search{display:flex;align-items:center;gap:7px;height:46px;padding:0 14px;border:1px solid #c8dce2;border-radius:7px;color:var(--teal);background:#f7fafb}
.roster-search>span:not(.sr-only){font-size:28px;line-height:1}
.roster-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:15px}
.roster-search input::placeholder{color:#708796}
.roster-select{display:block;min-width:0}
.roster-select span{display:block;margin-bottom:6px;color:#617986;font:800 11px/1 Barlow,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.roster-select select{width:100%;height:46px;padding:0 12px;border:1px solid #c8dce2;border-radius:7px;background:#fff;color:var(--ink);font-size:14px;font-weight:700}
.roster-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:25px 0 14px;color:#47616f;font:700 13px/1.2 Barlow,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.roster-meta span:first-child{color:var(--deep);font-size:15px}
.roster-notice{margin:0 0 16px;padding:12px 15px;border-left:3px solid #bd7c19;background:#fff5e5;color:#775420;font-size:14px}
.roster-notice[hidden]{display:none}
.riders-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.rider-card{min-width:0;overflow:hidden;border:1px solid #d5e5e9;border-radius:10px;background:#fff;box-shadow:0 9px 23px rgba(9,55,68,.07);transition:transform .18s ease,box-shadow .18s ease}
.rider-card:hover{transform:translateY(-3px);box-shadow:0 15px 30px rgba(9,55,68,.13)}
.rider-portrait{position:relative;aspect-ratio:4/4.55;overflow:hidden;background:#dce9ed}
.rider-portrait:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(3,28,39,.55));pointer-events:none}
.rider-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 28%}
.rank-badge{position:absolute;z-index:1;right:10px;bottom:10px;max-width:calc(100% - 20px);padding:7px 10px;border:1px solid rgba(255,255,255,.55);border-radius:4px;background:rgba(4,58,72,.92);color:#fff;font:800 15px/1 "Barlow Condensed",sans-serif;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 5px 15px rgba(0,0,0,.18)}
.rider-card-copy{padding:14px 15px 17px;border-top:3px solid var(--teal)}
.rider-card h2{margin:0;color:#123142;font:800 clamp(18px,1.35vw,24px)/1 "Barlow Condensed",sans-serif;text-transform:uppercase;overflow-wrap:anywhere}
.rider-card p{margin:7px 0 0;color:#5a7580;font:700 13px/1.15 Barlow,sans-serif}
.rider-categories{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}
.rider-categories span{padding:4px 6px;border-radius:3px;background:#e8f3f5;color:#265362;font:600 10px/1.15 Barlow,sans-serif}
.rider-categories b{font-weight:800}
.riders-empty{grid-column:1/-1;margin:0;padding:50px 20px;border:1px dashed #bdced5;border-radius:9px;background:#fff;text-align:center;color:var(--muted)}
@media(max-width:1450px){.riders-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1080px){.roster-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.roster-search{grid-column:1/-1}.riders-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.roster-hero{min-height:230px;align-items:start}.roster-hero h1{font-size:72px}.roster-total{min-width:90px}.roster-total strong{font-size:53px}.roster-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-search{grid-column:1/-1}.roster-sort{grid-column:1/-1}.riders-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rider-card-copy{padding:11px 10px 13px}.rider-card h2{font-size:19px}.rank-badge{right:6px;bottom:6px;padding:5px 7px;font-size:12px}}
@media(max-width:410px){.roster-shell{padding:0 10px 30px}.roster-hero{margin:0 -10px;padding:24px 16px;min-height:210px}.roster-hero h1{font-size:61px}.roster-hero p{font-size:12px}.roster-total strong{font-size:42px}.roster-total span{font-size:11px}.roster-controls{gap:9px;padding:10px}.roster-select select{font-size:12px}.riders-grid{gap:8px}.rider-portrait{aspect-ratio:1/1.2}.rider-card h2{font-size:17px}.roster-meta{font-size:11px}}
