@charset "UTF-8";
/* ==========================================================================
   CUSTOM — layered on top of Minimal Mistakes / academicpages
   Compiled to assets/css/site.css and loaded from _includes/head/custom.html,
   so it does not depend on the theme's Sass build.
   ========================================================================== */
:root {
  --ink: #131313;
  --ink-soft: #2e2e2e;
  --muted: #8d8d8d;
  --rule: #e8e8e8;
  --rule-soft: #f2f2f2;
  --accent: #131313;
  --accent-dk: #000000;
  --paper: #ffffff;
  --measure: 46rem;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
html {
  font-size: 17px;
}

@media (min-width: 64em) {
  html {
    font-size: 18px;
  }
}
body {
  font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif;
  color: var(--ink);
  background-color: var(--paper);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6,
.page__title {
  font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif;
  color: var(--ink);
  font-weight: 600;
  letter-spacing: -0.012em;
}

/* --------------------------------------------------------------------------
   Masthead + navigation
   -------------------------------------------------------------------------- */
.masthead {
  border-bottom: 1px solid var(--rule);
  background-color: var(--paper);
}

.masthead__inner-wrap {
  max-width: 62rem;
  padding-top: 1.15em;
  padding-bottom: 1.15em;
  font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif;
}

.greedy-nav {
  background: transparent;
}

.greedy-nav a {
  font-family: -apple-system, ".SFNSText-Regular", "San Francisco", "Roboto", "Segoe UI", "Helvetica Neue", "Lucida Grande", Arial, sans-serif;
  font-size: 0.95em;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--muted);
  border-bottom: 1.5px solid transparent;
  padding-bottom: 2px;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.greedy-nav a:hover {
  color: var(--ink);
}

.greedy-nav .visible-links a:before {
  display: none;
}

.greedy-nav .visible-links li a.active,
.greedy-nav .visible-links li a[aria-current=page] {
  color: var(--ink);
  border-bottom-color: var(--accent);
}

/* --------------------------------------------------------------------------
   Page shell
   -------------------------------------------------------------------------- */
#main {
  max-width: 62rem;
  margin-top: 2.5em;
}

/* The theme floats .page into the right 10 of 12 columns to leave room for a
   sidebar. There is no sidebar (author_profile: false), so that just pushes
   every page off-centre. Reclaim the full width. */
.page {
  float: none;
  width: 100%;
  clear: both;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

.page .page__inner-wrap,
.page .page__content {
  float: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.page__content {
  font-size: 1em;
  line-height: 1.62;
}

.page__content p,
.page__content li {
  max-width: var(--measure);
  color: var(--ink-soft);
}

.page__content p {
  margin: 0 0 1.15em;
}

.page__content a {
  color: var(--accent);
  text-decoration: none;
  border-bottom: 1px solid rgba(143, 45, 33, 0.3);
  transition: color 0.15s ease, border-color 0.15s ease;
}

.page__content a:hover {
  color: var(--accent-dk);
  border-bottom-color: var(--accent-dk);
}

/* Section headings — sentence case, quiet, with a rule */
.page__content h2,
.page__content h3 {
  margin-top: 2.2em;
  margin-bottom: 0.9em;
  padding-bottom: 0.4em;
  font-size: 1.12em;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
  border-bottom: 1px solid var(--rule);
}

.page__content h2:first-child,
.page__content h3:first-child {
  margin-top: 0;
}

/* Page titles stay in the front matter (browser tab, search results) but are
   not shown on the page — each page opens on its own section headings. */
.page__title {
  display: none;
}

.page__title {
  font-size: 1.9em;
  letter-spacing: -0.02em;
  margin-bottom: 0.9em;
}

/* --------------------------------------------------------------------------
   Home page
   -------------------------------------------------------------------------- */
.home-figure {
  margin: 0 0 2.4em;
}

.home-figure img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border: 1px solid var(--rule);
}

/* All three paragraphs read as one block — same size, same colour — and run
   the full width of the picture above them. */
.home-bio p {
  font-size: 1em;
  line-height: 1.62;
  color: var(--ink-soft);
  max-width: none;
}

.home-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1.6em;
  margin: 1.9em 0 0;
  padding: 0;
  list-style: none;
  max-width: none;
}

.home-links li {
  margin: 0;
  max-width: none;
}

/* Plain text links, not buttons. */
.page__content .home-links a {
  display: inline-block;
  font-size: 0.95em;
  color: var(--accent);
  background: none;
  border: 0;
  border-bottom: 1px solid rgba(143, 45, 33, 0.25);
  border-radius: 0;
  padding: 0 0 1px;
}

.page__content .home-links a:hover {
  color: var(--accent-dk);
  border-bottom-color: var(--accent-dk);
}

/* --------------------------------------------------------------------------
   Publications — numbered list, title carries the link
   -------------------------------------------------------------------------- */
.page__content ol.pubs {
  margin: 0 0 1.5em;
  padding-left: 1.7em;
  list-style: decimal;
}

.page__content ol.pubs > li {
  max-width: var(--measure);
  margin-bottom: 1.15em;
  padding-left: 0.3em;
  line-height: 1.55;
  color: var(--ink-soft);
}

.page__content ol.pubs > li::marker {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}

/* The title is the link — colour only, no underline. */
.page__content ol.pubs a.pub-title {
  color: var(--accent);
  border-bottom: none;
  text-decoration: none;
}

.page__content ol.pubs a.pub-title:hover {
  color: var(--accent-dk);
  border-bottom: none;
  text-decoration: none;
}

/* Unlinked titles (nothing to point at yet) stay black */
.pubs span.pub-title {
  color: var(--ink);
  border-bottom: none;
}

.pubs .pub-venue {
  font-weight: 700;
  font-style: italic;
  color: var(--ink);
}

.pubs .pub-status {
  font-style: italic;
}

.pubs .pub-authors {
  color: var(--ink-soft);
}

/* Collapsible abstracts — no JavaScript */
.pubs details {
  margin-top: 0.4em;
}

.pubs details summary {
  font-size: 0.86em;
  color: var(--muted);
  cursor: pointer;
  list-style: none;
  display: inline-block;
  border-bottom: 1px solid var(--rule);
}

.pubs details summary::-webkit-details-marker {
  display: none;
}

.pubs details summary:before {
  content: "+ ";
}

.pubs details[open] summary:before {
  content: "–";
}

.pubs details[open] summary {
  margin-bottom: 0.6em;
}

.pubs details summary:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.pubs details p {
  font-size: 0.94em;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
  padding: 0.85em 1em;
  background: #faf7f1;
  max-width: none;
}

/* --------------------------------------------------------------------------
   Teaching
   -------------------------------------------------------------------------- */
.course {
  max-width: var(--measure);
  margin-bottom: 1em;
}

.course .course-title {
  display: block;
  color: var(--ink);
  line-height: 1.45;
}

.course .course-meta {
  font-size: 0.88em;
  color: var(--muted);
  margin: 0.1em 0 0;
  max-width: none;
}

/* --------------------------------------------------------------------------
   Contact
   -------------------------------------------------------------------------- */
.contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 2.2em;
  max-width: var(--measure);
}

