/* Defaults measured from the al-folio demo; existing content stays in place. */
:root {
  --bg: #fff;
  --text: #000;
  --muted: #828282;
  --primary: #b509ac;
  --surface: #fff;
  --border: #e8e8e8;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #1c1c1d;
    --text: #fff;
    --muted: #a6a6a6;
    --primary: #2698ba;
    --surface: #1c1c1d;
    --border: #424246;
  }
}
html { font-size: 16px; }
body { font-family: Roboto, sans-serif; font-size: 16px; font-weight: 400; line-height: 1.5; padding-top: 57px; padding-bottom: 70px; }
h1, h2, h3, h4, h5, h6 { font-family: Roboto, sans-serif; font-weight: 300; line-height: 1.2; letter-spacing: normal; color: var(--text); margin: 0 0 8px; }
h1 { font-size: 40px; }
h2 { font-size: 32px; }
h3 { font-size: 28px; }
p { margin: 0 0 16px; }
strong, b { font-weight: 700; }
a:hover { opacity: 1; }
.container { width: 100%; max-width: 930px !important; padding-left: 15px; padding-right: 15px; margin-left: auto; margin-right: auto; }
.site-header { box-shadow: 0 2px 5px rgba(0, 0, 0, 0.08); }
.site-navbar { min-height: 56px; gap: 16px; }
.site-brand { font-size: 20px; font-weight: 100; line-height: 30px; }
.site-brand strong { font-weight: 700; }
.site-navigation { gap: 0; }
.site-navigation a { font-size: 16px; font-weight: 400; padding: 8px; line-height: 24px; }
.site-navigation a.is-active { font-weight: 400; }
.site-header + .wrap > .content { padding-top: 48px; }
.compact-home { font-size: 16px; line-height: 24px; }
.compact-home h1, .publications-page > h1 { font-size: 40px; line-height: 48px; font-weight: 300; margin: 0 0 8px; }
.compact-home h2 { font-size: 32px; line-height: 38.4px; font-weight: 300; margin-bottom: 8px; }
.compact-home .home-intro p { margin-bottom: 16px; }
.compact-home section { margin-top: 32px; }
.compact-home .home-hint, .compact-home .home-archive, .compact-home .home-pub-title, .compact-home .home-pub-details { font-size: 16px; }
.compact-home .home-dated-list li { grid-template-columns: 85px minmax(0, 1fr); gap: 16px; margin-bottom: 8px; }
.compact-home time, .compact-home .home-count, .compact-home .home-pub-venue { font-size: 16px; }
.compact-home .home-pub-title > a { font-weight: 400; }
.compact-home .home-pub-resources, .compact-home .home-email { font-size: 14px; }
.compact-home .home-pub-group > summary { font-weight: 400; }
.compact-home .slide h2 { font-size: 16px; margin-top: 10px; }
.publications-page { font-size: 16px; line-height: 24px; }
.publication-year { margin-bottom: 0; }
.publication-year > h2 { font-size: 32px; font-weight: 300; line-height: 38.4px; margin: 32px 0 16px; padding: 0; border: 0; border-top: 1px solid var(--border); color: rgba(0, 0, 0, 0.1); text-align: right; }
.publication-list .publication-entry { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0; margin: 0 -15px 16px; }
.publication-label { grid-column: span 2; padding: 4px 15px 0; }
.publication-label > span { font-size: 12px; font-weight: 700; line-height: 12px; padding: 3px 4.8px; border-radius: 4px; background: var(--primary); color: #fff; }
.publication-body { grid-column: span 8; min-width: 0; padding: 0 15px; }
.publication-entry .publication-title { font-size: 16px; font-weight: 400; line-height: 24px; margin: 0; }
.publication-entry .publication-authors, .publication-entry .publication-venue { font-size: 16px; font-weight: 400; line-height: 24px; margin: 0; }
.publication-authors strong { font-weight: 400; }
.publication-actions { gap: 0; }
.publication-actions > a, .publication-abstract > summary { font-family: Roboto, sans-serif; font-size: 10.24px; font-weight: 400; line-height: 15.36px; min-width: 0; padding: 4px 16px; margin: 6px 6px 6px 0; border-radius: 2px; }
@media (prefers-color-scheme: dark) {
  .publication-year > h2 { color: rgba(255, 255, 255, 0.2); }
}
@media (max-width: 640px) {
  body { padding-top: 57px; }
  .site-navbar { gap: 0; }
  .site-navigation a { padding: 8px 0; }
  .site-header + .wrap > .content { padding-top: 48px; }
  .compact-home h1 { font-size: 32px; line-height: 38.4px; }
  .compact-home .home-dated-list li { grid-template-columns: 72px minmax(0, 1fr); gap: 8px; }
  .publication-list .publication-entry { grid-template-columns: minmax(0, 1fr); gap: 8px; margin-bottom: 24px; }
  .publication-label, .publication-body { grid-column: 1; }
  .publication-label > span { display: inline-block; min-width: 80px; }
}

/* A more readable scale while retaining the template's layout. */
body, .compact-home, .publications-page { font-size: 18px; line-height: 1.5; }
.compact-home .home-hint, .compact-home .home-archive,
.compact-home .home-pub-title, .compact-home .home-pub-details,
.compact-home time, .compact-home .home-count,
.compact-home .home-pub-venue { font-size: 18px; }
.compact-home .home-pub-resources, .compact-home .home-email { font-size: 16px; }
.compact-home .home-dated-list li { grid-template-columns: 96px minmax(0, 1fr); }
.compact-home .slide h2, .site-navigation a { font-size: 18px; }
.publication-entry .publication-title,
.publication-entry .publication-authors,
.publication-entry .publication-venue { font-size: 18px; line-height: 27px; }
.publication-label > span { font-size: 14px; line-height: 16px; }
.publication-actions > a, .publication-abstract > summary { font-size: 13px; line-height: 19.5px; }
@media (max-width: 640px) {
  .compact-home .home-dated-list li { grid-template-columns: 84px minmax(0, 1fr); }
}

.home-contact a { display: inline-flex; align-items: center; gap: 6px; }
.home-contact a i { font-size: 1.1em; line-height: 1; }

.compact-home .home-contact { justify-content: center; }
.compact-home .home-email { text-align: center; }

/* Keep the portrait and contact details together as one profile block. */
.compact-home .home-intro { grid-template-columns: minmax(0, 1fr) 210px; gap: 32px; }
.compact-home .home-profile { text-align: center; }
.compact-home .home-profile .home-portrait { display: block; width: 180px; height: 180px; margin: 0 auto; }
.compact-home .home-profile .home-contact { margin-top: 12px; gap: 12px; }
.compact-home .home-profile .home-contact a { width: 36px; height: 36px; justify-content: center; border-radius: 50%; text-decoration: none; }
.compact-home .home-profile .home-contact a i { font-size: 28px; }
.compact-home .home-profile .home-contact a:hover { background: var(--border); }
.compact-home .home-profile .home-email { margin: 8px 0 0; font-size: 16px; line-height: 1.5; }
@media (max-width: 640px) {
  .compact-home .home-intro { display: flex; flex-direction: column; gap: 24px; }
  .compact-home .home-intro > .home-bio { display: block; width: 100%; }
  .compact-home .home-profile { order: -1; align-self: center; }
  .compact-home .home-profile .home-portrait { width: 160px; height: 160px; }
}

/* Start the portrait below the desktop name heading, as in al-folio. */
@media (min-width: 641px) {
  .compact-home .home-profile { margin-top: 56px; }
}

.compact-home .home-profile .copy-email {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--primary);
  cursor: pointer;
}
.compact-home .home-profile .copy-email i { font-size: 28px; line-height: 1; }
.compact-home .home-profile .copy-email:hover { background: var(--border); }
.copy-email:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.compact-home .home-profile .email-copy-status { margin: 8px 0 0; color: var(--muted); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.compact-home .home-profile .email-copy-status:empty { margin: 0; }

/* Venue colors and previews, following the template's left-hand column. */
.publication-label { --venue-color: #2d699e; }
.publication-label[data-type="conference"] { --venue-color: #2d699e; }
.publication-label[data-type="journal"] { --venue-color: #397b42; }
.publication-label[data-type="workshop"] { --venue-color: #6c579d; }
.publication-label[data-type="arxiv"] { --venue-color: #626975; }
.publication-label > span { background: var(--venue-color); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); }
.publication-label .publication-thumbnail { display: block; width: 100%; height: auto; max-height: 140px; object-fit: contain; margin: 12px 0 0; border-radius: 4px; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12); }
@media (max-width: 640px) {
  .publication-label .publication-thumbnail { width: auto; max-width: 180px; max-height: 140px; }
}

/* Restore the template's reading scale on the full Publications page. */
.publications-page { font-size: 16px; line-height: 24px; }
.publications-page .publication-title,
.publications-page .publication-authors,
.publications-page .publication-venue { font-size: 16px; line-height: 24px; }
.publications-page .publication-actions > a,
.publications-page .publication-abstract > summary { font-size: 12px; line-height: 18px; }

/* Homepage paper previews beside their citations, within topic groups. */
.compact-home .home-pub { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 24px; align-items: start; padding: 20px 0; border-bottom: 1px solid var(--border); }
.compact-home .home-pub:last-child { border-bottom: 0; }
.compact-home .home-pub-preview { grid-column: 1; }
.compact-home .home-pub-preview img { display: block; width: 100%; height: auto; max-height: 160px; object-fit: contain; margin: 0; border-radius: 4px; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12); }
.compact-home .home-pub-body { grid-column: 2; min-width: 0; }
.compact-home .home-pub-title { margin-bottom: 4px; }
.compact-home .home-pub-title > a { font-weight: 400; }
.compact-home .home-pub-authors, .compact-home .home-pub-body > .home-pub-venue { font-size: 18px; line-height: 27px; margin: 0 0 4px; }
.compact-home .home-pub-authors strong { font-weight: 400; text-decoration: underline; text-underline-offset: 3px; }
.compact-home .home-pub-body > .home-pub-venue { color: var(--text); }
.compact-home .home-pub-resources { margin-top: 8px; gap: 6px; }
.compact-home .home-pub-resources a { padding: 3px 10px; border: 1px solid var(--text); border-radius: 2px; color: var(--text); font-size: 16px; line-height: 24px; text-decoration: none; }
.compact-home .home-pub-resources a:hover { background: var(--primary); border-color: var(--primary); color: var(--bg); }
@media (max-width: 640px) {
  .compact-home .home-pub { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .compact-home .home-pub-body { grid-column: 1; }
  .compact-home .home-pub-preview { width: 190px; max-width: 100%; }
}

.compact-home .home-publications-more { margin: 16px 0 0; }

/* Always-visible topic panels with rounded borders. */
.compact-home .home-pub-group {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 20px 24px;
  margin: 0 0 20px;
  background: var(--surface);
}
.compact-home .home-topic-title {
  margin: 0 0 8px;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: var(--text);
}
.compact-home .home-pub-group .home-pub { padding: 16px 0; }
.compact-home .home-pub-group .home-pub:last-child { padding-bottom: 0; }
@media (max-width: 640px) {
  .compact-home .home-pub-group { padding: 16px; }
}

/* Distinct topic outlines, without coloring the paper content. */
.compact-home .home-pub-group[data-color="purple"] { --topic-color: #9b63ad; }
.compact-home .home-pub-group[data-color="teal"] { --topic-color: #45968d; }
.compact-home .home-pub-group[data-color="blue"] { --topic-color: #5989bd; }
.compact-home .home-pub-group[data-color] { border: 2px solid var(--topic-color); }
@media (prefers-color-scheme: dark) {
  .compact-home .home-pub-group[data-color="purple"] { --topic-color: #ba8dca; }
  .compact-home .home-pub-group[data-color="teal"] { --topic-color: #72bcb3; }
  .compact-home .home-pub-group[data-color="blue"] { --topic-color: #83aadd; }
}

.compact-home .home-pub-group[data-color="purple"] { background: #faf6fc; }
.compact-home .home-pub-group[data-color="teal"] { background: #f3faf8; }
.compact-home .home-pub-group[data-color="blue"] { background: #f4f8fd; }
@media (prefers-color-scheme: dark) {
  .compact-home .home-pub-group[data-color="purple"] { background: #251f2a; }
  .compact-home .home-pub-group[data-color="teal"] { background: #1d2826; }
  .compact-home .home-pub-group[data-color="blue"] { background: #1e2530; }
}

/* Optional collapse controls within the colored topic panels. */
.compact-home .home-pub-group > summary.home-topic-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0;
  margin: 0;
  list-style: none;
  font-size: 18px;
  line-height: 1.4;
  font-weight: 700;
  color: var(--text);
  cursor: pointer;
}
.compact-home .home-pub-group > summary.home-topic-title::-webkit-details-marker { display: none; }
.compact-home .home-topic-toggle { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 28px; height: 28px; border: 1px solid var(--topic-color); border-radius: 50%; color: var(--topic-color); font-size: 22px; line-height: 1; }
.compact-home .home-topic-toggle::before { content: '+'; }
.compact-home .home-pub-group[open] .home-topic-toggle::before { content: '−'; }
.compact-home .home-pub-group[open] > summary.home-topic-title { margin-bottom: 8px; }
.compact-home .home-pub-group > summary.home-topic-title:hover .home-topic-toggle { background: var(--topic-color); color: #fff; }

/* Attribution notes and compact faculty honors. */
.publication-contribution-note { font-size: 14px; color: var(--muted); margin: 12px 0; }
.compact-home .home-honors strong { font-weight: 400; }

/* Consistent homepage reading scale; smaller text is reserved for controls and notes. */
.compact-home .publication-contribution-note,
.compact-home .home-profile .email-copy-status { font-size: 16px; line-height: 24px; }
.compact-home .home-topic-title .home-count { font-size: inherit; }

/* Slightly smaller citations within the homepage topic panels. */
.compact-home .home-pub-group .home-pub-title,
.compact-home .home-pub-group .home-pub-authors,
.compact-home .home-pub-group .home-pub-body > .home-pub-venue {
  font-size: 16px;
  line-height: 24px;
}

/* Al-folio-inspired blog index with a quiet, spacious post list. */
.blog-page { font-family: Roboto, sans-serif; font-size: 16px; line-height: 1.5; }
.blog-page .blog-header { text-align: left; margin: 0 0 32px; padding: 0; }
.blog-page .blog-header h1 { font-size: 40px; line-height: 48px; font-weight: 300; color: var(--text); margin: 0 0 8px; }
.blog-page .blog-header p { font-size: 24px; font-weight: 300; margin: 0; }
.blog-page .blog-post-list { padding: 0; margin: 0; list-style: none; }
.blog-page .blog-post-entry { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 28px 0; margin: 0; border-bottom: 1px solid var(--border); }
.blog-page .blog-post-entry:first-child { padding-top: 0; }
.blog-page .blog-post-entry:last-child { border-bottom: 0; }
.blog-page .blog-post-entry.has-preview { grid-template-columns: minmax(0, 1fr) 160px; }
.blog-page .blog-post-content { min-width: 0; }
.blog-page .blog-post-content h2 { font-size: 18px; line-height: 1.5; font-weight: 500; margin: 0 0 8px; }
.blog-page .blog-post-content h2 a { color: var(--primary); text-decoration: none; }
.blog-page .blog-post-content h2 a:hover { text-decoration: underline; }
.blog-page .blog-description { margin: 0 0 8px; }
.blog-page .blog-meta, .blog-page .blog-category { font-size: 14px; line-height: 21px; color: var(--muted); margin: 0; }
.blog-page .blog-meta span { margin: 0 6px; }
.blog-page .blog-category { margin-top: 4px; }
.blog-page .blog-category i { margin-right: 4px; }
.blog-page .blog-preview { display: block; align-self: start; }
.blog-page .blog-preview img { display: block; width: 160px; height: 110px; object-fit: cover; margin: 0; border-radius: 4px; }
@media (max-width: 640px) {
  .blog-page .blog-header { margin-bottom: 32px; padding-top: 0; }
  .blog-page .blog-header h1 { font-size: 40px; }
  .blog-page .blog-header p { font-size: 20px; }
  .blog-page .blog-post-content h2 { font-size: 18px; }
  .blog-page .blog-post-entry.has-preview { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

.blog-page .blog-filters { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px 20px; margin-top: 20px; }
.blog-page .blog-filters[hidden], .blog-page .blog-post-entry[hidden] { display: none; }
.blog-page .blog-filters button { font: inherit; font-size: 16px; padding: 4px 0; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); cursor: pointer; }
.blog-page .blog-filters button:hover { color: var(--primary); }
.blog-page .blog-filters button[aria-pressed="true"] { color: var(--primary); border-bottom-color: var(--primary); font-weight: 400; }
.blog-page .blog-filters button:focus-visible { outline: 2px solid var(--primary); outline-offset: 4px; }
.blog-page .blog-filter-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Technical notes share the site's navigation, typeface, and reading width. */
.technical-note { font-size: 16px; line-height: 1.6; }
.technical-note .note-header { margin-bottom: 28px; }
.technical-note .note-back { display: inline-block; font-size: 16px; margin-bottom: 20px; }
.technical-note .note-header h1 { font-size: 32px; line-height: 1.2; margin-bottom: 12px; }
.technical-note .note-meta { font-size: 16px; color: var(--muted); margin-bottom: 12px; }
.technical-note .note-meta span { margin: 0 6px; }
.technical-note .note-description { margin-bottom: 0; }
.technical-note .note-toc { border: 1px solid var(--border); border-radius: 10px; padding: 16px 20px; margin-bottom: 32px; background: var(--surface); }
.technical-note .note-toc[hidden] { display: none; }
.technical-note summary { cursor: pointer; font-size: 16px; font-weight: 500; }
.technical-note .note-toc ul { margin: 12px 0 0; padding-left: 20px; font-size: 16px; }
.technical-note .note-toc li { margin-bottom: 4px; }
.technical-note .note-body h2 { font-size: 24px; line-height: 1.3; margin: 36px 0 16px; scroll-margin-top: 85px; }
.technical-note .note-body > h2:first-child { margin-top: 0; }
.technical-note .note-body p { margin-bottom: 16px; }
.technical-note .note-body li { margin-bottom: 8px; }
.technical-note .callout { --callout-color: #9b63ad; border: 1px solid var(--border); border-left: 3px solid var(--callout-color); border-radius: 8px; padding: 16px 20px; margin: 24px 0; background: #faf6fc; }
.technical-note .callout-tip { --callout-color: #45968d; background: #f3faf8; }
.technical-note .callout-caution { --callout-color: #5989bd; background: #f4f8fd; }
.technical-note .callout-header { font-weight: 500; margin-bottom: 12px; }
.technical-note .callout-icon-container { display: none; }
.technical-note .callout p:last-child, .technical-note .callout ul:last-child { margin-bottom: 0; }
.technical-note .note-derivation[open] > summary { margin-bottom: 16px; }
.technical-note mjx-container[display="true"] { max-width: 100%; overflow-x: auto; overflow-y: hidden; padding: 6px 0; }
.technical-note .csl-entry { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 8px; font-size: 16px; margin-bottom: 12px; scroll-margin-top: 85px; }
.technical-note .csl-left-margin { color: var(--muted); }
.technical-note .csl-right-inline { overflow-wrap: anywhere; }
@media (prefers-color-scheme: dark) {
  .technical-note .callout { background: #251f2a; }
  .technical-note .callout-tip { background: #1d2826; }
  .technical-note .callout-caution { background: #1e2530; }
}
@media (max-width: 640px) {
  .technical-note .note-header h1 { font-size: 30px; }
  .technical-note .note-body h2 { font-size: 22px; }
  .technical-note .callout, .technical-note .note-toc { padding: 14px 16px; }
}

/* Preserve the original Quarto/MathJax equation scale independently of article text. */
.technical-note mjx-container {
  font-size: 20.247px !important;
  font-weight: 400;
  font-style: normal;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif;
}
.technical-note .callout-body mjx-container { font-size: 18.207px !important; }
.technical-note mjx-container[display="true"] { padding: 0; }

/* Keep the contents panel visible beside the article on wide screens. */
@media (min-width: 1100px) {
  html:has(.technical-note), body:has(.technical-note) { overflow-x: clip; }
  .container.content:has(> .technical-note) { max-width: 1200px !important; }
  .technical-note { display: grid; grid-template-columns: minmax(0, 1fr) 220px; column-gap: 32px; align-items: start; }
  .technical-note .note-header { grid-column: 1; grid-row: 1; }
  .technical-note .note-body { grid-column: 1; grid-row: 2; min-width: 0; }
  .technical-note .note-toc { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 88px; align-self: start; max-height: calc(100vh - 112px); overflow-y: auto; margin: 0; padding: 16px; }
  .technical-note .note-toc ul { font-size: 14px; line-height: 1.5; padding-left: 16px; }
  .technical-note .note-toc li { margin-bottom: 10px; }
}

/* Definitions and highlights in learning notes follow the callout palette. */
.technical-note .note-body blockquote { margin: 20px 0; padding: 16px 20px; border: 1px solid var(--border); border-left: 3px solid #45968d; border-radius: 8px; background: #f3faf8; color: var(--text); font-size: 16px; }
.technical-note .note-body blockquote p:last-child { margin-bottom: 0; }
.technical-note .note-body mark { background: #e4eef9 !important; color: var(--text); padding: 2px 4px; border-radius: 3px; }
.technical-note .note-body hr { margin: 28px 0; border: 0; border-top: 1px solid var(--border); }
.technical-note .note-body img { max-width: 100%; height: auto; border-radius: 4px; }
@media (prefers-color-scheme: dark) {
  .technical-note .note-body blockquote { background: #1d2826; }
  .technical-note .note-body mark { background: #26384b !important; }
}

/* Publication explainers retain their citation and side-by-side figures. */
.technical-note .note-venue { margin-bottom: 12px; }
.technical-note .note-resources { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.technical-note .note-resources a { font-size: 14px; line-height: 21px; padding: 3px 12px; border: 1px solid var(--text); border-radius: 3px; color: var(--text); text-decoration: none; }
.technical-note .note-resources a:hover { color: var(--bg); background: var(--primary); border-color: var(--primary); }
.technical-note .note-body table { width: 100%; table-layout: fixed; font-size: 16px; }
.technical-note .note-body table img { width: 100%; max-width: 350px; margin: 0 auto; }
.technical-note .equation-container { max-width: 100%; min-width: 0; }
.technical-note em_c { color: var(--primary); font-weight: 400; }

/* Compact figures for the routing-games explainer. */
.technical-note.compact-figures .note-body img { display: block; width: auto; max-width: min(100%, 460px); max-height: 320px; object-fit: contain; margin: 20px auto; }
.technical-note.compact-figures .note-body table { max-width: 620px; margin: 20px auto; }
.technical-note.compact-figures .note-body table img { width: 100%; max-width: 280px; max-height: 280px; margin: 0 auto; }

.technical-note.compact-figures .note-body img.full-width-figure { width: 100%; max-width: 100%; max-height: none; }

/* Consistent titles and photographs across blog articles. */
.blog-article { font-size: 16px; line-height: 1.6; }
.blog-article .blog-article-header { margin-bottom: 28px; }
.blog-article .note-back { display: inline-block; font-size: 16px; margin-bottom: 20px; }
.blog-article .post-title { font-size: 32px; font-weight: 300; line-height: 1.25; margin-bottom: 12px; }
.blog-article .post-date { font-size: 14px; color: var(--muted); margin-bottom: 16px; }
.blog-article .blog-article-body h2 { font-size: 24px; line-height: 1.3; margin: 28px 0 14px; }
.blog-article .blog-article-body h3 { font-size: 20px; line-height: 1.3; margin: 24px 0 12px; }
.blog-article .blog-article-body img { display: block; max-width: 100%; height: auto; border-radius: 6px; }
.blog-article .blog-article-body figure { max-width: 640px; margin: 24px auto; }
.blog-article .blog-article-body figure img { width: 100%; margin: 0; }
.blog-article .blog-article-body figcaption { font-size: 14px; line-height: 1.5; text-align: center; color: var(--muted); margin-top: 8px; }
.blog-article .photo-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-width: 680px; margin: 24px auto; }
.blog-article .photo-gallery img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; margin: 0; }
.blog-article .photo-gallery img:only-child { grid-column: 1 / -1; max-width: 640px; justify-self: center; }
@media (max-width: 640px) {
  .blog-article .post-title { font-size: 28px; }
  .blog-article .photo-gallery { grid-template-columns: minmax(0, 1fr); }
}

/* Dataset highlights use the same compact reading scale as publication entries. */
.compact-home .home-datasets { border: 0; padding: 0; background: transparent; }
.dataset-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 16px; }
.dataset-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--border); border-radius: 12px; padding: 20px; background: var(--surface); font-size: 16px; line-height: 1.5; scroll-margin-top: 85px; }
.dataset-card h3 { font-size: 18px; line-height: 1.4; font-weight: 700; margin: 0 0 12px; }
.dataset-year { font-size: 14px; font-weight: 300; color: var(--muted); margin-left: 6px; }
.dataset-card .dataset-description { margin: 0 0 16px; }
.dataset-stats { display: flex; flex-wrap: wrap; gap: 16px 24px; margin: 0 0 16px; }
.dataset-stats > div { display: flex; flex-direction: column; }
.dataset-stats dt { order: 1; font-size: 14px; font-weight: 300; color: var(--muted); }
.dataset-stats dd { order: 0; margin: 0; font-size: 24px; font-weight: 500; line-height: 1.3; }
.dataset-stats dd a { color: var(--text); text-decoration: none; }
.dataset-stats dd a:hover { color: var(--primary); }
.dataset-stats small { order: 2; color: var(--muted); font-size: 12px; margin-top: 2px; }
.dataset-card .dataset-availability { color: var(--muted); font-size: 14px; margin: 0 0 16px; }
.dataset-resources { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.dataset-resources a { border: 1px solid var(--text); border-radius: 3px; padding: 3px 10px; color: var(--text); font-size: 14px; text-decoration: none; }
.dataset-resources a:hover { background: var(--primary); border-color: var(--primary); color: var(--bg); }
.compact-home .datasets-more { margin: 16px 0 0; }
.datasets-page { font-size: 18px; line-height: 1.5; }
.datasets-page .dataset-grid { grid-template-columns: minmax(0, 1fr); margin-top: 28px; }
.dataset-details { padding-left: 20px; margin: 0 0 16px; }
.dataset-details li { margin-bottom: 6px; }
@media (max-width: 640px) {
  .dataset-grid { grid-template-columns: minmax(0, 1fr); }
  .dataset-card { padding: 16px; }
}

/* Clear boundaries between the homepage's main sections. */
.compact-home > section, .compact-home > section.home-datasets {
  margin-top: 44px;
  padding-top: 28px;
  border-top: 1px solid #cfd4dc;
}
.compact-home > section > h2 { margin-bottom: 20px; }
.compact-home .home-research-topics { margin-bottom: 20px; }
@media (prefers-color-scheme: dark) {
  .compact-home > section, .compact-home > section.home-datasets { border-top-color: #555b66; }
}
@media (max-width: 640px) {
  .compact-home > section, .compact-home > section.home-datasets { margin-top: 32px; padding-top: 24px; }
}

.compact-home > section.home-publications { border-top: 0; margin-top: 20px; padding-top: 0; }

/* Released dataset statistics and representative presentation records. */
.dataset-card .dataset-overview { margin: 12px 0 24px; }
.dataset-overview h4 { font-size: 18px; font-weight: 500; margin: 24px 0 12px; }
.dataset-overview h4:first-child { margin-top: 0; }
.dataset-overview .dataset-coverage-figure { max-width: 700px; margin: 16px auto; }
.dataset-coverage-figure img { display: block; width: 100%; height: auto; border-radius: 6px; background: #fff; }
.dataset-overview figcaption { font-size: 14px; line-height: 1.5; color: var(--muted); margin: 8px 0 0; }
.dataset-taxonomy { border: 1px solid var(--border); border-radius: 6px; padding: 12px 16px; margin-bottom: 24px; }
.dataset-overview summary { cursor: pointer; font-size: 14px; font-weight: 400; }
.dataset-taxonomy[open] summary { margin-bottom: 12px; }
.dataset-mapping-table { overflow-x: auto; }
.dataset-mapping-table table { font-size: 13px; margin: 0; }
.dataset-mapping-table th, .dataset-mapping-table td { white-space: normal; overflow-wrap: anywhere; }
.dataset-examples { display: grid; gap: 24px; }
.dataset-example { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 20px; padding-top: 0; border-top: 0; }
.dataset-example figure { margin: 0; }
.dataset-example img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: contain; background: #fff; border: 1px solid var(--border); border-radius: 4px; margin: 0; }
.dataset-example-text { min-width: 0; }
.dataset-example-text h5 { font-size: 16px; font-weight: 500; line-height: 1.5; margin-bottom: 6px; }
.dataset-example-text p { font-size: 14px; line-height: 1.5; margin-bottom: 8px; overflow-wrap: anywhere; }
.dataset-example-meta { color: var(--muted); }
.dataset-example-text details[open] summary { margin-bottom: 8px; }
@media (max-width: 640px) {
  .dataset-example { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .dataset-example figure { max-width: 420px; }
}

.dataset-card-header { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 12px; }
.dataset-card-header h3 { margin: 0; }
.dataset-download-badge { display: inline-flex; border: 1px solid var(--border); border-radius: 999px; padding: 4px 10px; background: rgba(153, 101, 170, 0.07); font-size: 13px; line-height: 1.4; font-weight: 400; }
.dataset-download-badge a { color: var(--text); text-decoration: none; }
.dataset-download-badge a:hover { color: var(--primary); }
.dataset-download-badge .dataset-download-count { font-weight: 600; }
.dataset-overview .dataset-examples-toggle > summary { font-size: 18px; font-weight: 500; }
.dataset-examples-toggle[open] > summary { margin-bottom: 20px; }

.dataset-resources a { display: inline-flex; align-items: center; gap: 6px; }
.dataset-resource-icon { display: inline-block; font-size: 15px; line-height: 1; }

.dataset-project-icon { color: #2879c7; }

.dataset-card { box-shadow: 0 3px 14px rgba(35, 40, 55, 0.08); }
@media (prefers-color-scheme: dark) {
  .dataset-card { box-shadow: 0 3px 14px rgba(0, 0, 0, 0.24); }
}

.home-pub-resources a, .publication-actions > a { display: inline-flex; align-items: center; gap: 6px; }

.dataset-card#learningpaper24, .dataset-card#vegas { background: #f7f7f7; border-color: #d9d9d9; }
@media (prefers-color-scheme: dark) {
  .dataset-card#learningpaper24, .dataset-card#vegas { background: #262626; border-color: #484848; }
}

/* Readable body weight and consistent entry-title colors across the site. */
.blog-page .blog-post-content h2 a,
.compact-home .home-pub-title > a,
.publication-entry .publication-title > a,
.dataset-card h3 > a { color: var(--text); }
.blog-page .blog-post-content h2 a:hover,
.compact-home .home-pub-title > a:hover,
.publication-entry .publication-title > a:hover,
.dataset-card h3 > a:hover { text-decoration: underline; }

.compact-home .home-pub-title, .publication-entry .publication-title { font-weight: 500; color: var(--text); }

.publication-type-legend { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 16px 0 12px; }
.publication-type-legend .publication-label { padding: 0; margin: 0; }
.publication-type-legend .publication-label > span { display: inline-block; font-size: 13px; line-height: 18px; padding: 3px 9px; }
