/* Elsewhere Humanities — 既有版面与色系 · 宋体展示 / 黑体阅读（2026-10-19）
 * Canonical stylesheet. Font roles: font-reference.pdf; layout/colour: typography.md.
 * Edit tokens and semantic roles here, then run sync_styles.py. */
@font-face {
  font-family: "Cormorant Garamond"; font-style: italic; font-weight: 500;
  font-display: swap; src: url("/assets/fonts/4149e6c56e9b6e4a74042c12.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond"; font-style: italic; font-weight: 600;
  font-display: swap; src: url("/assets/fonts/44d852e35fcaa2b391a7149e.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500;
  font-display: swap; src: url("/assets/fonts/17d98db84d1cabf798f2ff50.woff2") format("woff2");
}
@font-face {
  font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600;
  font-display: swap; src: url("/assets/fonts/35ae896219b91330185c5f1d.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Serif SC"; font-style: normal; font-weight: 400;
  font-display: swap; src: url("/assets/fonts/3f71c60ca270620ba660f4f6.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Serif SC"; font-style: normal; font-weight: 500;
  font-display: swap; src: url("/assets/fonts/962e1794c0f7157d5c04b8bc.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Serif SC"; font-style: normal; font-weight: 600;
  font-display: swap; src: url("/assets/fonts/03dba0bb637244ef95ab83bd.woff2") format("woff2");
}

:root {
  color-scheme: light;
  --paper: #f6f3ea; --paper-2: #ffffff; --paper-hover: #faf8f2; --card: #ffffff;
  --programs-bg: #eeece7;
  --ink: #1a1a1a; --body: #2b2b2b; --lead: #2b2b2b; --faint: #6f695b;
  --accent: #b45f5f; --accent-band: #bd5f5f; --blush: #f7edec; --blush-tab: #f1e0de;
  --gold: #c6a268; --gold-band: #9d8a68; --gold-link: #b09a72;
  --line: #000000; --line-soft: #ddd5c2; --quote-line: var(--accent);
  --nav: #464542; --nav-en: #E4E4E4; --nav-cn: #AAAAA9; --paper-hero: var(--paper);
  --footer: #111111; --footer-ink: #cfc8b4; --footer-faint: #b9b29c;
  --paper-rgb: 246, 243, 234; --wash-rgb: 180, 95, 95;
  --calligraphy-filter: none; --logo-filter: none;
  --font-serif: "Noto Serif SC", "Songti SC", serif;
  --font-sans: "PingFang SC", "Noto Sans SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --font-en: "Cormorant Garamond", var(--font-serif);
  --font-label: var(--font-sans);
  --fs-display: 64px; --fs-section: 34px; --fs-heading: 34px;
  --fs-quote: 26px; --fs-lead: 20px; --fs-lead-en: 15px;
  --fs-body: 16px; --fs-eyebrow: 12.5px; --fs-caption: 12px; --fs-cta: 15px;
  --lh-body: 2; --lh-lead: 1.9; --measure: 36em; --measure-lead: 40rem;
  --space-section: 96px; --space-quote: 40px; --space-paragraph: 32px;
  --space-cta: 30px; --space-rule: 28px; --gutter: clamp(24px, 5vw, 72px);
  --max-width: 1240px; --column-gap: clamp(32px, 5vw, 72px);
  --pine: var(--accent); --grey: var(--faint); --grey-line: var(--line-soft);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
  color-scheme: dark;
  --paper: #171512; --paper-2: #211e19; --paper-hover: #211e19; --card: #211e19;
  --programs-bg: #24211c;
  --ink: #f0ead9; --body: #d9d3c1; --lead: #d9d3c1; --faint: #a79d87;
  --accent: #cf8a84; --accent-band: #9b5652; --blush: #2b2320; --blush-tab: #382b27;
  --gold: #c6a268; --line: #e8e2d0; --line-soft: #3b362c;
  --nav: #1C1E1B; --nav-en: #E4E4E4; --nav-cn: #AAAAA9;
  --paper-rgb: 23, 21, 18; --wash-rgb: 207, 138, 132; --calligraphy-filter: invert(1); --logo-filter: invert(1);
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #171512; --paper-2: #211e19; --paper-hover: #211e19; --card: #211e19;
  --programs-bg: #24211c;
  --ink: #f0ead9; --body: #d9d3c1; --lead: #d9d3c1; --faint: #a79d87;
  --accent: #cf8a84; --accent-band: #9b5652; --blush: #2b2320; --blush-tab: #382b27;
  --gold: #c6a268; --line: #e8e2d0; --line-soft: #3b362c;
  --nav: #1C1E1B; --nav-en: #E4E4E4; --nav-cn: #AAAAA9;
  --paper-rgb: 23, 21, 18; --wash-rgb: 207, 138, 132; --calligraphy-filter: invert(1); --logo-filter: invert(1);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-sans);
  font-size: var(--fs-body); font-weight: 400; line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  transition: background-color .4s ease, color .4s ease; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
a, button, input, select { transition: color .25s ease, background-color .25s ease, border-color .25s ease; }
button, input { font: inherit; }
button { cursor: pointer; }
p { max-width: var(--measure); margin: 0 0 var(--space-paragraph); text-align: left; }
p:last-child { margin-bottom: 0; }
strong, b { font-weight: 600; }
h1, h2, h3, h4, h5 { margin: 0; font-family: var(--font-serif); font-weight: 600; color: var(--ink); }
h2 { font-size: var(--fs-section); line-height: 1.35; letter-spacing: .02em; }
h3 { font-size: var(--fs-heading); line-height: 1.35; }
h4 { font-size: 24px; line-height: 1.45; }
::selection { background: var(--accent); color: var(--paper); }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.wrap { width: 100%; max-width: var(--max-width); margin-inline: auto; padding-inline: var(--gutter); }
/* Serif English is reserved for short display translations and taglines, not body copy. */
.en-title, h1 > .en, h2 > .en, h3 > .en, h4 > .en,
.series-masthead-copy .en, .series-introduction .en { font-family: var(--font-en); font-style: italic; font-weight: 500; }
.en-title, h2 > .en, h3 > .en, h4 > .en {
  display: block; font-size: var(--fs-lead-en); line-height: 1.65;
  letter-spacing: 0; color: var(--faint); margin-top: 10px;
}
.label, .about-kicker, .series-row-index, .idx, .num {
  font-family: var(--font-label); font-size: var(--fs-eyebrow); font-weight: 600;
  line-height: 1.65; letter-spacing: .18em; text-transform: uppercase; color: var(--accent);
}
.num, .sec-no, .wordmark { font-family: var(--font-serif); }
.btn, .link-quiet, .program-explore {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  font-family: var(--font-label); font-size: var(--fs-cta); font-weight: 600;
  line-height: 1.65; letter-spacing: .1em; color: var(--accent); text-align: left;
}
.link-quiet { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
/* A single stroke spans both Explore and its arrow, including the flex gap. */
.program-explore, .entry-tail .link-quiet, .related-item .link-quiet {
  text-decoration: none; background-image: linear-gradient(currentColor, currentColor);
  background-repeat: no-repeat; background-size: 100% 1px; background-position: left calc(50% + .65em);
}
.btn { padding: 12px 24px; border: 1px solid var(--gold); background: var(--gold); color: #ffffff; border-radius: 0; }
.btn:hover { background: var(--gold-band); color: #ffffff; }
.arrow { flex: 0 0 auto; transition: transform .25s ease; }
a:hover > .arrow { transform: translateX(3px); }
.link-quiet:hover > .arrow { transform: translateX(4px); }

/* Navigation */
header.site { position: sticky; top: 0; z-index: 50; background: var(--nav); }
.masthead { min-height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 12px; }
.brand { display: flex; align-items: center; }
header.site .brand-logo { width: 88px; max-height: 52px; object-fit: contain; object-position: left center; }
nav.primary { display: flex; gap: 32px; align-items: center; }
nav.primary a { position: relative; font-family: var(--font-sans); font-size: 15px; font-weight: 600; letter-spacing: .15em; line-height: 1.5;
  color: var(--nav-en); text-transform: uppercase; }
nav.primary a .cn { display: block; margin-top: 4px; font-family: var(--font-sans); font-size: 12px;
  font-weight: 400; letter-spacing: .08em; color: var(--nav-cn); }
nav.primary a::after { content: ""; position: absolute; left: 0; bottom: -5px; width: 0; height: 1px;
  background: currentColor; transition: width .28s ease; }
nav.primary a:hover::after, nav.primary a:focus-visible::after, nav.primary a[aria-current="page"]::after { width: 100%; }
.theme-toggle { background: transparent; border: 1px solid var(--nav-cn); border-radius: 0; padding: 8px 10px;
  min-height: 44px; font-family: var(--font-sans); font-size: 13px; color: var(--nav-en); letter-spacing: .1em; }
.nav-toggle { display: none; }
/* Reciprocal homepage language links; the current language is a plain label. */
.home-controls { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.language-switch { display: inline-flex; align-items: center; flex: 0 0 auto;
  font-family: var(--font-label); font-size: 12px; line-height: 1.5; letter-spacing: .02em; }
.language-switch a, .language-switch [aria-current="page"] { display: inline-flex; align-items: center;
  justify-content: center; min-height: 44px; min-width: 32px; }
.language-switch a { color: var(--nav-en); }
.language-switch a:hover, .language-switch a:focus-visible { text-decoration: underline; text-underline-offset: 5px; }
.language-switch [aria-current="page"], .language-divider { color: var(--nav-cn); }
@media (max-width: 620px) {
  .language-switch [aria-current="page"], .language-divider { display: none; }
  .language-switch a { min-width: 40px; }
  .home-controls { gap: 6px; }
}


/* User-approved Hero restoration. The current eyebrow/label is preserved. */
.hero { position: relative; isolation: isolate; overflow: hidden;
  border-bottom: 1px solid var(--line-soft);
  background: var(--paper);
}
.hero-inner {
  position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1fr);
  place-items: center; gap: 2.5rem; min-height: calc(100svh - 4.25rem);
  padding-block: clamp(4.5rem,10vw,7.8rem); text-align: center;
}
.hero-inner > div { width: 100%; max-width: none; margin-inline: auto; }
.hero .eyebrow { display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 1.9rem; text-align: start; }
.hero .eyebrow .line { width: 44px; height: 1px; flex: 0 0 auto; background: var(--faint); }
/* User-approved exception: restore the short site-name line's serif face and breathing room. */
.hero .label { font-family: var(--font-en); letter-spacing: .32em; }
.hero h1 { margin: 0 auto; font-weight: 500; font-size: clamp(2.6rem,7vw,5.2rem);
  line-height: 1.06; letter-spacing: 0; text-align: center; text-wrap: balance; }
.hero-title-img { inline-size: min(86vw,66rem); height: auto; margin-inline: auto;
  filter: drop-shadow(0 .5rem 1rem rgba(0,0,0,.06)); }
.hero h1 .en {
  display: block; font-family: var(--font-en);
  font-weight: 500; font-style: italic; font-size: clamp(1.2rem,2.8vw,2.15rem);
  color: var(--ink); margin-top: clamp(.4rem,1.2vw,.9rem); letter-spacing: .02em; line-height: 1.15;
}
.hero .lede {
  font-family: var(--font-serif);
  max-width: 58rem; margin: 2.2rem auto 0; font-size: clamp(1.02rem,1.6vw,1.24rem);
  font-weight: 400; line-height: 1.78; color: var(--body); text-align: center; text-wrap: pretty;
}
.hero .lede > span { display: block; }
.hero .lede .gap { margin-top: .9rem; }
.hero .actions { display: flex; flex-wrap: wrap; gap: 1.4rem; align-items: center;
  justify-content: center; margin: 2.4rem auto 0; }
.hero .actions .btn, .hero .actions .link-quiet {
  font-family: var(--font-label);
  font-size: .82rem; font-weight: 600; line-height: 1.78; letter-spacing: .1em;
  text-transform: uppercase; text-decoration: none;
}
.hero .actions .btn { padding: .8rem 1.4rem; border-color: var(--gold); color: #ffffff; border-radius: 2px; background: var(--gold); }
.hero .actions .btn:hover { background: var(--gold-band); color: #ffffff; }
.hero .actions .link-quiet { letter-spacing: .08em; }
/* Theme adaptation preserves the restored composition without low contrast. */
:root[data-theme="dark"] .hero-title-img { filter: invert(1) drop-shadow(0 .5rem 1rem rgba(0,0,0,.06)); }
:root[data-theme="dark"] .hero h1 .en { color: var(--ink); }
:root[data-theme="dark"] .hero .lede { color: var(--body); }

/* Selected posters: a slow continuous strip immediately after the Hero. */
.hero:has(+ .selected-gallery) { border-bottom: 0; }
.hero:has(+ .selected-gallery) .hero-inner { min-height: 0; padding-block-end: 32px; }
.selected-gallery { --selected-card-width: clamp(168px,18vw,216px); padding-block: 32px 40px; background: var(--paper); }
.selected-gallery-head { display: grid; grid-template-columns: minmax(0,1fr) auto;
  align-items: end; gap: 8px 32px; margin-bottom: 12px; }
.selected-gallery-eyebrow { grid-column: 1 / -1; max-width: none; margin: 0;
  font-family: var(--font-label); font-size: 12px; font-weight: 600; line-height: 1.8;
  letter-spacing: .18em; text-transform: uppercase; color: var(--faint); }
.selected-gallery-head h2 { grid-column: 1; font-size: clamp(36px,3.6vw,48px); font-weight: 500; line-height: 1.3; }
.selected-gallery-archive { display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  grid-column: 2; justify-self: end; color: var(--accent); font-size: 14px; font-weight: 600; white-space: nowrap; }
.selected-gallery-archive:hover, .selected-gallery-archive:focus-visible { text-decoration: underline; text-underline-offset: 5px; }
.selected-gallery-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 8px; }
.selected-gallery-toolbar p { max-width: none; margin: 0; font-size: 16px; line-height: 1.8; color: var(--body); }
.selected-gallery-controls { display: none; gap: 4px; flex-shrink: 0; }
.selected-gallery.is-ready .selected-gallery-controls { display: flex; }
.selected-gallery-controls button { width: 44px; height: 44px; padding: 0; border: 0;
  border-radius: 0; background: transparent; color: var(--accent); font-size: 22px; line-height: 1; }
.selected-gallery-controls button:hover:not(:disabled), .selected-gallery-controls button:focus-visible {
  background: color-mix(in srgb,var(--accent) 8%,transparent); color: var(--ink); }
.selected-gallery-controls button:disabled { opacity: .35; cursor: default; }
.selected-gallery-controls [data-gallery-toggle][hidden] { display: none; }
.selected-gallery-viewport { overflow-x: auto; scrollbar-width: none; cursor: grab; -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: none; scroll-behavior: auto; overflow-anchor: none;
  padding: 8px max(var(--gutter),calc((100vw - var(--max-width)) / 2 + var(--gutter))) 16px;
  -webkit-mask-image: linear-gradient(to right,black 92%,transparent 100%);
  mask-image: linear-gradient(to right,black 92%,transparent 100%); }
.selected-gallery-viewport::-webkit-scrollbar { display: none; }
.selected-gallery-viewport.is-dragging { cursor: grabbing; }
.selected-gallery-viewport.is-at-end { -webkit-mask-image: none; mask-image: none; }
.selected-gallery-viewport:focus-visible { outline-offset: -4px; }
.selected-gallery-track { display: flex; align-items: start; gap: 24px; width: max-content; margin: 0; padding: 0; list-style: none; }
.selected-card { flex: 0 0 var(--selected-card-width); width: var(--selected-card-width); min-width: 0;
  transition: opacity 700ms cubic-bezier(.22,1,.36,1),transform 700ms cubic-bezier(.22,1,.36,1);
  transition-delay: var(--selected-reveal-delay,0ms); }
.selected-card.is-pending { opacity: 0; transform: translateY(24px); transition: none; }
.selected-card.is-shown { opacity: 1; transform: none; }
.selected-card-link { display: block; user-select: none; -webkit-user-drag: none; transition: transform 800ms ease-out; }
.selected-card-thumb { position: relative; width: 100%; aspect-ratio: 3 / 4; overflow: hidden; padding: 5px; }
.selected-card-thumb img { display: block; width: 100%; height: 100%; object-fit: contain;
  user-select: none; -webkit-user-drag: none; transition: transform 800ms ease-out; }
.selected-card-tag { position: absolute; top: 14px; left: 14px; padding: 3px 8px; background: var(--paper);
  color: var(--accent); font-family: var(--font-label); font-size: var(--fs-caption); line-height: 1.8;
  transition: opacity 800ms ease-out; }
.selected-card-caption { padding: 16px 5px 0; }
.selected-card-caption h3 { font-size: 18px; font-weight: 500; line-height: 1.65; }
.selected-card-caption .selected-card-subtitle { margin: 8px 0 0; font-family: var(--font-sans);
  font-size: 14px; font-weight: 400; line-height: 1.7; color: var(--faint); overflow-wrap: anywhere; }
.selected-card-caption time, .selected-card-caption > span { display: block; margin-top: 8px; font-family: var(--font-label);
  font-size: var(--fs-caption); line-height: 1.8; letter-spacing: .04em; color: var(--faint); }
.selected-card-all .selected-card-thumb { display: flex; flex-direction: column; align-items: center; justify-content: center;
  border: 1px solid var(--line-soft); padding: 24px; }
.selected-all-label, .selected-all-unit { font-family: var(--font-label); font-size: 13px; line-height: 1.8; color: var(--faint); }
.selected-all-count { margin-block: 16px 8px; font-family: "Iowan Old Style",Palatino,serif; font-size: 64px; font-weight: 400; line-height: 1; }
.selected-all-arrow { margin-top: 20px; font-size: 28px; line-height: 1; color: var(--accent); }
@media (hover: hover) and (pointer: fine) {
  .selected-card-tag { opacity: 0; }
  .selected-card-link:hover, .selected-card-link:focus-visible { transform: translateY(-4px); }
  .selected-card-link:hover img, .selected-card-link:focus-visible img { transform: scale(1.03); }
  .selected-card-link:hover .selected-card-tag, .selected-card-link:focus-visible .selected-card-tag { opacity: 1; }
}
@media (max-width: 620px) {
  .hero:has(+ .selected-gallery) .hero-inner { padding-block-end: 24px; }
  .selected-gallery { --selected-card-width: 168px; padding-block: 20px 24px; }
  .selected-gallery-head { grid-template-columns: minmax(0,1fr); gap: 8px; margin-bottom: 8px; }
  .selected-gallery-head h2 { font-size: 32px; }
  .selected-gallery-archive { grid-column: 1; justify-self: start; font-size: 13px; }
  .selected-gallery-toolbar { flex-wrap: wrap; gap: 8px; }
  .selected-gallery-toolbar p { font-size: 14px; }
  .selected-gallery-controls { gap: 0; margin-left: auto; }
  .selected-gallery-track { gap: 16px; }
  .selected-card-caption h3 { font-size: 16px; }
  .selected-card-caption .selected-card-subtitle { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .selected-card.is-pending { opacity: 1; transform: none; }
  .selected-card-link:hover, .selected-card-link:focus-visible,
  .selected-card-link:hover img, .selected-card-link:focus-visible img { transform: none; }
  .selected-card-tag { opacity: 1; }
}

/* Section structure — one CSS display role on the homepage. */
section.band { padding-block: var(--space-section); border-bottom: 1px solid var(--line-soft); }
/* Full-width chapter backgrounds; the inner .wrap keeps the existing reading width. */
section#events { padding-bottom: 64px; background: var(--paper); }
section#upcoming { padding-block: 0; border-top: 0; background: var(--paper); }
section#support { padding-block: 64px; background: var(--paper); }
/* A shared gold registration button for Home and Archive. */
.registration-options { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 28px 12px; }
.registration-entry { display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-width: 0; max-width: 100%;
  text-align: center; text-decoration: none; color: #ffffff; background: transparent; }
.registration-entry-line { display: inline-flex; align-items: baseline; justify-content: center; gap: 10px;
  max-width: 100%; padding: var(--registration-padding-block,.8rem) var(--registration-padding-inline,1.4rem);
  border: 1px solid var(--gold); border-radius: 0; background: var(--gold); color: #ffffff;
  font-family: var(--font-label); font-size: var(--registration-font-size,.82rem); font-weight: 600;
  line-height: 1.78; letter-spacing: .1em; text-transform: uppercase;
  transition: background-color .35s ease; }
.registration-entry-label { min-width: 0; font: inherit; letter-spacing: inherit; }
.registration-entry-arrow { display: inline-block; flex: 0 0 auto; font-size: 1.2em; line-height: 1;
  transition: transform .35s ease; }
.registration-entry-source { font-family: var(--font-sans); font-size: 12px; font-weight: 400;
  line-height: 1.65; color: var(--faint); }
.registration-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 16px;
  max-width: 100%; margin: 0; font-family: var(--font-sans); font-size: 12px;
  font-weight: 400; line-height: 1.65; color: var(--faint); text-align: center; }
.registration-entry:hover .registration-entry-line, .registration-entry:focus-visible .registration-entry-line { background: var(--gold-band); }
.registration-entry:hover .registration-entry-arrow, .registration-entry:focus-visible .registration-entry-arrow { transform: translate(4px,-4px); }
.registration-entry.reveal { transition: opacity .8s ease, transform .8s ease; }
.registration-entry.reveal.is-pending { transform: translateY(8px); }
.sec-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 40px; }
.sec-head h2 { font-size: var(--fs-section); }
.series-masthead { margin-bottom: 48px; }
.series-masthead-title { text-align: center; }
.series-masthead-title h2 { display: flex; flex-direction: column; align-items: center;
  font-size: var(--fs-display); font-weight: 600; line-height: 1.2; letter-spacing: .03em; color: var(--ink); }
.series-masthead-title .en { order: -1; margin: 0 0 14px; font-family: var(--font-label); font-style: normal;
  font-size: var(--fs-eyebrow); line-height: 1.65; letter-spacing: .32em; font-weight: 600;
  color: var(--faint); text-transform: uppercase; }
.series-masthead-title::after, .about-page-masthead h2::after { content: ""; display: block; width: 64px; height: 1px;
  background: var(--line); margin: var(--space-rule) auto; }
.series-masthead-copy { max-width: none; margin-inline: auto; }
.series-masthead-copy p { max-width: var(--measure-lead); margin: 0 auto;
  font-size: var(--fs-lead); line-height: var(--lh-lead); font-weight: 500; color: var(--lead); }
.series-masthead-copy .en { display: block; margin-top: 10px; font-size: var(--fs-lead-en);
  max-width: none; font-weight: 500; line-height: 1.65; color: var(--faint); text-wrap: pretty; text-align: center; }
@media (min-width: 901px) {
  .series-masthead-copy .en { white-space: nowrap; }
}

/* Series: original photos, alternating on desktop; headings lead on mobile. */
.series-rows { display: flex; flex-direction: column; gap: 32px; }
.series-row { display: grid; grid-template-columns: minmax(0,.56fr) minmax(0,.44fr);
  grid-template-areas: "photo heading" "photo tagline" "photo body";
  grid-template-rows: auto auto 1fr;
  column-gap: var(--column-gap); row-gap: 0; align-items: start; padding-block: 32px;
  border-top: 1px solid var(--line-soft); }
.series-row.reverse { grid-template-columns: minmax(0,.44fr) minmax(0,.56fr);
  grid-template-areas: "heading photo" "tagline photo" "body photo"; }
.series-row > * { min-width: 0; }
.series-row-heading { grid-area: heading; align-self: start; }
.series-row-meta { display: flex; justify-content: space-between; align-items: start; gap: 16px; margin-bottom: 10px; }
.series-row-index { font-size: var(--fs-caption); letter-spacing: .18em; }
.series-row-logo { width: 36px; height: 32px; flex: 0 0 auto; object-fit: contain; opacity: .48; filter: var(--logo-filter); }
.series-row-heading h3 { font-size: var(--fs-heading); line-height: 1.35; letter-spacing: .02em; font-weight: 600; }
.series-row-name { display: block; white-space: nowrap; }
.series-title-link { display: block; width: fit-content; max-width: 100%; text-decoration: none; }
.series-title-link .series-row-name { transition: color .25s ease; }
.series-title-link:hover .series-row-name, .series-title-link:focus-visible .series-row-name {
  color: var(--accent); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.series-row-heading h3 .en { display: block; margin-top: 6px; font-size: var(--fs-lead-en); font-weight: 500;
  line-height: 1.65; letter-spacing: 0; color: var(--faint); }
.series-row-tagline { grid-area: tagline; align-self: start; margin: 24px 0 20px;
  font-family: var(--font-serif);
  padding: 4px 0 4px 22px; border-left: 2px solid var(--quote-line);
  font-size: var(--fs-quote); font-weight: 600; line-height: 1.45; letter-spacing: .02em;
  color: var(--accent); text-align: left; text-wrap: balance; }
.series-talk .series-row-tagline { text-wrap: wrap; }
.series-row-photo { grid-area: photo; align-self: start; margin: 0; overflow: hidden;
  aspect-ratio: 16 / 10; border: 0; border-radius: 0; background: var(--paper-2); }
.series-row-photo img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0;
  filter: saturate(.94) contrast(.98); }
.series-row-photo.trim-watermark { aspect-ratio: 16 / 8.9; }
.series-row-photo.trim-watermark img { object-position: center top; }
.series-row-photo.conversation-photo { aspect-ratio: 3 / 2; }
.series-row-body { grid-area: body; max-width: var(--measure); }
.series-row-body p { margin: 0 0 12px; font-size: var(--fs-body); line-height: 1.7; color: var(--body); }
.series-row-body p:last-child { margin-bottom: 0; }
.series-row-description .series-format { margin-bottom: 10px; font-weight: 600; color: var(--ink); }
.series-row-body .program-explore { margin-top: 20px; }

.programs-page { background: var(--paper); }
.programs-page #programs { padding-block-start: 32px; }
/* Programs: numbered editorial panels; all existing copy and photography are retained. */
.programs-head { margin: 0 0 32px; padding: 0; text-align: left; }
.programs-chapter-label { max-width: none; margin: 0 0 16px; font-family: var(--font-label);
  font-size: var(--fs-eyebrow); font-weight: 500; line-height: 1.8; letter-spacing: .12em; color: var(--accent); }
.programs-section-title { font-size: clamp(28px,3.2vw,40px); line-height: 1.4; }
.programs-head .program-overview-intro { padding-left: 0; margin: 32px 0 0; }
.program-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
  border: 1px solid var(--line-soft); }
.program-item { min-width: 0; position: relative; overflow: hidden; container-type: inline-size;
  display: flex; flex-direction: column; padding: clamp(24px,3vw,40px);
  border-bottom: 1px solid var(--line-soft); transition: background .35s ease; }
.program-item:nth-child(odd) { border-right: 1px solid var(--line-soft); }
.program-item:nth-last-child(-n+2) { border-bottom: 0; }
.program-head { display: grid; grid-template-columns: minmax(0,.28fr) minmax(0,.72fr);
  column-gap: clamp(12px,2cqi,20px); align-items: center; min-height: max(140px,32cqi); margin-bottom: 28px; }
.program-number { align-self: center; font-family: "Bodoni 72", "Didot", "Times New Roman", var(--font-serif);
  font-size: clamp(52px,26cqi,140px); font-weight: 400; font-variant-numeric: lining-nums;
  line-height: .85; letter-spacing: -.04em; color: color-mix(in srgb,var(--faint) 22%,transparent); white-space: nowrap; }
.program-title-block { min-width: 0; }
.program-logo { position: absolute; bottom: 28px; right: 24px; width: 28px; max-height: 28px;
  object-fit: contain; opacity: .22; filter: var(--logo-filter); transition: opacity .35s ease,transform .35s ease; }
.program-category { display: block; margin-bottom: 14px; font-family: var(--font-label);
  font-size: var(--fs-caption); font-weight: 600; letter-spacing: .14em; line-height: 1.65;
  text-transform: uppercase; color: var(--faint); overflow-wrap: anywhere; }
.program-item h3 { margin: 0; font-family: var(--font-serif); font-size: min(var(--fs-heading),11cqi);
  font-weight: 600; line-height: 1.35; color: var(--ink); }
.program-item h3 .en { font-family: var(--font-en); font-style: italic; font-weight: 500; }
.program-feature { margin-bottom: 24px; padding-left: clamp(16px,3cqi,24px);
  border-left: 1px solid var(--quote-line); }
.program-tagline { position: relative; min-height: 3.36em; display: flex; align-items: center;
  margin: 0 0 20px; padding-left: 30px; font-family: var(--font-serif);
  font-size: var(--fs-quote); font-weight: 600; line-height: 1.65; letter-spacing: .02em;
  color: var(--accent); text-wrap: balance; }
.program-tagline::before { content: "“"; position: absolute; top: .02em; left: 0;
  font-family: var(--font-en); font-size: 60px; font-weight: 600; line-height: 1; color: var(--accent); }
.program-photo { margin: 0; border: 0; border-radius: 0; }
.program-photo img { display: block; width: 100%; height: auto; border-radius: 0; }
.program-description { display: flow-root; margin-bottom: 16px; }
.program-keyword { float: left; margin: 0 16px 8px 0; font-family: var(--font-serif);
  font-size: clamp(48px,18cqi,84px); font-weight: 400; line-height: 1.1; color: var(--ink); }
.program-item p:not(.program-tagline) { max-width: 33rem; margin: 0 0 .72rem;
  font-family: var(--font-sans); font-size: var(--fs-body); line-height: var(--lh-body); color: var(--body); }
.program-item p:not(.program-tagline):last-of-type { margin-bottom: 1.15rem; }
.program-item .program-explore { margin-top: auto; align-self: flex-start; }
.program-groups-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding-block: 8px;
  font-family: var(--font-label); font-size: 14px; color: var(--accent); text-decoration: underline; text-underline-offset: 4px; }
@media (hover: hover) {
  .program-item:hover { background: color-mix(in srgb,var(--paper-2) 22%,transparent); }
  .program-item:hover .program-logo { opacity: .38; transform: translateY(-.12rem); }
}

/* Interest groups extend the four programs with a practical, readable community directory. */
.program-groups { margin-top: 80px; padding-top: 48px; border-top: 1px solid var(--line-soft); }
.interest-head { max-width: 960px; }
.interest-lead { margin: 24px 0 0; font-size: var(--fs-body); line-height: 2; color: var(--body); }
.interest-categories { display: grid; gap: 40px; margin-top: 48px; }
.interest-category { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 40px; min-width: 0; }
.interest-category-head { padding-top: 24px; border-top: 1px solid var(--line-soft); }
.interest-category-head h3 { font-size: 24px; font-weight: 500; line-height: 1.5; }
.interest-category-head p { margin: 8px 0 0; font-family: var(--font-label); font-size: var(--fs-caption); color: var(--faint); }
.interest-groups-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 32px;
  list-style: none; margin: 0; padding: 0; }
.interest-group { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 16px; min-width: 0;
  padding-block: 24px; border-top: 1px solid var(--line-soft); }
.interest-number { padding-top: 4px; font-family: var(--font-label); font-size: var(--fs-caption); color: var(--accent); }
.interest-group h4 { margin-bottom: 12px; font-size: 20px; font-weight: 500; line-height: 1.5; }
.interest-group p { max-width: none; margin: 0; font-size: 14px; line-height: 1.9; color: var(--body); }

/* About: equal semantic type roles, original desktop breaks, title-first source. */
#about {
  width: 100%; padding-block: 0 64px; background: #f6f3ea; color-scheme: light;
  /* Preserve the approved warm paper background in either theme. */
  --paper: #f6f3ea; --paper-2: #FFFFFF; --paper-hover: #faf8f2; --ink: #1a1a1a;
  --body: #2b2b2b; --lead: #2b2b2b; --faint: #6f695b;
  --accent: #b45f5f; --blush-tab: #f1e0de;
  --line: #000000; --line-soft: #ddd5c2; --quote-line: var(--accent);
  color: var(--ink);
}
.about-stack { display: flex; flex-direction: column; gap: 0; }
.about-community { padding-block: 64px 32px; border-block: 1px solid var(--line-soft); background: #faf8f2; }
.about-values { padding-top: 32px; }
.about-page-masthead { text-align: center; }
.about-page-masthead h2 { color: var(--ink); }
.about-page-masthead h2 .en { font-family: var(--font-en); font-style: italic; color: var(--faint); }
.about-kicker { display: inline-block; max-width: 100%; margin-bottom: 24px; padding: 10px 16px;
  background: var(--blush-tab); border: 0; border-radius: 0; vertical-align: top;
  font-size: 13px; letter-spacing: .18em; text-align: left; }
/* Scheme 3: identity in warm charcoal, mission and vision on an open paper field. */
.about-story { margin-bottom: 64px; border-bottom: 1px solid var(--line-soft);
  background: linear-gradient(90deg, #302f2c 50%, #f6f3ea 50%); }
.about-story-inner { display: grid; grid-template-columns: 38% minmax(0,1fr); align-items: stretch; }
.story-who { --ink: #ffffff; --body: #ded8cf; --faint: #c7bdb2; --accent: #d99a94; --line-soft: #57534c;
  min-width: 0; padding: 48px 32px 48px 0; background: #302f2c; color: var(--body); }
.story-kicker { display: block; max-width: none; margin: 0; font-family: var(--font-label);
  font-size: 13px; font-weight: 600; line-height: 1.65; letter-spacing: .18em; text-transform: uppercase; color: var(--accent); }
.story-quote { display: block; margin: 28px 0 20px; font-family: var(--font-serif);
  font-size: 64px; font-weight: 600; line-height: .8; color: #b45f5f; }
.story-who h2 { color: #ffffff; font-size: clamp(30px,2.5vw,38px); line-height: 1.3; }
.story-who h2 .en-title { margin-top: 10px; font-size: 18px; line-height: 1.5; color: #c7bdb2; }
.story-who-lead { margin-top: 24px; }
.story-who-lead p { max-width: 36em; margin-bottom: 16px; font-size: 15px; line-height: 1.8; color: var(--body); }
.story-who-lead p:last-child { margin-bottom: 0; }
.story-purposes { display: flex; flex-direction: column; justify-content: start; min-width: 0;
  padding: 48px 0 48px 40px; background: #f6f3ea; }
.story-purpose { display: grid; grid-template-columns: 78px minmax(0,1fr); gap: 24px; padding-block: 40px; }
.story-purpose:first-child { padding-top: 0; }
.story-purpose:last-child { padding-bottom: 0; }
.story-purpose + .story-purpose { border-top: 1px solid rgba(198,162,104,.7); }
.story-number { padding-top: 20px; font-family: var(--font-en); font-size: 74px; font-weight: 500;
  font-style: italic; line-height: 1; color: var(--gold); }
.story-purpose-content { min-width: 0; max-width: 36rem; }
.about-chapter-heading { display: grid; grid-template-columns: 78px minmax(0,1fr); gap: 24px; margin-bottom: 32px; }
.chapter-heading-copy { min-width: 0; }
.story-purpose h3, .chapter-heading-copy h2 { margin-top: 10px; color: var(--accent);
  font-size: clamp(28px,2.6vw,40px); font-weight: 600; line-height: 1.4; letter-spacing: 0; }
.story-purpose h3 .en-title, .chapter-heading-copy h2 .en-title { margin-top: 12px;
  color: var(--faint); font-size: 18px; line-height: 1.5; }
.story-purpose-copy { margin-top: 28px; }
.story-purpose-copy p, .community-lead { max-width: none; margin-bottom: 18px; font-size: 15px; line-height: 1.85; color: var(--body); }
.story-purpose-copy p:last-child { margin-bottom: 0; }
.community-lead { margin: 0 0 32px; padding-left: 102px; font-family: var(--font-sans); }
.story-who > .en-copy, .story-purpose .story-purpose-english { max-width: 36rem; margin-top: 20px; padding-top: 16px; }
.about-story details.en-copy summary { margin-bottom: 8px; }
.fixed-title-line { display: block; white-space: nowrap; }
.community-text p { max-width: none; font-size: var(--fs-body); line-height: var(--lh-body); color: var(--body); }
.en-copy { max-width: var(--measure); margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line-soft); }
details.en-copy summary { cursor: pointer; color: var(--accent); font-family: var(--font-label); font-size: var(--fs-caption);
  letter-spacing: .18em; text-transform: uppercase; line-height: 1.65; margin-bottom: 16px; }
details.en-copy p { font-family: var(--font-sans); font-style: normal; font-weight: 500;
  font-size: var(--fs-lead-en); line-height: 1.65; color: var(--faint); }
/* What We Do explains the programs; Community holds the overall results. */
.about-program-overview { padding-bottom: 64px; }
.program-overview-intro { padding-left: 102px; margin-bottom: 40px; }
.program-overview-intro > p { max-width: 54em; margin: 0; font-size: var(--fs-body); line-height: 1.9; color: var(--body); }
.program-intro-english { max-width: 54rem; margin-top: 20px; padding-top: 16px; }
.program-group-head { display: flex; align-items: baseline; justify-content: space-between;
  flex-wrap: wrap; gap: 12px 24px; margin-bottom: 20px; }
.program-group-title { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px;
  font-family: var(--font-label); font-size: 16px; font-weight: 500; line-height: 1.65;
  letter-spacing: .04em; color: var(--faint); }
.program-group-head p { max-width: none; margin: 0; font-size: 12px; line-height: 1.8; color: var(--faint); }
.program-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-block: 1px solid var(--line-soft); }
.program-summary { display: flex; flex-direction: column; min-width: 0; padding: 24px;
  border-right: 1px solid var(--line-soft); }
.program-summary:last-child { border-right: 0; }
.program-summary:hover, .program-summary:focus-visible { background: var(--paper-hover); }
.program-summary:hover h4, .program-summary:focus-visible h4 { color: var(--accent); }
.program-summary h4 { font-size: 26px; line-height: 1.4; }
.program-summary h4 span { display: block; margin-top: 8px; color: var(--faint);
  font-family: var(--font-en); font-style: italic; font-size: 16px; font-weight: 500; line-height: 1.65; }
.program-summary-description { flex: 1; margin: 16px 0 20px; font-size: 15px; line-height: 1.8; color: var(--body); }
.program-summary-count { display: flex; align-items: baseline; gap: 8px; margin: 0;
  color: var(--faint); font-size: 13px; line-height: 1.65; white-space: nowrap; }
.program-summary-count strong { font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  font-size: 36px; font-weight: 400; line-height: 1; color: var(--ink); }
.program-topic-map { margin-top: 32px; }
.program-topic-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr));
  border-top: 1px solid var(--line-soft); border-left: 1px solid var(--line-soft); }
.program-topic { display: flex; flex-direction: column; min-width: 0; padding: 20px;
  border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.program-topic h4 { font-size: 22px; font-weight: 500; line-height: 1.4; }
.program-topic h4 span { display: block; margin-top: 6px; font-family: var(--font-en); font-size: 14px;
  font-style: italic; font-weight: 500; line-height: 1.6; color: var(--faint); }
.program-topic p { display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  max-width: none; margin: auto 0 0; padding-top: 16px; font-size: 12px; line-height: 1.8; color: var(--faint); }
.program-topic p strong { font-family: var(--font-serif); font-size: 13px; font-weight: 500; color: var(--ink); }
.program-topic .arrow { font-size: 18px; color: var(--accent); }
.program-topic:hover, .program-topic:focus-visible { background: var(--paper-hover); }
.program-topic:hover h4, .program-topic:focus-visible h4 { color: var(--accent); }
.community-groups { margin-top: 24px; padding-left: 102px; }
.program-group-all { display: inline-flex; align-items: center; align-self: start;
  min-height: 44px; gap: 8px; color: var(--accent); font-size: 14px; font-weight: 600; line-height: 1.65; }
.program-group-strip { display: flex; flex-wrap: wrap; align-items: start; gap: 16px 24px;
  max-width: 48rem; margin-top: 0; padding: 0; }
.program-group-strip ul { display: flex; flex: 1 1 480px; flex-wrap: wrap; gap: 8px;
  list-style: none; padding: 0; margin: 0; }
.program-group-strip li a { display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 6px 14px; border: 1px solid var(--line-soft); border-radius: 0;
  color: var(--body); font-size: 14px; line-height: 1.5; }
.program-group-strip li a:hover, .program-group-strip li a:focus-visible { color: var(--accent); border-color: var(--accent); }
.program-group-all { flex-shrink: 0; }
/* User-approved exception: restore the community statistics' pre-spec design. */
.stats-row { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-block: 1px solid var(--line-soft); background: transparent; }
.stat { padding: clamp(1.35rem,3vw,2.2rem) clamp(.8rem,2vw,1.4rem); border-right: 1px solid var(--line-soft); }
.stat:last-child { border-right: 0; }
.stat strong { display: block;
  font-family: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
  font-size: clamp(2.35rem,5.5vw,4.6rem); font-weight: 400; line-height: .95; color: var(--ink); }
.stat .stat-label-cn { display: block; margin-top: .7rem; font-family: var(--font-sans);
  font-size: 14px; font-weight: 400; line-height: 1.65; letter-spacing: .04em; color: var(--body); }
.stat .stat-label-en { display: block; margin-top: 6px;
  font-family: var(--font-label);
  font-size: .72rem; font-weight: 600; line-height: 1.78;
  letter-spacing: .16em; text-transform: uppercase; color: var(--faint); }
.community-text { margin-top: 24px; padding-left: 102px; }
.community-text > div { max-width: 48rem; }
.community-text > div > p { margin-bottom: 16px; }
.community-text > div > p:last-of-type { margin-bottom: 0; }
.community-text .en-copy { max-width: none; margin-top: 8px; padding-top: 0; border-top: 0; }
.community-text details.en-copy summary { width: fit-content; min-height: 44px; padding-block: 10px;
  margin-bottom: 0; font-size: 12px; letter-spacing: .12em; }
.community-text details.en-copy[open] summary { margin-bottom: 8px; }
/* Photographs close the Community chapter at the same reading width. */
.community-moments { position: relative; margin-top: 32px; }
.moments-controls { position: absolute; right: 12px; bottom: 24px; display: none; }
.community-moments.is-ready .moments-controls { display: flex; }
.moments-controls button { width: 44px; height: 44px; padding: 0; border: 0;
  border-radius: 0; background: var(--paper-hover); color: var(--accent); font-family: var(--font-sans); font-size: 16px; cursor: pointer; }
.moments-controls button:hover, .moments-controls button:focus-visible { background: var(--paper-hover); border-color: var(--accent); }
.moments-controls button:disabled { opacity: .4; cursor: default; }
.moments-gallery-viewport { width: 100%; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain;
  scroll-behavior: auto; overflow-anchor: none;
  scrollbar-width: thin; scrollbar-color: var(--line-soft) transparent; cursor: grab; }
.moments-gallery-viewport.is-dragging { cursor: grabbing; }
.moments-gallery-track { display: flex; gap: 14px; width: max-content; list-style: none; margin: 0; padding: 0 0 12px; }
.moment-card { flex: 0 0 auto; min-width: 0; }
.moment-link { display: block; width: auto; height: 240px; text-decoration: none; }
.moment-link img { display: block; width: auto; height: 100%; max-width: none; border-radius: 0; user-select: none; -webkit-user-drag: none; }
.moment-link:focus-visible { outline-offset: -4px; }
.moments-lightbox { width: min(1080px,calc(100% - 32px)); max-width: none; max-height: 92dvh; padding: 20px;
  border: 1px solid var(--line-soft); border-radius: 0; background: var(--paper); color: var(--ink); }
.moments-lightbox::backdrop { background: rgb(23 21 18 / .84); }
.moments-lightbox[open] { display: grid; gap: 16px; }
.moments-lightbox-toolbar, .moments-lightbox-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.moments-lightbox-toolbar h4 { font-size: 20px; font-weight: 500; }
.moments-lightbox button { min-width: 44px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line-soft);
  border-radius: 0; font: 14px/1.5 var(--font-sans); background: transparent; color: var(--ink); cursor: pointer; }
.moments-lightbox button:hover { border-color: var(--accent); color: var(--accent); }
.moments-lightbox figure { margin: 0; min-width: 0; }
.moments-lightbox figure img { display: block; width: 100%; height: 60dvh; object-fit: contain; }
.moments-lightbox figcaption, .moments-lightbox-nav p { max-width: none; margin: 10px 0 0;
  font: 12px/1.8 var(--font-sans); color: var(--faint); text-align: center; }
.moments-lightbox-nav p { margin: 0; }
.values-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none;
  margin: 0; padding: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line-soft); }
.value-cell { min-width: 0; padding: 32px 24px; border-right: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft); text-align: left; }
.value-cell .value-keyword { max-width: none; margin: 0 0 14px; font-family: var(--font-label);
  font-size: 12px; font-weight: 500; line-height: 1.65; letter-spacing: .12em;
  text-transform: uppercase; color: var(--accent); }
.value-cell h3 { margin-bottom: 24px; font-size: 24px; font-weight: 500; line-height: 1.5; }
.value-cell .value-description { max-width: none; margin: 0; font-size: var(--fs-body); line-height: 1.8; color: var(--body); }
.values-english { max-width: none; margin-top: 24px; padding-top: 0; border-top: 0; }
.values-english summary { width: fit-content; min-height: 44px; padding-block: 10px; }
.values-english-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px var(--column-gap);
  list-style: none; margin: 0; padding: 0; }
.values-english-list li { min-width: 0; }
.values-english-list h4 { font-family: var(--font-sans); font-size: 14px; font-weight: 600; line-height: 1.65; color: var(--body); }
.values-english-list p { max-width: none; margin: 6px 0 0; }

/* Event listings and participation — the same eight type roles. */
.way:hover { background: var(--paper-hover); }
.events { display: flex; flex-direction: column; }
.event { display: grid; grid-template-columns: 80px minmax(0,1fr) 160px auto;
  gap: 24px; align-items: start; padding-block: 32px; border-top: 1px solid var(--line-soft);
  transition: padding-left .3s ease; }
.event:last-child { border-bottom: 1px solid var(--line-soft); }
.event .d { font-family: var(--font-sans); font-size: 26px; font-weight: 600; line-height: 1.5; color: var(--ink); }
.event .m { display: block; font-family: var(--font-label); font-size: var(--fs-caption); letter-spacing: .12em; color: var(--faint); }
.event .what h3 { font-size: 20px; line-height: 1.5; }
.event .what p { margin-top: 24px; }
.event .meta { font-size: var(--fs-caption); line-height: 1.8; color: var(--faint); }
.event .tag { display: inline-block; border: 1px solid var(--line-soft); padding: 4px 8px; margin-bottom: 8px; }
.event .cta { align-self: start; }
.support-head { display: flex; justify-content: space-between; align-items: start; gap: 32px; margin-bottom: 40px; }
.support-copy { min-width: 0; }
.support-intro { max-width: 42rem; margin: 24px 0 0; color: var(--body); }
.support-head > .link-quiet { flex-shrink: 0; }
.ways { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 24px; }
.way { grid-column: span 2; display: flex; flex-direction: column; min-width: 0; min-height: 280px;
  padding: 28px; border: 1px solid var(--line-soft);
  transition: background-color .3s ease, border-color .3s ease, transform .3s ease; }
@media (hover: hover) and (pointer: fine) {
  .event:hover { padding-left: .6rem; }
  .way:hover { border-color: var(--accent); transform: translateY(-3px); }
}
.way:nth-last-child(-n+2) { grid-column: span 3; }
.way-index { margin-bottom: 20px; font-family: var(--font-label); font-size: var(--fs-caption); color: var(--accent); letter-spacing: .1em; }
.way h3 { font-size: 24px; line-height: 1.45; }
.way p { max-width: none; margin: 24px 0 28px; font-size: var(--fs-body); line-height: 1.9; }
.way-action { display: inline-flex; gap: 8px; align-items: center; align-self: flex-start; margin-top: auto;
  font-family: var(--font-label); font-size: var(--fs-cta); font-weight: 500; color: var(--accent);
  text-decoration: underline; text-underline-offset: 5px; }

/* Footer */
footer.site { padding-block: 64px 32px; background: var(--footer); color: var(--footer-ink); }
.foot-grid { display: grid; grid-template-columns: minmax(0,2fr) repeat(3,minmax(0,1fr)); gap: 32px; }
.foot-brand, .foot-col { min-width: 0; }
footer.site .brand-logo { width: 144px; height: auto; filter: none; }
.footer-socials { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 8px; }
.footer-socials a, .footer-platform-info { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; min-height: 44px;
  padding-block: 8px; font-family: var(--font-sans); font-size: 14px; line-height: 1.8; }
.footer-platform { min-width: 64px; color: var(--footer-faint); font-size: 12px; }
.footer-account { color: var(--gold-link); overflow-wrap: anywhere; transition: color .2s ease; }
.footer-platform-info .footer-account { color: var(--footer-faint); }
.footer-socials a:hover .footer-account { color: #ffffff; text-decoration: underline; text-underline-offset: 4px; }
.foot-col h2 { margin-bottom: 24px; color: #ffffff; font-family: var(--font-label); font-size: 13px;
  font-weight: 600; line-height: 1.65; letter-spacing: .14em; text-transform: uppercase; }
.foot-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 12px; }
.foot-col a { display: block; padding-block: 4px; font-size: 15px; line-height: 1.65; color: var(--gold-link); }
.foot-col a:hover { color: #ffffff; }
.foot-col .cn { display: block; margin-top: 4px; font-family: var(--font-sans); font-size: 12px;
  line-height: 1.5; color: var(--footer-faint); }
.colophon { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px 32px;
  margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--line-soft); }
.colophon p { font-family: var(--font-sans); font-size: var(--fs-caption); color: var(--footer-faint); margin: 0; }
.colophon > a { font-family: var(--font-sans); font-size: 13px; color: var(--footer-faint); overflow-wrap: anywhere; }
.colophon > a:hover { color: #ffffff; text-decoration: underline; text-underline-offset: 4px; }

/* Original 0.8s / 18px reveal. Content stays visible until the shared observer is ready. */
.reveal { transition: opacity .8s ease, transform .8s ease, background-color .3s ease, border-color .3s ease, color .25s ease, padding-left .3s ease; }
.reveal.is-pending { opacity: 0; transform: translateY(18px); transition: none; }
.reveal.in { opacity: 1; transform: none; }
.reveal:focus-within { opacity: 1; transform: none; transition: none; }
@media (hover: hover) and (pointer: fine) {
  .way.reveal.in:hover { transform: translateY(-3px); }
}

/* Stack the long About copy before either desktop column becomes too narrow. */
@media (max-width: 1100px) {
  .about-story { background: #f6f3ea; }
  .about-story-inner { max-width: none; padding-inline: 0; grid-template-columns: minmax(0,1fr); }
  .story-who { padding: 48px var(--gutter); }
  .story-purposes { padding: 48px var(--gutter); }
}
/* Tablet: the same source and reading order, without duplicate content. */
@media (max-width: 900px) {
  :root { --column-gap: 32px; }
  .nav-toggle { display: inline-block; }
  nav.primary { display: none; }
  nav.primary.open { display: flex; position: absolute; inset: 100% 0 auto; flex-direction: column;
    align-items: start; gap: 24px; padding: 24px; background: var(--nav); border-top: 1px solid var(--nav-cn); }
  .series-row, .series-row.reverse { grid-template-columns: minmax(0,1fr); grid-template-areas: "heading" "tagline" "photo" "body";
    grid-template-rows: repeat(4,auto); }
  .series-row-photo { width: 100%; margin-bottom: 20px; }
  .series-row-body { max-width: none; }
  .ways { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .way, .way:nth-last-child(-n+2) { grid-column: auto; }
  .way:last-child { grid-column: 1 / -1; }
  .interest-category { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .program-overview-intro { margin-bottom: 32px; }
  .program-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .program-topic-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .values-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .program-summary:nth-child(2n) { border-right: 0; }
  .program-summary:nth-child(n+3) { padding-top: 28px; border-top: 1px solid var(--line-soft); }
  .event { grid-template-columns: 72px minmax(0,1fr) 120px; }
  .event .cta { grid-column: 2; }
  .foot-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .foot-brand { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .community-moments { margin-top: 24px; }
  .moments-gallery-track { gap: 10px; }
  .moment-link { height: clamp(152px,45vw,180px); }
  .moments-lightbox { padding: 12px; }
  .moments-lightbox figure img { height: 52dvh; }
  :root { --fs-display: 40px; --fs-section: 28px; --fs-heading: 28px;
    --fs-quote: 21px; --fs-lead: 17px; --space-section: 56px; --gutter: 24px; }
  section#events { padding-bottom: 40px; }
  section#support { padding-block: 40px; }
  #about { padding-bottom: 40px; }
  .about-story { margin-bottom: 40px; }
  .masthead { min-height: 72px; gap: 12px; }
  header.site .brand-logo { width: 64px; max-height: 44px; }
  .hero .eyebrow { justify-content: start; align-items: start; gap: 12px; }
  .hero .eyebrow .line { width: 24px; margin-top: 10px; }
  .hero .label { font-size: var(--fs-caption); letter-spacing: .18em; }
  .series-masthead { margin-bottom: 32px; }
  .series-masthead-title .en { letter-spacing: .24em; font-family: var(--font-label); font-style: normal; font-weight: 600; }
  .series-rows { gap: 16px; }
  .series-row { padding-block: 24px; }
  .series-row-meta { gap: 12px; }
  .series-row-tagline { margin-block: 20px 16px; }
  .series-row-index { letter-spacing: .12em; }
  .series-row-logo { width: 32px; height: 28px; }
  .series-row-photo, .series-row-photo.trim-watermark, .series-row-photo.conversation-photo { aspect-ratio: 3 / 2; }
  .programs-head { margin-bottom: 24px; }
  .program-grid { grid-template-columns: minmax(0,1fr); }
  .program-item { padding: 24px; }
  .program-item:nth-child(odd) { border-right: 0; }
  .program-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .program-item:last-child { border-bottom: 0; }
  .program-head { min-height: 128px; margin-bottom: 24px; }
  .program-number { font-size: clamp(52px,26cqi,112px); }
  .program-category { margin-bottom: 10px; letter-spacing: .1em; }
  .program-tagline { min-height: 0; }
  .program-logo { width: 24px; max-height: 24px; }
  .program-groups { margin-top: 48px; padding-top: 32px; }
  .interest-categories { margin-top: 32px; gap: 32px; }
  .interest-groups-list { grid-template-columns: minmax(0,1fr); }
  .about-program-overview { padding-bottom: 40px; }
  .about-community { padding-block: 40px 24px; }
  .about-values { padding-top: 24px; }
  .about-chapter-heading { grid-template-columns: 42px minmax(0,1fr); gap: 16px; margin-bottom: 24px; }
  .program-overview-intro, .community-text, .community-lead, .community-groups { padding-left: 0; }
  .community-lead { margin-bottom: 24px; }
  .program-summary-grid { grid-template-columns: minmax(0,1fr); }
  .program-summary, .program-summary:nth-child(n) { padding: 24px 0; border: 0; }
  .program-summary:nth-child(n+2) { padding-top: 24px; border-top: 1px solid var(--line-soft); }
  .program-summary h4 { font-size: 24px; }
  .program-summary-description { margin: 16px 0 20px; }
  .program-summary-count strong { font-size: 36px; }
  .program-group-head { margin-bottom: 16px; }
  .program-group-title { font-size: 14px; }
  .program-topic { padding: 16px 12px; }
  .program-topic h4 { font-size: 18px; }
  .program-topic h4 span { font-size: 13px; }
  .program-group-strip { gap: 16px; }
  .program-group-strip ul { flex-basis: 100%; }
  .desktop-title-period { display: none; }
  .story-who { padding-block: 40px; }
  .story-purposes { padding-block: 40px; }
  .story-who h2 { font-size: 30px; }
  .story-purpose { grid-template-columns: 42px minmax(0,1fr); gap: 16px; padding-block: 32px; }
  .story-number { padding-top: 22px; font-size: 48px; }
  .story-purpose h3, .chapter-heading-copy h2 { font-size: 26px; }
  .story-purpose h3 .en-title, .chapter-heading-copy h2 .en-title { font-size: 16px; }
  .story-kicker { font-size: 12px; }
  .stats-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .stat:nth-child(2) { border-right: 0; }
  .stat:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .ways { grid-template-columns: minmax(0,1fr); }
  .values-grid { grid-template-columns: minmax(0,1fr); }
  .value-cell { padding: 24px; }
  .values-english-list { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .sec-head { gap: 24px; margin-bottom: 32px; }
  .event { grid-template-columns: 56px minmax(0,1fr); gap: 16px; }
  .event .meta, .event .cta { grid-column: 2; }
  .support-head { flex-direction: column; gap: 16px; margin-bottom: 32px; }
  .support-intro { margin-top: 20px; }
  .way, .way:nth-last-child(-n+2), .way:last-child { grid-column: auto; min-height: 0; padding: 24px; }
  .way h3 { font-size: 22px; }
  .foot-grid { grid-template-columns: minmax(0,1fr); gap: 40px; }
  footer.site { padding-top: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
  .reveal.is-pending { opacity: 1; transform: none; }
  .registration-entry.reveal.is-pending { opacity: 1; transform: none; }
  .registration-entry:hover .registration-entry-arrow, .registration-entry:focus-visible .registration-entry-arrow { transform: none; }
  .arrow, a:hover > .arrow, .link-quiet:hover > .arrow, .way:hover, .way.reveal.in:hover, .program-item:hover .program-logo { transform: none; }
  .event:hover { padding-left: 0; }
}

/* Contact: editorial invitation, practical contact information and real objects. */
.contact-page .contact-masthead { padding-block: 64px 56px; text-align: center; }
.contact-masthead h1 { margin-inline: auto; }
.contact-masthead .page-title-en { margin-inline: auto; text-align: center; }
.contact-introduction { max-width: 42rem; margin: 28px auto 0; font-size: var(--fs-lead);
  line-height: var(--lh-lead); color: var(--body); text-align: center; }
.contact-section { padding-block: var(--space-section); border-top: 1px solid var(--line-soft); }
.contact-touch, .contact-objects { background: var(--paper-2); }
.contact-section-head { max-width: 48rem; margin-bottom: 40px; }
.contact-section-head h2 { margin-bottom: 24px; }
.contact-section-head > p:not(.contact-eyebrow) { color: var(--body); }
.contact-eyebrow { font-family: var(--font-label); font-size: var(--fs-eyebrow); font-weight: 600;
  letter-spacing: .15em; line-height: 1.65; color: var(--accent); margin-bottom: 20px; }
.contact-touch-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr);
  column-gap: var(--column-gap); align-items: start; }
.contact-touch-grid .contact-section-head { margin-bottom: 0; }
.contact-section-head .contact-donation-note { margin-top: 24px; font-size: var(--fs-body); line-height: 1.9; color: var(--faint); }
.contact-donation-note a { color: var(--accent); text-decoration: underline; text-underline-offset: 4px; }
.contact-location { font-family: var(--font-sans); font-size: var(--fs-lead-en); color: var(--faint); }
.contact-address { min-width: 0; padding-block: 24px; border-block: 1px solid var(--line-soft); }
.contact-field-label { font-family: var(--font-label); font-size: var(--fs-caption);
  letter-spacing: .12em; line-height: 1.65; color: var(--faint); margin-bottom: 20px; }
.contact-email { display: block; max-width: none; margin: 0; color: var(--accent);
  font-family: var(--font-sans); font-size: clamp(24px,3vw,34px); font-weight: 500;
  line-height: 1.6; overflow-wrap: anywhere; }
a.contact-email:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.contact-pending { color: var(--ink); font-family: var(--font-serif); font-weight: 400; }
.contact-email-controls { display: flex; flex-wrap: wrap; gap: 8px 24px; align-items: center; margin-top: 20px; }
.contact-note { margin: 20px 0 0; font-size: var(--fs-caption); line-height: 1.8; color: var(--faint); }
.contact-note:empty { display: none; }
.contact-page button:disabled { cursor: default; color: var(--faint); opacity: .8; }
.contact-socials { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.contact-english { font-family: var(--font-sans); font-size: var(--fs-lead-en); font-weight: 400;
  font-style: normal; line-height: 1.8; color: var(--faint); }
.contact-involvement .contact-note { margin: -16px 0 24px; }
.involvement-list { border-top: 1px solid var(--line-soft); }
.involvement-row { display: grid; grid-template-columns: 32px minmax(0,.85fr) minmax(0,1.15fr);
  gap: 24px; padding-block: 40px; border-bottom: 1px solid var(--line-soft); }
.involvement-number { font-family: var(--font-label); font-size: var(--fs-caption); color: var(--accent); padding-top: 5px; }
.involvement-title h3 { font-size: var(--fs-quote); font-weight: 500; line-height: 1.5; }
.involvement-title p { font-family: var(--font-en); font-size: 20px; font-style: italic;
  line-height: 1.5; margin-top: 10px; color: var(--faint); }
.involvement-copy { min-width: 0; }
.involvement-copy p { margin-bottom: 16px; }
.contact-action { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 0;
  border: 0; border-bottom: 1px solid currentColor; background: transparent; color: var(--accent);
  font-family: var(--font-label); font-size: var(--fs-cta); font-weight: 600; line-height: 1.65;
  letter-spacing: .02em; text-align: left; }
a.contact-action:hover { color: var(--ink); }
.objects-subtitle { margin-bottom: 12px; font-size: var(--fs-lead); }
.objects-film { width: 100%; margin: 48px 0 64px; padding-inline: clamp(20px,3vw,48px);
  background: #191b19; color: #e6e2d8; }
.objects-narrative { max-width: 44rem; margin-inline: auto; padding: 48px 24px; font-family: var(--font-serif);
  font-size: 16px; font-weight: 400; line-height: 2.1; color: inherit; }
.objects-narrative p { max-width: none; margin: 0; text-align: center; }
.objects-story-line { display: block; }
.objects-prologue p + p { margin-top: 16px; }
.objects-film-pause { display: block; margin-top: 24px; text-align: center; letter-spacing: .5em; }
.objects-origin-label { font-family: var(--font-label); font-size: var(--fs-caption); font-weight: 600;
  color: var(--accent); letter-spacing: .12em; line-height: 1.8; margin-bottom: 20px; }
/* Geometry is source-image metadata, supplied as custom properties by the page builder. */
.objects-poster-window { display: block; position: relative; overflow: hidden; border-radius: 0;
  aspect-ratio: 1280 / var(--poster-panel-height); background: var(--programs-bg); }
.objects-poster-window img { position: absolute; top: var(--poster-panel-top); left: 0;
  display: block; width: 100%; height: auto; max-width: none; }
.objects-scenes { display: flex; flex-direction: column; gap: 0; max-width: 900px; margin-inline: auto; }
.objects-scene { min-width: 0; margin: 0; }
.objects-scene-photo { display: block; }
.objects-scene-photo img { width: 100%; height: auto; }
/* Trim four source pixels from each side of the 1280px announcement photos. */
.objects-scene .objects-poster-window { aspect-ratio: 1272 / var(--poster-panel-height); background: #191b19; }
.objects-scene .objects-poster-window img { width: 100.628931%; left: -.314465%; }
.objects-scene figcaption { padding: 12px 20px; background: #101210; text-align: center; }
.objects-scene figcaption p { max-width: none; font-size: 13px; line-height: 1.8; color: #e6e2d8; margin: 0; }
.objects-details { max-width: 1040px; margin-inline: auto; }
.objects-detail-head { margin-bottom: 40px; }
.objects-detail-head .objects-origin-label { margin-bottom: 12px; }
.objects-detail-head h3 { font-size: var(--fs-heading); font-weight: 500; line-height: 1.5; }
.objects-gallery { display: grid; gap: 80px; }
.objects-product-group { display: grid; grid-template-columns: minmax(0,2.4fr) minmax(0,1fr);
  gap: clamp(24px,4vw,56px); align-items: start; }
.objects-product-group:nth-child(even) { grid-template-columns: minmax(0,1fr) minmax(0,2.4fr); }
.objects-product-group:nth-child(even) .objects-product-feature { grid-column: 2; grid-row: 1; }
.objects-product-group:nth-child(even) .objects-product-companions { grid-column: 1; grid-row: 1; }
.objects-product-feature, .objects-product-companions { min-width: 0; }
.objects-product-companions { display: grid; gap: 40px; padding-top: 56px; }
.object-story { margin: 0; min-width: 0; }
.object-photo { display: block; border: 0; border-radius: 0; background: var(--paper); }
.object-photo img { display: block; width: 100%; height: auto; border-radius: 0; }
.object-photo:focus-visible { outline-offset: 4px; }
.object-story figcaption { display: grid; grid-template-columns: 24px minmax(0,1fr); gap: 12px; margin-top: 20px; }
.object-index { font-family: var(--font-label); font-size: var(--fs-caption); color: var(--accent); padding-top: 3px; }
.object-story h3 { font-size: 20px; font-weight: 500; line-height: 1.5; margin-bottom: 8px; }
.object-story figcaption p { font-size: 14px; color: var(--faint); line-height: 1.8; margin: 0; }
.objects-availability { border-top: 1px solid var(--line-soft); padding-top: 32px; margin-top: 48px; }
.objects-availability p { max-width: none; margin-bottom: 8px; }
.objects-availability .link-quiet { margin-top: 16px; }
@media (max-width: 900px) {
  .contact-touch-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .involvement-row { grid-template-columns: 32px minmax(0,1fr); gap: 16px 24px; }
  .involvement-copy { grid-column: 2; }
  .objects-gallery { gap: 56px; }
  .objects-product-companions { padding-top: 40px; gap: 32px; }
}
@media (max-width: 620px) {
  .contact-page .contact-masthead { padding-block: 40px 32px; }
  .contact-section-head { margin-bottom: 32px; }
  .involvement-row { padding-block: 32px; grid-template-columns: 24px minmax(0,1fr); gap: 12px; }
  .involvement-title p { font-size: 18px; }
  .objects-film { margin-block: 32px 40px; }
  .objects-narrative { padding: 32px 12px; font-size: clamp(12px,3.25vw,16px); }
  .objects-scene figcaption { padding: 10px 12px; }
  .objects-scene figcaption p { font-size: 12px; }
  .objects-detail-head { margin-bottom: 32px; }
  .objects-gallery { gap: 48px; }
  .objects-product-group, .objects-product-group:nth-child(even) { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .objects-product-group:nth-child(even) .objects-product-feature,
  .objects-product-group:nth-child(even) .objects-product-companions { grid-column: auto; grid-row: auto; }
  .objects-product-companions { padding-top: 0; gap: 32px; }
}

/* Events catalogue and static detail pages — shared type and colour roles. */
.event-detail .detail-masthead { padding-block: 72px 56px; border-bottom: 1px solid var(--line-soft); background: var(--paper-2); }
.events-page .page-masthead { padding-block: 40px 24px; text-align: center; }
.events-page .page-masthead h1 { margin-inline: auto; }
.events-page .page-lead { margin: 16px auto 0; text-align: center; }
.events-page .catalog-brand-masthead { padding-block: 32px 20px; }
.catalog-brand { width: min(100%,34rem); margin-inline: auto; }
.catalog-brandmark { display: block; width: 100%; height: auto; filter: var(--calligraphy-filter); }
.catalog-brand-tagline { max-width: none; margin: 14px 0 0; font-family: var(--font-en);
  font-size: clamp(17px,2vw,24px); font-weight: 500; font-style: italic; line-height: 1.4; color: var(--ink); text-align: center; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.page-eyebrow { display: block; margin-bottom: 14px; font-family: var(--font-label);
  font-size: var(--fs-eyebrow); font-weight: 600; line-height: 1.65;
  letter-spacing: .26em; text-transform: uppercase; color: var(--faint); }
.page-masthead h1, .detail-masthead h1 { max-width: 18em; font-size: var(--fs-display);
  font-weight: 600; line-height: 1.2; letter-spacing: .03em; color: var(--ink); }
.page-title-en { display: block; font: italic 500 var(--fs-lead-en)/1.65 var(--font-en); color: var(--faint); margin-top: 10px; font-family: var(--font-en); font-weight: 500; font-style: italic; }
.page-short-rule { width: 64px; height: 1px; background: var(--line); margin-block: 28px; }
.page-lead { max-width: 36em; font-size: var(--fs-lead); font-weight: 500; line-height: 1.9; color: var(--lead); }
/* Magazine catalogue: original posters stay intact until covers are reviewed. */
.catalog-shell { padding-block: 16px 72px; }
.catalog-upcoming-entry { margin-bottom: 24px; --registration-font-size: .75rem;
  --registration-padding-block: .7rem; --registration-padding-inline: 1.2rem; }
.catalog-taxonomy { border-top: 1px solid var(--line-soft); margin-bottom: 24px; }
.catalog-filter-row { display: grid; grid-template-columns: 84px minmax(0,1fr); gap: 24px;
  padding-block: 14px; border-bottom: 1px solid var(--line-soft); }
.taxonomy-label { margin: 0; padding-top: 12px; font-family: var(--font-label); font-size: var(--fs-caption);
  font-weight: 500; line-height: 1.65; letter-spacing: .08em; color: var(--faint); }
.series-tabs, .topic-tabs { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 4px 28px; min-width: 0; margin: 0; padding: 0; }
.series-tab, .topic-tab { display: inline-flex; gap: 8px; align-items: baseline; min-height: 44px; padding: 10px 0 12px;
  border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent;
  font-family: var(--font-label); font-size: 16px; font-weight: 400; line-height: 1.65; color: var(--lead); }
.series-tab[aria-pressed="true"], .topic-tab[aria-pressed="true"] { color: var(--accent); border-bottom-color: var(--accent); font-weight: 600; }
.series-tab:hover, .topic-tab:hover { color: var(--accent); }
.series-tab .tab-count { font-family: var(--font-label); font-size: 13px; color: var(--faint); }
/* Compact topic filters; the bilingual exploration map lives in homepage chapter 04. */
.topic-explorer { min-width: 0; }
.catalog-result-bar, #result-count { scroll-margin-top: 112px; }
.series-introduction { text-align: center; margin-bottom: 24px; }
.series-introduction p { margin: 0 auto; font-size: var(--fs-body); color: var(--lead); text-align: center; }
.series-introduction .en { font-size: var(--fs-lead-en); color: var(--faint); margin-top: 8px; }
.catalog-tools { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 32px;
  align-items: end; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.catalog-search { display: flex; justify-content: space-between; gap: 24px; align-items: end; min-width: 0; }
.catalog-search label { flex: 1; min-width: 0; }
.control-label { display: block; font-size: var(--fs-caption); line-height: 1.65; color: var(--faint); margin-bottom: 8px; letter-spacing: .08em; font-family: var(--font-label); font-weight: 600; }
.catalog-tools input[type="search"], .catalog-tools select {
  width: 100%; min-width: 0; min-height: 44px; padding: 8px 0;
  background: transparent; color: var(--body); border: 0; border-bottom: 1px solid var(--line-soft); border-radius: 0;
  font-family: var(--font-sans); font-size: 16px;
}
.catalog-tools input::placeholder { color: var(--faint); }
.catalog-filter-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px 24px; }
.catalog-filter-grid.is-open { display: grid; }
.filter-toggle { display: none; justify-content: center; align-items: center; gap: 12px; min-height: 44px;
  padding: 8px 0 8px 16px; flex: 0 0 auto; border: 0; background: transparent; color: var(--accent); font-size: 15px; }
.filter-toggle span { transition: transform .25s ease; }
.filter-toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.filters-done { display: none; justify-self: end; grid-column: 1 / -1; }
.plain-control { min-height: 44px; padding: 4px 0; border: 0; background: transparent;
  font-size: 14px; color: var(--accent); text-decoration: underline; text-underline-offset: 4px; }
.catalog-result-bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px;
  min-height: 64px; padding-block: 16px; color: var(--faint); font-size: var(--fs-caption); }
.catalog-result-bar p { margin: 0; }
.active-filter-label { font-size: 14px; color: var(--accent); }
.catalog-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 40px 24px; }
.catalog-entry { min-width: 0; display: flex; flex-direction: column; background: var(--paper-2); text-align: center; }
.catalog-entry:nth-child(even) { background: var(--blush); }
.entry-poster { display: block; width: 100%; }
.entry-poster img { width: 100%; height: auto; border-radius: 0; }
.entry-body { display: flex; flex-direction: column; flex: 1; padding: 0 20px 28px; }
.entry-heading { min-width: 0; margin-bottom: 16px; }
.entry-series { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0;
  font-size: var(--fs-caption); line-height: 1.65; letter-spacing: .08em; font-family: var(--font-label); font-weight: 600; }
.entry-series > span { display: inline-flex; align-items: center; min-height: 36px; padding: 8px 12px;
  background: var(--accent); color: var(--paper); }
.entry-series .event-state { background: var(--paper); color: var(--accent); font-weight: 400; }
.entry-heading h3 { font-size: var(--fs-quote); line-height: 1.5; font-weight: 600; margin-block: 20px 14px; overflow-wrap: anywhere; }
.entry-heading h3 a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 5px; }
.entry-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: baseline; font-size: var(--fs-caption); color: var(--faint); line-height: 1.65; font-family: var(--font-label); }
.entry-meta time { font-family: var(--font-label); font-size: 16px; letter-spacing: .08em; }
.catalog-entry .entry-meta { flex-direction: column; align-items: center; gap: 6px; }
.entry-excerpt { width: 100%; max-width: var(--measure); font-size: var(--fs-body); line-height: 1.9; margin: 0 auto; color: var(--body);
  text-align: justify; text-align-last: left; text-justify: inter-ideograph;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.entry-tail { padding-top: 24px; margin-top: auto; text-align: center; }
.entry-tail .link-quiet { font-family: var(--font-label); }
.catalog-empty { padding-block: 72px; text-align: left; }
.catalog-empty h2 { font-size: var(--fs-quote); margin-bottom: 24px; }
.catalog-empty p { color: var(--lead); }
.catalog-pagination { margin-top: 40px; display: flex; justify-content: center; align-items: center; flex-wrap: wrap;
  gap: 12px; padding-top: 16px; }
.page-control { min-height: 44px; min-width: 44px; padding: 8px 12px; border: 1px solid var(--line-soft);
  background: transparent; color: var(--accent); font-family: var(--font-label); font-size: 16px; }
.page-control[aria-current="page"] { background: var(--accent); color: var(--paper); border-color: var(--accent); }
.page-control:disabled { opacity: .4; cursor: default; }
.pagination-label { font-size: var(--fs-caption); color: var(--faint); margin-inline: 8px; }
.catalog-footer a { font-size: 13px; color: var(--gold-link); text-decoration: underline; text-underline-offset: 4px; }
.detail-back { display: inline-flex; align-items: center; min-height: 44px; color: var(--accent); font-size: 14px;
  text-decoration: underline; text-underline-offset: 4px; margin-bottom: 24px; }
.detail-masthead .page-eyebrow { margin-bottom: 16px; }
.detail-masthead h1 { max-width: 16em; overflow-wrap: anywhere; }
.detail-subtitle { max-width: 36em; margin-top: 24px; font-size: var(--fs-lead); color: var(--lead); }
.detail-meta { display: flex; flex-wrap: wrap; gap: 16px 32px; margin-top: 32px; font-size: 16px; color: var(--lead); }
.detail-meta time { font-family: var(--font-label); font-size: 20px; color: var(--accent); }
.detail-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 64px; align-items: start; padding-block: 64px; }
.detail-reading { min-width: 0; }
.detail-reading section { margin-bottom: 56px; }
.detail-reading h2, .detail-related h2 { font-size: var(--fs-quote); color: var(--ink); margin-bottom: 32px; }
.detail-reading p { max-width: var(--measure); font-size: 16px; line-height: 2; }
.detail-aside { min-width: 0; }
.detail-poster img { width: 100%; height: auto; border-radius: 0; }
.poster-caption { font-size: var(--fs-caption); color: var(--faint); margin-top: 12px; font-family: var(--font-label); }
.detail-facts { display: grid; grid-template-columns: 1fr; margin: 32px 0; padding-top: 24px; border-top: 1px solid var(--line-soft); }
.detail-facts dt { font-size: var(--fs-caption); color: var(--faint); margin-bottom: 6px; font-family: var(--font-label); font-weight: 600; }
.detail-facts dd { margin: 0 0 24px; font-size: 15px; line-height: 1.9; overflow-wrap: anywhere; }
.detail-source { margin-top: 30px; }
.detail-source-note { font-size: 14px; color: var(--lead); }
.original-info { border-block: 1px solid var(--line-soft); padding-block: 24px; margin-top: 40px; }
.original-info summary { cursor: pointer; font-size: 15px; color: var(--accent); }
.original-info .original-body { padding-top: 32px; }
.original-info p { font-size: 15px; line-height: 1.9; color: var(--lead); }
.detail-review-note { font-size: 14px; color: var(--lead); border-left: 2px solid var(--quote-line); padding-left: 16px; margin-bottom: 32px; }
.detail-related { padding-block: 56px; border-top: 1px solid var(--line-soft); }
.related-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.related-item { display: flex; flex-direction: column; align-items: start; padding-top: 24px; border-top: 1px solid var(--line); }
.related-item .entry-meta { margin-bottom: 16px; }
.related-item h3 { font-size: 20px; line-height: 1.65; }
.related-item .link-quiet { margin-top: 24px; }
[hidden] { display: none !important; }
@media (min-width:621px) and (max-width:1099px) {
  .catalog-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .detail-layout { grid-template-columns: minmax(0,1fr) 240px; gap: 32px; }
  .related-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width:620px) {
  .event-detail .detail-masthead { padding-block: 40px; }
  .events-page .page-masthead { padding-block: 32px 16px; }
  .events-page .catalog-brand-masthead { padding-block: 24px 16px; }
  .page-masthead h1, .detail-masthead h1 { font-size: var(--fs-display); font-weight: 600; }
  .page-eyebrow { letter-spacing: .18em; font-family: var(--font-label); font-weight: 600; }
  .catalog-shell { padding-block: 8px 56px; }
  .catalog-filter-row { grid-template-columns: minmax(0,1fr); gap: 8px; padding-block: 12px; }
  .taxonomy-label { padding-top: 0; }
  .series-tabs { flex-wrap: nowrap; gap: 0 20px; overflow-x: auto; overscroll-behavior-x: contain; }
  .topic-tabs { gap: 0 20px; }
  .series-tab { flex-shrink: 0; white-space: nowrap; }
  .series-tab, .topic-tab { font-size: 15px; padding-block: 8px 10px; font-family: var(--font-label); }
  .series-tab .tab-count { font-size: 12px; font-family: var(--font-label); }
  .series-introduction { margin-bottom: 16px; }
  .catalog-tools { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .catalog-search { gap: 16px; align-items: center; }
  .catalog-search label { flex: 1; }
  .catalog-search input { font-size: 16px; }
  .catalog-filter-grid { display: none; grid-template-columns: minmax(0,1fr); gap: 16px; }
  .catalog-filter-grid.is-open { display: grid; }
  .filter-toggle { display: inline-flex; }
  .filters-done { display: block; }
  .catalog-grid { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .entry-body { padding-inline: 24px; }
  .entry-heading h3 { font-size: 26px; font-weight: 600; }
  .catalog-pagination { gap: 8px; }
  .detail-layout { grid-template-columns: minmax(0,1fr); padding-block: 40px; gap: 40px; }
  .detail-aside { order: -1; display: grid; grid-template-columns: 104px minmax(0,1fr); gap: 16px 24px; }
  .detail-aside .poster-caption { grid-column: 1; }
  .detail-aside .detail-facts { grid-column: 2; grid-row: 1 / span 2; margin: 0; padding: 0; border: 0; }
  .detail-facts dd { margin-bottom: 16px; font-size: 14px; }
  .detail-meta { gap: 8px 20px; margin-top: 24px; font-size: 15px; }
  .detail-reading section { margin-bottom: 40px; }
  .detail-reading h2 { margin-bottom: 24px; }
  .detail-related { padding-block: 40px; }
}
.site-controls { display: flex; gap: 10px; align-items: center; }
.detail-reading p { overflow-wrap: break-word; }

/* Local cover review uses the same cards; no catalogue cover is replaced here. */
.cover-options { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 24px;
  padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.cover-options fieldset { border: 0; margin: 0; padding: 0; display: flex; gap: 12px; }
.cover-options legend { font-size: var(--fs-caption); color: var(--faint); margin-bottom: 10px; }
.cover-options button { min-height: 44px; padding: 8px 16px; border: 1px solid var(--line-soft);
  background: transparent; color: var(--accent); font-size: 15px; font-family: var(--font-label); }
.cover-options button[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--paper); }
.cover-mode-description { font-size: var(--fs-caption); color: var(--faint); margin: 20px 0 24px; }
.cover-review-note { max-width: 50em; margin: 40px auto 0; font-size: 14px; color: var(--lead); }
@media (min-width:1100px) {
  .cover-review[data-preview-columns="4"] .catalog-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width:1099px) {
  .cover-options .column-options { display: none; }
}


/* English pages: preserve every grid, size, spacing and breakpoint.
 * English phrases wrap at words; long supporting copy uses the reading face. */
html[lang="en"] body { word-spacing: normal; }
html[lang="en"] :is(.series-row-name, .series-masthead-copy .en, .program-summary-count) { white-space: normal; }
html[lang="en"] :is(.series-row-description, .series-masthead-copy p, .story-who-lead,
  .story-purpose-copy, .program-overview-intro, .community-text, .support-intro, .way p,
  .program-description p, .interest-lead, .interest-group p, .involvement-copy p,
  .contact-section-head > p, .detail-reading p, .entry-excerpt) {
  text-align: left; letter-spacing: normal; }
html[lang="en"] :is(.series-masthead-copy .en, .en-copy p) {
  font-family: var(--font-sans); font-style: normal; }
html[lang="en"] .program-summary-count { flex-wrap: wrap; }
html[lang="en"] :is(h1, h2, h3, h4) { hyphens: auto; overflow-wrap: anywhere; }
html[lang="en"] :is(.registration-entry-label, .program-group-strip a) { overflow-wrap: anywhere; }
html[lang="en"] .program-tagline { white-space: normal; }
html[lang="en"] .program-keyword { overflow-wrap: anywhere; max-width: 100%; }