/* ==========================================================================
   Marc Michael Epstein
   ========================================================================== */

/* ---- Tokens -------------------------------------------------------------
   Palette per FIXES doc:
   - Primary blue #0038B8 (Pantone 286 C)
   - Accents: purples, lilacs, fuchsia (replacing the previous warm gold)
   - Vassar Maroon #641A2B reserved for masthead bar (brand-compliant header)
   --gold* tokens kept as names for minimum-churn refactor; they now resolve
   to fuchsia / lilac / deep-purple. Same for --night / --peacock.
   ------------------------------------------------------------------------ */
:root {
  --night:           #0038B8;             /* Pantone 286 C — the spec'd blue */
  --night-deep:      #FFF8EF;             /* Vassar Cream — body bg (light-burgundy theme) */
  --night-mid:       #0a225a;             /* intermediate panel bg */
  --peacock:         #1c4dc9;             /* transitional blue */
  --peacock-bright:  #4274de;             /* highlight blue */
  --burgundy:        #641A2B;             /* Vassar Dark Burgundy — masthead */
  --burgundy-light:  #951829;             /* Vassar Burgundy — masthead alt */

  --gold:            #8d2f6e;             /* deep magenta — regal accent */
  --gold-bright:     #b66ba0;             /* muted lilac — highlight */
  --gold-deep:       #4d1856;             /* aubergine — deep */
  --carmine:         #9f1f4f;             /* deep wine */

  --lilac:           #9a6cc0;
  --purple:          #4d1856;
  --fuchsia:         #8d2f6e;

  --ink-on-dark:     #1a1a1a;             /* near-black body text (light-burgundy theme) */
  --ink-dim:         #5d5d5d;             /* muted secondary text */
  --ink-faded:       #8a8a8a;             /* timestamps, sources */
  --rule:            rgba(100, 26, 43, 0.22);
  --measure: 62ch;
  --display: "Source Serif 4", "Source Serif Pro", "Masqualero", "Garamond", "Hoefler Text", Georgia, serif;
  --body:    "Source Sans 3", "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --sans:    "Source Sans 3", "Source Sans Pro", "Covik Sans", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
}

/* ---- Reset -------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
body, h1, h2, h3, h4, h5, h6, p, ul, ol, figure, blockquote { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; font-size: 18px; }
img { max-width: 100%; height: auto; display: block; }

/* ---- Base --------------------------------------------------------------- */
body {
  font-family: var(--body);
  background: var(--night-deep);
  color: var(--ink-on-dark);
  line-height: 1.6;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

::selection { background: var(--gold); color: var(--night-deep); }

/* ---- Links -------------------------------------------------------------- */
a { color: var(--gold-bright); text-decoration: underline; text-decoration-color: rgba(182,107,160,0.4); text-underline-offset: 0.18em; text-decoration-thickness: 0.05em; transition: color 180ms, text-decoration-color 180ms; }
a:hover { color: var(--gold-bright); text-decoration-color: var(--gold-bright); }

/* ---- Typography --------------------------------------------------------- */
h1, h2, h3, h4 { font-family: var(--display); font-weight: 400; color: var(--ink-on-dark); letter-spacing: 0.005em; }
h1 { font-size: clamp(2.4rem, 4.6vw, 3.6rem); line-height: 1.1; }
h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); line-height: 1.2; margin-top: 2.4em; margin-bottom: 0.7em; }
h3 { font-size: 1.3rem; line-height: 1.25; margin-top: 2em; margin-bottom: 0.4em; font-weight: 500; }
h4 { font-size: 1.05rem; line-height: 1.3; margin-top: 1.6em; margin-bottom: 0.3em; font-weight: 500; }

p, ul, ol { margin-bottom: 1em; max-width: var(--measure); }
em, i { font-style: italic; }
strong, b { font-weight: 600; color: var(--gold-bright); }
ul, ol { padding-left: 1.3em; }
li { margin-bottom: 0.4em; }

.kicker {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1rem;
  font-weight: 500;
  display: block;
}

/* ==========================================================================
   MASTHEAD — Vassar maroon bar with the official JWST lockup (white),
   nav rail beneath on the navy body bg. Per FIXES doc: "show it against
   Vassar's Maroon background." Director line removed.
   ========================================================================== */
.masthead {
  display: block;
  border-bottom: 1px solid var(--rule);
  padding: 0;
}
.masthead__bar {
  background: var(--burgundy);
  padding: 1.4rem clamp(1rem, 3vw, 2.2rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.brand-lockup {
  display: flex;
  align-items: center;
}
.brand-lockup__home {
  display: block;
  text-decoration: none;
  border: 0;
}
.brand-lockup__home:hover { text-decoration: none; opacity: 0.92; }
.brand-lockup__wordmark {
  height: 44px;
  width: auto;
  display: block;
}
.masthead__utility {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.masthead__utility a {
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 180ms, border-color 180ms;
}
.masthead__utility a:hover {
  color: #fff;
  border-bottom-color: rgba(255,255,255,0.6);
}
.masthead__utility .nav-cta {
  padding: 0.55em 1.1em 0.45em;
  border: 1px solid rgba(255,255,255,0.6);
  color: #fff;
  border-radius: 2px;
  transition: background 180ms, color 180ms;
}
.masthead__utility .nav-cta:hover {
  background: #fff;
  color: var(--burgundy);
  border-color: #fff;
}

/* Nav rail beneath the maroon bar — sits on the navy body */
.masthead__nav {
  background: var(--night-deep);
  padding: 0.9rem clamp(1rem, 3vw, 2.2rem);
  border-bottom: 1px solid var(--rule);
}
.masthead__nav-inner {
  display: flex;
  gap: 1.4rem;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
.nav, .masthead__navs { display: contents; }  /* legacy wrappers — flatten */
.nav a, .masthead__nav-inner > a {
  color: var(--ink-on-dark);
  text-decoration: none;
  font-family: var(--sans);
  font-size: 0.76rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding-bottom: 0.25em;
  border-bottom: 1px solid transparent;
  transition: border-color 180ms, color 180ms;
  font-weight: 500;
}
.nav a:hover, .masthead__nav-inner > a:hover {
  color: var(--gold-bright);
  border-bottom-color: var(--gold);
}
.nav a.is-current, .masthead__nav-inner > a.is-current {
  color: var(--gold-bright);
  border-bottom-color: var(--gold);
}
.nav a.nav-cta {
  border: 1px solid var(--gold);
  padding: 0.5em 1em 0.4em;
  color: var(--gold-bright);
  letter-spacing: 0.22em;
  border-radius: 2px;
  transition: background 180ms, color 180ms, border-color 180ms;
}
.nav a.nav-cta:hover {
  background: var(--gold);
  color: #fff;
  border-color: var(--gold);
}
.nav a.nav-cta.is-current {
  background: var(--gold);
  color: #fff;
  border-color: var(--gold);
}

/* Legacy two-row variant — same look as the single nav row */
.masthead--rowed { display: block; }
.masthead--rowed .masthead__navs {
  background: var(--night-deep);
  padding: 0.9rem clamp(1rem, 3vw, 2.2rem);
  border-bottom: 1px solid var(--rule);
  display: flex;
  gap: 1.4rem;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
.masthead--rowed .nav {
  display: contents;
}

/* Mobile collapse */
@media (max-width: 760px) {
  .masthead__bar {
    flex-direction: column;
    gap: 0.9rem;
    padding: 1.1rem 1rem;
  }
  .brand-lockup__wordmark { height: 36px; }
  .masthead__utility { font-size: 0.66rem; gap: 1rem; }
  .masthead__nav-inner,
  .masthead--rowed .masthead__navs {
    gap: 1rem 1.1rem;
    justify-content: flex-start;
  }
  .nav a, .masthead__nav-inner > a { font-size: 0.7rem; }
}

/* ==========================================================================
   DEEP DIVE SEARCH
   ========================================================================== */
.search-trigger {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.8rem;
  background: rgba(141,47,110,0.08);
  color: var(--ink-on-dark);
  border: 1px solid rgba(141,47,110,0.45);
  border-radius: 2px;
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  cursor: pointer;
  transition: background 180ms, border-color 180ms, color 180ms;
}
.search-trigger:hover {
  background: rgba(141,47,110,0.18);
  border-color: var(--gold);
  color: var(--gold-bright);
}
.search-trigger__icon { color: var(--gold); flex-shrink: 0; }
.search-trigger:hover .search-trigger__icon { color: var(--gold-bright); }
.search-trigger__kbd {
  font-family: var(--sans);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  padding: 0.15em 0.4em;
  background: rgba(5,14,32,0.6);
  border: 1px solid rgba(141,47,110,0.3);
  border-radius: 2px;
  color: var(--gold);
  margin-left: 0.2rem;
}

/* Responsive: on narrow viewports, drop the ⌘K hint; keep the icon */
@media (max-width: 640px) {
  .search-trigger__kbd { display: none; }
  .search-trigger { padding: 0.5rem; }
}

/* Overlay */
.search-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(3rem, 10vh, 7rem) 1rem 2rem;
}
.search-overlay[hidden] { display: none; }
.search-overlay__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(5,14,32,0.82);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.search-overlay__panel {
  position: relative;
  width: min(760px, 100%);
  max-height: calc(100vh - 6rem);
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, #0a1a35 0%, #050e20 100%);
  border: 1px solid rgba(141,47,110,0.4);
  border-radius: 3px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(141,47,110,0.08);
  overflow: hidden;
}
.search-overlay__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.4rem 0.9rem;
  border-bottom: 1px dotted rgba(141,47,110,0.25);
}
.search-overlay__heading {
  font-family: var(--display);
  font-size: 1.25rem;
  font-weight: 500;
  color: var(--ink-on-dark);
  margin: 0;
  line-height: 1.2;
}
.search-overlay__kicker {
  display: block;
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
  margin-bottom: 0.25em;
}
.search-overlay__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  background: transparent;
  border: 1px solid rgba(141,47,110,0.3);
  color: var(--gold);
  border-radius: 50%;
  cursor: pointer;
  transition: background 180ms, color 180ms, border-color 180ms;
}
.search-overlay__close:hover {
  background: rgba(141,47,110,0.15);
  color: var(--gold-bright);
  border-color: var(--gold);
}

.search-overlay__inputwrap {
  position: relative;
  padding: 1rem 1.4rem 0.5rem;
}
.search-overlay__inputicon {
  position: absolute;
  left: 1.95rem;
  top: 50%;
  transform: translateY(-12%);
  color: var(--gold);
  pointer-events: none;
}
.search-overlay__input {
  width: 100%;
  background: rgba(5,14,32,0.6);
  border: 1px solid rgba(141,47,110,0.3);
  border-radius: 2px;
  color: var(--ink-on-dark);
  font-family: var(--display);
  font-size: 1.15rem;
  padding: 0.75rem 1rem 0.75rem 2.75rem;
  outline: none;
  transition: border-color 180ms;
}
.search-overlay__input::placeholder {
  color: var(--ink-dim);
  font-style: italic;
}
.search-overlay__input:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(141,47,110,0.15);
}
.search-overlay__input::-webkit-search-cancel-button { -webkit-appearance: none; }

.search-overlay__hint {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-dim);
  font-size: 0.9rem;
  margin: 0;
  padding: 0.4rem 1.4rem 0.9rem;
  line-height: 1.45;
}
.search-overlay__hint em {
  font-style: italic;
  color: var(--gold-bright);
}

.search-overlay__results {
  flex: 1;
  overflow-y: auto;
  padding: 0 0.5rem 0.5rem;
  scrollbar-width: thin;
  scrollbar-color: rgba(141,47,110,0.4) transparent;
}
.search-overlay__results::-webkit-scrollbar { width: 6px; }
.search-overlay__results::-webkit-scrollbar-thumb {
  background: rgba(141,47,110,0.4); border-radius: 3px;
}
.search-overlay__results::-webkit-scrollbar-track { background: transparent; }

.search-result {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: 1rem;
  align-items: baseline;
  padding: 0.7rem 0.9rem;
  margin: 0.15rem 0;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 2px;
  transition: background 120ms, border-color 120ms;
}
.search-result:hover,
.search-result.is-active {
  background: rgba(141,47,110,0.1);
  border-color: rgba(141,47,110,0.35);
}
.search-result__page {
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
  text-align: right;
}
.search-result__text {
  font-family: var(--display);
  color: var(--ink-on-dark);
  font-size: 0.98rem;
  line-height: 1.4;
}
.search-result mark {
  background: rgba(141,47,110,0.3);
  color: var(--gold-bright);
  padding: 0 0.1em;
  border-radius: 1px;
  font-weight: 500;
}

.search-overlay__empty {
  padding: 2rem 1.4rem;
  font-family: var(--display);
  color: var(--ink-dim);
  text-align: center;
}
.search-overlay__empty p { margin: 0 0 0.6em; }
.search-overlay__empty strong { color: var(--ink-on-dark); font-style: italic; }
.search-overlay__empty-hint {
  font-size: 0.9rem;
  font-style: italic;
}
.search-overlay__empty-hint em {
  color: var(--gold-bright);
  font-style: italic;
}

/* Lock body scroll while search is open */
body.search-open { overflow: hidden; }

/* When masthead wraps on narrow screens, give the search button room */
@media (max-width: 900px) {
  .masthead {
    grid-template-columns: auto auto;
    grid-template-rows: auto auto;
  }
  .brand { grid-column: 1; grid-row: 1; }
  .search-trigger { grid-column: 2; grid-row: 1; }
  .nav { grid-column: 1 / -1; grid-row: 2; justify-self: start; }

  /* Rowed variant collapses to brand-on-top, navs-below */
  .masthead--rowed { grid-template-columns: 1fr; }
  .masthead--rowed .brand { grid-column: 1; grid-row: 1; }
  .masthead--rowed .masthead__navs {
    grid-column: 1;
    grid-row: 2;
    align-items: flex-start;
    justify-self: start;
  }
  .masthead--rowed .nav { justify-self: start; }
}

/* ---- Page scaffolding --------------------------------------------------- */
main {
  flex: 1 0 auto;
  padding: 0 clamp(1.5rem, 4vw, 3rem) 5rem;
}
.container { max-width: 72rem; margin: 0 auto; width: 100%; }
.prose { max-width: var(--measure); margin: 0 auto 0 0; }
.prose--wide { max-width: 58rem; margin: 0 auto 0 0; }

.page-header {
  margin: 3rem 0 2.5rem;
  max-width: 58rem;
}
.page-header h1 {
  margin-bottom: 0.5em;
  color: var(--ink-on-dark);
  font-variant: small-caps;
  letter-spacing: 0.045em;
  font-weight: 400;
}
.page-header .lede {
  font-family: var(--display);
  font-style: italic;
  font-size: 1.2rem;
  color: var(--ink-dim);
  max-width: 44rem;
  line-height: 1.5;
}

