"""
Reel B - Autoridade Prof. Borrello
Estetica: fundo bordo/vinho profundo com textura papel antigo, tipografia editorial,
selos dourados. Retrato do Prof em destaque.
Diferenciacao vs Reels 2 (bege domestico) e Reel A (preto puro cinematico):
- Fundo: vinho/borgonha com textura, nao preto puro
- Tipografia: Playfair Display bold (nao Cormorant italic)
- Composicao: retrato + card credenciais, tipo capa de revista
"""
from playwright.sync_api import sync_playwright
import os, base64

W, H = 1080, 1920
OUT = "/opt/mia/workspace/clientes/borrello/criativos_meta_aniversario/pipeline_v4"
FRAMES = f"{OUT}/frames_b"
os.makedirs(FRAMES, exist_ok=True)

# Foto Prof. Borrello braco cruzado (autoridade)
BORRELLO_IMG = "/opt/mia/workspace/clientes/francisco_borrello/_recortes/_MG_9262_cutout.png"
with open(BORRELLO_IMG, "rb") as f:
    borrello_b64 = base64.b64encode(f.read()).decode()

HEAD = """
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,700&family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
<style>
  * { margin:0; padding:0; box-sizing:border-box; }
  body { margin:0; overflow:hidden; width:1080px; height:1920px;
    font-family:'Inter',sans-serif; color:#f5eddb;
    background: #1a0a0a; position:relative; }

  /* Fundo bordo com textura papel antigo */
  .bg {
    position:absolute; inset:0;
    background:
      radial-gradient(ellipse 70% 50% at 50% 25%, rgba(180, 90, 55, 0.35), transparent 65%),
      radial-gradient(ellipse 60% 60% at 30% 90%, rgba(90, 30, 30, 0.55), transparent 70%),
      linear-gradient(180deg, #2a1010 0%, #1a0808 45%, #0f0505 100%);
  }
  .paper {
    position:absolute; inset:0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.55' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.85  0 0 0 0 0.75  0 0 0 0 0.5  0 0 0 0.35 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E");
    mix-blend-mode: multiply;
    opacity: 0.55;
  }
  .grain {
    position:absolute; inset:0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    opacity: 0.7;
  }
  .vignette {
    position:absolute; inset:0;
    background: radial-gradient(ellipse 100% 100% at 50% 50%, transparent 45%, rgba(0,0,0,.75) 100%);
    pointer-events: none;
  }

  /* Foto do Borrello - tratamento cinematico */
  .photo {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 3;
  }
  .photo img {
    display:block;
    filter:
      brightness(1.05)
      contrast(1.15)
      saturate(0.85)
      drop-shadow(0 40px 60px rgba(0,0,0,.75));
  }

  /* Overlay dourado por cima da foto (sombra dramatica) */
  .photo_light {
    position: absolute;
    inset: 0;
    background: linear-gradient(115deg, transparent 40%, rgba(240, 200, 120, .1) 55%, transparent 70%);
    mix-blend-mode: screen;
    pointer-events: none;
    z-index: 4;
  }

  /* CONTAINERS DE TEXTO */
  .top_kicker {
    position: absolute;
    top: 120px; left: 0; right: 0;
    text-align: center; z-index: 5;
  }
  .kicker {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 34px;
    letter-spacing: 10px;
    text-transform: uppercase;
    color: #d4a04c;
  }
  .bottom_block {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 60px 70px 130px;
    text-align: center;
    z-index: 6;
    background: linear-gradient(180deg, transparent 0%, rgba(15, 5, 5, 0.85) 30%, rgba(15, 5, 5, 0.98) 65%);
  }
  h1 {
    font-family:'Playfair Display', serif;
    font-weight: 700;
    font-size: 130px;
    line-height: 1;
    color: #f5eddb;
    letter-spacing: -1.5px;
  }
  h1 em { font-style: italic; color: #e8c479; font-weight: 500; }
  h1 .num {
    font-size: 240px;
    color: #e8c479;
    font-weight: 800;
    line-height: 1;
    display: block;
    letter-spacing: -6px;
  }
  .sub {
    font-family:'Playfair Display', serif;
    font-weight: 400;
    font-size: 62px;
    line-height: 1.2;
    color: #d8c99f;
    margin-top: 30px;
  }
  .seals_row {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-top: 60px;
    flex-wrap: wrap;
  }
  .seal {
    border: 2px solid rgba(212, 155, 65, .55);
    background: rgba(212, 155, 65, .1);
    border-radius: 12px;
    padding: 26px 34px;
    text-align: center;
    min-width: 300px;
  }
  .seal .n {
    font-family: 'Playfair Display', serif;
    font-weight: 800;
    font-size: 90px;
    color: #e8c479;
    line-height: 1;
    letter-spacing: -2px;
  }
  .seal .l {
    font-family: 'Inter', sans-serif;
    font-weight: 500;
    font-size: 26px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #f5eddb;
    margin-top: 10px;
  }
  .cta_url {
    font-family: 'Inter', sans-serif;
    font-weight: 600;
    font-size: 42px;
    letter-spacing: 1px;
    color: #f5eddb;
    background: linear-gradient(180deg, #d4a04c 0%, #a67628 100%);
    padding: 32px 40px;
    border-radius: 14px;
    margin-top: 55px;
    display: inline-block;
    box-shadow: 0 15px 40px rgba(212, 155, 65, .3);
  }
  .name {
    font-family:'Playfair Display', serif;
    font-weight: 700;
    font-style: italic;
    font-size: 82px;
    color: #f5eddb;
    line-height: 1.05;
  }
</style>
"""

