/* ==========================================================
   AISEL — PEOPLE / RESEARCH COMMUNITY
   Compact, animated research-lab directory
   ========================================================== */

#people.aisel-people{
  --p-ink:#111827;
  --p-navy:#101a30;
  --p-navy-2:#1b2946;
  --p-muted:#667085;
  --p-muted-2:#8b95a7;
  --p-line:#e4e8ef;
  --p-soft:#f6f8fb;
  --p-white:#fff;
  --p-blue:#315ee8;
  --p-blue-2:#6d88f3;
  --p-violet:#7658d6;
  --p-teal:#159a88;
  --p-green:#277144;
  --p-amber:#a86b12;
  --p-shadow:0 12px 32px rgba(16,24,40,.07);
  --p-shadow-hover:0 20px 46px rgba(16,24,40,.14);
  --p-ease:cubic-bezier(.22,.61,.36,1);

  position:relative;
  overflow:hidden;
  isolation:isolate;
  padding:0 0 78px;
  background:transparent;
  color:var(--p-ink);
}

#people.aisel-people *,
#people.aisel-people *::before,
#people.aisel-people *::after{box-sizing:border-box}

#people .people-shell{
  position:relative;
  z-index:2;
  width:min(1180px,calc(100% - 34px));
  margin:0 auto;
}

#people .people-noise{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.10;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.13'/%3E%3C/svg%3E")
}

#people .people-grid-lines{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.22;
  background-image:
    linear-gradient(rgba(49,94,232,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(49,94,232,.035) 1px,transparent 1px);
  background-size:46px 46px;
  mask-image:linear-gradient(to bottom,#000,transparent 72%);
}

#people .people-orb{
  position:absolute;
  z-index:0;
  border-radius:50%;
  pointer-events:none;
  filter:blur(2px);
  opacity:.15;
}

#people .people-orb-a{
  width:400px;
  height:400px;
  right:-240px;
  top:360px;
  background:radial-gradient(circle,#5a7cf1,transparent 68%);
  animation:peopleFloatA 13s ease-in-out infinite;
}

#people .people-orb-b{
  width:330px;
  height:330px;
  left:-210px;
  top:1020px;
  background:radial-gradient(circle,#7658d6,transparent 68%);
  animation:peopleFloatB 16s ease-in-out infinite;
}

@keyframes peopleFloatA{
  50%{transform:translate(-24px,22px) scale(1.06)}
}
@keyframes peopleFloatB{
  50%{transform:translate(20px,-26px) scale(.95)}
}

/* ==========================================================
   HERO
   ========================================================== */

#people .people-hero{
  position:relative;
  margin:0 calc((100vw - 100%)/-2) 42px;
  padding:58px max(22px,calc((100vw - 1180px)/2)) 54px;
  color:#fff;
  overflow:hidden;
  background:
    radial-gradient(circle at 78% 16%,rgba(103,132,245,.20),transparent 24%),
    radial-gradient(circle at 16% 92%,rgba(118,88,214,.13),transparent 25%),
    linear-gradient(135deg,var(--p-navy),var(--p-navy-2));
}

#people .people-hero::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.22;
  background-image:
    linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,#000,transparent);
}

#people .people-hero::after{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  right:9%;
  bottom:-175px;
  border:1px solid rgba(145,168,255,.20);
  border-radius:50%;
  box-shadow:0 0 0 28px rgba(145,168,255,.025),0 0 0 56px rgba(145,168,255,.018);
  animation:heroOrbit 12s linear infinite;
}

@keyframes heroOrbit{
  to{transform:rotate(360deg)}
}

#people .people-hero>*{
  position:relative;
  z-index:2;
}

#people .people-hero-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  max-width:1180px;
  margin:0 auto 38px;
}

#people .people-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:999px;
  background:rgba(255,255,255,.065);
  backdrop-filter:blur(12px);
  color:#e8edfa;
  font-size:9px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}

#people .people-eyebrow i{color:#9db2ff}

#people .people-status{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#cbd5e6;
  font-size:10px;
  font-weight:700;
}

