#research.publication-section {
  margin-top: 0;
  color: #302b25;
}

#research #publication-list { margin-top: 24px; }

#research #publication-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}
#research .publication-filter {
  border: 1px solid #dcd1bf;
  border-radius: 6px;
  padding: 8px 16px;
  background: #fcf8ef;
  color: #754b2a;
  font: 700 14px/1.4 'Lato', Verdana, sans-serif;
  cursor: pointer;
}
#research .publication-filter:hover { border-color: #9b3f60; }
#research .publication-filter[aria-pressed="true"] {
  border-color: #9b3f60;
  background: #9b3f60;
  color: #ffffff;
}
#research #publication-filter-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
#research #publication-filters[hidden],
#research .publication-card[hidden] { display: none; }

#research .publication-card {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  align-items: start;
  gap: 25px;
  margin: 0 0 18px;
  padding: 22px;
  border: 1px solid #dcd1bf;
  border-radius: 9px;
  background: #fcf8ef;
  transition: border-color .18s ease, box-shadow .18s ease;
}

#research .publication-card:hover {
  border-color: #d4adb9;
  box-shadow: 0 5px 18px rgba(48, 43, 37, .06);
}

#research .publication-card.is-selected {
  border-color: #d4adb9;
  border-left: 4px solid #9b3f60;
  padding-left: 19px;
}
#research .publication-award {
  display: inline-block;
  margin: 0 0 12px;
  padding: 5px 9px;
  border: 1px solid #e3bd61;
  border-radius: 4px;
  background: #fff5d9;
  color: #784900;
  font: 700 12px/1.5 'Lato', Verdana, sans-serif;
}
#research .publication-visual { display: block; align-self: center; text-align: center; }
#research .publication-image {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid #dcd1bf;
  border-radius: 5px;
  background: #fcf8ef;
}

#research .publication-image img {
  /* Anchor percentage heights to the thumbnail box, including in Safari. */
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#research .publication-image .publication-alternate {
  opacity: 0;
  transition: opacity .2s ease;
}

#research .publication-visual:hover .publication-alternate,
#research .publication-visual:focus .publication-alternate { opacity: 1; }
#research .publication-title { margin: 0 0 10px; font: 600 21px/1.3 Georgia, 'Times New Roman', serif; }
#research .publication-title a { color: #29261f; font: inherit; }
#research .publication-title a:hover { color: #9b3f60; }
#research .publication-authors { font: 14px/1.65 'Lato', Verdana, sans-serif; color: #302b25; }
#research .publication-authors a { font: inherit; }
#research .publication-authors strong { color: #302b25; font-size: inherit; }
#research .publication-authors strong a { font-weight: 700; }
#research .publication-authors p { margin: 0 0 5px; }
#research .publication-authors br { display: none; }
#research .publication-venue { margin: 9px 0 13px; font: 14px/1.4 'Lato', Verdana, sans-serif; color: #754b2a; }
#research .publication-venue b { color: inherit; font-size: inherit; font-weight: 700; }
#research .publication-links { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 0; }
#research .publication-links a { color: #9b3f60; font: 700 12px/1.5 'Lato', Verdana, sans-serif; letter-spacing: .035em; text-transform: uppercase; }
#research .publication-links a + a { margin-left: 12px; padding-left: 12px; border-left: 1px solid #dcd1bf; }
#research a:focus-visible,
#research .publication-filter:focus-visible { outline: 3px solid #9b3f60; outline-offset: 4px; }

@media (max-width: 680px) {
  #research .publication-card { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  #research .publication-visual { max-width: 360px; width: calc(100% - 2px); margin-inline: auto; }
  #research .publication-body { overflow-wrap: break-word; }
  #research .publication-filter { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  #research .publication-card, #research .publication-alternate { transition: none; }
}