/* ---- Ampersand — italic Cormorant glyph in warm gold ------------------- */
.amp {
  font-family: var(--display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.12em;
  color: var(--gold-bright);
  padding: 0 0.02em;
  letter-spacing: 0;
  line-height: 1;
}
/* In contexts where a display italic glyph would clash — sans-caps kickers,
   all-caps award names, the award lede — keep the ampersand in context. */
.kicker .amp,
.nav .amp,
.lede--awards .amp,
.lede--awards strong .amp,
.book__award-name .amp,
.brand__text small .amp {
  font-family: inherit;
  font-style: inherit;
  font-weight: inherit;
  font-size: inherit;
  color: inherit;
  padding: 0;
}
/* In the hero, the ampersand sits inside already-italic prose — render it
   slightly larger and in gold so it still carries. */
.home .hero__role .amp,
.home .hero__work .amp {
  color: var(--gold-bright);
}

/* ---- Footer ------------------------------------------------------------- */
.foot {
  padding: 2.2rem clamp(1.5rem, 4vw, 3rem);
  border-top: 1px solid rgba(141,47,110,0.3);
  font-size: 0.86rem;
  color: var(--ink-dim);
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  align-items: center;
  margin-top: auto;
  font-family: var(--sans);
  font-style: normal;
  letter-spacing: 0.04em;
}
.foot a { color: var(--gold); border-bottom: 1px solid transparent; transition: color 180ms, border-color 180ms; }
.foot a:hover { color: var(--gold-bright); border-bottom-color: var(--gold); }
.foot__brand {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.foot__brand img {
  height: 24px;
  width: auto;
  display: block;
  opacity: 0.95;
}
.foot__brand span {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-on-dark);
  font-weight: 500;
}
.foot .affils { display: flex; gap: 1.8rem; flex-wrap: wrap; font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; }

/* ==========================================================================
   HOME — hero overlay (image flush right at any viewport, text flush left,
   image enlarged so its cosmos region overlaps behind the text)
   Image: 3357 × 2546 — aspect 1.319 : 1
   ========================================================================== */
.home .hero {
  position: relative;
  width: 100%;
  height: 88vh;
  min-height: 640px;
  max-height: 960px;
  overflow: hidden;
  background: #050e20;
}
.home .hero__img {
  position: absolute;
  top: 0; right: 0; bottom: 0;
  /* Width scales with viewport height so the image stays large and pinned
     right. aspect-ratio width = height × 1.319; we scale up to 135% so the
     cosmos bleeds well into the text column. */
  width: calc(88vh * 1.319 * 1.35);
  min-width: 100%;
  max-width: 150vw;
  background: url('hero.jpg') right center / cover no-repeat;
}
/* Darkening gradient over the left portion of the image for text legibility.
   Stronger at the far left, fades out before the gilded medallion. */
.home .hero__img::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(100deg,
      rgba(5,14,32,0.95) 0%,
      rgba(5,14,32,0.82) 18%,
      rgba(5,14,32,0.48) 34%,
      rgba(5,14,32,0.12) 48%,
      rgba(5,14,32,0) 58%);
  pointer-events: none;
}
.home .hero__inner {
  position: absolute; inset: 0; z-index: 2;
  display: flex; align-items: center;
  padding: 0 clamp(1.5rem, 4vw, 3.2rem);
}
.home .hero__text {
  max-width: min(40%, 32rem);
  position: relative;
  padding: 0.5rem 0;
}
.home .hero__text::before {
  content: "";
  position: absolute;
  inset: -2rem -3rem -2rem -1rem;
  background: radial-gradient(ellipse at 38% 50%, rgba(5,14,32,0.55), rgba(5,14,32,0) 72%);
  z-index: -1;
  pointer-events: none;
}
.home .hero__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(2.4rem, 4.4vw, 4rem);
  line-height: 1.02;
  color: var(--ink-on-dark);
  letter-spacing: 0.05em;
  margin-bottom: 1.1rem;
  text-transform: uppercase;
  text-shadow: 0 2px 20px rgba(0,0,0,0.85);
}
.home .hero__tagline {
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(1rem, 1.15vw, 1.25rem);
  line-height: 1.5;
  font-weight: 400;
}
.home .hero__tagline p { margin: 0; }
.home .hero__work + .hero__work { margin-top: 0.9rem; }
.home .hero__role {
  display: block;
  color: var(--ink-on-dark);
  font-size: clamp(0.95rem, 1.05vw, 1.15rem);
  font-style: normal;
  font-family: var(--display);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.005em;
  text-shadow: 0 1px 14px rgba(0,0,0,0.8);
}
.home .hero__role em { font-style: italic; }
.home .hero__sep {
  display: block;
  width: 2.6rem;
  height: 1px;
  background: var(--gold);
  opacity: 0.8;
  margin: 1.1rem 0;
  box-shadow: 0 0 6px rgba(141,47,110,0.45);
}
.home .hero__work {
  display: block;
  font-style: italic;
  color: var(--ink-on-dark);
  font-size: clamp(1rem, 1.15vw, 1.25rem);
  line-height: 1.45;
  text-shadow: 0 1px 14px rgba(0,0,0,0.8);
}

/* Narrow viewports: keep image flush right but reduce the enlargement so
   the text column remains readable. */
@media (max-width: 900px) {
  .home .hero {
    height: auto;
    min-height: 0;
    max-height: none;
    aspect-ratio: 16 / 11;
  }
  .home .hero__img {
    width: 130%;
  }
  .home .hero__img::after {
    background:
      linear-gradient(100deg,
        rgba(5,14,32,0.96) 0%,
        rgba(5,14,32,0.78) 22%,
        rgba(5,14,32,0.35) 42%,
        rgba(5,14,32,0) 58%);
  }
  .home .hero__text { max-width: 60%; }
}
@media (max-width: 600px) {
  .home .hero { aspect-ratio: 5 / 6; }
  .home .hero__img { width: 150%; }
  .home .hero__text { max-width: 80%; }
}

/* Home: below-hero featured */
.home__content { padding: 4rem clamp(1.5rem, 4vw, 3rem) 0; }
.home__featured {
  max-width: 72rem;
  margin: 0 auto 3rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: clamp(2rem, 4vw, 3rem);
  border-top: 1px solid rgba(141,47,110,0.3);
  padding-top: 3rem;
}
.home__featured .panel .kicker { margin-bottom: 0.8rem; }
.home__featured .panel h3 {
  font-family: var(--display);
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.18;
  color: var(--ink-on-dark);
  margin: 0 0 0.6em;
}
.home__featured .panel h3 a { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; }
.home__featured .panel h3 a:hover { border-bottom-color: var(--gold); }
.home__featured .panel p { color: var(--ink-dim); font-size: 1rem; line-height: 1.55; margin: 0; }

@media (max-width: 640px) { .home__featured { grid-template-columns: 1fr; } }

.home__index {
  max-width: 50rem;
  margin: 0 auto 4rem;
  text-align: center;
}
.home__index .kicker { margin-bottom: 1.2rem; }
.home__index ul {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 1.2rem 2.4rem;
  justify-content: center;
  max-width: 100%;
}
.home__index li { margin: 0; }
.home__index a {
  font-family: var(--display);
  font-size: 1.4rem;
  color: var(--ink-on-dark);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  padding-bottom: 0.15em;
  transition: border-color 180ms, color 180ms;
}
.home__index a:hover { color: var(--gold-bright); border-bottom-color: var(--gold); }

/* ==========================================================================
   ABOUT
   ========================================================================== */
.about {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: clamp(1.8rem, 4vw, 4rem);
  align-items: start;
  max-width: 76rem;
  margin: 0 auto;
}
.about__portrait { position: sticky; top: 2rem; }
.about__portrait img {
  width: 100%;
  border-radius: 2px;
  box-shadow: 0 14px 48px rgba(0,0,0,0.55);
  border: 1px solid rgba(141,47,110,0.35);
}
.about__portrait figcaption {
  font-family: var(--display);
  font-style: italic;
  font-size: 0.86rem;
  color: var(--ink-dim);
  margin-top: 0.6rem;
  text-align: right;
}
.about__text p { font-size: 1.05rem; line-height: 1.65; color: var(--ink-on-dark); }
.about__text p + p { margin-top: 1em; }

.press-list { list-style: none; padding: 0; max-width: none; }
.press-list li {
  padding: 1em 0;
  border-bottom: 1px dotted rgba(141,47,110,0.35);
}
.press-list li:last-child { border-bottom: 0; }
.press-list cite { font-style: italic; color: var(--ink-dim); font-size: 0.95em; }

.cv-link {
  display: inline-block;
  margin-top: 1.5em;
  font-family: var(--sans);
  font-size: 0.82rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold-bright);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 0.2em;
  font-weight: 500;
}
.cv-link:hover { color: var(--gold-bright); border-bottom-color: var(--gold-bright); }

@media (max-width: 820px) {
  .about { grid-template-columns: 1fr; }
  .about__portrait { position: static; max-width: 26rem; margin: 0 auto 2rem; }
  .about__portrait figcaption { text-align: center; }
}

/* ==========================================================================
   BOOKS
   ========================================================================== */
.books {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: clamp(1.8rem, 4vw, 3rem);
  max-width: 72rem;
  margin: 0 auto;
}
.book { display: flex; flex-direction: column; gap: 0.5rem; }
.book__cover {
  position: relative;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 45%, rgba(26,138,158,0.14), rgba(5,14,32,0) 70%),
    var(--night);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 6px 24px rgba(0,0,0,0.4);
  border: 1px solid rgba(141,47,110,0.2);
  transition: transform 260ms ease, box-shadow 260ms ease, border-color 260ms ease;
}
.book:hover .book__cover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,0.5);
  border-color: rgba(141,47,110,0.5);
}
/* Every cover is shown whole — no cropping. Any aspect mismatch with the
   2:3 cell is absorbed by the night-blue cell background. */
.book__cover img {
  width: 100%; height: 100%;
  object-fit: contain;
  padding: 0.55rem;
}
/* Gold seal overlay for award-winning books */
.book__seal {
  position: absolute;
  top: 0.55rem; right: 0.55rem;
  width: 34px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: rgba(5,14,32,0.72);
  box-shadow: 0 2px 8px rgba(0,0,0,0.55), 0 0 0 1px rgba(141,47,110,0.45);
  z-index: 2;
  pointer-events: auto;
}
.book__seal svg { display: block; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.5)); }
.book__seal-count {
  position: absolute;
  bottom: -4px; right: -4px;
  min-width: 16px; height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  background: var(--night-deep);
  border: 1px solid var(--gold);
  color: var(--gold-bright);
  font-family: var(--sans);
  font-size: 0.62rem;
  font-weight: 600;
  line-height: 14px;
  text-align: center;
  letter-spacing: 0.02em;
}
.book__title {
  font-family: var(--display);
  font-size: 1.2rem;
  color: var(--ink-on-dark);
  line-height: 1.22;
  margin-top: 0.6rem;
  font-weight: 500;
}
.book__meta {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-dim);
  font-size: 0.88rem;
}
.book__desc {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--ink-on-dark);
  margin-top: 0.3rem;
}
.book__links { margin-top: 0.5rem; font-size: 0.85rem; }
.book__links a { margin-right: 0.9rem; }

/* Award list below description — compact, one line per award */
.book__awards {
  list-style: none;
  padding: 0.55rem 0 0.1rem;
  margin: 0.5rem 0 0;
  border-top: 1px dotted rgba(141,47,110,0.3);
  max-width: none;
}
.book__awards li {
  position: relative;
  padding: 0.18em 0 0.18em 1.1rem;
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.35;
}
.book__awards li::before {
  content: "✦";
  position: absolute;
  left: 0;
  top: 0.22em;
  color: var(--gold);
  font-size: 0.78rem;
  line-height: 1;
}
.book__award-name {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold-bright);
  font-weight: 500;
}
.book__award-sub {
  font-family: var(--display);
  color: var(--ink-dim);
  font-size: 0.82rem;
  letter-spacing: 0;
}
.book__award-sub em { font-style: italic; }

/* Awards lede paragraph on books page header */
.lede--awards {
  font-family: var(--sans) !important;
  font-style: normal !important;
  font-size: 0.74rem !important;
  line-height: 2 !important;
  color: var(--ink-dim) !important;
  letter-spacing: 0.02em;
  margin-top: 1.6rem !important;
  max-width: 54rem !important;
  padding-top: 1.3rem;
  border-top: 1px solid rgba(141,47,110,0.28);
}
.lede--awards strong {
  font-family: var(--sans);
  font-weight: 600;
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-bright);
  white-space: nowrap;
  margin-right: 0.2rem;
}
.lede--awards span {
  font-family: var(--sans);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  color: var(--gold);
  margin-right: 0.55rem;
}

/* ==========================================================================
   WRITING
   ========================================================================== */
.writing-section { margin-top: 2.6rem; }
.writing-section > h2 {
  border-bottom: 1px solid var(--gold);
  padding-bottom: 0.5em;
  max-width: var(--measure);
  margin-left: 0;
  margin-right: auto;
  font-family: var(--sans);
  font-size: 0.82rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gold-bright);
  font-weight: 500;
}
.writing-item { max-width: var(--measure); margin: 0 0 1.4em; }
.writing-item p { margin: 0; font-size: 1.03rem; line-height: 1.55; max-width: none; }
.writing-item strong { color: var(--gold-bright); font-weight: 500; }
.writing-item a.read-link {
  font-family: var(--sans);
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-bright);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 0.1em;
  margin-left: 0.4em;
  white-space: nowrap;
  font-weight: 500;
}
.writing-item a.read-link:hover { color: var(--gold-bright); border-bottom-color: var(--gold-bright); }

.book__reviews {
  margin-top: 0.4rem;
  font-size: 0.86rem;
}
.book__reviews summary {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--gold);
  cursor: pointer;
  list-style: none;
  padding: 0.2em 0;
  border-bottom: 1px dotted rgba(141,47,110,0.3);
  font-weight: 500;
  transition: color 180ms;
}
.book__reviews summary::-webkit-details-marker { display: none; }
.book__reviews summary::before {
  content: "+ ";
  color: var(--gold);
  font-family: var(--display);
  font-weight: 400;
}
.book__reviews[open] summary::before { content: "− "; }
.book__reviews summary:hover { color: var(--gold-bright); }
.book__reviews ul {
  list-style: none;
  padding: 0.6rem 0 0.2rem;
  margin: 0;
  max-width: none;
}
.book__reviews li {
  font-family: var(--display);
  font-style: italic;
  font-size: 0.92rem;
  line-height: 1.4;
  padding: 0.2em 0;
  color: var(--ink-on-dark);
  margin-bottom: 0;
}
.book__reviews li a {
  color: var(--ink-on-dark);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 180ms, color 180ms;
}
.book__reviews li a:hover { color: var(--gold-bright); border-bottom-color: var(--gold); }
.book__reviews li cite { font-style: italic; color: var(--gold-bright); }

/* Press & Reviews consolidated section */
.press-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr));
  gap: clamp(1.5rem, 3vw, 2.4rem);
  max-width: 72rem;
  margin: 0 auto;
}
.press-book {
  padding: 1.2rem 1.4rem 0.4rem;
  border: 1px solid rgba(141,47,110,0.22);
  background: rgba(141,47,110,0.03);
  border-radius: 2px;
}
.press-book__title {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-on-dark);
  font-size: 1.1rem;
  font-weight: 500;
  margin: 0 0 0.7rem;
  line-height: 1.25;
  padding-bottom: 0.5rem;
  border-bottom: 1px dotted rgba(141,47,110,0.3);
}
.press-book__title::before {
  content: "Review of ";
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  font-style: normal;
  font-weight: 500;
  display: block;
  margin-bottom: 0.35em;
}
.press-book__list {
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: none;
}
.press-book__list li {
  padding: 0.38em 0;
  border-bottom: 1px dotted rgba(141,47,110,0.18);
  font-size: 0.92rem;
  line-height: 1.35;
  margin: 0;
}
.press-book__list li:last-child { border-bottom: 0; }
.press-book__list a {
  color: var(--ink-on-dark);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 180ms, color 180ms;
}
.press-book__list a:hover {
  color: var(--gold-bright);
  border-bottom-color: var(--gold);
}
.press-book__list cite {
  font-style: italic;
  color: var(--gold-bright);
  margin-right: 0.1em;
}

