/* Hallmark · genre: editorial · macrostructure: Marquee Hero · tone: statesman / institutional · anchor hue: batik gold (80)
 * H1 marquee knobs: size=xxl, alignment=left-bias, underlay=offices strip below · nav: N3 side-rail (left, 4.5rem, text-only indicator)
 * footer: Ft1 mast-headed (wordmark 3xl, tagline roman, links 2-line stack) · enrichment: none — one real portrait, re-cropped as batik detail
 * theme: custom (tokens.css) · motion: one orchestrated hero entrance only
 */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; }
body {
  margin: 0; overflow-x: clip;
  background: var(--color-ivory); color: var(--color-ink);
  font-family: var(--font-body); font-size: var(--text-md); line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 400; font-style: normal; line-height: 1.05; margin: 0; overflow-wrap: anywhere; min-width: 0; }
p, figure, blockquote { margin: 0; }
:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 3px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: var(--space-sm); top: -4rem; z-index: 30; background: var(--color-gold); color: var(--color-navy); padding: var(--space-2xs) var(--space-sm); }
.skip:focus { top: var(--space-sm); }

/* Page frame: content sits right of the rail on desktop */
main, .mast { margin-left: var(--rail); }
.credo, .profile, .milestones, .research, .voices, .mast { padding-inline: var(--gutter); }

/* ── N3 side rail ─────────────────────────────── */
.rail {
  position: fixed; inset: 0 auto 0 0; z-index: 20; width: var(--rail);
  display: flex; flex-direction: column; align-items: center; justify-content: space-between;
  padding-block: var(--space-md); background: var(--color-navy); color: var(--color-on-navy);
  border-right: var(--rule-hair) solid var(--color-rule-navy);
}
.rail a { color: inherit; text-decoration: none; }
.rail__mark { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-gold) !important; letter-spacing: 0.02em; }
.rail__nav { display: flex; flex-direction: column; align-items: center; gap: var(--space-md); }
.rail__nav a, .rail__contact {
  writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;
  font-size: var(--text-xs); font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--color-on-navy-2); padding-inline: var(--space-2xs);
  transition: color var(--dur-short) var(--ease-out);
}
.rail__nav a:hover, .rail__contact:hover, .rail__nav a[aria-current="true"] { color: var(--color-gold); }
.rail__nav a[aria-current="true"] { border-right: var(--rule-hair) solid var(--color-gold); }

/* ── Hero (Marquee) ───────────────────────────── */
.hero {
  position: relative; background: var(--color-navy); color: var(--color-on-navy);
  min-height: min(100svh, 60rem); display: grid; grid-template-rows: 1fr auto; overflow: hidden;
}
.hero__portrait {
  position: absolute; top: 0; right: 0; width: 68%; height: 100%;
  object-fit: cover; object-position: 72% 18%;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 38%);
          mask-image: linear-gradient(to right, transparent 0%, black 38%);
}
.hero__inner { position: relative; align-self: end; padding: var(--space-4xl) var(--gutter) var(--space-xl); }
.hero__office { font-size: var(--text-sm); letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-gold); margin-bottom: var(--space-md); }
.hero__name { font-size: var(--text-name); line-height: 0.92; text-transform: uppercase; letter-spacing: 0.01em; }
.hero__name span { display: block; }
.hero__name span + span { padding-left: 0.9em; }
.hero__line { margin-top: var(--space-lg); max-width: 30rem; font-size: var(--text-lg); line-height: 1.45; color: var(--color-on-navy-2); }
.hero__record { position: relative; padding: var(--space-md) var(--gutter); border-top: var(--rule-hair) solid var(--color-rule-navy); background: var(--color-navy); }
.hero__offices { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-md); }
.hero__offices li { font-size: var(--text-sm); color: var(--color-on-navy-2); }
.hero__offices span { display: block; font-family: var(--font-display); font-size: var(--text-2xl); color: var(--color-gold); line-height: 1; margin-bottom: var(--space-2xs); font-variant-numeric: lining-nums tabular-nums; }
.hero__source { margin-top: var(--space-sm); font-size: var(--text-xs); color: var(--color-on-navy-2); }
.hero__source a { color: var(--color-on-navy); text-underline-offset: 0.2em; }

