
  /* Page shell — role variables map onto the design tokens in
     rl-page.css (this page loads it just for the tokens; loaded after
     it here so these rules win). Centered/narrower than the homepage,
     and reset to a plain single column since rl-page.css's .rl-page
     is a two-column flex layout this page doesn't use (no sidebar TOC
     here). */
  .rl-page {
    --heading:   var(--color-ink);
    --link:      var(--color-crimson);
    --ink:       var(--color-ink);
    --ink-soft:  var(--color-slate);
    --line:      var(--color-sand);

    display: block;
    max-width: 912px;
    margin: 0 auto;
    font-family: var(--font-family-text, "Source Serif 4", serif);
    color: var(--ink);
    line-height: 1.275;
    font-size: var(--font-size-default);
  }
  .rl-page, .rl-page *, .rl-page *::before, .rl-page *::after { box-sizing: border-box; }
  .rl-page h1, .rl-page h2, .rl-page h3 {
    font-family: var(--font-family-title, "Space Grotesk", sans-serif);
    line-height: 1.3;
  }
  .rl-page a { color: var(--link); }
  .rl-page a:focus-visible { outline: 3px solid var(--link); outline-offset: 2px; }

  /* "Back to homepage" link, top of the page */
  .rl-back {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 1.4rem;
    font-size: var(--font-size-14);
    text-decoration: none;
  }
  .rl-back:hover { text-decoration: underline; }

  h1 { font-size: var(--font-size-36); margin: 0 0 0.4rem; }
  .rl-sub { color: var(--ink-soft); margin: 0 0 1.6rem; }

  /* Publication list — numbered highest-first via a CSS counter (see
     the matching comment above <ol class="rl-pub-list"> in
     publications-full.html for how to update the count when adding
     a new entry). */
  ol.rl-pub-list {
    list-style: none;
    counter-reset: pub-counter 50;
    padding-left: 0;
    margin: 0 0 0.5rem;
  }
  ol.rl-pub-list li {
    position: relative;
    padding: 0.6rem 0 0.6rem 2.4rem;
    border-bottom: 1px solid var(--line);
    counter-increment: pub-counter -1;
    color: var(--color-slate); /* cool slate-blue */
  }
  /* Renders the counter as a right-aligned "N." label in the left gutter. */
  ol.rl-pub-list li::before {
    content: counter(pub-counter) ".";
    position: absolute;
    left: 0;
    top: 0.6rem;
    width: 2rem;
    font-family: var(--font-family-mono, monospace);
    font-size: var(--font-size-12);
    color: var(--ink-soft);
    text-align: right;
  }
  ol.rl-pub-list li:last-child { border-bottom: none; }

  /* Per-entry links row (DOI, arXiv, PDF, ...) shown under each citation */
  .rl-links {
    display: block;
    margin-top: 0.25rem;
    font-family: var(--font-family-mono, monospace);
    font-size: var(--font-size-12);
  }
  .rl-links a { margin-right: 1rem; text-decoration: none; }
  .rl-links a:hover { text-decoration: underline; }
  .rl-links i { margin-right: 0.3rem; }
