/* AKHBAARI — اخباری — printed, not rendered.
   Three flat spot inks on newsprint stock. Absolute rules for this design:
   NO gradients. NO box-shadows. NO border-radius. NO blur. Depth comes from
   ink overprint and misregistration, the way it does on a real Risograph.
   Logical properties throughout so one sheet serves LTR (en/hi) and RTL (ur). */

:root {
  --paper:   #F1EBDD;   /* newsprint stock */
  --paper-2: #E7E0CE;   /* second pull, slightly darker */
  --ink:     #17171A;   /* printed black is warm, never #000 */
  --ink-2:   #4A4740;
  --ink-3:   #635E52;   /* must clear 4.5 on BOTH paper tones: 5.43 on bone,
                           4.90 on --paper-2. #6B665A passed bone but failed the
                           darker band ground at 4.34. */
  --blue:    #24307E;   /* federal blue */
  --red:     #F04A28;   /* fluorescent vermillion — FILLS ONLY */
  --red-ink: #B8331A;   /* vermillion for TEXT: 5.01:1 on bone, the bright one is 3.09 */
  --yellow:  #FFC02E;   /* marigold — fills only, 2.25:1 on vermillion as text */
  --rule:    rgba(23,23,26,.22);

  --font-display: 'Anton', 'Archivo', sans-serif;
  --font-ui:      'Archivo', 'Helvetica Neue', sans-serif;
  --font-mono:    'Space Mono', ui-monospace, monospace;
  --font-hi:      'Noto Sans Devanagari', sans-serif;
  --font-ur:      'Noto Nastaliq Urdu', serif;

  --measure: 1420px;
  --gutter: clamp(14px, 2.3vw, 32px);
}

/* printed on black stock */
:root[data-theme="dark"] {
  --paper: #131316; --paper-2: #1C1C20; --ink: #F1EBDD; --ink-2: #BDB6A6;
  --ink-3: #8A8577; --rule: rgba(241,235,221,.24);
  --blue: #6B7CD8; --red: #FF6A45; --yellow: #FFD064;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: var(--font-ui); font-size: 16px; line-height: 1.42;
}
/* paper grain — the single most important texture in the whole design */
body::before {
  content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 90; opacity: .085;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)'/%3E%3C/svg%3E");
}
:root[data-theme="dark"] body::before { mix-blend-mode: screen; opacity: .06; }
a { color: inherit; text-decoration: none; }
.shell { max-inline-size: var(--measure); margin-inline: auto; padding-inline: var(--gutter); }