/* one orchestrated entrance */
@media (prefers-reduced-motion: no-preference) {
  .hero__portrait { animation: fade var(--dur-entrance) var(--ease-out) both; }
  .hero__name span { animation: rise var(--dur-entrance) var(--ease-out) both; }
  .hero__name span + span { animation-delay: 90ms; }
  .hero__office, .hero__line { animation: fade var(--dur-entrance) var(--ease-out) 200ms both; }
}
@keyframes rise { from { opacity: 0; transform: translateY(0.25em); } to { opacity: 1; transform: none; } }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }

/* ── Credo ────────────────────────────────────── */
.credo { padding-block: var(--space-4xl) var(--space-3xl); max-width: calc(var(--wrap) + 2 * var(--gutter)); }
.credo__text { font-family: var(--font-display); font-size: var(--text-3xl); line-height: 1.08; max-width: 17ch; }
.credo__sub { margin-top: var(--space-lg); margin-left: auto; max-width: 26rem; color: var(--color-ink-2); padding-top: var(--space-sm); border-top: var(--rule-hair) solid var(--color-ink); }

/* ── Profile with batik detail ────────────────── */
.profile {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-lg);
  padding-block: var(--space-2xl) var(--space-4xl); max-width: calc(var(--wrap) + 2 * var(--gutter));
}
.profile__batik {
  grid-column: 1 / span 5; min-height: 34rem; align-self: stretch;
  background-color: var(--color-ivory-2); background-repeat: no-repeat;
  background-size: 700%; background-position: 68% 96%;
}
.profile__text { grid-column: 7 / span 6; align-self: center; }
.profile__text h2 { font-size: var(--text-2xl); margin-bottom: var(--space-lg); }
.profile__lede { font-size: var(--text-lg); line-height: 1.5; margin-bottom: var(--space-md); }
.profile__lede::first-letter { float: left; font-family: var(--font-display); font-size: 4.2em; line-height: 0.82; padding: 0.06em 0.08em 0 0; color: var(--color-gold-ink); }
.profile__text p + p { margin-top: var(--space-sm); color: var(--color-ink-2); max-width: var(--measure); }
.profile__facts { margin: var(--space-xl) 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-md); }
.profile__facts div { border-top: var(--rule-hair) solid var(--color-ink); padding-top: var(--space-xs); }
.profile__facts dt { font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-ink-2); }
.profile__facts dd { margin: var(--space-3xs) 0 0; font-size: var(--text-sm); }

/* ── Milestones (dark chapter) ────────────────── */
.milestones { background: var(--color-navy); color: var(--color-on-navy); padding-block: var(--space-3xl) var(--space-2xl); }
.milestones > h2 { font-size: var(--text-2xl); margin-bottom: var(--space-xl); }
.milestones__list { list-style: none; margin: 0; padding: 0; }
.milestones__list li {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-lg); align-items: end;
  padding-block: var(--space-xl); border-top: var(--rule-hair) solid var(--color-rule-navy);
}
.milestones__year { grid-column: 1 / span 5; font-family: var(--font-display); font-size: var(--text-year); line-height: 0.8; color: var(--color-gold); font-variant-numeric: lining-nums tabular-nums; }
.milestones__list li > div { grid-column: 7 / span 5; padding-bottom: var(--space-2xs); }
.milestones__list li:nth-child(2) .milestones__year { grid-column: 8 / span 5; grid-row: 1; text-align: right; }
.milestones__list li:nth-child(2) > div { grid-column: 2 / span 5; grid-row: 1; }
.milestones__list h3 { font-size: var(--text-xl); line-height: 1.15; margin-bottom: var(--space-xs); }
.milestones__list p:not(.milestones__year) { color: var(--color-on-navy-2); font-size: var(--text-sm); max-width: 44ch; }
.milestones__also { margin-top: var(--space-xl); padding-top: var(--space-lg); border-top: var(--rule-hair) solid var(--color-rule-navy); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-lg); }
.milestones__also h3 { grid-column: 1 / span 3; font-size: var(--text-lg); color: var(--color-gold); }
.milestones__also li span { display: block; font-family: var(--font-display); font-size: var(--text-lg); color: var(--color-gold); line-height: 1.2; }
.milestones__also ul { grid-column: 4 / -1; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-sm) var(--space-lg); font-size: var(--text-sm); color: var(--color-on-navy-2); }