def render(name, body):
    html = f"<!DOCTYPE html><html><head>{HEAD}</head><body>{body}</body></html>"
    with sync_playwright() as p:
        browser = p.chromium.launch()
        page = browser.new_page(viewport={"width":W,"height":H})
        page.set_content(html, wait_until="networkidle")
        page.wait_for_timeout(400)
        page.screenshot(path=f"{FRAMES}/{name}.png", clip={"x":0,"y":0,"width":W,"height":H})
        browser.close()

# ============ SCENES ============

# SCENE 1: HOOK - "43.000"
scene1 = """
<div class="bg"></div>
<div class="paper"></div>
<div class="grain"></div>
<div class="vignette"></div>
<div style="position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; z-index:5; text-align:center; padding:0 60px;">
  <div class="kicker" style="margin-bottom:50px;">O que descobriram</div>
  <h1><span class="num">+43 mil</span></h1>
  <h1 style="font-size:100px; line-height:1.05; margin-top:30px;">pessoas que aprenderam com<br><em>este homem?</em></h1>
</div>
"""

# SCENE 2: REVEAL - foto + nome
scene2 = f"""
<div class="bg"></div>
<div class="paper"></div>
<div class="photo" style="top: 130px; height: 1250px;">
  <img src="data:image/png;base64,{borrello_b64}" style="height: 100%;"/>
</div>
<div class="photo_light"></div>
<div class="grain"></div>
<div class="vignette"></div>
<div class="top_kicker">
  <div class="kicker">Autoridade em Radiestesia</div>
</div>
<div class="bottom_block">
  <div class="name">Prof. Francisco Borrello</div>
  <div class="sub" style="margin-top:24px;">40 anos ensinando a arte<br>de sentir o invisível.</div>
</div>
"""

# SCENE 3: PROMISE + seals
scene3 = """
<div class="bg"></div>
<div class="paper"></div>
<div class="grain"></div>
<div class="vignette"></div>
<div style="position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; z-index:5; text-align:center; padding:0 60px;">
  <div class="kicker" style="margin-bottom:40px;">Sua metodologia</div>
  <h1 style="font-size:115px; line-height:1.02;">A <em>Radiestesia</em><br>ao alcance<br>de qualquer um.</h1>
  <div class="seals_row">
    <div class="seal">
      <div class="n">40</div>
      <div class="l">Anos de Prática</div>
    </div>
    <div class="seal">
      <div class="n">+43 mil</div>
      <div class="l">Alunos formados</div>
    </div>
  </div>
</div>
"""

# SCENE 4: CTA
scene4 = f"""
<div class="bg"></div>
<div class="paper"></div>
<div class="photo" style="top: 100px; height: 1050px; opacity: 0.35;">
  <img src="data:image/png;base64,{borrello_b64}" style="height: 100%; filter: brightness(1) contrast(1.05) saturate(0.7) blur(1px);"/>
</div>
<div class="grain"></div>
<div class="vignette"></div>
<div style="position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; z-index:6; text-align:center; padding:0 60px;">
  <div class="kicker" style="margin-bottom:40px;">Começa agora</div>
  <h1 style="font-size:120px; line-height:1;">Passo a passo<br>da <em>Radiestesia</em></h1>
  <div class="sub" style="margin-top:35px;">Curso completo com o<br>Prof. Francisco Borrello</div>
  <div class="cta_url">passoapasso.franciscoborrello.com.br</div>
</div>
"""

scenes = [
    ("scene_01", scene1),
    ("scene_02", scene2),
    ("scene_03", scene3),
    ("scene_04", scene4),
]
for name, body in scenes:
    render(name, body)
    print(f"OK {name}")
print("Reel B - frames prontos")
