
    (<i&                       d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
mZmZmZmZ dZdZd	Zd
ZdZeZdZdZdZeZdZeZdZdZdZe
dz  Zedz  Zedz  Z djC                  g de de de de de de de de de d e d!e d"e d#e d$e d%e d&e d'e d(e d)e d*e d+e d,e d-e d.      Z"d2d/Z#d2d0Z$e%d1k(  r e$        yy)3u   컨셉 #50 Scandinavian Digital Elegance — Red Dot / iF Design Award Inspired
T.O.P Recruiting Meta Ad — typography-driven minimalism, pure white + gold accent.
    )annotationsN)Path)sync_playwright)WORKSPACE_ROOTFONT_DIRCORE_METRIC_MIN_PX
CTA_MIN_PXHEAD_SUB_RATIO                ,   0   P   g?g?g?   zCoutput/meta-ads/concept-catalog/50-intl-award-scandinavian-elegancez
sample.pngz'50-intl-award-scandinavian-elegance.png z<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
  @font-face {
    font-family: 'Pretendard';
    src: url('file://z/Pretendard-Black.otf') format('opentype');
    font-weight: 900;
  }
  @font-face {
    font-family: 'Pretendard';
    src: url('file://z/Pretendard-ExtraBold.otf') format('opentype');
    font-weight: 800;
  }
  @font-face {
    font-family: 'Pretendard';
    src: url('file://z/Pretendard-Bold.otf') format('opentype');
    font-weight: 700;
  }
  @font-face {
    font-family: 'Pretendard';
    src: url('file://z/Pretendard-SemiBold.otf') format('opentype');
    font-weight: 600;
  }
  @font-face {
    font-family: 'Pretendard';
    src: url('file://z/Pretendard-Medium.otf') format('opentype');
    font-weight: 500;
  }
  @font-face {
    font-family: 'Pretendard';
    src: url('file://z/Pretendard-Regular.otf') format('opentype');
    font-weight: 400;
  }
  @font-face {
    font-family: 'Pretendard';
    src: url('file://z/Pretendard-Light.otf') format('opentype');
    font-weight: 300;
  }
  @font-face {
    font-family: 'Pretendard';
    src: url('file://u  /Pretendard-ExtraLight.otf') format('opentype');
    font-weight: 200;
  }

  * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  body {
    width: 1080px;
    height: 1080px;
    overflow: hidden;
    background: #FFFFFF;
  }

  .canvas {
    width: 1080px;
    height: 1080px;
    position: relative;
    font-family: 'Pretendard', 'Noto Sans KR', sans-serif;
    background: #FFFFFF;
  }

  /* ── 배경: 극히 미세한 그리드 라인 ── */
  .bg-lines {
    position: absolute;
    inset: 0;
    background-image:
      repeating-linear-gradient(
        0deg,
        transparent,
        transparent 107px,
        rgba(0, 0, 0, 0.035) 107px,
        rgba(0, 0, 0, 0.035) 108px
      ),
      repeating-linear-gradient(
        90deg,
        transparent,
        transparent 107px,
        rgba(0, 0, 0, 0.025) 107px,
        rgba(0, 0, 0, 0.025) 108px
      );
    pointer-events: none;
  }

  /* ── 좌측 상단 브랜드 뱃지 ── */
  .brand-badge {
    position: absolute;
    top: 64px;
    left: 80px;
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .brand-badge .dot {
    width: 10px;
    height: 10px;
    background: #D4AF37;
    border-radius: 50%;
    flex-shrink: 0;
  }
  .brand-badge .brand-label {
    font-size: u  px;
    font-weight: 400;
    color: #8A8A8A;
    letter-spacing: 0.12em;
    text-transform: uppercase;
  }

  /* ── 우측 상단 작은 수직 텍스트 태그 ── */
  .tag-right {
    position: absolute;
    top: 64px;
    right: 80px;
    font-size: u  px;
    font-weight: 300;
    color: #CCCCCC;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    text-align: right;
  }

  /* ── 골드 액센트 바 ── */
  .gold-bar {
    position: absolute;
    top: 218px;
    left: 80px;
    width: 56px;
    height: 4px;
    background: #D4AF37;
  }

  /* ── 메인 헤드라인 ── */
  .headline-block {
    position: absolute;
    top: 244px;
    left: 80px;
    right: 80px;
  }
  .headline {
    font-size: z\px;
    font-weight: 900;
    color: #1F1F1F;
    letter-spacing: -0.03em;
    line-height: u   ;
  }
  .headline .line-2 {
    display: block;
    margin-top: 4px;
  }

  /* ── 서브 텍스트 ── */
  .sub-block {
    position: absolute;
    top: 494px;
    left: 80px;
  }
  .sub-label {
    font-size: z\px;
    font-weight: 300;
    color: #1F1F1F;
    letter-spacing: -0.01em;
    line-height: z%;
  }
  .sub-amount {
    font-size: z\px;
    font-weight: 800;
    color: #D4AF37;
    letter-spacing: -0.03em;
    line-height: u  ;
    margin-top: 2px;
    display: block;
  }

  /* ── 수평 구분선 (골드) ── */
  .divider-gold {
    position: absolute;
    top: 710px;
    left: 80px;
    width: 340px;
    height: 1px;
    background: rgba(212, 175, 55, 0.45);
  }

  /* ── 보디 텍스트 ── */
  .body-block {
    position: absolute;
    top: 730px;
    left: 80px;
  }
  .body-line {
    font-size: z]px;
    font-weight: 400;
    color: #6B6B6B;
    letter-spacing: -0.005em;
    line-height: u   ;
  }

  /* ── CTA 영역 ── */
  .cta-block {
    position: absolute;
    bottom: 80px;
    left: 80px;
    right: 80px;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .cta-text {
    font-size: a<  px;
    font-weight: 700;
    color: #1F1F1F;
    letter-spacing: -0.02em;
  }
  .cta-arrow-wrap {
    width: 68px;
    height: 68px;
    border: 2px solid #D4AF37;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .cta-arrow {
    font-size: z)px;
    color: #D4AF37;
    line-height: u   ;
    margin-left: 2px;
  }

  /* ── 우하단 META AD 워터마크 ── */
  .meta-tag {
    position: absolute;
    bottom: 88px;
    right: 80px;
    font-size: uW  px;
    font-weight: 300;
    color: #D5D5D5;
    letter-spacing: 0.18em;
    text-transform: uppercase;
  }

  /* ── 우측 중단 세로 텍스트 장식 ── */
  .vertical-text {
    position: absolute;
    top: 50%;
    right: 68px;
    transform: translateY(-50%) rotate(90deg);
    transform-origin: center center;
    font-size: u  px;
    font-weight: 200;
    color: #E2E2E2;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    white-space: nowrap;
  }
