/* ============ RESET ============ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
img, svg { display: block; max-width: 100%; }
button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
a { color: inherit; text-decoration: none; }
ul, ol, dl { list-style: none; }

/* ============ TOKENS (New York Times — white) ============ */
:root {
  --ink: #ffffff;          /* page (newsprint white) */
  --ink-2: #f6f5f1;        /* alt band */
  --panel: #ffffff;        /* surface */
  --cream: #121212;        /* near-black ink (text/headlines) */
  --cream-2: #333333;      /* body secondary */
  --muted: #6b6b6b;        /* captions / meta */
  --accent: #326891;       /* restrained NYT link blue */
  --accent-2: #1d4a6b;     /* darker link hover */
  --rule: #121212;         /* heavy black rule */
  --line: rgba(18,18,18,.16);
  --line-strong: rgba(18,18,18,.42);

  --maxw: 1240px;
  --gutter: clamp(20px, 5vw, 56px);
  --space: clamp(60px, 8vw, 110px);

  --serif: Georgia, 'Times New Roman', 'Times', serif;          /* headlines + body */
  --label: 'Libre Franklin', Helvetica, Arial, sans-serif;      /* NYT Franklin Gothic labels */
  --black: 'UnifrakturMaguntia', 'Old English Text MT', Georgia, serif; /* blackletter nameplate */
}

/* ============ BASE ============ */
body {
  font-family: var(--serif);
  color: var(--cream);
  background: var(--ink);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.grain { display: none; }   /* no grain on white */

/* ============ TYPE ============ */
h1, h2, h3 { font-family: var(--serif); font-weight: 700; color: var(--cream); letter-spacing: -.012em; }
h1 { font-size: clamp(2.3rem, 5vw, 4rem); line-height: 1.04; }
h2 { font-size: clamp(1.7rem, 3.2vw, 2.5rem); line-height: 1.1; }
h3 { font-size: 1.4rem; line-height: 1.16; }
h1 em, h2 em, h3 em { font-style: italic; }
p { color: var(--cream-2); }

/* Franklin-Gothic editorial labels */
.kicker, .block-label, .label, .folio, .masthead-folio {
  font-family: var(--label); text-transform: uppercase; letter-spacing: .07em;
  font-size: .72rem; font-weight: 700; color: var(--cream);
}

/* ============ LAYOUT PRIMITIVES ============ */
.container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: var(--gutter); }
.container.narrow { max-width: 860px; }
.section { padding-block: var(--space); }

/* section header — top rule + headline (NYT) */
.section-head { margin-bottom: clamp(32px, 5vw, 52px); padding-top: 16px; border-top: 2px solid var(--rule); }
.section-head.center { text-align: center; }
.section-head h2 { max-width: 22ch; }
.section-head.center h2 { max-width: none; }

.block-head { display: grid; gap: 12px; margin-bottom: clamp(32px, 5vw, 56px);
  padding-top: 16px; border-top: 2px solid var(--rule); }
.block-label { color: var(--cream); }
.block-head h2 { max-width: 20ch; }

/* ============ UTILITIES ============ */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.sr-only-focusable:focus { position: fixed; top: 12px; left: 12px; width: auto; height: auto; padding: 10px 16px; clip: auto; background: var(--cream); color: #fff; z-index: 2000; }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
