/* AGPT site styles. Colours, type and layout follow the Wix Studio build (data/wix-export/global.css
   and the Wix theme): ink #1E1E1E, paper #F3F4F4, AGPT red #A23338, navy #2B416E, rose #F1E4E4. */
:root {
  --red: #a23338;
  --red-dark: #7a262a;
  --ink: #1e1e1e;
  --paper: #f3f4f4;
  --paper-2: #ebe8e5;
  --rose: #f1e4e4;
  --rose-soft: #f7ecea;
  --navy: #2b416e;
  --muted: #5f5f5f;
  --line: #cfcac3;
  --serif: "EB Garamond", Georgia, serif;
  --sans: "Assistant", system-ui, sans-serif;
  --gutter: clamp(16px, 3vw, 40px);
  --content: 1120px;
  --radius: 4px;
  --shadow-sm: 0 2px 8px rgba(30,20,20,.08);
  --shadow-md: 0 10px 28px rgba(30,20,20,.14);
  --ease: .22s ease;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: var(--ink); font: 18px/1.65 var(--sans); }
img { max-width: 100%; display: block; }
a { color: var(--red); text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color var(--ease), text-decoration-color var(--ease); }
a:hover { color: var(--red-dark); text-decoration-thickness: 2px; }
::selection { background: #f0c9cb; color: var(--ink); }
:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.12; letter-spacing: -0.01em; }
h1 { font-size: clamp(2.2rem, 4.4vw, 3.6rem); margin: 0; }
h2 { font-size: clamp(1.6rem, 2.8vw, 2.4rem); }
.wrap { max-width: calc(var(--content) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }
.eyebrow { font: 600 13px/1.4 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); margin: 0 0 6px; }
.plain { list-style: none; padding: 0; margin: 0; }
.lead { font-size: 19px; }
.prose { max-width: 820px; }
/* A "wrap prose" block keeps the page grid (so it lines up with the title) and limits its children to a reading width. */
.wrap.prose { max-width: calc(var(--content) + 2 * var(--gutter)); }
.wrap.prose > * { max-width: 820px; }
.prose--center { margin: 0 auto; text-align: center; }
.placeholder { border: 1px dashed var(--red); background: #fff8e1; padding: 1rem; color: var(--muted); font-style: italic; }
.credit { font-size: 13px; color: var(--muted); }
.credit-overlay {
  position: absolute; right: 14px; bottom: 10px; left: 14px; z-index: 2; pointer-events: none; text-align: right;
  font: 11px/1.3 var(--sans); color: rgba(255,255,255,.75); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Buttons: two kinds. Solid red pill for the main action; outline pill (.btn--outline) for secondary ones.
   Older modifiers map onto these: --navy = outline, --dark = outline, --light = white pill on dark/red. */
.btn {
  display: inline-flex; align-items: center; gap: .6em; padding: 13px 28px; background: var(--red); color: #fff; text-decoration: none;
  font: 600 14px/1.2 var(--sans); letter-spacing: .12em; text-transform: uppercase; border: 1.5px solid var(--red); border-radius: 999px;
  cursor: pointer; box-shadow: 0 2px 8px rgba(162,51,56,.22); transition: background var(--ease), border-color var(--ease), color var(--ease), box-shadow var(--ease), transform var(--ease);
}
.btn:hover { background: var(--red-dark); border-color: var(--red-dark); color: #fff; text-decoration: none; box-shadow: 0 6px 16px rgba(162,51,56,.3); transform: translateY(-1px); }
.btn--outline, .btn--navy, .btn--dark { background: transparent; color: var(--ink); border-color: currentColor; box-shadow: none; }
.btn--outline:hover, .btn--navy:hover, .btn--dark:hover { background: var(--ink); border-color: var(--ink); color: #fff; box-shadow: none; }
.hero .btn--navy, .on-dark .btn--outline { color: #fff; }
.hero .btn--navy:hover, .on-dark .btn--outline:hover { background: #fff; border-color: #fff; color: var(--ink); }
.btn--light { background: #fff; border-color: #fff; color: var(--red-dark); box-shadow: 0 4px 14px rgba(0,0,0,.2); }
.btn--light:hover { background: var(--rose-soft); border-color: var(--rose-soft); color: var(--red-dark); }
.btn--small { padding: 9px 18px; font-size: 13px; }
.btn--arrow::after { content: "\2192"; letter-spacing: 0; transition: transform var(--ease); }
.btn--arrow:hover::after { transform: translateX(4px); }
.btn--pill { padding: 9px 30px; }
button.btn { font-family: var(--sans); }

/* Header: thin red rule on top, logo + two-line wordmark split by a hairline, quiet nav with a red
   underline that grows on hover, solid red Apply pill with an arrow. */
.site-header { background: var(--rose-soft); position: sticky; top: 0; z-index: 20; transition: box-shadow var(--ease); border-top: 3px solid var(--red); border-bottom: 1px solid #e6d3d0; }
.site-header__inner { display: flex; align-items: center; gap: 32px; max-width: 1440px; margin: 0 auto; min-height: 96px; padding: 0 var(--gutter); transition: min-height var(--ease); }
/* Sticky header: shrinks a little once the page scrolls (class set by a small script in base.njk). */
.site-header.is-scrolled { box-shadow: 0 6px 20px rgba(30,20,20,.1); }
.site-header.is-scrolled .site-header__inner { min-height: 72px; }
.site-header .brand img { transition: width var(--ease); }
.site-header.is-scrolled .brand img { width: 46px; }
html { scroll-padding-top: 96px; }
.brand { display: flex; align-items: center; gap: 16px; color: var(--ink); text-decoration: none; flex-shrink: 0; }
.brand img { width: 58px; height: auto; }
.brand__text { display: flex; flex-direction: column; padding-left: 16px; border-left: 1px solid #d9bfbb; line-height: 1.15; }
.brand__pre { font: 600 11px/1.4 var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.brand__name { font: 500 21px/1.15 var(--serif); letter-spacing: -.005em; margin-top: 3px; }
.brand:hover .brand__name { color: var(--red); }
.site-nav { flex: 1; display: flex; justify-content: center; }
.site-nav ul { display: flex; gap: clamp(18px, 2.2vw, 34px); list-style: none; margin: 0; padding: 0; }
.site-nav a { position: relative; display: block; padding: 8px 0; color: var(--ink); text-decoration: none; font: 400 16px/1.3 var(--sans); letter-spacing: .02em; transition: color .2s; }
.site-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 2px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.site-nav a:hover { color: var(--red); }
.site-nav a:hover::after, .site-nav a[aria-current]::after { transform: scaleX(1); }
.site-nav a[aria-current] { color: var(--red); font-weight: 600; }
.header-apply { display: inline-flex; align-items: center; gap: .55em; flex-shrink: 0; padding: 11px 26px; border-radius: 999px; background: var(--red); color: #fff; text-decoration: none; font: 600 14px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; box-shadow: 0 2px 8px rgba(162,51,56,.25); transition: background .2s, box-shadow .2s, transform .2s; }
.header-apply::after { content: "\2192"; letter-spacing: 0; transition: transform .2s ease; }
.header-apply:hover { background: var(--red-dark); box-shadow: 0 4px 14px rgba(162,51,56,.35); transform: translateY(-1px); }
.header-apply:hover::after { transform: translateX(3px); }
.site-nav a:focus-visible, .header-apply:focus-visible, .brand:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.nav-toggle, .nav-toggle__label { display: none; }
@media (max-width: 1180px) and (min-width: 1001px) {
  .brand__name { font-size: 18px; }
  .site-header__inner { gap: 20px; }
}
@media (max-width: 1000px) {
  .site-header__inner { min-height: 76px; gap: 12px; }
  .site-header.is-scrolled .site-header__inner { min-height: 64px; }
  .site-header.is-scrolled .brand img { width: 40px; }
  .brand { gap: 12px; }
  .brand img { width: 46px; }
  .brand__text { padding-left: 12px; }
  .brand__pre { font-size: 9.5px; letter-spacing: .14em; }
  .brand__name { font-size: 17px; }
  .site-nav { flex: 0; }
  .nav-toggle:focus-visible + .nav-toggle__label { outline: 2px solid var(--red); outline-offset: 4px; }
  .nav-toggle__label { display: block; order: 3; width: 26px; height: 20px; cursor: pointer; position: relative; margin-left: 6px; }
  .nav-toggle__label span, .nav-toggle__label span::before, .nav-toggle__label span::after { position: absolute; left: 0; right: 0; height: 2px; border-radius: 2px; background: var(--ink); content: ""; transition: transform .25s ease, top .25s ease, background .2s; }
  .nav-toggle__label span { top: 9px; }
  .nav-toggle__label span::before { top: -8px; }
  .nav-toggle__label span::after { top: 8px; }
  .nav-toggle:checked + .nav-toggle__label span { background: transparent; }
  .nav-toggle:checked + .nav-toggle__label span::before { top: 0; transform: rotate(45deg); background: var(--ink); }
  .nav-toggle:checked + .nav-toggle__label span::after { top: 0; transform: rotate(-45deg); background: var(--ink); }
  .header-apply { margin-left: auto; padding: 9px 16px; font-size: 12.5px; }
  .site-nav ul { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--rose-soft); flex-direction: column; gap: 0; padding: 8px var(--gutter) 16px; border-top: 1px solid #e6d3d0; box-shadow: 0 14px 28px rgba(0,0,0,.1); }
  .nav-toggle:checked ~ .site-nav ul { display: flex; }
  .site-nav li + li { border-top: 1px solid #e6d3d0; }
  .site-nav a { padding: 13px 0; font-size: 18px; }
  .site-nav a::after { display: none; }
  .site-nav a[aria-current] { box-shadow: inset 3px 0 0 var(--red); padding-left: 12px; }
}
@media (max-width: 440px) {
  .brand { gap: 10px; }
  .brand img { width: 40px; }
  .brand__text { padding-left: 10px; }
  .brand__pre { font-size: 8.5px; letter-spacing: .1em; }
  .brand__name { font-size: 15px; margin-top: 1px; }
  .header-apply { padding: 8px 13px; font-size: 12px; letter-spacing: .1em; }
  .header-apply::after { display: none; }
}

/* Artwork strip at the top of a page, with its credit in the corner. With a title (front matter
   `heading`, `eyebrow`, `sub`) the title sits on the painting under a dark fade. */
.art-strip {
  position: relative; height: clamp(180px, 20vw, 340px);
  background: linear-gradient(rgba(27,26,25,0), rgba(27,26,25,.35)), var(--art) var(--art-pos, center) / cover no-repeat;
}
.art-strip--titled {
  height: auto; min-height: clamp(240px, 24vw, 340px); display: flex; align-items: flex-end;
  background: linear-gradient(180deg, rgba(20,16,16,.05) 0%, rgba(20,16,16,.35) 45%, rgba(20,16,16,.82) 100%), var(--art) var(--art-pos, center) / cover no-repeat;
}
.art-strip .credit-overlay { color: rgba(255,255,255,.75); }

/* Page titles: eyebrow, serif title, short red rule. Same width as the content below. */
.page-title { width: 100%; max-width: calc(var(--content) + 2 * var(--gutter)); margin: 0 auto; padding: 64px var(--gutter) 8px; }
.page-title h1::after { content: ""; display: block; width: 56px; height: 3px; background: var(--red); margin-top: 22px; }
.page-title__sub { color: var(--muted); font-size: 19px; margin: 16px 0 0; max-width: 760px; }
.page-title--on-art { padding: 72px var(--gutter) 44px; color: #fff; }
.page-title--on-art h1 { text-shadow: 0 2px 18px rgba(0,0,0,.35); }
.page-title--on-art .eyebrow { color: #f3c3c5; }
.page-title--on-art .page-title__sub { color: rgba(255,255,255,.85); }
@media (max-width: 700px) { .page-title { padding-top: 44px; } .page-title--on-art { padding: 56px var(--gutter) 46px; } .about-intro p { font-size: 17px; } }
.section { padding: 56px 0; }
.section--tight { padding: 32px 0 72px; }
.section--alt { background: var(--paper-2); }
.about-intro { padding-top: 40px; }
.about-intro p { font-size: 19px; }
.empty-note { background: var(--rose-soft); border-top: 3px solid var(--red); border-radius: 0 0 var(--radius) var(--radius); text-align: center; padding: 56px 24px; max-width: 820px; margin: 0 auto; }
.empty-note h2 { font-size: clamp(1.6rem, 2.4vw, 2.1rem); margin: 0 0 12px; }
.empty-note p { max-width: 560px; margin-left: auto; margin-right: auto; }
.empty-note__form { display: flex; justify-content: center; margin: 24px 0 8px; }
.empty-note__form .newsletter { width: 100%; max-width: 460px; flex-wrap: nowrap; }
@media (max-width: 480px) { .empty-note__form .newsletter { flex-wrap: wrap; } }
.empty-note__links { font-size: 15px; margin-top: 18px; }
/* Simple dated list (Seminars page) */
.event-list { list-style: none; margin: 0; padding: 0; max-width: 920px; border-top: 1px solid var(--line); }
.event-list__item { display: grid; grid-template-columns: 170px 1fr; gap: 24px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.event-list__date { font: 600 14px/1.5 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--red); padding-top: 3px; }
.event-list__title { margin: 0; font: 500 20px/1.35 var(--serif); }
.event-list__meta { margin: 4px 0 0; color: var(--muted); font-size: 15px; }
.event-list__more { margin: 18px 0 40px; font-weight: 600; }
@media (max-width: 600px) { .event-list__item { grid-template-columns: 1fr; gap: 4px; } }

/* Homepage hero: Fra Mauro's map under a dark gradient. */
.hero {
  position: relative; display: flex; align-items: center; min-height: 820px; color: #fff;
  background:
    linear-gradient(90deg, rgba(27,26,25,.97) 0%, rgba(27,26,25,.93) 50%, rgba(27,26,25,.7) 78%, rgba(27,26,25,.45) 100%),
    url("/assets/img/484da93f0ce6464fad63340536d33e7f.jpg") right -4% center / auto 128% no-repeat #1b1a19;
}
.hero__inner { padding: 80px var(--gutter) 80px clamp(16px, 6.5vw, 89px); max-width: 1240px; }
.hero h1 { font-size: clamp(2.3rem, 4.6vw, 4rem); line-height: 1.12; letter-spacing: -0.03em; }
.hero__lead { font-size: 20px; font-weight: 300; line-height: 1.7; max-width: 660px; margin: 36px 0 30px; }
.hero__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 28px; margin: 0; }
@media (max-width: 750px) {
  .hero { min-height: 0; background: linear-gradient(rgba(27,26,25,.86), rgba(27,26,25,.86)), url("/assets/img/484da93f0ce6464fad63340536d33e7f.jpg") center / cover no-repeat; }
  .hero__inner { padding: 64px 16px 72px; }
  .hero__lead { font-size: 18px; }
  .credit-overlay { font-size: 10px; }
}

/* Call-for-papers band: text on the left, the then/now picture filling the right 44%. */
.cfp { position: relative; background: var(--rose); min-height: 470px; }
.cfp__text { width: 56%; padding: 84px 40px 64px 108px; }
.cfp h2 { font-size: clamp(2rem, 3vw, 2.4rem); margin: 0 0 6px; }
.cfp__when { font-size: 18px; color: var(--muted); margin: 0 0 6px; }
.cfp__text p { font-size: 16px; }
.cfp__deadline { font-weight: 700; color: var(--red-dark); font-size: 18px !important; margin: 4px 0 0; }
.cfp__actions { margin: 26px 0 0; }
.cfp__picture { position: absolute; top: 0; right: 0; bottom: 0; width: 44%; }
.cfp__picture .embed { width: 100%; height: 100%; }
@media (max-width: 900px) {
  .cfp__text { width: auto; padding: 56px 16px 40px; }
  .cfp__picture { position: static; width: 100%; height: 280px; }
}

/* HTML embeds (src/embeds/): full width; the page sets their height when they report it. */
.embed { display: block; width: 100%; border: 0; height: 600px; }
.embed--home-sections { height: 2300px; }
.embed--about-people { height: 2000px; }
.embed--conferences-list { height: 2400px; }
.embed--calendar { height: 1200px; }
.globe { background: var(--paper); padding: 48px 0 24px; text-align: center; }
.globe h2 { margin: 0 0 8px; padding: 0 16px; }
.globe__more { margin: 0 0 10px; font: 600 13px/1.4 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.globe__more a { color: var(--red); text-decoration: none; } .globe__more a:hover { text-decoration: underline; }
.embed--home-globe { height: 680px; }
@media (max-width: 760px) { .embed--home-globe { height: 760px; } }

/* "Join the network" band: Chikanobu's print under a red gradient. */
.join-band {
  position: relative; text-align: center; color: #fff; padding: 88px 16px 96px;
  background:
    linear-gradient(90deg, rgba(122,30,34,.94) 0%, rgba(110,28,32,.86) 45%, rgba(30,18,18,.55) 100%),
    url("/assets/img/cf8eea75d94041898f079ec1a58adf33.jpg") center 40% / cover no-repeat #2a1213;
}
.join-band h2 { font-size: clamp(2.4rem, 4vw, 3.4rem); margin: 0 0 32px; letter-spacing: -0.03em; }
.join-band p { margin: 0; }

/* Scholars list */
.filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 48px; }
.filter__search { flex: 1 1 280px; display: flex; border: 1px solid var(--line); background: #fff; }
.filter__search input { flex: 1; border: 0; padding: 11px 14px; font: inherit; font-size: 16px; min-width: 0; background: transparent; }
.filter__search input:focus { outline: 2px solid var(--red); outline-offset: -2px; }
.filter__search button { border: 0; background: var(--ink); color: #fff; font: 600 15px var(--sans); padding: 0 18px; cursor: pointer; }
.filter__sort { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--muted); }
.filter__sort select { font: inherit; font-size: 15px; color: var(--ink); padding: 10px 30px 10px 12px; border: 1px solid var(--line); background: #fff; cursor: pointer; }
.filter__row { flex: 1 1 100%; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
.filter__chips { display: flex; gap: 8px; flex-wrap: wrap; }
.chip { border: 1px solid var(--line); background: #fff; color: var(--ink); font: 600 14px var(--sans); padding: 7px 14px; border-radius: 999px; cursor: pointer; }
.chip:hover { border-color: var(--ink); }
.chip[aria-pressed="true"] { background: var(--red); border-color: var(--red); color: #fff; }
.filter__count { font-size: 15px; color: var(--muted); margin: 0; }
.scholar-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 56px 43px; }
.scholar-card[hidden] { display: none; }
/* The whole card is the link (the name's link stretches over it); the photo zooms a touch on hover. */
.scholar-card { position: relative; }
.scholar-card__photo { overflow: hidden; border-radius: var(--radius); background: var(--paper-2); box-shadow: var(--shadow-sm); transition: box-shadow var(--ease), transform var(--ease); }
.scholar-card img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; object-position: center 25%; transition: transform .4s ease; }
.scholar-card__name { font: 400 22px/1.25 var(--serif); margin: 20px 0 4px; }
.scholar-card__name a { color: var(--ink); text-decoration: none; }
.scholar-card__name a::after { content: ""; position: absolute; inset: 0; }
.scholar-card__name a:focus-visible { outline: none; }
.scholar-card:has(a:focus-visible) { outline: 2px solid var(--red); outline-offset: 6px; }
.scholar-card__meta { font-size: 15px; line-height: 1.45; color: var(--muted); margin: 0; }
.scholar-card:hover .scholar-card__photo { box-shadow: var(--shadow-md); transform: translateY(-3px); }
.scholar-card:hover img { transform: scale(1.03); }
.scholar-card:hover .scholar-card__name a { color: var(--red); }
@media (max-width: 1000px) { .scholar-grid { grid-template-columns: repeat(3, 1fr); gap: 40px 24px; } }
@media (max-width: 700px) { .scholar-grid { grid-template-columns: repeat(2, 1fr); gap: 32px 16px; } .scholar-card__name { font-size: 19px; margin-top: 14px; } .filter__sort { flex: 1 1 100%; } .filter__sort select { flex: 1; } }

/* Scholar profile: name on a dark band, photo overlapping it, details beside the photo. */
.profile__band { background: var(--ink); color: #fff; padding: 48px 0 165px; }
.profile__wrap { max-width: 1284px; margin: 0 auto; padding: 0 clamp(16px, 8vw, 108px); }
.profile__body { display: grid; grid-template-columns: 260px 1fr; gap: 92px; margin-top: -68px; }
.profile__photo img { width: 260px; height: 325px; object-fit: cover; }
.profile__text { padding-top: 112px; }
.profile__text p { margin: 0 0 1.1em; }
.profile__h { font-size: 26px; margin: 2em 0 .3em; }
.profile__bio p { margin: 0 0 1.4em; }
/* Publication pages (/publications/<slug>/) */
.pubpage .profile__band h1 { max-width: 900px; }
.pubpage__kind { color: rgba(255,255,255,.75); margin: 0 0 .4em; }
.pubpage__body { display: grid; grid-template-columns: 260px 1fr; gap: 92px; margin-top: -68px; }
.pubpage__body:not(:has(.pubpage__cover)) { grid-template-columns: 1fr; margin-top: 0; }
.pubpage:not(:has(.pubpage__cover)) .profile__band { padding-bottom: 56px; }
.pubpage__cover img { width: 260px; height: auto; box-shadow: 0 10px 30px rgba(0,0,0,.18); background: #fff; }
.pubpage__text { padding-top: 112px; max-width: 760px; }
.pubpage__body:not(:has(.pubpage__cover)) .pubpage__text { padding-top: 48px; }
.pubpage__text p { margin: 0 0 1.1em; }
.pubpage__by { font-size: 19px; }
.pubpage__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 2em !important; }
.pubpage__back { margin-top: 2.5em !important; }
@media (max-width: 750px) {
  .profile__band { padding: 40px 0 120px; }
  .profile__body { grid-template-columns: 1fr; gap: 24px; }
  .profile__photo img { width: 160px; height: 200px; }
  .profile__text { padding-top: 0; }
  .pubpage__body { grid-template-columns: 1fr; gap: 24px; }
  .pubpage__cover img { width: 160px; }
  .pubpage__text, .pubpage__body:not(:has(.pubpage__cover)) .pubpage__text { padding-top: 0; }
  .pubpage__body:not(:has(.pubpage__cover)) { padding-top: 32px; }
  .pubpage:not(:has(.pubpage__cover)) .profile__band { padding-bottom: 40px; }
}
.pager { display: flex; justify-content: space-between; align-items: center; border-top: 2px solid var(--ink); margin-top: 56px; padding-top: 22px; padding-bottom: 40px; }
.pager a { color: var(--ink); text-decoration: none; text-transform: uppercase; letter-spacing: .09em; font-size: 15px; }
.pager__all span { display: block; width: 20px; height: 20px; background: radial-gradient(circle, var(--ink) 2.2px, transparent 2.6px) 0 0 / 7px 7px; }

/* Conference pages: the host city behind the title band. */
.conf-hero {
  position: relative; color: #fff; padding: 50px 0 120px;
  background: linear-gradient(90deg, rgba(27,26,25,.93) 0%, rgba(27,26,25,.82) 45%, rgba(27,26,25,.42) 100%), var(--conf-img) center / cover no-repeat var(--ink);
}
.conf-hero__inner { max-width: 1284px; margin: 0 auto; padding: 0 clamp(16px, 8vw, 108px); }
.conf-hero h1 { font-size: clamp(2.1rem, 3.5vw, 2.8rem); }
.conf-hero__status { font-size: 18px; margin: 18px 0 32px; }
.conf-body { max-width: 1060px; }
.conf-body ul { padding-left: 1.3em; }
.conf-body p { margin: 0 0 .4em; }
.conf-body__travel { margin-top: 1.5em; }

/* Detailed programme on conference pages (data/programmes). */
.programme { margin-top: 2.4em; }
.programme__heading { margin: 0 0 .4em; }
.programme__intro { color: var(--muted); }
.programme__day { margin-top: 2em; }
.programme__day h3 { font-size: clamp(1.35rem, 2.2vw, 1.7rem); margin: 0; padding-bottom: 6px; border-bottom: 2px solid var(--red); }
.programme__venue { color: var(--muted); font-size: 16px; margin: 6px 0 0 !important; }
.programme__items { list-style: none; margin: 0; padding: 0; }
.programme__item { display: grid; grid-template-columns: 9.5rem 1fr; gap: 0 1.5rem; padding: 16px 0; border-bottom: 1px solid var(--line); }
.programme__time { font: 600 15px/1.6 var(--sans); color: var(--red-dark); font-variant-numeric: tabular-nums; }
.programme__body h4 { font: 600 18px/1.4 var(--sans); margin: 0 0 4px; }
.programme__body p { margin: 0 0 .3em; }
.programme__room { font-size: 15px; color: var(--muted); }
.programme__chair, .programme__note { font-size: 16px; color: var(--muted); font-style: italic; }
.conf-body .programme__papers { list-style: none; padding: 0; margin: 6px 0 8px; }
.programme__papers li { font-size: 16.5px; line-height: 1.5; margin: 0 0 8px; }
.programme__papers strong { font-weight: 600; }
.programme__papers a { color: inherit; text-decoration-color: var(--red); }
.programme__item--break { padding: 10px 0; }
.programme__item--break .programme__body p { color: var(--muted); font-size: 16px; }
@media (max-width: 640px) {
  .programme__item { grid-template-columns: 1fr; }
  .programme__time { font-size: 14px; }
}

/* Footer: a dark ink band. */
.site-footer { background: var(--ink); color: #edebe7; padding: 56px 0 40px; border-top: 3px solid var(--red); }
.site-footer__inner { max-width: 1366px; margin: 0 auto; padding: 0 var(--gutter); }
.site-footer a { color: #edebe7; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.site-footer__title { font: 400 clamp(24px, 2.4vw, 32px)/1.15 var(--serif); margin: 0 0 56px; padding-bottom: 32px; border-bottom: 1px solid rgba(237,235,231,.14); }
.site-footer__title a { display: inline-flex; align-items: center; gap: 18px; }
.site-footer__title img { width: 56px; height: 56px; flex-shrink: 0; }
.site-footer__title a:hover { text-decoration: none; color: #fff; }
.site-footer__grid a:hover { color: #fff; text-decoration-color: var(--red); text-decoration-thickness: 2px; }
.site-footer__grid { display: grid; grid-template-columns: 1.6fr .8fr 1.3fr 1fr; gap: 32px; padding: 0 clamp(0px, 3vw, 40px); font-size: 15px; }
.site-footer__grid li { margin-bottom: 6px; }
.ft-head { font: 700 12px/1.3 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: #e7a3a6; margin: 0 0 20px; }
.site-footer__copy { color: rgba(237,235,231,.6); font-size: 14px; text-align: right; margin: 40px 0 0; }
@media (max-width: 900px) { .site-footer__grid { grid-template-columns: 1fr 1fr; } .site-footer__title { margin-bottom: 40px; } }
@media (max-width: 520px) { .site-footer__grid { grid-template-columns: 1fr; } .site-footer__copy { text-align: left; } }

/* Forms (Tally embeds) */
.form-embed { width: 100%; border: 0; display: block; }
.form-done { text-align: center; margin: 2rem 0; }
.form-note { font-size: .9rem; color: #555; border-top: 1px solid var(--paper-2); padding-top: 1rem; }

/* Newsletter signup */
.newsletter { display: flex; flex-wrap: wrap; gap: 0.5rem; max-width: 30rem; align-items: stretch; }
.newsletter input[type=email] { flex: 1 1 14rem; min-width: 0; padding: 0.6rem 0.8rem; font: inherit; color: var(--ink); background: #fff; border: 1px solid #d6d1cb; border-radius: 0; box-shadow: none; -webkit-appearance: none; appearance: none; }
.newsletter input[type=email]:focus { outline: 2px solid var(--red); outline-offset: -1px; }
.newsletter .btn { outline: none; }
.newsletter__done { font-weight: 600; }
.nl-dialog { width: min(92vw, 520px); padding: 40px 36px 36px; border: 0; box-shadow: 0 20px 60px rgba(0,0,0,.35); color: var(--ink); }
.nl-dialog::backdrop { background: rgba(27,26,25,.7); }
.nl-dialog h2 { margin: 0 0 10px; font-size: 2rem; }
.nl-dialog p { margin: 0 0 22px; }
.nl-dialog__close { position: absolute; top: 10px; right: 14px; background: none; border: 0; font-size: 28px; line-height: 1; color: #777; cursor: pointer; }
.nl-dialog__close:hover { color: var(--ink); }
.site-footer .newsletter input[type=email] { background: transparent; border-color: rgba(237,235,231,.55); color: #fff; }
.site-footer .newsletter input[type=email]::placeholder { color: #999; }
.site-footer .newsletter .btn { background: transparent; border: 1px solid #edebe7; border-radius: 999px; color: #fff; padding: 8px 26px; box-shadow: none; }
.site-footer .newsletter .btn:hover { background: #fff; color: var(--ink); transform: none; }

/* Publications and talks (src/_data/publications.json, src/_data/talks.json) */
.pub-list { display: grid; gap: 28px; margin-top: 40px; max-width: 920px; }
.pub-list--compact { margin-top: 12px; gap: 20px; }
.pub { display: flex; gap: 22px; padding-bottom: 28px; border-bottom: 1px solid var(--line); }
.pub-list--compact .pub { padding-bottom: 20px; }
.pub__cover { width: 110px; height: auto; align-self: flex-start; box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.pub__kind { margin: 0 0 4px; font: 600 13px var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--red); }
.pub__title { margin: 0 0 6px; font-size: 22px; line-height: 1.25; }
.pub__title a { color: inherit; text-decoration: none; background: linear-gradient(var(--red), var(--red)) 0 100% / 0 1.5px no-repeat; transition: background-size .3s ease, color var(--ease); }
.pub__title a:hover { color: var(--red); background-size: 100% 1.5px; }
.pub__by, .pub__note, .pub__talk { margin: 0 0 6px; }
.pub__where { font-style: italic; }
.pub__note { color: var(--muted); }
.talks__h { margin: 48px 0 20px; }
.talk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 32px; }
.talk-grid--compact { margin-top: 12px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.talk__video { display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; background: #000; margin-bottom: 12px; cursor: pointer; position: relative; overflow: hidden; }
button.talk__video img { width: 100%; height: 100%; object-fit: cover; opacity: .9; }
button.talk__video::after { content: ""; position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; background: var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 7l9 5-9 5z' fill='%23fff'/%3E%3C/svg%3E") center / 40px no-repeat; }
button.talk__video:hover::after { background-color: var(--red-dark); }
@media (max-width: 600px) { .pub { flex-direction: column; } .pub__cover { width: 90px; } }

/* New publications slideshow on the homepage (publications.json entries with "featured": true) */
.new-pubs { padding: 56px 108px 72px; background: #f1eef0; }
.new-pubs__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.new-pubs__head .eyebrow { margin: 0; font-size: 14px; }
.new-pubs__controls { display: flex; align-items: center; gap: 8px; }
.new-pubs__btn { width: 38px; height: 38px; border: 1px solid var(--ink); background: transparent; color: var(--ink); border-radius: 50%; cursor: pointer; font-size: 16px; line-height: 1; }
.new-pubs__btn:hover { background: var(--ink); color: #fff; }
.new-pubs__pause { font-size: 10px; letter-spacing: -2px; }
.new-pubs__dots { display: flex; gap: 8px; margin: 0 6px; }
.new-pubs__dot { width: 10px; height: 10px; padding: 0; border-radius: 50%; border: 1px solid var(--red); background: transparent; cursor: pointer; }
.new-pubs__dot[aria-current="true"] { background: var(--red); }
.new-pubs__track { display: grid; }
.new-pubs__slide { grid-area: 1 / 1; display: flex; gap: 56px; align-items: center; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility .6s; }
.new-pubs__slide.is-active { opacity: 1; visibility: visible; }
.new-pubs__cover { flex: 0 0 220px; }
.new-pubs__cover img { display: block; width: 100%; height: auto; box-shadow: 0 6px 22px rgba(0,0,0,.22); }
.new-pubs__title { font-size: clamp(2rem, 3vw, 2.4rem); margin: 0 0 10px; line-height: 1.15; }
.new-pubs__sub { font-size: 19px; margin: -6px 0 10px; }
.new-pubs__by { color: var(--muted); margin: 0 0 18px; }
.new-pubs__actions { margin: 24px 0 0; display: flex; flex-wrap: wrap; gap: 12px; }
@media (prefers-reduced-motion: reduce) { .new-pubs__slide { transition: none; } }
.pub__quote { margin: 12px 0 8px; padding: 12px 18px; border-left: 3px solid var(--red); background: var(--rose-soft); border-radius: 0 var(--radius) var(--radius) 0; }
.pub__quote p { margin: 0; font-style: italic; font-size: 19px; }
.pub__quote footer { font-size: 14px; color: var(--muted); margin-top: 2px; }
.talks__more { margin: 40px 0 0; }
@media (max-width: 800px) {
  .new-pubs { padding: 40px 20px 48px; }
  .new-pubs__slide { flex-direction: column; align-items: flex-start; gap: 24px; }
  .new-pubs__cover { flex-basis: auto; width: 140px; }
}
/* Announcement bar above the header on the homepage (partials/announcement.njk) */
.announce { background: var(--red); color: #fff; font-size: 15px; line-height: 1.4; }
.announce p { margin: 0; padding: 9px var(--gutter); text-align: center; }
.announce a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.announce > p > a:last-child { font-weight: 600; white-space: nowrap; margin-left: .4em; }
.announce > p > a:last-child::after { content: " \2192"; }
.announce__tag { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin-right: .5em; }
.announce cite { font-family: var(--serif); font-size: 17px; font-style: italic; }
.embed--home-agenda { height: 520px; }
/* Publications page: jump links and the Books / Articles / Conversations sections */
.pub-jump { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 28px 0 0; padding: 0; list-style: none; font-size: 15px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.pub-jump a { color: var(--red); text-decoration: none; }
.pub-jump a:hover { text-decoration: underline; }
.pub-section { scroll-margin-top: 20px; }
@media (max-width: 600px) { .announce__extra { display: none; } }
/* Books: a shelf of covers. Articles: a grid of cards. */
.pub-shelf { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 32px 28px; margin-top: 16px; max-width: 920px; }
.pub-shelf__item { display: flex; flex-direction: column; color: var(--ink); text-decoration: none; }
.pub-shelf__item img, .pub-shelf__blank { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; box-shadow: 0 4px 14px rgba(0,0,0,.18); transition: transform .2s, box-shadow .2s; }
.pub-shelf__blank { display: flex; align-items: center; justify-content: center; padding: 14px; background: var(--rose); font: 500 18px/1.2 var(--serif); text-align: center; }
.pub-shelf__item:hover img, .pub-shelf__item:hover .pub-shelf__blank { transform: translateY(-4px); box-shadow: 0 10px 22px rgba(0,0,0,.22); }
.pub-shelf__title { margin-top: 12px; font: 500 18px/1.25 var(--serif); }
.pub-shelf__item:hover .pub-shelf__title { text-decoration: underline; }
.pub-shelf__meta, .pub-card__meta { font-size: 14px; color: var(--muted); margin-top: 4px; }
.pub-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; margin-top: 16px; max-width: 920px; }
.pub-card { display: flex; flex-direction: column; padding: 18px 20px 20px; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--red); color: var(--ink); text-decoration: none; transition: box-shadow .2s; }
.pub-card:hover { box-shadow: 0 6px 18px rgba(0,0,0,.1); }
.pub-card__title { font: 500 20px/1.25 var(--serif); margin: 2px 0 auto; padding-bottom: 12px; }
.pub-card:hover .pub-card__title { text-decoration: underline; }
@media (max-width: 600px) { .pub-shelf { grid-template-columns: repeat(2, 1fr); gap: 24px 16px; } }

/* Article cards: first-page thumbnail, abstract toggle, open-access PDF link */
.pub-card__thumb { display: block; margin: -18px -20px 14px; height: 170px; overflow: hidden; background: #f4f2f2; border-bottom: 1px solid var(--line); }
.pub-card__thumb img { display: block; width: 100%; height: auto; }
a.pub-card__title { color: var(--ink); text-decoration: none; margin: 2px 0 0; padding-bottom: 8px; }
a.pub-card__title:hover { color: var(--red); text-decoration: underline; }
.pub-card:hover .pub-card__title { text-decoration: none; }
.pub-card__note { font-size: 14px; color: var(--muted); margin: 8px 0 0; }
.pub-card__pdf { font-size: 14px; margin-top: 10px; }
.pub__abstract { margin: 10px 0 4px; font-size: 15px; }
.pub__abstract summary { cursor: pointer; color: var(--red); font: 600 13px var(--sans); letter-spacing: .06em; text-transform: uppercase; }
.pub__abstract p { margin: 8px 0 0; color: var(--ink); line-height: 1.55; }
.pub__pdf { margin: 6px 0; font-size: 15px; }
.pub__license { color: var(--muted); font-size: 14px; }

/* ---------- Explore our field (Thought Atlas, /explore/) ---------- */
.atlas-section { --r-na:#3c5c97; --r-eu:#b0573c; --r-ea:#2c8a7e; --r-sa:#b7841b; --r-sea:#64862b; --r-me:#85579a; --r-af:#b4466c; --r-la:#3f93bf; --r-none:#9a958f;
  --edge: rgba(40,30,30,.09); --edge-hi: rgba(162,51,56,.55); --land:#e2dcd5; --sphere:#fbfaf9; --grid:rgba(30,30,30,.06); }
.atlas-bar { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.atlas-views { display: inline-flex; flex-wrap: wrap; gap: 2px; border: 1px solid var(--line); border-radius: 999px; padding: 3px; background: #fff; }
.atlas-views button { font: 600 13px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; border: 0; background: none; color: var(--muted); padding: 10px 16px; border-radius: 999px; cursor: pointer; }
.atlas-views button:hover { color: var(--red); }
.atlas-views button[aria-selected="true"] { background: var(--red); color: #fff; }
.atlas-search { position: relative; }
.atlas-search input { font: 16px var(--sans); color: var(--ink); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 9px 16px; width: min(300px, 86vw); box-sizing: border-box; }
.atlas-search ul { position: absolute; z-index: 20; top: 100%; right: 0; width: min(360px, 90vw); margin: 4px 0 0; padding: 4px; list-style: none; background: #fff; border: 1px solid var(--line); border-radius: 6px; max-height: 300px; overflow: auto; box-shadow: var(--shadow-md); }
.atlas-search li { padding: 7px 9px; border-radius: 4px; cursor: pointer; display: flex; justify-content: space-between; gap: 10px; font-size: 15px; line-height: 1.3; }
.atlas-search li small { color: var(--muted); text-align: right; }
.atlas-search li:hover, .atlas-search li.is-on { background: var(--rose-soft); }
.atlas { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; height: min(78vh, 820px); min-height: 540px; }
.atlas.has-panel { grid-template-columns: minmax(0, 1fr) 380px; }
.atlas-panel { display: none; }
.atlas.has-panel .atlas-panel { display: block; }
.atlas-panel-top { display: flex; justify-content: space-between; align-items: center; margin: -6px -6px 4px 0; }
.atlas-close { border: 0; background: none; font: 22px/1 var(--sans); color: var(--muted); cursor: pointer; padding: 2px 8px; }
.atlas-close:hover { color: var(--red); }
.atlas-pop { position: absolute; z-index: 3; width: 260px; background: #fff; border: 1px solid var(--line); box-shadow: 0 8px 28px rgba(0,0,0,.14); padding: 14px 14px 12px; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 8px 12px; align-items: start; font-size: 14px; }
.atlas-pop img, .atlas-pop-dot { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 2px solid var(--red); box-sizing: border-box; display: block; }
.atlas-pop-dot { background: #999; border-color: #fff; box-shadow: 0 0 0 1px var(--line); }
.atlas-pop-dot--t { background: var(--red); border-color: var(--red); padding: 12px; }
.atlas-pop-dot--t.is-trad { background: #fff; border-color: #2b416e; }
.atlas-pop-dot--i { border-radius: 0; transform: rotate(45deg) scale(.75); }
.atlas-stage .atlas-pop-dot svg { position: static; inset: auto; width: 100%; height: 100%; display: block; }
.atlas-pop b { font: 500 18px/1.2 var(--serif); display: block; margin-top: 2px; }
.atlas-pop small { display: block; color: var(--muted); font-size: 13px; line-height: 1.35; margin-top: 2px; }
.atlas-pop .atlas-chips { grid-column: 1 / -1; gap: 4px; }
.atlas-pop .atlas-chip { font-size: 12px; padding: 3px 8px; }
.atlas-pop-more { font-size: 12px; color: var(--muted); align-self: center; }
.atlas-pop-see { grid-column: 1 / -1; justify-self: start; border: 0; background: none; padding: 2px 0 0; font: 600 13px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--red); cursor: pointer; }
.atlas-pop-x { position: absolute; top: 2px; right: 6px; border: 0; background: none; font: 20px/1 var(--sans); color: var(--muted); cursor: pointer; }
.atlas-pop-x:hover, .atlas-pop-see:hover { color: var(--ink); }
.atlas-stage { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; min-width: 0; }
#atlas-net, #atlas-globe { background: radial-gradient(ellipse at 50% 40%, #faf6ee 0%, #f3ecdd 70%, #e9dfc9 100%); }
.atlas-stage .atlas-plate { position: absolute; inset: 10px; border: 1px solid rgba(43,65,110,.45); box-shadow: inset 0 0 0 3px #f3ecdd, inset 0 0 0 4px rgba(43,65,110,.35); pointer-events: none; }
.atlas-cartouche { position: absolute; left: 24px; top: 24px; padding: 10px 16px 9px; background: #f7f1e6; border: 1px solid rgba(43,65,110,.6); box-shadow: inset 0 0 0 3px #f7f1e6, inset 0 0 0 4px rgba(43,65,110,.4); pointer-events: none; display: grid; gap: 2px; }
.atlas-cartouche b { font: 600 12px/1.2 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: #2b416e; }
.atlas-cartouche i { font: italic 14px/1.2 var(--serif); color: var(--red); }
.atlas-stage svg.atlas-compass { position: absolute; inset: auto; right: 18px; bottom: 44px; width: 78px; height: 78px; pointer-events: none; }
.atlas-filters { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.atlas-pick { display: grid; gap: 4px; margin-top: 14px; }
.atlas-pick span { font: 600 12px/1.4 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.atlas-pick select { width: 100%; font: 15px var(--sans); color: var(--ink); border: 1px solid var(--line); border-radius: 6px; padding: 9px 10px; background: #fff; }
.atlas-select { display: inline-flex; align-items: center; gap: 8px; font: 600 13px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.atlas-select select { font: 15px var(--sans); color: var(--ink); border: 1px solid var(--line); border-radius: 999px; padding: 8px 12px; background: #fff; max-width: 260px; }
.atlas-fs { font: 600 13px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--muted); padding: 10px 14px; cursor: pointer; }
.atlas-fs:hover, .atlas-fs[aria-pressed="true"] { color: var(--red); border-color: var(--red); }
.atlas:fullscreen { background: #fff; padding: 12px; height: 100vh; box-sizing: border-box; }
.atlas:fullscreen .atlas-stage { height: auto; }
.atlas-stage svg, .atlas-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; touch-action: none; }
.atlas-stage [hidden] { display: none !important; }
.atlas-scroll { position: absolute; inset: 0; overflow: auto; padding: 22px 24px 60px; }
.atlas-clear { position: absolute; left: 50%; transform: translateX(-50%); top: 8px; z-index: 2; font: 600 12px/1 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--red); background: rgba(255,255,255,.92); border: 1px solid var(--red); border-radius: 999px; padding: 7px 12px; cursor: pointer; }
.atlas-clear:hover { background: var(--red); color: #fff; }
.atlas-hint { position: absolute; right: 12px; top: 8px; margin: 0; font-size: 13px; color: var(--muted); background: rgba(255,255,255,.9); padding: 2px 6px; border-radius: 4px; }
.atlas-loading { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; color: var(--muted); font-style: italic; }
.atlas-inset { position: absolute; left: 18px; bottom: 44px; z-index: 3; width: min(320px, calc(100% - 36px)); max-height: calc(100% - 140px); display: flex; flex-direction: column; background: #f7f1e6; border: 1px solid rgba(43,65,110,.6); box-shadow: inset 0 0 0 3px #f7f1e6, inset 0 0 0 4px rgba(43,65,110,.4), 0 10px 30px rgba(43,65,110,.18); padding: 14px 16px 12px; }
.atlas-inset header { display: flex; gap: 12px; align-items: center; padding-right: 22px; }
.atlas-inset-logo { width: 40px; height: 40px; flex: none; object-fit: contain; background: #fff; border: 1px solid rgba(43,65,110,.35); padding: 3px; box-sizing: border-box; }
.atlas-inset header b { display: block; font: italic 500 20px/1.15 var(--serif); color: var(--red); }
.atlas-inset header small { display: block; margin-top: 3px; font: 600 10px/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: #2b416e; }
.atlas-inset-x { position: absolute; right: 8px; top: 6px; border: 0; background: none; font-size: 20px; line-height: 1; color: #2b416e; cursor: pointer; padding: 4px 6px; }
.atlas-inset-grid { list-style: none; margin: 12px 0 0; padding: 10px 0 2px; border-top: 1px solid rgba(43,65,110,.35); display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 10px 6px; overflow-y: auto; min-height: 0; }
.atlas-inset-grid button { border: 0; background: none; padding: 0; font: inherit; cursor: pointer; display: grid; justify-items: center; gap: 5px; width: 100%; color: var(--ink); }
.atlas-inset-grid img, .atlas-inset-grid i { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 2px solid #fff; box-shadow: 0 0 0 1px rgba(43,65,110,.5); box-sizing: border-box; display: grid; place-items: center; font: 600 15px/1 var(--sans); font-style: normal; color: #2b416e; background: #efe6d3; }
.atlas-inset-grid button:hover img, .atlas-inset-grid button:hover i, .atlas-inset-grid .is-on img, .atlas-inset-grid .is-on i { border-color: var(--red); box-shadow: 0 0 0 1px var(--red); }
.atlas-inset-grid span { font-size: 11.5px; line-height: 1.2; text-align: center; }
.atlas-inset-list { list-style: none; margin: 12px 0 0; padding: 8px 0 0; border-top: 1px solid rgba(43,65,110,.35); overflow-y: auto; min-height: 0; }
.atlas-inset-list button { display: flex; align-items: center; gap: 8px; width: 100%; border: 0; background: none; padding: 6px 2px; font: 500 15px/1.25 var(--serif); color: var(--ink); text-align: left; cursor: pointer; border-bottom: 1px dotted rgba(43,65,110,.3); }
.atlas-inset-list button:hover { color: var(--red); }
.atlas-inset-list small { margin-left: auto; flex: none; font: 600 10px/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: #2b416e; }
.atlas-inset footer { padding-top: 10px; margin-top: 6px; border-top: 1px solid rgba(43,65,110,.35); }
.atlas-inset-see { border: 0; background: none; padding: 0; font: 600 12px/1.2 var(--sans); letter-spacing: .08em; text-transform: uppercase; color: var(--red); cursor: pointer; }
.atlas-inset-see:hover { text-decoration: underline; }
.list-switch { max-width: calc(var(--content) + 2 * var(--gutter)); margin: -8px auto 18px; padding: 0 var(--gutter); font: 600 12px/1.4 var(--sans); letter-spacing: .1em; text-transform: uppercase; }
.list-switch a { color: var(--red); text-decoration: none; } .list-switch a:hover { text-decoration: underline; }
/* Scholars chooser: two doors, the Atlas and the list */
.choose { display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - 100px); min-height: calc(100svh - 100px); }
.choose__door { position: relative; display: flex; flex-direction: column; justify-content: flex-end; padding: 48px 56px 56px; text-decoration: none; overflow: hidden; isolation: isolate; transition: flex-basis .5s ease; }
.choose__door--atlas, .choose__door--atlas:hover, .choose__door--atlas:focus-visible { background: var(--red); color: #fff; }
.choose__door--list, .choose__door--list:hover, .choose__door--list:focus-visible { background: #f7f1e6; color: var(--ink); }
.choose__text { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; }
.choose__art { position: absolute; inset: 0; z-index: 0; transition: transform 1.2s cubic-bezier(.2,.7,.2,1), opacity .6s ease; }
.choose__door--atlas .choose__art { background: url("/assets/img/atlas/world-etched.svg") center / 115% auto no-repeat; opacity: .55; }
.choose__door--list .choose__art { display: grid; grid-template-columns: repeat(8, 1fr); gap: 6px; padding: 6px; opacity: .32; filter: grayscale(.35) sepia(.25); }
.choose__door--list .choose__art img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; }
.choose__door--list::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(247,241,230,.15), rgba(247,241,230,.95) 70%); }
.choose__door--atlas::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(162,51,56,0), rgba(120,30,36,.75)); }
.choose__door:hover .choose__art, .choose__door:focus-visible .choose__art { transform: scale(1.04); opacity: .75; }
.choose__eyebrow { font: 600 12px/1.3 var(--sans); letter-spacing: .2em; text-transform: uppercase; margin: 0 0 10px; opacity: .85; }
.choose__title { font: 400 clamp(40px, 5.5vw, 72px)/1 var(--serif); margin: 0 0 14px; }
.choose__title i { font-style: italic; }
.choose__sub { font-size: 17px; line-height: 1.5; max-width: 34ch; margin: 0 0 22px; opacity: .92; }
.choose__cta { font: 600 13px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; border: 1.5px solid currentColor; padding: 12px 18px; transition: background .25s, color .25s; }
.choose__door--atlas:hover .choose__cta { background: #fff; color: var(--red); }
.choose__door--list:hover .choose__cta { background: var(--ink); color: #fff; border-color: var(--ink); }
@media (max-width: 800px) { .choose { grid-template-columns: 1fr; min-height: 0; } .choose__door { min-height: 60vh; padding: 36px 20px 40px; } .choose__door--list .choose__art { grid-template-columns: repeat(5, 1fr); } }
@media (prefers-reduced-motion: reduce) { .choose__art, .choose__cta { transition: none; } }
.atlas-roster { margin-top: 56px; }
.atlas-roster__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; margin-bottom: 28px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.atlas-roster__head h2 { margin: 0; font: 500 28px/1.15 var(--serif); }
.atlas-roster__note { margin: 0; color: var(--muted); font-size: 14px; }
.atlas-roster__reset { border: 0; background: none; padding: 0; font: inherit; color: var(--red); cursor: pointer; text-decoration: underline; }
.atlas-roster__plain { margin: 0 0 0 auto; color: var(--muted); font-size: 14px; }
.atlas-roster__plain a { color: var(--red); }
.atlas-roster__empty { color: var(--muted); font-size: 15px; }
.atlas-legend { position: absolute; left: 12px; bottom: 8px; right: 12px; display: flex; flex-wrap: wrap; gap: 2px 14px; font-size: 13px; color: var(--muted); }
.atlas-legend button { display: inline-flex; align-items: center; gap: 6px; border: 0; background: none; color: inherit; font: inherit; padding: 2px 0; cursor: pointer; }
.atlas-legend button[aria-pressed="false"] { opacity: .35; }
.atlas-legend i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: none; }
.atlas-legend span { display: inline-flex; align-items: center; gap: 6px; }
.atlas-tip { position: fixed; z-index: 60; pointer-events: none; background: var(--ink); color: #fff; font: 14px/1.35 var(--sans); padding: 6px 9px; border-radius: 4px; max-width: 280px; opacity: 0; transform: translate(12px, 12px); transition: opacity .12s; }
.atlas-tip b { display: block; }
.atlas-panel { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 22px; overflow: auto; min-width: 0; font-size: 16px; line-height: 1.55; }
.atlas-panel h2 { font-size: 30px; margin: 2px 0 6px; text-wrap: balance; }
.atlas-panel h3 { font: 700 12px/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin: 22px 0 8px; }
.atlas-panel .eyebrow { margin: 0; }
.atlas-meta { color: var(--muted); margin: 0; }
.atlas-quote { font: italic 18px/1.5 var(--serif); border-left: 2px solid var(--red); padding-left: 12px; margin: 6px 0; }
.atlas-src { font-size: 13px; color: var(--muted); margin: 4px 0 0; }
.atlas-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.atlas-chip { font: 600 14px/1.2 var(--sans); border: 1px solid #e3c9ca; background: #fff; color: var(--ink); border-radius: 999px; padding: 5px 11px; cursor: pointer; text-align: left; }
.atlas-chip--trad { border-style: dashed; border-color: #9fabc4; }
.atlas-chip:hover { background: var(--rose-soft); }
.atlas-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1px; }
.atlas-intro { font-size: 16px; line-height: 1.55; margin: 12px 0 0; }
.atlas-pubs { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.atlas-pub { font-size: 15px; line-height: 1.4; padding-left: 12px; border-left: 2px solid var(--line); }
.atlas-pub a { color: var(--ink); text-decoration: none; } .atlas-pub a:hover { color: var(--red); text-decoration: underline; }
.atlas-pub small { display: block; color: var(--muted); font-size: 13px; margin-top: 2px; }
.atlas-tag { color: var(--red); font-weight: 600; letter-spacing: .04em; }
.atlas-more { margin-top: 8px; }
.atlas-more summary { cursor: pointer; font: 600 13px/1.4 var(--sans); color: var(--red); letter-spacing: .04em; list-style: none; }
.atlas-more summary::-webkit-details-marker { display: none; }
.atlas-more summary::before { content: "+ "; } .atlas-more[open] summary::before { content: "− "; }
.atlas-more--h3 { margin-top: 22px; } .atlas-more--h3 summary { font: 600 12px/1.4 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.atlas-more--h3 summary::before { content: none; } .atlas-more--h3 summary::after { content: " +"; } .atlas-more--h3[open] summary::after { content: " −"; }
.atlas-list button { width: 100%; text-align: left; border: 0; background: none; color: var(--ink); font: inherit; font-size: 15px; padding: 5px 6px; border-radius: 4px; cursor: pointer; display: flex; align-items: center; gap: 8px; }
.atlas-list button:hover { background: var(--rose-soft); }
.atlas-list small { color: var(--muted); margin-left: auto; text-align: right; font-size: 13px; }
.atlas-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.atlas-bar-meter { flex: none; width: 46px; height: 6px; background: var(--paper-2); border-radius: 3px; overflow: hidden; }
.atlas-bar-meter i { display: block; height: 100%; background: var(--red); }
.atlas-work { padding: 12px 0; border-top: 1px solid var(--line); }
.atlas-work:first-of-type { border-top: 0; padding-top: 4px; }
.atlas-kind { font: 700 11.5px/1 var(--sans); letter-spacing: .12em; text-transform: uppercase; color: var(--red); }
.atlas-work .t { font: 500 18px/1.3 var(--serif); margin: 4px 0; }
.atlas-work .t a { color: inherit; text-decoration-color: var(--red); }
.atlas-work p { margin: 4px 0; }
.atlas-by button { border: 0; background: none; padding: 0; color: var(--red); font: inherit; font-size: 14px; cursor: pointer; }
.atlas-stance { background: var(--rose-soft); border-radius: var(--radius); padding: 10px 12px; margin: 6px 0; }
.atlas-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); gap: 12px; margin: 14px 0 0; font-variant-numeric: tabular-nums; }
.atlas-stats b { font: 500 30px/1 var(--serif); display: block; }
.atlas-stats span { font-size: 13px; color: var(--muted); }
.atlas-back { border: 0; background: none; color: var(--muted); font: 600 12px var(--sans); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; padding: 0; margin-bottom: 12px; display: block; }
.atlas-back:hover { color: var(--red); }
.atlas-method { max-width: 820px; margin-top: 28px; color: var(--muted); font-size: 16px; }
.atlas-method h2 { font-size: 26px; color: var(--ink); }
.atlas-scroll h2 { font-size: 30px; margin: 0 0 4px; }
.atlas-scroll h3 { font: 700 12px/1.3 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin: 26px 0 10px; }
.atlas-scroll .atlas-meta { max-width: 70ch; }
.gap-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; }
.gap-list li { border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px; }
.gap-list button { border: 0; background: none; padding: 0; text-align: left; cursor: pointer; font: 500 18px/1.25 var(--serif); color: var(--ink); }
.gap-list button:hover { color: var(--red); }
.gap-list p { margin: 4px 0 0; font-size: 14px; color: var(--muted); line-height: 1.45; }
.gap-meter { display: flex; height: 6px; border-radius: 3px; overflow: hidden; background: var(--paper-2); margin-top: 8px; }
.gap-meter i { background: var(--red); }
.atlas-stage :focus-visible, .atlas-panel :focus-visible, .atlas-views :focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
@media (max-width: 1000px) {
  .atlas, .atlas.has-panel { grid-template-columns: minmax(0, 1fr); height: auto; }
  .atlas-stage { height: 64vh; min-height: 420px; }
}
@media (max-width: 520px) {
  .atlas-views { border-radius: 14px; }
  .atlas-views button { padding: 9px 10px; font-size: 12px; letter-spacing: .08em; }
  .atlas-legend { font-size: 12px; gap: 0 10px; right: 12px; }
  .atlas-stage svg.atlas-compass { display: none; }
  .atlas-cartouche { left: 14px; top: 14px; padding: 6px 10px 5px; }
  .atlas-cartouche b { font-size: 10px; letter-spacing: .12em; }
  .atlas-cartouche i { font-size: 12px; }
  .atlas-scroll { padding: 16px 16px 40px; }
}
/* ---------- Op-eds (src/op-eds/*.md, /op-eds/) ---------- */
.oped-list { margin-top: 32px; }
.oped-item { padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.oped-item__dek { margin: 0; color: var(--muted); }
.oped .prose, .oped .wrap.prose > * { max-width: 720px; }
.oped__eyebrow { margin-top: 24px; }
.oped__title { margin: 4px 0 14px; text-wrap: balance; }
.oped__dek { font: italic 22px/1.45 var(--serif); color: var(--muted); margin: 0 0 18px; }
.oped__by { font-weight: 600; margin: 0 0 4px; }
.oped__also { color: var(--muted); font-size: 16px; margin: 0; }
.oped__body { margin-top: 28px; padding-top: 28px; border-top: 1px solid var(--line); font: 21px/1.65 var(--serif); }
.oped__body h2 { font-size: 28px; margin: 36px 0 10px; }
.oped__body blockquote { margin: 24px 0; padding-left: 18px; border-left: 2px solid var(--red); font-style: italic; }
.oped__body code { font-size: .78em; }
.oped__note { margin-top: 40px; font-size: 15px; color: var(--muted); }
.oped__back { font-size: 16px; }
@media (max-width: 600px) { .oped__body { font-size: 19px; } .oped__dek { font-size: 19px; } }
.oped-cta { margin-top: 0; }
/* News page */
.news-list { display: grid; gap: 28px; max-width: 920px; margin: 0 auto; }
.news-item { display: grid; grid-template-columns: 240px 1fr; gap: 28px; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--red); padding: 24px; }
.news-item__img { aspect-ratio: 4 / 3; overflow: hidden; background: #f4f2f2; }
.news-item__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.news-item__img--contain { aspect-ratio: auto; background: none; }
.news-item__img--contain img { height: auto; object-fit: contain; max-height: 300px; }
.news-item .eyebrow { margin: 0 0 6px; }
.news-item__title { font: 500 clamp(1.4rem, 2.2vw, 1.75rem)/1.2 var(--serif); margin: 0 0 8px; }
.news-item__when { font-weight: 600; margin: 0 0 12px; }
.news-item__text p { margin: 0 0 12px; }
.news-item__links { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin-top: 16px !important; }
.news-follow { max-width: 920px; margin: 40px auto 0; text-align: center; }
@media (max-width: 680px) {
  .news-item { grid-template-columns: 1fr; gap: 18px; padding: 18px; }
  .news-item__img { max-width: 100%; }
  .news-item__img--contain img { max-height: 240px; width: auto; margin: 0 auto; }
}

/* Selected publications on profiles (src/_data/scholarWorks.json) */
.works { list-style: none; margin: 12px 0 0; padding: 0; max-width: 920px; }
.works__item { padding: 12px 0; border-bottom: 1px solid var(--line); line-height: 1.4; }
.works__kind { display: block; margin-bottom: 2px; font: 600 12px var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--red); }
.works__item a { color: inherit; font-weight: 600; text-decoration: none; background: linear-gradient(var(--red), var(--red)) 0 100% / 0 1.5px no-repeat; transition: background-size .3s ease, color var(--ease); }
.works__item a:hover { color: var(--red); background-size: 100% 1.5px; }
.works__where { display: block; font-style: italic; color: var(--muted); }
.works__note { margin-top: 10px; font-size: 14px; color: var(--muted); }
.works__agpt { display: inline-block; margin-top: 4px; padding: 1px 8px; border: 1px solid var(--red); border-radius: 999px; font: 600 12px var(--sans); color: var(--red); }
/* Scholars' library (/publications/library/) */
.lib-tools { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin: 28px 0 6px; max-width: 920px; }
.lib-tools__search { flex: 1 1 260px; }
.lib-tools input[type=search], .lib-tools select { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; font: inherit; background: #fff; color: inherit; }
.lib-tools__check { display: flex; gap: 6px; align-items: center; font-size: 15px; }
.lib-count { min-height: 1.4em; margin: 0; font-size: 14px; color: var(--muted); }
.works__by { display: block; font-size: 15px; }
.works__item a.works__person { font-weight: 400; color: var(--red); }
.works__blurb { display: block; margin-top: 4px; font-size: 15px; color: var(--muted); }
