# The Iron Hollow — Chapter 1 PoC
# Scene 2: Sara Arrives

define sara = Character("Sara", color="#c8a882")
define luno = Character("Luno", color="#82b4c8")
define narrator = Character(None)

# ── Persistent flags ──────────────────────────────────────────────────────────
default checkpoint_set    = False
default rewind_used       = False
default purpose_chosen    = False
default silence_chosen    = False # here Sara learns that Luno asks everyone the same question
default timer_left        = 20
default timer_max         = 20

# ── Entry point ───────────────────────────────────────────────────────────────
label start:
    scene bg training_yard
    with fade

    "The Iron Hollow training yard sits inside a converted warehouse district. Stone walls, packed dirt, the smell of old metal and new sweat."
    "Sara takes it all in before she steps through the gate."

    show sara neutral at left
    with easeinright

    "Two people are already here. A boy against the far wall, watching nothing. And a girl near the gate — moving like she already belongs."

    show luno curious at right
    with easeinright

    "The girl notices Sara first."
    jump luno_greeting

label luno_greeting:
    luno "You're here for the recruitment?"
    sara "Yes. Where do I register?"
    luno "The man over at that table takes your name. Then we wait."
    luno "I'm Luno. Been here a few days already — helping with the wounded from last month's job. I know how things run here if you need anything."
    "She doesn't say it like an offer. She says it like she's already taking notes."
    luno "So. Money, glory, or are you just bored?"
    jump choice_screen

label rewind_choice(continue_label=None):
    if checkpoint_set:
        show screen rewind_prompt
        menu:
            "\[ Rewind \]":
                hide screen rewind_prompt
                $ rewind_used = True
                scene black
                with dissolve
                show screen teal_wash
                "The world pulls back."
                "Colour drains to teal. Sound slows to nothing."
                hide screen teal_wash
                scene bg training_yard
                with dissolve
                show sara neutral at left
                show luno curious at right
                "Sara is standing at the choice again. Luno's question still in the air."
                jump choice_screen
            "\[ Continue \]":
                hide screen rewind_prompt
                jump scene_continues

label choice_screen:
    show screen timer_bar

    menu:
        "Why are you here?"
        "\[ Create Checkpoint \]" if not checkpoint_set:
            $ checkpoint_set = True
            hide screen timer_bar
            scene black
            with dissolve
            "A flash. Sara's hand, signing something. A contract. The ink is red."
            "It could mean anything."
            scene bg training_yard
            with dissolve
            show sara neutral at left
            show luno curious at right
            jump choice_screen

        "For the money, like anyone.":
            if rewind_used:
                hide screen timer_bar
                jump branch_money_post_rewind
            else:
                hide screen timer_bar
                jump branch_money

        "To find something worth doing." if not purpose_chosen:
            hide screen timer_bar
            jump branch_purpose

        "I'd rather not say.":
            hide screen timer_bar
            jump branch_silence

        "\[ You asked the others the same thing, didn't you. \]" if checkpoint_set and silence_chosen:
            hide screen timer_bar
            jump branch_sharp

label branch_money:
    sara "Same reason as everyone else, I'd assume."
    luno "Honest. I can work with that."
    show luno amused at right
    luno "Though if money's the goal, you don't look like you need it."
    sara "Looks can be misleading."
    show luno neutral at right
    luno "Sure."
    "A pause. Just a half-beat too long."
    luno "They can be."
    "She doesn't push. But her eyes stay on Sara for another moment"
    jump rewind_choice
    jump scene_continues

label branch_money_post_rewind:
    sara "Same reason as everyone else."
    luno "Sure."
    "Unremarkable. Fine."
    "But when Sara finishes speaking, Luno's eyes linger — just a half-second longer than they should."
    show luno linger at right
    "Not suspicion. Not quite. More like the feeling of reaching for something that moved."
    show luno neutral at right
    "She shakes it off. Probably nothing."
    "Sara knows it wasn't nothing."
    jump rewind_choice
    jump scene_continues

label branch_purpose:
    $ purpose_chosen = True
    sara "I'm not looking for money exactly. More... something to point myself at."
    "A beat. Something opens in Luno's expression — not warm, but something."
    show luno curious at right
    luno "Huh. That's not what I expected."
    sara "What did you expect?"
    luno "Something about honour. Or family legacy."
    show luno tilted at right
    luno "The clothes suggest a script."
    show sara pained at left
    sara "The script didn't survive."
    "She doesn't mean to say it. Too true. Too fast. Too much."
    "She can feel it land — can feel Luno actually {i}looking{/i} at her now, not just watching."
    show luno soft at right
    luno "...Yeah. I know that feeling."
    "Sara can step back. Give the safer answer. Luno will never know what she almost said."
    jump rewind_choice
    jump scene_continues

label branch_silence:
    $ silence_chosen = True
    sara "That's a fairly personal question for someone I've known thirty seconds."
    luno "Fair. I ask everyone. You don't have to answer."
    sara "...Then I won't."
    luno "That's an answer too."
    "She's not unfriendly. But Sara just became a question mark in Luno's mental ledger."
    jump rewind_choice
    jump scene_continues

label branch_sharp:
    sara "You asked him the same thing."
    "She nods toward Eron."
    sara "Before I arrived."
    "Luno goes still. Not alarmed — but recalibrating."
    show luno still at right
    luno "...You were watching from outside the gate?"
    sara "The wall has gaps."
    luno "Most people don't bother to look."
    sara "I bother."
    "A pause. Luno is weighing something."
    luno "That's either very smart or very paranoid."
    sara "Both, usually."
    "Luno laughs — a real one, short and surprised."
    show luno laugh at right
    "But her eyes are sharper now, not warmer."
    show luno sharp at right
    jump rewind_choice
    jump scene_continues

label scene_continues:
    "Before the silence can settle, footsteps at the gate."
    "Two more arrivals. The scene continues..."
    return

# ── Screens ───────────────────────────────────────────────────────────────────

screen timer_bar:
    zorder 10
    timer timer_left action Hide("timer_bar")
    vbox:
        xalign 0.5
        yalign 0.02
        bar:
            value AnimatedValue(timer_left, timer_max, 0.1)
            xsize 400
            ysize 14
        text "Respond within [timer_left]s":
            xalign 0.5
            color "#c8c8c8"
            size 18

screen rewind_prompt():
    zorder 10
    text "Rewind available":
        xalign 0.05
        yalign 0.95
        color "#4ab8b8"
        size 22

screen teal_wash():
    zorder 20
    add Solid("#1a4a4a") alpha 0.7