/* ==========================================================================
   TEACHING
   ========================================================================== */
.course { max-width: var(--measure); margin: 0 0 2.8em; }
.course__code {
  font-family: var(--sans);
  font-size: 0.74rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.1em;
  font-weight: 500;
  line-height: 1.1;
}
.course__title {
  font-family: var(--display);
  color: var(--ink-on-dark);
  font-size: 1.6rem;
  line-height: 1.15;
  font-weight: 500;
  margin-top: 0;
  margin-bottom: 0.8em;
}
.course__topic {
  font-family: var(--display);
  font-style: italic;
  color: var(--gold-bright);
  margin-top: 0.8em;
  margin-bottom: 0.3em;
  font-size: 1rem;
}
.course p { font-size: 1rem; line-height: 1.6; color: var(--ink-on-dark); }

.download-card {
  max-width: var(--measure);
  margin: 2rem 0;
  padding: 1.2rem 1.4rem;
  border: 1px solid rgba(141,47,110,0.4);
  background: rgba(141,47,110,0.04);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.download-card .label {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-on-dark);
  flex: 1;
  min-width: 18rem;
  max-width: none;
  margin: 0;
}
.download-card a {
  font-family: var(--sans);
  font-size: 0.82rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 0.2em;
  color: var(--gold-bright);
  font-weight: 500;
}

/* ==========================================================================
   LECTURES / TOURS / MEDIA
   ========================================================================== */
.topic { max-width: var(--measure); margin: 0 0 2em; }
.topic h3 {
  font-family: var(--display);
  color: var(--ink-on-dark);
  font-weight: 500;
  font-size: 1.35rem;
  margin-bottom: 0.3em;
  margin-top: 0;
}
.topic p { font-size: 1rem; line-height: 1.6; color: var(--ink-on-dark); margin: 0; }

/* Section headers that separate major regions of the lectures page */
.section-head {
  max-width: 60rem;
  margin: 4rem 0 1.6rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(141,47,110,0.35);
}
.section-head__label {
  font-family: var(--sans);
  font-size: 0.82rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gold-bright);
  font-weight: 500;
  margin: 0 0 0.6rem;
}
.section-head__note {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-dim);
  font-size: 1rem;
  max-width: 44rem;
  margin: 0;
}

/* Year-anchored listing: year label on left, entries right */
.lecture-year {
  display: grid;
  grid-template-columns: 5.2rem minmax(0, 1fr);
  gap: 1.2rem clamp(1rem, 2.5vw, 2rem);
  margin: 0 0 1.6rem;
  max-width: 64rem;
  padding-top: 1rem;
  border-top: 1px dotted rgba(141,47,110,0.22);
}
.lecture-year:first-of-type { border-top: 0; padding-top: 0; }
.lecture-year__label {
  font-family: var(--sans);
  font-size: 0.86rem;
  letter-spacing: 0.22em;
  color: var(--gold);
  font-weight: 500;
  padding-top: 0.15em;
}
.lecture-year__items { display: flex; flex-direction: column; gap: 1.1rem; }

/* Side-by-side description boxes for the two endowed lecture series */
.lecture-series-pair {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(1.2rem, 2.6vw, 2rem);
  margin: 1.6rem 0 3rem;
}
.lecture-series-card {
  padding: 1.6rem 1.4rem 1.5rem;
  background: rgba(255,255,255,0.025);
  border: 1px solid var(--rule);
  border-left: 3px solid var(--gold);
  border-radius: 3px;
}
.lecture-series-card__kicker {
  display: block;
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold-bright);
  font-weight: 600;
  margin-bottom: 0.6rem;
}
.lecture-series-card__title {
  font-family: var(--display);
  font-weight: 500;
  font-size: 1.35rem;
  line-height: 1.2;
  color: var(--ink-on-dark);
  margin: 0 0 0.7rem;
}
.lecture-series-card p {
  font-size: 0.95rem;
  line-height: 1.55;
  margin: 0;
  color: var(--ink-on-dark);
}

/* Individual invited-lecture entries */
.invited { max-width: none; }
.invited--linked {
  display: block;
  text-decoration: none;
  color: inherit;
  padding: 1rem 1.2rem 1.05rem;
  margin: 0;
  border-left: 2px solid var(--rule);
  border-radius: 2px;
  background: rgba(255,255,255,0.015);
  transition: border-color 200ms, background 200ms, transform 200ms;
}
.invited--linked:hover {
  border-left-color: var(--gold);
  background: rgba(141,47,110,0.06);
  transform: translateX(2px);
}
.invited__venue {
  font-family: var(--display);
  font-size: 1.04rem;
  color: var(--ink-on-dark);
  font-weight: 500;
  line-height: 1.35;
}
.invited__series {
  font-family: var(--display);
  font-style: italic;
  color: var(--gold-bright);
  font-size: 0.92rem;
  line-height: 1.4;
  margin-top: 0.1em;
}
.invited__title {
  font-family: var(--display);
  color: var(--ink-on-dark);
  font-size: 0.98rem;
  line-height: 1.4;
  margin-top: 0.15em;
  opacity: 0.92;
}
.invited__title::before {
  content: "\201C";
  color: var(--gold);
  margin-right: 0.08em;
}
.invited__title::after {
  content: "\201D";
  color: var(--gold);
  margin-left: 0.04em;
}
/* Plain title variant: no curly quote pseudo-elements (for titles that are
   not themselves quotations, or that contain embedded punctuation). */
.invited__title--plain::before,
.invited__title--plain::after { content: none; }

/* ==========================================================================
   MEDIA — featured lectures with inline video embeds, and CSP series archive
   ========================================================================== */
.lectures-subhead {
  font-family: var(--sans);
  font-size: 0.88rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold-bright);
  font-weight: 500;
  margin: 3.2rem 0 1.6rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid rgba(141,47,110,0.3);
  max-width: 64rem;
}

/* Invited entry with an embedded video below the text */
.lecture-feature { margin-bottom: 2rem; }
.lecture-feature__embed {
  margin-top: 1rem;
  max-width: 64rem;
  background: #000;
  border: 1px solid rgba(141,47,110,0.25);
}
.lecture-feature__embed iframe,
.lecture-feature__embed video {
  display: block;
  width: 100%;
  border: 0;
}
.lecture-feature__note {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-dim);
  font-size: 0.95rem;
  margin: 0.6rem 0 0;
}
.lecture-feature__source {
  font-family: var(--sans);
  font-size: 0.74rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ink-dim);
  margin: 0.5rem 0 0;
}
/* Vimeo "Watch on Vimeo" links replacing embedded players */
.lecture-feature__link {
  font-family: var(--sans);
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin: 0.7rem 0 0;
}
.lecture-feature__link a {
  color: var(--gold-bright);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 0.12em;
  transition: color 180ms;
}
.lecture-feature__link a:hover {
  color: var(--ink-on-dark);
}
/* Standalone "Browse the full showcase" link for CSP */
.csp-showcase-link {
  font-family: var(--sans);
  font-size: 0.84rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin: 0 0 2.5rem;
  max-width: 64rem;
  padding-top: 0.4rem;
  border-top: 1px solid rgba(141,47,110,0.25);
  padding-bottom: 1.2rem;
}
.csp-showcase-link a {
  color: var(--gold-bright);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 0.15em;
  transition: color 180ms;
}
.csp-showcase-link a:hover { color: var(--ink-on-dark); }

/* Community Scholar Program introduction block */
.csp-intro {
  max-width: 72rem;
  margin: 0 0 2.5rem;
  font-family: var(--display);
  color: var(--ink-on-dark);
  font-size: 1.05rem;
  line-height: 1.65;
}
.csp-intro p {
  margin: 0;
  max-width: none;
}
.csp-intro strong {
  color: var(--gold-bright);
  font-weight: 500;
  font-style: italic;
}

/* Embedded CSP playlist player */
.csp-playlist {
  max-width: 64rem;
  margin: 0 0 3rem;
}
.csp-playlist iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
  border: 1px solid rgba(141,47,110,0.3);
  background: #000;
}
.csp-playlist__link {
  font-family: var(--sans);
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin: 0.9rem 0 0;
  text-align: right;
}
.csp-playlist__link a {
  color: var(--gold-bright);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 0.12em;
}
.csp-playlist__link a:hover { color: var(--ink-on-dark); }

/* Textual table of contents for CSP series */
.csp-series {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr));
  gap: 1.8rem 2.4rem;
  max-width: 72rem;
  margin: 0 0 3rem;
}
.csp-series__item {
  padding: 1.2rem 1.4rem 1.2rem;
  border: 1px solid rgba(141,47,110,0.22);
  background: rgba(141,47,110,0.03);
  border-radius: 2px;
}
.csp-series__item h4 {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-on-dark);
  font-size: 1.15rem;
  font-weight: 500;
  margin: 0 0 0.3em;
  line-height: 1.25;
}
.csp-series__date {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 0.9em;
  padding-bottom: 0.6em;
  border-bottom: 1px dotted rgba(141,47,110,0.3);
}
.csp-series__list {
  list-style: decimal;
  padding: 0 0 0 1.4em;
  margin: 0;
  max-width: none;
}
.csp-series__list li {
  padding: 0.25em 0;
  font-family: var(--display);
  color: var(--ink-on-dark);
  font-size: 0.96rem;
  line-height: 1.35;
  margin: 0;
}
.csp-series__list li::marker {
  color: var(--gold);
  font-family: var(--sans);
  font-size: 0.85em;
}
.csp-series__list a,
.csp-series__item h4 a {
  color: var(--ink-on-dark);
  text-decoration: none;
  border-bottom: 1px solid rgba(141,47,110,0.28);
  padding-bottom: 0.08em;
  transition: color 180ms, border-color 180ms;
}
.csp-series__list a:hover,
.csp-series__item h4 a:hover {
  color: var(--gold-bright);
  border-bottom-color: var(--gold);
}
.csp-series__item h4 a {
  border-bottom-color: rgba(141,47,110,0.4);
}

/* Public-talks compact listing */
.public-talks {
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: none;
}
.public-talks li {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  padding: 0.5em 0;
  margin: 0;
  border-bottom: 1px dotted rgba(141,47,110,0.18);
  font-size: 0.94rem;
  line-height: 1.42;
}
.public-talks li:last-child { border-bottom: 0; }
.pt__venue {
  font-family: var(--display);
  color: var(--ink-on-dark);
  font-weight: 500;
}
.pt__title {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-dim);
  margin-top: 0.1em;
}

@media (max-width: 640px) {
  .lecture-year { grid-template-columns: 1fr; gap: 0.5rem; }
  .lecture-year__label { padding-top: 0; }
}

.series {
  max-width: var(--measure);
  margin: 0 0 2.4em;
  padding-left: 1.4rem;
  border-left: 2px solid var(--gold);
}
.series h3 {
  font-family: var(--display);
  color: var(--ink-on-dark);
  font-weight: 500;
  margin: 0 0 0.25em;
  font-size: 1.3rem;
}
.series .note {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-dim);
  font-size: 0.98rem;
  margin-bottom: 0.8em;
}
.series ul { list-style: none; padding: 0; margin: 0; max-width: none; }
.series li {
  padding: 0.5em 0;
  border-bottom: 1px dotted rgba(141,47,110,0.3);
}
.series li:last-child { border-bottom: 0; }

.tour {
  max-width: 64rem;
  margin: 0 0 3em;
  padding-bottom: 2.4em;
  border-bottom: 1px solid rgba(141,47,110,0.3);
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.6rem;
  align-items: start;
}
.tour:has(.tour__figure) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
  gap: clamp(1.2rem, 3vw, 2.4rem);
}
.tour:last-of-type { border-bottom: 0; }
.tour__figure {
  margin: 0;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid rgba(141,47,110,0.3);
  box-shadow: 0 10px 36px rgba(0,0,0,0.5);
  border-radius: 2px;
  background: var(--night);
}
.tour__figure img {
  width: 100%; height: 100%;
  object-fit: cover;
}
.tour__text { max-width: var(--measure); }
.tour h2 {
  margin-top: 0;
  font-family: var(--display);
  color: var(--ink-on-dark);
  font-weight: 500;
  font-size: 1.9rem;
}
.tour .placeholder {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.8em;
  font-weight: 500;
}
@media (max-width: 720px) {
  .tour:has(.tour__figure) { grid-template-columns: 1fr; }
  .tour__figure { aspect-ratio: 3 / 2; max-width: 100%; }
}

.media-audio {
  max-width: var(--measure);
  margin: 0 0 2em;
  padding: 1.2rem 0 1.4rem;
  border-bottom: 1px dotted rgba(141,47,110,0.3);
}
.media-audio h3 {
  font-family: var(--display);
  color: var(--ink-on-dark);
  font-size: 1.2rem;
  margin: 0 0 0.2em;
  font-weight: 500;
}
.media-audio .meta {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-dim);
  font-size: 0.92rem;
  margin-bottom: 0.7em;
  margin-top: 0;
}
.media-audio audio {
  width: 100%;
  max-width: 520px;
}

/* Dark audio player tweaks */
audio {
  filter: invert(0.9) hue-rotate(180deg);
}

/* ---- Responsive --------------------------------------------------------- */
@media (max-width: 600px) {
  html { font-size: 17px; }
  .masthead { padding: 1.2rem 1.4rem 1rem; }
  .nav { gap: 1rem; }
  .nav a { font-size: 0.74rem; letter-spacing: 0.18em; }
  .brand__home img { width: 38px; height: 38px; }
  .brand__name { font-size: 1.1rem; }
  .brand__text small { font-size: 0.58rem; letter-spacing: 0.25em; }
}

/* ==========================================================================
   ADDITIONS for Jewish Studies @ Vassar — extending Marc's vocabulary
   These patterns reuse the existing tokens, fonts, and rule-styles. They do
   not introduce new color palettes, decorative panels, or visual gimmicks.
   ========================================================================== */

/* Course list: thin dotted-rule rows mirroring the press-list pattern */
.course-list { max-width: 64rem; margin: 0 0 2rem; }
.course-list__row {
  display: grid;
  grid-template-columns: 7rem minmax(0, 1fr) 9rem;
  gap: 1.4rem;
  padding: 0.7em 0;
  border-bottom: 1px dotted rgba(141,47,110,0.22);
  align-items: baseline;
}
.course-list__row:last-child { border-bottom: 0; }
.course-list__row .code {
  font-family: var(--sans);
  font-size: 0.74rem;
  letter-spacing: 0.18em;
  color: var(--gold);
  font-weight: 500;
}
.course-list__row .title {
  font-family: var(--display);
  font-size: 1.05rem;
  color: var(--ink-on-dark);
  line-height: 1.35;
}
.course-list__row .title em { color: var(--ink-dim); font-style: italic; }
.course-list__row .tier {
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-dim);
  text-align: right;
}
@media (max-width: 760px) {
  .course-list__row { grid-template-columns: 1fr; gap: 0.2rem; padding: 0.9rem 0; }
  .course-list__row .tier { text-align: left; }
}

