/*
 * danbi-expertpack — 웹폰트
 *
 * 핸들: danbi-ep-fonts  (includes/setup.php). danbi-ep-main 보다 먼저 로드된다.
 *
 * 폰트 파일은 CDN 대신 이 폴더에 둔다. 배포로 함께 넘어가야 모든 대상에서
 * 같은 폰트가 나온다.
 *
 * 여기에는 @font-face 만 둔다. body { font-family: ... } 같은 적용 규칙은
 * assets/css/main.css 에 있다.
 *
 * -----------------------------------------------------------------------------
 * 본문 폰트: 긱산스 (Kigsans) — Kigtype
 * -----------------------------------------------------------------------------
 * 파일 내부 패밀리명은 'kigsans OTF' / 'kigsans TTF' 로 서로 다르지만,
 * 여기서 'Kigsans' 한 이름으로 묶어 굵기로만 구분한다.
 * (파일명의 OTF/TTF 표기와 무관하게 둘 다 CFF 아웃라인이다.)
 *
 * 한글 음절 전체(U+AC00–D7A3) + 라틴 + 호환자모 포함.
 *
 * 주의: 이 폰트에는 Regular(400) 이 없다. Medium(500) 과 Bold(700) 뿐이다.
 *       CSS 폰트 매칭 규칙상 400 요청은 500 으로, 600 요청은 700 으로 자동
 *       해석되므로 가짜 굵기(synthetic weight)는 생기지 않는다.
 *       결과적으로 사이트 본문이 Medium 굵기로 보인다. 의도한 것이다.
 */

@font-face {
	font-family: 'Kigsans';
	src: url('./kigsans-500.woff') format('woff');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Kigsans';
	src: url('./kigsans-700.woff') format('woff');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/*
 * -----------------------------------------------------------------------------
 * 디스플레이 폰트: 오늘고래실 ExtraBold (OnulGoraesil)
 * -----------------------------------------------------------------------------
 * 제목·메뉴처럼 눈에 띄어야 하는 자리에만 쓴다. 본문에는 쓰지 않는다.
 * h1 에는 styles/_typography.scss 가 자동으로 건다. 그 밖의 자리는
 * .u-font-display 유틸리티 클래스로 골라 붙인다(styles/_utilities.scss).
 *
 * 파일 내부 패밀리명은 'OnulGoraesil-ExtraBold' 지만, CSS 에서는 굵기를
 * 이름에서 떼고 'OnulGoraesil' 로 묶는다. 나중에 다른 굵기가 들어오면
 * 같은 패밀리에 font-weight 만 달리 선언해 추가할 수 있다.
 * (본문 Kigsans 도 같은 방식이다.)
 *
 * 한글 음절 전체(U+AC00–D7A3) + 라틴 포함. 실측 WOFF2, 343KB.
 *
 * font-weight 가 범위(400 900)인 이유 — 굵기가 이 하나뿐이다.
 * 범위로 선언하면 어떤 굵기를 요청해도 이 face 가 그대로 쓰이므로
 * 브라우저가 가짜 굵기(synthetic bold)를 만들지 않는다.
 * 단일 굵기 폰트를 400 하나로만 선언하면 700 요청에서 글자가 뭉개진다.
 */

@font-face {
	font-family: 'OnulGoraesil';
	src: url('./OnulGoraesil-ExtraBold.woff2') format('woff2');
	font-weight: 400 900;
	font-style: normal;
	font-display: swap;
}

/*
 * -----------------------------------------------------------------------------
 * 손글씨 폰트: 개구 Bold (Gaegu) — The Gaegu Project Authors, SIL OFL 1.1
 * -----------------------------------------------------------------------------
 * "당신의 바람" 구름 안 글자에만 쓴다(styles/_wishes.scss). 토큰은
 * --danbi-ep-font-hand(styles/_tokens.scss).
 *
 * 원본은 google/fonts 저장소의 ofl/gaegu/Gaegu-Bold.ttf(2.9MB)다. fontTools 로
 * WOFF2 로만 바꿨다(486KB). 글리프는 손대지 않았다. 라이선스 전문은 Gaegu-OFL.txt.
 *
 * 한글은 **완성형 2,350자뿐이다**(KS X 1001). 그 밖의 드문 음절(예: 똠 · 햏)은 대체값인
 * 본문 폰트로 나온다. 사람이 남긴 글이라 드물게 섞일 수 있다.
 *
 * 굵기는 Bold 하나다. 붉은 구름 위 흰 글자라 Regular 는 획이 가늘어 흐려 보였다.
 * 범위(400 900)로 선언하는 이유는 위 오늘고래실과 같다 — 가짜 굵기를 막는다.
 *
 * @font-face 는 그 글꼴을 쓰는 글자가 화면에 있을 때만 파일을 받는다. 바람이 없는
 * 페이지에서는 내려받지 않는다.
 */

@font-face {
	font-family: 'Gaegu';
	src: url('./gaegu-700.woff2') format('woff2');
	font-weight: 400 900;
	font-style: normal;
	font-display: swap;
}

/*
 * -----------------------------------------------------------------------------
 * TODO 1 — woff2 추가 (용량 문제)
 * -----------------------------------------------------------------------------
 * 현재 두 파일 합계가 약 1.6MB 다 (500: 795KB, 700: 780KB).
 * 한글 폰트라 글리프가 11,000자 이상이어서 원래 크다.
 * woff2 로 바꾸면 보통 40~50% 줄어든다.
 *
 * 이 서버에는 woff2_compress / fontTools / pip 이 없어 여기서는 변환할 수 없다.
 * 로컬에서 변환한 뒤 fonts/ 에 넣고, 각 @font-face 의 src 를 아래처럼 바꾼다.
 * woff2 를 먼저 적어야 지원 브라우저가 그쪽을 받는다.
 *
 *   src: url('./kigsans-500.woff2') format('woff2'),
 *        url('./kigsans-500.woff') format('woff');
 *
 * 변환 예:
 *   npm i -g ttf2woff2   # 또는
 *   pip install fonttools brotli
 *   python -c "from fontTools.ttLib import TTFont; f=TTFont('kigsans-500.woff'); f.flavor='woff2'; f.save('kigsans-500.woff2')"
 *
 * 파일이 없는 상태에서 미리 woff2 줄을 적어 두지 않는다. 404 요청이 발생한다.
 *
 * -----------------------------------------------------------------------------
 * 디스플레이 폰트를 더 추가할 때
 * -----------------------------------------------------------------------------
 * 같은 패밀리에 다른 굵기를 넣는 경우 — font-weight 범위를 겹치지 않게 나눈다.
 *
 *   @font-face {
 *       font-family: 'OnulGoraesil';
 *       src: url('./OnulGoraesil-Regular.woff2') format('woff2');
 *       font-weight: 400 600;
 *       font-style: normal;
 *       font-display: swap;
 *   }
 *   (그리고 위 ExtraBold 의 범위를 700 900 으로 좁힌다)
 *
 * 다른 패밀리를 추가하는 경우 — styles/_tokens.scss 에 토큰을 새로 만들고
 * styles/_utilities.scss 에 유틸리티 클래스를 하나 더 만든다.
 * 절차는 docs/architecture.md 5-6.
 */