#people .status-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#48d6ad;
  box-shadow:0 0 0 5px rgba(72,214,173,.09);
  animation:peoplePulse 2.4s ease-in-out infinite;
}

@keyframes peoplePulse{
  50%{box-shadow:0 0 0 8px rgba(72,214,173,0)}
}

#people .people-hero-copy{
  max-width:820px;
  margin:0 auto;
  text-align:center;
}

#people .people-hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin-bottom:14px;
  color:#b8c7e7;
  font-size:9px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
}

#people .kicker-line{
  width:28px;
  height:1px;
  background:#7f98dc;
}

#people .people-hero h1{
  margin:0;
  color:#fff;
  font-size:clamp(38px,5vw,62px);
  line-height:1.03;
  font-weight:800;
  letter-spacing:-.055em;
  text-wrap:balance;
}

#people .people-hero h1 span{
  color:#91a8ff;
}

#people .people-hero-copy>p{
  max-width:760px;
  margin:18px auto 0;
  color:#cbd4e4;
  font-size:13px;
  line-height:1.75;
  text-wrap:pretty;
}

#people .people-hero-meta{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:7px;
  margin:24px auto 0;
}

#people .people-hero-meta span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:999px;
  background:rgba(255,255,255,.055);
  color:#d9e1ef;
  font-size:9px;
  font-weight:700;
  transition:transform .25s ease,background .25s ease,border-color .25s ease;
}

#people .people-hero-meta span:hover{
  transform:translateY(-2px);
  border-color:rgba(145,168,255,.35);
  background:rgba(145,168,255,.09);
}

#people .people-hero-meta i{color:#9db2ff}

#people .people-hero-cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:20px auto 0;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:10px;
  background:rgba(255,255,255,.06);
  color:#e8edfa;
  font-size:9px;
  font-weight:800;
  text-decoration:none;
  transition:transform .25s ease,background .25s ease;
}

#people .people-hero-cta:hover{
  transform:translateY(-2px);
  background:rgba(255,255,255,.11);
}

#people .people-hero-cta i{
  color:#9db2ff;
  animation:ctaBounce 1.7s ease-in-out infinite;
}

@keyframes ctaBounce{
  50%{transform:translateY(3px)}
}

/* ==========================================================
   OVERVIEW
   ========================================================== */

#people .people-overview{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);
  gap:30px;
  align-items:stretch;
  margin-bottom:54px;
  padding:28px;
  border:1px solid var(--p-line);
  border-radius:20px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--p-shadow);
  backdrop-filter:blur(12px);
}

#people .overview-copy h2{
  max-width:650px;
  margin:9px 0 12px;
  color:var(--p-ink);
  font-size:clamp(24px,2.7vw,32px);
  line-height:1.15;
  letter-spacing:-.04em;
}

#people .overview-copy p{
  max-width:720px;
  margin:0 0 10px;
  color:var(--p-muted);
  font-size:12px;
  line-height:1.72;
}

#people .overview-callout{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:16px;
  padding:10px 12px;
  border:1px solid #e4e9f0;
  border-radius:11px;
  background:#fbfcfe;
  color:#59667a;
  font-size:10px;
  font-weight:650;
}

#people .overview-callout i{color:var(--p-blue)}

#people .overview-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}

#people .overview-stat{
  display:flex;
  min-height:108px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:14px;
  border:1px solid #e7ebf1;
  border-radius:15px;
  background:#fafbfd;
  text-align:center;
  transition:transform .35s var(--p-ease),box-shadow .35s ease,border-color .35s ease;
}

#people .overview-stat:hover{
  transform:translateY(-5px);
  border-color:#d5ddec;
  background:#fff;
  box-shadow:0 13px 28px rgba(17,24,39,.08);
}

#people .stat-icon{
  display:flex;
  width:32px;
  height:32px;
  align-items:center;
  justify-content:center;
  margin-bottom:8px;
  border-radius:10px;
  background:#edf2ff;
  color:var(--p-blue);
  font-size:12px;
}

#people .overview-stat strong{
  font-size:24px;
  line-height:1;
  font-weight:800;
  letter-spacing:-.04em;
  color:var(--p-ink);
}

