@font-face {
  font-family: 'Pretendard'; font-weight: 400; font-style: normal; font-display: swap;
  src: url('/fonts/Pretendard-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Pretendard'; font-weight: 500; font-style: normal; font-display: swap;
  src: url('/fonts/Pretendard-Medium.woff2') format('woff2');
}
@font-face {
  font-family: 'Pretendard'; font-weight: 700; font-style: normal; font-display: swap;
  src: url('/fonts/Pretendard-Bold.woff2') format('woff2');
}
/* 600 가중치 파일이 없으므로 사용 금지 — 브라우저 합성(faux bold)은 밀도 UI에서 지저분함 */

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--ff);
  font-size: var(--fs-14);
  line-height: var(--lh-base);
  color: var(--ink-700);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, h4, p, ul, ol, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: none; padding: 0; cursor: pointer; }
input, select { font: inherit; }
img, svg { display: block; }
svg { flex: none; }

/* RTL(아랍어·페르시아어) 안전장치 — 인접 텍스트를 끌고 가지 않게 격리 */
[dir] { unicode-bidi: isolate; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.skip {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--navy-800); color: #fff; padding: 10px 16px;
}
.skip:focus { left: 8px; top: 8px; }

:where(a, button, [tabindex], input, select):focus-visible {
  outline: 2px solid var(--focus); outline-offset: 2px; border-radius: var(--r-2);
}
.on-navy :where(a, button, select):focus-visible { outline-color: #fff; }

::selection { background: rgba(18,63,119,.14); color: inherit; }

/* 장식 요소는 드래그 복사에서 제외 → 본문만 깨끗하게 복사됨 */
.no-copy, .rank-num, .badge, .chip, .dot-sep, .density-bar, .kbd, .icon {
  user-select: none; -webkit-user-select: none;
}

/* 복사 시에만 줄바꿈을 만드는 히든 텍스트 */
.copy-br { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: pre; }
