:root {
  --paper: #f3eee2;
  --ink: #0d0d0f;
  --muted: #6a655d;
  --line: #c9c2b5;
  --soft: #e7e0d3;
  --accent: var(--azadi-accent, #c51f2c);
  --link: #a30f20;
  --focus: #1769ff;
  --max: 1180px;
  --narrow: 740px;
  --reading: 700px;
  --reading-urdu: 680px;
  --radius: 2px;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --serif: Georgia, "Times New Roman", serif;
  --urdu: "Noto Nastaliq Urdu", "Jameel Noori Nastaleeq", "Nafees Nastaleeq", "Urdu Typesetting", "Noto Naskh Arabic", serif;
}
html[data-theme="dark"] { --paper:#131313; --ink:#f4f0e8; --muted:#bbb3a7; --line:#4b4842; --soft:#201f1d; --link:#ff8590; }
@media (prefers-color-scheme: dark) { html[data-theme="system"] { --paper:#131313; --ink:#f4f0e8; --muted:#bbb3a7; --line:#4b4842; --soft:#201f1d; --link:#ff8590; } }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); line-height:1.55; text-rendering:optimizeLegibility; }
a { color:inherit; text-decoration-thickness:1px; text-underline-offset:.18em; }
a:hover { color:var(--link); }
img { max-width:100%; height:auto; }
button,input,select,textarea { font:inherit; color:inherit; }
button,a,input,select,textarea { outline-offset:3px; }
:focus-visible { outline:3px solid var(--focus); }
::selection { background:var(--ink); color:var(--paper); }
[hidden] { display:none !important; }

/* Site-wide editorial rhythm -------------------------------------------------
   Keep standing pages, essays and archive prose on one restrained scale.
   Display surfaces such as the Atlas retain their own compact UI typography. */
.page.article .article-header h1 {
  font-size:clamp(2.65rem,4.9vw,4.35rem);
}
.page.article .article-content {
  max-width:var(--reading);
}
.gh-content > :first-child { margin-top:0; }
.gh-content > :last-child { margin-bottom:0; }
.gh-content li + li { margin-top:.34em; }
.gh-content hr { margin-block:2rem; border:0; border-top:1px solid var(--line); }
.gh-content figure { margin-block:1.6rem; }
.gh-content figcaption { margin-top:.45rem; color:var(--muted); font-family:var(--sans); font-size:.76rem; line-height:1.45; }

.i18n-ur { display:none; }
html[lang="ur"] .i18n-en { display:none; }
html[lang="ur"] .i18n-ur { display:inline; }
html[lang="ur"] body { text-align:start; }
.sr-only { 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; }
.skip-link { position:fixed; z-index:9999; top:8px; left:8px; transform:translateY(-160%); padding:.7rem 1rem; background:var(--ink); color:var(--paper); }
.skip-link:focus { transform:none; }
.shell,.shell-wide,.shell-narrow,.shell-reading { width:min(calc(100% - 2rem), var(--max)); margin-inline:auto; }
.shell-wide { --max:1320px; }
.shell-narrow { --max:var(--narrow); }
.shell-reading { --max:var(--reading); }
.shell-urdu { width:min(calc(100% - 2rem), var(--reading-urdu)); margin-inline:auto; }
.muted { color:var(--muted); }
.urdu,[lang="ur"] { font-family:var(--urdu); line-height:2; }
.urdu h1,.urdu h2,.urdu h3,[lang="ur"] h1,[lang="ur"] h2,[lang="ur"] h3 { line-height:1.55; }
.site-header { position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--paper) 94%,transparent); backdrop-filter:blur(12px); border-bottom:1px solid var(--line); }
.header-row { min-height:74px; display:flex; align-items:center; gap:1.5rem; }
.brand { display:flex; align-items:baseline; gap:.75rem; margin-inline-end:auto; text-decoration:none; }
.brand-name,.footer-brand { font-size:1.45rem; font-weight:900; letter-spacing:-.04em; text-decoration:none; }
.brand-kicker { font-size:.72rem; color:var(--muted); white-space:nowrap; }
.brand-logo { max-height:38px; width:auto; }
.header-actions { display:flex; align-items:center; gap:.85rem; }
.site-nav .nav { list-style:none; display:flex; gap:1rem; margin:0; padding:0; }
.site-nav a,.language-nav a,.member-link,.icon-button { font-size:.82rem; text-decoration:none; border:0; background:transparent; padding:.5rem .15rem; cursor:pointer; }
.language-nav { display:flex; gap:.55rem; padding-inline:.75rem; border-inline:1px solid var(--line); }
.nav-toggle { display:none; border:1px solid var(--line); background:transparent; min-height:44px; padding:0 .8rem; }
.site-main { min-height:65vh; }
/* Homepage masthead uses a restrained editorial scale. The previous 14vw/11rem
   display size overwhelmed the rest of the publication at ordinary browser zoom. */
.home-intro {
  padding-block: clamp(3.1rem, 5vw, 4.35rem) clamp(2.15rem, 3.5vw, 3rem);
  max-width: 860px;
}
.home-intro h1 {
  font-size: clamp(3.7rem, 6.3vw, 5.8rem);
  margin: 0;
  line-height: .86;
  letter-spacing: -.065em;
  font-weight: 950;
  text-wrap: balance;
}
.home-kicker,.archive-kicker {
  color:var(--link);
  font-weight:800;
  text-transform:uppercase;
  font-size:.72rem;
  letter-spacing:.09em;
}
.home-deck {
  font-size: clamp(1.12rem, 1.35vw, 1.38rem);
  max-width: 720px;
  line-height: 1.4;
  margin: 1.2rem 0 0;
  text-wrap: pretty;
}
.section-block { padding-block:clamp(2.25rem,3.4vw,3rem); border-top:1px solid var(--line); }
.section-heading { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.section-heading h2 { margin:0; font-size:1.05rem; text-transform:uppercase; letter-spacing:.04em; }
.section-heading > a,.section-heading > span { font-size:.82rem; color:var(--muted); }
.featured-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.featured-grid .post-card:first-child { grid-row:span 3; }
.feed-list { display:grid; }
.feed-list .post-card { border-top:1px solid var(--line); }
.feed-list .post-card:first-child { border-top:0; }
.feed-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:2.5rem 1.75rem; }
.feed-grid .post-card { grid-template-columns:1fr; border-top:0; padding-block:0; }
.feed-grid .post-card-image-link { margin-bottom:.6rem; }
.feed-load-more { display:grid; justify-items:center; margin-top:2.75rem; gap:.6rem; }
.post-card { display:grid; grid-template-columns:minmax(0, .82fr) minmax(0,1.55fr); gap:1.6rem; padding-block:1.5rem; }
.featured-grid .post-card { display:block; padding:0; }
.featured-grid .post-card + .post-card { border-top:1px solid var(--line); padding-top:1.2rem; }
.post-card-image-link { display:block; overflow:hidden; background:var(--soft); }
.post-card-image { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; transition:transform .25s ease; }
.post-card-image-link:hover .post-card-image { transform:scale(1.015); }
.eyebrow-row { display:flex; flex-wrap:wrap; gap:.45rem; align-items:center; margin-bottom:.75rem; }
/* The native Ghost author is the correct byline only when no Atlas
   contributor override exists for a post; that's only knowable after an
   async fetch, so showing it immediately then swapping to the real byline
   a moment later is a correctness problem (a reader briefly sees the wrong
   name), not just a flash of content. Hide it until contributors.js
   resolves which one is right. Browsers without JS never get the .js
   class (set synchronously in theme-init.js), so they see the native
   author immediately and correctly, same as if this rule didn't exist. */
.js [data-native-authors] { visibility:hidden; }
.js [data-contributor-directory],.js [data-native-author-directory] { display:none; }
/* Same problem, one page over: a writer's own archive lists every post by
   their native Ghost account, but a post credited to someone else via an
   Atlas override shouldn't stay listed under this account. Which posts
   that applies to is only knowable after the same async check, so the
   list starts hidden for JS users and contributors.js reveals it (via an
   inline style, since it must win over this class rule) once resolved. */
.js [data-native-author-archive] [data-author-post-list] { visibility:hidden; }
.language-label,.topic-label { font-size:.66rem; font-weight:850; text-transform:uppercase; letter-spacing:.06em; text-decoration:none; }
.language-label { color:var(--link); }
.topic-label { background:var(--ink); color:var(--paper); padding:.1rem .32rem; }
.topic-label:hover { background:var(--link); color:var(--paper); }
.post-card-title { font-size:clamp(1.35rem,2.2vw,2.2rem); line-height:1.05; letter-spacing:-.035em; margin:.25rem 0 .7rem; }
.post-card-title a { text-decoration:none; }
.post-card-excerpt { margin:0 0 1rem; font-size:.95rem; color:color-mix(in srgb,var(--ink) 82%,var(--paper)); }
.post-card-meta,.article-byline { display:flex; flex-wrap:wrap; gap:.5rem .7rem; font-size:.72rem; color:var(--muted); }
.post-card-meta a,.article-byline a { color:inherit; }
.language-split { display:grid; grid-template-columns:1fr 1fr; gap:4rem; }
.compact-list .post-card { grid-template-columns:1fr; border-top:1px solid var(--line); }
.compact-list .post-card-image-link { display:none; }
.compact-list .post-card-title { font-size:1.35rem; }
.explore-links { display:flex; gap:.75rem; flex-wrap:wrap; margin-bottom:1.2rem; }
.explore-links a { border:1px solid var(--ink); padding:.5rem .75rem; text-decoration:none; font-weight:700; }
.tag-cloud { display:flex; flex-wrap:wrap; gap:.55rem; }
.tag-cloud a { display:flex; gap:.5rem; border-bottom:1px solid var(--line); text-decoration:none; padding:.35rem .15rem; }
.tag-cloud small { color:var(--muted); }
.writer-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.writer-chip { display:grid; grid-template-columns:48px 1fr auto; align-items:center; gap:.7rem; border-top:1px solid var(--line); padding-top:.8rem; text-decoration:none; }
.writer-chip img { border-radius:50%; aspect-ratio:1; object-fit:cover; }
.archive-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.archive-grid .post-card { grid-template-columns:1fr; border-top:1px solid var(--line); }
.archive-grid .post-card-image-link { margin-bottom:.5rem; }
.recommendations-block .recommendations { list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; padding:0; }
.recommendations-block .recommendation { border-top:1px solid var(--line); padding-top:1rem; }
.membership-cta { background:var(--ink); color:var(--paper); margin-top:3rem; }
.membership-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding-block:3rem; }
.membership-cta h2 { margin:0 0 .5rem; font-size:2rem; }
.membership-cta p { margin:0; max-width:680px; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:.7rem 1rem; border:1px solid currentColor; background:var(--ink); color:var(--paper); text-decoration:none; font-weight:800; cursor:pointer; }
.membership-cta .button { background:var(--paper); color:var(--ink); }
.button-secondary { background:transparent; color:var(--ink); }
.button:disabled { opacity:.55; cursor:wait; }
.archive-hero { padding-block:3.6rem 2.35rem; border-bottom:1px solid var(--line); }
.archive-hero h1,.author-hero h1 { font-size:clamp(2.75rem,5.4vw,4.85rem); letter-spacing:-.052em; line-height:.96; margin:.55rem 0 1.05rem; }
.archive-hero p { max-width:720px; font-size:1.05rem; line-height:1.55; }
.archive-count { color:var(--muted); font-size:.8rem!important; }
.archive-feed { padding-block:.8rem 3.25rem; }
.author-hero { display:grid; grid-template-columns:144px 1fr; gap:1.75rem; padding-block:3.6rem 2.35rem; border-bottom:1px solid var(--line); }
.author-hero-image { border-radius:50%; aspect-ratio:1; object-fit:cover; }
.author-bio { max-width:720px; font-size:1.05rem; line-height:1.58; }
.author-socials { display:flex; flex-wrap:wrap; gap:.8rem; font-size:.8rem; }
.directory-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.25rem 1.5rem; padding-block:2rem 3.4rem; }
.directory-card { display:grid; grid-template-columns:64px minmax(0,1fr); gap:.8rem; align-items:start; border-top:1px solid var(--line); padding-top:.8rem; min-width:0; }
.directory-card img { border-radius:50%; object-fit:cover; aspect-ratio:1; width:64px; height:64px; }
.directory-card h2 { margin:0; font-size:1.2rem; line-height:1.15; }
.directory-card p { margin:.3rem 0; font-size:.88rem; line-height:1.45; }
.directory-card:not(:has(> img)),.author-card:not(:has(> img)) { grid-template-columns:minmax(0,1fr); }
.directory-card > div,.author-card > div { min-width:0; }
/* Renders the "Solidarity network" Ghost Page's own <ul>/<li> markup (edited
   from Admin -> Pages, not this file) to look like the directory-card grid
   it replaced: one linked title, a dash, then the description, as a single
   plain-text list item -- exactly what Ghost's editor produces for a
   bulleted list with a linked/bold title. */
