"""
Обложка B v3 — концепт «разоблачение»: ярлык AI-АГЕНТ перечёркнут,
под ним проступает правда — ЧАТ-БОТ. Дерзко, в лоб, с воздухом.
Брендбук: Бумага/Тушь/Реактив/Пыль/Стоп, JetBrains Mono + Onest, флэт. 1200x675.
"""
from PIL import Image, ImageDraw, ImageFont

PAPER = (244, 241, 234)   # #F4F1EA
INK   = (14, 14, 14)      # #0E0E0E
BLUE  = (42, 111, 219)    # #2A6FDB
DUST  = (200, 194, 182)   # #C8C2B6
STOP  = (230, 51, 34)     # #E63322
GREY  = (122, 116, 104)
GHOST = (228, 224, 214)   # почти невидимый пыльный

MONO_B = "/workspace/canvas-fonts/JetBrainsMono-Bold.ttf"
MONO_R = "/workspace/canvas-fonts/JetBrainsMono-Regular.ttf"
ONEST  = "/workspace/vc_covers/fonts/Onest.ttf"

W, H = 1200, 675
img = Image.new("RGB", (W, H), PAPER)
d = ImageDraw.Draw(img)

def f(path, size):
    return ImageFont.truetype(path, size)

def tracked(xy, text, font, fill, tr=0, stroke=0, sfill=None):
    x, y = xy
    for ch in text:
        d.text((x, y), ch, font=font, fill=fill, stroke_width=stroke,
               stroke_fill=sfill if sfill else fill)
        x += d.textlength(ch, font=font) + tr
    return x - tr  # right edge

def width_tracked(text, font, tr=0):
    return sum(d.textlength(ch, font=font) for ch in text) + tr*(len(text)-1)

# --- фоновый шёпот: редкие бледные ярлыки "AI-агент" (тысячи заявленных) ---
ghost_f = f(MONO_R, 26)
ghosts = [(150, 150), (760, 120), (980, 470), (120, 520), (620, 590)]
for gx, gy in ghosts:
    d.text((gx, gy), "AI-агент", font=ghost_f, fill=GHOST)

# --- кикер сверху-слева ---
kick = f(ONEST, 20)
tracked((96, 60), "AGENT WASHING", kick, STOP, tr=3)

# --- метрика сверху-справа (крючок Gartner) ---
m_f = f(MONO_B, 22)
m_t = "≈130 из тысяч"
mw = width_tracked(m_t, m_f, 0)
d.text((W - 96 - mw, 58), m_t, font=m_f, fill=BLUE)

# --- ГЕРОЙ ---
big = f(MONO_B, 132)
LX = 96
y1 = 214   # AI-АГЕНТ (ложь)
y2 = 372   # ЧАТ-БОТ  (правда)

# строка 1: ярлык AI-АГЕНТ — приглушённый Пылью
lbl = "AI-АГЕНТ"
lbl_right = tracked((LX, y1), lbl, big, DUST, tr=-2)
# толстая перечёркивающая полоса Стоп-цветом
bar_cy = y1 + int(132 * 0.52)
d.rectangle([LX - 10, bar_cy - 11, lbl_right + 10, bar_cy + 11], fill=STOP)

# строка 2: ЧАТ-БОТ — правда, чёрным, жирнее (stroke)
tracked((LX, y2), "ЧАТ-БОТ", big, INK, tr=-2, stroke=2, sfill=INK)

# --- подзаголовок снизу-слева ---
sub = f(ONEST, 27)
d.text((LX + 2, 566), "Как отличить настоящего агента от ярлыка", font=sub, fill=GREY)

# --- логотип сафронов. снизу-справа ---
logo = f(ONEST, 27)
word, dot = "сафронов", "."
ww = d.textlength(word, font=logo)
dw = d.textlength(dot, font=logo)
lx = W - 96 - ww - dw
ly = H - 62
d.text((lx, ly), word, font=logo, fill=INK)
d.text((lx + ww, ly), dot, font=logo, fill=BLUE)

out = "/workspace/cover_b3.png"
img.save(out, "PNG")
print("OK", out)