/* ── Research head ────────────────────────────── */
.research { padding-block: var(--space-3xl); max-width: calc(var(--wrap) + 2 * var(--gutter)); }
.research__head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-lg); align-items: end; margin-bottom: var(--space-2xl); }
.research__head h2 { grid-column: 1 / span 6; font-size: var(--text-3xl); }
.research__head p { grid-column: 8 / span 5; color: var(--color-ink-2); }

/* ── Voices ───────────────────────────────────── */
.voices { background: var(--color-navy-2); color: var(--color-on-navy); padding-block: var(--space-3xl); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-lg); row-gap: var(--space-2xl); }
.voices__main { grid-column: 1 / span 10; }
.voices__main blockquote p { font-family: var(--font-display); font-size: var(--text-2xl); line-height: 1.2; }
.voices__main blockquote p::before { content: "“"; display: block; font-size: 2.6em; line-height: 0.6; color: var(--color-gold); margin-bottom: var(--space-sm); }
.voices__second { grid-column: 6 / span 6; border-top: var(--rule-hair) solid var(--color-rule-navy); padding-top: var(--space-md); }
.voices__second blockquote p { font-family: var(--font-display); font-size: var(--text-xl); line-height: 1.3; }
.voices figcaption { margin-top: var(--space-md); font-size: var(--text-sm); color: var(--color-on-navy-2); }
.voices figcaption strong { display: block; color: var(--color-gold); font-weight: 500; }

.link { color: var(--color-ink); font-weight: 500; font-size: var(--text-sm); white-space: nowrap; text-underline-offset: 0.3em; text-decoration-color: var(--color-gold-ink); transition: text-decoration-thickness var(--dur-short) var(--ease-out); }
.link:hover { text-decoration-thickness: 2px; }

/* ── Ft1 mast ─────────────────────────────────── */
.mast { background: var(--color-navy); color: var(--color-on-navy); padding-block: var(--space-3xl) var(--space-lg); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-lg); row-gap: var(--space-2xl); }
.mast__name { grid-column: 1 / span 7; font-family: var(--font-display); font-size: var(--text-3xl); line-height: 1; }
.mast__side { grid-column: 9 / span 4; align-self: end; }
.mast__label { font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-on-navy-2); }
.mast__mail { display: inline-block; margin-block: var(--space-2xs) var(--space-md); font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-gold); text-underline-offset: 0.25em; text-decoration-thickness: var(--rule-hair); overflow-wrap: anywhere; }
.mast__mail:hover { text-decoration-thickness: 2px; }
.mast__addr { font-size: var(--text-sm); color: var(--color-on-navy-2); }
.mast__base { grid-column: 1 / -1; padding-top: var(--space-md); border-top: var(--rule-hair) solid var(--color-rule-navy); font-size: var(--text-xs); color: var(--color-on-navy-2); letter-spacing: 0.04em; }