.recommendations-list ul { display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.25rem 1.5rem; padding-block:2rem 3.4rem; margin:0; padding-inline:0; list-style:none; }
.recommendations-list li { border-top:1px solid var(--line); padding-top:.8rem; font-size:.88rem; line-height:1.45; }
.recommendations-list li a { font-weight:700; font-size:1.1rem; }
.contributor-card-meta { display:flex; flex-wrap:wrap; gap:.4rem .7rem; align-items:center; margin-top:.45rem; font-size:.74rem; }
.contributor-profile-posts-heading { margin:2rem 0 .75rem; font-size:1.1rem; }
.contributor-profile-posts { list-style:none; margin:0; padding:0; display:grid; gap:.15rem; }
.contributor-profile-posts li { display:flex; flex-wrap:wrap; align-items:baseline; gap:.6rem; border-top:1px solid var(--line); padding:.75rem 0; }
.contributor-profile-posts a { font-weight:650; }
.tag-directory { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; padding-block:2.25rem 3.75rem; }
.tag-directory-item { display:grid; grid-template-columns:1fr auto; gap:.5rem; border-top:1px solid var(--line); padding-top:1rem; text-decoration:none; }
.tag-directory-item small { grid-column:1/-1; color:var(--muted); }
.issue-directory .tag-directory-item img { grid-column:1/-1; aspect-ratio:16/9; object-fit:cover; width:100%; }
.article-header { padding-block:3.6rem 1.75rem; border-bottom:1px solid var(--line); }
.article-header h1 { font-size:clamp(2.3rem,4.15vw,3.9rem); line-height:1.02; letter-spacing:-.048em; margin:.6rem 0 1.05rem; text-wrap:balance; }
.article-deck { font-size:clamp(1.08rem,1.5vw,1.32rem); line-height:1.45; margin:0 0 1.35rem; max-width:68ch; }
.original-source { font-size:.75rem; color:var(--muted); margin-top:1rem; }
.translation-links { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:1rem; border-top:1px solid var(--line); padding-top:.8rem; font-size:.78rem; }
/* object-fit:cover here (as opposed to the thumbnail/avatar uses of it
   elsewhere in this file, which are meant to crop) silently cropped
   whatever didn't fit the max-height box -- on any image where the
   content that matters sits near an edge (burned-in subtitles, a caption,
   a face), readers could lose part of the actual image depending on
   their own viewport height, with no way to know anything was cut off.
   contain guarantees the full image is always visible; the dark
   background keeps any resulting letterboxing from looking broken. */
