/* Shared editorial system: typography, frames, rules and responsive composition. */
:root { --shell:1280px; --paper:#faf8f2; --line:#d6d9ce; --radius-photo:6px; }
body { background:var(--paper); }
.masthead { background:var(--paper); color:var(--green); border-bottom:1px solid var(--line); }
.masthead a,.masthead .wordmark strong,.masthead .wordmark small,.menu-toggle { color:var(--green); }
.masthead .search-link { border-color:var(--line); }
.masthead :focus-visible { outline-color:var(--blue); }
.menu-toggle { border-color:#8b9b8a; background:transparent; }
.cover-opening { padding-top:22px; padding-bottom:48px; }
.cover-kicker { display:flex; align-items:center; justify-content:space-between; font-size:.75rem; text-transform:uppercase; letter-spacing:.14em; border-bottom:1px solid var(--line); padding-bottom:9px; }
.cover-kicker a { text-decoration:none; color:var(--green); min-height:32px; display:flex; align-items:center; gap:20px; }
.cover-opening h1 { font-size:clamp(4rem,10.1vw,10rem); color:var(--green); white-space:nowrap; letter-spacing:-.035em; line-height:1.08; padding-block:10px 18px; text-wrap:nowrap; }
.cover-opening h1 em { font-weight:400; }
.cover-stage { display:grid; grid-template-columns:.72fr 1.85fr; gap:48px; align-items:center; }
.cover-copy { padding-block:20px; }
.cover-copy h2 { font-size:clamp(2.5rem,3.2vw,3.2rem); margin:10px 0 18px; }
.cover-copy p:not(.eyebrow) { font-size:1.12rem; max-width:30ch; }
.cover-actions { display:flex; flex-direction:column; align-items:start; gap:9px; margin-top:24px; }
.cover-stage .documentary-photo .image-frame { aspect-ratio:1.95; border-radius:6px 6px 6px 60px; }
.cover-stage .documentary-photo img { object-position:50% 36%; }
.cover-stage figcaption { font-size:.75rem; padding-top:9px; }
.kenema-feature { background:var(--green); color:var(--paper); padding-block:60px; border:0; }
.kenema-feature-grid { grid-template-columns:.8fr 1.35fr; gap:60px; }
.kenema-feature-grid h2 { color:var(--paper); font-size:clamp(2.7rem,4.8vw,4.7rem); }
.kenema-feature .eyebrow,.kenema-feature figcaption { color:#d0ded0; }
.kenema-feature .text-link { color:#d9eaff; margin-top:14px; }
.kenema-feature .image-frame { aspect-ratio:1.62; border-radius:6px; }
.kenema-feature p:not(.eyebrow) { font-size:1.05rem; max-width:34ch; margin-top:20px; }
.section-head { border-top:1px solid var(--line); padding-top:22px; }
.section-head h2 { font-size:clamp(2.8rem,4.8vw,4.75rem); }
.portfolio-grid { counter-reset:initiative; gap:32px; align-items:start; }
.portfolio-grid .work-card { background:transparent; border:0; border-radius:0; counter-increment:initiative; }
.portfolio-grid .work-copy { padding:20px 0 0; border-top:1px solid var(--line); margin-top:20px; }
.portfolio-grid .work-image { border-radius:6px; aspect-ratio:1.2; }
.portfolio-grid .work-image img { height:100%; object-fit:cover; }
.portfolio-grid .work-copy .eyebrow:before { content:'0' counter(initiative) ' / '; color:var(--blue); }
.portfolio-grid .work-card:nth-child(2) { margin-top:70px; }
.portfolio-grid .work-card:nth-child(3) { margin-top:140px; }
.story-card { border-radius:0; }
.story-photo { border-radius:6px; }
.button { gap:24px; }
.button,.text-link { transition:background-color 180ms,color 180ms; }
.text-link .arrow { transition:transform 220ms; }
.text-link:hover .arrow { transform:translateX(5px); }
:is(.gallery-image,.photo-card-link):focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
 .photo-card-link:hover img,.gallery-image:hover img { transform:scale(1.045); }
 .photo-card-link img,.gallery-image img { transition:transform 650ms cubic-bezier(.2,.75,.25,1); }
}
/* Biography: a portrait plate with a generous, legible profile beside it. */
.portrait-opening { background:var(--paper); border-bottom:1px solid var(--line); }
.portrait-grid { grid-template-columns:.8fr 1.2fr; gap:70px; padding-block:36px 48px; }
.portrait-photo .image-frame { aspect-ratio:.92; border-radius:160px 160px 6px 6px; }
.portrait-photo img { object-position:50% 20%; }
.portrait-grid h1 { font-size:clamp(3.6rem,6.6vw,6.6rem); line-height:.98; }
.portrait-introduction { margin-top:22px; }
.bio-highlights { border-block:1px solid var(--line); background:transparent; }
.prose h2 { color:var(--green); }
/* Reports read as feature articles, with a photo below the title and short opening. */
.report-opening { background:transparent; border-radius:0; border-bottom:1px solid var(--line); padding:22px 0 30px; grid-template-columns:.85fr 1.15fr; gap:45px; }
.report-opening h1 { font-size:clamp(2.7rem,4.5vw,4.7rem); }
.report-lead-photo .gallery-image { aspect-ratio:1.23; }
.report-dates { font-size:.82rem; }
.report-reading { max-width:65ch; }
.report-reading .report-lede { font-size:1.35rem; }
.report-reading h2 { font-size:clamp(2rem,3.2vw,3rem); }
.article-gallery { border-top:1px solid var(--line); padding-top:30px; }
.article-gallery .gallery-grid { gap:24px; }
/* Initiative introductions: headline -> context beside one photograph -> chapters. */
.editorial-initiative { display:grid; grid-template-columns:1fr 1.6fr; column-gap:50px; }
.editorial-initiative .initiative-title { grid-column:1/-1; margin-bottom:24px; }
.editorial-initiative h1 { font-size:clamp(3.1rem,7.3vw,7rem); max-width:22ch; }
.editorial-initiative .detail-photo { grid-column:2; grid-row:2; }
.editorial-initiative .detail-photo .image-frame { aspect-ratio:1.55; }
.editorial-initiative .initiative-deck { grid-column:1; grid-row:2; display:block; align-self:center; padding:0; font-size:1.25rem; }
.editorial-initiative .initiative-deck .text-link { margin-top:18px; }
.chapter-nav { border-block:1px solid var(--line); }
.initiative-chapter { padding-block:30px; }
.initiative-story-link { border-radius:6px; }
/* News and Social: a journal, rather than a wall of equal cards. */
.newsroom-opening { display:flex; align-items:end; justify-content:space-between; gap:30px; border-bottom:1px solid var(--line); margin-bottom:24px; }
.newsroom-opening h1,.social-intro h1 { font-size:clamp(3.5rem,8vw,7rem); }
.newsroom-opening .newsroom-nav { border:0; }
.news-lead { background:transparent; border-radius:0; gap:40px; }
.news-lead .work-copy { padding:0; }
.news-lead-photo { border-radius:6px; overflow:hidden; }
.filter-group button { border-radius:999px; padding-inline:18px; }
.social-layout { display:flex; flex-direction:column; }
.social-sidebar { width:100%; background:transparent; border-block:1px solid var(--line); padding:20px 0; }
.social-sidebar h2 { font-size:2rem; }
.social-feed { width:100%; }
.documentary-post { display:grid; grid-template-columns:1.25fr .85fr; gap:20px 50px; align-items:start; }
.documentary-post .social-lead-photo { grid-column:1; grid-row:1 / span 2; }
.documentary-post .documentary-post-copy { grid-column:2; grid-row:1; }
.documentary-post .social-details { grid-column:2; grid-row:2; }
.social-lead-photo .gallery-image { aspect-ratio:1.05; }
.documentary-post:nth-child(even) { grid-template-columns:.85fr 1.25fr; }
.documentary-post:nth-child(even) .social-lead-photo { grid-column:2; }
.documentary-post:nth-child(even) .documentary-post-copy,.documentary-post:nth-child(even) .social-details { grid-column:1; }
.documentary-post-copy h2 { font-size:clamp(2.3rem,3.4vw,3.5rem); }
.page-intro:not(.initiative-hero) { border-bottom:1px solid var(--line); margin-bottom:25px; }
.contact-panel,.contact-aside { padding-top:30px; }
.site-footer { border-top:4px solid #719e83; }
/* Alternate concept: an atlas cover, large portrait, national colour edge. */
.concept-atlas .cover-opening { width:100%; max-width:none; padding:30px max(5vw,24px) 40px; background:#123d2a; color:#faf8f2; display:grid; grid-template-columns:.9fr 1.1fr; column-gap:40px; position:relative; }
.concept-atlas .cover-kicker { grid-column:1/-1; border-color:#628470; margin-bottom:24px; }
.concept-atlas .cover-kicker a { color:#fff; }
.concept-atlas .cover-opening h1 { color:#faf8f2; white-space:normal; font-size:clamp(4.7rem,8.7vw,8.5rem); line-height:.95; align-self:end; padding:0; }
.concept-atlas .cover-opening h1 em { display:block; }
.concept-atlas .cover-stage { display:contents; }
.concept-atlas .cover-copy { grid-column:1; padding-right:25px; }
.concept-atlas .cover-copy .eyebrow { color:#c8dbc9; }
.concept-atlas .cover-copy h2 { font:600 1.25rem/1.3 var(--sans); margin-block:7px 12px; }
.concept-atlas .cover-actions { flex-direction:row; flex-wrap:wrap; gap:12px; }
.concept-atlas .cover-actions .button { background:#faf8f2; color:#123d2a; }
.concept-atlas .cover-actions .text-link { color:#c7e4fa; }
.concept-atlas .documentary-photo { grid-column:2; grid-row:2 / span 2; }
.concept-atlas .cover-stage .image-frame { aspect-ratio:.95; border-radius:180px 180px 6px 6px; border-bottom:8px solid #77a0bd; }
.concept-atlas .documentary-photo img { object-position:57% 30%; }
.concept-atlas .documentary-photo figcaption { color:#d9e3da; }
.concept-atlas .kenema-feature { background:#e8ece2; color:var(--ink); }
.concept-atlas .kenema-feature h2,.concept-atlas .kenema-feature .eyebrow { color:var(--green); }
.concept-atlas .kenema-feature .text-link { color:var(--blue); }
.concept-atlas .kenema-feature figcaption { color:var(--muted); }
@media(max-width:1000px) {
 .cover-stage { gap:26px; grid-template-columns:.8fr 1.4fr; }
 .cover-copy h2 { font-size:2.5rem; }
 .cover-stage .documentary-photo .image-frame { aspect-ratio:1.45; }
 .newsroom-opening { display:block; }
 .portrait-grid { gap:32px; }
 .documentary-post { gap:24px; }
}
@media(max-width:860px) { .primary-nav { background:var(--paper); border-bottom:1px solid var(--line); } .primary-nav a { color:var(--green); } }
@media(max-width:760px) {
 .shell { width:calc(100% - 36px); }
 .cover-opening { padding-top:12px; padding-bottom:28px; }
 .cover-kicker { font-size:.62rem; letter-spacing:.1em; gap:8px; }
 .cover-kicker a { gap:5px; }
 .cover-opening h1 { font-size:clamp(3.3rem,15.5vw,6rem); white-space:normal; line-height:.96; padding-block:16px 20px; }
 .cover-opening h1 em { display:block; margin-left:14%; }
 .cover-stage { display:flex; flex-direction:column-reverse; align-items:stretch; gap:12px; }
 .cover-stage .documentary-photo .image-frame { aspect-ratio:1.5; border-radius:6px 6px 6px 35px; }
 .cover-stage figcaption { font-size:.68rem; }
 .cover-copy { padding:0; }
 .cover-copy h2 { font:650 1.25rem/1.3 var(--sans); margin:3px 0 6px; }
 .cover-copy .eyebrow { font-size:.65rem; }
 .cover-copy p:not(.eyebrow) { font-size:1rem; max-width:40ch; line-height:1.45; }
 .cover-actions { margin-top:14px; flex-direction:row; flex-wrap:wrap; gap:4px 16px; align-items:center; }
 .cover-actions a { font-size:.91rem; }
 .cover-actions .button { padding-inline:12px; gap:12px; }
 .kenema-feature { padding-block:30px; }
 .kenema-feature-grid { display:flex; flex-direction:column-reverse; align-items:stretch; gap:24px; }
 .kenema-feature-grid h2 { font-size:2.9rem; max-width:100%; }
 .kenema-feature p:not(.eyebrow) { margin-top:12px; }
 .kenema-feature .image-frame { aspect-ratio:1.4; }
 .portfolio-grid { gap:34px; }
 .portfolio-grid .work-card:nth-child(n) { margin:0; }
 .portfolio-grid .work-image { aspect-ratio:1.5; }
 .portfolio-grid .work-copy { margin-top:12px; padding-top:12px; }
 .section { padding-block:38px; }
 .portrait-grid { display:flex; flex-direction:column; gap:24px; padding-block:24px 30px; }
 .portrait-photo { width:100%; }
 .portrait-photo .image-frame { aspect-ratio:1.1; border-radius:130px 130px 6px 6px; }
 .portrait-grid h1 { font-size:3.35rem; }
 .portrait-introduction { margin-top:12px; }
 .report-opening { display:flex; flex-direction:column; padding-top:12px; gap:22px; }
 .report-opening h1 { font-size:2.8rem; }
 .report-lead-photo { width:100%; }
 .report-lead-photo .gallery-image { aspect-ratio:1.35; }
 .report-reading .report-lede { font-size:1.2rem; }
 .editorial-initiative { display:flex; flex-direction:column; gap:18px; }
 .editorial-initiative .initiative-title { margin:0; }
 .editorial-initiative h1 { font-size:3.1rem; }
 .editorial-initiative .initiative-deck { font-size:1.12rem; }
 .editorial-initiative .detail-photo { order:2; }
 .editorial-initiative .initiative-deck { order:1; }
 .editorial-initiative .detail-photo .image-frame { aspect-ratio:1.4; }
 .news-lead { gap:20px; }
 .newsroom-opening { margin-bottom:20px; }
 .newsroom-opening h1,.social-intro h1 { font-size:3.6rem; }
 .documentary-post,.documentary-post:nth-child(even) { display:flex; flex-direction:column; gap:16px; }
 .documentary-post > * { width:100%; }
 .documentary-post-copy h2 { font-size:2.55rem; }
 .social-lead-photo .gallery-image { aspect-ratio:1.3; }
 .social-layout { gap:28px; }
 .social-sidebar { padding:14px 0; }
 .concept-atlas .cover-opening { display:flex; flex-direction:column; padding:18px; }
 .concept-atlas .cover-kicker { margin-bottom:12px; }
 .concept-atlas .cover-opening h1 { font-size:3.9rem; align-self:stretch; margin-bottom:22px; }
 .concept-atlas .cover-opening h1 em { margin:0; }
 .concept-atlas .cover-stage { display:flex; }
 .concept-atlas .cover-stage .image-frame { aspect-ratio:1.4; border-radius:100px 100px 6px 6px; }
 .concept-atlas .cover-copy { padding:0; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
 .photo-card-link img,.gallery-image img,.text-link .arrow { transform:none!important; }
}
@media(max-width:860px) {
 .masthead .menu-toggle:not([hidden]) + .primary-nav { background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 12px 20px #172b2612; }
}
#in-focus { scroll-margin-top:65px; }
@media(min-width:761px) { .section { padding-block:72px; } }
.news-lead { border:0; }
/* Editorial Cover, second movement: connected details and photographic motion. */
:root { --ease-editorial:cubic-bezier(.16,1,.3,1); }
.cover-opening h1 em { display:inline-block; }
.cover-kicker { border-bottom-color:#bdcbbd; }
.cover-copy h2 { letter-spacing:-.025em; }
.cover-copy .eyebrow,.section-head .eyebrow { color:#456c56; letter-spacing:.14em; }
.cover-stage { gap:clamp(28px,4vw,58px); }
.cover-actions { gap:12px; }
.button { position:relative; isolation:isolate; overflow:hidden; border-radius:7px; min-height:52px; padding:9px 12px 9px 18px; gap:20px; box-shadow:0 2px 0 #123d2a0a; transition:background-color 220ms,box-shadow 220ms,translate 220ms; }
.button > span[aria-hidden] { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; flex:0 0 30px; border-radius:50%; background:#ffffff1a; transition:transform 360ms var(--ease-editorial),background-color 220ms; }
.button.outline > span[aria-hidden],.button.light > span[aria-hidden] { background:#123d2a0d; }
.button::before { content:''; position:absolute; z-index:-1; inset:0; background:#ffffff0d; transform:translateX(-102%); transition:transform 450ms var(--ease-editorial); }
.button:hover::before,.button:focus-visible::before { transform:translateX(0); }
.button:hover > span[aria-hidden],.button:focus-visible > span[aria-hidden] { transform:rotate(-35deg); background:#ffffff2b; }
.button:active { translate:0 1px; box-shadow:none; }
.text-link { text-decoration:none; }
.text-link:hover { text-decoration:underline; text-underline-offset:6px; }
.primary-nav a { text-underline-offset:7px; }
.filter-group button { min-height:44px; transition:background-color 180ms,color 180ms,box-shadow 180ms; }
.filter-group button[aria-pressed=true] { box-shadow:0 3px 8px #123d2a16; }
.kenema-feature { background:#153e2d; }
.kenema-feature-grid { gap:clamp(28px,5vw,72px); }
.kenema-feature .eyebrow { padding-bottom:10px; border-bottom:1px solid #ffffff30; margin-bottom:18px; }
.kenema-feature-grid h2 { line-height:1.02; }
.kenema-feature-grid h2 em { color:#d1dfce; }
.section-head { padding-top:18px; margin-bottom:32px; align-items:end; }
.section-head .text-link { flex-shrink:0; }
.work-section { background:#f0efe7; }
.portfolio-grid .work-copy { border-color:#b7c5b8; }
.portfolio-grid .work-copy h3 { margin-block:10px 14px; }
.portfolio-grid .work-copy p:not(.eyebrow) { line-height:1.55; }
.portfolio-grid .work-copy .text-link { margin-top:12px; }
.report-reading { line-height:1.75; }
.report-reading h2 { line-height:1.12; }
.documentary-post { padding-bottom:40px; }
.photo-dialog button { transition:background-color 180ms,box-shadow 180ms; }
.photo-dialog button:hover { background:#ffffff28; }
@media(prefers-reduced-motion:no-preference) {
 .motion-frame img { scale:1.055; translate:0 var(--photo-drift,0px); }
 .motion-frame { overflow:hidden; }
 .cover-opening h1 em { transform-origin:left bottom; }
}
@media(min-width:761px) {
 .section { padding-block:64px; }
 .portfolio-grid .work-card:nth-child(2) { margin-top:48px; }
 .portfolio-grid .work-card:nth-child(3) { margin-top:96px; }
 .cover-opening { padding-bottom:40px; }
}
@media(max-width:760px) {
 .cover-opening h1 em { display:block; }
 .button { min-height:48px; padding:8px 10px 8px 13px; gap:12px; }
 .button > span[aria-hidden] { width:26px;height:26px;flex-basis:26px; }
 .cover-actions { gap:6px 14px; }
 .section-head { gap:12px; margin-bottom:24px; }
 .kenema-feature .eyebrow { margin-bottom:14px; }
 .documentary-post { padding-bottom:26px; }
 .motion-frame img { scale:1.035; }
}
@media(prefers-reduced-motion:reduce) {
 .motion-frame img { scale:1;translate:none; }
 .button,.button > span[aria-hidden] { translate:none!important;transform:none!important; }
 .button::before { display:none; }
}
.cover-stage .documentary-photo img { object-position:50% 27%; }
@media(prefers-reduced-motion:no-preference) { .cover-stage .motion-frame img { scale:1.035; } }
/* Page-specific editorial signatures; the shared type and action language stays intact. */
.prose section,.initiative-chapter,#story-photos { scroll-margin-top:90px; }
.page-biography .biography-opening-chapter { max-width: none; margin:0; padding:48px 0; }
.biography-opening-chapter #background { display:grid; grid-template-columns:.8fr 1.2fr; gap:0 64px; margin:0; }
.biography-opening-chapter h2 { grid-row:span 3; font-size:clamp(2.8rem,4.6vw,4.5rem); max-width:12ch; }
.biography-opening-chapter p { margin-top:0; }
.bio-reading { border-top:1px solid var(--line); padding-top:36px; }
.contents { position:sticky; top:95px; padding:18px 0; border-top:0; }
.contents strong { font-size:.73rem; text-transform:uppercase; letter-spacing:.13em; color:var(--muted); }
.contents a { min-height:44px; display:flex; align-items:center; border-left:2px solid var(--line); padding:8px 12px; font-size:.95rem; color:var(--muted); transition:color 180ms,background-color 180ms,border-color 180ms; }
.contents a[aria-current="location"] { border-color:var(--green); background:#e9ede3; color:var(--green); }
.bio-reading .prose h3 { font:650 1.18rem/1.35 var(--sans); margin-top:1.5rem; }
.bio-reading .prose > section { padding-bottom:20px; }
.honours-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 28px; margin-top:22px; }
.honour { padding:20px 0; border-top:1px solid var(--line); }
.honours-grid .honour h3 { margin:0; font:400 1.85rem/1.1 var(--serif); color:var(--green); }
.honour p { font-size:1rem; line-height:1.6; }
.honour .text-link { font-size:.9rem; }
.bio-story-photo { margin-block:36px; }
.bio-story-photo .image-frame { border-radius:6px; aspect-ratio:1.55; }
.bio-story-photo img { width:100%;height:100%;object-fit:cover; }
.timeline li { padding:0 0 26px 10px; }
.timeline li > span { font:400 1.8rem/1.2 var(--serif); color:var(--green); }
.report-interlude { width:calc(100% + 100px); max-width:none; margin:30px -50px 40px; }
.report-interlude .gallery-image { aspect-ratio:1.7; border-radius:6px; }
.report-interlude img { width:100%;height:100%;object-fit:cover; }
.report-interlude figcaption { max-width:65ch; margin:auto; }
.report-reading section + section { border-top:0; }
.report-reading .report-interlude + section { padding-top:0; }
.page-report .masthead::after,.page-biography .masthead::after { content:''; height:2px; position:absolute; bottom:0; left:0; width:100%; background:#17629b; transform:scaleX(var(--reading-progress,0)); transform-origin:left; }
.chapter-copy { grid-template-columns:100px minmax(0,760px); justify-content:center; gap:35px; }
.chapter-number { font-size:4.6rem; color:#6c8774; }
.chapter-copy h2 { font-size:clamp(2.4rem,4vw,3.6rem); }
.initiative-chapter { padding-block:40px; }
.initiative-gallery-copy { border-top:1px solid var(--line); padding-top:16px; }
.initiative-gallery-copy .meta { font-size:.78rem; }
.initiative-gallery-grid { grid-template-columns:1.4fr 1fr; gap:20px; }
.initiative-gallery-grid .initiative-gallery-lead { grid-column:auto; grid-row:span 2; }
.initiative-gallery-grid .initiative-gallery-lead .gallery-image { height:100%; min-height:240px; aspect-ratio:1.1; }
.initiative-gallery-grid .repeated-context { grid-column:auto; grid-row:auto; order:2; }
.initiative-gallery-grid .repeated-context .gallery-image { min-height:0; aspect-ratio:1.6; }
.initiative-gallery-grid:has(.repeated-context) > figure:not(.repeated-context):first-of-type { grid-row:span 2; }
.chapter-nav a { color:var(--green); }
.chapter-nav a[aria-current="location"] { text-decoration:underline;text-underline-offset:5px; }
.photo-archive { background:transparent; border-block:1px solid var(--line); border-radius:0; padding:12px 0; }
.photo-archive summary { font-size:1rem; }
.page-initiatives .initiative-index > .work-card { background:var(--green); color:var(--paper); border:0; }
.page-initiatives .initiative-index > .work-card .eyebrow,.page-initiatives .initiative-index > .work-card .text-link { color:#d3e4d5; }
.page-initiatives .initiative-index .work-grid { gap:32px; margin-top:40px; }
.page-initiatives .initiative-index .work-grid .work-card { border:0; background:transparent; }
.page-initiatives .initiative-index .work-grid .work-copy { padding:20px 0; }
.page-photos .page-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:40px; align-items:end; }
.page-photos .page-intro h1 { font-size:clamp(3.5rem,7.7vw,7rem); }
.page-photos .story-grid { grid-template-columns:repeat(12,minmax(0,1fr)); gap:40px 28px; }
.page-photos .story-card { grid-column:span 4; }
.page-photos .story-card:nth-child(5n+1),.page-photos .story-card:nth-child(5n+2) { grid-column:span 6; }
.page-photos .story-photo { aspect-ratio:1.5; }
.page-photos .story-card h3 { font-size:clamp(1.8rem,2.2vw,2.5rem); max-width:25ch; }
.page-photos .photo-count { border-radius:999px; margin:6px; padding:5px 12px; }
.page-contact .page-intro h1 { max-width:9ch; font-size:clamp(4rem,9vw,8rem); }
.page-contact .contact-grid { grid-template-columns:1.4fr .8fr; gap:64px; }
.contact-panel { border-top:0; }
.contact-panel h2 { font:650 .8rem/1.4 var(--sans); text-transform:uppercase; letter-spacing:.12em; }
.contact-panel dl { margin-top:26px; grid-template-columns:1fr; gap:10px; }
.contact-panel dt { font-size:.8rem;color:var(--muted); }
.contact-panel dd { border-bottom:1px solid var(--line); padding-bottom:20px; margin-bottom:10px; }
.contact-panel dd a { font-size:1.2rem; }
.contact-aside { background:#e9ede3; border:0; padding:30px; align-self:start; border-radius:6px; }
.contact-aside h2 { font-size:2.5rem; }
.page-search .page-intro { margin-bottom:0; padding-bottom:18px; border:0; }
.page-search .page-intro h1 { font-size:clamp(4rem,9vw,7.5rem); }
#site-search { padding:24px 0 30px; border-bottom:1px solid var(--line); }
#site-search label { font-size:.9rem; }
#search-input { border:0; border-bottom:2px solid var(--green); border-radius:0; background:#f0efe7; padding:16px; font-size:clamp(1.2rem,3vw,1.6rem); width:100%; }
.search-results h2 { font:400 1.8rem/1.2 var(--serif); }
.search-results li { padding:24px 0; }
.editorial-footer { border-top:0; background:#173a2b; position:relative; }
.editorial-footer::before { content:''; display:block; height:3px; background:linear-gradient(90deg,#719e83 0 33.3%,#f5f4ed 33.3% 66.6%,#7397b4 66.6%); }
.editorial-footer .footer-main { grid-template-columns:1.25fr .65fr 1fr; gap:40px; padding-block:48px 36px; }
.editorial-footer .footer-mark { align-items:flex-start; gap:18px; }
.editorial-footer .footer-mark strong { font-size:clamp(2.3rem,3.5vw,3.5rem); max-width:10ch; line-height:1.02; white-space:normal; }
.editorial-footer .footer-mark small { margin-top:14px; font-size:.64rem; letter-spacing:.15em; }
.editorial-footer .footer-mark .flag-detail { margin-top:9px; }
.editorial-footer .footer-group h2 { font-size:.7rem; letter-spacing:.16em; margin-bottom:14px; }
.editorial-footer .footer-group a { min-height:44px; font-size:.96rem; }
.editorial-footer .footer-bottom { padding-block:14px; border-color:#ffffff25; }
.editorial-footer .footer-bottom a:last-child { border:1px solid #ffffff35; border-radius:999px; padding:0 16px; }
@media(max-width:860px) {
 .editorial-footer .footer-main { grid-template-columns:1fr 1fr; gap:28px; }
 .editorial-footer .footer-main > div:first-child { grid-column:1/-1; }
 .editorial-footer .footer-mark strong { max-width:none;font-size:2.8rem; }
}
@media(max-width:760px) {
 .biography-opening-chapter #background { display:block; }
 .biography-opening-chapter h2 { max-width:none;font-size:2.7rem;margin-bottom:18px; }
 .page-biography .biography-opening-chapter { padding-block:28px; }
 .bio-reading { padding-top:20px; }
 .contents { position:static; display:grid;grid-template-columns:1fr 1fr; gap:5px 14px; padding:0 0 24px; }
 .contents strong { grid-column:1/-1; margin-bottom:6px; }
 .contents a { font-size:.86rem; line-height:1.3; padding:8px; }
 .honours-grid { grid-template-columns:1fr;gap:0; }
 .honours-grid .honour h3 { font-size:1.9rem; }
 .honour { padding-block:16px; }
 .report-interlude { width:100%;margin:24px 0 30px; }
 .report-interlude .gallery-image { aspect-ratio:1.35; }
 .chapter-copy { grid-template-columns:42px minmax(0,1fr);gap:14px; }
 .chapter-number { font-size:2.6rem; }
 .chapter-copy h2 { font-size:2.35rem; }
 .chapter-copy .prose { min-width:0; }
 .initiative-chapter { padding-block:28px; }
 .initiative-gallery-grid { gap:16px; grid-template-columns:1fr 1fr; }
 .initiative-gallery-grid .initiative-gallery-lead { grid-row:auto;grid-column:1/-1; }
 .initiative-gallery-grid .initiative-gallery-lead .gallery-image { aspect-ratio:1.5;min-height:0; }
 .initiative-gallery-grid .repeated-context { grid-column:auto; }
 .initiative-gallery-grid .gallery-image { aspect-ratio:1.2; }
 .page-photos .page-intro { display:block; }
 .page-photos .story-grid { grid-template-columns:1fr;gap:30px; }
 .page-photos .story-card:nth-child(n) { grid-column:auto; }
 .page-photos .story-card h3 { font-size:2rem; }
 .page-contact .contact-grid { grid-template-columns:1fr;gap:24px; }
 .contact-aside { padding:24px; }
 .contact-panel dd a { font-size:1.02rem; }
 .editorial-footer .footer-main { gap:26px 16px;padding-block:32px 22px; }
 .editorial-footer .footer-mark strong { font-size:2.65rem;max-width:12ch; }
 .editorial-footer .footer-group a { font-size:.9rem; }
}
.page-contact .page-intro { display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:end;padding-block:28px 32px; }
.page-contact .page-intro h1 { max-width:none;font-size:clamp(3.5rem,6vw,6rem); }
@media(max-width:760px) { .page-contact .page-intro { display:block;padding-block:20px 24px; } .page-contact .page-intro h1 { font-size:3.5rem;max-width:12ch; } }
.initiative-gallery-grid.gallery-grid { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);min-width:0; }
.initiative-gallery-grid > figure { min-width:0; }
.initiative-gallery-grid .repeated-context + figure { grid-row:span 2; }
.initiative-gallery-grid .repeated-context + figure .gallery-image { aspect-ratio:1.1; }
.initiative-gallery-grid .initiative-gallery-lead .gallery-image { height:auto; }
@media(max-width:760px) {
 .initiative-gallery-grid.gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .initiative-gallery-grid .repeated-context + figure { grid-column:1/-1;grid-row:auto; }
 .initiative-gallery-grid .repeated-context + figure .gallery-image { aspect-ratio:1.5; }
}
.page-photos .story-photo img { object-position:center 22%; }
@media(max-width:760px) {
 .chapter-copy { display:block; }
 .chapter-number { display:block;font:650 .8rem/1.3 var(--sans);letter-spacing:.12em;margin-bottom:12px; }
}
/* Collection portraits are already tightly framed: retain their full crop while scrolling. */
.page-photos .motion-frame img { scale:1;translate:none; }
/* Photo viewer: a steady stage, directional changes and room for real captions. */
.photo-dialog { width:min(1120px,calc(100% - 48px));max-width:none;max-height:calc(100dvh - 32px);padding:16px 24px 20px;background:#14251d;border:1px solid #ffffff1a;border-radius:14px;box-shadow:0 24px 100px #0007;overflow:auto; }
.photo-dialog::backdrop { background:#0a1512ed; }
.photo-dialog-bar { padding-bottom:10px; }
.photo-dialog .photo-position { font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#dde6dd; }
.viewer-progress { height:2px; background:#ffffff1a; margin-bottom:16px; }
.viewer-progress span { display:block;height:100%;background:#b4cbbb;transition:width 240ms ease; }
.viewer-stage { position:relative;height:min(60dvh,620px);overflow:hidden;touch-action:pan-y pinch-zoom; }
.photo-dialog figure .viewer-stage img { position:absolute;inset:0;display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:contain;opacity:1;transition:none;user-select:none; }
.photo-dialog figure figcaption { height:74px;max-width:78ch;margin:0 auto;padding:14px 12px 8px;font-size:.9rem;line-height:1.5;overflow:auto; }
.viewer-notice { position:absolute;left:50%;translate:-50% 0;top:70px;padding:6px 12px;border-radius:5px;background:#14251de8;color:#fff;font-size:.85rem; }
.photo-dialog-controls { margin-top:4px;gap:12px; }
.photo-dialog-controls button { min-width:124px;min-height:46px;border:1px solid #ffffff26;background:#ffffff08;font-size:.95rem; }
.photo-dialog-controls button:hover { background:#ffffff19;border-color:#ffffff60; }
.photo-dialog-bar button { width:44px;height:44px;background:#ffffff08;border:1px solid #ffffff26; }
@media(max-width:760px) {
 .photo-dialog { width:calc(100% - 20px);max-height:calc(100dvh - 20px);padding:10px 10px 16px;border-radius:12px; }
 .viewer-stage { height:clamp(180px,48dvh,440px); }
 .photo-dialog figure figcaption { height:96px;padding:12px 8px 6px;font-size:.82rem; }
 .photo-dialog-controls { gap:12px; }
 .photo-dialog-controls button { min-width:128px;min-height:48px; }
 .photo-dialog-bar { padding-bottom:8px; }
 .viewer-progress { margin-bottom:10px; }
}
@media(max-height:500px) and (orientation:landscape) {
 .photo-dialog { display:none; }
 .photo-dialog[open] { display:grid;grid-template-columns:minmax(0,1fr) 170px;column-gap:14px; }
 .photo-dialog-bar,.viewer-progress { grid-column:1/-1; }
 .photo-dialog figure { grid-column:1; }
 .viewer-stage { height:40dvh; }
 .photo-dialog figure figcaption { height:45px; }
 .photo-dialog-controls { grid-column:2;grid-row:3;flex-direction:column;justify-content:center; }
}
@media(prefers-reduced-motion:reduce) { .viewer-progress span { transition:none; } }
/* Final hierarchy refinements: compact utility screens, consistent reading rhythm. */
.social-intro { padding-top:32px; }
.social-intro p { max-width:46ch; }
.social-details figcaption { font-size:.75rem; }
.documentary-post-copy .meta { letter-spacing:.04em; }
.report-opening .article-heading { align-self:start;padding-top:18px; }
.page-report .report-dates { line-height:1.5; }
.page-search #site-search { padding-top:12px; }
@media(max-width:760px) {
 .social-intro { padding-top:22px; }
 .social-intro h1 { font-size:3.2rem; }
 .social-intro p { font-size:1.05rem; }
 .documentary-post-copy h2 { font-size:2.35rem; }
 .report-opening .article-heading { padding-top:0; }
 .report-opening h1 { font-size:2.65rem;line-height:1.04; }
 .page-report .report-reading { margin-top:24px; }
 .page-report .report-reading section { margin-bottom:28px; }
}
.viewer-stage { cursor:grab; }
.viewer-stage:active { cursor:grabbing; }
/* Two-photo event sets should never leave a lone half-width thumbnail on phones. */
.initiative-gallery-grid.gallery-grid:has(> figure:nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.initiative-gallery-grid:has(> figure:nth-child(2):last-child) > figure { grid-column:auto;grid-row:auto; }
.initiative-gallery-grid:has(> figure:nth-child(2):last-child) > figure .gallery-image { aspect-ratio:1.5;min-height:0; }
@media(max-width:760px) {
 .initiative-gallery-grid.gallery-grid:has(> figure:nth-child(2):last-child) { grid-template-columns:minmax(0,1fr); }
 .initiative-gallery-grid:has(> figure:nth-child(2):last-child) > figure .gallery-image { aspect-ratio:1.6; }
}
@media(min-width:761px) {
 .report-opening { grid-template-rows:auto 1fr;row-gap:22px; }
 .report-opening .article-heading { grid-column:1;grid-row:1; }
 .report-opening .report-lead-photo { grid-column:2;grid-row:1/span 2; }
 .report-opening > .report-lede { grid-column:1;grid-row:2;align-self:start;margin:0;max-width:40ch;font-size:1.2rem;line-height:1.6; }
}
@media(max-width:760px) { .report-opening > .report-lede { font-size:1.12rem;line-height:1.55;margin:0; } }
@media(max-height:500px) and (orientation:landscape) {
 .photo-dialog[open] { width:calc(100% - 20px);padding:10px;grid-template-columns:minmax(0,1fr) 156px;grid-template-rows:44px 10px 1fr;gap:8px 16px; }
 .photo-dialog figure { grid-column:1;grid-row:1/span 3; }
 .photo-dialog .viewer-stage { height:calc(100dvh - 100px); }
 .photo-dialog .photo-dialog-bar { grid-column:2;grid-row:1;padding:0; }
 .photo-dialog .viewer-progress { grid-column:2;grid-row:2;margin:0; }
 .photo-dialog .photo-dialog-controls { grid-column:2;grid-row:3; }
 .photo-dialog figure figcaption { height:45px;font-size:.78rem;padding:7px 0; }
 .photo-dialog .photo-position { font-size:.65rem; }
}
/* Final optical polish: related content stays together and photographs keep their composition. */
.documentary-post .social-story-stack { grid-column:2; grid-row:1; display:flex;flex-direction:column;gap:24px;min-width:0; }
.documentary-post:nth-child(even) .social-story-stack { grid-column:1; }
.documentary-post .social-lead-photo { grid-row:1; }
.social-story-stack .social-details { margin:0;align-items:start; }
.social-details .gallery-image { aspect-ratio:var(--native-ratio,1.5); }
.social-details img { object-position:center; }
.social-lead-photo .gallery-image { aspect-ratio:var(--native-ratio,1.5); }
.social-lead-photo img { scale:1;translate:none; }
.initiative-gallery-grid .gallery-image,.initiative-gallery-grid .initiative-gallery-lead .gallery-image,
.initiative-gallery-grid .repeated-context + figure .gallery-image,
.initiative-gallery-grid:has(> figure:nth-child(2):last-child) > figure .gallery-image { aspect-ratio:var(--native-ratio,1.5);min-height:0;height:auto; }
.initiative-gallery-grid { align-items:start; }
.initiative-gallery-grid .motion-frame img { scale:1;translate:none; }
.news-lead .actions { gap:10px; }
.news-lead .actions > .text-link { font-size:.83rem;font-weight:400;line-height:1.5; }
.news-lead .actions > .text-link .arrow { font-size:.85rem; }
.news-lead + .archive { padding-top:44px; }
h2,h3 { text-wrap:pretty; }
.prose p { text-wrap:pretty; }
@media(max-width:760px) {
 .cover-kicker { font-size:.57rem;letter-spacing:.06em;gap:12px; }
 .cover-opening h1 { margin:0;padding-block:16px 20px; }
 .cover-stage { gap:18px; }
 .cover-copy .eyebrow { display:none; }
 .cover-actions { margin-top:14px; }
 .portrait-grid { gap:18px;padding-top:18px;padding-bottom:24px; }
 .portrait-photo .image-frame { aspect-ratio:1.25; }
 .portrait-introduction { margin-top:10px; }
 .portrait-grid h1 { font-size:3.1rem; }
 .portrait-grid .actions { gap:10px; }
 .documentary-post .social-story-stack { gap:18px; }
 .social-details { gap:12px; }
 .filter-group { display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px; }
 .filter-group button { padding:10px 14px; }
 .news-lead + .archive { padding-top:28px; }
 .viewer-stage { height:clamp(180px,38dvh,340px); }
 .photo-dialog figure figcaption { height:76px;padding-top:10px; }
}
@media(max-height:500px) and (orientation:landscape) { .photo-dialog .viewer-stage { height:calc(100dvh - 100px); } }
/* Report photographs deserve the same crop protection as Social and campaigns. */
.article-gallery .gallery-image,.report-interlude .gallery-image { aspect-ratio:var(--native-ratio,1.5); }
.article-gallery .gallery-grid { align-items:start; }
.article-gallery .gallery-image img,.report-interlude .gallery-image img { scale:1;translate:none;object-position:center; }
.button:hover > span[aria-hidden],.button:focus-visible > span[aria-hidden] { transform:translateX(2px); }
/* Responsive editorial hierarchy: a stacked heading always shares the content's left edge. */
@media(max-width:1000px) {
 .section-head { flex-direction:column;align-items:flex-start;text-align:left;gap:12px; }
 .section-head > div,.section-head h2 { max-width:100%;min-width:0; }
 .section-head > .text-link { align-self:flex-start; }
 .section-head h2 { font-size:clamp(2.35rem,5.3vw,3.6rem);line-height:1.08; }
}
/* Tablet stories become image-and-copy rows instead of three cramped columns. */
@media(min-width:701px) and (max-width:1000px) {
 .portfolio-grid { grid-template-columns:1fr;gap:32px; }
 .portfolio-grid .work-card { display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:0!important;align-items:center; }
 .portfolio-grid .work-image { aspect-ratio:1.3; }
 .portfolio-grid .work-copy { margin:0;padding:18px 0 0; }
 .portfolio-grid .work-copy h3 { font-size:2.25rem; }
 .cover-opening + .kenema-feature + .work-section + .section .story-grid { grid-template-columns:1fr;gap:28px; }
 .cover-opening + .kenema-feature + .work-section + .section .story-card { display:grid;grid-template-columns:.85fr 1.15fr;column-gap:26px;align-content:start;border-bottom:1px solid var(--line);padding-bottom:28px; }
 .cover-opening + .kenema-feature + .work-section + .section .story-card > .story-photo { grid-column:1;grid-row:1/span 5;aspect-ratio:1.2; }
 .cover-opening + .kenema-feature + .work-section + .section .story-card > :not(.story-photo) { grid-column:2; }
 .cover-opening + .kenema-feature + .work-section + .section .story-card h3 { font-size:2rem; }
 .report-opening { column-gap:26px; }
 .report-opening h1 { font-size:clamp(2.6rem,4.5vw,3.5rem); }
 .portrait-grid h1 { font-size:clamp(3.2rem,6vw,4rem); }
 .documentary-post-copy h2 { font-size:2.5rem; }
}
@media(max-width:700px) {
 .section-head h2 { font-size:clamp(2.25rem,9.6vw,3.25rem); }
 .section-head { padding-top:16px;gap:10px; }
 .section-head > .text-link { min-height:44px; }
 .portfolio-grid .work-card:nth-child(n) { margin-top:0; }
 .work-grid.portfolio-grid { gap:32px; }
}
@media(min-width:701px) and (max-width:1000px) {
 .cover-opening + .kenema-feature + .work-section + .section .story-card > .story-photo { aspect-ratio:1.4; }
 .cover-opening + .kenema-feature + .work-section + .section .story-photo img { object-position:center 20%; }
 .page-photos .story-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .page-photos .story-card:nth-child(n) { grid-column:auto; }
}
@media(max-width:1000px) {
 .report-interlude { width:100%;max-width:100%;margin-inline:0; }
}
/* Compact report filters: one readable row with full-size touch targets. */
.filter-group { display:flex;flex-wrap:wrap;width:auto;gap:6px; }
.filter-group button { min-width:44px;min-height:44px;padding:8px 14px;border-radius:6px;font-size:.9375rem;line-height:1.2;font-weight:600;white-space:nowrap; }
.filter-group button[aria-pressed=true] { box-shadow:none; }
@media(max-width:760px) {
 .filter-group { gap:4px;width:100%; }
 .filter-group button { padding:8px 10px;font-size:.875rem; }
 .filters { gap:8px;padding-block:8px 18px; }
 .filters p { font-size:.85rem;margin:0; }
}
