/* Approved 05A rounded-rectangle directory; scoped to Who only. */
html{scroll-behavior:auto}
.who-main{color:#192820;font:400 16px/1.63 var(--sans);-webkit-font-smoothing:antialiased}
.who-main .wrap{width:min(1180px,calc(100% - 64px));margin-inline:auto;padding:0}
.who-main h1,.who-main h2,.who-main h3,.who-main p,.who-main figure{margin:0}
.who-main h1,.who-main h2,.who-main h3{font-family:var(--serif);font-weight:400;color:#192820}
.who-main .page-intro{padding:clamp(66px,7vw,112px) 0 50px}
.who-main .eyebrow{margin:0 0 19px;font:600 11px/1.4 var(--sans);letter-spacing:.15em;text-transform:uppercase;color:#536156}
.who-main h1{font-size:clamp(54px,6.5vw,96px);line-height:1.03;letter-spacing:-.035em}
.who-main h2{font-size:clamp(46px,5vw,66px);line-height:1.07;letter-spacing:-.028em}
.who-main .directory-section{padding-bottom:clamp(95px,9vw,140px)}
.who-main .directory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:clamp(19px,2.5vw,34px);row-gap:clamp(42px,4vw,63px)}
.who-main .directory-card{min-width:0}
.who-main .portrait-frame{margin:0;width:100%;aspect-ratio:3 / 4;overflow:hidden;position:relative;background:#d8d9d0;border:1px solid rgba(25,40,32,.08);border-radius:14px}
.who-main .portrait-frame img{display:block;width:100%;height:100%;object-fit:cover;max-width:100%;filter:none}
.who-main .card-copy{padding-top:20px}
.who-main .card-copy h2,.who-main .card-copy h3{font-size:clamp(26px,2.4vw,33px);line-height:1.06;letter-spacing:-.012em;margin-bottom:8px}
.who-main .card-copy p{font:400 15px/1.55 var(--sans);color:#3a473c;max-width:30ch}
.who-main .humans{background:#F6F3EE;padding-top:clamp(72px,7vw,103px);padding-bottom:clamp(80px,8vw,125px)}
.who-main .human-head{display:flex;gap:32px;align-items:end;justify-content:space-between;padding-bottom:42px}
.who-main .human-head h2{margin-top:4px}
.who-main .human-note{max-width:330px;color:#536156;font:400 14px/1.55 var(--sans)}
@media(max-width:1000px){.who-main .directory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.who-main .directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.who-main .human-head{display:block}.who-main .human-head h2{margin-bottom:20px}.who-main .page-intro{padding-top:64px}}
@media(max-width:500px){.who-main .wrap{width:calc(100% - 38px)}.who-main .page-intro{padding:43px 0 35px}.who-main h1{font-size:clamp(48px,12vw,62px)}.who-main h2{font-size:clamp(39px,10vw,54px)}.who-main .card-copy h2,.who-main .card-copy h3{font-size:clamp(23px,6vw,28px)}.who-main .directory-grid{column-gap:15px;row-gap:34px}.who-main .directory-section{padding-bottom:64px}.who-main .card-copy{padding-top:13px}.who-main .card-copy h2,.who-main .card-copy h3{margin-bottom:6px}.who-main .card-copy p{font-size:14px;line-height:1.47}.who-main .humans{padding-top:59px;padding-bottom:65px}.who-main .human-head{padding-bottom:31px}.who-main .human-note{font-size:13.5px}.who-main .portrait-frame{border-radius:10px}}
@media(max-width:350px){.who-main .wrap{width:calc(100% - 32px)}.who-main .directory-grid{column-gap:13px}.who-main .card-copy p{font-size:13.7px}}
@media print{.who-main .directory-card{break-inside:avoid}.who-main .portrait-frame{print-color-adjust:exact}}


/* Ben's floating portrait-to-story note; native disclosure remains the no-JS fallback. */
.who-main .human-directory{--portrait-columns:4;--portrait-gap:clamp(19px,2.5vw,34px)}
.who-main .human-profile{grid-column:auto}
.who-main .human-profile-trigger{display:block;width:100%;list-style:none;cursor:pointer;border-radius:14px;touch-action:manipulation}
.who-main .human-profile-trigger::-webkit-details-marker{display:none}
.who-main .human-profile-trigger:focus-visible{outline:2px solid #536156;outline-offset:6px}
.who-main .human-profile-trigger .portrait-frame,.who-main .human-profile-trigger .card-copy{display:block}
.who-main .human-name{display:block;text-align:center;font:400 clamp(26px,2.4vw,33px)/1.06 var(--serif);letter-spacing:-.012em;color:#192820;margin-bottom:8px}
.who-main .human-story{max-width:68ch;margin-top:24px;padding:clamp(20px,3vw,34px);border-radius:14px;background:#efe8db;color:#3a473c}
.who-main .human-story p{max-width:none;font:400 16px/1.7 var(--sans);overflow-wrap:break-word}
.who-main .human-story p+p{margin-top:1.1em}
.who-main .human-story-dismiss{display:none}
.who-main .human-profile-enhanced .human-story{position:fixed;z-index:30;max-width:none;margin:0;padding:38px clamp(22px,3vw,34px) 30px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;border-radius:28px 34px 26px 18px;background:#f0e9dc;box-shadow:0 12px 42px rgba(62,48,27,.12)}
.who-main .human-profile-enhanced .human-story-dismiss{display:block;position:sticky;top:0;float:right;width:40px;height:40px;margin:-28px -20px 0 8px;padding:0;border:0;border-radius:50%;background:#f0e9dc;color:#536156;font:400 26px/1 var(--sans);cursor:pointer;touch-action:manipulation}
.who-main .human-story:focus-visible{outline:2px solid #536156;outline-offset:-4px}
.who-main .human-story-dismiss:focus-visible{outline:2px solid #536156;outline-offset:-3px}
.who-main .human-profile-enhanced[open]>.human-story{animation:who-story-reveal 200ms ease-out}
@keyframes who-story-reveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1000px){.who-main .human-directory{--portrait-columns:3}}
@media(max-width:800px){.who-main .human-directory{--portrait-columns:2}}
@media(max-width:500px){.who-main .human-directory{--portrait-gap:15px}.who-main .human-profile-trigger{border-radius:10px}.who-main .human-name{font-size:clamp(23px,6vw,28px);margin-bottom:6px}.who-main .human-profile-enhanced .human-story{border-radius:22px 26px 20px 16px}}
@media(max-width:350px){.who-main .human-directory{--portrait-gap:13px}}
@media(prefers-reduced-motion:reduce){.who-main .human-profile-enhanced[open]>.human-story{animation:none}}



/* Ben's supplied portrait and childhood photograph share one stable frame. */
.who-main #ben-profile .portrait-frame{background:#F6F3EE}
.who-main #ben-profile .portrait-frame img{position:absolute;inset:0;object-fit:contain}
.who-main #ben-profile .portrait-frame .ben-portrait-child{object-fit:cover;visibility:hidden}
.who-main #ben-profile[open] .ben-portrait-adult{visibility:hidden}
.who-main #ben-profile[open] .ben-portrait-child{visibility:visible}


/* Keep the childhood photo above the biography on touch and narrow layouts. */
.who-main .human-profile-inline .human-story{position:static;width:auto;max-width:68ch;max-height:none;margin:24px 0 0;overflow:visible;overscroll-behavior:auto}

/* Name-only Returning Students: consistent 3:4 rounded frames until portraits are supplied.
   Initials are decorative, never substitute photographs or biography controls. */
.who-main .human-pending-profile .human-photo-placeholder{
  display:grid;place-items:center;
  background:#e8e6dd;
  border-color:rgba(25,40,32,.13);
}
.who-main .human-pending-profile .human-placeholder-initial{
  font:400 clamp(56px,6.6vw,96px)/1 var(--serif);
  color:#8d988a;
  line-height:1;
}

/* Lorena's supplied portrait and astrology alternate share one stable frame. */
.who-main #lorena-profile .portrait-frame{background:#F6F3EE;border:0}
.who-main #lorena-profile .portrait-frame img{position:absolute;inset:0;object-fit:contain;transition:opacity 200ms ease,visibility 200ms}
.who-main #lorena-profile .lorena-portrait-adult{opacity:1;visibility:visible}
.who-main #lorena-profile .portrait-frame .lorena-portrait-alternate{object-fit:contain;opacity:0;visibility:hidden}
.who-main #lorena-profile[open] .lorena-portrait-adult{opacity:0;visibility:hidden}
.who-main #lorena-profile[open] .portrait-frame .lorena-portrait-alternate{opacity:1;visibility:visible}
@media(hover:hover) and (pointer:fine){
  .who-main #lorena-profile .human-profile-trigger:hover .lorena-portrait-adult{opacity:0;visibility:hidden}
  .who-main #lorena-profile .human-profile-trigger:hover .lorena-portrait-alternate{opacity:1;visibility:visible}
}
@media(prefers-reduced-motion:reduce){.who-main #lorena-profile .portrait-frame img{transition:none}}


/* Narrow/touch Who: full-width biography overlays the following cards, not the grid flow.
   Desktop side-note and no-JavaScript native disclosure remain unchanged. */
.who-main .human-directory{position:relative}
.who-main .human-profile-overlay .human-story{
  position:absolute;
  left:calc(50% - 50vw + 12px);
  top:var(--who-story-top, 0px);
  width:calc(100vw - 24px);
  max-width:none;
  max-height:min(70vh, 560px);
  max-height:min(70dvh, 560px);
  margin:0;
  padding:clamp(22px,5vw,34px);
  z-index:40;
  overflow-y:auto;
  border-radius:20px 24px 20px 16px;
}
.who-main .human-profile-overlay .human-story-dismiss{display:none}

