/* Shared six-role roster, themed to each existing OSMO page. */
.team-roster{--team-ink:#172b46;--team-copy:#53647a;--team-stroke:#d5e3f0;--team-fill:linear-gradient(140deg,#fff 35%,#f0f7ff);--team-accent:#1269cb;--team-pill:#e7f2ff;--team-shadow:rgba(16,70,130,.1);margin-top:64px;font-family:inherit;color:var(--team-ink)}
.team-roster-heading{max-width:790px;margin-bottom:30px}
.team-roster .team-roster-eyebrow{color:var(--team-accent);font-size:12px;font-weight:700;letter-spacing:.1em;line-height:1.6;margin:0 0 16px}
.team-roster #team-roles-title{font-family:inherit;font-size:clamp(26px,3.2vw,40px);font-weight:600;line-height:1.2;letter-spacing:-.035em;margin:0;color:var(--team-ink);overflow-wrap:break-word}
.team-roster .team-roster-intro{max-width:750px;font-size:17px;line-height:1.8;color:var(--team-copy);margin:20px 0 0}
.team-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.team-role{position:relative;min-width:0;padding:28px;border:1px solid var(--team-stroke);border-radius:20px;background:var(--team-fill);box-shadow:0 8px 30px -18px var(--team-shadow);transition:transform .25s,border-color .25s,box-shadow .25s}
.team-role-number{display:grid;place-items:center;width:39px;height:39px;border:1px solid var(--team-stroke);border-radius:11px;background:var(--team-pill);color:var(--team-accent);font-size:12px;font-weight:600;line-height:1;letter-spacing:.03em;margin-bottom:24px}
.team-roster .team-role h4{font-family:inherit;font-size:20px;font-weight:650;letter-spacing:-.025em;line-height:1.35;color:var(--team-ink);margin:0 0 14px;overflow-wrap:break-word}
.team-roster .team-role p{font-family:inherit;font-size:15px;line-height:1.8;color:var(--team-copy);margin:0}
.team-roster .team-roster-note{max-width:850px;font-family:inherit;font-size:14px;line-height:1.8;color:var(--team-copy);margin:24px 0 0}
.control-section .team-roster{--team-ink:#f2f7ff;--team-copy:#acbdd5;--team-stroke:#263d5a;--team-fill:linear-gradient(135deg,#11223b,#0a1425 80%);--team-accent:#8bc8ff;--team-pill:#153258;--team-shadow:rgba(0,0,0,.35);margin-top:42px}
.control-section .team-roster #team-roles-title{font-weight:700}.control-section .team-roster .team-role h4{font-weight:600}
@media(hover:hover) and (pointer:fine){.team-role:hover{transform:translateY(-5px);border-color:var(--team-accent);box-shadow:0 18px 35px -18px var(--team-shadow)}}
@media(max-width:1000px){.team-roles{grid-template-columns:repeat(2,minmax(0,1fr))}.team-role{padding:26px}}
@media(max-width:600px){.team-roster,.control-section .team-roster{margin-top:36px}.team-roster-heading{margin-bottom:24px}.team-roles{grid-template-columns:minmax(0,1fr);gap:14px}.team-role{padding:25px;border-radius:18px}.team-role-number{margin-bottom:20px}.team-roster .team-roster-intro{font-size:16px;line-height:1.75;margin-top:17px}.team-roster .team-role h4{font-size:21px}.team-roster .team-roster-eyebrow{font-size:11px;letter-spacing:.08em}.team-roster .team-roster-note{font-size:13px}}
@media(prefers-reduced-motion:reduce){.team-role{transition:none}.team-role:hover{transform:none}}
@media print{.team-roster,.control-section .team-roster{--team-ink:#172b46;--team-copy:#34465b;--team-fill:#fff;--team-stroke:#b4c4d3;--team-accent:#145fa9;--team-pill:#edf4fc}.team-role{break-inside:avoid;box-shadow:none}}