/* ═══ ticker — a printed strip across the top ═══ */
.ticker {
  position: sticky; top: 0; z-index: 40; display: flex; block-size: 30px;
  background: var(--red); color: var(--ink); overflow: hidden;
  border-block-end: 2px solid var(--ink);
}
.ticker__tag {
  flex: none; display: flex; align-items: center; padding-inline: 13px;
  background: var(--ink); color: var(--paper);
  font-family: var(--font-mono); font-size: 10px; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase;
}
.ticker__track { flex: 1; display: flex; align-items: center; overflow: hidden; }
.ticker__run {
  display: flex; gap: 38px; white-space: nowrap; padding-inline-start: 18px;
  animation: slide 68s linear infinite;
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .01em;
}
.ticker:hover .ticker__run { animation-play-state: paused; }
/* marigold on vermillion measures 2.25:1 — unreadable. Ink is 4.87:1. */
.ticker__run b { color: var(--ink); font-weight: 700; margin-inline-end: 7px; }
@keyframes slide { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ═══ masthead ═══ */
.masthead { padding-block: 20px 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.wordmark {
  font-family: var(--font-display); font-size: clamp(34px, 5.6vw, 66px);
  letter-spacing: .005em; line-height: .84; margin: 0; text-transform: uppercase;
  color: var(--blue); position: relative;
}
/* misregistration: a second pull of the same word, off by 3px in vermillion */
.wordmark::before {
  content: attr(data-word); position: absolute; inset-block-start: 3px; inset-inline-start: 3px;
  color: var(--red); mix-blend-mode: multiply; z-index: -1;
}
.wordmark__ur { display: block; font-family: var(--font-ur); font-size: .3em; color: var(--ink-2); line-height: 2; margin-block-start: -.1em; }
.masthead__right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding-block-end: 5px; }
.clock { font-family: var(--font-mono); font-size: 11.5px; color: var(--ink-2); font-variant-numeric: tabular-nums; letter-spacing: .04em; }
.clock b { color: var(--red-ink); font-weight: 700; }

.langbar { display: flex; }
.langbar button {
  font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase;
  background: transparent; border: 1.5px solid var(--ink); color: var(--ink);
  padding: 5px 10px; cursor: pointer; margin-inline-start: -1.5px;
}
.langbar button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.langbar button:nth-child(2) { font-family: var(--font-hi); }
.langbar button:nth-child(3) { font-family: var(--font-ur); font-size: 12px; padding-block: 2px 8px; }

/* the heavy bar under the masthead, overprinted */
.bar { block-size: 11px; background: var(--blue); margin-block: 12px 0; position: relative; }
.bar::after { content: ''; position: absolute; inset-block-start: 3px; inset-inline-start: 4px; inline-size: 100%; block-size: 100%; background: var(--yellow); mix-blend-mode: multiply; z-index: -1; }

/* ═══ nav ═══ */
.tabs { display: flex; gap: 20px; padding-block: 12px 14px; flex-wrap: wrap; border-block-end: 1.5px solid var(--ink); }
.tabs button {
  font-family: var(--font-display); font-size: 15px; letter-spacing: .06em; text-transform: uppercase;
  background: none; border: 0; color: var(--ink-3); padding: 0; cursor: pointer;
}
.tabs button::before { content: '['; margin-inline-end: 4px; opacity: 0; }
.tabs button::after  { content: ']'; margin-inline-start: 4px; opacity: 0; }
.tabs button:hover { color: var(--ink); }
.tabs button[aria-pressed="true"] { color: var(--red-ink); }
.tabs button[aria-pressed="true"]::before, .tabs button[aria-pressed="true"]::after { opacity: 1; }

/* ═══ grid ═══ */
.broadsheet { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 var(--gutter); padding-block-start: 22px; }
.well { grid-column: span 8; }
.wire { grid-column: span 4; border-inline-start: 1.5px solid var(--ink); padding-inline-start: var(--gutter); }
@media (max-width: 940px) {
  .well, .wire { grid-column: span 12; }
  .wire { margin-block-start: 30px; border-inline-start: 0; border-block-start: 1.5px solid var(--ink); padding-inline-start: 0; padding-block-start: 20px; }
}

/* ═══ halftone duotone — photos are printed, not displayed ═══ */
/* Two-ink duotone. The ground is the spot colour; the grayscale plate is screened
   over it, so shadows print blue and highlights drop out to paper. `lighten` with a
   dark ink does almost nothing to a mid-tone photo — screen is what actually works. */
.shot { position: relative; display: block; overflow: hidden; background: var(--blue); isolation: isolate; }
.shot img {
  display: block; inline-size: 100%; block-size: 100%; object-fit: cover;
  filter: grayscale(1) contrast(1.15) brightness(1.06);
  mix-blend-mode: screen;
}
.shot::before {  /* knock the highlights back to stock rather than pure white */
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: var(--paper); mix-blend-mode: multiply; opacity: .82;
}
.shot::after {   /* dot screen */
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(var(--blue) 45%, transparent 46%);
  background-size: 3px 3px; opacity: .38; mix-blend-mode: multiply;
}

/* Anton's glyph box overruns its em box, so any leading under ~1.15 clips the caps.
   Measured: 7px at 62px, 3px at 17px. One rule in em units, applied everywhere
   Anton is set, rather than tuning each size by hand. */
.lead__title, .story__title, .wire__head h2, .band__head, .prose h1, .prose h2, .tabs button {
  padding-block: .07em .17em;
}

/* ═══ lead ═══ */
.lead { padding-block-end: 22px; }
.lead .shot { aspect-ratio: 16/9; margin-block-end: 15px; }
.lead__title {
  font-family: var(--font-display); font-size: clamp(34px, 5.4vw, 62px);
  /* Anton sets tight: at leading under ~1.05 its own line box clips the caps.
     Padding clears it without loosening the poster look. */
  line-height: 1.16; letter-spacing: .002em; text-transform: uppercase;
  margin: 0 0 12px;
}
.lead__summary { font-size: 16.5px; line-height: 1.5; color: var(--ink-2); margin: 0 0 12px; max-inline-size: 58ch; }

/* ═══ stories ═══ */
.grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0 var(--gutter); }
.story { grid-column: span 3; padding-block: 17px; border-block-start: 1.5px solid var(--ink); }
.story--wide { grid-column: span 6; }
.story--brief { grid-column: span 2; border-block-start-width: 1px; border-block-start-color: var(--rule); }
@media (max-width: 720px) { .story, .story--wide, .story--brief { grid-column: span 6; } }

.story__title { font-family: var(--font-display); font-size: 20px; line-height: 1.18; letter-spacing: .004em; text-transform: uppercase; margin: 0 0 7px; transition: color .12s; }
.story--wide .story__title { font-size: 29px; }
.story--brief .story__title { font-size: 15px; line-height: 1.2; }
.story__summary { font-size: 14px; line-height: 1.48; color: var(--ink-2); margin: 0 0 8px; }
.story--brief .story__summary { display: none; }
.story .shot { aspect-ratio: 3/2; margin-block-end: 10px; }
.story--brief .shot { display: none; }
a.card:hover .story__title, a.card:hover .lead__title { color: var(--red-ink); }

