#!/usr/bin/env python3
"""컨셉 #01 '제약을 캔버스로' v2 — HTML → PNG 캡처 스크립트
폰트 규칙: 메인 84px / 서브 64px / CTA 40px / 약관 40px (최소 40px 준수)
"""

from pathlib import Path
from playwright.sync_api import sync_playwright

BASE = Path(__file__).parent
TEMPLATE_PATH = BASE / "template-v2.html"
SAMPLE_PATH   = BASE / "sample-v2.png"
COPY_PATH     = BASE / "01-constraint-v2.png"


def capture() -> None:
    with sync_playwright() as p:
        browser = p.chromium.launch()
        try:
            page = browser.new_page(viewport={"width": 1080, "height": 1080})
            template_url = f"file://{TEMPLATE_PATH.resolve()}"
            print(f"[로드] {template_url}")
            page.goto(template_url, wait_until="networkidle")
            # 웹폰트(나눔명조 Google Fonts) + 로컬 폰트 로딩 대기
            page.wait_for_timeout(4000)
            SAMPLE_PATH.parent.mkdir(parents=True, exist_ok=True)
            page.screenshot(path=str(SAMPLE_PATH), type="png")
            size_kb = SAMPLE_PATH.stat().st_size / 1024
            print(f"[완료] {SAMPLE_PATH}  ({size_kb:.0f} KB)")

            # 복사: 01-constraint-v2.png
            import shutil
            shutil.copy2(str(SAMPLE_PATH), str(COPY_PATH))
            print(f"[복사] {COPY_PATH}  ({COPY_PATH.stat().st_size / 1024:.0f} KB)")

        finally:
            browser.close()


if __name__ == "__main__":
    capture()
