/* ============================================================
   기본 리셋 + 타이포 기반 + 레이아웃 유틸
   ============================================================ */
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css');
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;1,9..144,300;1,9..144,400&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--sans);
  font-weight: var(--fw-reg);
  font-size: 16px;
  line-height: 1.7;
  color: var(--graphite);
  background: var(--ivory);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  /* 한글·숫자가 글자/자리 단위로 쪼개지지 않도록 단어 단위 줄바꿈 */
  word-break: keep-all;
  overflow-wrap: break-word;
}

img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
ul, ol { list-style: none; }
input, textarea, select, button { font-family: inherit; font-size: inherit; }

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

/* 스킵 링크 */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--graphite); color: var(--ivory); padding: 10px 16px;
}
.skip-link:focus { left: 0; }

/* 레이아웃 유틸 */
.container { max-width: var(--w-content); margin-inline: auto; padding-inline: var(--pad-x); }
.full { width: 100%; }

/* 공통 라벨 */
.kicker { font-size: 12px; letter-spacing: .28em; text-transform: uppercase; color: var(--muted); font-weight: var(--fw-med); }
.idx { font-family: var(--serif); font-weight: var(--fw-reg); font-size: 14px; letter-spacing: .02em; color: var(--bronze); }

.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; }

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