/* Hallmark - macrostructure: Archive Split - tone: editorial-research - anchor hue: rust - contrast: pass - mobile: pass */
/* Hallmark - pre-emit critique: P4 H4 E4 S5 R5 V4 */
:root {
  --color-paper: #EEE7DC;
  --color-surface: #F8F3EB;
  --color-surface-strong: #F6F1E9;
  --color-surface-bright: #FAF6EF;
  --color-editor: #FFFDF9;
  --color-hero: #E5DBCE;
  --color-ink: #44362D;
  --color-footer: #3B332E;
  --color-footer-text: #F5EEE6;
  --color-footer-muted: #D8C7B9;
  --color-rust: #91472F;
  --color-orange: #C7704F;
  --color-muted: #6F6259;
  --color-border: #A99889;
  --color-border-light: #C8BBAE;
  --color-accent: var(--color-orange);
  --color-accent-strong: var(--color-rust);
  --color-bg: var(--color-paper);
  --color-dark: var(--color-footer);
  --color-card-bg: var(--color-surface);
  --color-text: var(--color-ink);
  --color-secondary: var(--color-muted);
  --color-white: #FFFFFF;
  --color-black: #000000;
  --color-hero-band: #E3D8CA;
  --color-hero-slide: #E5DBCE;
  --color-surface-alt: #FBF8F2;
  --color-tag-bg: #E5D5C7;
  --color-nav-backdrop: rgba(246,241,233,.96);
  --color-nav-active-bg: rgba(145,71,47,.10);
  --color-rail: rgba(105,80,61,.24);
  --color-rail-strong: rgba(105,80,61,.28);
  --color-shadow-soft: rgba(0,0,0,.08);
  --color-shadow-rust: rgba(145,71,47,.12);
  --color-shadow-focus: rgba(145,71,47,.15);
  --color-overlay: rgba(0,0,0,.70);
  --color-overlay-control: rgba(59,51,46,.92);
  --color-overlay-border: rgba(255,255,255,.80);
  --color-overlay-muted: rgba(255,255,255,.85);
  --color-dot-muted: rgba(68,54,45,.28);
  --color-footer-line: rgba(255,255,255,.18);
  --color-footer-link: #F3E9E0;
  --color-footer-link-hover: #F4B293;
  --color-footer-bottom: #BFAFA2;
  --color-mobile-gradient-top: rgba(238,231,220,.18);
  --color-carousel-overlay-top: rgba(55,45,39,.08);
  --color-carousel-overlay-bottom: rgba(30,22,18,.48);
  --color-intro-eyebrow: #F3D8CA;
  --color-intro-body: #F8EEE8;
  --color-rail-label: #735F50;
  --color-panel-shadow: rgba(68,54,45,.16);
  --color-white-faint: rgba(255,255,255,.40);
  --color-overlay-backdrop: rgba(0,0,0,.50);
  --color-empty-bg: rgba(255,255,255,.35);
  --color-editor-overlay: rgba(255,255,255,.38);
  --color-shadow-nav: rgba(68,54,45,.13);
  --color-danger: #C00000;
  --color-info: #17A2B8;
  --color-success: #28A745;
  --color-error: #DC3545;
  --color-researcher-bg: #E8F4E8;
  --color-researcher-ink: #2E7D32;
  --color-activist-bg: #FFF3E0;
  --color-activist-ink: #E65100;
  --color-transparent: transparent;
  --ease-out: cubic-bezier(.2,.8,.2,1);
  --archive-paper: var(--color-paper);
  --archive-ink: var(--color-ink);
  --archive-rust: var(--color-rust);
  --archive-orange: var(--color-orange);
  --archive-green: #657565;
  --font-interface: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --font-display: "Noto Serif SC", "Songti SC", STSong, Georgia, serif;
  --font-reading: "Noto Serif SC", "Songti SC", STSong, Georgia, serif;
  --font-mono: "Courier New", monospace;
  --font-scale: 1;
}
html:not([data-font-size]) { --font-scale: 1; }
html[data-font-size="1"] { --font-scale: 1; }
html[data-font-size="2"] { --font-scale: 1.2; }
html[data-font-size="3"] { --font-scale: 1.4; }
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:calc(1rem*var(--font-scale)); scroll-behavior:smooth; overflow-x:clip; }
body { font-family:var(--font-interface); color:var(--color-text); background:var(--color-bg); line-height:1.6; min-height:100vh; display:flex; flex-direction:column; overflow-x:clip; word-wrap:break-word; overflow-wrap:break-word; }
a { color:var(--color-accent-strong); text-decoration:underline; text-underline-offset:0.15em; }
a:hover { text-decoration:underline; }
img { max-width:100%; height:auto; }
.skip-link { position:absolute; top:-40px; left:0; background:var(--color-accent); color:var(--color-white); padding:8px 16px; z-index:1000; }
.skip-link:focus { top:0; }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.site-wrapper { display:flex; flex-direction:column; min-height:100vh; width:100%; margin:0; }
.container { max-width:1200px; margin:0 auto; padding:0 24px; width:100%; min-width:0; }
.section { padding:64px 0; }
.section-light { background:var(--color-bg); }
.section-dark { background:var(--color-dark); color:var(--color-white); padding:80px 0; }
.section-dark h2 { color:var(--color-white); }
.main-nav { background:var(--color-bg); border-bottom:2px solid var(--color-border); position:sticky; top:0; z-index:100; }
.nav-inner { display:flex; align-items:center; gap:4px; max-width:1200px; margin:0 auto; padding:0 16px; height:64px; min-width:0; }
.nav-logo { display:flex; align-items:center; gap:8px; font-weight:700; font-size:1rem; color:var(--color-text); white-space:nowrap; flex-shrink:0; }
.nav-logo img { width:48px; height:48px; border-radius:50%; object-fit:cover; }
.nav-links { display:flex; gap:2px; margin-left:12px; flex:1; min-width:0; overflow:hidden; }
.nav-links a { padding:8px 10px; font-size:0.85rem; color:var(--color-text); border-radius:4px; white-space:nowrap; flex-shrink:0; }
.nav-links a:hover,.nav-links a.active,.nav-links a[aria-current="page"] { background:var(--color-nav-active-bg); color:var(--color-accent-strong); text-decoration:none; }
.nav-links a.active,.nav-links a[aria-current="page"] { border-bottom:3px solid var(--color-accent-strong); }
.nav-actions { display:flex; align-items:center; gap:4px; flex-shrink:0; min-width:0; }
.nav-settings { position:relative; flex-shrink:0; }
.nav-settings summary { display:grid; place-items:center; min-width:44px; min-height:44px; padding:3px 6px; border:1px solid var(--color-border); color:var(--color-text); cursor:pointer; list-style:none; font:700 .75rem var(--font-interface); }
.nav-settings summary::-webkit-details-marker { display:none; }
.nav-settings[open] summary { color:var(--color-white); background:var(--archive-rust); border-color:var(--archive-rust); }
.nav-settings-panel { position:absolute; top:calc(100% + 10px); right:0; z-index:130; display:flex; gap:6px; padding:8px; background:var(--color-surface-strong); border:1px solid var(--color-border); box-shadow:0 10px 22px var(--color-panel-shadow); }
.nav-settings-panel button { min-width:44px; min-height:44px; }
.search-inline { display:flex; align-items:center; gap:0; flex-shrink:1; min-width:0; }
.search-inline input { padding:6px 10px; border:1px solid var(--color-border); border-right:none; background:var(--color-white); font-size:0.8rem; width:130px; max-width:30vw; outline:none; border-radius:4px 0 0 4px; min-width:50px; height:44px; }
.search-inline input:focus { border-color:var(--color-accent); }
.search-btn { padding:6px 10px; background:var(--color-accent-strong); color:var(--color-white); border:none; cursor:pointer; font-size:0.8rem; border-radius:0 4px 4px 0; flex-shrink:0; height:44px; }
.font-btn { padding:3px 6px; background:none; border:1px solid var(--color-border); cursor:pointer; font-size:0.75rem; border-radius:4px; color:var(--color-text); flex-shrink:0; }
.hc-toggle { padding:3px 6px; background:none; border:1px solid var(--color-border); cursor:pointer; font-size:0.7rem; border-radius:4px; font-weight:700; color:var(--color-text); flex-shrink:0; }
.hamburger { display:none; flex-direction:column; gap:4px; cursor:pointer; padding:8px; background:none; border:none; flex-shrink:0; }
.hamburger-line { width:24px; height:2px; background:var(--color-text); }
.hero-carousel { position:relative; overflow:hidden; background:var(--color-dark); width:100%; max-height:80vh; }
.hero-carousel::before { content:""; display:block; padding-bottom:min(42%,560px); }
.carousel-slide { position:absolute; inset:0; opacity:0; transition:opacity 0.5s; display:flex; align-items:flex-end; background-size:cover; background-position:center; background-repeat:no-repeat; pointer-events:none; }
.carousel-slide.active { opacity:1; pointer-events:auto; }
.carousel-slide img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.carousel-overlay { position:relative; z-index:1; padding:24px 20px; background:linear-gradient(var(--color-transparent),var(--color-overlay)); width:100%; }
.carousel-overlay h2 { color:var(--color-white); font-size:clamp(1.2rem,3vw,1.8rem); margin-bottom:6px; word-wrap:break-word; overflow-wrap:break-word; }
.carousel-overlay p { color:var(--color-overlay-muted); font-size:clamp(0.85rem,2vw,1rem); max-width:600px; }
.carousel-controls { position:absolute; bottom:12px; right:16px; z-index:2; display:flex; gap:6px; }
.carousel-controls button { background:var(--color-overlay-control); color:var(--color-white); border:1px solid var(--color-overlay-border); min-width:36px; height:36px; padding:0 10px; font-size:1rem; cursor:pointer; border-radius:18px; flex-shrink:0; }
.carousel-controls .carousel-toggle { font-size:0.8rem; min-width:58px; }
.carousel-dots { position:absolute; bottom:12px; left:50%; transform:translateX(-50%); z-index:2; display:flex; gap:6px; }
.carousel-dot { width:10px; height:10px; border-radius:50%; background:var(--color-white-faint); border:none; cursor:pointer; flex-shrink:0; }
.carousel-dot.active { background:var(--color-accent); }
.mission-statement { font-size:clamp(1rem,2.5vw,1.2rem); font-weight:500; text-align:center; max-width:800px; margin:0 auto; line-height:1.8; padding:24px 16px; word-wrap:break-word; overflow-wrap:break-word; }
.card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:24px; min-width:0; }
.card { background:var(--color-card-bg); border:1px solid var(--color-border-light); border-radius:4px; padding:24px; transition:transform 0.2s,box-shadow 0.2s; min-width:0; word-wrap:break-word; overflow-wrap:break-word; }
.card:hover { transform:translateY(-4px); box-shadow:0 8px 24px var(--color-shadow-soft); }
.card-title { font-size:1.125rem; font-weight:600; margin-bottom:8px; color:var(--color-text); word-wrap:break-word; overflow-wrap:break-word; }
.card-summary { color:var(--color-secondary); font-size:0.9rem; line-height:1.5; word-wrap:break-word; overflow-wrap:break-word; }
.card-meta { font-family:var(--font-mono); font-size:0.8rem; color:var(--color-secondary); margin-top:12px; display:flex; flex-wrap:wrap; gap:4px; }
.tag { display:inline-block; padding:2px 8px; font-family:var(--font-mono); font-size:0.75rem; border:1px solid var(--color-border-light); border-radius:2px; color:var(--color-secondary); background:transparent; }
.plans-grid-section { background:var(--color-bg); color:var(--color-text); padding:64px 0 80px; border-top:1px solid var(--color-border-light); }
.plans-grid-section h2 { color:var(--color-text); font-size:clamp(1.5rem,4vw,2rem); margin-bottom:24px; }
.plan-card-grid { align-items:stretch; }
.plan-card-link { text-decoration:none; color:inherit; display:flex; height:100%; }
.plan-card-link:hover { text-decoration:none; }
.plan-card { display:flex; flex-direction:column; width:100%; height:100%; }
.plan-card h3 { color:var(--color-text); font-size:1.25rem; font-weight:700; margin-bottom:4px; word-wrap:break-word; overflow-wrap:break-word; }
.plan-card .plan-subtitle { color:var(--color-accent-strong); font-size:0.9rem; font-weight:600; margin-bottom:12px; font-family:var(--font-mono); }
.plan-card-description { flex:1; color:var(--color-secondary); font-size:0.95rem; line-height:1.6; word-wrap:break-word; overflow-wrap:break-word; }
.person-card { background:var(--color-white); border:1px solid var(--color-border-light); border-radius:4px; padding:24px; text-align:center; min-width:0; word-wrap:break-word; overflow-wrap:break-word; }
.person-card img { width:120px; height:120px; border-radius:50%; object-fit:cover; margin-bottom:12px; max-width:100%; }
.person-card h3 { font-size:1.1rem; font-weight:600; }
.person-card .person-title { color:var(--color-accent); font-size:0.85rem; font-family:var(--font-mono); margin-bottom:8px; }
.person-card p { color:var(--color-secondary); font-size:0.9rem; line-height:1.5; word-wrap:break-word; overflow-wrap:break-word; }
.course-card { background:var(--color-white); border:1px solid var(--color-border-light); border-radius:4px; padding:24px; text-align:center; }
.course-card img { max-width:200px; height:auto; margin:12px auto; display:block; border:1px solid var(--color-border-light); border-radius:4px; }
.course-card h3 { font-size:1.1rem; font-weight:600; margin-bottom:8px; }
.course-card p { color:var(--color-secondary); font-size:0.9rem; }
.page-header { padding:48px 0 24px; }
.page-header h1 { font-size:clamp(2rem,4vw,3rem); font-weight:900; word-wrap:break-word; overflow-wrap:break-word; }
.content-body { max-width:800px; margin:0 auto; padding:32px 0; min-width:0; word-wrap:break-word; overflow-wrap:break-word; }
.content-body h2 { font-size:1.5rem; margin-top:32px; margin-bottom:12px; }
.content-body p { margin-bottom:16px; line-height:1.8; }
.article-content { line-height:1.8; word-wrap:break-word; overflow-wrap:break-word; }
.article-meta { font-family:var(--font-mono); font-size:0.875rem; color:var(--color-secondary); margin-bottom:24px; padding-bottom:16px; border-bottom:1px solid var(--color-border-light); }
.tags { display:flex; flex-wrap:wrap; gap:8px; }
.site-footer { background:var(--color-bg); color:var(--color-text); padding:10px 0 6px; margin-top:auto; border-top:1px solid var(--color-border-light); }
.footer-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; max-width:1200px; margin:0 auto; padding:0 24px; }
.footer-col h4 { color:var(--color-text); font-size:0.75rem; font-weight:600; margin-bottom:4px; letter-spacing:0.05em; }
.footer-col a { display:block; color:var(--color-text); font-size:0.75rem; padding:1px 0; line-height:1.4; word-wrap:break-word; overflow-wrap:break-word; }
.footer-col a:hover { color:var(--color-accent); }
.footer-bottom { border-top:1px solid var(--color-border-light); margin-top:8px; padding-top:4px; text-align:center; font-size:0.7rem; color:var(--color-secondary); }
.footer-logo { display:flex; align-items:center; gap:8px; margin-bottom:4px; }
.footer-logo img { width:64px; height:64px; border-radius:50%; object-fit:cover; }
.footer-logo span { font-weight:600; font-size:0.8rem; color:var(--color-text); }
.social-links { display:flex; gap:8px; margin-top:4px; flex-wrap:wrap; }
.social-links a { color:var(--color-text); font-size:0.7rem; }
#admin-app { max-width:1200px; margin:0 auto; padding:24px; min-width:0; }
.admin-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.admin-heading h1 { margin:0; }
.admin-nav { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:24px; border-bottom:2px solid var(--color-border); padding-bottom:8px; }
.admin-nav button { padding:8px 16px; border:1px solid var(--color-border-light); background:var(--color-white); cursor:pointer; font-size:0.85rem; border-radius:4px; }
.admin-nav button:hover,.admin-nav button.active { background:var(--color-accent); color:var(--color-white); border-color:var(--color-accent); }
.admin-subnav { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:16px; padding:0; }
.admin-subnav button { padding:6px 14px; border:1px solid var(--color-border-light); background:var(--color-surface-alt); cursor:pointer; font-size:0.8rem; border-radius:4px; color:var(--color-text); }
.admin-subnav button:hover,.admin-subnav button.active { background:var(--color-accent); color:var(--color-white); border-color:var(--color-accent); }
.admin-table { width:100%; border-collapse:collapse; background:var(--color-white); border:1px solid var(--color-border-light); overflow-x:auto; display:block; }
.admin-table th { background:var(--color-dark); color:var(--color-white); padding:10px 12px; text-align:left; font-size:0.85rem; white-space:nowrap; }
.admin-table td { padding:10px 12px; border-bottom:1px solid var(--color-border-light); font-size:0.85rem; }
.admin-thumb { width:48px; height:48px; object-fit:cover; border-radius:4px; }
.admin-btn { padding:8px 16px; border:1px solid var(--color-border); background:var(--color-white); cursor:pointer; font-size:0.85rem; border-radius:4px; }
.admin-btn-primary { background:var(--color-accent-strong); color:var(--color-white); border-color:var(--color-accent-strong); }
.admin-btn-danger { color:var(--color-danger); border-color:var(--color-danger); }
.admin-btn-danger:hover { background:var(--color-danger); color:var(--color-white); }
.admin-btn-small { padding:4px 10px; font-size:0.8rem; margin:0 2px; }
.admin-overlay { position:fixed; inset:0; background:var(--color-overlay-backdrop); z-index:1000; display:flex; align-items:center; justify-content:center; }
.admin-form { background:var(--color-white); padding:32px; border-radius:8px; max-width:600px; width:90%; max-height:80vh; overflow-y:auto; }
.admin-form h3 { font-size:1.2rem; margin-bottom:16px; }
.admin-form-group { margin-bottom:16px; }
.admin-form-group label { display:block; font-size:0.85rem; font-weight:600; margin-bottom:4px; color:var(--color-secondary); }
.admin-form-group input,.admin-form-group textarea,.admin-form-group select { width:100%; padding:8px 12px; border:1px solid var(--color-border-light); border-radius:4px; font-size:0.9rem; }
.admin-form-group textarea { min-height:120px; resize:vertical; }
.admin-form-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:16px; flex-wrap:wrap; }
.admin-upload-wrapper { display:flex; gap:8px; flex-wrap:wrap; }
.admin-upload-wrapper input { flex:1; min-width:120px; }
.admin-upload-preview img { max-width:120px; max-height:120px; border-radius:4px; border:1px solid var(--color-border-light); }
.admin-toast { position:fixed; top:24px; right:24px; padding:12px 24px; border-radius:4px; color:var(--color-white); z-index:2000; font-size:0.9rem; animation:toast-in 0.3s; }
.admin-toast-success { background:var(--color-success); }
.admin-toast-error { background:var(--color-error); }
.admin-toast-info { background:var(--color-info); }
@keyframes toast-in { from{opacity:0;transform:translateX(100px)} to{opacity:1;transform:translateX(0)} }
.admin-empty-state,.admin-loading,.admin-error { text-align:center; padding:48px; color:var(--color-secondary); }
.empty-state { grid-column:1/-1; padding:24px; border:1px dashed var(--color-border); color:var(--color-secondary); text-align:center; background:var(--color-empty-bg); }
.achievements { margin-top:8px; display:flex; flex-wrap:wrap; gap:4px; }
.achievements .tag { font-size:0.8rem; padding:2px 8px; }
.achievement-row input { padding:6px 8px; border:1px solid var(--color-border-light); border-radius:4px; font-size:0.85rem; max-width:100%; }
.login-form { max-width:400px; margin:80px auto; padding:32px; background:var(--color-white); border:1px solid var(--color-border-light); border-radius:8px; }
.login-form h1 { font-size:1.5rem; text-align:center; margin-bottom:24px; }
.login-form label { display:block; font-size:0.85rem; font-weight:600; margin-bottom:4px; }
.login-form input { width:100%; padding:10px 12px; border:1px solid var(--color-border-light); border-radius:4px; margin-bottom:16px; font-size:1rem; }
.login-form button { width:100%; padding:12px; background:var(--color-accent); color:var(--color-white); border:none; border-radius:4px; font-size:1rem; cursor:pointer; }
html[data-high-contrast=true] { --color-bg:#000; --color-text:#fff; --color-dark:#000; --color-border:#fff; --color-accent:#FFB000; --color-accent-strong:#FFB000; --color-secondary:#ccc; --color-card-bg:#000; --color-border-light:#fff; }
html[data-high-contrast=true] * { border-color:var(--color-border) !important; }
html[data-high-contrast=true] .card,html[data-high-contrast=true] .person-card,html[data-high-contrast=true] .course-card { background:#000; border-color:#fff; }
@media (max-width:1024px) { .card-grid { grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); } .search-inline input { width:100px; } .nav-links a { padding:8px 8px; font-size:0.8rem; } }
@media (max-width:768px) { .nav-links { display:none; position:absolute; top:64px; left:0; right:0; background:var(--color-bg); flex-direction:column; padding:16px 24px; border-bottom:2px solid var(--color-border); overflow-y:auto; max-height:calc(100vh - 64px); } .nav-links.open { display:flex; } .hamburger { display:flex; } .hero-carousel { max-height:60vh; } .hero-carousel::before { padding-bottom:min(50%,360px); } .card-grid { grid-template-columns:1fr; } .footer-grid { grid-template-columns:1fr; } .section { padding:40px 0; } .nav-actions { gap:2px; } .search-inline input { width:80px; min-width:40px; font-size:0.75rem; } .search-btn { font-size:0.75rem; padding:4px 8px; } .font-btn,.hc-toggle { font-size:0.7rem; padding:2px 4px; } }
@media (max-width:480px) { .search-inline input { width:50px; min-width:30px; font-size:0.65rem; } .container { padding:0 12px; } .nav-inner { padding:0 8px; gap:2px; } .nav-links a { padding:6px 6px; font-size:0.75rem; } .nav-logo span { display:none; } }
/* Activities two-column layout */
.activities-two-col { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; margin-top:24px; }
.activities-col { min-width:0; }
.activities-col h2 { font-size:1.3rem; margin-bottom:16px; padding-bottom:8px; border-bottom:2px solid var(--color-border); }
.activities-col .card-grid { grid-template-columns:1fr; }
/* Section tags for team page */
.section-tag { display:inline-block; padding:2px 10px; font-size:0.75rem; font-family:var(--font-mono); border-radius:3px; font-weight:600; vertical-align:middle; margin-right:4px; }
.tag-researcher { background:var(--color-orange); color:var(--color-white); }
.tag-activist { background:var(--color-ink); color:var(--color-white); }
@media (max-width:768px) { .activities-two-col { grid-template-columns:minmax(0,1fr); gap:24px; } }
/* Carousel link */.carousel-link:hover { text-decoration:none; }
.carousel-slide-default .carousel-link { background:transparent; }

:focus-visible { outline:3px solid var(--color-accent-strong); outline-offset:3px; }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }

/* Team two-column layout */
.team-two-col { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; padding:24px 0; }
.team-col { min-width:0; }
.team-col h2 { font-size:1.3rem; margin-bottom:16px; }
.team-col .card-grid { grid-template-columns:1fr; }
@media (max-width:768px) { .team-two-col { grid-template-columns:minmax(0,1fr); gap:24px; } }
.section-tag { display:inline-block; padding:2px 10px; font-size:0.75rem; border-radius:3px; margin-right:6px; }
.tag-researcher { background:var(--color-researcher-bg); color:var(--color-researcher-ink); }
.tag-activist { background:var(--color-activist-bg); color:var(--color-activist-ink); }

/* Complete content workflow */
.home-intro { border-bottom:1px solid var(--color-border-light); }
.home-slogan { padding:32px 16px 0; text-align:center; color:var(--color-accent-strong); font-size:clamp(1.35rem,3vw,2rem); font-weight:800; }
.home-intro .mission-statement { padding-top:12px; }
.page-section { padding:20px 0 48px; }
.page-section > h2 { font-size:1.5rem; margin-bottom:20px; }
.card-link { display:flex; flex-direction:column; color:inherit; text-decoration:none; min-width:0; }
.card-link:hover { text-decoration:none; }
.card-link > .card,.card-link > .person-card { flex:1; width:100%; }
.card-read-more { display:block; color:var(--color-accent-strong); font-weight:700; font-size:0.85rem; margin-top:10px; padding-left:2px; }
.card-link-static { cursor:default; }
.card-link-static .card-read-more { color:var(--color-text-muted); font-weight:500; }
.about-plain-copy { white-space:pre-wrap; }
.content-card { padding:0; overflow:hidden; }
.card-image { width:100%; height:190px; object-fit:cover; display:block; border-bottom:1px solid var(--color-border-light); }
.card-body { padding:22px; }
.card-body .tags { margin-top:12px; }
.person-photo-placeholder { width:120px; height:120px; border-radius:50%; display:grid; place-items:center; margin:0 auto 12px; background:var(--color-shadow-rust); color:var(--color-accent-strong); font-size:2rem; font-weight:800; }
.person-photo-placeholder.large { width:180px; height:180px; margin:0; font-size:3rem; flex:0 0 auto; }
.contact-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; padding-bottom:28px; }
.contact-item,.social-card { border:1px solid var(--color-border-light); background:var(--color-card-bg); padding:24px; border-radius:4px; }
.contact-item h2,.social-card h3 { font-size:1.05rem; margin-bottom:8px; }
.social-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; }
.social-card { text-align:center; }
.social-icon { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; margin-bottom:8px; padding:6px 10px; border-radius:999px; background:var(--color-accent); color:var(--color-text); font-size:1.25rem; font-weight:700; overflow-wrap:anywhere; }
.social-card img,.qr-figure img { width:min(220px,100%); aspect-ratio:1; object-fit:contain; display:block; margin:12px auto; background:var(--color-white); padding:8px; border:1px solid var(--color-border-light); }
.action-link { display:inline-block; margin:12px 8px 0 0; padding:9px 14px; border:1px solid var(--color-accent-strong); border-radius:4px; font-weight:700; text-decoration:none; }
.action-link:hover { color:var(--color-white); background:var(--color-accent-strong); text-decoration:none; }
.back-link { display:inline-block; margin-bottom:24px; }
.detail-content { max-width:900px; }
.detail-content > h1,.person-detail-header h1 { font-size:clamp(2rem,5vw,3rem); line-height:1.2; margin:12px 0; }
.detail-summary { color:var(--color-secondary); font-size:1.1rem; margin-bottom:20px; }
.detail-section { margin-top:40px; padding-top:28px; border-top:1px solid var(--color-border-light); }
.detail-section h2 { margin-bottom:16px; }
.detail-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:24px; }
.related-list { display:grid; gap:12px; }
.related-list a { display:flex; flex-direction:column; padding:16px; border:1px solid var(--color-border-light); text-decoration:none; background:var(--color-empty-bg); }
.related-list a:hover { border-color:var(--color-accent-strong); }
.related-list span { color:var(--color-secondary); font-size:0.9rem; margin-top:4px; }
.content-image { margin:28px 0; }
.content-image img { width:100%; max-height:720px; object-fit:contain; background:var(--color-white); }
.content-image figcaption,.qr-figure figcaption { text-align:center; color:var(--color-secondary); font-size:0.85rem; margin-top:6px; }
.article-content h2,.article-content h3 { margin:28px 0 12px; }
.article-content ul { margin:0 0 20px 24px; }
.article-content li { margin-bottom:8px; }
.empty-copy { color:var(--color-secondary); }
.resource-detail { display:grid; grid-template-columns:minmax(180px,280px) minmax(0,1fr); gap:32px; align-items:start; }
.resource-cover { width:100%; max-height:440px; object-fit:contain; background:var(--color-white); border:1px solid var(--color-border-light); }
.person-detail-header { display:flex; align-items:center; gap:28px; margin-bottom:28px; }
.person-detail-header > img { width:180px; height:180px; object-fit:cover; border-radius:50%; flex:0 0 auto; }
.achievement-list { margin-left:20px; }
.admin-editor-tools { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:8px; padding:10px; border:1px solid var(--color-border-light); background:var(--color-editor-overlay); }
.admin-editor-tools .admin-btn { min-height:36px; margin:0; }
.admin-editor-help,.admin-help { flex-basis:100%; display:block; color:var(--color-secondary); font-size:0.75rem; line-height:1.55; margin-top:2px; }
.content-align { max-width:100%; }
.content-align-left { text-align:left; }
.content-align-center { text-align:center; }
.content-align-right { text-align:right; }
.output-two-col { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; margin-top:24px; }
.output-col { min-width:0; }
.output-col > h2 { border-bottom:3px solid var(--color-accent); padding-bottom:10px; margin-bottom:18px; }
@media (max-width:768px) { .output-two-col { grid-template-columns:1fr; gap:24px; } }
.search-summary { margin:0 0 20px; color:var(--color-secondary); }
.search-results { display:grid; gap:16px; padding-bottom:24px; }
.search-results > a { display:block; padding:20px 22px; border:1px solid var(--color-border-light); background:var(--color-card-bg); text-decoration:none; }
.search-results > a:hover { border-color:var(--color-accent-strong); box-shadow:0 4px 12px var(--color-shadow-soft); }
.search-results h2 { margin:10px 0 6px; font-size:1.2rem; }
.search-results p { color:var(--color-secondary); }
.search-controls {
  display:grid;
  grid-template-columns:minmax(240px,2fr) repeat(2,minmax(150px,1fr)) auto;
  gap:14px;
  align-items:end;
  margin:0 0 24px;
  padding:20px;
  border:1px solid var(--color-border);
  background:var(--color-surface);
}
.search-controls label { display:grid; gap:7px; font-weight:700; }
.search-controls label span { font-size:.82rem; color:var(--color-secondary); }
.search-controls input,.search-controls select {
  width:100%;
  min-height:44px;
  padding:9px 11px;
  border:1px solid var(--color-border);
  background:var(--color-card-bg);
  color:var(--color-text);
  font:inherit;
}
.search-filter-submit {
  min-height:44px;
  padding:9px 18px;
  border:1px solid var(--color-accent-strong);
  background:var(--color-accent-strong);
  color:var(--color-white);
  font-weight:700;
  cursor:pointer;
}
.search-result-meta { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.search-result-meta time { color:var(--color-secondary); font-family:var(--font-mono); font-size:.82rem; }
.safe-content-fallback { white-space:pre-wrap; }
.back-to-top {
  position:fixed;
  z-index:70;
  right:24px;
  bottom:24px;
  width:46px;
  height:46px;
  border:1px solid var(--color-accent-strong);
  background:var(--color-surface);
  color:var(--color-accent-strong);
  font-size:1.35rem;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transform:translateY(10px);
  transition:opacity .18s ease,transform .18s ease,background .18s ease;
}
.back-to-top.is-visible { opacity:1; pointer-events:auto; transform:translateY(0); }
.back-to-top:hover,.back-to-top:focus-visible { background:var(--color-accent-strong); color:var(--color-white); }

/* V18 — Research archive visual system, selected from the visual prototype. */
body { background-color:var(--archive-paper); }
h1,h2,h3,.home-slogan,.card-title,.plan-card h3,.person-card h3 { font-family:var(--font-display); font-weight:500; }
.site-wrapper { position:relative; isolation:isolate; background:transparent; }
.site-wrapper::before,.site-wrapper::after { content:""; position:absolute; z-index:-1; top:0; bottom:0; width:1px; background:var(--color-rail); pointer-events:none; }
.site-wrapper::before { left:max(34px,calc(50% - 680px)); }
.site-wrapper::after { right:max(34px,calc(50% - 680px)); }
.site-rail { position:fixed; z-index:30; top:170px; color:var(--color-rail-label); font:700 10px/1.7 var(--font-mono); letter-spacing:.18em; writing-mode:vertical-rl; pointer-events:none; }
.site-rail-left { left:max(9px,calc(50% - 710px)); }
.site-rail-right { right:max(9px,calc(50% - 710px)); }
.archive-eyebrow { display:block; color:var(--archive-rust); font:700 11px/1.4 var(--font-mono); letter-spacing:.17em; text-transform:uppercase; }
.main-nav { height:74px; background:var(--color-nav-backdrop); border-top:3px solid var(--archive-orange); border-bottom:1px solid var(--color-border); backdrop-filter:blur(12px); }
.nav-inner { max-width:1240px; height:70px; padding:0 26px; gap:8px; }
.nav-logo { font-family:var(--font-display); font-size:1.05rem; text-decoration:none; }
.nav-logo img { width:50px; height:50px; border:1px solid var(--color-shadow-rust); }
.nav-links { margin-left:20px; gap:3px; }
.nav-links a { position:relative; padding:10px 11px; border-radius:0; text-decoration:none; }
.nav-links a:hover,.nav-links a[aria-current="page"] { background:transparent; color:var(--archive-rust); }
.nav-links a[aria-current="page"] { border-bottom:0; }
.nav-links a[aria-current="page"]::after { content:""; position:absolute; left:10px; right:10px; bottom:4px; height:2px; background:var(--archive-orange); }
.search-inline input { background:var(--color-surface-alt); border-color:var(--color-border-light); border-radius:0; }
.search-btn,.font-btn,.hc-toggle { border-radius:0; }
.hero-carousel { height:min(680px,calc(100vh - 74px)); min-height:560px; max-height:none; background:var(--color-hero-band); border-bottom:1px solid var(--color-border); }
.hero-carousel::before { display:none; }
.carousel-slide { background:var(--color-hero-slide); align-items:stretch; transition:opacity .65s var(--ease-out); }
.carousel-link { position:absolute; inset:0; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); align-items:stretch; max-width:1240px; width:calc(100% - 70px); margin:auto; border-left:1px solid var(--color-rail-strong); border-right:1px solid var(--color-rail-strong); color:var(--archive-ink); }
.carousel-link:hover { text-decoration:none; }
.carousel-overlay { display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; width:auto; padding:72px 58px; background:transparent; }
.carousel-overlay h2 { max-width:720px; color:var(--archive-ink); font-size:clamp(3rem,5.7vw,5.4rem); font-weight:500; line-height:1.06; letter-spacing:-.035em; margin:24px 0; }
.carousel-overlay p { max-width:580px; color:var(--archive-ink); font-size:1.05rem; line-height:1.9; }
.carousel-overlay strong { display:inline-block; margin-top:28px; padding:13px 19px; background:var(--archive-rust); color:var(--color-white); font-size:.86rem; }
.carousel-art { align-self:stretch; margin:42px 42px 42px 0; background-image:linear-gradient(var(--color-carousel-overlay-top),var(--color-carousel-overlay-bottom)),var(--carousel-image); background-position:center; background-size:cover; background-repeat:no-repeat; clip-path:polygon(9% 0,100% 0,100% 91%,90% 100%,0 100%,0 9%); }
.carousel-dots { bottom:20px; }
.carousel-dot { width:26px; height:3px; border-radius:0; background:var(--color-dot-muted); }
.carousel-dot.active { background:var(--archive-rust); }
.carousel-controls { bottom:16px; right:max(54px,calc(50% - 590px)); }
.carousel-controls button { border-radius:0; background:var(--color-overlay-control); border:0; }
.home-intro { position:relative; border:0; background:var(--archive-rust); color:var(--color-white); }
.home-intro .container { display:grid; grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr); gap:70px; align-items:start; padding-top:68px; padding-bottom:72px; }
.home-intro .archive-eyebrow { color:var(--color-intro-eyebrow); padding-top:14px; }
.home-slogan { grid-column:2; grid-row:1; padding:0; text-align:left; color:var(--color-white); font-size:clamp(2.2rem,4vw,3.7rem); line-height:1.35; font-weight:400; }
.home-intro .mission-statement { grid-column:2; padding:16px 0 0; margin:0; text-align:left; color:var(--color-intro-body); font-size:1.05rem; }
.plans-grid-section { padding:84px 0 110px; border-top:0; background:transparent; }
.archive-section-heading { display:flex; justify-content:space-between; align-items:end; padding-bottom:18px; border-bottom:1px solid var(--color-border); margin-bottom:0; }
.archive-section-heading h2 { margin:10px 0 0; font-size:clamp(2.2rem,4vw,3.4rem); }
.archive-section-heading>p { color:var(--color-secondary); font:italic 13px Georgia,serif; }
.plan-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; counter-reset:plan; }
.plan-card-link { position:relative; border-right:1px solid var(--color-border); }
.plan-card-link:first-child { border-left:1px solid var(--color-border); }
.plan-card { min-height:280px; padding:38px 30px; border:0; border-radius:0; background:var(--color-surface-strong); box-shadow:none; counter-increment:plan; }
.plan-card::before { content:"0" counter(plan); display:block; color:var(--archive-rust); font:700 12px var(--font-mono); }
.plan-card h3 { margin:44px 0 8px; font-size:2rem; }
.plan-card .plan-subtitle { font-family:inherit; font-weight:500; color:var(--archive-rust); }
.plan-card-link:hover .plan-card { transform:none; background:var(--color-surface); box-shadow:inset 0 -4px var(--archive-orange); }
.container { max-width:1240px; padding-left:54px; padding-right:54px; }
.page-header { padding:88px 0 42px; }
.page-header h1 { margin:20px 0 24px; max-width:920px; font-size:clamp(3.5rem,7.5vw,6.7rem); font-weight:500; line-height:1; letter-spacing:-.045em; }
.page-title-rule { width:88px; height:5px; background:var(--archive-orange); }
.page-section { padding:30px 0 72px; }
.page-section>h2,.activities-col>h2,.team-col>h2,.output-col>h2 { padding:14px 0; border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); font-size:1.55rem; font-weight:500; }
.content-body { max-width:900px; padding:38px 46px; margin:0 auto 54px; background:var(--color-surface); border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); }
.card-grid { gap:20px; }
.card,.person-card,.contact-item,.social-card { border:1px solid var(--color-border); border-radius:0; background:var(--color-surface); box-shadow:none; }
.card:hover,.person-card:hover { transform:translateY(-3px); border-color:var(--archive-rust); box-shadow:7px 7px 0 var(--color-shadow-rust); }
.content-card { border-radius:0; }
.card-image { height:210px; filter:saturate(.72) contrast(.96); }
.card-body { padding:24px; }
.card-title { font-size:1.45rem; line-height:1.35; }
.card-summary { color:var(--color-secondary); line-height:1.75; }
.section-tag,.tag { border-radius:0; background:var(--color-tag-bg); color:var(--archive-rust); font:700 11px var(--font-mono); letter-spacing:.05em; }
.card-read-more { color:var(--archive-rust); font-family:var(--font-mono); letter-spacing:.04em; }
.activities-two-col,.output-two-col,.team-two-col { gap:42px; margin-top:0; padding-bottom:66px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.activities-col,.output-col,.team-col { min-width:0; }
.output-col>h2 { border-bottom:1px solid var(--color-border); margin-bottom:20px; }
.person-card { text-align:left; padding:26px; }
.person-card img,.person-photo-placeholder { width:108px; height:108px; margin:0 0 18px; border-radius:0; clip-path:polygon(10% 0,100% 0,100% 90%,90% 100%,0 100%,0 10%); }
.person-card h3 { margin-top:15px; font-size:1.4rem; }
.contact-grid { padding:20px 0 50px; }
.contact-item,.social-card { padding:28px; }
.detail-content { max-width:960px; margin-top:56px; padding:48px 58px 70px; }
.detail-content>h1,.person-detail-header h1 { font-size:clamp(2.8rem,6vw,5rem); font-weight:500; letter-spacing:-.035em; }
.article-content { font-family:var(--font-reading); font-size:1.08rem; line-height:2; }
.article-content p { margin-bottom:1.3em; }
.related-list a,.search-results>a { background:var(--color-surface); border-radius:0; border-color:var(--color-border); }
.back-link,.action-link { border-radius:0; font-family:var(--font-mono); }
.admin-heading h1,.admin-form h3,.admin-table,.admin-nav,.admin-subnav,.admin-form input,.admin-form textarea,.admin-form select,.admin-btn { font-family:var(--font-interface); }
#admin-app { margin-top:44px; margin-bottom:70px; background:var(--color-surface); border:1px solid var(--color-border); }
.admin-table,.admin-form { background:var(--color-surface-bright); }
.login-form { margin-top:90px; margin-bottom:100px; border-radius:0; border-color:var(--color-border); background:var(--color-surface-bright); box-shadow:10px 10px 0 var(--color-shadow-rust); }
.site-footer { position:relative; padding:0; margin-top:auto; background:var(--color-footer); color:var(--color-footer-text); border-top:5px solid var(--archive-orange); }
.footer-archive-label { max-width:1240px; margin:auto; padding:18px 54px; color:var(--color-footer-muted); border-bottom:1px solid var(--color-footer-line); font:700 11px var(--font-mono); letter-spacing:.16em; }
.footer-grid { grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr); gap:50px; max-width:1240px; padding:48px 54px 40px; }
.footer-brand { display:flex; gap:18px; align-items:flex-start; }
.footer-brand img { width:72px; height:72px; border-radius:50%; }
.footer-brand strong { display:block; color:var(--color-white); font-family:var(--font-display); font-size:1.25rem; }
.footer-brand span { display:block; color:var(--color-footer-muted); font:10px var(--font-mono); letter-spacing:.08em; margin-top:3px; }
.footer-brand p { max-width:360px; color:var(--color-footer-muted); font-size:.84rem; margin-top:15px; }
.footer-col a { color:var(--color-footer-link); font-size:.82rem; padding:4px 0; text-decoration:none; }
.footer-col a:hover { color:var(--color-footer-link-hover); }
.footer-bottom { margin:0; padding:14px 54px 18px; border-top:1px solid var(--color-footer-line); color:var(--color-footer-bottom); }
@media (max-width:1024px) { .site-rail{display:none}.carousel-link{width:calc(100% - 36px);grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr)}.carousel-overlay{padding:54px 38px}.carousel-art{margin:32px 32px 32px 0}.container{padding-left:34px;padding-right:34px}.footer-grid{padding-left:34px;padding-right:34px}.footer-archive-label{padding-left:34px;padding-right:34px} }
@media (max-width:768px) { .main-nav{height:64px}.nav-inner{height:60px}.hero-carousel{height:640px;min-height:0}.carousel-link{width:100%;grid-template-columns:minmax(0,1fr);border:0}.carousel-art{position:absolute;inset:0;margin:0;clip-path:none;opacity:.30}.carousel-overlay{position:relative;z-index:1;justify-content:flex-end;padding:62px 28px 84px;background:linear-gradient(180deg,var(--color-mobile-gradient-top),var(--archive-paper) 78%)}.carousel-overlay h2{font-size:clamp(2.8rem,13vw,4.5rem)}.carousel-controls{right:18px}.home-intro .container{grid-template-columns:minmax(0,1fr);gap:20px;padding-top:52px;padding-bottom:56px}.home-slogan{grid-column:1;grid-row:auto}.home-intro .mission-statement{grid-column:1}.plan-card-grid{grid-template-columns:minmax(0,1fr)}.plan-card-link,.plan-card-link:first-child{border-left:1px solid var(--color-border);border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.container{padding-left:22px;padding-right:22px}.page-header{padding-top:64px}.page-header h1{font-size:clamp(3.2rem,16vw,5.3rem)}.content-body,.detail-content{padding:32px 24px}.footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;padding:38px 24px}.footer-brand{grid-column:1/-1}.footer-archive-label{padding:16px 24px}.footer-bottom{padding-left:24px;padding-right:24px}.activities-two-col,.output-two-col,.team-two-col{grid-template-columns:minmax(0,1fr)} }
@media (max-width:480px) { .archive-section-heading{align-items:flex-start}.archive-section-heading>p{display:none}.footer-grid{grid-template-columns:minmax(0,1fr)}.footer-brand{grid-column:auto}.footer-brand img{width:58px;height:58px}.person-detail-header{flex-direction:column}.detail-content{margin-top:24px}.page-header h1{letter-spacing:-.055em}.nav-logo span{display:none} }
@media (max-width:768px) { .resource-detail { grid-template-columns:1fr; } .resource-cover { max-width:300px; margin:0 auto; } .person-detail-header { align-items:flex-start; } .person-detail-header > img,.person-photo-placeholder.large { width:120px; height:120px; } }
@media (max-width:480px) { .person-detail-header { flex-direction:column; } }