.contact-grid h3 {
  margin-top: 0;
  margin-bottom: 0.5em;
  padding-bottom: 0;
  border-bottom: none;
  font-size: 1em;
}

.contact-grid address {
  font-style: normal;
  line-height: 1.7;
  color: var(--ink-soft);
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.page__footer {
  margin-top: 4em;
  background: transparent;
  border-top: 1px solid var(--rule);
  color: var(--muted);
}

.page__footer footer {
  max-width: 62rem;
  padding-top: 1.5em;
  padding-bottom: 2.2em;
}

.page__footer a {
  color: var(--muted);
}

.page__footer a:hover {
  color: var(--accent);
}

.page__footer-copyright {
  font-size: 0.8em;
}

/* --------------------------------------------------------------------------
   Small screens
   -------------------------------------------------------------------------- */
@media (max-width: 47em) {
  html {
    font-size: 16px;
  }
  #main {
    margin-top: 1.8em;
  }
  .home-figure {
    margin-bottom: 1.8em;
  }
}
/* --------------------------------------------------------------------------
   Portfolio: white, wide margins, the image carries the page.
   -------------------------------------------------------------------------- */
body {
  -webkit-font-smoothing: antialiased;
  letter-spacing: 0.005em;
}

/* Nav: small, quiet, no rule beneath it. */
.masthead {
  border-bottom: none;
}

.masthead__inner-wrap {
  max-width: 64rem;
  padding-top: 2.6em;
  padding-bottom: 2.6em;
}

.greedy-nav a {
  font-size: 0.86em;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: none;
  color: var(--muted);
  border-bottom: 1px solid transparent;
}

.greedy-nav a:hover {
  color: var(--ink);
}

.greedy-nav .visible-links li a.active,
.greedy-nav .visible-links li a[aria-current=page] {
  color: var(--ink);
  border-bottom-color: var(--ink);
}

#main {
  max-width: 64rem;
  margin-top: 0;
}

/* The picture, given room. */
.home-figure {
  margin: 0 0 5em;
}

.home-figure img {
  border: none;
}

/* Text runs the full width of the picture above it. */
.home-bio {
  max-width: none;
}

.home-bio p {
  max-width: none;
  font-size: 1.02em;
  line-height: 1.8;
  color: var(--ink-soft);
  margin-bottom: 1.7em;
}