/* ═══ meta ═══ */
.meta { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .07em; color: var(--ink-3); text-transform: uppercase; }
.meta__src { color: var(--ink); font-weight: 700; }
.chip { border: 1.5px solid var(--ink); padding: 1px 6px; color: var(--ink); font-size: 9px; letter-spacing: .09em; cursor: help; }
.chip--out { background: var(--yellow); border-color: var(--ink); color: var(--ink); }
.chip--ai  { border-style: dashed; color: var(--ink-3); border-color: var(--ink-3); }

/* ═══ the wire ═══ */
.wire__head { display: flex; align-items: baseline; justify-content: space-between; padding-block-end: 9px; border-block-end: 4px solid var(--ink); }
.wire__head h2 { font-family: var(--font-display); font-size: 17px; line-height: 1.3; letter-spacing: .1em; text-transform: uppercase; margin: 0; color: var(--red-ink); }
.wire__count { font-family: var(--font-mono); font-size: 9.5px; color: var(--ink-3); letter-spacing: .1em; }
.wire__list { list-style: none; margin: 0; padding: 0; }
.wire__item { display: grid; grid-template-columns: 4.2em 1fr; gap: 10px; align-items: start; padding-block: 9px; border-block-end: 1px solid var(--rule); }
.wire__item:hover { background: var(--yellow); }
:root[data-theme="dark"] .wire__item:hover { background: rgba(255,208,100,.16); }
.wire__n { display: none; }
.wire__time { font-family: var(--font-mono); font-size: 10.5px; color: var(--blue); font-weight: 700; padding-block-start: 2px; font-variant-numeric: tabular-nums; }
.wire__title { font-size: 14px; line-height: 1.28; margin: 0 0 3px; font-weight: 500; }
.wire__item--new { animation: ping 2.8s steps(1); }
@keyframes ping { 0%,60% { background: var(--red); color: var(--paper); } 61%,100% { background: transparent; } }

/* ═══ world band ═══ */
.band { margin-block-start: 38px; padding: 20px var(--gutter) 26px; border: 3px solid var(--ink); background: var(--paper-2); }
.band__head { font-family: var(--font-display); font-size: 17px; line-height: 1.3; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 4px; color: var(--blue); }

/* ═══ scripts ═══ */
[lang="hi"] .lead__title, [lang="hi"] .story__title, [lang="hi"] .wire__title,
[lang="hi"] .story__summary, [lang="hi"] .lead__summary, [lang="hi"] .tabs button {
  font-family: var(--font-hi); text-transform: none; padding-block: .04em .16em;
}
[lang="hi"] .lead__title { font-size: clamp(24px, 3.7vw, 40px); line-height: 1.3; font-weight: 700; }
[lang="hi"] .story__title { font-size: 17px; line-height: 1.45; font-weight: 700; }
[lang="hi"] .story--brief .story__title { font-size: 14.5px; line-height: 1.48; }
[lang="hi"] .wire__title { font-size: 13.5px; line-height: 1.52; }
[lang="hi"] .story__summary, [lang="hi"] .lead__summary { line-height: 1.68; font-weight: 400; }

[lang="ur"] .lead__title, [lang="ur"] .story__title, [lang="ur"] .wire__title,
[lang="ur"] .story__summary, [lang="ur"] .lead__summary {
  font-family: var(--font-ur); text-transform: none; padding-block: .18em .44em;
}
[lang="ur"] .lead__title { font-size: clamp(19px, 2.9vw, 31px); line-height: 2.5; }
[lang="ur"] .story__title { font-size: 16px; line-height: 2.6; }
[lang="ur"] .story--brief .story__title { font-size: 14.5px; line-height: 2.55; }
[lang="ur"] .wire__title { font-size: 13.5px; line-height: 2.6; }
[lang="ur"] .story__summary, [lang="ur"] .lead__summary { line-height: 2.6; font-size: 14px; }
[lang="ur"] .story { padding-block: 22px; }
[lang="ur"] .wire__item { padding-block: 14px; }

/* ═══ motion — sparing; this is print ═══ */
.reveal { animation: rise .38s steps(4) backwards; }
@keyframes rise { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .reveal, .wire__item--new, .ticker__run { animation: none; } }
.skeleton { background: var(--paper-2); }

