.members-page{background:#08121d;min-height:100svh;font-family:"Noto Sans CJK SC","Source Han Sans SC","PingFang SC","Microsoft YaHei UI","Microsoft YaHei",system-ui,sans-serif}
.members-page [hidden]{display:none!important}
.members-page .masthead{background:#08121ded;backdrop-filter:blur(12px)}
.members-page main{max-width:1960px;margin:auto;padding:124px 4% 20px}
.member-instructors{padding-bottom:16px;margin-bottom:30px;border-bottom:1px solid #bfd7e325}
.member-instructors .member-card{display:flex;flex-direction:column;align-items:center;max-width:720px;margin:0 auto;text-align:center}
.member-instructors .member-top{flex-direction:column;gap:12px}
.member-instructors .member-name-block{flex:none}
.member-instructors .member-badges{justify-content:center}
.member-instructors .member-card>p{max-width:100%}
.member-instructors .member-specialty{margin:14px 0 5px}
#member-groups{--honors-width:clamp(360px,30vw,520px);--column-gap:clamp(28px,3vw,56px);position:relative}
#member-groups.has-honors:before{content:"";position:absolute;top:0;bottom:30px;right:calc(var(--honors-width) + var(--column-gap)/2);width:1px;background:#bfd7e325;pointer-events:none}
.member-year{padding:0 0 30px;scroll-margin-top:110px}
.member-year h2{font:500 25px/1.2 Arial,sans-serif;letter-spacing:-.035em;color:#d4e1e9;margin:0 0 10px;padding:0 0 14px;border-bottom:1px solid #bfd7e325}
.member-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:18px;row-gap:10px;align-items:start}
.has-honors>.member-year{display:grid;grid-template-columns:minmax(0,1fr) var(--honors-width);column-gap:var(--column-gap);align-items:start}
.has-honors>.member-year>h2{grid-column:1;grid-row:1}
.member-year-body{display:contents}
.has-honors .member-grid{grid-column:1;grid-row:2;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}
.team-honors{grid-column:2;grid-row:2;min-width:0;padding:16px 0}
.honors-list{list-style:none;padding:0;margin:0;display:grid;gap:16px}
.honor-item{font-size:16px;font-weight:600;line-height:1.9;color:#d1dfe8;overflow-wrap:anywhere}
.honor-award{color:#d7c59e;white-space:nowrap}
.member-card{position:relative;min-width:0;padding:16px;background:transparent;border:0;border-radius:10px;outline:1px solid transparent;outline-offset:-1px;transition:background-color .18s,outline-color .18s}
@media(hover:hover){.member-card:hover{background:#9ac4db09;outline-color:#a8d5e416}}
.member-card:focus-within{background:#9ac4db0d;outline-color:#a8d5e42b}
.member-top{display:flex;align-items:center;gap:13px;min-width:0}
.member-avatar{width:80px;height:80px;flex:none;display:grid;place-items:center;overflow:hidden;border-radius:10px;background:radial-gradient(circle at 27% 20%,hsl(var(--avatar-hue,195) 37% 30%),hsl(var(--avatar-hue,195) 30% 12%));color:#c9dce7;font:400 32px/1 Georgia,serif}
.member-avatar img{width:100%;height:100%;object-fit:cover}
.member-name-block{min-width:0;flex:1}
.member-name{font-size:24px;font-weight:500;line-height:1.4;letter-spacing:.015em;margin:0;color:#edf4f7;overflow-wrap:anywhere}
.member-badges{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.member-badge{font-size:14px;font-weight:700;line-height:1.35;padding:2px 6px;border-radius:3px;letter-spacing:.02em}
.member-badge.captain{color:#d6c08d;background:#c6a45816}
.member-badge.active{color:#9bd6ce;background:#6cbdaa14}
.member-badge.retired{color:#a5b4c0;background:#8b9cad14}
.member-badge.instructor{color:#b7d4e6;background:#8cb8d61a}
.member-badge.advisor{color:#d0c3e4;background:#a997c81a}
.member-specialty{font-size:14px;line-height:1.65;color:#b6cddc;margin:15px 0 5px;overflow-wrap:anywhere}
.member-bio{font-size:15px;font-weight:600;line-height:1.8;color:#b4c6d2;margin:0;overflow-wrap:anywhere}
.member-links{display:flex;gap:3px;flex-wrap:wrap;flex:none;align-self:flex-start;max-width:66px;margin:0 0 0 auto}
.member-link{width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:5px;color:#8eb4c8;transition:background-color .18s,color .18s}
.member-link:hover,.member-link:focus-visible{background:#b8dae518;color:#c7e8f2}
.member-link svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5}
.member-empty{grid-column:1/-1;font-size:12px;line-height:1.8;color:#8299aa;margin:0;padding:18px 16px 24px}
.roster-failure{font-size:13px;line-height:1.8;color:#adbdc8;padding:20px 0}
.members-footer{max-width:1960px;margin:auto;padding:0 4% 30px;color:#6f8799;font-size:10px;line-height:1.8;letter-spacing:.03em}
@media(max-width:1100px){
 #member-groups.has-honors:before{display:none}
 .has-honors>.member-year{display:block}
 .member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .member-year-body{display:block}
 .team-honors{margin:6px 16px 10px;padding:16px 0 6px}
 .honors-list{gap:10px}
}
@media(max-width:560px){
 .members-page main{padding:106px 6% 14px}
 .members-page .masthead nav{gap:22px}
 .member-year{padding-bottom:24px;scroll-margin-top:98px}
 .member-year h2{font-size:23px;padding-bottom:12px;margin-bottom:8px}
 .member-grid,.has-honors .member-grid{grid-template-columns:1fr;gap:5px}
 .member-card{padding:15px 12px}
 .member-instructors .member-specialty{margin:12px 0 5px}
 .member-link{width:32px;height:32px}
 .member-specialty{margin-top:12px}
 .team-honors{margin:6px 12px 12px}
 .members-footer{padding:0 6% 25px}
}
@media(prefers-reduced-motion:reduce){.members-page *{transition:none!important;scroll-behavior:auto!important}}