.home-links {
  gap: 0 2.2em;
  margin-top: 3.2em;
}

.page__content .home-links a {
  font-size: 0.86em;
  letter-spacing: 0.06em;
  text-transform: none;
  color: var(--muted);
  border-bottom: 1px solid transparent;
  padding: 0 0 3px;
}

.page__content .home-links a:hover {
  color: var(--ink);
  border-bottom-color: var(--ink);
}

/* Research: headings become quiet labels, no rules, generous air. */
.page__content h2,
.page__content h3 {
  border-bottom: none;
  padding-bottom: 0;
  margin-top: 4.2em;
  margin-bottom: 1.6em;
  font-size: 0.88em;
  font-weight: 500;
  letter-spacing: 0.09em;
  text-transform: none;
  color: #565656; /* darker grey than the old --muted #8d8d8d */
}

.page__content h2:first-child, .page__content h3:first-child {
  margin-top: 0;
}

.page__content ol.pubs > li {
  margin-bottom: 2.1em;
  line-height: 1.75;
}

.page__content ol.pubs > li::marker {
  color: #c9c9c9;
}

.page__content ol.pubs a.pub-title {
  color: var(--ink);
}

.page__content ol.pubs a.pub-title:hover {
  color: #000;
  border-bottom: 1px solid #000;
}

.pubs .pub-venue {
  font-weight: 500;
  font-style: italic;
}

/* Co-authors: clearly grey, but dark enough to read comfortably. */
.pubs .pub-authors {
  color: #4f4f4f;
}

.pubs details summary {
  border-bottom: none;
  letter-spacing: 0.05em;
  font-size: 0.8em;
}

.pubs details summary:hover {
  color: var(--ink);
}

.pubs details p {
  background: #fafafa;
}

.page__footer {
  border-top: none;
  margin-top: 7em;
}

.page__footer footer {
  max-width: 64rem;
  padding-bottom: 4em;
}

@media (max-width: 47em) {
  .masthead__inner-wrap {
    padding-top: 1.6em;
    padding-bottom: 1.6em;
  }
  .home-figure {
    margin-bottom: 3em;
  }
  .page__content h2, .page__content h3 {
    margin-top: 3em;
  }
}
/* --------------------------------------------------------------------------
   Links: black at rest, brick red on interaction.
   A restraint choice — nothing is coloured until someone reaches for it.
   :focus-visible is included so keyboard users get the same cue as the mouse,
   and :active so a tap on a phone flashes the colour too.
   -------------------------------------------------------------------------- */
:root {
  --link-hot: #a3382b;
}

.page__content ol.pubs a.pub-title {
  color: var(--ink);
}

/* Home page links: same pattern as the publication titles — dark at rest,
   brick red on interaction, rather than the quiet grey they were. */
.page__content .home-links a {
  color: var(--ink-soft);
}

/* Credit line under the picture. */
.home-credit {
  font-size: 0.78em;
  font-style: italic;
  line-height: 1.5;
  color: #9b9b9b;
  margin-top: 0.9em;
  max-width: var(--measure);
}

/* Colour only — the theme adds an underline on hover, which we don't want. */
.page__content ol.pubs a.pub-title:hover,
.page__content ol.pubs a.pub-title:focus-visible,
.page__content ol.pubs a.pub-title:active {
  color: var(--link-hot);
  text-decoration: none;
  border-bottom: none;
}

/* One line, not two. The theme adds text-decoration: underline on hover; we
   draw our own border-bottom, so the theme's underline is switched off
   everywhere or you get a double rule. */
.page__content a,
.page__content a:hover,
.page__content a:focus-visible,
.page__content a:active {
  text-decoration: none;
}

.page__content a:hover,
.page__content a:focus-visible,
.page__content a:active {
  color: var(--link-hot);
  border-bottom-color: var(--link-hot);
}

.page__content .home-links a,
.page__content .home-links a:hover,
.page__content .home-links a:focus-visible,
.page__content .home-links a:active {
  text-decoration: none;
}

.page__content .home-links a:hover,
.page__content .home-links a:focus-visible,
.page__content .home-links a:active {
  color: var(--link-hot);
  border-bottom-color: var(--link-hot);
}

.greedy-nav a:hover,
.greedy-nav a:focus-visible {
  color: var(--link-hot);
}

.greedy-nav .visible-links li a.active,
.greedy-nav .visible-links li a[aria-current=page] {
  border-bottom-color: var(--link-hot);
}

.pubs details summary:hover,
.pubs details summary:focus-visible {
  color: var(--link-hot);
  border-bottom-color: var(--link-hot);
}

/* Section headings: same grey, a touch more weight so they read as definite. */
.page__content h2,
.page__content h3 {
  font-weight: 600;
}