/* ── Most cited ───────────────────────────────── */
.cited { padding: var(--space-3xl) var(--gutter); max-width: calc(var(--wrap) + 2 * var(--gutter)); }
.cited__head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-lg); align-items: end; margin-bottom: var(--space-2xl); }
.cited__head h2 { grid-column: 1 / span 7; font-size: var(--text-3xl); }
.cited__head p { grid-column: 9 / span 4; color: var(--color-ink-2); font-size: var(--text-sm); }
.cited__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-2xl); border-top: 2px solid var(--color-ink); }
.cited__item { padding-block: var(--space-lg) var(--space-xl); border-bottom: var(--rule-hair) solid var(--color-rule); }
.cited__item:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-lg); }
.cited__item:first-child .cited__count { grid-column: 1 / span 4; grid-row: 1 / span 4; }
.cited__item:first-child .cited__count span { font-size: var(--text-year); }
.cited__item:first-child > :not(.cited__count) { grid-column: 6 / -1; }
.cited__item:first-child h3 { font-size: var(--text-2xl); }
.cited__count { font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-ink-2); margin-bottom: var(--space-sm); }
.cited__count span { display: block; font-family: var(--font-display); font-size: var(--text-3xl); line-height: 0.9; letter-spacing: 0; text-transform: none; color: var(--color-gold-ink); font-variant-numeric: lining-nums; margin-bottom: var(--space-2xs); }
.cited__item h3 { font-size: var(--text-xl); line-height: 1.15; margin-bottom: var(--space-sm); }
.cited__item h3 a, .latest h3 a, .pub__title a { color: inherit; text-decoration: none; background-image: linear-gradient(var(--color-gold-ink), var(--color-gold-ink)); background-size: 0 1px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size var(--dur-short) var(--ease-out); }
.cited__item h3 a:hover, .latest h3 a:hover, .pub__title a:hover { background-size: 100% 1px; }
.cited__finding { color: var(--color-ink); max-width: 60ch; margin-bottom: var(--space-sm); }
.cited__venue { font-size: var(--text-xs); color: var(--color-ink-2); margin-bottom: var(--space-md); }
.cited__venue strong, .pub__authors strong { color: var(--color-ink); font-weight: 600; }
.cited__actions, .pub__actions { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-xs) var(--space-lg); }
.cited__all { display: inline-block; margin-top: var(--space-xl); }

/* Cite disclosure — shared by home and publications page */
.cite { font-size: var(--text-sm); }
.cite summary { cursor: pointer; font-weight: 500; color: var(--color-gold-ink); list-style: none; white-space: nowrap; }
.cite summary::-webkit-details-marker { display: none; }
.cite summary::after { content: " +"; }
.cite[open] summary::after { content: " –"; }
.cite[open] { flex-basis: 100%; }
.cite__panel { margin-top: var(--space-sm); padding: var(--space-md); background: var(--color-ivory-2); }
.cite__label { font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-ink-2); margin-block: var(--space-sm) var(--space-3xs); }
.cite__label:first-child { margin-top: 0; }
.cite__text { font-size: var(--text-xs); line-height: 1.55; overflow-wrap: anywhere; user-select: all; }
pre.cite__text { margin: 0; white-space: pre-wrap; font-family: ui-monospace, "SF Mono", Menlo, monospace; }
.copy { margin-top: var(--space-xs); font: inherit; font-size: var(--text-xs); font-weight: 600; color: var(--color-ink); background: none; border: var(--rule-hair) solid var(--color-ink); padding: var(--space-3xs) var(--space-xs); cursor: pointer; white-space: nowrap; min-height: 2rem; }
.copy:hover { background: var(--color-ink); color: var(--color-ivory); }
.copy[data-done] { border-color: var(--color-gold-ink); color: var(--color-gold-ink); background: none; }

/* ── Themes (home) ────────────────────────────── */
.themes { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--color-ink); counter-reset: theme; }
.themes li { counter-increment: theme; border-bottom: var(--rule-hair) solid var(--color-rule); }
.themes a { display: grid; grid-template-columns: 4rem minmax(0, 1fr) auto; align-items: baseline; gap: var(--space-md); padding-block: var(--space-md); color: inherit; text-decoration: none; }
.themes a::before { content: counter(theme, upper-roman); font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-gold-ink); }
.themes__name { font-family: var(--font-display); font-size: var(--text-xl); line-height: 1.15; transition: color var(--dur-short) var(--ease-out); }
.themes__count { font-size: var(--text-xs); letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-ink-2); white-space: nowrap; }
.themes a:hover .themes__name { color: var(--color-gold-ink); }

