/* All athlete and team marks reserve their footprint before the image loads. */
.gname > img:not(.country-flag),.lhead > img:not(.country-flag),.hero-meta > img:not(.country-flag) {
  box-sizing:border-box; padding:2px; object-fit:contain; border-radius:5px; background:#f3f3f8;
}
.team-crest {
  --crest-size: 24px;
  --crest-font: 10px;
  position: relative;
  display: inline-grid;
  place-items: center;
  width: var(--crest-size);
  height: var(--crest-size);
  flex: 0 0 var(--crest-size);
  vertical-align: middle;
  border-radius: 24%;
  background: #39354b;
  color: #e6e0f5;
  font: 700 var(--crest-font)/1 var(--font);
}
[data-theme="light"] .team-crest { background: #e6e3ef; color: #433b57 }
.team-crest::before { content: attr(data-mark); grid-area: 1 / 1 }
.team-crest:has(img)::before { content: none }
.team-crest > img,
.t .team-crest > img,
.fteams .team-crest > img {
  display: block;
  grid-area: 1 / 1;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  object-fit: contain;
  padding: 2px;
  margin: 0;
  border-radius: inherit;
  background: #f3f3f8;
}
.slist a > .team-crest { --crest-size: 22px; grid-row: span 2 }
.slist .team-crest > img { grid-area: 1 / 1 }
.ht .team-title, .ht .team-title > a {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 6px;
}
.crest-table { --crest-size: 21px; --crest-font: 9px }
.crest-featured { --crest-size: 52px; --crest-font: 18px }
.crest-hero { --crest-size: 64px; --crest-font: 23px }
:is(.crest-featured, .crest-hero) > img { padding: 4px }
@media (max-width: 720px) {
  .t { gap: 5px }
  .t .team-crest { --crest-size: 20px; --crest-font: 9px }
  .crest-hero { --crest-size: 54px; --crest-font: 19px }
  .crest-featured { --crest-size: 44px; --crest-font: 15px }
}
