# Task: V2 렌더러 폰트 대폭 확대 (task-290.1)

## 프로젝트 경로
`/home/jay/projects/ThreadAuto/`

## 배경
제이회장님 피드백: "가독성, 가시성이 너무 떨어진다. 표지 제목 글자폰트 3배, 본문 글자도 3배 크게."
1080×1350 해상도 대비 현재 폰트 사이즈가 지나치게 작아 Threads 모바일 피드에서 읽기 어려움.

## 수정 대상 파일
- `renderer/cardnews.py` — 전체 폰트 사이즈 스케일업
- **renderer/themes.py 수정 금지**

## 현재 폰트 사이즈 → 목표 사이즈

### 커버 (render_cover)
| 요소 | 현재 | 목표 |
|------|------|------|
| 카테고리 pill badge | bold 16px | bold 32px |
| 제목 fit_font_size | max 64, min 40 | max 140, min 80 |
| 부제 | regular 22px | regular 42px |
| 브랜드명 | bold 28px | bold 48px |

### 본문 슬라이드 공통 (render_body, render_card_list, render_detail)
| 요소 | 현재 | 목표 |
|------|------|------|
| 슬라이드 제목 | bold 38px | bold 72px |
| 부제(subtitle) | regular 18~20px | regular 36px |
| 아이템 제목 | bold 20~22px | bold 48px |
| 아이템 설명 | regular 15~18px | regular 36px |
| 페이지 번호 | bold 16px | bold 28px |
| pill badge | bold 16px | bold 28px |

### SUMMARY_CTA (render_summary_cta)
| 요소 | 현재 | 목표 |
|------|------|------|
| 제목 | bold 38px | bold 72px |
| 부제 | regular 20px | regular 36px |
| 아이템 제목 | bold 20px | bold 40px |
| 아이템 설명 | regular 15px | regular 32px |
| CTA 문구 | bold 20px | bold 44px |

### 기타
| 요소 | 현재 | 목표 |
|------|------|------|
| 워터마크 | regular 14px | regular 24px |
| 원형 뱃지 숫자 | bold 22px | bold 40px |
| tip 라벨 | bold 16px | bold 32px |
| tip 내용 | regular 16px | regular 32px |
| 요점 라벨 (render_body) | bold 20px | bold 40px |

## 레이아웃 조정 (폰트 확대에 따른 필수 조정)

### MARGIN 확대
- 현재: `MARGIN = 60`
- 목표: `MARGIN = 72` (약간 확대, 너무 넓히면 텍스트 공간 부족)

### 간격(spacing) 조정
폰트가 커지면 줄간격(line_height)도 비례 확대 필요:
- title_line_h: `font_size + 12` → `font_size + 20`
- desc_line_h: `font_size + 8` → `font_size + 14`
- 카드 패딩: 20~24px → 32~40px
- 요소 간 여백: 비례 확대 (현재 8~32px → 16~48px)

### 원형 뱃지 크기
- 현재 badge_r: 24~30px → 목표: 40~48px

### pill badge 패딩
- 현재 _draw_pill_badge의 pad_x=16, pad_y=8 → pad_x=24, pad_y=12

### 커버 제목 영역
- fit_font_size의 max_height: `HEIGHT * 0.35` → `HEIGHT * 0.40` (큰 폰트 수용)

### 카드 높이 (A-3에서 동적 조정됨)
- 큰 폰트로 콘텐츠 높이 자동 증가 → 동적 조정이 이를 자동 반영
- min_h: 200px → 300px (큰 폰트에 맞춤)

## 테스트 요구사항
1. 모든 5개 테마 × render_cover() 테스트 (5장) — `output/font_test/`에 저장
2. 모든 5개 테마 × render_body() 테스트 (5장)
3. render_card_list() items 2~3개 (2장)
4. render_detail() items 2~3개 (2장)
5. render_summary_cta() (1장)
6. render_from_slides() 전체 파이프라인 (1세트)
7. 긴 텍스트(100자 이상 제목)에서 줄바꿈/잘림 정상 동작 확인

## 주의사항
- `fit_font_size()` 메서드가 BaseRenderer(engine.py)에 정의되어 있을 수 있음 — 해당 함수의 min_size/max_size만 호출부에서 변경하면 됨
- `_draw_pill_badge()` 내부 폰트/패딩도 반드시 확대
- `_draw_page_number()` 내부 폰트도 확대
- `_draw_circle_badge()` 내부 폰트도 확대
- `_draw_watermark()` 내부 폰트도 확대
- `_draw_glass_card()` 는 크기만 받으므로 수정 불필요
- `_draw_accent_line()` 두께도 약간 확대 검토 (현재 3~4px → 5~6px)
- `_draw_cta_banner()` 내부 폰트/크기도 확대
- **기존 기능 깨뜨리지 말 것** — render_from_slides(), render_all() 정상 동작 확인 필수