/* ══════ 폰트 ══════
   CDN 대신 로컬 셀프호스팅. 스왑 구간 자체를 없애기 위함.

   CDN + font-display:swap 이면 폰트 도착 전엔 폴백(맑은고딕)으로 그려진다.
   맑은고딕은 Regular/Bold 2단뿐이라 500·600·800 같은 굵기가 전부 뭉개지고,
   Pretendard Variable(45~920 전 구간)이 도착하는 순간 굵기가 확 살아난다.
   → "얇은 것에서 두꺼워지는" 전환의 정체.

   로컬 단일 파일 + font-display:block 으로 폴백 렌더 자체를 차단. */

@font-face {
  font-family: "Pretendard Variable";
  font-style: normal;
  font-weight: 45 920;
  /* block : 폰트가 준비될 때까지 폴백으로 그리지 않는다 → 스왑 자체가 없음.
     로컬 디스크라 4~5ms 만에 준비되므로 체감 지연 0.
     swap 은 폴백 렌더 후 교체 = 사용자가 본 그 증상.
     optional 은 Chrome 이 "이미 캐시된 경우만 적용" 휴리스틱을 써서
     첫 로드에 폰트를 아예 안 쓴다(실측 확인). 둘 다 채택 불가. */
  font-display: block;
  src: url("./fonts/PretendardVariable.woff2") format("woff2-variations");
}

/* 폰트 파일을 못 읽는 예외 상황용 안전망.
   폴백이 Pretendard 메트릭과 같은 크기로 렌더되도록 보정한다.
   실측(100px/700) — Pretendard 폭 933.4 · asc 95 · desc 24 · line 119
                     Malgun     폭 1105.5 · asc 109 · desc 24 · line 133 */
@font-face {
  font-family: "Pretendard Fallback";
  src:
    local("Malgun Gothic"), local("Apple SD Gothic Neo"), local("Noto Sans KR"),
    local("Segoe UI");
  size-adjust: 84.43%;
  ascent-override: 112.52%;
  descent-override: 28.43%;
  line-gap-override: 0%;
}
