.home-keywords {
    font-size: var(--size-body);
    font-weight: var(--weight-body);
}

.home-keywords .kw {
    white-space: nowrap;
}

.home-contact {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-contact);
    margin: 0;
    padding: 0;
    list-style: none;
}

.home-contact li {
    font-size: var(--size-body);
}

.pub-cards,
.talk-cards {
    display: grid;
}

.pub-card,
.talk-card {
    padding: var(--space-row) 0;
    border-bottom: 1px solid var(--divider-color);
}

.pub-card p,
.talk-card p {
    margin: 0;
    max-width: none;
    line-height: var(--line-list);
}

.pub-title {
    font-weight: var(--weight-heading);
}

.pub-authors,
.pub-citation,
.pub-translated {
    color: var(--meta-color);
    font-size: var(--size-small);
}

.pub-authors strong {
    color: var(--text-color-high-contrast);
}

.pub-card .pub-summary {
    margin-top: var(--space-item);
    font-size: var(--size-small);
}

.pub-card .pub-badges,
.talk-card .pub-badges {
    margin-top: var(--space-item);
}

.row-label {
    font-family: var(--font-label);
    font-size: var(--size-label);
    color: var(--meta-color);
}

.badge {
    font-family: var(--font-label);
    font-size: var(--size-label);
    border: 1px solid var(--primary-color);
    border-radius: var(--radius-badge);
    padding: var(--space-badge);
    text-decoration: none;
}

/* Type and spacing. */
main p {
    line-height: var(--line-body);
    max-width: var(--measure);
}

main li {
    line-height: var(--line-list);
    max-width: var(--measure);
}

main li + li {
    margin-top: var(--space-item);
}

main h2 {
    margin-top: var(--space-section);
    margin-bottom: var(--space-heading);
    font-size: var(--size-h2);
    font-weight: var(--weight-heading);
    line-height: var(--line-heading);
}

main h3 {
    font-size: var(--size-h3);
    font-weight: var(--weight-heading);
    line-height: var(--line-heading);
}

/* The same three ids as tabi's rule, so this one wins. */
#banner-container-home #home-banner-text #home-banner-header {
    font-size: var(--size-name);
    font-weight: var(--weight-name);
    line-height: var(--line-heading);
    color: var(--text-color-high-contrast);
}

/* Contribution rows and tags. */
.contrib-rows ul {
    padding-inline-start: 0;
    list-style: none;
}

.contrib-rows li {
    padding: var(--space-item) 0;
    border-bottom: 1px solid var(--divider-color);
}

.contrib-rows li + li {
    margin-top: 0;
}

.tag {
    display: inline-block;
    margin-inline-end: var(--space-tag);
    border: 1px solid var(--divider-color);
    border-radius: var(--radius-badge);
    padding: var(--space-badge);
    color: var(--meta-color);
    font-family: var(--font-label);
    font-size: var(--size-label);
    line-height: var(--line-heading);
    white-space: nowrap;
}