#people .overview-stat>span:last-child{
  margin-top:6px;
  color:#7a8597;
  font-size:8px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}

/* ==========================================================
   DIRECTORY + FILTERS
   ========================================================== */

#people .people-directory{padding-bottom:0}

#people .directory-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}

#people .directory-heading h2{
  margin:6px 0 5px;
  color:var(--p-ink);
  font-size:30px;
  line-height:1.08;
  letter-spacing:-.04em;
}

#people .directory-heading p{
  max-width:760px;
  margin:0 auto;
  color:var(--p-muted);
  font-size:11px;
  line-height:1.65;
  text-align:justify;
  text-justify:inter-word;
}

#people .directory-heading{
  text-align:center;
}

#people .directory-heading > div:first-child{
  flex:1;
}

#people .directory-heading .directory-count{
  text-align:left;
}

#people .directory-count{
  display:flex;
  align-items:baseline;
  gap:6px;
  white-space:nowrap;
  color:#7a8495;
  font-size:9px;
  font-weight:700;
}

#people .directory-count strong{
  color:var(--p-ink);
  font-size:23px;
  letter-spacing:-.03em;
}

#people .directory-tools{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:34px;
  padding:8px;
  border:1px solid #e1e6ee;
  border-radius:14px;
  background:rgba(255,255,255,.84);
  box-shadow:0 7px 20px rgba(17,24,39,.04);
  position:sticky;
  top:76px;
  z-index:30;
  backdrop-filter:blur(16px);
}

#people .people-filters{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

#people .people-filter{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:32px;
  padding:0 10px;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:#697488;
  font:700 9px/1 var(--font-sans,Arial,sans-serif);
  cursor:pointer;
  transition:all .25s ease;
}

#people .people-filter:hover{
  background:#f1f4f9;
  color:var(--p-ink);
}

#people .people-filter.is-active{
  border-color:#dbe3f4;
  background:#edf2ff;
  color:#2e58d7;
  box-shadow:0 3px 10px rgba(49,94,232,.08);
}

#people .people-search{
  display:flex;
  min-width:min(330px,40vw);
  height:34px;
  align-items:center;
  gap:8px;
  padding:0 9px;
  border:1px solid #e0e5ec;
  border-radius:9px;
  background:#fff;
  color:#8b95a6;
  transition:border-color .25s ease,box-shadow .25s ease;
}

#people .people-search:focus-within{
  border-color:#b9c7ec;
  box-shadow:0 0 0 4px rgba(49,94,232,.07);
}

#people .people-search input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--p-ink);
  font:500 10px var(--font-sans,Arial,sans-serif);
}

#people .people-search input::placeholder{color:#9aa3b1}

#people .people-search kbd{
  display:inline-flex;
  align-items:center;
  padding:3px 5px;
  border:1px solid #e5e8ee;
  border-radius:5px;
  background:#f8f9fb;
  color:#9aa2af;
  font:600 8px var(--font-mono,monospace);
  white-space:nowrap;
}

/* ==========================================================
   GROUPS
   ========================================================== */

#people .people-group{margin-bottom:54px}
#people .people-group-alumni{margin-bottom:0}

#people .group-heading{
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:22px;
  align-items:start;
  margin-bottom:17px;
}

#people .group-label{
  display:flex;
  align-items:center;
  gap:8px;
}

#people .group-number{
  display:inline-flex;
  width:27px;
  height:27px;
  align-items:center;
  justify-content:center;
  border:1px solid #dfe5ee;
  border-radius:8px;
  background:#fff;
  color:#8791a1;
  font:700 8px var(--font-mono,monospace);
}

#people .section-kicker{
  display:inline-flex;
  align-items:center;
  color:#6c778b;
  font-size:8px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}

#people .group-heading h3{
  margin:0 0 6px;
  color:var(--p-ink);
  font-size:21px;
  line-height:1.15;
  letter-spacing:-.035em;
  text-align:center;
}