/* Q&A blocks for the brochure questions, rendered like Marc's about__text */
.qa {
  display: grid;
  grid-template-columns: 16rem 1fr;
  gap: 2.4rem;
  padding: 1.6rem 0;
  border-bottom: 1px dotted rgba(141,47,110,0.28);
  max-width: 64rem;
}
.qa:last-of-type { border-bottom: 0; }
.qa .q {
  font-family: var(--display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.4rem;
  color: var(--gold-bright);
  line-height: 1.18;
}
.qa .a { font-size: 1.04rem; line-height: 1.65; color: var(--ink-on-dark); max-width: none; }
@media (max-width: 760px) { .qa { grid-template-columns: 1fr; gap: 0.6rem; } }

/* Director's signoff under the about prose */
.signoff {
  margin-top: 2.2rem;
  padding-top: 1.1rem;
  border-top: 1px dotted rgba(141,47,110,0.4);
  font-family: var(--display);
  font-size: 1rem;
  color: var(--ink-on-dark);
}
.signoff .name { display: block; font-weight: 500; color: var(--gold-bright); font-size: 1.05rem; }
.signoff .title {
  display: block;
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-dim);
  margin-top: 0.5rem;
  line-height: 1.5;
}
.signoff .links {
  display: block;
  margin-top: 0.7rem;
  font-family: var(--sans);
  font-size: 0.8rem;
  color: var(--ink-dim);
  letter-spacing: 0.04em;
}
.signoff .links a { color: var(--gold-bright); }
.signoff--with-headshot {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 1.2rem;
  align-items: center;
}
.signoff__headshot {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--gold);
}
@media (max-width: 640px) {
  .signoff--with-headshot { grid-template-columns: 64px 1fr; gap: 0.9rem; }
  .signoff__headshot { width: 64px; height: 64px; }
}

/* About page — "A standing invitation" two-column layout:
   text on the left, full-length Gelmi course poster on the right */
.about-standing-invitation { max-width: none; }
.about-standing-invitation__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
  gap: clamp(1.5rem, 3.5vw, 2.6rem);
  align-items: start;
  margin-top: 0.4rem;
}
.about-standing-invitation__text > p:first-child { margin-top: 0; }
.about-standing-invitation__text p { max-width: none; }
.about-standing-invitation__poster {
  margin: 0;
  position: relative;
}
.about-standing-invitation__poster img {
  width: 100%;
  height: auto;
  display: block;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.5);
}
.about-standing-invitation__poster figcaption {
  margin-top: 0.7rem;
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-bright);
  text-align: center;
  font-style: italic;
}
@media (max-width: 760px) {
  .about-standing-invitation__layout {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

/* Legacy class kept for backward compatibility; no longer the primary path */
.about__offering {
  float: right;
  width: clamp(180px, 32%, 280px);
  margin: 0.4rem 0 1rem 1.6rem;
  shape-outside: margin-box;
}
.about__offering img {
  width: 100%; height: auto; display: block;
  border: 1px solid var(--rule);
  box-shadow: 0 12px 32px rgba(0,0,0,0.4);
  border-radius: 2px;
}
.about__offering figcaption {
  margin-top: 0.55rem;
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  text-align: center;
  font-style: italic;
}
@media (max-width: 640px) {
  .about__offering { float: none; width: 100%; margin: 1.5rem 0; }
}

/* For history page: a chronological list using lecture-year shape */
.history-entry { max-width: 64rem; }

/* Date entry pattern for events page — "When · Where" italic line */
.event-when {
  font-family: var(--display);
  font-style: italic;
  font-size: 1rem;
  color: var(--gold-bright);
  margin-bottom: 0.2em;
}

/* News list reuses lecture-year structure with no name/quote treatment */
.news-entry { max-width: none; }
.news-entry__when {
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.2em;
}
.news-entry__title {
  font-family: var(--display);
  font-size: 1.15rem;
  color: var(--ink-on-dark);
  font-weight: 500;
  line-height: 1.3;
  margin: 0 0 0.3em;
}
.news-entry__title a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 180ms;
}
.news-entry__title a:hover { border-bottom-color: var(--gold); color: var(--gold-bright); }
.news-entry p { font-size: 0.98rem; line-height: 1.55; color: var(--ink-on-dark); margin: 0; max-width: 52rem; }

/* Newsletter "issue" panels mirror book panels: gold-rule top, kicker, h3, p */
.issue {
  max-width: 64rem;
  padding-top: 1.6rem;
  border-top: 1px solid rgba(141,47,110,0.3);
  margin-top: 2rem;
}
.issue:first-of-type { border-top: 0; padding-top: 0; margin-top: 0; }
.issue h3 {
  font-family: var(--display);
  font-style: italic;
  font-size: 1.65rem;
  font-weight: 500;
  margin: 0 0 0.4em;
  line-height: 1.15;
  color: var(--ink-on-dark);
}
.issue h3 a { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; }
.issue h3 a:hover { border-bottom-color: var(--gold); }
.issue p { font-size: 1rem; line-height: 1.6; color: var(--ink-on-dark); max-width: var(--measure); }

/* Yiddish hero figure (paired with page-header, mirroring Marc's lectures-hero) */
.yi-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
  margin-bottom: 2.5rem;
}
.yi-hero__figure { margin: 0; }
.yi-hero__figure img {
  width: 100%; height: auto;
  border-radius: 2px;
  box-shadow: 0 14px 48px rgba(0,0,0,0.55);
  border: 1px solid rgba(141,47,110,0.35);
}
.yi-hero__figure figcaption {
  font-family: var(--display);
  font-style: italic;
  font-size: 0.84rem;
  color: var(--ink-dim);
  line-height: 1.45;
  margin-top: 0.6rem;
  text-align: right;
}
@media (max-width: 880px) {
  .yi-hero { grid-template-columns: 1fr; }
  .yi-hero__figure { max-width: 22rem; margin-top: 1.5rem; }
  .yi-hero__figure figcaption { text-align: left; }
}

/* For the People page: portraits like Marc's about__portrait, smaller */
.person {
  display: grid;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 2.4fr);
  gap: clamp(1.6rem, 3vw, 3rem);
  margin: 0 0 3.5rem;
  padding-bottom: 2.6rem;
  border-bottom: 1px dotted rgba(141,47,110,0.3);
  max-width: 76rem;
  align-items: start;
}
.person:last-of-type { border-bottom: 0; }
.person__portrait {
  aspect-ratio: 4 / 5;
  max-width: 75%;
  border-radius: 2px;
  box-shadow: 0 14px 48px rgba(0,0,0,0.55);
  border: 1px solid rgba(141,47,110,0.35);
  background:
    radial-gradient(ellipse at 50% 40%, rgba(26,138,158,0.16), rgba(5,14,32,0) 70%),
    var(--night);
  position: relative;
  overflow: hidden;
}
.person__portrait .ph-mark {
  position: absolute;
  inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--display);
  font-style: italic;
  font-size: 8rem;
  color: var(--gold);
  opacity: 0.8;
}
.person__portrait .ph-caption {
  position: absolute;
  bottom: 0.6rem; left: 0.8rem;
  font-family: var(--sans);
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(241,230,199,0.5);
}
.person__portrait--photo {
  background: none;
  border: 1px solid var(--gold);
  padding: 0;
}
.person__portrait--photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Steering committee grid — 5 cards with photos */
.steering-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.6rem;
  margin: 0 0 3rem;
  max-width: 80rem;
}
.steering-card {
  background: rgba(255,255,255,0.025);
  border: 1px solid var(--rule);
  border-radius: 3px;
  padding: 1.4rem 1.2rem 1.2rem;
  display: flex;
  flex-direction: column;
  text-align: center;
  transition: border-color 200ms, transform 200ms;
}
.steering-card:hover { border-color: var(--gold); transform: translateY(-2px); }
.steering-card__photo {
  width: 130px;
  height: 130px;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 1rem;
  border: 2px solid var(--gold);
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.steering-card__name {
  font-family: var(--display);
  font-weight: 500;
  font-size: 1.1rem;
  color: var(--ink-on-dark);
  margin: 0 0 0.3rem;
  line-height: 1.2;
}
.steering-card__name a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(141,47,110,0.35);
  padding-bottom: 0.05em;
  transition: border-color 200ms, color 200ms;
}
.steering-card__name a:hover {
  color: var(--gold-bright);
  border-bottom-color: var(--gold-bright);
}
.steering-card__dept {
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold-bright);
  margin-bottom: 0.7rem;
  line-height: 1.4;
}
.steering-card__bio {
  font-size: 0.86rem;
  line-height: 1.55;
  color: var(--ink-on-dark);
  margin: 0 0 0.6rem;
  max-width: none;
  text-align: left;
}
.steering-card__links {
  margin-top: auto;
  padding-top: 0.6rem;
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
}
.steering-card__links a { color: var(--gold-bright); }

/* Combined Marc + Agi card: two circular portraits stacked, with names beside */
.steering-card--double { padding: 1.6rem 1.2rem 1.3rem; }
.steering-card__double-portraits {
  position: relative;
  width: 170px;
  height: 220px;
  margin: 0 auto 0.9rem;
}
.steering-card__double-portrait {
  position: absolute;
  width: 130px;
  height: 130px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--gold);
  box-shadow: 0 8px 20px rgba(0,0,0,0.45);
  background: var(--night-deep);
}
.steering-card__double-portrait img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.steering-card__double-portrait:first-child {
  top: 0; left: 0; z-index: 2;
}
.steering-card__double-portrait--lower {
  bottom: 0; right: 0; z-index: 1;
}
.steering-card__double-names {
  display: flex; flex-direction: column; gap: 0.85rem;
  margin-top: 0.4rem;
}
.steering-card__double-line .steering-card__name { margin-bottom: 0.18rem; }
.steering-card__double-line .steering-card__dept { margin-bottom: 0; }

/* Fishman scholar list — chronological roll with year column */
.fishman-roll {
  list-style: none;
  padding: 0;
  margin: 1rem 0 0;
  border-top: 1px solid var(--rule);
}
.fishman-roll li {
  display: grid;
  grid-template-columns: 4.5rem 1fr;
  gap: 0.6rem 1.2rem;
  padding: 0.85rem 0.4rem 0.85rem 0;
  border-bottom: 1px solid var(--rule);
  font-size: 0.96rem;
  align-items: baseline;
}
.fishman-roll__year {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  font-weight: 700;
  color: var(--gold-bright);
}
.fishman-roll a {
  color: var(--ink-on-dark);
  text-decoration: none;
  border-bottom: 1px solid rgba(141,47,110,0.35);
  padding-bottom: 0.05em;
  transition: color 200ms, border-color 200ms;
}
.fishman-roll a:hover { color: var(--gold-bright); border-bottom-color: var(--gold-bright); }
.person__name {
  font-family: var(--display);
  font-weight: 500;
  font-size: 1.85rem;
  color: var(--ink-on-dark);
  margin: 0 0 0.2em;
  line-height: 1.1;
}
.person__role {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 0.7em;
  font-weight: 500;
}
.person__creds {
  font-family: var(--display);
  font-style: italic;
  color: var(--gold-bright);
  font-size: 0.95rem;
  margin: 0 0 1.1em;
  max-width: 40rem;
  line-height: 1.5;
}
.person p { font-size: 1.02rem; line-height: 1.65; color: var(--ink-on-dark); max-width: 40rem; }
@media (max-width: 760px) { .person { grid-template-columns: 1fr; } .person__portrait { max-width: 22rem; } }

/* Affiliate faculty grid */
.affiliates {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.4rem 3rem;
  max-width: 70rem;
}
@media (max-width: 760px) { .affiliates { grid-template-columns: 1fr; } }
.affiliate {
  border-top: 1px dotted rgba(141,47,110,0.3);
  padding-top: 0.9rem;
}
.affiliate__name {
  font-family: var(--display);
  font-weight: 500;
  font-size: 1.1rem;
  color: var(--ink-on-dark);
}
.affiliate__name a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 180ms;
}
.affiliate__name a:hover { border-bottom-color: var(--gold); color: var(--gold-bright); }
.affiliate__dpt {
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: 0.2em;
}
.affiliate__area {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-dim);
  font-size: 0.94rem;
  margin-top: 0.3em;
  line-height: 1.4;
}

/* anchor offset for in-page jumps under the masthead */
.anchor-pad { scroll-margin-top: 80px; }

/* ==========================================================================
   SUPPORT — give-page additions, support-strip, and "Support" nav CTA
   Re-uses existing tokens; introduces no new color palette.
   ========================================================================== */

/* "Support" link in the bottom nav — slightly emphasized, gold-bordered */
.nav a.nav-cta {
  border: 1px solid var(--gold);
  padding: 0.4em 0.85em 0.42em;
  border-radius: 2px;
  letter-spacing: 0.22em;
  background: rgba(141,47,110,0.05);
  transition: background 180ms, color 180ms, border-color 180ms;
}
.nav a.nav-cta:hover {
  background: rgba(141,47,110,0.18);
  color: var(--gold-bright);
  border-color: var(--gold-bright);
}
.nav a.nav-cta.is-current {
  background: rgba(141,47,110,0.22);
  color: var(--ink-on-dark);
  border-color: var(--gold-bright);
}

/* Support strip — appears just above the footer on every page */
.support-strip {
  margin-top: clamp(3rem, 8vw, 5.5rem);
  padding: clamp(2.6rem, 6vw, 4rem) clamp(1rem, 3vw, 2.2rem);
  background:
    radial-gradient(ellipse at 18% 30%, rgba(13,90,114,0.28), rgba(5,14,32,0) 60%),
    radial-gradient(ellipse at 82% 70%, rgba(141,47,110,0.12), rgba(5,14,32,0) 65%),
    linear-gradient(180deg, var(--night) 0%, var(--night-deep) 100%);
  border-top: 1px solid var(--gold);
  border-bottom: 1px dotted rgba(141,47,110,0.25);
  position: relative;
}
.support-strip::before {
  content: "";
  position: absolute;
  inset: 1.2rem;
  border: 1px solid rgba(141,47,110,0.12);
  pointer-events: none;
}
.support-strip__inner {
  max-width: 64rem;
  margin: 0 auto;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: clamp(1.6rem, 4vw, 3.5rem);
  align-items: center;
}
.support-strip h2 {
  font-family: var(--display);
  font-weight: 500;
  font-size: clamp(1.7rem, 3vw, 2.3rem);
  line-height: 1.18;
  margin: 0.3em 0 0.5em;
  color: var(--ink-on-dark);
}
.support-strip h2 em {
  font-style: italic;
  color: var(--gold-bright);
}
.support-strip p {
  font-family: var(--display);
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--ink-on-dark);
  margin: 0;
  max-width: 36rem;
}
.support-strip__action {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.85rem;
}
.support-strip__action .btn-give {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.82rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--night-deep);
  background: var(--gold);
  padding: 0.85em 1.4em;
  border: 1px solid var(--gold);
  border-radius: 2px;
  text-decoration: none;
  transition: background 180ms, color 180ms, transform 180ms, box-shadow 180ms;
  box-shadow: 0 6px 18px rgba(0,0,0,0.35);
}
.support-strip__action .btn-give:hover {
  background: var(--gold-bright);
  color: var(--night-deep);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(0,0,0,0.45);
  text-decoration: none;
}
.support-strip__action small {
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink-dim);
}
@media (max-width: 760px) {
  .support-strip__inner { grid-template-columns: 1fr; gap: 1.6rem; }
  .support-strip__action { align-items: flex-start; }
}