</style>
</head>
<body>
<div class="canvas">

  <!-- 배경 그리드 라인 -->
  <div class="bg-lines"></div>

  <!-- 우측 세로 장식 텍스트 -->
  <div class="vertical-text">Premium Recruiting</div>

  <!-- 브랜드 뱃지 상단 좌 -->
  <div class="brand-badge">
    <div class="dot"></div>
    <div class="brand-label">T.O.P 사업단</div>
  </div>

  <!-- 우측 상단 태그 -->
  <div class="tag-right">Meta Ad</div>

  <!-- 골드 액센트 바 -->
  <div class="gold-bar"></div>

  <!-- 메인 헤드라인 -->
  <div class="headline-block">
    <div class="headline">
      당신의 가치에<span class="line-2">걸맞은 대우</span>
    </div>
  </div>

  <!-- 서브 텍스트 -->
  <div class="sub-block">
    <div class="sub-label">정착지원금 최대</div>
    <span class="sub-amount">1,000만원</span>
  </div>

  <!-- 골드 구분선 -->
  <div class="divider-gold"></div>

  <!-- 보디 텍스트 -->
  <div class="body-block">
    <div class="body-line">T.O.P 사업단 &nbsp;|&nbsp; 코스닥 상장</div>
    <div class="body-line">인카금융서비스</div>
  </div>

  <!-- CTA -->
  <div class="cta-block">
    <div class="cta-text">지금 상담 신청하기</div>
    <div class="cta-arrow-wrap">
      <span class="cta-arrow">→</span>
    </div>
  </div>