/* ═══ footer ═══ */
.foot { margin-block-start: 46px; border-block-start: 4px solid var(--ink); padding-block: 20px 48px; font-size: 12.5px; color: var(--ink-2); line-height: 1.65; }
.foot__links { display: flex; gap: 0; flex-wrap: wrap; margin-block-end: 15px; }
.foot__links a { font-family: var(--font-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; border: 1.5px solid var(--ink); padding: 6px 11px; margin-inline-end: -1.5px; }
.foot__links a:hover { background: var(--red); color: var(--paper); border-color: var(--ink); }
#stat-line { font-family: var(--font-mono); font-size: 10px; letter-spacing: .06em; margin-block-start: 10px; }

/* ═══ prose ═══ */
.prose { max-inline-size: 64ch; padding-block: 8px 58px; }
.prose h1 { font-family: var(--font-display); font-size: clamp(30px, 4.4vw, 48px); line-height: 1.16; text-transform: uppercase; margin: 0 0 10px; }
.prose h2 { font-family: var(--font-display); font-size: 22px; line-height: 1.24; margin: 34px 0 9px; text-transform: uppercase; letter-spacing: .02em; }
.prose .kicker { font-family: var(--font-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--red-ink); margin: 0 0 12px; }
.prose p, .prose li { font-size: 15.5px; line-height: 1.64; color: var(--ink-2); }
.prose strong { color: var(--ink); font-weight: 700; }
.prose a { color: var(--blue); border-block-end: 1.5px solid var(--blue); }
.prose ul { padding-inline-start: 1.1em; }
.prose li { margin-block-end: 6px; }
.prose .lede { font-size: 18px; color: var(--ink); line-height: 1.5; }
.todo { border-inline-start: 5px solid var(--red); background: var(--paper-2); padding: 13px 15px; font-family: var(--font-mono); font-size: 12px; line-height: 1.6; color: var(--ink); margin-block: 16px; }
.backlink { font-family: var(--font-mono); font-size: 10px; letter-spacing: .13em; text-transform: uppercase; color: var(--ink-3); display: inline-block; margin-block: 6px 24px; }
.backlink:hover { color: var(--red-ink); }
.srctable { inline-size: 100%; border-collapse: collapse; font-size: 13.5px; margin-block-start: 12px; }
.srctable th { font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .13em; text-transform: uppercase; text-align: start; color: var(--ink-3); border-block-end: 2.5px solid var(--ink); padding-block: 8px; }
.srctable td { border-block-end: 1px solid var(--rule); padding-block: 8px; color: var(--ink-2); }
.srctable td:first-child { color: var(--ink); font-weight: 600; }
.srctable a { color: var(--blue); }

/* ═══ section pages ═══ */
.tabs a {
  font-family: var(--font-display); font-size: 15px; letter-spacing: .06em;
  text-transform: uppercase; color: var(--ink-3); padding-block: .07em .17em;
}
.tabs a:hover { color: var(--ink); }
.tabs a[aria-current="page"] { color: var(--red-ink); }
.tabs a[aria-current="page"]::before { content: '['; margin-inline-end: 4px; }
.tabs a[aria-current="page"]::after  { content: ']'; margin-inline-start: 4px; }

.seclist { list-style: none; margin: 22px 0 0; padding: 0; }
.seclist li { border-block-start: 1px solid var(--rule); padding-block: 13px; }
.seclist li:last-child { border-block-end: 1px solid var(--rule); }
.seclist a {
  font-family: var(--font-display); font-size: 19px; line-height: 1.16;
  letter-spacing: .004em; text-transform: uppercase; display: block;
  padding-block: .04em .12em; color: var(--ink);
}
.seclist a:hover { color: var(--red-ink); }
.seclist .meta { margin-block-start: 5px; }
/* A section page is lang="en" at the document level but lists articles in all three
   scripts, so the ancestor selector never matched and Devanagari was rendering in
   Anton — a face with no Devanagari glyphs. Match the attribute on the link itself. */
.seclist a[lang="hi"] { font-family: var(--font-hi); text-transform: none; font-size: 17px; line-height: 1.5; font-weight: 700; }
.seclist a[lang="ur"] { font-family: var(--font-ur); text-transform: none; font-size: 16px; line-height: 2.6; }
[lang="hi"] .seclist a { font-family: var(--font-hi); text-transform: none; font-size: 17px; line-height: 1.5; }
[lang="ur"] .seclist a { font-family: var(--font-ur); text-transform: none; font-size: 16px; line-height: 2.6; }

.pager {
  display: flex; gap: 4px; flex-wrap: wrap; align-items: center;
  margin-block-start: 28px; font-family: var(--font-mono); font-size: 12px;
}
.pager a, .pager strong {
  border: 1.5px solid var(--ink); padding: 6px 11px; margin-inline-end: -1.5px;
  color: var(--ink); font-weight: 400;
}
.pager strong { background: var(--ink); color: var(--paper); font-weight: 700; }
.pager a:hover { background: var(--red); color: var(--paper); }
