# 45. Config & UI 전면 리팩토링 (Config & UI Refactoring)

## 1. 목표 (Goal)
- 프로젝트 전반에 산재된 하드코딩된 값(정적 상수, 색상, 폰트)을 설정 파일(`GameConfig`, `ThemeConfig`)로 통합 관리합니다.
- 모든 화면(`MainMenu`, `Battle`, `Inventory`, `Settings`, `CharacterSelection`)의 UI 스타일을 통일합니다.

## 2. 구현 상세 (Implementation Details)

### A. 게임 밸런스 설정 (`GameConfig`)
- **파일:** `lib/game/config/game_config.dart`
- **내용:**
  - **인벤토리/경제:** 최대 크기, 시작 골드, 상점 비용 및 리롤 등.
  - **스테이지:** 구간별 설정, 티어 분포.
  - **전투:** 회복율, 데미지 배율, 방어도 감소, 애니메이션 딜레이 등.
  - **시스템:** 저장 키 (`saveKey`).
- **적용:** `BattleProvider`, `Entity`, `SaveManager`의 매직 넘버 제거.

### B. 테마 및 스타일 설정 (`ThemeConfig`)
- **파일:** `lib/game/config/theme_config.dart`
- **색상 (Colors):**
  - 메인 메뉴(배경, 버튼), 전투 화면(배경, UI, 리스크), 상점/휴식 화면, 아이템 등급 등 모든 색상 정의.
- **폰트 (Fonts):**
  - **Size:** `Tiny`(8.0) ~ `Huge`(48.0) 등 10단계 정의.
  - **Weight:** `Normal`, `Bold` 정의.

### C. 화면별 리팩토링 (Screen Refactoring)
- **`lib/screens/` 및 `lib/widgets/` 전체:**
  - **`BattleScreen` & Widgets:** 로그, 리스크 다이얼로그, 캐릭터 카드, 게임 오버, 보상 팝업 등.
  - **`MainMenuScreen`:** 타이틀, 버튼, 배경.
  - **`InventoryScreen`:** 슬롯, 스탯 텍스트, 팝업.
  - **`CharacterSelectionScreen`:** 카드, 텍스트 스타일.
  - **`SettingsScreen`:** 텍스트, 버튼.
  - **`MainWrapper`:** 공통 배경색 적용.

## 3. 결과 (Result)
- **중앙 관리:** 게임의 수치 밸런스와 디자인 테마를 각각 `GameConfig`와 `ThemeConfig`에서 손쉽게 수정 가능해졌습니다.
- **일관성:** 모든 화면에서 통일된 색상 팔레트와 폰트 스케일을 사용하여 UI 완성도가 향상되었습니다.
- **유지보수:** 하드코딩된 값들이 제거되어 코드 가독성 및 유지보수성이 대폭 개선되었습니다.