/**
 * 한국어 페이지 조판 (SPEC-LANG-SWITCH §5·§6) — /ko/** 산출물만 로드한다.
 * 스코프는 html[data-locale="ko"] 하나. :lang(ko) 금지 — lectures·news 는 이미 lang="ko" 라 as-built 조판이 바뀐다.
 * Inter/Playfair 를 앞에 둔다 — 라틴(워드마크·라벨·숫자)은 영어판과 픽셀 동일, 한글 글리프만 Pretendard 로 떨어진다.
 * 라벨(--track-label 등)은 재정의하지 않는다 — D-1 A(영문 유지) 확정.
 */
html[data-locale="ko"] {
  --font-sans:    "Inter", "Pretendard Variable", Pretendard, -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --font-display: "Playfair Display", "Pretendard Variable", Pretendard, "Apple SD Gothic Neo", serif;
  --lh-body: 1.75;
  --lh-tight: 1.3;
  --lh-hero: 1.18;
  --track-display: -0.025em;
}
html[data-locale="ko"] body {
  word-break: keep-all;          /* 어절 단위 줄바꿈 */
  overflow-wrap: anywhere;       /* 긴 URL·이메일·영문 합성어가 박스를 뚫지 않게 */
  line-break: strict;            /* 행두 금칙 */
}
/* 본문 자간 — main 에 걸어 **상속**으로 내려보낸다. 자체 자간을 선언한 라벨(0.18em 등)은 자기 선언이 이기므로 그대로 유지된다.
   (2026-09-25 결함 정정: 요소별 선택자 main :is(p,li,dd):not(.label) 은 명시도 0,2,3 이라 .colophon·.crumb·.bh 같은
   라벨 문법 요소의 자체 선언까지 덮어 D-1 위반 — 제외 목록 방식은 라벨 클래스가 늘 때마다 새므로 쓰지 않는다. SPEC-LANG-SWITCH §6) */
html[data-locale="ko"] main { letter-spacing: -0.01em; }
html[data-locale="ko"] main :is(p, li, dd) { text-wrap: pretty; }
html[data-locale="ko"] :is(h1, h2, h3, .h2, .book-title, .detail-title) { text-wrap: balance; }
/* 대체 영어판(lang="en" span)은 한글용 -0.01em 자간을 되돌린다(SPEC-LANG-SWITCH §10.4 — lang 은 span 에만 단다) */
html[data-locale="ko"] main [lang="en"] { letter-spacing: normal; }
/* 강의 셸(lectures.css)은 폰트를 고정 스택으로 적는다 — ko 변수가 닿게 되돌린다(SPEC-LANG-SWITCH §2.3) */
html[data-locale="ko"] .lect h1.course { font-family: var(--font-display); }
html[data-locale="ko"] body.lect { font-family: var(--font-sans); }
