/* Site style — Linux Biolinum/Libertine, wider content, no sidenote column.
   Active when body has class "page-style-site". */

/* ── Linux Biolinum @font-face ─────────────────────── */

@font-face {
  font-family: 'Linux Biolinum';
  font-style: normal;
  font-weight: normal;
  src: local('Linux Biolinum Regular'), url('../fonts/LinBiolinum/LinBiolinum_R.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'Linux Biolinum';
  font-style: italic;
  font-weight: normal;
  src: local('Linux Biolinum Italic'), url('../fonts/LinBiolinum/LinBiolinum_RI.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'Linux Biolinum';
  font-style: normal;
  font-weight: bold;
  src: local('Linux Biolinum Bold'), url('../fonts/LinBiolinum/LinBiolinum_RB.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'Linux Biolinum Outline';
  font-style: normal;
  font-weight: normal;
  src: local('Linux Biolinum Outline Regular'), url('../fonts/LinBiolinum/LinBiolinum_aU.woff') format('woff');
  font-display: swap;
}

/* ── Linux Libertine @font-face ────────────────────── */

@font-face {
  font-family: 'Linux Libertine';
  font-style: normal;
  font-weight: normal;
  src: local('Linux Libertine'), url('../fonts/LinLibertine/LinLibertine_Re-4.1_.8_.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'Linux Libertine';
  font-style: italic;
  font-weight: normal;
  src: local('Linux Libertine Italic'), url('../fonts/LinLibertine/LinLibertine_It-4.0_.3_.woff') format('woff');
  font-display: swap;
}
@font-face {
  font-family: 'Linux Libertine';
  font-style: normal;
  font-weight: bold;
  src: local('Linux Libertine Bold'), url('../fonts/LinLibertine/LinLibertine_Bd-4.0_.2_.woff') format('woff');
  font-display: swap;
}

/* ── Body styling ──────────────────────────────────── */

body.page-style-site {
  font-family: 'Linux Biolinum', 'Computer Modern Serif', Times, serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.3;
  color: #111;
}

/* ── Content width: 800px max ──────────────────────── */

body.page-style-site .page-content {
  padding: 2rem 2rem 4rem 2rem;
}
@media (max-width: 800px) {
  body.page-style-site .page-content {
    padding: 2rem 20px 4rem 20px;
  }
}

body.page-style-site .post-content > p,
body.page-style-site .post-content > ul,
body.page-style-site .post-content > ol,
body.page-style-site .post-content > dl,
body.page-style-site .post-content > blockquote,
body.page-style-site .post-content > pre,
body.page-style-site .post-content > figure,
body.page-style-site .post-content > table,
body.page-style-site .post-content > header,
body.page-style-site .post-content > div.sourceCode,
body.page-style-site .post-content > div.highlighter-rouge,
body.page-style-site .post-content > mjx-container[display="true"],
body.page-style-site .post-content section > p,
body.page-style-site .post-content section > ul,
body.page-style-site .post-content section > ol,
body.page-style-site .post-content section > dl,
body.page-style-site .post-content section > blockquote,
body.page-style-site .post-content section > pre,
body.page-style-site .post-content section > figure,
body.page-style-site .post-content section > table,
body.page-style-site .post-content section > div.sourceCode,
body.page-style-site .post-content section > div.highlighter-rouge,
body.page-style-site .post-content section > mjx-container[display="true"],
body.page-style-site .post-content h1,
body.page-style-site .post-content h2,
body.page-style-site .post-content h3,
body.page-style-site .post-content h4,
body.page-style-site .post-content h5,
body.page-style-site .post-content h6 {
  width: 100%;
  max-width: 800px;
}

/* ── Code block widths ─────────────────────────────── */

body.page-style-site .post-content > pre,
body.page-style-site .post-content > div.sourceCode,
body.page-style-site .post-content > div.highlighter-rouge,
body.page-style-site .post-content section > pre,
body.page-style-site .post-content section > div.sourceCode,
body.page-style-site .post-content section > div.highlighter-rouge {
  width: 100%;
  max-width: 800px;
}
body.page-style-site .post-content div.sourceCode pre,
body.page-style-site .post-content div.highlighter-rouge pre {
  width: 100%;
}

/* ── Title block ───────────────────────────────────── */

body.page-style-site .post-header {
  width: 100% !important;
  max-width: 800px;
  margin-bottom: 2rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--s-border);
}
body.page-style-site .post-title {
  font-family: 'Linux Libertine', 'Computer Modern Concrete', Times, serif;
  font-size: 2.25rem;
  font-weight: 400;
  color: var(--s-accent-warm);
  letter-spacing: -0.1rem;
  margin: 0 0 0.2rem;
}
body.page-style-site .post-meta {
  font-family: 'Linux Biolinum', 'Computer Modern Serif', Times, serif;
  font-size: 15.75px;
  color: #828282;
  margin: 0.15rem 0;
}

/* ── Heading typography ────────────────────────────── */

body.page-style-site .post-content h1,
body.page-style-site .post-content h2,
body.page-style-site .post-content h3,
body.page-style-site .post-content h4,
body.page-style-site .post-content h5,
body.page-style-site .post-content h6 {
  font-family: 'Linux Libertine', 'Computer Modern Serif', Times, serif;
  font-weight: 400;
  color: #424242;
  letter-spacing: -0.1rem;
  line-height: 1.2;
}

/* Top-level content h1 takes over the post-title look (warm accent, Libertine
   Concrete, weight 400, letter-spaced) — the homepage has no post-title, so
   the first h1 is the visual page header. */
body.page-style-site .post-content h1 {
  font-family: 'Linux Libertine', 'Computer Modern Concrete', Times, serif;
  font-size: 2.25rem;
  font-weight: 400;
  color: var(--s-accent-warm);
  letter-spacing: -0.1rem;
  margin-top: 1.5rem;
  margin-bottom: 0.2rem;
}
body.page-style-site .post-content section:first-of-type > h1 {
  margin-top: 0;  /* tighter top margin for the first section's h1 */
}
body.page-style-site .post-content h2 {
  font-size: 1.75rem;
  font-weight: bold;
  margin-top: 1.5rem;
}
body.page-style-site .post-content h3 {
  font-size: 1.625rem;
  margin-top: 1.5rem;
}
body.page-style-site .post-content h4 {
  font-size: 1.25rem;
  margin-top: 1.5rem;
}

/* ── Links ─────────────────────────────────────────── */

body.page-style-site .post-content a {
  color: #2a7ae2;
  text-decoration: none;
}
body.page-style-site .post-content a:hover {
  color: #0d3568;
}

/* ── Sidenotes: not used in site style, collapse inline ── */

body.page-style-site .sidenote,
body.page-style-site .marginnote {
  display: none;
}
body.page-style-site input.margin-toggle { display: none; }
body.page-style-site label.margin-toggle:not(.sidenote-number) {
  display: inline;
  cursor: pointer;
  color: var(--s-accent);
  font-size: 0.75rem;
  vertical-align: super;
  line-height: 0;
}
body.page-style-site .sidenote-number {
  cursor: pointer;
  color: var(--s-accent);
}
body.page-style-site .margin-toggle:checked + .sidenote,
body.page-style-site .margin-toggle:checked + .marginnote {
  display: block;
  float: none;
  clear: both;
  width: 100%;
  max-width: 800px;
  margin: 0.5rem 0;
  padding: 0.5rem 0.75rem;
  text-indent: 0;
  padding-left: 0.75rem;
  border-left: 2px solid var(--s-border);
  font-size: 0.9rem;
  color: #555;
}

/* ── Footer ────────────────────────────────────────── */

body.page-style-site .site-footer {
  font-family: 'Linux Biolinum', 'Computer Modern Serif', Times, serif;
}

/* ── Publications list ──────────────────────────────── */

body.page-style-site .pub-list {
  list-style: none;
  padding: 0;
  margin: 1.5rem 0;
}
body.page-style-site .pub-list li.pub {
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--s-border);
}
body.page-style-site .pub-list li.pub:last-child {
  border-bottom: none;
}
body.page-style-site .pub-title {
  font-family: 'Linux Libertine', 'Computer Modern Serif', Times, serif;
  font-size: 1.1rem;
  display: block;
  margin-bottom: 0.2rem;
}
/* Title links: keep the title's own color (not the generic blue), with a
   thin gray solid underline instead of the standard link underline. */
body.page-style-site .pub-list a.pub-title,
body.page-style-site .pub-list a.pub-title:visited {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: #BBB;
  text-decoration-style: solid;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}
body.page-style-site .pub-list a.pub-title:hover {
  color: var(--s-accent-warm);
    /* text-decoration-color: #333; */
}
body.page-style-site .pub-author {
  display: block;
  font-size: 0.95rem;
  color: #555;
  margin-bottom: 0.2rem;
}
body.page-style-site .pub-venue {
  font-style: italic;
  color: #333;
  font-size: 0.95rem;
}
/* Note (awards, etc.) sits inline after the venue — same size and color,
   but roman (not italic). */
body.page-style-site .pub-note {
  color: #333;
  font-size: 0.95rem;
}
/* Venue links: subtle dashed gray underline; do not adopt the standard
   link color or the underline from the generic post-content a rule. */
body.page-style-site .pub-list a.pub-venue,
body.page-style-site .pub-list a.pub-venue:visited {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: #999;
  text-decoration-style: dashed;
  text-decoration-thickness: 0.5px;
  text-underline-offset: 0.2em;
}
body.page-style-site .pub-list a.pub-venue:hover {
  color: inherit;
  text-decoration-color: #555;
}
body.page-style-site .pub-status {
  display: inline-block;
  margin-left: 0.4rem;
  padding: 0 0.4rem;
  background: #eee;
  color: #555;
  font-size: 0.75rem;
  border-radius: 2px;
  text-transform: lowercase;
}
body.page-style-site .pub-extras {
  margin-top: 0.3rem;
  font-size: 0.875rem;
}
body.page-style-site .pub-extras .extra {
  margin-right: 0.25rem;
  color: #2a7ae2;
}
body.page-style-site .pub-extras .extra::before { content: '['; color: #888; }
body.page-style-site .pub-extras .extra::after  { content: ']'; color: #888; }
body.page-style-site .pub-footnote {
  font-size: 0.85rem;
  color: #777;
  margin-top: 0.5rem;
}
body.page-style-site ul.social-media-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
}
body.page-style-site ul.social-media-list li {
  display: inline-block;
  margin-right: 0.75rem;
}

/* Per-entry expandable bib: the <details> element sits inside .pub-extras so
   the [bib] summary shares a line with the other link buttons. `display:
   inline` on <details> means the block-level sourceCode child (when open)
   breaks into its own anonymous block below, while the summary itself stays
   in place on the extras line. The summary uses the .extra class so it
   inherits bracket-style decoration automatically. */
body.page-style-site details.pub-bibtex {
  display: inline;
}
body.page-style-site details.pub-bibtex > summary {
  /* The default `display: list-item` creates a marker AND forces the summary
     onto its own line. Override to inline so it sits with other link buttons. */
  display: inline;
  cursor: pointer;
  list-style: none;  /* hide Firefox default marker */
}
body.page-style-site details.pub-bibtex > summary::-webkit-details-marker {
  display: none;     /* hide WebKit/Blink default triangle */
}
body.page-style-site details.pub-bibtex[open] > summary {
  color: #555;
}
body.page-style-site details.pub-bibtex > div.sourceCode {
  margin: 0.4rem 0 0.2rem;
  padding: 0.6rem 0.8rem;
  background: #f7f7f5;
  border: 1px solid var(--s-border, #e4e4e1);
  border-radius: 3px;
  max-width: 800px;
  overflow-x: auto;
}
body.page-style-site details.pub-bibtex pre.sourceCode {
  margin: 0;
  background: transparent;
  border: none;
  padding: 0;
  font-size: 0.85rem;
  white-space: pre;
}
body.page-style-site details.pub-bibtex code.sourceCode {
  font-family: ui-monospace, 'SF Mono', 'Menlo', 'Consolas', monospace;
}
