article.project-card { display:flex; flex-direction:column; min-width:0; border-bottom:1px solid var(--site-border); background:var(--site-surface); padding:0 0 26px; }
article.project-card[hidden] { display:none!important; }
.project-card__main:focus-visible { outline:3px solid var(--site-link); outline-offset:4px; }
.project-card__main { display:flex; flex-direction:column; flex:1; color:inherit; text-decoration:none!important; min-width:0; }
.project-card__papers { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:14px; font-size:14px; }
.project-card__papers a { color:var(--site-link); text-decoration:underline; text-underline-offset:3px; }
.project-card__year { font-size:13px; color:var(--site-muted); }
.research-section-title { margin:40px 0 24px!important; }
/* The research directory is a compact four-column catalog. Shared cards on
   the homepage and profiles retain their larger editorial layout. */
body:has(.research-directory--catalog) > .section { padding:28px 0 48px; }
body:has(.research-directory--catalog) > .hero.is-small .hero-body { padding:1.75rem 0 2rem; }
.research-directory--catalog .directory-toolbar { margin-bottom:24px; padding-bottom:18px; }
.research-directory--catalog .project-grid--catalog { grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px 20px; }
.research-directory--catalog article.project-card--catalog { border:1px solid var(--site-border); border-radius:7px; overflow:hidden; padding:0; }
.research-directory--catalog .project-card--catalog:hover { border-color:var(--site-link); }
.project-card--catalog .project-card__media { aspect-ratio:16/9; border:0; border-bottom:1px solid var(--site-border); border-radius:0; }
.project-card--catalog .project-card__media img { padding:6px; }
.project-card--catalog .project-card__body { padding:13px 14px 14px; gap:8px; }
.research-directory--catalog .project-card__title { font-size:17px; line-height:1.4; letter-spacing:-.015em; min-height:0; display:block; overflow:visible; overflow-wrap:break-word; text-wrap:pretty; }
.research-directory--catalog .project-card__description { font-size:13px!important; line-height:1.5; min-height:3em; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.project-card--catalog .project-card__papers { margin:0; padding:0 14px 14px; font-size:12px; line-height:1.4; gap:6px 12px; }
@media (max-width:1023px) { .research-directory--catalog .project-grid--catalog { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:799px) { .research-directory--catalog .project-grid--catalog { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px; } }
@media (max-width:479px) { .research-directory--catalog .project-grid--catalog { grid-template-columns:minmax(0,1fr); } }
.project-publications { padding:20px 24px; background:var(--site-soft); border-left:3px solid var(--brand-penn-red); margin-bottom:32px; }
.project-publications h2 { font-size:18px!important; margin:0 0 12px!important; }
.project-publications ul { list-style:none; margin:0; padding:0; }
.project-publications li+li { margin-top:16px; }
.project-publications li>span { display:block; margin-top:4px; font-size:14px; color:var(--site-muted); }
.person-card__initials { display:grid; place-items:center; aspect-ratio:1; font-size:36px; background:var(--site-soft); color:var(--site-heading); margin-bottom:14px; border-radius:4px; }
.course-index .columns { gap:24px; }
.course-index .column { flex:1 1 360px; max-width:100%; }

.course-entry { padding:30px 0; border-bottom:1px solid var(--site-border); }
.course-entry>a { display:grid; grid-template-columns:minmax(200px,340px) minmax(0,1fr); gap:36px; align-items:center; text-decoration:none!important; }
.course-entry img { display:block; width:100%; aspect-ratio:16/10; object-fit:contain; background:var(--site-soft); }
.course-entry h2 { margin:0 0 14px!important; color:var(--site-heading); font:650 clamp(21px,2vw,25px)/1.3 var(--font-sans); letter-spacing:-.025em; }
.course-entry p { color:var(--site-text); }
.course-entry span { font-size:14px; color:var(--site-link); }
@media (max-width:650px) { .course-entry>a { grid-template-columns:1fr; gap:20px; } }