/* ==========================================================================
   GIVE PAGE — long-form support content
   ========================================================================== */

/* Page-level hero block for give.html */
.give-hero {
  max-width: 64rem;
  margin: 0 0 3.5rem;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: end;
}
.give-hero__quote {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-on-dark);
  font-size: 1.18rem;
  line-height: 1.55;
  border-left: 1px solid var(--gold);
  padding-left: 1.4rem;
  margin: 0;
}
.give-hero__quote cite {
  display: block;
  font-style: normal;
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: 0.8em;
}
@media (max-width: 820px) { .give-hero { grid-template-columns: 1fr; } }

/* The big "How to Give" card — the action sits at the top of the page */
.give-action {
  max-width: 64rem;
  margin: 0 0 3.5rem;
  padding: 2rem clamp(1.4rem, 3vw, 2.4rem);
  border: 1px solid var(--gold);
  background:
    linear-gradient(180deg, rgba(13,90,114,0.10), rgba(5,14,32,0)) ,
    rgba(141,47,110,0.04);
  position: relative;
}
.give-action::before {
  content: "";
  position: absolute;
  inset: 0.5rem;
  border: 1px solid rgba(141,47,110,0.18);
  pointer-events: none;
}
.give-action__kicker {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gold-bright);
  font-weight: 500;
  margin: 0 0 0.4rem;
  display: block;
}
.give-action h2 {
  font-family: var(--display);
  font-weight: 500;
  font-size: clamp(1.8rem, 3.5vw, 2.4rem);
  line-height: 1.15;
  margin: 0 0 1rem;
  color: var(--ink-on-dark);
}
.give-action__steps {
  list-style: none;
  padding: 0;
  margin: 1.4rem 0 1.6rem;
  max-width: none;
  counter-reset: step;
}
.give-action__steps li {
  position: relative;
  padding: 0.6em 0 0.6em 3rem;
  margin: 0;
  border-top: 1px dotted rgba(141,47,110,0.3);
  font-family: var(--display);
  font-size: 1.04rem;
  line-height: 1.55;
  color: var(--ink-on-dark);
  max-width: none;
}
.give-action__steps li:first-child { border-top: 0; }
.give-action__steps li::before {
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: 0;
  top: 0.65em;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  border: 1px solid var(--gold);
  color: var(--gold-bright);
  font-family: var(--sans);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0;
  background: var(--night-deep);
}
.give-action__steps li code {
  font-family: var(--sans);
  font-size: 0.88em;
  letter-spacing: 0.04em;
  background: rgba(141,47,110,0.12);
  color: var(--gold-bright);
  padding: 0.1em 0.4em;
  border-radius: 2px;
  border: 1px solid rgba(141,47,110,0.3);
  white-space: nowrap;
}
.give-action__steps li strong {
  color: var(--gold-bright);
  font-weight: 600;
}
.give-action__cta {
  display: flex;
  gap: 1.2rem;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 0.6rem;
}
.give-action__cta .btn-give {
  display: inline-block;
  font-family: var(--sans);
  font-size: 0.84rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--night-deep);
  background: var(--gold);
  padding: 0.95em 1.6em;
  border: 1px solid var(--gold);
  border-radius: 2px;
  text-decoration: none;
  transition: background 180ms, transform 180ms, box-shadow 180ms;
  box-shadow: 0 6px 18px rgba(0,0,0,0.35);
}
.give-action__cta .btn-give:hover {
  background: var(--gold-bright);
  border-color: var(--gold-bright);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(0,0,0,0.45);
  text-decoration: none;
  color: var(--night-deep);
}
.give-action__cta .btn-ghost {
  font-family: var(--sans);
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-bright);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 0.2em;
}
.give-action__cta .btn-ghost:hover {
  color: var(--ink-on-dark);
  border-bottom-color: var(--ink-on-dark);
}
.give-action__designation {
  margin: 1.2rem 0 0;
  padding: 0.9rem 1.1rem;
  background: rgba(13,90,114,0.18);
  border-left: 2px solid var(--gold);
  font-family: var(--display);
  font-size: 0.96rem;
  line-height: 1.55;
  color: var(--ink-on-dark);
  max-width: none;
}
.give-action__designation strong {
  color: var(--gold-bright);
  font-weight: 600;
}

/* "What your gift makes possible" — grid of impact cards */
.impact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
  gap: 1.6rem;
  max-width: 70rem;
  margin: 0 0 3rem;
}
.impact-card {
  border-top: 1px solid var(--gold);
  padding: 1.4rem 0 0;
  display: flex;
  flex-direction: column;
}
.impact-card__kicker {
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
  margin: 0 0 0.4em;
}
.impact-card h3 {
  font-family: var(--display);
  font-weight: 500;
  font-style: italic;
  font-size: 1.35rem;
  line-height: 1.2;
  margin: 0 0 0.6em;
  color: var(--ink-on-dark);
  max-width: none;
}
.impact-card p {
  font-family: var(--display);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--ink-on-dark);
  margin: 0;
  max-width: none;
}

/* Named-fund list — endowed lines that donors can support */
.fund-list {
  max-width: 64rem;
  margin: 0 0 3rem;
  list-style: none;
  padding: 0;
}
.fund-list li {
  display: grid;
  grid-template-columns: 14rem minmax(0, 1fr);
  gap: 1.4rem clamp(1.2rem, 3vw, 2.6rem);
  padding: 1.2em 0;
  border-bottom: 1px dotted rgba(141,47,110,0.28);
  align-items: baseline;
  margin: 0;
  max-width: none;
}
.fund-list li:last-child { border-bottom: 0; }
.fund-list .fund-name {
  font-family: var(--display);
  font-weight: 500;
  font-size: 1.12rem;
  color: var(--gold-bright);
  line-height: 1.25;
}
.fund-list .fund-desc {
  font-family: var(--display);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--ink-on-dark);
}
.fund-list .fund-desc em { font-style: italic; color: var(--ink-dim); }
@media (max-width: 760px) {
  .fund-list li { grid-template-columns: 1fr; gap: 0.4rem; padding: 1rem 0; }
}

/* Testimonial / story pullquote — used inside the give page for narrative */
.story-quote {
  max-width: 56rem;
  margin: 2.4rem 0 3rem;
  padding: 1.6rem 0 0 2rem;
  border-left: 2px solid var(--gold);
  font-family: var(--display);
  font-style: italic;
  font-size: 1.18rem;
  line-height: 1.6;
  color: var(--ink-on-dark);
}
.story-quote cite {
  display: block;
  font-style: normal;
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: 1rem;
}

/* Practical-info card on the give page — addresses, planned-giving, contact */
.give-info {
  max-width: 64rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 1.4rem 2.4rem;
  padding: 1.6rem 0 0;
  border-top: 1px solid var(--gold);
  margin: 1rem 0 0;
}
.give-info__block { max-width: none; }
.give-info__block h4 {
  font-family: var(--sans);
  font-size: 0.74rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold-bright);
  font-weight: 500;
  margin: 0 0 0.6em;
}
.give-info__block p {
  font-family: var(--display);
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--ink-on-dark);
  margin: 0 0 0.4em;
  max-width: none;
}
.give-info__block address {
  font-style: normal;
  font-family: var(--display);
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--ink-on-dark);
}

/* ==========================================================================
   SPOTLIGHT — featured Spring lecture pair on the home page
   ========================================================================== */
.spotlight {
  max-width: 72rem;
  margin: 0 auto 3.5rem;
  padding: 0 0 3rem;
  border-bottom: 1px solid var(--rule);
}
.spotlight__head { max-width: 56rem; margin: 0 0 2rem; }
.spotlight__h {
  font-family: var(--display);
  font-weight: 500;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  line-height: 1.15;
  margin: 0.2em 0 0.5em;
  color: var(--ink-on-dark);
}
.spotlight__lede {
  font-family: var(--display);
  font-style: italic;
  font-size: 1.1rem;
  line-height: 1.55;
  color: var(--ink-dim);
  margin: 0;
  max-width: 46rem;
}
.spotlight__pair {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
  gap: clamp(1.6rem, 3vw, 2.6rem);
  margin-top: 1.6rem;
}
.spotlight__card {
  padding: 1.6rem 1.7rem 1.7rem;
  background: rgba(13,90,114,0.10);
  border-left: 2px solid var(--gold);
  border-top: 1px solid rgba(141,47,110,0.25);
  border-right: 1px solid rgba(141,47,110,0.18);
  border-bottom: 1px solid rgba(141,47,110,0.18);
  position: relative;
}
.spotlight__when {
  font-family: var(--sans);
  font-size: 0.74rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
  margin-bottom: 0.4em;
}
.spotlight__series {
  font-family: var(--display);
  font-style: italic;
  font-size: 0.96rem;
  color: var(--gold-bright);
  margin-bottom: 0.4em;
}
.spotlight__title {
  font-family: var(--display);
  font-weight: 500;
  font-size: 1.7rem;
  line-height: 1.15;
  margin: 0 0 0.25em;
  color: var(--ink-on-dark);
}
.spotlight__title a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 180ms;
}
.spotlight__title a:hover { border-bottom-color: var(--gold); color: var(--gold-bright); }
.spotlight__cred {
  font-family: var(--display);
  font-style: italic;
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--ink-dim);
  margin-bottom: 0.8em;
}
.spotlight__topic {
  font-family: var(--display);
  font-size: 1.04rem;
  color: var(--ink-on-dark);
  margin-bottom: 0.7em;
  line-height: 1.4;
}
.spotlight__topic::before {
  content: "";
  display: inline-block;
  width: 1.6em;
  border-top: 1px solid var(--gold);
  margin-right: 0.55em;
  vertical-align: middle;
}
.spotlight__blurb {
  font-family: var(--display);
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--ink-on-dark);
  margin: 0;
}

/* ==========================================================================
   DOIKAYT — broadside-style figure on the Yiddish page
   ========================================================================== */
.doikayt {
  margin: 1.5rem 0 3rem;
  display: grid;
  grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(1.6rem, 3vw, 3rem);
  align-items: start;
  max-width: 72rem;
}
.doikayt__poster {
  background: #f4ead0;
  border: 1px solid var(--gold);
  box-shadow: 0 12px 36px rgba(0,0,0,0.4);
  padding: clamp(1.4rem, 2.5vw, 2.2rem);
  aspect-ratio: 3 / 4;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.doikayt__poster::before,
.doikayt__poster::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  height: 1px;
  background: #a01818;
  opacity: 0.6;
}
.doikayt__poster::before { top: 6%; }
.doikayt__poster::after  { bottom: 6%; }
.doikayt__poster-inner {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}
.doikayt__yiddish {
  font-family: 'David Libre', 'Frank Ruhl Libre', 'Hadasim CLM', var(--display), serif;
  font-weight: 700;
  font-size: clamp(1.4rem, 3.5vw, 2.1rem);
  line-height: 1.25;
  color: #5e0a0a;
  direction: rtl;
  unicode-bidi: embed;
}
.doikayt__english {
  font-family: var(--display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.3;
  color: #5e0a0a;
  border-top: 1px solid #a01818;
  border-bottom: 1px solid #a01818;
  padding: 0.7rem 0;
}
.doikayt__source {
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: #7a1a1a;
  line-height: 1.5;
}
.doikayt__image {
  width: 100%;
  height: auto;
  display: block;
  box-shadow: 0 12px 36px rgba(0,0,0,0.45);
  border: 1px solid var(--gold);
  background: #e8dfc4;
}
.doikayt__caption {
  margin: 0;
}
.doikayt__caption p {
  font-family: var(--display);
  font-size: 1.02rem;
  line-height: 1.6;
  color: var(--ink-on-dark);
  margin: 0 0 1em;
  max-width: 38rem;
}
.doikayt__caption p:last-child { margin-bottom: 0; }
.doikayt__caption p em { color: var(--gold-bright); }
.doikayt__caption p strong { color: var(--gold-bright); font-weight: 600; }
@media (max-width: 760px) {
  .doikayt { grid-template-columns: 1fr; }
  .doikayt__image { max-width: 22rem; margin: 0 auto; }
}

/* ==========================================================================
   FIXES.docx — page-specific additions
   ========================================================================== */

/* Hebrew page — large display heading */
.big-display {
  font-family: var(--display);
  font-size: clamp(2.4rem, 6.5vw, 5rem);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--ink-on-dark);
  margin-bottom: 1.2rem;
}

/* Hebrew Program posters grid (images 9–13) */
.hebrew-posters {
  margin: 2.6rem 0 3rem;
  max-width: 76rem;
}
.hebrew-posters__lede {
  font-family: var(--display);
  font-style: italic;
  color: var(--ink-on-dark);
  font-size: 1.05rem;
  margin-bottom: 1.4rem;
  max-width: 48rem;
}
.hebrew-posters__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.6rem;
  max-width: 56rem;
  margin: 0 auto;
}
/* Fifth poster centers under the 2×2 grid */
.hebrew-posters__grid > :nth-child(5) {
  grid-column: 1 / -1;
  max-width: calc(50% - 0.8rem);
  margin: 0 auto;
}
@media (max-width: 560px) {
  .hebrew-posters__grid { grid-template-columns: 1fr; }
  .hebrew-posters__grid > :nth-child(5) { max-width: 100%; }
}
.hebrew-poster {
  margin: 0;
  border: 1px solid var(--rule);
  border-radius: 3px;
  overflow: hidden;
  background: var(--night-deep);
  transition: transform 200ms, box-shadow 200ms;
}
.hebrew-poster:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(0,0,0,0.5); }
.hebrew-poster img {
  width: 100%;
  height: auto;
  display: block;
}

/* Israel page large headline + subtopics list — sized consistently with other page headers */
.israel-display {
  font-family: var(--display);
  font-weight: 500;
  font-size: clamp(2.4rem, 7vw, 5.5rem);
  line-height: 1.0;
  letter-spacing: 0;
  color: var(--ink-on-dark);
  margin: 0 0 1.2rem;
}
.israel-subtopics {
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(1.1rem, 1.9vw, 1.55rem);
  line-height: 1.5;
  color: var(--gold-bright);
  margin: 0 0 2rem;
  max-width: 50rem;
}
.israel-subtopics span { color: var(--ink-dim); margin: 0 0.4em; }

/* Yiddish page — Bund poster photo replacement */
.bund-poster {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 2fr;
  gap: 2rem;
  align-items: start;
  margin: 2.4rem 0 3rem;
  max-width: 70rem;
}
.bund-poster__image {
  border: 1px solid var(--rule);
  box-shadow: 0 16px 40px rgba(0,0,0,0.5);
  border-radius: 2px;
  overflow: hidden;
}
.bund-poster__image img { width: 100%; height: auto; display: block; }
.bund-poster__caption {
  font-family: var(--display);
  font-size: 1.05rem;
  line-height: 1.55;
  color: var(--ink-on-dark);
  max-width: 42rem;
}
.bund-poster__caption em { color: var(--gold-bright); }
.bund-poster__caption .yiddish {
  font-family: "Frank Ruhl Libre", "Times New Roman", serif;
  font-size: 1.3rem;
  direction: rtl;
  display: block;
  margin: 0.4rem 0 0.8rem;
  color: var(--gold-bright);
}
@media (max-width: 760px) {
  .bund-poster { grid-template-columns: 1fr; }
  .bund-poster__image { max-width: 22rem; margin: 0 auto; }
}

