# -*- coding: utf-8 -*-
"""Claudeを信じてる（ショート専用・舞台型・2026-11-07）
エイイチの言葉: AIは信じていないが、自分よりはマシかな程度／自分のミスに自分で気づくのは無理だといつも思って仕事をしている
事実: サイトの変更は、公開前にビルドと実際の画面で確かめる（MASTER の開発ワークフロー）。記事は幅 375〜1440px で見ている"""
from butai_parts import *
OUTRO_K = 6

NAME, VER = "Claudeを信じてる", 3
HEAD = "AIのこと<br>信じてる？"
T_ON = (0, 0.6)


def scene(T, S):
    h = CSS
    # 0: 僕のこと、信じてます？
    t0 = T(*T_ON)
    h += win(t0, T(1, 0), kick("Claude から質問")
             + f'<div class="msg" style="font-size:54px">僕のこと、信じてます？</div>'
             + f'<div class="qm" style="top:150px;font-size:360px;opacity:0;animation:{a("pop", t0 + 0.8, .35)}">?</div>')
    # 1: 信じてない（叩きつける）
    t1 = T(1, 0)
    h += win(t1, T(2, 0), f'<div class="hero" style="left:0;right:0;text-align:center;top:200px;font-size:170px;opacity:0;animation:{a("slam", t1 + 0.05, .3)}">信じてない</div>')
    # 2: えっ…
    t2 = T(2, 0)
    h += win(t2, T(3, 0), f'<div style="position:absolute;left:0;right:0;top:150px;text-align:center;font-size:250px;font-weight:900;color:{INK};opacity:0;animation:{a("pop", t2, .25)}">えっ…</div>')
    # 3: でも、自分よりはマシ（2本の棒）
    t3, s3 = T(3, 0), S(3)
    def bar(top, label, w, d, cls=""):
        return (f'<div style="position:absolute;left:48px;top:{top}px;font-size:36px;font-weight:900;color:{INK}">{label}</div>'
                f'<div class="card {cls}" style="left:230px;top:{top - 12}px;width:{w}px;height:70px;padding:0;{"" if cls else "background:#4A566B;"}transform-origin:left;transform:scaleX(0);animation:{a("grow", t3 + d, .5)}"></div>')
    h += win(t3, T(4, 0), kick("信じる度合い") + '<div class="msg" style="font-size:50px">でも、自分よりはマシ</div>'
             + bar(300, "自分", 300, 0.3) + bar(420, "Claude", 380, s3 - 1.2, "or"))
    # 4: 自分のミスに、自分で気づくのは無理
    t4, s4 = T(4, 0), S(4)
    h += win(t4, T(5, 0), kick("エイイチの考え")
             + f'<div class="card" style="left:48px;top:150px;width:380px;height:300px;font-size:52px;align-items:center;padding:0;opacity:0;animation:{a("up", t4 + 0.2)}"><small>見る</small>自分の目</div>'
             + f'<div class="arrowR" style="left:446px;top:284px;opacity:0;animation:{a("show", t4 + 0.6, .2)}"></div>'
             + f'<div class="card" style="left:494px;top:150px;width:358px;height:300px;font-size:52px;align-items:center;padding:0;opacity:0;animation:{a("up", t4 + 0.8)}"><small>見つける</small>自分のミス</div>'
             + f'<div class="stamp" style="left:560px;top:410px;font-size:64px;animation:{a("slam", t4 + s4 - 1.0, .35)}">無理</div>')
    # 5: だから公開の前に、実際の画面で確かめる（幅の違う画面を順に）
    t5, s5 = T(5, 0), S(5)
    devs = [(375, 110, 230), (768, 200, 230), (1440, 330, 230)]
    x, scr = 48, ""
    for k, (wpx, w, hh) in enumerate(devs):
        scr += (f'<div class="card" style="left:{x}px;top:{460 - hh}px;width:{w}px;height:{hh}px;padding:0;align-items:center;font-size:30px;'
                f'opacity:0;animation:{a("up", t5 + 0.4 + k * 0.35)}, {a("on", t5 + s5 - 1.6 + k * 0.25, .2)}">{wpx}</div>')
        x += w + 40
    h += win(t5, None, kick("公開の前に") + '<div class="msg" style="font-size:52px">実際の画面で、確かめる</div>' + scr
             + f'<div style="position:absolute;left:48px;top:490px;font-size:28px;font-weight:800;color:{DIM}">画面の幅（px）</div>')
    h += outro(T, OUTRO_K)
    return h


def OVER(T):
    return stage_fx(T, shakes=[(T(1, 0.05), 0.5)], fx=[dict(kind="speed", t=T(1, 0.0), d=1.0), dict(kind="shock", t=T(5, 1.8), d=1.6)])


FACE = [(-1, 0.0, 1.0, "smile"), (0, 0.0, 2.8, "wink"), (1, 0.0, 1.2, "surprise"), (2, 0.0, 0.8, "surprise"), (3, 0.0, 2.4, "doubt"),
        (4, 0.0, 3.0, "think"), (5, 0.0, 3.3, "joy"), ("end", 0.0, 3.0, "smile")]
POSE = [(-1, 0.0, 1), (1, 0.0, 2), (3, 0.0, 4), (4, 0.0, 2), (5, 1.8, 4)]
LEAN = []
INTRO = "rise"
MOVES = [(1, 0.1, "back", 0.8), (2, 0.0, "shake", 0.7), (3, 1.0, "hop", 0.8), (5, 1.8, "jump", 1.0)]
SE = [(-1, 0.0, "se_whoosh", -9), (0, 0.6, "se_boot", -12), (0, 1.4, "se_pop", -12), (1, 0.05, "se_pechin", -8),
      (2, 0.0, "se_buzz", -14), (3, 0.3, "se_rise", -14), (3, 1.1, "se_ding", -12), (4, 2.0, "se_pechin", -10),
      (5, 0.4, "se_tick", -12), (5, 0.75, "se_tick", -12), (5, 1.1, "se_tick", -12), (5, 1.8, "se_ding", -9)]
ENDING = dict(kind="jump", at=(5, 1.8))