/* V18.1 — interaction performance, responsive navigation, and accessibility. */
.carousel-slide { transition:opacity .24s var(--ease-out); contain:paint; }
.card,.person-card { transition:transform .16s ease-out,border-color .16s ease-out,box-shadow .16s ease-out; }
.card-image { filter:none; }
button,a { touch-action:manipulation; }

.navigation-progress { position:fixed; z-index:4000; top:0; left:0; right:0; height:3px; overflow:hidden; pointer-events:none; }
.navigation-progress span { display:block; width:100%; height:100%; background:var(--archive-orange); opacity:0; transform:scaleX(0); transform-origin:left; transition:transform .18s ease-out,opacity .12s linear; }
.navigation-progress.is-active span { opacity:1; transform:scaleX(.74); transition-duration:.8s,.12s; }

.search-inline input { height:44px; }
.search-btn,.font-btn,.hc-toggle { min-width:44px; min-height:44px; }
.hamburger { min-width:40px; min-height:40px; align-items:center; justify-content:center; }
.carousel-controls button { min-width:44px; height:44px; }
.carousel-dot { position:relative; width:38px; height:38px; background:transparent; }
.carousel-dot::after { content:""; position:absolute; left:5px; right:5px; top:50%; height:3px; transform:translateY(-50%); background:var(--color-dot-muted); }
.carousel-dot.active { background:transparent; }
.carousel-dot.active::after { height:5px; background:var(--archive-rust); }
.card-link:focus-visible .card,.card-link:focus-visible .person-card,.plan-card-link:focus-visible .plan-card { border-color:var(--archive-rust); box-shadow:0 0 0 3px var(--archive-paper),0 0 0 6px var(--archive-rust); }
.card-link:active .card,.card-link:active .person-card,.plan-card-link:active .plan-card { transform:translateY(0); box-shadow:inset 0 -4px var(--archive-orange); }
.search-btn:active,.font-btn:active,.hc-toggle:active,.carousel-controls button:active,.admin-btn:active { transform:translateY(1px); }
.hc-toggle[aria-pressed=true] { color:var(--color-white); background:var(--archive-rust); border-color:var(--archive-rust); }