/* ── Lead author ──────────────────────────────── */
.lead { padding: var(--space-2xl) var(--gutter) var(--space-3xl); max-width: calc(var(--wrap) + 2 * var(--gutter)); display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--space-lg); }
.lead h2 { grid-column: 1 / span 4; font-size: var(--text-2xl); }
.lead__list { grid-column: 5 / -1; list-style: none; margin: 0; padding: 0; border-top: var(--rule-hair) solid var(--color-ink); }
.lead__list li { border-bottom: var(--rule-hair) solid var(--color-rule); }
.lead__list a { display: block; padding-block: var(--space-sm); color: inherit; text-decoration: none; }
.lead__title { display: block; font-family: var(--font-display); font-size: var(--text-lg); line-height: 1.25; }
.lead__meta { display: block; margin-top: var(--space-3xs); font-size: var(--text-xs); color: var(--color-ink-2); }
.lead__list a:hover .lead__title { color: var(--color-gold-ink); }

/* ── Latest ───────────────────────────────────── */
.latest { padding: var(--space-3xl) var(--gutter); max-width: calc(var(--wrap) + 2 * var(--gutter)); }
.latest h2 { font-size: var(--text-2xl); margin-bottom: var(--space-lg); }
.latest__list { list-style: none; margin: 0 0 var(--space-lg); padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-lg); border-top: var(--rule-hair) solid var(--color-ink); }
.latest__list li { padding-top: var(--space-md); }
.latest__year { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-gold-ink); margin-bottom: var(--space-2xs); }
.latest__list h3 { font-size: var(--text-lg); line-height: 1.2; margin-bottom: var(--space-xs); }
.latest__list p:last-child { font-size: var(--text-xs); color: var(--color-ink-2); }
.mast__base a { color: inherit; text-underline-offset: 0.2em; }

/* ── Publications page ────────────────────────── */
.pubs-head { background: var(--color-navy); color: var(--color-on-navy); padding: var(--space-3xl) var(--gutter) var(--space-xl); }
.pubs-head h1 { font-size: var(--text-name); line-height: 0.95; }
.pubs-head__lede { margin-top: var(--space-lg); max-width: 40rem; font-size: var(--text-lg); line-height: 1.45; color: var(--color-on-navy-2); }
.pubs-head__stats { list-style: none; margin: var(--space-xl) 0 0; padding: var(--space-md) 0 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-md); border-top: var(--rule-hair) solid var(--color-rule-navy); }
.pubs-head__stats li { font-size: var(--text-sm); color: var(--color-on-navy-2); }
.pubs-head__stats span { display: block; font-family: var(--font-display); font-size: var(--text-2xl); color: var(--color-gold); line-height: 1; margin-bottom: var(--space-2xs); }
.pubs-head__source { margin-top: var(--space-md); font-size: var(--text-xs); color: var(--color-on-navy-2); }

.pubs { padding: 0 var(--gutter) var(--space-3xl); max-width: calc(var(--wrap) + 2 * var(--gutter)); }
.tools { position: sticky; top: 0; z-index: 10; background: var(--color-ivory); padding-block: var(--space-md) var(--space-sm); border-bottom: var(--rule-hair) solid var(--color-rule); }
.tools__search input { width: 100%; font: inherit; font-size: var(--text-lg); padding: var(--space-xs) 0; background: transparent; border: 0; border-bottom: 2px solid var(--color-ink); color: var(--color-ink); border-radius: 0; }
.tools__search input::placeholder { color: var(--color-ink-2); }
.tools__search input:focus-visible { outline: none; border-bottom-color: var(--color-gold-ink); }
.tools__row { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-lg); align-items: center; margin-top: var(--space-sm); font-size: var(--text-sm); }
.tools__sort select { font: inherit; margin-left: var(--space-2xs); padding: var(--space-3xs) var(--space-xs); border: var(--rule-hair) solid var(--color-rule); background: var(--color-ivory); color: var(--color-ink); border-radius: 0; }
.tools__check { display: inline-flex; gap: var(--space-2xs); align-items: center; white-space: nowrap; cursor: pointer; }
.tools__check input { accent-color: var(--color-navy); width: 1rem; height: 1rem; }
.chips { display: flex; gap: var(--space-2xs); overflow-x: auto; margin-top: var(--space-sm); padding-bottom: var(--space-3xs); scrollbar-width: thin; }
.chip { flex: none; font: inherit; font-size: var(--text-xs); font-weight: 500; white-space: nowrap; padding: var(--space-2xs) var(--space-sm); border: var(--rule-hair) solid var(--color-rule); background: transparent; color: var(--color-ink); cursor: pointer; min-height: 2.25rem; }
.chip span { color: var(--color-ink-2); margin-left: var(--space-3xs); }
.chip:hover { border-color: var(--color-ink); }
.chip[aria-pressed="true"] { background: var(--color-navy); color: var(--color-on-navy); border-color: var(--color-navy); }
.chip[aria-pressed="true"] span { color: var(--color-gold); }
.tools__count { margin-top: var(--space-xs); font-size: var(--text-xs); color: var(--color-ink-2); }

