/* =========================================================
   Base — 문서 기본값 · 접근성 공통 규칙
   값은 tokens.css의 변수만 사용합니다.
   ========================================================= */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-family);
  font-size: var(--font-size-body);
  line-height: var(--line-height-body);
  color: var(--color-text);
  background: var(--color-background);
  word-break: keep-all;
  overflow-wrap: anywhere;
}
h1, h2, h3, h4, h5 { color: var(--color-text-strong); margin: 0; line-height: var(--line-height-tight); letter-spacing: -0.01em; }
p { margin: 0; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
mark { background: var(--color-primary-soft); color: inherit; padding: 0 1px; border-radius: 2px; }

/* 아이콘: 선 아이콘, 글자색을 따른다 */
svg.i { width: 18px; height: 18px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* 접근성 */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: var(--focus-ring); outline-offset: 2px; }
.skip-link { position: absolute; left: -9999px; top: var(--space-2); z-index: 100; background: var(--color-navy); color: var(--color-on-navy); padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); }
.skip-link:focus { left: var(--space-2); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