/* Hospitality page hero */
.hospitality-hero {
  margin: 0 0 2.6rem;
  max-width: 38rem;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 16px 50px rgba(0,0,0,0.55);
  border: 1px solid var(--rule);
}
.hospitality-hero img { width: 100%; height: auto; display: block; }
.hospitality-fineprint {
  margin-top: 3rem;
  padding: 1.4rem 1.6rem;
  border-left: 2px solid var(--gold);
  background: rgba(141,47,110,0.04);
  font-size: 0.92rem;
  color: var(--ink-on-dark);
  font-style: italic;
  max-width: 56rem;
}
.hospitality-fineprint a { color: var(--gold-bright); }

/* Projects page — vertical stack of project blocks */
.project-block {
  margin: 0 0 3rem;
  padding-bottom: 2.4rem;
  border-bottom: 1px dotted var(--rule);
  max-width: 76rem;
}
.project-block:last-of-type { border-bottom: 0; }
.project-block__kicker {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.4rem;
}
.project-block__title {
  font-family: var(--display);
  font-weight: 500;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin: 0 0 1rem;
  line-height: 1.15;
}
.project-block__body { max-width: 56rem; }
.project-block__cta {
  display: inline-block;
  margin-top: 0.8rem;
  font-family: var(--sans);
  font-size: 0.74rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-bright);
  border: 1px solid var(--gold);
  padding: 0.6em 1.2em 0.5em;
  border-radius: 2px;
  text-decoration: none;
  transition: background 180ms, color 180ms;
}
.project-block__cta:hover { background: var(--gold); color: #fff; }
.sacred-scripts-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 1rem;
  margin: 1.6rem 0 0;
}
.sacred-scripts-gallery figure {
  margin: 0;
  border: 1px solid var(--rule);
  border-radius: 2px;
  overflow: hidden;
  background: #f5efe1;
}
.sacred-scripts-gallery img { width: 100%; height: auto; display: block; }

/* Travel page — field trip cards */
.fieldtrips {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.4rem;
  margin: 2rem 0 3rem;
  max-width: 76rem;
}
.fieldtrip {
  background: rgba(255,255,255,0.025);
  border: 1px solid var(--rule);
  border-radius: 3px;
  padding: 1.2rem 1.2rem 1.1rem;
  transition: border-color 200ms;
}
.fieldtrip:hover { border-color: var(--gold); }
.fieldtrip__kicker {
  font-family: var(--sans);
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.4rem;
}
.fieldtrip__title {
  font-family: var(--display);
  font-weight: 500;
  font-size: 1.2rem;
  margin: 0 0 0.6rem;
  color: var(--ink-on-dark);
  line-height: 1.2;
}
.fieldtrip__body { font-size: 0.92rem; line-height: 1.55; }

/* Support page — tzedakah image + Haverim banner */
.support-imagery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin: 2.4rem 0 3rem;
  max-width: 76rem;
}
.support-imagery figure {
  margin: 0;
  border-radius: 3px;
  overflow: hidden;
  border: 1px solid var(--rule);
  box-shadow: 0 16px 40px rgba(0,0,0,0.5);
}
.support-imagery img { width: 100%; height: auto; display: block; }
.support-imagery figcaption {
  background: rgba(2,14,48,0.92);
  padding: 0.8rem 1rem;
  font-family: var(--sans);
  font-size: 0.74rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold-bright);
  text-align: center;
  border-top: 1px solid var(--rule);
}


/* ───────────────────────────────────────────────────────────────────────────
   Lecture-detail pages (lecture-*.html). Two-column layout with the poster
   on one side and bio+description on the other. Mobile: stacks.
   ─────────────────────────────────────────────────────────────────────────── */
.lecture-page__back {
  font-family: var(--sans); font-size: 0.7rem;
  letter-spacing: 0.24em; text-transform: uppercase;
  margin: 1.5rem 0 0; font-weight: 600;
}
.lecture-page__back a { color: var(--gold-bright); text-decoration: none; }
.lecture-page__back a:hover { color: var(--cream); }
.lecture-page__title {
  font-family: var(--display); font-weight: 500;
  font-size: clamp(1.7rem, 3.2vw, 2.4rem);
  line-height: 1.18; letter-spacing: -0.005em;
  margin-top: 0.4rem;
}
.lecture-page__layout {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.4fr);
  gap: clamp(1.8rem, 3.5vw, 3rem);
  align-items: start;
  margin-top: 1.6rem;
}
.lecture-page__poster {
  margin: 0; position: relative;
  align-self: start;
  position: sticky; top: 1.5rem;
}
.lecture-page__poster img {
  width: 100%; height: auto; display: block;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.5);
}
.lecture-page__poster--pending { aspect-ratio: 3/4; }
.lecture-page__poster-pending {
  width: 100%; aspect-ratio: 3/4;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(141,47,110,0.06), rgba(13,30,80,0.18));
  border: 1px dashed rgba(141,47,110,0.45);
  border-radius: 2px;
  font-family: var(--sans); font-size: 0.7rem;
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--ink-dim); font-weight: 500;
}
.lecture-page__body h3 {
  font-family: var(--display); font-weight: 500;
  font-size: 1.15rem; color: var(--gold-bright);
  margin: 1.8em 0 0.6em; letter-spacing: -0.005em;
}
.lecture-page__notes {
  font-style: italic; color: var(--ink-dim);
  font-size: 0.92rem; line-height: 1.55;
  border-left: 2px solid rgba(141,47,110,0.45);
  padding-left: 1rem; margin-top: 1.5em;
}
@media (max-width: 820px) {
  .lecture-page__layout {
    grid-template-columns: 1fr;
    gap: 1.6rem;
  }
  .lecture-page__poster {
    position: static;
    max-width: 24rem; margin: 0 auto;
  }
}

/* Israel page — Israeli Voices section: lectures on the left, map on the right */
.israel-voices-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: clamp(1.5rem, 3vw, 2.6rem);
  align-items: start;
  margin-top: 0.5rem;
}
.israel-voices-map { position: sticky; top: 1.5rem; }
.israel-voices-map__figure { margin: 0; }
.israel-voices-map__figure img {
  width: 100%; height: auto; display: block;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.5);
}
.israel-voices-map__figure figcaption {
  margin-top: 0.7rem;
  font-family: var(--display); font-style: italic;
  font-size: 0.92rem; line-height: 1.45;
  color: var(--ink-dim);
}
@media (max-width: 840px) {
  .israel-voices-layout { grid-template-columns: 1fr; }
  .israel-voices-map { position: static; max-width: 28rem; margin: 0 auto; }
}

/* Hebrew page — Cairo Geniza hero + Bradford/Monis two-column + posters row */
.hebrew-hero {
  margin: 1.5rem 0 2rem;
  border-radius: 3px; overflow: hidden;
  box-shadow: 0 16px 40px rgba(0,0,0,0.5), 0 0 0 1px rgba(141,47,110,0.18);
  background: #2a1c10;
}
.hebrew-hero img {
  width: 100%; height: auto; display: block;
  max-height: 28rem; object-fit: cover; object-position: center;
}
.hebrew-hero figcaption {
  padding: 0.9rem 1.2rem;
  background: rgba(2,14,48,0.92);
  font-family: var(--display); font-style: italic;
  font-size: 0.92rem; line-height: 1.45;
  color: var(--ink-on-dark);
  border-top: 1px solid rgba(141,47,110,0.4);
  text-align: center;
}
.hebrew-hero figcaption em { color: var(--gold-bright); font-style: italic; }

.hebrew-prose-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 3vw, 2.6rem);
  align-items: start;
  margin: 0.4rem 0 1.6rem;
}
.hebrew-prose-layout__figure { margin: 0; }
.hebrew-prose-layout__figure img {
  width: 100%; height: auto; display: block;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 0 14px 36px rgba(0,0,0,0.45);
}
.hebrew-prose-layout__figure figcaption {
  margin-top: 0.7rem;
  font-family: var(--display); font-style: italic;
  font-size: 0.88rem; line-height: 1.45;
  color: var(--ink-dim);
}
@media (max-width: 820px) {
  .hebrew-prose-layout { grid-template-columns: 1fr; }
}

/* Hebrew Program promotional posters at the bottom — single row, 15% smaller than before */
.hebrew-posters {
  margin: 2.5rem 0 1rem;
}
.hebrew-posters__lede {
  font-family: var(--display); font-style: italic;
  text-align: center; color: var(--ink-dim);
  font-size: 1rem; margin-bottom: 1.2rem;
}
.hebrew-posters__row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(0.6rem, 1.4vw, 1.1rem);
  align-items: end;
  max-width: 100%;
}
.hebrew-poster { margin: 0; }
.hebrew-poster img {
  width: 85%;
  height: auto;
  display: block;
  margin: 0 auto;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 0 8px 22px rgba(0,0,0,0.42);
}
@media (max-width: 720px) {
  .hebrew-posters__row { grid-template-columns: repeat(2, 1fr); gap: 0.8rem; }
  .hebrew-poster img { width: 100%; }
}

/* Yiddish page — top row: "Yiddish Lives" lede on left, Bund poster on right */
.yi-hero-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 3.5vw, 3rem);
  align-items: start;
  margin-top: 1rem;
}
.yi-hero-poster { margin: 0; align-self: start; }
.yi-hero-poster img {
  width: 100%; height: auto; display: block;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.5);
}
.yi-hero-poster figcaption {
  margin-top: 0.8rem;
  font-family: var(--display); font-style: italic;
  font-size: 0.9rem; line-height: 1.5;
  color: var(--ink-dim);
}
.yi-hero-poster figcaption em { color: var(--gold-bright); font-style: italic; }
.yi-hero-poster__yi {
  display: block; direction: rtl;
  font-family: 'Frank Ruhl Libre','David Libre','SBL Hebrew',serif;
  color: var(--cream); font-style: normal;
  font-size: 1.04rem; line-height: 1.5;
  margin: 0.45em 0 0.35em;
}
@media (max-width: 820px) {
  .yi-hero-layout { grid-template-columns: 1fr; }
  .yi-hero-poster { max-width: 28rem; margin: 0 auto; }
}

/* Projects page — Sacred Scripts two-column layout, plus a richer CTA-button
   pattern used on the project-detail landing pages */
.project-block__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 3.5vw, 2.8rem);
  align-items: start;
  margin-top: 0.4rem;
}
/* GHM block: lead figure ~20% larger than the default split. */
.project-block__layout--ghm { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.project-block__figure { margin: 0; align-self: start; position: sticky; top: 1.5rem; }
.project-block__figure img {
  width: 100%; height: auto; display: block;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.5);
}
.project-block__figure figcaption {
  margin-top: 0.7rem;
  font-family: var(--display); font-style: italic;
  font-size: 0.9rem; line-height: 1.5;
  color: var(--ink-dim);
}
.project-block__sub {
  margin-top: 1.6em;
  font-size: 1.05rem;
  font-family: var(--display); font-weight: 500;
  color: var(--gold-bright);
}
.project-block__why {
  padding-left: 1.3em;
  margin: 0.6em 0 1.2em;
}
.project-block__why li {
  margin-bottom: 0.55em;
  line-height: 1.55;
}
@media (max-width: 820px) {
  .project-block__layout { grid-template-columns: 1fr; }
  .project-block__figure { position: static; max-width: 24rem; margin: 0 auto; }
}

/* Project-landing CTA buttons (sephardi-liturgy.html, colonial-harmonies.html) */
.project-cta-row {
  display: flex; flex-wrap: wrap; gap: 1.2rem;
  margin: 2.2rem 0 1.6rem;
}
.project-cta-button {
  display: flex; flex-direction: column; gap: 0.25rem;
  padding: 1.3rem 1.6rem;
  background: linear-gradient(180deg, rgba(141,47,110,0.18) 0%, rgba(141,47,110,0.06) 100%);
  border: 1px solid rgba(141,47,110,0.4);
  border-radius: 3px;
  flex: 1 1 16rem; min-width: 0;
  text-decoration: none; color: inherit;
  transition: border-color 200ms, transform 200ms, box-shadow 200ms, background 200ms;
}
.project-cta-button:hover {
  border-color: var(--gold-bright);
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(0,0,0,0.4);
  background: linear-gradient(180deg, rgba(141,47,110,0.28) 0%, rgba(141,47,110,0.10) 100%);
}
.project-cta-button__kicker {
  font-family: var(--sans); font-size: 0.6rem;
  letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--gold-bright); font-weight: 600;
}
.project-cta-button__label {
  font-family: var(--display); font-weight: 500;
  font-size: 1.15rem; line-height: 1.2;
  color: var(--ink-on-dark);
  margin-top: 0.2rem;
}
.project-cta-button__sub {
  font-family: var(--display); font-style: italic;
  color: var(--ink-dim); font-size: 0.9rem; line-height: 1.4;
  margin-top: 0.25rem;
}
.project-cta-button--ghost {
  background: transparent;
  border-style: dashed;
}

/* Project-landing hero figure */
.project-detail__hero {
  margin: 1.4rem 0 1.8rem;
  border-radius: 3px; overflow: hidden;
  background: #f4ecd8;
}
.project-detail__hero img {
  width: 100%; height: auto; display: block;
  max-height: 30rem; object-fit: contain;
  background: #f4ecd8;
}
.project-detail__hero figcaption {
  padding: 0.85rem 1.2rem;
  background: rgba(2,14,48,0.92);
  font-family: var(--display); font-style: italic;
  font-size: 0.92rem; line-height: 1.5;
  color: var(--ink-on-dark);
  border-top: 1px solid rgba(141,47,110,0.45);
}
.project-detail__hero figcaption em { color: var(--gold-bright); font-style: italic; }

/* About — extended Gelmi-poster caption spans the full row */
.about-standing-invitation__poster-caption {
  font-family: var(--display);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--ink-dim);
  margin: 1rem 0 0;
  max-width: 100%;
  padding: 0.6rem 0 0;
  border-top: 1px solid rgba(141,47,110,0.25);
}
.about-standing-invitation__poster-caption em {
  color: var(--gold-bright);
  font-style: italic;
}

/* Israel page — h1 bumped 2pt larger per markup */
.israel-h1 {
  font-size: clamp(2.4rem, 5.2vw, 3.6rem) !important;
  line-height: 1.05;
}

/* Video embed component — used on hebrew.html (22 Letters) and israel.html (Hosha'ana).
   The .video-embed wrapper preserves a 16:9 aspect ratio so the iframe fills it
   responsively. The --placeholder variant shows a stub until the Vimeo URL is
   dropped in. */
.video-embed {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #0a0817;
  border: 1px solid rgba(141,47,110,0.42);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(0,0,0,0.45);
}
.video-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}
.video-embed--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(ellipse at 30% 30%, rgba(141,47,110,0.18), transparent 60%),
    linear-gradient(135deg, rgba(2,14,48,0.95), rgba(13,30,80,0.55));
  border-style: dashed;
}
.video-embed__pending {
  text-align: center;
  font-family: var(--display);
  color: var(--ink-on-dark);
  padding: 1.5rem;
}
.video-embed__pending strong {
  display: block;
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--gold-bright);
  margin-bottom: 0.6rem;
}
.video-embed__pending em { font-style: italic; }
.video-embed__pending span {
  display: block;
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ink-dim);
}