#people .group-heading p{
  max-width:760px;
  margin:0 auto;
  color:var(--p-muted);
  font-size:10.5px;
  line-height:1.65;
  text-align:justify;
  text-justify:inter-word;
}

#people .people-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}

#people .people-feature-grid{
  display:grid;
  grid-template-columns:minmax(0,860px);
  justify-content:center;
}

/* ==========================================================
   COMPACT CARDS
   ========================================================== */

#people .person-card{
  --lift:0px;
  --rx:0deg;
  --ry:0deg;
  position:relative;
  display:flex;
  min-width:0;
  min-height:360px;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #e1e6ed;
  border-radius:18px;
  background:rgba(255,255,255,.97);
  box-shadow:0 9px 24px rgba(17,24,39,.055);
  transform:perspective(1100px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(var(--lift));
  transform-style:preserve-3d;
  transition:
    transform .42s var(--p-ease),
    box-shadow .42s ease,
    border-color .3s ease;
}

#people .person-card:hover,
#people .person-card.is-focused{
  --lift:-6px;
  border-color:#cfd8e8;
  box-shadow:var(--p-shadow-hover);
}

#people .person-card-feature{
  min-height:305px;
}

#people .card-accent{
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  z-index:8;
  background:linear-gradient(90deg,var(--p-blue),var(--p-violet),var(--p-teal));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .45s var(--p-ease);
}

#people .person-card:hover .card-accent{transform:scaleX(1)}

#people .card-glow{
  position:absolute;
  width:220px;
  height:220px;
  left:var(--mx,50%);
  top:var(--my,25%);
  z-index:0;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,rgba(49,94,232,.14),transparent 68%);
  opacity:0;
  transition:opacity .35s ease;
  pointer-events:none;
}

#people .person-card:hover .card-glow{opacity:1}

#people .card-shine{
  position:absolute;
  inset:0;
  z-index:10;
  pointer-events:none;
  background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.48) 49%,transparent 68%);
  transform:translateX(-135%);
}

#people .person-card:hover .card-shine{
  animation:peopleShine .8s ease;
}

@keyframes peopleShine{
  to{transform:translateX(135%)}
}

#people .person-badge{
  position:absolute;
  top:11px;
  right:11px;
  z-index:12;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:6px 8px;
  border:1px solid rgba(0,0,0,.035);
  border-radius:999px;
  font-size:7.5px;
  font-weight:800;
  white-space:nowrap;
  transition:transform .25s ease;
}

#people .person-card:hover .person-badge{transform:translateY(-2px)}

#people .director-badge{background:#edf2ff;color:#2d59d9}
#people .senior-badge{background:#f1ecff;color:#6946c7}
#people .researcher-badge{background:#e9f8f4;color:#117c6e}
#people .assistant-badge{background:#fff4df;color:#9a620f}
#people .collaborator-badge{background:#eaf8ee;color:#277144}
#people .alumni-badge{background:#fff4df;color:#94600e}

#people .person-avatar{
  position:relative;
  z-index:3;
  display:flex;
  width:84px;
  height:84px;
  flex:0 0 84px;
  align-items:center;
  justify-content:center;
  margin:31px auto 12px;
  overflow:hidden;
  border:3px solid #fff;
  border-radius:50%;
  background:linear-gradient(135deg,#dce5ff,#eef2ff);
  box-shadow:0 9px 22px rgba(17,24,39,.12);
  color:#345bd5;
  font-size:22px;
  font-weight:800;
  letter-spacing:-.06em;
  transition:transform .4s var(--p-ease),box-shadow .4s ease;
}

#people .person-card:hover .person-avatar{
  transform:translateY(-4px) scale(1.035);
  box-shadow:0 15px 28px rgba(17,24,39,.16);
}

#people .person-avatar::before{
  content:"";
  position:absolute;
  inset:-6px;
  border:1px solid rgba(49,94,232,.24);
  border-radius:50%;
  animation:avatarRing 9s linear infinite;
  pointer-events:none;
}

@keyframes avatarRing{
  to{transform:rotate(360deg)}
}

#people .person-avatar img{
  position:absolute;
  inset:0;
  z-index:2;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  background:linear-gradient(135deg,#dce5ff,#eef2ff);
}

