.institution-logos { display: flex; justify-content: center; margin: 0 auto 36px; }
.institution-logos a { display: flex; align-items: center; }
.institution-logos img { display: block; height: 120px; width: auto; }
.institution-logos a:focus-visible { outline: 2px solid #2860bb; outline-offset: 5px; }
@media (max-width: 700px) { .institution-logos img { height: 46px; } }

.content figure { margin: 1.5rem 0 0.5rem; }
.content figure img { width: 100%; border-radius: 8px; }
.content figcaption { font-style: italic; font-size: 0.95rem; color: #4a4a4a; text-align: left; }


/* Leaderboard */
.lb-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0.5rem 0 1rem; }
.lb-tabs button { font: inherit; font-size: 0.95rem; border: 1px solid #d1d5db; background: #fff; color: #363636; border-radius: 999px; padding: 6px 16px; cursor: pointer; }
.lb-tabs button[aria-selected="true"] { background: #363636; border-color: #363636; color: #fff; }
.lb-wrap { overflow-x: auto; border: 1px solid #e5e7eb; border-radius: 10px; max-height: 620px; overflow-y: auto; }
.content table.lb { margin: 0; font-size: 0.92rem; font-variant-numeric: tabular-nums; }
.content table.lb th { position: sticky; top: 0; background: #f8fafc; z-index: 1; cursor: pointer; white-space: nowrap; user-select: none; }
.content table.lb th[data-sort="asc"]::after { content: " ▲"; font-size: 0.7em; }
.content table.lb th[data-sort="desc"]::after { content: " ▼"; font-size: 0.7em; }
.content table.lb td, .content table.lb th { white-space: nowrap; padding: 6px 10px; border-color: #eef0f3; }
.content table.lb td.n, .content table.lb th.n { text-align: right; }
.content table.lb tr.baseline td { background: #fff8e6; font-weight: 600; }
.content table.lb td.neg { color: #c81e1e; }
.content table.lb td.pos { color: #157f3b; }
.content table.lb .bar { display: inline-block; height: 8px; border-radius: 4px; background: #3b6fd8; vertical-align: middle; margin-right: 8px; opacity: 0.75; }
.content table.lb .spark { vertical-align: middle; }
.lb-note { font-size: 0.85rem; color: #666; margin-top: 0.5rem; }

.roles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 1rem 0 1.5rem; }
.role { border: 1px solid #e5e7eb; border-radius: 10px; padding: 14px 16px; }
.role h4 { margin: 0 0 0.35rem !important; font-size: 1rem; }
.role p { margin: 0 !important; font-size: 0.92rem; color: #444; }
@media (max-width: 700px) { .roles { grid-template-columns: 1fr; } }

.code-soon { margin-top: 0.75rem; display: inline-block; padding: 8px 16px; border-radius: 999px; background: #fff4e5; color: #8a4b00; font-size: 0.95rem; }
.code-soon.pulse { animation: soon-pulse 0.6s ease; }
@keyframes soon-pulse { 0% { transform: scale(0.96); opacity: 0.4; } 100% { transform: scale(1); opacity: 1; } }
.code-soon[hidden] { display: none; }