/* Hebrew page — Hanna video next to the Sitomer-lecture entry */
.lecture-year--with-video {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 1.2rem clamp(1rem, 2.4vw, 1.8rem);
  align-items: start;
}
.lecture-year--with-video .lecture-year__label { grid-column: 1; }
.lecture-year--with-video .lecture-year__items { grid-column: 2; }
.lecture-year__video {
  grid-column: 3;
  margin: 0;
}
.lecture-year__video figcaption {
  margin-top: 0.6rem;
  font-family: var(--display);
  font-style: italic;
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--ink-dim);
}
.lecture-year__video figcaption em { color: var(--gold-bright); font-style: italic; }
@media (max-width: 820px) {
  .lecture-year--with-video {
    grid-template-columns: 4.5rem 1fr;
  }
  .lecture-year__video { grid-column: 1 / -1; margin-top: 1rem; }
}

/* Israel page — second figure in the right column is the Hanna Hosha'ana video */
.israel-voices-map__figure--video { margin-top: 1.6rem; }
.israel-voices-map__figure--video figcaption {
  font-family: var(--display);
  font-style: italic;
  font-size: 0.88rem;
  color: var(--ink-dim);
  margin-top: 0.6rem;
  line-height: 1.45;
}
.israel-voices-map__figure--video figcaption em { color: var(--gold-bright); font-style: italic; }

/* projects.html — Sephardi Torah scroll has a transparent background; let it
   sit on the page bg rather than on a solid panel */
.project-block__figure--scroll {
  background: transparent;
  box-shadow: none;
  border: none;
}
.project-block__figure--scroll img {
  background: transparent !important;
  box-shadow: 0 20px 50px rgba(0,0,0,0.5);
  border: none;
  max-height: 36rem;
  width: auto;
  margin: 0 auto;
  display: block;
}

/* projects.html — pending-info notice */
.project-block__pending {
  font-style: italic;
  color: var(--ink-dim);
  border-left: 2px solid rgba(141,47,110,0.4);
  padding-left: 1rem;
}
.project-block__pending em { color: var(--gold-bright); }

/* travel.html — Fishman Family Seminar layout with Alhambra photo on the right */
.travel-seminar-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 3vw, 2.6rem);
  align-items: start;
  margin: 0.4rem 0 1.6rem;
}
.travel-seminar-photo { margin: 0; }
.travel-seminar-photo img {
  width: 100%; height: auto; display: block;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 0 14px 36px rgba(0,0,0,0.45);
}
.travel-seminar-photo figcaption {
  margin-top: 0.7rem;
  font-family: var(--display); font-style: italic;
  font-size: 0.88rem; line-height: 1.55;
  color: var(--ink-dim);
}
.travel-seminar-photo figcaption em { color: var(--gold-bright); font-style: italic; }
@media (max-width: 820px) {
  .travel-seminar-layout { grid-template-columns: 1fr; }
}

/* lectures.html — two-column with year-list + rotating poster cycler */
.lectures-byyear-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  gap: clamp(1.6rem, 3.5vw, 2.8rem);
  align-items: start;
  margin-top: 0.4rem;
}
.lectures-byyear-list > .lecture-year:first-of-type { margin-top: 0; }

.lectures-byyear-posters { position: relative; }
.lectures-byyear-posters__sticky {
  position: sticky;
  top: 1.5rem;
}
.lectures-byyear-posters__kicker {
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold-bright);
  font-weight: 600;
  margin-bottom: 0.9rem;
  text-align: center;
}
.lectures-byyear-posters__caption {
  margin-top: 0.7rem;
  text-align: center;
  font-family: var(--display);
  font-style: italic;
  font-size: 0.84rem;
  color: var(--ink-dim);
}

.poster-cycler {
  position: relative;
  aspect-ratio: 2 / 3;
  background: #0a0817;
  border: 1px solid var(--rule);
  border-radius: 2px;
  overflow: hidden;
  box-shadow: 0 14px 36px rgba(0,0,0,0.5);
}
.poster-cycler__slide {
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity 700ms ease-in-out;
  display: block;
  pointer-events: none;
}
.poster-cycler__slide.is-active {
  opacity: 1;
  pointer-events: auto;
}
.poster-cycler__slide img {
  width: 100%; height: 100%; object-fit: contain; object-position: center;
  display: block;
}

@media (max-width: 820px) {
  .lectures-byyear-layout { grid-template-columns: 1fr; }
  .lectures-byyear-posters__sticky { position: static; max-width: 22rem; margin: 0 auto; }
}

/* travel.html — Italy student videos side-by-side */
.italy-videos {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(1rem, 2.4vw, 1.8rem);
  margin: 0.4rem 0 1.6rem;
}
.italy-videos__item { margin: 0; }
.italy-videos__item figcaption {
  margin-top: 0.65rem;
  font-family: var(--display);
  font-style: italic;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--ink-dim);
}
.italy-videos__item figcaption em { color: var(--gold-bright); }
@media (max-width: 720px) {
  .italy-videos { grid-template-columns: 1fr; }
}

/* Israel page — intro layout with the folk-cartography map to the right of the
   page header. Two-column on desktop; stacks on mobile. */
.israel-intro-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 3.5vw, 2.8rem);
  align-items: start;
  margin-top: 0.4rem;
}
.israel-intro-map {
  margin: 0;
}
.israel-intro-map img {
  width: 100%; height: auto; display: block;
  border: 1px solid var(--rule);
  border-radius: 2px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.5);
}
.israel-intro-map figcaption {
  margin-top: 0.7rem;
  font-family: var(--display); font-style: italic;
  font-size: 0.92rem; line-height: 1.45;
  color: var(--ink-dim);
}
@media (max-width: 820px) {
  .israel-intro-layout { grid-template-columns: 1fr; }
  .israel-intro-map { max-width: 28rem; margin: 0 auto; }
}

/* ============================================================
   ADL honor banner — about.html
   A compact, linked card calling out Vassar's "A" grade on the
   2026 ADL Campus Antisemitism Report Card. Placed near the top
   of the page to make the distinction visible early in the site.
   ============================================================ */
.adl-honor {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: clamp(1.4rem, 3vw, 2.4rem);
  align-items: stretch;
  margin: 0.4rem 0 2.6rem;
  padding: clamp(1.4rem, 2.8vw, 1.9rem) clamp(1.4rem, 3vw, 2rem);
  background: linear-gradient(180deg, rgba(100, 26, 43, 0.22), rgba(13, 30, 80, 0.18));
  border: 1px solid rgba(141, 47, 110, 0.42);
  border-left: 4px solid var(--burgundy-light);
  border-radius: 3px;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.42);
  transition: border-color 220ms, transform 220ms, box-shadow 220ms;
}
.adl-honor:hover {
  border-color: var(--gold-bright);
  border-left-color: var(--gold-bright);
  transform: translateY(-2px);
  box-shadow: 0 22px 48px rgba(0, 0, 0, 0.55);
  text-decoration: none;
}
.adl-honor__grade {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-right: clamp(1.2rem, 2.6vw, 1.8rem);
  border-right: 1px solid var(--rule);
  min-width: 5.2rem;
}
.adl-honor__grade-letter {
  font-family: var(--display);
  font-weight: 500;
  font-size: clamp(3.6rem, 7vw, 4.6rem);
  line-height: 0.9;
  color: var(--gold-bright);
  letter-spacing: -0.02em;
}
.adl-honor__grade-source {
  margin-top: 0.55rem;
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ink-faded);
  text-align: center;
  white-space: nowrap;
}
.adl-honor__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.55rem;
  min-width: 0;
}
.adl-honor__kicker {
  font-family: var(--sans);
  font-size: 0.72rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 600;
}
.adl-honor__lede {
  margin: 0;
  max-width: none;
  font-family: var(--display);
  font-size: clamp(1.02rem, 1.4vw, 1.14rem);
  line-height: 1.5;
  color: var(--ink-on-dark);
}
.adl-honor__lede em {
  color: var(--gold-bright);
  font-style: italic;
}
.adl-honor__cue {
  margin-top: 0.15rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold-bright);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0.55em;
}
.adl-honor__cue span {
  display: inline-block;
  transition: transform 220ms;
}
.adl-honor:hover .adl-honor__cue span { transform: translateX(4px); }

.adl-honor__mazaltov {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-left: clamp(1.2rem, 2.6vw, 1.8rem);
  border-left: 1px solid var(--rule);
  min-width: 9rem;
}
.adl-honor__mazaltov img {
  display: block;
  width: clamp(7.5rem, 11vw, 10rem);
  height: auto;
  opacity: 0.92;
}

@media (max-width: 820px) {
  .adl-honor { grid-template-columns: auto 1fr; }
  .adl-honor__mazaltov {
    grid-column: 1 / -1;
    border-left: none;
    border-top: 1px solid var(--rule);
    padding-left: 0;
    padding-top: 1rem;
    margin-top: 0.4rem;
    min-width: 0;
  }
  .adl-honor__mazaltov img { width: 10rem; }
}

@media (max-width: 620px) {
  .adl-honor { grid-template-columns: 1fr; gap: 1rem; }
  .adl-honor__grade {
    flex-direction: row;
    gap: 0.9rem;
    border-right: none;
    border-bottom: 1px solid var(--rule);
    padding: 0 0 0.9rem;
    justify-content: flex-start;
    min-width: 0;
  }
  .adl-honor__grade-letter { font-size: 3rem; }
  .adl-honor__grade-source { margin-top: 0; text-align: left; }
}

/* ADL article page — celebratory Mazal Tov mark between byline and body */
.adl-mazal-tov {
  text-align: center;
  margin: 0.4rem 0 2.4rem;
  padding: 1.4rem 0 0.4rem;
  border-top: 1px solid var(--rule);
}
.adl-mazal-tov img {
  display: block;
  margin: 0 auto;
  width: clamp(13rem, 26vw, 18rem);
  height: auto;
  opacity: 0.94;
}
.adl-mazal-tov__caption {
  margin-top: 1rem;
  font-family: var(--display);
  font-style: italic;
  font-size: 1.02rem;
  line-height: 1.5;
  color: var(--ink-dim);
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}

/* ============================================================
   hebrew.html — five-poster row: click-to-enlarge lightbox
   Clicking any poster opens a full-screen modal with prev/next
   nav and Esc-to-close. Implementation in the page's inline
   script; styles below.
   ============================================================ */
.hebrew-poster {
  position: relative;
  cursor: zoom-in;
}
.hebrew-poster:focus-visible { outline: 2px solid var(--burgundy-light); outline-offset: 4px; }
.hebrew-poster:hover { transform: none; box-shadow: none; }
.hebrew-poster__thumb { transition: transform 220ms ease, box-shadow 220ms ease; }
.hebrew-poster:hover .hebrew-poster__thumb {
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(100, 26, 43, 0.32);
}

/* The lightbox itself (one per page, hidden until a poster is clicked). */
.hebrew-lightbox {
  position: fixed; inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10, 8, 23, 0.92);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  padding: clamp(1rem, 4vw, 3rem);
  animation: hebrew-lightbox-in 200ms ease-out;
}
.hebrew-lightbox[hidden] { display: none; }
@keyframes hebrew-lightbox-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.hebrew-lightbox__frame {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.9rem;
  max-width: min(92vw, 780px);
}
.hebrew-lightbox__frame img {
  display: block;
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
  border: 1px solid rgba(149, 24, 41, 0.6);
  box-shadow: 0 32px 96px rgba(0, 0, 0, 0.6);
}
.hebrew-lightbox__frame figcaption {
  font-family: var(--sans);
  font-size: 0.86rem;
  line-height: 1.45;
  color: rgba(255, 248, 239, 0.9);
  text-align: center;
  max-width: 60ch;
  letter-spacing: 0.01em;
}
.hebrew-lightbox__close,
.hebrew-lightbox__prev,
.hebrew-lightbox__next {
  position: absolute;
  border: 1px solid rgba(255, 248, 239, 0.4);
  background: rgba(10, 8, 23, 0.55);
  color: rgba(255, 248, 239, 0.95);
  font-family: var(--sans);
  cursor: pointer;
  transition: background 180ms, border-color 180ms, color 180ms;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.hebrew-lightbox__close {
  top: clamp(0.8rem, 2vw, 1.5rem);
  right: clamp(0.8rem, 2vw, 1.5rem);
  width: 44px; height: 44px;
  border-radius: 50%;
  font-size: 1.5rem;
  line-height: 1;
}
.hebrew-lightbox__close::before { content: "\00D7"; }
.hebrew-lightbox__prev,
.hebrew-lightbox__next {
  top: 50%;
  transform: translateY(-50%);
  width: 52px; height: 52px;
  font-size: 1.3rem;
  border-radius: 3px;
}
.hebrew-lightbox__prev { left: clamp(0.6rem, 2vw, 1.5rem); }
.hebrew-lightbox__next { right: clamp(0.6rem, 2vw, 1.5rem); }
.hebrew-lightbox__close:hover,
.hebrew-lightbox__prev:hover,
.hebrew-lightbox__next:hover {
  background: rgba(149, 24, 41, 0.7);
  border-color: rgba(255, 248, 239, 0.85);
  color: #fff;
}
.hebrew-lightbox__close:focus-visible,
.hebrew-lightbox__prev:focus-visible,
.hebrew-lightbox__next:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 3px;
}

@media (max-width: 540px) {
  .hebrew-lightbox__prev,
  .hebrew-lightbox__next { width: 42px; height: 42px; font-size: 1.1rem; }
  .hebrew-lightbox__close { width: 38px; height: 38px; font-size: 1.25rem; }
}

/* ============================================================
   ADL pull-quote, standalone variant — for use on about.html
   directly below the .adl-honor banner. Mirrors the typographic
   treatment of the floating pull-quote on adl-2026.html but does
   not float and does not use negative margins.
   ============================================================ */
.adl-quote {
  position: relative;
  max-width: 56rem;
  margin: 0 0 2.8rem;
  padding: 2.4rem 0.4rem 1.4rem 0.6rem;
  border-top: 1px solid var(--gold);
  border-bottom: 1px solid var(--gold);
}
.adl-quote::before {
  content: "\201C";
  position: absolute;
  top: 0.1rem;
  left: -0.06em;
  font-family: var(--display);
  font-style: italic;
  font-weight: 500;
  font-size: 5rem;
  line-height: 0.5;
  color: var(--gold-bright);
  opacity: 0.7;
  pointer-events: none;
}
.adl-quote__text {
  margin: 0;
  max-width: none;
  font-family: var(--display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(1.2rem, 1.7vw, 1.5rem);
  line-height: 1.42;
  letter-spacing: 0.003em;
  color: var(--ink-on-dark);
}
.adl-quote__vassar {
  font-style: normal;
  font-variant-caps: all-small-caps;
  letter-spacing: 0.09em;
  font-weight: 600;
  color: var(--gold-bright);
  white-space: nowrap;
}
.adl-quote__rule {
  display: block;
  width: 2.4rem;
  height: 1px;
  background: var(--gold-bright);
  opacity: 0.6;
  margin: 1.1rem 0 0.8rem;
}
.adl-quote__cite {
  display: block;
  font-family: var(--sans);
  font-size: 0.7rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gold);
  line-height: 1.5;
}