/* Initials shown behind the <img>; if a photo is missing/broken the
   image element is hidden via onerror and these initials remain visible,
   so every profile always has something to display. */
#people .avatar-initials{
  position:relative;
  z-index:1;
}

#people .person-content{
  display:flex;
  flex:1;
  min-height:0;
  flex-direction:column;
  align-items:center;
  padding:0 15px 10px;
  text-align:center;
}

#people .person-content h3{
  margin:0;
  color:var(--p-ink);
  font-size:15.5px;
  line-height:1.18;
  letter-spacing:-.025em;
  text-wrap:balance;
}

#people .person-overline{
  margin:0 0 5px;
  color:#7b8596;
  font-size:7.5px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}

#people .person-role{
  margin:4px 0 0;
  color:var(--p-blue);
  font-size:9.5px;
  line-height:1.35;
  font-weight:750;
}

#people .person-affiliation{
  min-height:25px;
  margin:4px 0 0;
  color:#7a8596;
  font-size:8.5px;
  line-height:1.45;
}

#people .person-affiliation i{
  margin-right:3px;
  color:#98a1b0;
}

#people .person-tags{
  display:flex;
  max-height:46px;
  overflow:hidden;
  flex-wrap:wrap;
  justify-content:center;
  gap:4px;
  margin:9px 0 7px;
}

#people .person-tags span{
  display:inline-flex;
  min-height:19px;
  align-items:center;
  padding:3px 6px;
  border:1px solid #e3e8ef;
  border-radius:999px;
  background:#f8fafc;
  color:#647084;
  font-size:7px;
  line-height:1;
  font-weight:750;
  transition:all .2s ease;
}

#people .person-tags span:hover{
  border-color:#ccd8f1;
  background:#eef3ff;
  color:#315bd9;
  transform:translateY(-1px);
}

#people .person-bio{
  width:100%;
  margin:0;
  color:#667286;
  font-size:8.8px;
  line-height:1.55;
  text-align:justify;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  overflow:hidden;
}

#people .person-content .person-bio{text-align:justify}

#people .person-main{
  display:grid;
  grid-template-columns:84px minmax(0,1fr);
  gap:22px;
  align-items:center;
  padding:26px 28px 13px;
}

#people .person-main .person-avatar{
  margin:0;
}

#people .person-info{min-width:0}

#people .person-info h3{
  margin:3px 0 5px;
  color:var(--p-ink);
  font-size:24px;
  line-height:1.06;
  letter-spacing:-.04em;
}

#people .person-info .person-role{
  font-size:10px;
}

#people .person-info .person-affiliation{
  min-height:0;
}

#people .person-card-feature>.person-bio{
  max-width:800px;
  margin:0 28px 13px;
  color:#5e6b7f;
  font-size:10px;
  line-height:1.6;
  -webkit-line-clamp:2;
}

#people .person-footer{
  position:relative;
  z-index:13;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:auto;
  padding:9px 13px;
  border-top:1px solid #edf0f4;
  background:linear-gradient(to bottom,#fff,#fbfcfe);
}

#people .person-card-feature .person-footer{
  margin:0 28px;
  padding-left:0;
  padding-right:0;
}

#people .profile-more{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:0;
  background:transparent;
  padding:4px 0;
  color:#44526b;
  font:750 8.5px var(--font-sans,Arial,sans-serif);
  cursor:pointer;
  transition:color .2s ease,gap .2s ease;
}

#people .profile-more i{
  color:var(--p-blue);
  font-size:8px;
  transition:transform .25s ease;
}

#people .profile-more:hover{
  color:var(--p-blue);
  gap:9px;
}

#people .profile-more:hover i{transform:translateX(2px)}

#people .person-links{
  display:flex;
  align-items:center;
  gap:4px;
}

#people .person-links a{
  display:flex;
  width:25px;
  height:25px;
  align-items:center;
  justify-content:center;
  border:1px solid #e3e8ef;
  border-radius:7px;
  background:#fff;
  color:#7d8797;
  font-size:9px;
  text-decoration:none;
  transition:all .22s ease;
}