.pub-list { list-style: none; margin: 0; padding: 0; }
.pub { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: var(--space-lg); padding-block: var(--space-lg); border-bottom: var(--rule-hair) solid var(--color-rule); }
.pub[hidden] { display: none; }
.pub__year { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-gold-ink); line-height: 1.1; font-variant-numeric: lining-nums tabular-nums; }
.pub__title { font-size: var(--text-xl); line-height: 1.2; margin-bottom: var(--space-xs); }
.pub__authors { font-size: var(--text-sm); color: var(--color-ink-2); }
.pub__venue { font-size: var(--text-sm); font-style: italic; color: var(--color-ink-2); margin-top: var(--space-3xs); }
.pub__meta { display: flex; flex-wrap: wrap; gap: var(--space-2xs) var(--space-sm); align-items: center; margin-block: var(--space-sm); font-size: var(--text-xs); }
.pub__cites { font-weight: 600; }
.tag { padding: 0.1rem var(--space-2xs); border: var(--rule-hair) solid var(--color-rule); color: var(--color-ink-2); white-space: nowrap; }
.tag--oa { border-color: var(--color-gold-ink); color: var(--color-gold-ink); }
.pub__actions > a:not(.link) { font-size: var(--text-sm); color: var(--color-ink-2); text-underline-offset: 0.2em; }
.pubs__empty { padding-block: var(--space-2xl); color: var(--color-ink-2); }