.admin-table-scroll { width:100%; overflow:auto; border:1px solid var(--color-border-light); background:var(--color-surface-bright); scrollbar-gutter:stable; }
.admin-table { display:table; min-width:760px; border:0; }
.admin-table th { position:sticky; top:0; z-index:1; }
.admin-upload-control { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.admin-upload-control input { flex:1 1 260px; }
.achievement-row { flex-wrap:wrap; }
.achievement-row input { flex:1 1 180px !important; }
.admin-btn[disabled],.login-form button[disabled] { cursor:wait; opacity:.66; }
.admin-loading[role=status] { min-height:150px; display:grid; place-items:center; }

html[data-high-contrast=true] { --archive-paper:#000; --archive-ink:#fff; --archive-rust:#FFB000; --archive-orange:#FFB000; --archive-green:#00FFFF; }
html[data-high-contrast=true] body,
html[data-high-contrast=true] .main-nav,
html[data-high-contrast=true] .hero-carousel,
html[data-high-contrast=true] .carousel-slide,
html[data-high-contrast=true] .home-intro,
html[data-high-contrast=true] .plans-grid-section,
html[data-high-contrast=true] .plan-card,
html[data-high-contrast=true] .card,
html[data-high-contrast=true] .person-card,
html[data-high-contrast=true] .contact-item,
html[data-high-contrast=true] .social-card,
html[data-high-contrast=true] .content-body,
html[data-high-contrast=true] .detail-content,
html[data-high-contrast=true] .login-form,
html[data-high-contrast=true] #admin-app,
html[data-high-contrast=true] .admin-form,
html[data-high-contrast=true] .admin-table-scroll,
html[data-high-contrast=true] .admin-table,
html[data-high-contrast=true] .site-footer { background:#000 !important; color:#fff; }
html[data-high-contrast=true] .carousel-overlay h2,
html[data-high-contrast=true] .carousel-overlay p,
html[data-high-contrast=true] .home-slogan,
html[data-high-contrast=true] .mission-statement,
html[data-high-contrast=true] .card-title,
html[data-high-contrast=true] .card-summary,
html[data-high-contrast=true] .person-card p,
html[data-high-contrast=true] .footer-brand p { color:#fff; }
html[data-high-contrast=true] .archive-eyebrow,
html[data-high-contrast=true] .card-read-more,
html[data-high-contrast=true] .footer-col a { color:#FFB000; }
html[data-high-contrast=true] .carousel-overlay strong,
html[data-high-contrast=true] .section-tag,
html[data-high-contrast=true] .tag { background:#FFB000; color:#000; }
html[data-high-contrast=true] input,
html[data-high-contrast=true] textarea,
html[data-high-contrast=true] select,
html[data-high-contrast=true] button { background:#000; color:#fff; }
html[data-high-contrast=true] .carousel-art { opacity:.38; }

@media (max-width:1100px) {
  .nav-inner { position:relative; }
  .nav-links { display:none; position:absolute; z-index:120; top:70px; left:0; right:0; margin:0; padding:18px 26px 24px; flex-direction:column; gap:2px; max-height:calc(100vh - 70px); overflow-y:auto; background:var(--color-surface-strong); border-bottom:2px solid var(--archive-rust); box-shadow:0 14px 24px var(--color-shadow-nav); }
  .nav-links.open { display:flex; }
  .nav-links a { min-height:44px; display:flex; align-items:center; font-size:.95rem; }
  .hamburger { display:flex; }
  .search-inline input,.search-btn,.font-btn,.hc-toggle,.hamburger { min-height:44px; }
  .search-btn,.font-btn,.hc-toggle,.hamburger { min-width:44px; }
  html[data-high-contrast=true] .nav-links { background:#000; }
}

@media (max-width:768px) {
  .search-controls { grid-template-columns:1fr; }
  .search-filter-submit { width:100%; }
  .back-to-top { right:14px; bottom:14px; }
  .nav-links { top:60px; max-height:calc(100vh - 60px); }
  .search-inline input { width:74px; min-width:54px; height:44px; font-size:.75rem; }
  .search-btn,.font-btn,.hc-toggle { min-width:44px; min-height:44px; padding:4px 7px; }
  .carousel-slide { transition-duration:.18s; }
  .carousel-controls { bottom:12px; }
  .carousel-dots { bottom:12px; left:20px; transform:none; }
  .admin-form { width:calc(100% - 24px); max-height:90vh; padding:24px 18px; }
  #admin-app { padding:18px 14px; }
  .nav-settings-panel { position:fixed; top:64px; right:12px; }
}

@media (prefers-reduced-motion:reduce) {
  .back-to-top { transition:none; }
}

/* V21 — quieter titles, horizontal research cards, and flexible About blocks. */
.page-header h1 { font-size:clamp(2.7rem,5.4vw,4.8rem); line-height:1.06; letter-spacing:-.035em; }
.detail-content>h1,.person-detail-header h1 { font-size:clamp(2.35rem,4.8vw,4.15rem); }
.carousel-overlay h2 { font-size:clamp(1.95rem,3.65vw,3.2rem); }
.home-slogan { font-size:clamp(1.8rem,3.25vw,3rem); }
.home-slogan-link { text-decoration:none; transition:text-decoration-color .16s ease-out,color .16s ease-out; }
.home-slogan-link:hover,.home-slogan-link:focus-visible { color:var(--color-white); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:.18em; }
.about-custom-block>article { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:28px; padding:28px; background:var(--color-surface); border:1px solid var(--color-border); }
.about-custom-block>article>img { width:100%; max-height:260px; object-fit:cover; }
.output-col .activity-card-grid { gap:14px; }
.output-col .activity-card-with-image { grid-template-columns:minmax(132px,.72fr) minmax(0,1.6fr); }
.output-col .activity-card .card-image { min-height:132px; max-height:158px; aspect-ratio:4 / 3; }
@media (max-width:768px) { .page-header h1 { font-size:clamp(2.35rem,11vw,3.6rem); }.carousel-overlay h2 { font-size:clamp(1.9rem,9vw,3rem); }.home-slogan { font-size:clamp(1.7rem,8vw,2.5rem); }.about-custom-block>article { grid-template-columns:1fr; gap:18px; padding:22px; }.output-col .activity-card-with-image { display:block; }.output-col .activity-card .card-image { width:100%; height:auto; min-height:0; max-height:none; aspect-ratio:4 / 3; } }

@media (max-width:480px) {
  .nav-logo img { width:44px; height:44px; }
  .nav-actions { gap:2px; }
  .search-inline input { width:58px; min-width:48px; }
  .carousel-dot { width:44px; height:44px; }
  .admin-heading { align-items:flex-start; }
  .admin-nav,.admin-subnav { flex-wrap:nowrap; overflow-x:auto; padding-bottom:10px; scrollbar-gutter:stable; }
  .admin-nav button,.admin-subnav button { min-height:44px; white-space:nowrap; }
}

/* V19 — warm community typography, editable community pages, and visual editor. */
.admin-heading,.admin-form,.admin-table,.admin-nav,.admin-subnav,.admin-btn { font-family:var(--font-interface); }
h1,h2,h3,.home-slogan,.card-title,.plan-card h3,.person-card h3,.page-header h1 { letter-spacing:-.018em; }
.nav-logo,.nav-links a,.nav-actions { font-family:var(--font-interface); letter-spacing:.01em; }
.nav-links a { font-weight:600; font-size:.84rem; }
.carousel-overlay h2 { font-family:var(--font-display); font-weight:500; letter-spacing:-.025em; }
.carousel-overlay p,.article-content,.content-body>p,.contact-item p,.support-copy-grid { font-family:var(--font-reading); }
.article-content { font-size:1.1rem; line-height:2.02; }
.about-section,.support-section { padding:42px 0 70px; }
.about-intro { padding-top:28px; padding-bottom:30px; }
.about-intro-block { border-left:4px solid var(--archive-orange); padding:12px 0 12px 26px; }
.about-intro-block h2 { font-size:clamp(2rem,4.2vw,3.6rem); margin:12px 0 20px; }
.about-method-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); border-top:1px solid var(--color-border); border-left:1px solid var(--color-border); }
.about-method-card { min-height:265px; padding:30px 26px; border-right:1px solid var(--color-border); border-bottom:1px solid var(--color-border); background:var(--color-surface); }
.about-method-card>span { color:var(--archive-rust); font:700 11px var(--font-mono); letter-spacing:.14em; }
.about-method-card h3,.about-principles h3 { margin:32px 0 10px; font-size:1.45rem; }
.about-method-card img { width:100%; max-height:140px; object-fit:cover; margin:16px 0 0; filter:saturate(.76); }
.about-method-card .article-content,.about-principles .article-content { font-size:.98rem; line-height:1.8; }
.about-timeline { list-style:none; margin:0; padding:0; border-left:1px solid var(--color-border); }
.about-timeline li { display:grid; grid-template-columns:160px minmax(0,1fr); gap:34px; position:relative; padding:0 0 44px 30px; }
.about-timeline li::before { content:""; position:absolute; left:-5px; top:7px; width:9px; height:9px; background:var(--archive-orange); }
.about-timeline-date { color:var(--archive-rust); font:700 12px/1.6 var(--font-mono); letter-spacing:.08em; }
.about-timeline h3 { font-size:1.55rem; margin:0 0 10px; }
.about-timeline img { width:min(360px,100%); max-height:240px; object-fit:cover; margin:0 0 16px; }
.about-principles { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:0; border-top:1px solid var(--color-border); border-left:1px solid var(--color-border); }
.about-principles article { padding:26px; border-right:1px solid var(--color-border); border-bottom:1px solid var(--color-border); }
.about-principles h3 { margin-top:0; }
.about-contact { padding-bottom:82px; }
.support-section { border-top:1px solid var(--color-border); }
.support-section>h2 { font-size:clamp(2rem,4vw,3.4rem); margin:10px 0 26px; }
.support-copy-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:18px; }
.support-copy-grid article { padding:25px; background:var(--color-surface); border:1px solid var(--color-border); }
.support-copy-grid h3 { font-size:1.45rem; margin-bottom:10px; }
.impact-metric-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1px; background:var(--color-border); border:1px solid var(--color-border); }
.impact-metric-grid article { min-height:196px; padding:27px 23px; background:var(--color-surface); }
.impact-metric-grid strong { display:block; color:var(--archive-rust); font-family:var(--font-display); font-size:clamp(2.2rem,4vw,3.8rem); font-weight:500; line-height:1; }
.impact-metric-grid h3 { margin:20px 0 7px; font-size:1.15rem; }
.impact-metric-grid p,.impact-metric-grid small { color:var(--color-secondary); font-size:.86rem; }
.impact-metric-grid small { display:block; margin-top:12px; }
.supporter-logo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1px; background:var(--color-border); border:1px solid var(--color-border); }
.supporter-logo-grid article { display:grid; place-items:center; min-height:124px; padding:24px; background:var(--color-surface); }
.supporter-logo-grid img { max-width:150px; max-height:74px; object-fit:contain; mix-blend-mode:multiply; filter:grayscale(.15); }
.supporter-logo-grid span { color:var(--color-secondary); font-family:var(--font-display); text-align:center; }
.admin-rich-editor { min-height:190px; padding:14px 15px; border:1px solid var(--color-border-light); background:var(--color-editor); color:var(--color-text); line-height:1.72; outline:0; overflow:auto; }
.admin-rich-editor:focus { border-color:var(--archive-rust); box-shadow:0 0 0 3px var(--color-shadow-focus); }
.admin-rich-editor p,.admin-rich-editor h2,.admin-rich-editor h3,.admin-rich-editor ul,.admin-rich-editor figure { margin:0 0 12px; }
.admin-rich-editor h2 { font-size:1.35rem; }.admin-rich-editor h3 { font-size:1.15rem; }.admin-rich-editor ul { padding-left:24px; }.admin-rich-editor img { max-width:100%; max-height:360px; object-fit:contain; }.admin-rich-editor figure { padding:8px; border:1px dashed var(--color-border-light); }
html[data-high-contrast=true] .admin-rich-editor,html[data-high-contrast=true] .about-method-card,html[data-high-contrast=true] .support-copy-grid article,html[data-high-contrast=true] .impact-metric-grid article,html[data-high-contrast=true] .supporter-logo-grid article { background:#000; color:#fff; }

/* V20 — compact shared media and readable carousel */
.card-image { aspect-ratio:4 / 3; height:auto; object-fit:cover; }
.hero-carousel { height:clamp(420px,52vw,540px); min-height:420px; }
.carousel-link { grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); }
.carousel-overlay { padding:48px 46px; }
.carousel-overlay h2 { max-width:620px; font-size:clamp(2.05rem,4.05vw,3.7rem); line-height:1.12; margin:16px 0; }
.carousel-overlay p { display:-webkit-box; max-width:540px; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; line-height:1.65; }
.carousel-overlay strong { margin-top:18px; padding:10px 15px; }
.carousel-art { align-self:center; aspect-ratio:4 / 3; margin:0 34px 0 0; width:calc(100% - 34px); max-height:390px; }
.person-summary { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.admin-link-panel { display:flex; gap:8px; flex-wrap:wrap; width:100%; padding-top:8px; }
.admin-link-panel input { flex:1 1 180px; min-width:0; }
.admin-color-picker { width:38px; min-height:36px; padding:2px; border:1px solid var(--color-border-light); background:var(--color-white); }
@media (max-width:768px) { .hero-carousel { height:500px; min-height:0; }.carousel-overlay { padding:44px 28px 78px; }.carousel-overlay h2 { font-size:clamp(2rem,10vw,3.4rem); }.carousel-art { align-self:stretch; width:100%; height:auto; max-height:none; margin:0; aspect-ratio:auto; } }
@media (max-width:768px) { .about-timeline li { grid-template-columns:1fr; gap:8px; padding-left:23px; }.about-method-card { min-height:0; }.about-section,.support-section { padding-bottom:50px; } }

/* Visual refinement: editorial activities and tighter page rhythm. */
.page-section { padding-bottom:50px; }
.home-intro .container { padding-top:56px; padding-bottom:58px; }
.plans-grid-section { padding:64px 0 78px; }
.plan-card { min-height:0; padding:32px 30px; }

.activity-card-grid { gap:14px; }
.activity-card-with-image {
  display:grid;
  grid-template-columns:minmax(150px,1fr) minmax(0,2fr);
  align-items:stretch;
}
.activity-card .card-image {
  width:100%;
  height:100%;
  min-height:150px;
  max-height:180px;
  aspect-ratio:16 / 9;
  object-fit:cover;
  border:0;
}
.activity-card .card-body { min-width:0; padding:18px 20px; }
.activity-card .card-meta { justify-content:space-between; align-items:center; gap:10px; }
.activity-card .card-meta time {
  color:var(--color-secondary);
  font:11px/1.4 var(--font-mono);
  white-space:nowrap;
}
.activity-card .card-title { font-size:1.22rem; line-height:1.3; margin-top:10px; }
.activity-card .card-summary {
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-height:1.55;
}

@media (max-width:768px) {
  .activity-card-with-image { display:block; }
  .activity-card .card-image {
    height:auto;
    min-height:0;
    max-height:none;
    aspect-ratio:16 / 9;
  }
  .activity-card .card-body { padding:16px 18px; }
  .home-intro .container { padding-top:44px; padding-bottom:48px; }
  .plans-grid-section { padding:48px 0 56px; }
  .plan-card { padding:28px 24px; }
}

/* V22 - denser public titles, reliable About modules, and compact researcher profiles. */
.page-header { padding:52px 0 24px; }
.page-header h1 {
  max-width:820px;
  margin:12px 0 16px;
  font-size:clamp(2.35rem,4.6vw,4rem);
  font-weight:600;
  line-height:1.08;
  letter-spacing:-.025em;
  min-width:0;
  overflow-wrap:anywhere;
}
.page-title-rule { width:64px; height:4px; }
.carousel-overlay h2 {
  max-width:560px;
  margin:12px 0;
  font-size:clamp(1.7rem,3.2vw,2.8rem);
  font-weight:600;
  line-height:1.18;
}
.detail-content>h1,.person-detail-header h1 {
  margin:12px 0;
  font-size:clamp(2rem,3.9vw,3.35rem);
  font-weight:600;
  line-height:1.12;
  min-width:0;
  overflow-wrap:anywhere;
}
.archive-section-heading h2,.about-intro-block h2,.support-section>h2 {
  margin-top:8px;
  font-size:clamp(1.65rem,3vw,2.55rem);
  font-weight:600;
  line-height:1.2;
  min-width:0;
  overflow-wrap:anywhere;
}
.page-section>h2,.activities-col>h2,.team-col>h2,.output-col>h2 {
  padding:12px 0;
  font-size:1.35rem;
  font-weight:600;
  min-width:0;
  overflow-wrap:anywhere;
}
.detail-section>h2 {
  margin:0 0 16px;
  font-size:1.35rem;
  font-weight:600;
  line-height:1.25;
  min-width:0;
  overflow-wrap:anywhere;
}
.about-section,.support-section { padding:36px 0 52px; }
.page-section { padding-bottom:44px; }
.about-block-empty {
  margin:0;
  padding:16px 20px;
  border-left:3px solid var(--archive-orange);
  color:var(--color-secondary);
  background:var(--color-empty-bg);
}
.researcher-card-grid { grid-template-columns:minmax(0,1fr); gap:14px; }
.researcher-card {
  display:grid;
  grid-template-columns:108px minmax(0,1fr);
  gap:20px;
  align-items:start;
  padding:24px;
}
.researcher-card .researcher-card-portrait img,
.researcher-card .researcher-card-portrait .person-photo-placeholder {
  width:108px;
  height:132px;
  margin:0;
  object-fit:cover;
}
.researcher-card-content { min-width:0; }
.researcher-card h3 { margin:8px 0 4px; font-size:1.28rem; }
.researcher-card .person-title { margin:0 0 12px; }
.researcher-facts dl { display:grid; gap:8px; margin:0; }
.researcher-facts dl>div { display:grid; grid-template-columns:60px minmax(0,1fr); gap:8px; }
.researcher-facts dt,.researcher-interests>span {
  color:var(--color-secondary);
  font:700 .72rem/1.55 var(--font-mono);
  letter-spacing:.04em;
}
.researcher-facts dd { min-width:0; margin:0; color:var(--color-text); font-size:.86rem; line-height:1.55; overflow-wrap:anywhere; }
.researcher-interests { margin-top:12px; }
.researcher-interest-list { display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 0; padding:0; list-style:none; }
.researcher-interest-list li { padding:4px 8px; border:1px solid var(--color-border-light); color:var(--archive-rust); background:var(--color-tag-bg); font-size:.74rem; line-height:1.4; }
.researcher-facts-detail { margin:0 0 28px; padding:20px 24px; border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); background:var(--color-empty-bg); }
.researcher-facts-detail dl { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.researcher-facts-detail dl>div { display:block; }
.researcher-facts-detail dd { margin-top:4px; font-size:.95rem; }
html[data-high-contrast=true] .about-block-empty,
html[data-high-contrast=true] .researcher-facts-detail,
html[data-high-contrast=true] .researcher-interest-list li { color:var(--color-white); background:var(--color-black); border-color:var(--color-white); }

@media (max-width:768px) {
  .page-header { padding:40px 0 20px; }
  .page-header h1 { margin:8px 0 12px; font-size:clamp(2rem,9.5vw,2.9rem); }
  .carousel-overlay h2 { font-size:clamp(1.65rem,7.8vw,2.45rem); }
  .detail-content>h1,.person-detail-header h1 { font-size:clamp(1.9rem,8vw,2.65rem); }
  .archive-section-heading h2,.about-intro-block h2,.support-section>h2 { font-size:clamp(1.55rem,7vw,2.15rem); }
  .about-section,.support-section { padding:28px 0 44px; }
  .researcher-card { grid-template-columns:88px minmax(0,1fr); gap:16px; padding:20px; }
  .researcher-card .researcher-card-portrait img,
  .researcher-card .researcher-card-portrait .person-photo-placeholder { width:88px; height:108px; }
  .researcher-facts-detail dl { grid-template-columns:minmax(0,1fr); gap:10px; }
}

/* Hallmark · refinement: editorial chapters · scope: public page hierarchy and alignment
 * Pre-emit critique: Philosophy 5 · Hierarchy 5 · Execution 4 · Specificity 5 · Restraint 5 · Variety 4
 */
/* V24 — confirmed About chapters, supporter details, quieter titles, and aligned output columns. */
.page-header {
  padding-top:46px;
  padding-bottom:26px;
}
.page-header h1 {
  max-width:760px;
  margin:10px 0 14px;
  font-size:clamp(2.15rem,3.8vw,3.35rem);
  line-height:1.1;
}
.page-title-rule {
  width:56px;
  height:3px;
}

.about-intro {
  max-width:1100px;
  margin-top:30px;
  margin-bottom:58px;
  padding:48px 54px;
  border-right:0;
  border-left:0;
}
.about-intro-block {
  display:grid;
  grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr);
  gap:64px;
  position:relative;
  padding:0 0 0 24px;
  border-left:0;
}
.about-intro-block::before {
  content:"";
  position:absolute;
  top:4px;
  bottom:auto;
  left:0;
  width:4px;
  height:96px;
  background:var(--archive-orange);
}
.about-intro-heading,
.about-intro-copy {
  min-width:0;
}
.about-intro-heading {
  padding-top:2px;
}
.about-intro-block h2 {
  max-width:10em;
  margin:14px 0 0;
  font-size:clamp(1.75rem,2.55vw,2.35rem);
  line-height:1.24;
}
.about-intro-block .about-plain-copy {
  max-width:38em;
  font-size:1rem;
  line-height:2;
}
.about-intro-block .action-link {
  margin-top:26px;
}
.about-chapter {
  padding:40px 0 46px;
  border-top:1px solid var(--color-border);
}
.about-chapter-inner {
  max-width:960px;
}
.about-chapter-inner > h2 {
  margin:8px 0 20px;
  font-size:clamp(1.6rem,2.65vw,2.25rem);
  font-weight:600;
  line-height:1.24;
}
.about-chapter-image {
  display:block;
  width:100%;
  max-height:360px;
  margin:0 0 24px;
  border:1px solid var(--color-border);
  object-fit:cover;
  aspect-ratio:16 / 7;
}
.about-plain-copy {
  max-width:880px;
  white-space:normal;
  font-family:var(--font-reading);
  font-size:1.02rem;
  line-height:1.9;
}
.about-plain-copy p {
  margin:0 0 1em;
}
.about-plain-copy p:last-child {
  margin-bottom:0;
}

.supporter-logo-grid {
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
}
.supporter-logo-grid article {
  grid-template-rows:78px auto auto;
  align-content:start;
  gap:14px;
  min-height:218px;
  padding:26px 22px;
  text-align:center;
}
.supporter-logo-grid img {
  align-self:center;
  max-width:160px;
  max-height:72px;
}
.supporter-logo-grid h3 {
  align-self:start;
  margin:0;
  font-size:1rem;
  line-height:1.45;
}
.supporter-logo-grid .action-link {
  align-self:end;
  justify-self:center;
  margin:0;
}

.output-two-col {
  align-items:start;
  gap:40px;
}
.output-col {
  display:flex;
  flex-direction:column;
}
.output-col > h2 {
  min-height:58px;
  margin:0 0 20px;
  padding:12px 0;
}
.output-col .activity-card-grid {
  align-content:start;
  gap:24px;
}
.output-col .card-link {
  gap:0;
}
.output-col .activity-card {
  min-height:196px;
}
.output-col .activity-card-with-image {
  grid-template-columns:minmax(150px,.82fr) minmax(0,1.65fr);
}
.output-col .activity-card .card-image {
  width:100%;
  height:100%;
  min-height:196px;
  max-height:none;
  aspect-ratio:4 / 3;
}
.output-col .activity-card .card-body {
  display:flex;
  min-height:196px;
  flex-direction:column;
}
.output-col .activity-card .card-summary {
  margin-bottom:auto;
}
.output-col .card-read-more {
  margin-top:10px;
  min-height:24px;
}

html[data-high-contrast=true] .about-intro,
html[data-high-contrast=true] .supporter-logo-grid article {
  background:var(--color-black);
  color:var(--color-white);
}

@media (max-width:768px) {
  .page-header {
    padding-top:36px;
    padding-bottom:20px;
  }
  .page-header h1 {
    font-size:clamp(1.9rem,8.5vw,2.6rem);
  }
  .about-intro {
    margin-top:22px;
    margin-bottom:40px;
    padding:32px 24px;
  }
  .about-intro-block {
    grid-template-columns:minmax(0,1fr);
    gap:26px;
    padding-left:18px;
  }
  .about-intro-block::before {
    height:70px;
  }
  .about-intro-block h2 {
    max-width:12em;
    font-size:clamp(1.65rem,7vw,2.1rem);
  }
  .about-intro-block .about-plain-copy {
    max-width:none;
    font-size:.98rem;
    line-height:1.9;
  }
  .about-chapter {
    padding:30px 0 38px;
  }
  .about-chapter-image {
    max-height:none;
    aspect-ratio:16 / 9;
  }
  .output-two-col {
    gap:34px;
  }
  .output-col > h2 {
    min-height:0;
  }
  .output-col .activity-card-with-image {
    display:block;
  }
  .output-col .activity-card .card-image {
    height:auto;
    min-height:0;
    aspect-ratio:4 / 3;
  }
  .output-col .activity-card .card-body {
    min-height:176px;
  }
}