#people .person-links a:hover{
  border-color:#cad7f2;
  background:#edf2ff;
  color:var(--p-blue);
  transform:translateY(-2px);
}

/* ==========================================================
   FILTER / REVEAL
   ========================================================== */

#people .people-card.is-hidden{display:none}
#people .people-group.is-empty{display:none}

#people .people-empty{
  margin:15px 0 45px;
  padding:40px 18px;
  border:1px dashed #d7dde7;
  border-radius:18px;
  background:#fbfcfe;
  text-align:center;
}

#people .empty-icon{
  display:flex;
  width:42px;
  height:42px;
  align-items:center;
  justify-content:center;
  margin:0 auto 11px;
  border-radius:12px;
  background:#eef2f8;
  color:#7b8798;
}

#people .people-empty h3{
  margin:0;
  color:var(--p-ink);
  font-size:15px;
}

#people .people-empty p{
  margin:7px 0 0;
  color:#7b8596;
  font-size:10px;
}

#people .people-reveal{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .7s ease,transform .7s var(--p-ease);
}

#people .people-reveal.is-visible{
  opacity:1;
  transform:none;
}

#people .people-group .people-card{
  opacity:0;
  transform:translateY(16px);
}

#people .people-group.is-visible .people-card{
  opacity:1;
  transform:perspective(1100px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(var(--lift));
  transition:
    opacity .55s ease,
    transform .55s var(--p-ease),
    box-shadow .42s ease,
    border-color .3s ease;
}

#people .people-group.is-visible .people-card:nth-child(1){transition-delay:.03s}
#people .people-group.is-visible .people-card:nth-child(2){transition-delay:.08s}
#people .people-group.is-visible .people-card:nth-child(3){transition-delay:.13s}
#people .people-group.is-visible .people-card:nth-child(4){transition-delay:.18s}

/* ==========================================================
   MODAL
   ========================================================== */

#people .people-modal{
  width:min(620px,calc(100% - 24px));
  max-width:620px;
  padding:0;
  border:0;
  border-radius:20px;
  background:transparent;
  box-shadow:0 35px 90px rgba(0,0,0,.24);
  color:var(--p-ink);
}

#people .people-modal[open]{
  animation:modalIn .32s var(--p-ease) both;
}

@keyframes modalIn{
  from{opacity:0;transform:translateY(12px) scale(.97)}
  to{opacity:1;transform:none}
}

#people .people-modal::backdrop{
  background:rgba(7,13,27,.62);
  backdrop-filter:blur(5px);
}

#people .modal-shell{
  position:relative;
  padding:26px;
  background:#fff;
  border:1px solid rgba(255,255,255,.8);
  border-radius:20px;
  overflow:hidden;
}

#people .modal-shell::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:4px;
  background:linear-gradient(90deg,var(--p-blue),var(--p-violet),var(--p-teal));
  background-size:200% 100%;
  animation:modalGradient 4s linear infinite;
}

@keyframes modalGradient{
  to{background-position:200% 0}
}

#people .modal-close{
  position:absolute;
  top:15px;
  right:15px;
  width:31px;
  height:31px;
  border:1px solid #e2e7ef;
  border-radius:9px;
  background:#fff;
  color:#7a8494;
  cursor:pointer;
  transition:all .2s ease;
}

#people .modal-close:hover{
  border-color:#cbd6ea;
  background:#eef2ff;
  color:var(--p-blue);
  transform:rotate(5deg);
}

#people .modal-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding-right:42px;
}

#people .modal-badge{
  display:inline-flex;
  padding:6px 9px;
  border-radius:999px;
  background:#eef2ff;
  color:#315bd9;
  font-size:8px;
  font-weight:800;
}

#people .modal-kicker{
  color:#9099a8;
  font:700 8px var(--font-mono,monospace);
  letter-spacing:.12em;
  text-transform:uppercase;
}

#people .modal-profile-head{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  gap:15px;
  align-items:center;
  margin-top:18px;
}