/* ── ≤ 60rem: rail becomes top bar, grids collapse ── */
@media (max-width: 60rem) {
  main, .mast { margin-left: 0; }
  .rail { position: sticky; inset: auto; top: 0; width: auto; flex-direction: row; padding: var(--space-xs) var(--gutter); border-right: 0; border-bottom: var(--rule-hair) solid var(--color-rule-navy); }
  .rail__nav { display: none; }
  .rail__contact { writing-mode: horizontal-tb; transform: none; min-height: 2.75rem; display: inline-flex; align-items: center; }

  .hero { min-height: 0; grid-template-rows: auto auto auto; }
  .hero__portrait { position: relative; width: 100%; height: auto; aspect-ratio: 4 / 5; object-position: 76% 10%;
    -webkit-mask-image: linear-gradient(to bottom, black 55%, transparent 100%); mask-image: linear-gradient(to bottom, black 55%, transparent 100%); }
  .hero__inner { margin-top: -9rem; padding-top: 0; }
  .hero__name span + span { padding-left: 0; }
  .hero__offices { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-md); }
  .cited__head h2, .cited__head p, .lead h2, .lead__list { grid-column: 1 / -1; }
  .cited__head { row-gap: var(--space-md); }
  .cited__list { grid-template-columns: minmax(0, 1fr); }
  .cited__item:first-child { display: block; }
  .cited__item:first-child .cited__count span { font-size: var(--text-3xl); }
  .lead { row-gap: var(--space-md); }
  .latest__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pubs-head__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pub { grid-template-columns: minmax(0, 1fr); gap: var(--space-2xs); }
  .tools { top: 3.75rem; }

  .profile__batik, .profile__text, .research__head h2, .research__head p, .voices__main, .voices__second, .mast__name, .mast__side,
  .milestones__also h3, .milestones__also ul { grid-column: 1 / -1; }
  .profile { row-gap: var(--space-xl); padding-bottom: var(--space-3xl); }
  .profile__batik { min-height: 16rem; background-size: 520%; }
  .research__head { row-gap: var(--space-md); }
  .milestones__list li, .milestones__list li:nth-child(2) { row-gap: var(--space-sm); }
  .milestones__list .milestones__year, .milestones__list li > div,
  .milestones__list li:nth-child(2) .milestones__year, .milestones__list li:nth-child(2) > div { grid-column: 1 / -1; grid-row: auto; text-align: left; }
  .milestones__also { row-gap: var(--space-md); }
  .credo { padding-block: var(--space-3xl) var(--space-2xl); }
}
@media (max-width: 40rem) {
  .milestones__also ul { grid-template-columns: minmax(0, 1fr); }
  .hero__inner { margin-top: -6rem; }
  .latest__list { grid-template-columns: minmax(0, 1fr); }
  .pubs-head__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .themes a { grid-template-columns: 2.5rem minmax(0, 1fr); }
  .themes__count { grid-column: 2; }
  .pub__title { font-size: var(--text-lg); }
  .tools { position: static; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rail a, .link { transition: none; }
}

/* ── WordPress: posts, pages, archives ────────── */
.page-main { padding: var(--space-3xl) var(--gutter); max-width: calc(52rem + 2 * var(--gutter)); }
.entry__head { margin-bottom: var(--space-xl); }
.entry__head h1 { font-size: var(--text-3xl); }
.entry__date, .posts__date { font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-gold-ink); margin-bottom: var(--space-sm); }
.entry__image { margin: 0 0 var(--space-xl); }
.entry__image img { width: 100%; height: auto; }
.entry__content { font-size: var(--text-md); }
.entry__content > * + * { margin-top: var(--space-md); }
.entry__content h2 { font-size: var(--text-2xl); margin-top: var(--space-2xl); }
.entry__content h3 { font-size: var(--text-xl); margin-top: var(--space-xl); }
.entry__content a { color: var(--color-ink); text-decoration-color: var(--color-gold-ink); text-underline-offset: 0.2em; }
.entry__content img { max-width: 100%; height: auto; }
.entry__content blockquote { margin-inline: 0; padding-left: var(--space-md); border-left: var(--rule-hair) solid var(--color-ink); font-family: var(--font-display); font-size: var(--text-xl); line-height: 1.3; }
.entry__content ul, .entry__content ol { padding-left: 1.25em; }
.entry__content figure { margin-inline: 0; }
.entry__content figcaption, .wp-caption-text { font-size: var(--text-xs); color: var(--color-ink-2); margin-top: var(--space-2xs); }
.posts { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--color-ink); }
.posts__item { padding-block: var(--space-lg); border-bottom: var(--rule-hair) solid var(--color-rule); }
.posts__item h2 { font-size: var(--text-xl); line-height: 1.2; }
.posts__item h2 a { color: inherit; text-decoration: none; }
.posts__item h2 a:hover { color: var(--color-gold-ink); }
.posts__excerpt { margin-top: var(--space-xs); color: var(--color-ink-2); font-size: var(--text-sm); }
.posts__pagination { margin-top: var(--space-xl); font-size: var(--text-sm); }
.posts__pagination .nav-links { display: flex; gap: var(--space-sm); flex-wrap: wrap; }
.posts__pagination a, .posts__pagination span { padding: var(--space-3xs) var(--space-xs); color: var(--color-ink); }
.posts__pagination .current { background: var(--color-navy); color: var(--color-on-navy); }
.pubs-head__note { margin-top: var(--space-md); max-width: 40rem; color: var(--color-on-navy-2); }
.pubs-head__note a { color: var(--color-on-navy); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Logged-in admin bar: keep the rail and sticky tools below it */
.admin-bar .rail { top: 32px; }
.admin-bar .tools { top: 32px; }
@media (max-width: 60rem) {
  .admin-bar .rail { top: 0; }
  .admin-bar .tools { top: 3.75rem; }
}
@media (max-width: 782px) {
  .admin-bar .rail { top: 0; }
}