/* ============================================================
   project-block — additional pieces used by Colonial Harmonies:
   - __deck: small uppercase subtitle line below the title
   - __caption-sub: smaller secondary line inside a project-block
                    figcaption (e.g. an italicized subtitle below the
                    primary caption phrase)
   ============================================================ */
.project-block__deck {
  display: block;
  margin: 0.5rem 0 1.2rem;
  font-family: var(--sans);
  font-size: 0.78rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--ink-dim);
  font-weight: 500;
}
.project-block__figure figcaption .project-block__caption-sub {
  display: block;
  margin-top: 0.18rem;
  font-size: 0.84rem;
  color: var(--ink-dim);
  opacity: 0.9;
}


/* ============================================================================
   LIGHT BURGUNDY THEME OVERRIDES
   ============================================================================

   Cream + Vassar Burgundy palette. The :root block above already flips the
   four lightness anchors (--night-deep, --ink-on-dark, --ink-dim, --ink-faded)
   and softens --rule. The rules below cover the components and edge cases
   that don't pick up those variables directly — selection color, link color,
   headings, kickers, the ADL banner, image surrounds, etc.

   Burgundy and the lilac/magenta accent palette (--gold, --gold-bright,
   --gold-deep, --carmine) remain untouched.
   ============================================================================ */

html { color-scheme: light; }

/* ---- Body & main canvas -------------------------------------------------- */
body { background: #FFF8EF; color: #1a1a1a; }
main { background: transparent; }

/* ---- Selection ----------------------------------------------------------- */
::selection { background: var(--burgundy-light); color: #fff; }

/* ---- Inline emphasis ----------------------------------------------------- */
strong, b { color: var(--burgundy); font-weight: 600; }

/* ---- Links --------------------------------------------------------------- */
a {
  color: var(--burgundy-light);
  text-decoration-color: rgba(149, 24, 41, 0.42);
}
a:hover {
  color: var(--burgundy);
  text-decoration-color: var(--burgundy);
}

/* ---- Headings ------------------------------------------------------------ */
h1, h2, h3, h4 { color: var(--burgundy); }

/* ---- Kicker / overline --------------------------------------------------- */
.kicker,
.page-header .kicker,
.section-head__label { color: var(--burgundy-light); }

/* ---- Page-header lede ---------------------------------------------------- */
.lede,
.page-header .lede { color: #2c2c2c; }

/* ---- ADL honor banner ---------------------------------------------------- */
.adl-honor {
  background: linear-gradient(180deg, rgba(149, 24, 41, 0.06), rgba(149, 24, 41, 0.02));
  border-color: rgba(149, 24, 41, 0.28);
  border-left-color: var(--burgundy-light);
  box-shadow: 0 8px 24px rgba(100, 26, 43, 0.10);
}
.adl-honor__grade-letter { color: var(--burgundy-light); }
.adl-honor__grade-source { color: var(--ink-faded); }
.adl-honor__kicker       { color: var(--burgundy-light); }
.adl-honor__lede         { color: #1a1a1a; }
.adl-honor__lede em      { color: var(--burgundy); font-style: italic; }
.adl-honor__cue          { color: var(--burgundy-light); }
.adl-honor:hover         { border-color: var(--burgundy); }
.adl-honor:hover .adl-honor__cue { color: var(--burgundy); }

/* Mazal Tov PNG was authored cream-on-dark; recolor to burgundy on cream.
   Applied to both the about-page banner inline mark and the standalone
   adl-2026.html figure. */
.adl-honor__mazaltov img,
.adl-mazal-tov img {
  filter: brightness(0) saturate(100%) invert(13%) sepia(54%) saturate(2740%) hue-rotate(330deg) brightness(96%) contrast(95%);
  opacity: 0.92;
}

/* ---- ADL pull-quote ------------------------------------------------------ */
.adl-quote {
  border-top-color: var(--burgundy-light);
  border-bottom-color: var(--burgundy-light);
}
.adl-quote__text    { color: #1a1a1a; }
.adl-quote__vassar  { color: var(--burgundy-light); }
.adl-quote__cite    { color: var(--burgundy-light); }
.adl-quote__rule    { background: var(--burgundy-light); opacity: 0.55; }
.adl-quote::before  { color: var(--burgundy-light); opacity: 0.5; }

/* ---- Page header --------------------------------------------------------- */
.page-header h1 { color: var(--burgundy); }
.amp            { color: var(--burgundy-light); }

/* ---- Standing-invitation & similar essay layouts ------------------------ */
.about-standing-invitation__text p              { color: #1a1a1a; }
.about-standing-invitation__text p em           { color: var(--burgundy-light); }
.about-standing-invitation__poster-caption     { color: var(--ink-dim); }
.about-standing-invitation__poster-caption em  { color: var(--burgundy-light); }

/* ---- Signoff block ------------------------------------------------------- */
.signoff                  { border-top-color: var(--rule); }
.signoff__text .name      { color: var(--burgundy); }
.signoff__text .title     { color: var(--ink-dim); }
.signoff__text .links     { color: var(--ink-dim); }
.signoff__text .links a   { color: var(--burgundy-light); }

/* ---- Prose and tables ---------------------------------------------------- */
.prose, .prose p { color: #1a1a1a; }
.prose p em      { color: var(--burgundy-light); }
table            { color: #1a1a1a; }
table th         { color: var(--burgundy-light); border-bottom-color: var(--burgundy-light); }
table td         { border-bottom-color: rgba(0, 0, 0, 0.08); }

/* ---- Section heads ------------------------------------------------------- */
.section-head        { border-top-color: var(--rule); }
.section-head__note  { color: var(--ink-dim); }

/* ---- Position note ------------------------------------------------------- */
.position-note p { color: #1a1a1a; }

/* ---- Support strip ------------------------------------------------------- */
/* Kept intentionally dark — reads as a deliberate punctuation at the bottom
   of a light page, echoing the masthead. */
.support-strip {
  background: linear-gradient(135deg, var(--burgundy) 0%, #4d1010 100%);
}
.support-strip__inner h2         { color: #FFF8EF; }
.support-strip__inner h2 em      { color: #C6AA76; font-style: italic; }
.support-strip__inner p          { color: rgba(255, 248, 239, 0.92); }
.support-strip__inner p strong   { color: #C6AA76; }
.support-strip__inner .kicker,
.support-strip__inner span.kicker { color: #C6AA76; }
.support-strip__action small     { color: rgba(255, 248, 239, 0.72); }
.support-strip__action .btn-give {
  background: #C6AA76;
  color: var(--burgundy);
  border-color: #C6AA76;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
}
.support-strip__action .btn-give:hover {
  background: #FFF8EF;
  color: var(--burgundy);
  border-color: #FFF8EF;
}

/* ---- Site footer --------------------------------------------------------- */
/* The footer (.foot) becomes a burgundy bar mirroring the masthead so the
   page is book-ended in Vassar Burgundy. Text/links flip to pale cream. */
.foot {
  background: var(--burgundy);
  color: rgba(255, 248, 239, 0.85);
  border-top-color: rgba(255, 248, 239, 0.12);
}
.foot a { color: rgba(255, 248, 239, 0.92); border-bottom-color: transparent; }
.foot a:hover { color: #fff; border-bottom-color: rgba(255, 248, 239, 0.6); }
.foot__brand span { color: rgba(255, 248, 239, 0.92); }

/* ---- Image surrounds ----------------------------------------------------- */
/* Soft burgundy edge so figures read as composed on cream rather than floating. */
figure img,
.about-standing-invitation__poster img {
  border-color: rgba(100, 26, 43, 0.18) !important;
  box-shadow: 0 10px 28px rgba(100, 26, 43, 0.12) !important;
}

/* ---- Hardcoded-dark fixes (Phase 3) -------------------------------------- */
/* .search-overlay__panel: was a navy gradient. Cream panel with burgundy edge. */
.search-overlay__panel {
  background: #FFF8EF;
  border: 1px solid var(--burgundy-light);
}

/* .video-embed and .poster-cycler intentionally keep their dark frames
   (conventional letterboxing). .home .hero__bg keeps its navy underlay
   for the dark Sephardic ketubah hero. No overrides needed for those. */

/* .hebrew-poster__preview: hover-to-enlarge popup. Original used
   var(--night-deep) for its bg, which now resolves to cream — making the
   popup invisible. Restore a dark frame (matching .poster-cycler) with a
   burgundy edge so the poster reads as isolated against the cream page. */
.hebrew-poster__preview {
  background: #0a0817;
  border-color: rgba(149, 24, 41, 0.55);
  box-shadow: 0 32px 96px rgba(100, 26, 43, 0.32);
}

/* ==========================================================================
   NEWSLETTER REBRAND — masthead nameplate + periodical dateline
   Reframes the site as the "Vassar College Jewish Studies Newsletter":
   the official VASSAR wordmark is paired with an explicit "Newsletter"
   nameplate, and a dateline strip carries the publication tagline + edition.
   ========================================================================== */
.nameplate {
  display: flex;
  align-items: center;
  gap: 0.85rem;
}
.nameplate__wordmark {
  height: 30px;
  width: auto;
  display: block;
}
.nameplate__rule {
  width: 1px;
  align-self: stretch;
  min-height: 36px;
  background: rgba(255, 248, 239, 0.4);
}
.nameplate__lines {
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1;
  gap: 0.22em;
}
.nameplate__dept {
  font-family: var(--sans);
  font-size: 0.6rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: rgba(255, 248, 239, 0.82);
  font-weight: 500;
}
.nameplate__pub {
  font-family: var(--display);
  font-style: italic;
  font-weight: 500;
  font-size: 1.32rem;
  letter-spacing: 0.004em;
  color: #FFF8EF;
}

/* Periodical dateline — sits below the burgundy bar, above the nav rail */
.masthead__dateline {
  background: var(--burgundy);
  border-bottom: 1px solid rgba(255, 248, 239, 0.1);
  padding: 0.46rem clamp(1rem, 3vw, 2.2rem);
}
.masthead__dateline-inner {
  max-width: 76rem;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem 1.4rem;
  flex-wrap: wrap;
  font-family: var(--sans);
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.masthead__tagline {
  color: rgba(255, 248, 239, 0.74);
  font-weight: 500;
  font-style: normal;
}
.masthead__tagline em {
  font-style: normal;
  color: rgba(255, 248, 239, 0.9);
}
.masthead__edition {
  color: rgba(255, 248, 239, 0.95);
  font-weight: 600;
  white-space: nowrap;
}

@media (max-width: 600px) {
  .nameplate__pub { font-size: 1.12rem; }
  .nameplate__wordmark { height: 24px; }
  .masthead__dateline-inner { font-size: 0.56rem; letter-spacing: 0.16em; }
}

/* ==========================================================================
   Circular speaker video — beside the Hebrew page opening paragraph.
   Echoes the burgundy-ringed circular avatar idiom used elsewhere on the page.
   ========================================================================== */
.page-header--with-media { max-width: 64rem; }
.page-header__media-row {
  display: flex;
  gap: clamp(1.6rem, 4vw, 3rem);
  align-items: flex-start;
}
.page-header__media-row .lede { margin: 0; flex: 1 1 auto; }

.speaker-circle {
  flex: 0 0 auto;
  margin: 0.2rem 0 0;
  width: clamp(168px, 19vw, 224px);
  text-align: center;
}
.speaker-circle__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid var(--burgundy);
  box-shadow: 0 12px 30px rgba(100, 26, 43, 0.24);
  background: #1a1a1a;
  cursor: pointer;
}
.speaker-circle__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 40%;
  display: block;
}
.speaker-circle__play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  padding: 0;
  color: #fff;
  background: rgba(100, 26, 43, 0.30);
  cursor: pointer;
  transition: background 200ms ease, opacity 220ms ease;
}
.speaker-circle__play:hover { background: rgba(100, 26, 43, 0.45); }
.speaker-circle__play svg {
  width: 30%;
  height: 30%;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.45));
}
.speaker-circle.is-playing .speaker-circle__play { opacity: 0; pointer-events: none; }
.speaker-circle__caption {
  margin-top: 0.8rem;
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-dim);
  line-height: 1.4;
}

@media (max-width: 720px) {
  .page-header__media-row { flex-direction: column; align-items: center; }
  .page-header__media-row .lede { order: -1; }
  .speaker-circle { width: clamp(180px, 52vw, 240px); }
}

/* ==========================================================================
   Lecture video — recorded lecture embedded on its detail page.
   Responsive 16:9 (via padding-box), framed to match the page rhythm.
   ========================================================================== */
.lecture-video {
  margin: 2.6rem auto 0;
  max-width: 56rem;
}
.lecture-video__kicker {
  display: block;
  font-family: var(--sans);
  font-size: 0.66rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--burgundy);
  font-weight: 600;
  margin-bottom: 0.7rem;
}
.lecture-video__frame {
  padding: 56.25% 0 0 0;
  position: relative;
  background: #1a1a1a;
  border: 1px solid var(--rule, rgba(100,26,43,0.16));
  box-shadow: 0 14px 36px rgba(100, 26, 43, 0.16);
}
.lecture-video__frame iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ==========================================================================
   Poem callout — a poem set as a literary aside near a lecture.
   Burgundy-ruled card; line and stanza breaks preserved.
   ========================================================================== */
.poem-callout {
  margin: 2.6rem auto 0;
  max-width: 44rem;
  padding: 2rem clamp(1.6rem, 4vw, 2.8rem) 2.1rem;
  background: linear-gradient(180deg, rgba(100,26,43,0.045), rgba(100,26,43,0.02));
  border-left: 3px solid var(--burgundy);
  border-radius: 2px;
  box-shadow: 0 10px 28px rgba(100, 26, 43, 0.10);
}
.poem-callout__kicker {
  display: block;
  font-family: var(--sans);
  font-size: 0.64rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--burgundy);
  font-weight: 600;
  margin-bottom: 0.5rem;
}
.poem-callout__title {
  font-family: var(--display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(1.5rem, 3vw, 1.95rem);
  color: var(--burgundy);
  line-height: 1.15;
  margin: 0 0 0.3rem;
}
.poem-callout__byline {
  font-family: var(--sans);
  font-size: 0.74rem;
  letter-spacing: 0.06em;
  color: var(--ink-dim);
  margin: 0 0 1.5rem;
}
.poem-callout__body {
  font-family: var(--display);
  font-size: 1.06rem;
  line-height: 1.62;
  color: var(--ink-on-dark);
}
/* each stanza is a <p>; preserve internal line breaks via <br> */
.poem-callout__body p {
  margin: 0 0 1.1rem;
}
.poem-callout__body p:last-child { margin-bottom: 0; }
.poem-callout__body em { font-style: italic; }
.poem-callout__note {
  margin-top: 1.6rem;
  padding-top: 1rem;
  border-top: 1px solid var(--rule);
  font-family: var(--sans);
  font-size: 0.78rem;
  line-height: 1.5;
  color: var(--ink-dim);
}

/* Centered speaker circle — standalone, centered under a paragraph (Yiddish page) */
.speaker-circle--center {
  margin: 2rem auto 2.2rem;
  width: clamp(220px, 30vw, 300px);
}
.speaker-circle--center .speaker-circle__video {
  object-position: 50% 42%;
}