.article-feature { margin-block:2rem; }
.article-feature img { width:100%; max-height:85vh; object-fit:contain; background:#000; display:block; }
.article-feature figcaption { font-size:.75rem; color:var(--muted); margin-top:.5rem; }
.article-content { font-family:var(--serif); font-size:clamp(1.03rem,1.15vw,1.16rem); line-height:1.68; padding-block:1.9rem 3.35rem; }
.article.urdu .article-content { font-family:var(--urdu); line-height:2.02; font-size:clamp(1.14rem,1.35vw,1.28rem); }
.gh-content > * { max-width:100%; }
.gh-content p,.gh-content ul,.gh-content ol,.gh-content blockquote { margin-block:.9em; }
.gh-content h2,.gh-content h3,.gh-content h4 { font-family:var(--sans); line-height:1.14; letter-spacing:-.026em; margin:1.05em 0 .48em; text-wrap:balance; }
.article.urdu .gh-content h2,.article.urdu .gh-content h3,.article.urdu .gh-content h4 { font-family:var(--urdu); line-height:1.6; }
.gh-content h2 { font-size:1.58em; }.gh-content h3 { font-size:1.28em; }.gh-content h4 { font-size:1.08em; }
.gh-content blockquote { border-inline-start:4px solid var(--ink); padding-inline-start:1.2rem; font-style:italic; }
.gh-content pre { overflow:auto; padding:1rem; background:var(--soft); font-size:.82rem; }
.gh-content code { font-size:.88em; }
.gh-content table { width:100%; border-collapse:collapse; display:block; overflow-x:auto; font-family:var(--sans); font-size:.85rem; }
.gh-content th,.gh-content td { border:1px solid var(--line); padding:.6rem; text-align:start; }
.gh-content .kg-width-wide { width:min(100vw - 2rem, 1000px); max-width:none; margin-inline:calc((100% - min(100vw - 2rem, 1000px))/2); }
.gh-content .kg-width-full { width:100vw; max-width:none; margin-inline:calc(50% - 50vw); }
.gh-content iframe { max-width:100%; }
.article-footer { border-top:1px solid var(--line); padding-block:1.65rem; }
/* Only render taxonomy families that are actually used on this article.
   Ghost renders the taxonomy partial server-side, but an empty family still
   produces a wrapper. :has() removes those empty wrappers without changing
   the tag data or archive URLs. */
.taxonomy-groups { display:grid; gap:1rem; }
.taxonomy-group { display:grid; grid-template-columns:110px 1fr; gap:1rem; border-bottom:1px solid var(--line); padding-bottom:.8rem; }
.taxonomy-group:not(:has(.taxonomy-values a)) { display:none; }
.taxonomy-groups:not(:has(.taxonomy-values a)) { display:none; }
.taxonomy-heading { font-size:.72rem; text-transform:uppercase; color:var(--muted); }
.taxonomy-values { display:flex; flex-wrap:wrap; gap:.5rem .8rem; font-size:.82rem; }
.article-actions { display:flex; gap:.6rem; align-items:center; margin-block:1.5rem; }
.copy-status { font-size:.8rem; color:var(--muted); }
.article-authors { margin-top:1.65rem; }
.article-authors > h2 { font-size:.85rem; text-transform:uppercase; }
.author-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:1rem 1.35rem; }
.author-card { display:grid; grid-template-columns:64px minmax(0,1fr); gap:.8rem; align-items:start; border-top:1px solid var(--line); padding-top:.8rem; min-width:0; }
.author-card img { border-radius:50%; aspect-ratio:1; object-fit:cover; width:64px; height:64px; }
.author-card h3 { margin:0; font-size:1.1rem; line-height:1.2; }.author-card p { margin:.3rem 0; font-size:.86rem; line-height:1.45; }
.article-pagination { display:grid; grid-template-columns:1fr 1fr; gap:1rem; padding-block:1.6rem 3rem; }
.article-pagination a { text-decoration:none; border-top:1px solid var(--line); padding-top:.8rem; display:grid; gap:.3rem; }
.article-pagination span { color:var(--muted); font-size:.7rem; text-transform:uppercase; }
.next-post { text-align:end; }
.discussion { border-top:1px solid var(--line); padding-block:2.35rem; }
.discussion-intro { margin-bottom:1rem; }
.discussion-intro h2 { font-size:2rem; margin:0; }.discussion-intro p { color:var(--muted); }
.submission-intro { padding-block:1.55rem .2rem; font-family:var(--serif); font-size:clamp(1.03rem,1.15vw,1.16rem); line-height:1.68; }
.submission-intro p { margin:.72em 0; }
.submission-intro p:first-child { margin-top:0; }
.submission-intro p:last-child { margin-bottom:0; }
.submission-email-option { color:var(--muted); font-family:var(--sans); font-size:.86rem; line-height:1.55; }
.article.urdu .submission-intro { font-family:var(--urdu); font-size:clamp(1.14rem,1.35vw,1.28rem); line-height:2; }
.article.urdu .submission-email-option { font-family:var(--urdu); font-size:.95rem; }
.submission-section { padding-block:.55rem 3.75rem; }
.submission-section > h2 { margin:.2rem 0 .45rem; }
.submission-minimum { margin:.35rem 0 .35rem; }
.submission-data-note { margin:.35rem 0 0; color:var(--muted); font-family:var(--sans); font-size:.82rem; line-height:1.55; }
.article.urdu .submission-data-note { font-family:var(--urdu); font-size:.92rem; }
.submission-form { display:grid; gap:1.05rem; margin-top:1.15rem; font-family:var(--sans); }
.submission-form label { display:grid; gap:.35rem; font-weight:700; }
.submission-form input,.submission-form textarea,.submission-form select { width:100%; border:1px solid var(--line); background:color-mix(in srgb,var(--paper) 80%,white 20%); padding:.75rem; border-radius:0; }
html[data-theme="dark"] .submission-form input,html[data-theme="dark"] .submission-form textarea,html[data-theme="dark"] .submission-form select { background:var(--soft); }
.submission-form small,.privacy-note { font-weight:400; color:var(--muted); font-size:.78rem; }
.field-optional { color:var(--muted); font-size:.72rem; font-weight:500; text-transform:none; }
.submission-optional-details { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:.8rem 0; }
.submission-optional-details summary { cursor:pointer; font-weight:700; }
.submission-optional-details summary::marker { color:var(--muted); }
.submission-optional-fields { display:grid; gap:1rem; padding-top:1rem; }
.form-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.checkbox-label { grid-template-columns:20px 1fr!important; align-items:start; font-weight:400!important; }
.checkbox-label input { width:auto; margin-top:.25rem; }
.honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-status:not(:empty) { border:1px solid var(--line); padding:.8rem; margin-block:1rem; }
.error-page { padding-block:5rem; }.error-page h1 { font-size:clamp(2.75rem,5vw,4.75rem); margin:.4rem 0; }.error-actions { display:flex; gap:.7rem; margin-top:1.5rem; }
.site-footer { border-top:1px solid var(--line); padding-top:3rem; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem; padding-bottom:3rem; }
.footer-grid .nav { list-style:none; margin:0; padding:0; display:grid; gap:.5rem; }
.footer-links { display:grid; gap:.45rem; align-content:start; }
.footer-bottom { border-top:1px solid var(--line); padding-block:1rem; display:flex; justify-content:space-between; gap:1rem; color:var(--muted); font-size:.7rem; }
@media (max-width: 900px) {
  .nav-toggle { display:block; }
  .header-actions { gap:.45rem; }
  .site-nav { display:none; position:absolute; left:0; right:0; top:74px; background:var(--paper); border-bottom:1px solid var(--line); padding:1rem; }
  .nav-open .site-nav { display:block; }
  .site-nav .nav { display:grid; gap:0; }
  .site-nav a { display:block; padding:.8rem; }
  .brand-kicker { display:none; }
  .language-nav { border-inline:0; padding-inline:0; }
  .featured-grid,.language-split,.archive-grid,.directory-grid,.tag-directory { grid-template-columns:1fr; }
  .writer-strip { grid-template-columns:1fr 1fr; }
  .recommendations-block .recommendations { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px) {
  .shell,.shell-wide,.shell-narrow,.shell-reading { width:min(calc(100% - 1.25rem), var(--max)); }
  .header-row { min-height:64px; gap:.6rem; }
  .site-nav { top:64px; }
  .header-actions .search-button,.header-actions .member-link { display:none; }
  .home-intro { padding-block:2.6rem 2rem; }
  .home-intro h1 { font-size:clamp(3.15rem,14vw,4.35rem); line-height:.9; }
  .home-deck { font-size:clamp(1.04rem,4.5vw,1.2rem); margin-top:1rem; line-height:1.42; }
  .section-block { padding-block:2.1rem; }
  .post-card { grid-template-columns:1fr; gap:.9rem; }
  .post-card-title { font-size:1.65rem; }
  .writer-strip,.recommendations-block .recommendations,.footer-grid { grid-template-columns:1fr; }
  .membership-cta-inner { display:grid; }
  .author-hero { grid-template-columns:1fr; }.author-hero-image { width:110px; height:110px; }
  .article-header { padding-block:2.55rem 1.35rem; }.article-header h1 { font-size:clamp(2.15rem,9.5vw,3.1rem); }
  .taxonomy-group { grid-template-columns:1fr; gap:.35rem; }
  .article-pagination { grid-template-columns:1fr; }.next-post { text-align:start; }
  .form-grid-2 { grid-template-columns:1fr; }
  .footer-bottom { display:grid; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
@media (prefers-contrast: more) { :root { --line: currentColor; } .topic-label,.button { border:2px solid currentColor; } }
@media print {
  .site-header,.site-footer,.article-actions,.discussion,.related,.article-pagination,.membership-cta { display:none!important; }
  :root { --paper:white; --ink:black; --muted:#333; --line:#bbb; }
  body { background:white; color:black; font-size:11pt; }
  .article-header,.article-content,.article-footer { width:100%; max-width:none; }
  a { color:black; text-decoration:underline; }
  a[href^="http"]::after { content:" (" attr(href) ")"; font-size:8pt; word-break:break-all; }
}

/* Bilingual core navigation */
.core-nav { list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:1rem; }
.site-nav > .nav { margin-inline-start:.25rem; }
html[lang="ur"] .site-nav { direction:rtl; }
html:not([lang="ur"]) .core-nav.i18n-ur { display:none; }
html[lang="ur"] .core-nav.i18n-en { display:none; }
html[lang="ur"] .core-nav.i18n-ur { display:flex; }
@media (max-width:900px) {
  .site-nav .core-nav { display:grid; gap:0; }
  html[lang="ur"] .site-nav .core-nav.i18n-ur { display:grid; }
}

/* Archive indexes and locator atlas */
.explore-directory {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin-block: 2rem 4rem;
}
.explore-directory > a {
  border-top: 2px solid currentColor;
  color: inherit;
  display: grid;
  gap: .35rem;
  padding-block: .85rem 1rem;
  text-decoration: none;
}
.explore-directory strong { font-size: 1.05rem; }
.explore-directory span { color: var(--muted, #5f5f5f); font-size: .9rem; line-height: 1.45; }
.atlas-layout { margin-block: 1.5rem 4rem; }
.atlas-controls { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
.atlas-controls button {
  background: transparent;
  border: 1px solid currentColor;
  border-radius: 999px;
  color: inherit;
  cursor: pointer;
  font: inherit;
  padding: .45rem .8rem;
}
.atlas-controls button[aria-pressed="true"] { background: currentColor; color: var(--background, #fff); }
.atlas-map {
  aspect-ratio: 16 / 9;
  background-image:
    linear-gradient(to right, color-mix(in srgb, currentColor 10%, transparent) 1px, transparent 1px),
    linear-gradient(to bottom, color-mix(in srgb, currentColor 10%, transparent) 1px, transparent 1px);
  background-size: 10% 10%;
  border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
  min-height: 360px;
  overflow: hidden;
  position: relative;
}
.atlas-map::before {
  content: "Locator grid · longitude / latitude";
  font-size: .72rem;
  left: .65rem;
  opacity: .58;
  position: absolute;
  top: .5rem;
}
.atlas-marker {
  align-items: center;
  color: inherit;
  display: flex;
  gap: .3rem;
  max-width: 160px;
  position: absolute;
  text-decoration: none;
  transform: translate(-.35rem, -.35rem);
  z-index: 2;
}
.atlas-marker:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; z-index: 5; }
.atlas-marker-dot {
  background: currentColor;
  border: 2px solid var(--background, #fff);
  border-radius: 50%;
  box-shadow: 0 0 0 1px currentColor;
  flex: 0 0 auto;
  height: .7rem;
  width: .7rem;
}
.atlas-marker-label {
  background: color-mix(in srgb, var(--background, #fff) 88%, transparent);
  font-size: clamp(.58rem, 1vw, .74rem);
  line-height: 1.15;
  padding: .12rem .2rem;
}
.atlas-marker-country .atlas-marker-dot,
.atlas-marker-region .atlas-marker-dot,
.atlas-marker-landscape .atlas-marker-dot,
.atlas-marker-water .atlas-marker-dot { height: .85rem; width: .85rem; }
.atlas-note { margin-block: .6rem 1.4rem; }
.atlas-list {
  display: grid;
  gap: .55rem;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}
.atlas-list > a {
  align-items: baseline;
  border-top: 1px solid color-mix(in srgb, currentColor 20%, transparent);
  color: inherit;
  display: flex;
  gap: .5rem;
  justify-content: space-between;
  padding-top: .5rem;
  text-decoration: none;
}
.atlas-list span { font-size: .75rem; opacity: .65; }
@media (max-width: 720px) {
  .atlas-map { aspect-ratio: 4 / 5; min-height: 480px; }
  .atlas-marker-label { max-width: 92px; }
}
@media (prefers-reduced-motion: reduce) {
  .atlas-marker { transition: none; }
}
.author-location { font-size: .86rem; margin: .15rem 0 .45rem; opacity: .72; }

/* Crowdmap Atlas */
.atlas-app { margin-block: 1.5rem 5rem; }
.atlas-filter-panel { border-block: 1px solid var(--line); padding-block: 1rem; margin-bottom: 1rem; }
.atlas-filter-row { display:grid; grid-template-columns:2fr repeat(6,minmax(110px,1fr)); gap:.75rem; align-items:end; }
.atlas-filter-row label { display:grid; gap:.28rem; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.03em; }
.atlas-filter-row input,.atlas-filter-row select { width:100%; border:1px solid var(--line); background:var(--paper); padding:.55rem .6rem; min-height:40px; text-transform:none; letter-spacing:0; font-weight:500; }
.atlas-safety-note { margin:.7rem 0 0; font-size:.8rem; }
.atlas-main-grid { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,.8fr); gap:1rem; align-items:start; }
.atlas-map-shell { border:1px solid var(--line); background:color-mix(in srgb,var(--paper) 92%,var(--soft)); min-height:520px; overflow:hidden; }
.atlas-svg-map { display:block; width:100%; height:auto; min-height:520px; }
.atlas-grid line { stroke:color-mix(in srgb,var(--ink) 12%,transparent); stroke-width:1; vector-effect:non-scaling-stroke; }
.atlas-grid text { fill:var(--muted); font-size:11px; }
.atlas-feature { fill:none; vector-effect:non-scaling-stroke; }
.atlas-feature-river { stroke:color-mix(in srgb,var(--focus) 52%,var(--muted)); stroke-width:1.6; }
.atlas-feature-mountain { stroke:color-mix(in srgb,var(--ink) 32%,transparent); stroke-width:2.1; stroke-dasharray:6 4; }
.atlas-feature-label { fill:var(--muted); font-size:11px; paint-order:stroke; stroke:var(--paper); stroke-width:3px; stroke-linejoin:round; }
.atlas-event-marker { cursor:pointer; }
.atlas-event-marker:focus-visible .atlas-event-dot { stroke:var(--focus); stroke-width:5; }
.atlas-event-dot { fill:var(--accent); stroke:var(--paper); stroke-width:3; vector-effect:non-scaling-stroke; }
.atlas-cluster-count { fill:white; font-size:10px; font-weight:900; pointer-events:none; }
.atlas-event-label { fill:var(--ink); font-size:12px; font-weight:800; paint-order:stroke; stroke:var(--paper); stroke-width:4px; stroke-linejoin:round; pointer-events:none; }
.atlas-map-caption { margin:.45rem 0 0; font-size:.75rem; }
.atlas-detail { border:1px solid var(--line); padding:1rem; min-height:300px; max-height:640px; overflow:auto; }
.atlas-detail > h2 { margin-top:0; font-size:1.15rem; }
.atlas-detail-record { border-top:1px solid var(--line); padding-top:1rem; margin-top:1rem; }
.atlas-detail-record:first-of-type { border-top:0; padding-top:0; }
.atlas-detail-record h3 { font-size:1.35rem; line-height:1.1; margin:.4rem 0 .5rem; }
.atlas-record-meta,.atlas-tag-row { display:flex; flex-wrap:wrap; gap:.35rem; }
.atlas-record-meta span,.atlas-tag-row span { border:1px solid var(--line); padding:.12rem .35rem; font-size:.66rem; text-transform:uppercase; letter-spacing:.04em; }
.atlas-detail details { margin-top:.8rem; }
.atlas-detail ul { padding-inline-start:1.1rem; }
.atlas-results-header { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin-top:2rem; border-bottom:1px solid var(--line); }
.atlas-results-header h2 { font-size:1rem; text-transform:uppercase; letter-spacing:.04em; }
.atlas-event-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 1rem; }
.atlas-event-card { appearance:none; background:transparent; border:0; border-top:1px solid var(--line); color:inherit; cursor:pointer; display:grid; gap:.28rem; padding:1rem 0; text-align:start; }
.atlas-event-card:hover strong { color:var(--link); }
.atlas-event-card-kicker { color:var(--link); font-size:.67rem; font-weight:850; text-transform:uppercase; letter-spacing:.05em; }
.atlas-event-card strong { font-size:1.05rem; line-height:1.15; }
.atlas-event-card span:not(.atlas-event-card-kicker),.atlas-event-card small { color:var(--muted); font-size:.76rem; }
.atlas-map-error { border:1px solid var(--line); padding:2rem; min-height:240px; }
.atlas-turnstile:empty { display:none; }
@media(max-width:1050px){.atlas-filter-row{grid-template-columns:repeat(3,1fr)}.atlas-main-grid{grid-template-columns:1fr}.atlas-detail{max-height:none}.atlas-event-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.atlas-filter-row{grid-template-columns:1fr 1fr}.atlas-filter-row label:first-child{grid-column:1/-1}.atlas-map-shell,.atlas-svg-map{min-height:430px}.atlas-event-list{grid-template-columns:1fr}.atlas-event-label{font-size:10px}}

.article-atlas-related {
  margin-block: 2.5rem;
  border-block: 1px solid var(--border);
  padding-block: 1.25rem;
}
.article-atlas-card {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 1.5rem;
  padding: .9rem 0;
  border-top: 1px solid var(--border);
}
.article-atlas-card:first-child { border-top: 0; }
.article-atlas-card p { margin: .25rem 0 0; color: var(--muted); }
@media (max-width: 640px) {
  .article-atlas-card { flex-direction: column; gap: .5rem; }
}

/* Urdu reading and navigation refinement */
html[lang="ur"] body {
  text-align: start;
}

html[lang="ur"] .header-row {
  direction: rtl;
}

html[lang="ur"] .header-actions {
  direction: rtl;
}

html[lang="ur"] .brand {
  direction: ltr;
}

html[lang="ur"] .core-nav.i18n-ur {
  gap: .9rem;
}

html[lang="ur"] .core-nav.i18n-ur a,
html[lang="ur"] .language-nav .language-ur,
html[lang="ur"] .search-button,
html[lang="ur"] .theme-button,
html[lang="ur"] .member-link {
  font-family: var(--urdu);
}

html[lang="ur"] .core-nav.i18n-ur a {
  font-size: .94rem;
  line-height: 1.75;
  padding-block: .22rem;
}

html[lang="ur"] .language-nav .language-ur {
  font-size: .9rem;
  line-height: 1.7;
  font-weight: 700;
}

html[lang="ur"] .language-nav .language-en {
  font-size: .79rem;
}

html[lang="ur"] .language-nav .language-ur {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .24em;
}

.article.urdu {
  text-align: right;
}

.article.urdu .article-header {
  padding-block: 3rem 1.65rem;
}

.article.urdu .article-header h1 {
  max-width: 100%;
  margin: 0;
  font-family: var(--urdu);
  font-size: clamp(2.8rem, 5vw, 4.25rem);
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: 0;
  text-wrap: balance;
}

.article.urdu .article-deck {
  max-width: 38em;
  margin: .75rem 0 0;
  font-family: var(--urdu);
  font-size: clamp(1.08rem, 1.3vw, 1.26rem);
  line-height: 2;
  color: color-mix(in srgb,var(--ink) 84%,var(--paper));
}

.article.urdu .article-content {
  padding-block: 1.85rem 4.25rem;
  font-family: var(--urdu);
  font-size: clamp(1.16rem, 1.28vw, 1.36rem);
  line-height: 2.15;
  text-align: right;
  text-wrap: pretty;
}

.article.urdu .gh-content p,
.article.urdu .gh-content ul,
.article.urdu .gh-content ol,
.article.urdu .gh-content blockquote {
  margin-block: 0 1.05em;
}

.article.urdu .gh-content p:last-child,
.article.urdu .gh-content ul:last-child,
.article.urdu .gh-content ol:last-child,
.article.urdu .gh-content blockquote:last-child {
  margin-bottom: 0;
}

.article.urdu .gh-content h2,
.article.urdu .gh-content h3,
.article.urdu .gh-content h4 {
  font-family: var(--urdu);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.75;
  margin: 1.2em 0 .55em;
}

.article.urdu .gh-content h2 { font-size: 1.6em; }
.article.urdu .gh-content h3 { font-size: 1.32em; }
.article.urdu .gh-content h4 { font-size: 1.14em; }

.article.urdu .gh-content strong,
.article.urdu .gh-content b {
  font-weight: 700;
}

.article.urdu .gh-content blockquote {
  border-inline-start: 0;
  border-inline-end: 3px solid var(--ink);
  padding-inline-start: 0;
  padding-inline-end: 1rem;
  font-style: normal;
}

.article.urdu .gh-content a {
  text-underline-offset: .28em;
}

.article.urdu .gh-content li + li {
  margin-top: .45em;
}

@media (max-width: 1180px) {
  .brand-kicker { display:none; }
}

@media (max-width: 980px) {
  .nav-toggle { display:block; }
  .site-nav { display:none; position:absolute; left:0; right:0; top:74px; background:var(--paper); border-bottom:1px solid var(--line); padding:1rem; }
  .nav-open .site-nav { display:block; }
  .site-nav .core-nav { display:grid; gap:0; }
  html[lang="ur"] .site-nav .core-nav.i18n-ur { display:grid; }
  .site-nav a { display:block; padding:.65rem .8rem; }
}

@media (max-width: 640px) {
  .shell-urdu { width:min(calc(100% - 1.25rem), var(--reading-urdu)); }
  .article.urdu .article-header { padding-block: 2.15rem 1.3rem; }
  .article.urdu .article-header h1 {
    font-size: clamp(2.25rem, 12vw, 3.15rem);
    line-height: 1.55;
  }
  .article.urdu .article-content {
    padding-block: 1.45rem 3.25rem;
    font-size: clamp(1.08rem, 5.1vw, 1.26rem);
    line-height: 2.08;
  }
  .article.urdu .gh-content p,
  .article.urdu .gh-content ul,
  .article.urdu .gh-content ol,
  .article.urdu .gh-content blockquote {
    margin-bottom: .95em;
  }
}

/* Language archive rhythm and compact horizontal footer */
.language-archive-page {
  width: 100%;
}

.language-archive {
  padding-block: 3.15rem 2.15rem;
  border-bottom: 1px solid var(--line);
}

.language-archive .archive-kicker {
  display: block;
  margin: 0 0 .5rem;
  font-size: .7rem;
  line-height: 1.2;
}

.language-archive h1 {
  max-width: 12ch;
  margin: 0 0 .75rem;
  font-size: clamp(3.1rem, 5.2vw, 5.15rem);
  line-height: 1.04;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.language-archive p {
  max-width: 54rem;
  margin: 0;
  font-size: clamp(1rem, 1.2vw, 1.12rem);
  line-height: 1.55;
  color: color-mix(in srgb,var(--ink) 82%,var(--paper));
}

.language-archive-page .archive-feed {
  padding-block: 1.4rem 2.2rem;
}

.language-archive-page .archive-empty {
  margin: 0;
  padding-block: .8rem 1rem;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.55;
}

.language-archive-page .archive-pagination {
  padding-block: 0 2.35rem;
}

.site-main:has(.language-archive-page) {
  min-height: 0;
}

.site-footer {
  border-top: 1px solid var(--line);
  padding-top: 2rem;
}

.footer-main {
  display: grid;
  grid-template-columns: minmax(280px, 1.25fr) minmax(280px, .75fr);
  gap: 2.5rem;
  align-items: start;
  padding-bottom: 1.55rem;
}

.footer-about {
  max-width: 48rem;
}

.footer-about p {
  margin: .65rem 0 0;
  max-width: 46rem;
}

.footer-secondary .nav {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: .45rem 1.2rem;
  margin: 0;
  padding: 0;
}

.footer-secondary .nav li,
.footer-secondary .nav a {
  margin: 0;
}

.footer-link-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem 1.15rem;
  border-top: 1px solid var(--line);
  padding-block: 1rem 1.15rem;
}

.footer-link-strip a,
.footer-secondary a {
  font-size: .86rem;
  line-height: 1.35;
  white-space: nowrap;
}

.footer-bottom {
  padding-block: .9rem 1rem;
}

@media (max-width: 900px) {
  .language-archive {
    padding-block: 2.7rem 1.8rem;
  }

  .language-archive h1 {
    font-size: clamp(2.85rem, 8vw, 4.4rem);
  }

  .footer-main {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  .footer-secondary .nav {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .language-archive {
    padding-block: 2.15rem 1.45rem;
  }

  .language-archive .archive-kicker {
    margin-bottom: .4rem;
  }

  .language-archive h1 {
    max-width: 100%;
    margin-bottom: .55rem;
    font-size: clamp(2.5rem, 13vw, 3.75rem);
  }

  .language-archive p {
    font-size: .98rem;
  }

  .language-archive-page .archive-feed {
    padding-block: 1rem 1.7rem;
  }

  .footer-link-strip,
  .footer-secondary .nav {
    gap: .55rem 1rem;
  }

  .footer-link-strip a,
  .footer-secondary a {
    font-size: .84rem;
    white-space: normal;
  }
}


/* Responsive publication chrome: header and footer use a wider canvas than article text.
   Browser zoom changes the effective CSS viewport, so these breakpoints respond to both
   window resizing and accessibility zoom without scaling the interface artificially. */
:root {
  --chrome-max: 1680px;
  --chrome-gutter: clamp(1rem, 1.7vw, 2rem);
}

.shell-chrome {
  width: min(calc(100% - (2 * var(--chrome-gutter))), var(--chrome-max));
  max-width: none;
  margin-inline: auto;
}

/* Header: never wrap the primary chrome. It progressively compacts and then collapses. */
.header-row {
  min-height: 72px;
  flex-wrap: nowrap;
  gap: clamp(.7rem, 1vw, 1.35rem);
}

.brand {
  flex: 0 0 auto;
  min-width: 0;
}

.header-actions {
  flex: 0 1 auto;
  min-width: 0;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: clamp(.38rem, .62vw, .75rem);
}

.site-nav,
.site-nav .core-nav,
.language-nav {
  min-width: 0;
}

.site-nav .core-nav {
  flex-wrap: nowrap;
  gap: clamp(.62rem, .72vw, .95rem);
}

.site-nav a,
.language-nav a,
.language-menu > summary,
.member-link,
.icon-button {
  font-size: clamp(.76rem, .73vw, .84rem);
  white-space: nowrap;
}

/* The strapline is useful on very wide displays, but it should yield before navigation does. */
@media (max-width: 1450px) {
  .brand-kicker { display: none; }
}

/* Collapse primary navigation before it has a chance to wrap or collide with utilities. */
@media (max-width: 1260px) {
  .header-row { min-height: 68px; }
  .nav-toggle { display: block; flex: 0 0 auto; }

  .site-nav {
    display: none;
    position: absolute;
    inset-inline: 0;
    top: 100%;
    z-index: 80;
    padding: .8rem var(--chrome-gutter) 1rem;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 12px 30px color-mix(in srgb,var(--ink) 8%,transparent);
  }

  .nav-open .site-nav { display: block; }

  .site-nav .core-nav,
  html[lang="ur"] .site-nav .core-nav.i18n-ur {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }

  .site-nav a {
    display: block;
    padding: .72rem .8rem;
    white-space: normal;
  }
}

@media (max-width: 820px) {
  .language-direct { display: none !important; }
  .header-actions { gap: .35rem; }
  .language-nav { padding-inline: .55rem; }
}

@media (max-width: 640px) {
  :root { --chrome-gutter: .75rem; }
  .header-row { min-height: 62px; gap: .45rem; }
  .site-nav .core-nav,
  html[lang="ur"] .site-nav .core-nav.i18n-ur { grid-template-columns: 1fr; }
  .site-nav { padding-inline: .75rem; }
  .header-actions .search-button,
  .header-actions .member-link { display: none; }
  .brand-name { font-size: 1.28rem; }
  .language-menu > summary { font-size: .78rem; }
}

/* Footer: avoid accidental orphan links. Large screens use one line; medium screens
   deliberately balance the links into predictable rows instead of relying on flex wrapping. */
.site-footer .shell-chrome {
  width: min(calc(100% - (2 * var(--chrome-gutter))), var(--chrome-max));
}

.footer-main {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(1.5rem, 3vw, 4rem);
}

.footer-secondary {
  min-width: max-content;
}

.footer-link-strip {
  display: grid;
  grid-template-columns: repeat(8, max-content);
  justify-content: space-between;
  align-items: center;
  gap: .62rem clamp(.65rem, 1vw, 1.1rem);
}

.footer-link-strip a,
.footer-secondary a {
  font-size: clamp(.79rem, .72vw, .86rem);
  line-height: 1.3;
  white-space: nowrap;
}

/* With enough real width, every publication link sits on a single horizontal line. */
@media (min-width: 1480px) {
  .footer-link-strip {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: clamp(.55rem, .72vw, 1rem);
  }
}

/* Deliberately balanced two-row footer instead of a one-item orphan row. */
@media (max-width: 1100px) {
  .footer-main {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .footer-secondary { min-width: 0; }
  .footer-secondary .nav { justify-content: flex-start; }

  .footer-link-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    justify-content: stretch;
    column-gap: 1rem;
  }
}

@media (max-width: 680px) {
  .footer-link-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .55rem 1rem;
  }

  .footer-link-strip a,
  .footer-secondary a {
    white-space: normal;
  }

  .footer-bottom {
    display: grid;
    grid-template-columns: 1fr;
    gap: .45rem;
  }
}

@media (max-width: 390px) {
  .footer-link-strip { grid-template-columns: 1fr; }
}

/* Atlas cartography and interaction pass v7 */
.atlas-secondary-controls {
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:.75rem 1rem;
  margin-top:.9rem;
}
.atlas-layer-controls {
  display:flex;
  flex:1 1 680px;
  flex-wrap:wrap;
  gap:.4rem .8rem;
  margin:0;
  padding:0;
  border:0;
}
.atlas-layer-controls legend,.atlas-control-label {
  width:100%;
  color:var(--muted);
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.05em;
  text-transform:uppercase;
  margin-bottom:.15rem;
}
.atlas-layer-controls label {
  display:flex;
  align-items:center;
  gap:.38rem;
  font-size:.76rem;
  white-space:nowrap;
}
.atlas-layer-controls input { accent-color:var(--accent); }
.atlas-view-controls {
  display:flex;
  flex:0 0 auto;
  flex-wrap:wrap;
  gap:.35rem;
}
.atlas-view-controls .atlas-control-label { flex-basis:100%; }
.atlas-view-controls button {
  border:1px solid var(--line);
  background:transparent;
  padding:.34rem .55rem;
  min-height:34px;
  cursor:pointer;
}
.atlas-view-controls button[aria-pressed="true"] { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.atlas-legend { flex:0 0 auto; font-size:.76rem; }
.atlas-legend summary { cursor:pointer; font-weight:750; padding:.28rem 0; }
.atlas-legend-grid { display:grid; grid-template-columns:repeat(2,minmax(150px,1fr)); gap:.4rem .75rem; margin-top:.5rem; min-width:min(380px,80vw); }
.atlas-legend-grid > span { display:flex; align-items:center; gap:.55rem; }
.atlas-key { display:inline-grid; place-items:center; flex:0 0 auto; width:16px; height:16px; color:var(--ink); }
.atlas-key-activity { border-radius:50%; background:var(--accent); }
.atlas-key-disaster { width:13px; height:13px; background:var(--accent); transform:rotate(45deg); }
.atlas-key-infrastructure { width:13px; height:13px; border:2px solid var(--ink); }
.atlas-key-ecological { border:2px solid var(--focus); border-radius:50%; background:transparent; }
.atlas-key-water { width:20px; height:0; border-top:2px solid var(--focus); }
.atlas-key-terrain { width:20px; height:0; border-top:2px dashed var(--muted); }
.atlas-key-cluster { border-radius:50%; background:var(--accent); color:white; font-size:.65rem; font-style:normal; }

.atlas-map-shell { position:relative; }
.atlas-svg-map { background:color-mix(in srgb,var(--paper) 95%,var(--soft)); }
.atlas-feature { vector-effect:non-scaling-stroke; }
.atlas-feature-river { fill:none; stroke:color-mix(in srgb,var(--focus) 63%,var(--muted)); stroke-width:1.7; }
.atlas-feature-coastline { fill:none; stroke:color-mix(in srgb,var(--ink) 34%,transparent); stroke-width:1.35; }
.atlas-feature-mountain { fill:none; stroke:color-mix(in srgb,var(--ink) 35%,transparent); stroke-width:2; stroke-dasharray:6 4; }
.atlas-feature-mountain-area { fill:color-mix(in srgb,var(--ink) 5%,transparent); stroke:color-mix(in srgb,var(--ink) 16%,transparent); stroke-width:1; }
.atlas-feature-plain { fill:color-mix(in srgb,var(--muted) 5%,transparent); stroke:none; }
.atlas-feature-desert { fill:color-mix(in srgb,#a4772b 8%,transparent); stroke:color-mix(in srgb,#a4772b 18%,transparent); stroke-width:1; }
.atlas-feature-wetland { fill:color-mix(in srgb,var(--focus) 6%,transparent); stroke:color-mix(in srgb,var(--focus) 20%,transparent); stroke-width:1; }
.atlas-feature-label-sea-label { font-style:italic; letter-spacing:.04em; opacity:.78; }
.atlas-feature-label-mountain-area { font-weight:700; opacity:.72; }
.atlas-feature-label { pointer-events:none; }
.atlas-scale line { stroke:var(--ink); stroke-width:1.2; vector-effect:non-scaling-stroke; }
.atlas-scale text { fill:var(--muted); font-size:10px; paint-order:stroke; stroke:var(--paper); stroke-width:3px; }

.atlas-event-marker { cursor:pointer; }
.atlas-event-shape { fill:var(--accent); stroke:var(--paper); stroke-width:3; vector-effect:non-scaling-stroke; transition:stroke-width .12s ease, opacity .12s ease, transform .12s ease; }
.atlas-symbol-disaster { fill:var(--accent); }
.atlas-symbol-infrastructure { fill:var(--paper); stroke:var(--ink); stroke-width:2.2; }
.atlas-symbol-ecological { fill:color-mix(in srgb,var(--focus) 8%,transparent); stroke:var(--focus); stroke-width:2.2; }
.atlas-symbol-cluster { fill:var(--accent); }
.atlas-status-planned { fill:var(--paper); stroke:var(--accent); }
.atlas-status-completed { opacity:.72; }
.atlas-event-marker.is-selected .atlas-event-shape { stroke:var(--ink); stroke-width:5; opacity:1; }
.atlas-event-marker:focus-visible .atlas-event-shape { stroke:var(--focus); stroke-width:5; }
.atlas-event-marker.is-selected .atlas-event-label { font-weight:950; }
.atlas-event-label { paint-order:stroke; stroke:var(--paper); stroke-width:4px; stroke-linejoin:round; pointer-events:none; }

.atlas-detail { position:sticky; top:90px; }
.atlas-record-meta span,.atlas-tag-row span { text-transform:none; letter-spacing:.015em; }
.atlas-record-meta span { font-weight:720; }
.atlas-tag-row span { color:var(--muted); }
.atlas-event-card { position:relative; }
.atlas-event-card.is-selected { background:color-mix(in srgb,var(--accent) 5%,transparent); }
.atlas-event-card.is-selected::before { content:""; position:absolute; inset-block:0; inset-inline-start:-.45rem; width:3px; background:var(--accent); }
.atlas-event-card small { text-transform:none; }

.atlas-app[data-atlas-view="map"] .atlas-list-panel { display:none; }
.atlas-app[data-atlas-view="list"] .atlas-main-grid { display:none; }
.atlas-app[data-atlas-view="list"] .atlas-event-list { grid-template-columns:repeat(3,minmax(0,1fr)); }

@media(max-width:1050px){
  .atlas-detail { position:static; }
  .atlas-secondary-controls { display:grid; grid-template-columns:1fr auto; }
  .atlas-layer-controls { grid-column:1/-1; }
  .atlas-legend { grid-column:1/-1; }
}
@media(max-width:720px){
  .atlas-secondary-controls { grid-template-columns:1fr; }
  .atlas-view-controls,.atlas-legend { grid-column:auto; }
  .atlas-legend-grid { grid-template-columns:1fr; min-width:0; }
  .atlas-layer-controls { gap:.45rem .65rem; }
  .atlas-layer-controls label { white-space:normal; }
  .atlas-app[data-atlas-view="list"] .atlas-event-list { grid-template-columns:1fr; }
}
@media print {
  .atlas-filter-panel,.atlas-view-controls,.atlas-legend { display:none!important; }
  .atlas-main-grid { grid-template-columns:1fr!important; }
  .atlas-detail { position:static; max-height:none; overflow:visible; }
  .atlas-event-list { grid-template-columns:1fr 1fr; }
}
.atlas-app[data-atlas-view="list"] .atlas-main-grid { display:grid; grid-template-columns:1fr; }
.atlas-app[data-atlas-view="list"] .atlas-main-grid > :first-child { display:none; }

/* Atlas view modes: each control now has a deliberately different composition. */
.atlas-main-grid { position:relative; }
.atlas-detail-close {
  display:none;
  appearance:none;
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--ink);
  inline-size:2.1rem;
  block-size:2.1rem;
  align-items:center;
  justify-content:center;
  font:inherit;
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
}
.atlas-detail-close:hover,
.atlas-detail-close:focus-visible { border-color:var(--ink); outline:none; }

/* Split: map + persistent detail panel + records list below. */
.atlas-app[data-atlas-view="split"] .atlas-main-grid {
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);
}
.atlas-app[data-atlas-view="split"] .atlas-detail { display:block; }
.atlas-app[data-atlas-view="split"] .atlas-list-panel { display:block; }

/* Map: the cartography gets the full content width. Details become an on-map drawer only after selection. */
.atlas-app[data-atlas-view="map"] .atlas-main-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr);
}
.atlas-app[data-atlas-view="map"] .atlas-main-grid > :first-child {
  display:block;
  min-width:0;
}
.atlas-app[data-atlas-view="map"] .atlas-list-panel { display:none; }
.atlas-app[data-atlas-view="map"] .atlas-detail { display:none; }
.atlas-app[data-atlas-view="map"][data-atlas-selection="true"] .atlas-detail {
  display:block;
  position:absolute;
  inset-block-start:.8rem;
  inset-inline-end:.8rem;
  z-index:8;
  width:min(390px,calc(100% - 1.6rem));
  max-height:calc(100% - 1.6rem);
  overflow:auto;
  background:color-mix(in srgb,var(--paper) 97%,transparent);
  box-shadow:0 8px 28px color-mix(in srgb,var(--ink) 16%,transparent);
}
.atlas-app[data-atlas-view="map"][data-atlas-selection="true"] .atlas-detail-close {
  display:flex;
  float:inline-end;
  margin-inline-start:.75rem;
  margin-block-end:.4rem;
}

/* List: no map. A selected record is shown above the list as a full-width reading panel. */
.atlas-app[data-atlas-view="list"] .atlas-main-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  margin-block-end:1rem;
}
.atlas-app[data-atlas-view="list"] .atlas-main-grid > :first-child { display:none; }
.atlas-app[data-atlas-view="list"] .atlas-detail {
  display:block;
  position:static;
  max-height:none;
  overflow:visible;
}
.atlas-app[data-atlas-view="list"] .atlas-list-panel { display:block; }
.atlas-app[data-atlas-view="list"] .atlas-event-list {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

@media(max-width:1050px) {
  .atlas-app[data-atlas-view="split"] .atlas-main-grid { grid-template-columns:1fr; }
  .atlas-app[data-atlas-view="map"][data-atlas-selection="true"] .atlas-detail {
    inset-block-start:auto;
    inset-block-end:.65rem;
    inset-inline:.65rem;
    width:auto;
    max-height:46%;
  }
  .atlas-app[data-atlas-view="list"] .atlas-event-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:720px) {
  .atlas-app[data-atlas-view="list"] .atlas-event-list { grid-template-columns:1fr; }
  .atlas-app[data-atlas-view="map"][data-atlas-selection="true"] .atlas-detail { max-height:55%; }
}
@media print {
  .atlas-detail-close { display:none!important; }
}

/* v24: staff/member identity clarity on the public site -------------------- */
.staff-admin-link[hidden],
.staff-discussion-note[hidden] { display: none !important; }

.staff-admin-link {
  font-weight: 700;
}

.staff-discussion-note {
  margin-top: .85rem;
  padding: .8rem .9rem;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--ink) 4%, var(--paper));
  font-size: .9rem;
  line-height: 1.45;
}

.staff-discussion-note.has-member-session {
  background: color-mix(in srgb, var(--ink) 2%, var(--paper));
}

.staff-discussion-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .9rem;
  margin-top: .45rem;
}

.staff-discussion-actions::before {
  content: '';
  flex-basis: 100%;
  height: 0;
}

.staff-discussion-actions a {
  font-weight: 700;
}

@media (max-width: 640px) {
  .staff-admin-link { display: none !important; }
  .staff-discussion-note { padding: .7rem .75rem; }
}
