/* v4 foundation: shared tokens, typography and safe reading defaults. */
:root {
  --ink: #11110f;
  --paper: #f2efe7;
  --paper-strong: #e7e1d5;
  --line: color-mix(in srgb, var(--ink) 20%, transparent);
  --muted: #716e67;
  --signal: #c7ff12;
  --wine: #5d252b;
  --brass: #b08b50;
  --article-frame: min(1320px, calc(100vw - 64px));
  --article-reading: min(880px, 100%);
  --article-wide: 100%;
  --display: Didot, "Bodoni MT", "Iowan Old Style", "Times New Roman", serif;
  --body: Pretendard, "Apple SD Gothic Neo", "Noto Sans KR", Arial, sans-serif;
  --mono: "SFMono-Regular", Consolas, monospace;
}

* { box-sizing: border-box; }
html { background: var(--paper); scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; overflow-x: clip; color: var(--ink); background: var(--paper); font-family: var(--body); line-height: 1.65; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .18em; }
button, input { font: inherit; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.skip-link { position: fixed; z-index: 100; top: -4rem; left: 1rem; padding: .75rem 1rem; color: var(--paper); background: var(--ink); }
.skip-link:focus { top: 1rem; }
.kicker { margin-bottom: 1rem; font: 700 .72rem/1.25 var(--body); letter-spacing: .18em; text-transform: uppercase; }
.title-accent { color: var(--wine); }
[data-reveal] { transition: opacity .55s ease, transform .55s ease; }
.js-ready [data-reveal] { opacity: 0; transform: translateY(18px); }
.js-ready [data-reveal].is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
