.team-introduction { display:grid; grid-template-columns:minmax(200px,.6fr) minmax(0,1.4fr); align-items:center; gap:clamp(2rem,6vw,6rem); padding:clamp(3rem,7vw,6rem) clamp(1.25rem,7vw,8rem); background:linear-gradient(120deg,#11161c,#1c3552); color:white; }
.team-brand { max-width:330px; }
.team-introduction .section-label { color:#a9d4ff; }
.team-introduction h1 { font-size:clamp(3.5rem,7vw,6.5rem); margin-bottom:1.3rem; }
.team-introduction p { max-width:760px; color:#d5dce3; }
.team-introduction .team-lead { color:white; font-size:1.35rem; font-weight:600; margin-bottom:.5rem; }
.team-directory { padding:2rem clamp(1.25rem,7vw,8rem) clamp(4rem,7vw,7rem); background:#f1f5fa; }
.team-hint { color:var(--slate); font-size:.95rem; margin:0 0 2rem; }
.team-grid { display:grid; gap:clamp(1rem,2.2vw,2rem); }
.team-office { grid-template-columns:repeat(4,minmax(0,1fr)); }
.team-field { grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:2rem; }
.team-card { background:white; min-width:0; border-bottom:3px solid var(--accent); box-shadow:0 8px 24px #1734500c; }
.team-portrait { aspect-ratio:4/5; position:relative; background:#1c3552; }
.team-portrait > img,.profile-photo img { width:100%; height:100%; object-fit:cover; }
.team-portrait > img { position:absolute; inset:0; }
.team-photo-placeholder { display:flex; align-items:center; justify-content:center; height:100%; width:100%; font-family:'Barlow Condensed',Arial,sans-serif; font-size:7rem; background:linear-gradient(145deg,#1b3553,#2878d8); color:#ffffff75; }
.team-profile-button { position:absolute; inset:0; z-index:2; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:pointer; }
.team-profile-button:focus-visible { outline:4px solid white; outline-offset:-8px; }
.team-hover-bio { position:absolute; z-index:4; top:0; left:0; right:0; min-height:100%; max-height:75vh; overflow:auto; padding:1.4rem; background:#101e30fa; box-shadow:0 15px 30px #0003; color:white; opacity:0; pointer-events:none; transform:translateY(.5rem); transition:opacity .2s ease,transform .2s ease; cursor:pointer; }
.team-hover-bio p { margin:0; font-size:1rem; line-height:1.65; }
@media (hover:hover) and (pointer:fine) { .team-portrait:hover .team-hover-bio { opacity:1; transform:none; pointer-events:auto; } }
.team-portrait:focus-within .team-hover-bio { opacity:1; transform:none; pointer-events:auto; }
.team-caption { padding:1.2rem 1.3rem 1.4rem; }
.team-caption h2 { font-size:2.5rem; margin:0 0 .4rem; }
.team-caption p { margin:0; font-size:.9rem; line-height:1.45; color:var(--slate); }
.team-dialog { width:min(860px,calc(100% - 2rem)); max-height:calc(100dvh - 2rem); border:0; padding:0; color:var(--ink); background:white; overflow:auto; box-shadow:0 24px 80px #0005; }
.team-dialog[open] { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); }
.team-dialog::backdrop { background:#081423b8; }
.profile-photo { position:relative; min-height:440px; }
.profile-photo img { position:absolute; inset:0; }
.profile-copy { padding:3.5rem 2.2rem 2.5rem; align-self:center; }
.profile-copy h2 { font-size:3.7rem; margin-bottom:.6rem; }
#profile-role { color:var(--accent-deep); font-weight:600; margin:0 0 1.5rem; }
#profile-role:empty { display:none; }
#profile-bio { line-height:1.8; margin:0; }
.profile-close { position:absolute; z-index:3; top:.7rem; right:.7rem; height:44px; width:44px; border:1px solid #ccd7e3; background:white; color:var(--ink); font-size:2rem; border-radius:50%; cursor:pointer; }
.profile-close:focus-visible { outline:3px solid var(--accent); outline-offset:2px; }
.team-page nav a[aria-current=page] { color:var(--accent-deep); text-decoration:underline; text-underline-offset:.3rem; }
@media (max-width:1100px) { .team-office,.team-field { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .team-introduction { grid-template-columns:1fr; } .team-brand { width:180px; } .team-office,.team-field { gap:1rem; } .team-caption { padding:1rem; } .team-caption h2 { font-size:2rem; } .team-hint { font-size:.9rem; } .team-dialog[open] { display:block; } .profile-photo { height:280px; min-height:0; } .profile-photo img { object-position:center 30%; } .profile-copy { padding:2rem 1.5rem; } .team-hover-bio { display:none; } }
@media (max-width:380px) { .team-office,.team-field { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .team-hover-bio { transition:none; } }