#people .modal-avatar{
  display:flex;
  width:72px;
  height:72px;
  align-items:center;
  justify-content:center;
  border:3px solid #fff;
  border-radius:50%;
  background:linear-gradient(135deg,#dce5ff,#eef2ff);
  box-shadow:0 10px 25px rgba(17,24,39,.13);
  color:#315bd9;
  font-size:19px;
  font-weight:800;
}

#people .modal-profile-head h2{
  margin:0;
  color:var(--p-ink);
  font-size:24px;
  line-height:1.08;
  letter-spacing:-.04em;
}

#people .modal-profile-head p{
  margin:4px 0 0;
  color:#6e7889;
  font-size:10px;
  line-height:1.45;
}

#people .modal-profile-head p:first-of-type{
  color:var(--p-blue);
  font-weight:750;
}

#people .modal-divider{
  height:1px;
  margin:20px 0 15px;
  background:#e9edf2;
}

#people .modal-bio{
  margin:0;
  color:#5f6c80;
  font-size:10.5px;
  line-height:1.75;
}

#people .modal-tags{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:15px;
}

#people .modal-tags span{
  padding:5px 7px;
  border:1px solid #e1e6ee;
  border-radius:999px;
  background:#f8fafc;
  color:#647084;
  font-size:8px;
  font-weight:750;
}

#people .modal-actions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid #edf0f4;
}

#people .modal-actions a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 9px;
  border:1px solid #e0e5ec;
  border-radius:9px;
  background:#fff;
  color:#5c687b;
  font-size:8.5px;
  font-weight:750;
  text-decoration:none;
  transition:all .2s ease;
}

#people .modal-actions a:hover{
  border-color:#cbd7ef;
  background:#eef3ff;
  color:var(--p-blue);
  transform:translateY(-2px);
}

body.people-modal-open{overflow:hidden}

/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media(max-width:1100px){
  #people .people-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  #people .people-overview{grid-template-columns:1fr}
}

@media(max-width:900px){
  #people .people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  #people .group-heading{grid-template-columns:1fr;gap:8px}
  #people .directory-tools{
    position:relative;
    top:auto;
    flex-direction:column;
    align-items:stretch;
  }
  #people .people-search{
    min-width:0;
    width:100%;
  }
}

@media(max-width:620px){
  #people .people-shell{width:calc(100% - 20px)}
  #people .people-hero{
    padding:48px 18px 45px;
    margin-left:-10px;
    margin-right:-10px;
  }
  #people .people-hero-topline{
    align-items:flex-start;
    flex-direction:column;
    margin-bottom:32px;
  }
  #people .people-hero h1{font-size:40px}
  #people .people-hero-copy>p{font-size:12px}
  #people .people-overview{
    padding:22px;
    border-radius:17px;
    margin-bottom:42px;
  }
  #people .overview-stats{grid-template-columns:repeat(2,1fr)}
  #people .overview-stat{min-height:94px}
  #people .directory-heading{
    align-items:flex-start;
    flex-direction:column;
    gap:9px;
  }
  #people .people-filters{
    display:grid;
    width:100%;
    grid-template-columns:repeat(2,1fr);
  }
  #people .people-filter{justify-content:center}
  #people .people-grid{grid-template-columns:1fr}
  #people .person-card{min-height:340px}
  #people .person-main{
    grid-template-columns:1fr;
    text-align:center;
    padding:24px 20px 12px;
  }
  #people .person-main .person-avatar{margin:0 auto}
  #people .person-info{text-align:center}
  #people .person-card-feature>.person-bio{margin:0 20px 12px}
  #people .person-card-feature .person-footer{margin:0 20px}
  #people .modal-shell{padding:22px 18px}
}

@media(max-width:390px){
  #people .people-hero h1{font-size:36px}
  #people .overview-stats{grid-template-columns:1fr}
  #people .people-filters{grid-template-columns:1fr}
  #people .people-search kbd{display:none}
}

@media(prefers-reduced-motion:reduce){
  #people *,
  #people *::before,
  #people *::after{
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
  #people .people-reveal,
  #people .people-group .people-card{
    opacity:1!important;
    transform:none!important;
  }
}
