.person-page { min-height: 100vh; }
.person-header .brand { color: inherit; }
.person-header .back-home { justify-self: end; color: var(--red); font-weight: 700; text-decoration: none; }
.breadcrumb { padding: 24px clamp(22px, 5vw, 76px); border-bottom: 1px solid var(--line); color: #6b655b; font-size: .82rem; }
.breadcrumb a { text-decoration: none; }
.breadcrumb a:hover { color: var(--red); }
.person-hero { min-height: 680px; display: grid; grid-template-columns: minmax(320px, .78fr) 1.22fr; border-bottom: 1px solid var(--line); }
.person-photo { position: relative; min-height: 680px; overflow: hidden; background: var(--red); }
.person-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(35,8,7,.88)); }
.person-photo img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: center 20%; filter: saturate(.96) contrast(1.03); }
.person-photo img.is-deceased { filter: grayscale(1) contrast(1.05); }
.person-number { position: absolute; z-index: 2; left: clamp(22px, 5vw, 56px); bottom: 36px; color: #efd69d; font-family: var(--serif); letter-spacing: .12em; }
.person-intro { padding: clamp(62px, 8vw, 116px) clamp(28px, 8vw, 120px); display: flex; flex-direction: column; justify-content: center; }
.person-intro .eyebrow a { color: inherit; text-underline-offset: 4px; }
.person-intro h1 { margin: 8px 0 12px; color: var(--red); font-size: clamp(4rem, 9vw, 8rem); }
.person-role { margin: 0; color: #696258; font-size: 1rem; }
.person-memory { max-width: 820px; margin: 48px 0 0; padding: 28px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: clamp(1.45rem, 2.5vw, 2.3rem); line-height: 1.7; }
.person-story { display: grid; grid-template-columns: .65fr 1.35fr; gap: clamp(44px, 8vw, 120px); padding: 100px clamp(22px, 8vw, 130px); }
.person-story h2 { margin: 0; color: var(--red); font-size: clamp(2.3rem, 4.5vw, 4.6rem); line-height: 1.15; }
.person-story-copy { max-width: 800px; }
.person-story-copy p { margin: 0; color: #4f4a42; font-size: 1.12rem; line-height: 2; }
.facts-section, .contributions-section, .timeline-detail, .story-detail, .faq-section, .memory-section, .related-section, .sources-section { padding: 90px clamp(22px, 8vw, 130px); border-top: 1px solid var(--line); }
.facts-section h2, .contributions-section h2, .timeline-detail h2, .story-detail h2, .faq-section h2, .memory-section h2, .related-section h2, .sources-section h2 { max-width: 920px; margin: 8px 0 42px; color: var(--red); font-size: clamp(2rem, 4vw, 4rem); line-height: 1.2; }
.facts-section ul { display: grid; grid-template-columns: repeat(3, 1fr); padding: 0; margin: 0; list-style: none; border-top: 1px solid var(--line); }
.facts-section li { padding: 30px 30px 30px 0; border-right: 1px solid var(--line); font-family: var(--serif); font-size: 1.25rem; }
.facts-section li + li { padding-left: 30px; }
.lifespan, .gentle-note, .review-note { margin-top: 30px; color: #716a60; font-size: .82rem; }
.contribution-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.contribution-grid article { padding: 32px 34px 10px 0; }
.contribution-grid article + article { padding-left: 34px; border-left: 1px solid var(--line); }
.contribution-grid span { color: var(--red); font-family: var(--serif); }
.contribution-grid h3 { margin: 28px 0 12px; font-family: var(--serif); font-size: 1.5rem; }
.contribution-grid p, .story-detail > div > p, .memory-section > p { color: #514c43; line-height: 1.95; }
.timeline-detail { color: var(--paper); background: var(--ink); }
.timeline-detail .eyebrow, .timeline-detail h2 { color: #e2bb72; }
.timeline-detail ol { display: grid; grid-template-columns: repeat(4, 1fr); padding: 0; margin: 60px 0 0; list-style: none; }
.timeline-detail li { min-height: 180px; padding: 26px; border-top: 1px solid #736650; border-right: 1px solid #4d483f; }
.timeline-detail time { color: #e2bb72; font-family: var(--serif); font-size: 1.35rem; }
.timeline-detail li p { color: #c4bbac; line-height: 1.75; }
.story-detail { display: grid; grid-template-columns: .7fr 1.3fr; gap: clamp(40px, 8vw, 120px); }
.story-detail aside { margin-top: 36px; padding: 28px; color: #4f2b24; background: #ead7ae; }
.story-detail aside p { margin-bottom: 0; line-height: 1.8; }
.faq-section details { max-width: 940px; border-top: 1px solid var(--line); }
.faq-section details:last-child { border-bottom: 1px solid var(--line); }
.faq-section summary { padding: 24px 0; cursor: pointer; font-family: var(--serif); font-size: 1.16rem; }
.faq-section details p { margin: 0 0 24px; color: #514c43; line-height: 1.8; }
.memory-section { background: #e9e2d4; }
.memory-section > p { max-width: 800px; }
.related-section > div { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.related-section > div a { padding: 28px 28px 28px 0; color: inherit; text-decoration: none; display: flex; flex-direction: column; }
.related-section > div a + a { padding-left: 28px; border-left: 1px solid var(--line); }
.related-section strong { font-family: var(--serif); font-size: 1.5rem; }
.related-section span { margin-top: 8px; color: #716a60; font-size: .82rem; }
.field-more { display: inline-block; margin-top: 34px; color: var(--red); font-weight: 800; }
.sources-section { background: #e9e2d4; }
.sources-section ul { max-width: 940px; margin: 0; padding: 0; list-style: none; border-top: 1px solid #c9beaa; }
.sources-section li { display: grid; grid-template-columns: .35fr .65fr; gap: 30px; padding: 20px 0; border-bottom: 1px solid #c9beaa; }
.sources-section li span { color: #716a60; }
.sources-section a { color: var(--red); font-weight: 700; }
.source-card { margin-top: 42px; padding: 24px 0; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 24px; align-items: center; }
.source-card span { color: #746d63; font-size: .8rem; }
.source-card a { color: var(--red); font-weight: 800; }
.person-pagination { display: grid; grid-template-columns: 1fr 1fr; background: var(--ink); color: var(--paper); }
.person-pagination a { min-height: 160px; padding: 38px clamp(22px, 5vw, 76px); display: flex; flex-direction: column; justify-content: center; text-decoration: none; border-right: 1px solid #4f493f; }
.person-pagination a:last-child { align-items: flex-end; border-right: 0; text-align: right; }
.person-pagination small { color: #c9a75f; margin-bottom: 8px; }
.person-pagination strong { font-family: var(--serif); font-size: 1.55rem; }
.person-pagination a:hover strong { color: #efd69d; }
@media (max-width: 820px) {
  .person-header { grid-template-columns: 1fr auto; }
  .person-hero { grid-template-columns: 1fr; }
  .person-photo { min-height: 470px; }
  .person-intro { padding: 60px 22px 72px; }
  .person-memory { margin-top: 34px; }
  .person-story { grid-template-columns: 1fr; padding: 76px 22px; }
  .facts-section, .contributions-section, .timeline-detail, .story-detail, .faq-section, .memory-section, .related-section, .sources-section { padding: 70px 22px; }
  .facts-section ul, .contribution-grid, .related-section > div { grid-template-columns: 1fr; }
  .facts-section li, .facts-section li + li, .contribution-grid article, .contribution-grid article + article, .related-section > div a, .related-section > div a + a { padding: 24px 0; border-left: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .timeline-detail ol { grid-template-columns: repeat(2, 1fr); }
  .story-detail { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .person-header .back-home { font-size: .82rem; }
  .source-card { align-items: flex-start; flex-direction: column; }
  .person-pagination { grid-template-columns: 1fr; }
  .person-pagination a { min-height: 130px; border-right: 0; border-bottom: 1px solid #4f493f; }
  .timeline-detail ol { grid-template-columns: 1fr; }
  .sources-section li { grid-template-columns: 1fr; gap: 8px; }
}