</div>
</body>
</html>c                    t         j                  dd       t         dz  } | j                  t        d       t	        d|         t	        d       t               5 }|j                  j                         }	 |j                  ddd	
      }|j                  d| j                          d       |j                  d       |j                  t        t              d       |j                          	 ddd       t        j!                         j"                  }t	        dt         d|dd       y# |j                          w xY w# 1 sw Y   TxY w)u7   Playwright로 HTML을 1080x1080 PNG로 캡처합니다.T)parentsexist_okz_concept50_template.htmlzutf-8)encodingu     HTML 템플릿 저장: u     Playwright 렌더링 중...i8  )widthheight)viewportzfile://networkidle)
wait_untili  png)pathtypeNu     PNG 저장 완료: z (,z bytes))
OUTPUT_DIRmkdir
write_textHTML_TEMPLATEprintr   chromiumlaunchnew_pagegotoresolvewait_for_timeout
screenshotstrSAMPLE_PATHclosestatst_size)	html_filepbrowserpagesizes        g/home/jay/workspace/.worktrees/task-2057-dev2/tools/ai-image-gen/gen_concept50_scandinavian_elegance.pyrender_htmlr9   c  s"   TD177I9	%i[
12	
)*		 	a**##%	##tt-L#MDII	 1 1 345-IP!!$'OO[!1O>MMO	 %%D	!+ba
@A MMO	 	s%   E7A*D0!E0EEEc                 p   t        d       t        d       t        d       t        d       t        d       t        d       t                t        d       t        j                  t        t
               t        dt
                t        d       t        d	t                t        d
t
                y )Nz<============================================================u(   컨셉 #50 Scandinavian Digital Elegancez8Red Dot / iF Design Award inspired typography minimalismu5   T.O.P Recruiting — Premium Settlement Bonus Meta Adu2   
[1/2] HTML 오버레이 렌더링 (Playwright)...u   
[2/2] 복사본 생성...u     복사 완료: u   
완료!z  sample.png  : z  named copy  : )r&   r9   shutilcopy2r/   	COPY_PATH     r8   mainr@   {  s    	(O	
45	
DE	
AB	(O	
?@M	
'(
LLi(	i[
)*	I	[M
*+	YK
()r?   __main__)returnNone)&__doc__
__future__r   r;   syspathlibr   playwright.sync_apir   
gen_configr   r   r   r	   r
   
_SIZE_22PX
_SIZE_24PX
_SIZE_26PX
_SIZE_28PX
_SIZE_32PX_CTA_PX
_SIZE_44PX
_SIZE_48PX
_SIZE_80PX
_METRIC_PX_LH_1_05	_LH_RATIO_LH_1_1_LH_1_55_LH_1r"   r/   r=   joinr%   r9   r@   __name__r>   r?   r8   <module>r[      s8   #  
  / _ _









	
	 cc
<'BB	| |  | Z| | Z| |" Z#|" #|, Z-|, -|6 Z7|6 7|@ ZA|@ A|J ZK|J K|T ZU|T@ U|T |U|TU|l |m|lm|` |a|`a|h i|hi|D |E|DE|L M|LM|R |S|RS|Z [|Z[|F yG|FG|N O|NO|j |k|jk|J |K|JK|N O|N	O|` |a|`a|| |}||>}|~	B0*& zF r?   