*label power
*comment First priority: unused bespoke scenes
*if (training_power_scene < 4)
    *if training_power_scene = 0
        Coach Lam holds pads and doesn't speak. Doesn't flinch.

        You start light. Jab-cross, snapping the vinyl of the pad. Testing range, rhythm, breath. No reaction.

        You turn with the hook. You drive the cross straight. You breathe quicker. He still doesn't move.

        No feedback. Just the pads, held perfectly still.

        Stance tighter, hips loaded, angles cleaner. Again. And again. Your lungs rasp and your arms go heavy.

        A left hook lands, your full weight behind it. The torque works this time.

        The pad shifts. Just a little.

        He nods.

    *elseif training_power_scene = 1
        The afternoon light cuts golden rectangles across the gym floor as Coach Lam points to your lead hand. "Show me your hook." You rotate your hips and throw the hook, glove thumping against his focus mitt from the side.

        "Again."

        You continue throwing hooks. Two seconds. Hook. Two seconds. Hook. He absorbs the impact. "Again," he repeats. 

        You throw another, feeling your weight shift through your hips, your fist travelling the same arc it has for the past five minutes. Your muscles burn, slow, grinding fire with every hook.

        Your elbow drops. Your wrist bends. Your hip rotation falters.

        Coach Lam taps your elbow with the mitt. The next hook is better. Knuckles vertical, elbow level, hip rotating. A nice [i]smack[/i] against the pad. Then another. Another.

        Coach Lam steps back, nodding. "Tomorrow we do your other hand," he says, peeling off the mitt.

    *elseif training_power_scene = 2
        Sweat stings your eyes. You blink hard, smear your forearm across your face. Half an hour of cardio. Three rounds of mitts. Two sparring sessions. A pull from your water bottle.

        You're mid-stretch, leaning into a deep lunge, when Coach Lam points to the heavy bag in the corner. Doesn't speak.

        The leather is torn in places, shredded fabric spilling from a long tear. You start to punch. One-two. One-two-one-two.

        Your fists feel like soaked meat, and the bag doesn't care. You keep punching. Your shoulders go. Then your legs. Your hands too. No, wait. They're still moving.

        You're knocking politely now.

        Coach Lam uncrosses his arms. "Good."

    *elseif training_power_scene = 3
        Coach Lam's looped a resistance band around your waist. The rice-ball guy holds it a metre or so behind you.

        "Step in, cross."

        Your core strains as you step in and fire the cross at the heavy bag. The band pulls you back.

        "Again."

        Another plodding step forward, another cross. Ten in all.

        The rice-ball guy lets the band go slack. Coach Lam says, "One more time."

        You step in, launching yourself into the heavy bag, wrapping your arms around it. 

        "Good."

    *else
        *bug invalid training_power_scene
    *set training_power_scene +1
*comment Final priority: endlessly repeatable fallback
*else
    Jump rope. Push-ups. Then the heavy bag.

    Cross. Cross. Cross.

    Hook. Hook. Hook.

    Another day.

*return

*label technique
*comment First priority: unused bespoke scenes
*if (training_technique_scene < 4)
    *if training_technique_scene = 0
        Coach Lam draws chalk circles on the gym mat. Two feet wide, one for each foot. "Stay inside," he says.

        You shadowbox. Jab-cross-hook. Slip left. Duck, roll right. The circles are too small. Your rear foot smudges the chalk.

        He shakes his head.

        You reset. Your hips can't rotate. You're too upright. You're staring at the floor. You punch. It feels wrong.

        Your foot slips again.

        "No."

        Eventually, you ignore the lines. You feel them instead, each time you pivot. The jab's clean.

        Coach Lam says nothing. He turns to someone on the heavy bag.

    *elseif training_technique_scene = 1
        The gym is quiet except for the metronome. Click. Jab. Click. Cross. Your breath syncs to the beat.

        You're shadowboxing. It feels like that arcade game where you stomp coloured arrows in time. The tempo quickens. Click jab click cross.

        Coach Lam motions for footwork now. You start switching your feet in place. Front foot back, back foot forward, over and over. Shuffle. Click shuffle shuffle. Pointless in a fight. Great in the gym.

        The tempo slows, but you stay locked in. You don't have to think any more. Your hips twist on their own. The jab snaps out.

        You glance at your coach. He's already turning the dial.

    *elseif training_technique_scene = 2
        Coach Lam pairs you up with a regular, the big one who brings rice balls. He tells you to mirror him. Same combos, same timing, same angles.

        You're half a step behind. It's like typing and the letters appear five seconds later. The rhythm is wrong. The distances don't work.

        After a minute, you stop trying to keep up. But then something changes. Your feet move by themselves. You breathe in. He breathes out.

        You're not sure where your movement ends, where his begins. You match his guard, his pivots, his steps.

        When the drill ends, you're still holding the stance. Still waiting for his next move.

    *elseif training_technique_scene = 3
        You're in front of the double-end bag, a punching ball suspended at chin height with elastic cords going to the floor and the ceiling. Coach Lam motions for you to punch it.

        You jab it like you're working the heavy bag. It flies away, then zooms back and whacks you in the face.

        Coach Lam says, "Work the jab."

        You jab light. It still comes for your face, but this time you take it on your guard. Cool. You jab, slip the rebound. Jab, slip.

        "Jab cross."

        You jab and load the cross for the rebound. The bag thuds into your face first. You try again and get the rhythm down. Jab, cross, slip.

        You take a breath. "Pretty useful in a fight."

        Coach Lam shakes his head. "Not yet."

    *else
        *bug invalid training_technique_scene
    *set training_technique_scene +1
*comment Final priority: endlessly repeatable fallback
*else
    Footwork. Forward, back. Angle out. Circle.

    Pads. Jab-cross-hook, pivot, reset.

    Shadowboxing. Jab-cross, weave, hook.

    Another day.

*return

*label toughness
*comment First priority: unused bespoke scenes
*if (training_toughness_scene < 4)
    *if training_toughness_scene = 0
        You sprint the length of the empty Star Ferry terminal. The metal shutters are still down. Ferry horns echo distantly across the harbour. At the far end, you slap the concrete pillar. You glimpse your reflection in the plexiglass, mouth half-open, eyes somewhere else. Fifteen seconds. Breathe, breathe, breathe. Then sprint again.

        Your shoes slap the floor, wet with sea spray. Sea brine and diesel exhaust with every breath. You run past an elderly man laying out meditation leaflets beneath a printed banner, past the ticket machines, past the chained turnstiles. Fifteen seconds. One more lap.

        You forget the count. You stop touching the pillar. Your reflection is still there, but you don't look any more. You just run.

    *elseif training_toughness_scene = 1
        You run at night, when the humidity clings to your skin. Mong Kok, down to Yau Ma Tei. You run past shuttered jade shops, past a ceremonial archway, past electronics stores with dusty display cases.

        Old men huddle over a Chinese chess game. The plastic stools are too small for them. One glances up, then nudges his friend. "Boxer again," you hear.

        The roads narrow in places. You weave between signposts and plastic buckets. You nearly run into a newsstand stacked high with newspapers and bottled drinks. You wave and keep going.

        At the fruit market, the crates are being hosed down. Oranges, the citrus scent of oranges. Durians join them today. The durians are winning.

        You run faster, to escape it.

    *elseif training_toughness_scene = 2
        The stairwell smells like damp concrete. The air doesn't move.

        You run loops between floors six and fourteen. Down eight flights. Up eight flights. Again.

        Your footsteps bounce, first from your shoes, then from the walls. The air sticks in your throat. Every slap of sole thuds into the concrete. Too loud.

        You lose count. You take the turns without looking. You breathe hard. Thighs start to burn, knees begin to click.

        A door creaks open. Someone stares. You keep going.

    *elseif training_toughness_scene = 3
        You're at the base of the Mid-Levels escalator system, near Central Market, on a Saturday afternoon. You jog up the path alongside the escalators, dodging the pedestrians. A slight incline, a few steps, turn, a few more steps, cross the street, more steps, a gentle upwards slope, steps, road, steps, steps. 

        Ten minutes to the top, at Conduit Road.

        You jog back down. Downhill doesn't count.

        Four more times.

    *else
        *bug invalid training_toughness_scene
    *set training_toughness_scene +1
*comment Final priority: endlessly repeatable fallback
*else
    Roadwork. Three laps around the neighbourhood.

    Stairs. Up, down, up, down.

    Sprints until your legs go heavy.

    Another day.

*return

*label mental
*comment First priority: unused bespoke scenes
*if (training_mental_scene < 4)
    *if training_mental_scene = 0
        You rewind the video again. You ignore the burned-out line of pixels. Play it again. Log every feint, slip, failed setup. Check the footwork. Always check the feet.

        The jab hangs out. The cross doesn't come back. This video's of someone else. The next one's of you.

        You start seeing things before they happen. Some punches look wrong now, even when they land. Rewind. There's no room for that punch, even though it looked like plenty before.

        That night, you dream in slow motion.

    *elseif training_mental_scene = 1
        The gym is a mess today. Cantopop blares from a tinny speaker. Someone nearby jogs in place, knees high, yelling "Yah!" at full volume. Coach Lam doesn't notice.

        He fires instructions over the noise: "One-two! Slip left! Hook! No no, jab-jab-hook! Roll! Step out!"

        Halfway through, he's already barking a new set of orders. "One-two-one-two! Uppercut! Angle out! Jab jab! Why are you square?!"

        Three minutes later, your brain's fried. Your gloves just hang there in front of your face.

        But your feet stayed moving. The rhythm got through.

    *elseif training_mental_scene = 2
        Five kids are running around screaming nonsense. Children's visit day, apparently, but Coach Lam still asks you to shadowbox. One kid recites items from the [i]cha chaan teng[/i] menu. Pineapple bun! Ham macaroni!

        Another kid is just making things up. "How are you tomorrow?"

        It's stupid. It's chaotic. And yet your footwork smooths out. The noise stops mattering. You start hearing only your breath and the floor.

        When the bell rings, you don't stop right away. You didn't hear it.

    *elseif training_mental_scene = 3
        "One minute."

        "What?"

        "Close your eyes. Open them after one minute."

        Coach Lam has his finger on the stopwatch. You close your eyes. You can hear a pair of fighters as they spar, and someone's thumping the speed bag.

        You open your eyes. Coach Lam presses the button and turns the display to you. The stopwatch shows forty-six.

        "Close your eyes."

        You sit down this time. You feel someone passing by, or rather, you smell their sweat. The ceiling fan keeps rattling.

        You open your eyes. Fifty-five.

        "Okay."

    *else
        *bug invalid training_mental_scene
    *set training_mental_scene +1
*comment Final priority: endlessly repeatable fallback
*else
    Footage. Pause, rewind. Watch it again.

    Jab, slip, counter. All in your mind.

    Downstairs. Concrete and chairs and a single tree. Shadowboxing while cars honk and people shout.

    Another day.

*return

*label rest
*temp max_scene 8
*if (training_rest_scene > max_scene)
    *set training_rest_scene 0
*if training_rest_scene = 0
    You board the ordinary ferry to Cheung Chau with no gear, no plan. The benches are slick with sea spray and the air smells like diesel, algae, and fishballs.
    *if (current_season = "spring")
        The farthest islands disappear into fog.
    You pace along the weathered railing and watch the water churn as the wind rustles your jacket. Inside, a baby cries. A quiet hiss as someone opens a can of drink.

    You wait for the press of bodies to thin before you step onto the pier. Tourists file dutifully into seafood restaurants, while couples rent bicycles and share tofu pudding. You drift past, ignoring the stalls and the ice cream freezers with their condensation-slicked glass tops, heading inland through narrow alleys where laundry flaps on metal wires and the stonework breaks, fades. 

    You pause at a tiny shop where the rusted fan rattles above a scratched glass counter, air stirring reluctantly. The only indication that it's open is the shopkeeper, squatting lazily, who doesn't look up from his racing newspaper, only motions his head towards the fridge when you ask. You hand over a ten-dollar coin and take a bottle of Dahongpao oolong tea, barely cold enough. Outside, you twist the cap and sip.

    A breeze slips through the alleys now and then. Outside a Circle K, a boy shadowboxes at your reflection in the window. One-two, awkward uppercut. You nod, not sure if you're smiling or not.

    You find a mossy stone bench with a view of the village. You practise your breathing drills without thinking. Air in, air out, slow and even. It feels right.

*elseif training_rest_scene = 1
    You sleep late. No alarm. Dreamless sleep. A small wet patch of drool on your pillow. You finally open your eyes, seeing how the room is too quiet. Outside, the sharp squeal from a truck's compression brakes cuts through the midday stillness. A metal gate slams, two floors down.

    Eventually, you shuffle to the kitchen, chalky toothpaste still coating the inside of your cheeks. The thin plastic crinkles as you rescue the bundle of vermicelli from the wrapper. Boiled for a minute less than it says to. You don't bother to look for the seasoning packet. Just soy sauce, a dull orange bowl, wooden chopsticks flame-blackened at the tips. It's chewy, but still hard at the centre.

    You sit against the wall, phone propped on your gym bag, old cartoons streaming. The speakers buzz valiantly. You sneeze, a quick one. "Bless you," the priest in the cartoon says, you think.

    The cartoon loops. You don't notice at first. Then you do.

*elseif training_rest_scene = 2
    You drift through Ladies' Market, registering the packed stalls with their corrugated iron roofs claiming the roadway. Bare bulbs overhead, bright and unnatural. The air's heavy, crowded by the colourful pyjamas, basketball jerseys, "I ❤ HK" T-shirts, and incorrect designer bags. A tourist haggles over plastic keychains but doesn't buy. The shopkeeper shrugs. 

    There's only room for two abreast. You stop at a table stacked with cheap punching pads. Red vinyl, shiny and flaking. Thin foam. You press your thumb into one. It doesn't resist. You imagine hitting it with a full-power cross, your coach's hand collapsing before he flings it into the rubbish. You nod at the shopkeeper and move on.

    Fluorescent light blasts your vision. A young woman, ring light haloing her head, moves backwards, livestreaming in rapid Putonghua. Too much subtle makeup. She has a ballet shoe in one hand, pressed to her face like a telephone. "Only 88 yuan for this genuine quality shoe! Only 50 yuan more, to make it a pair." 

    The sweet scent of egg-waffle batter passes by, once, but you can't see the [i]gai daan jai[/i] cart anywhere. Somewhere ahead of you, someone yells "Buy one get one!" in three languages at once. You keep walking.

*elseif training_rest_scene = 3
    You board the double-decker tram in Sheung Wan, just to sit still. It's the one with the air-conditioning and the friendly driver. Empty tram, so you get the front row seat on the upper deck. Plastic windscreen in front of you, wide and clean. The seat's hard plastic is sun-warmed but still a bit cold on your thighs.

    The tram starts with a jerk and the distinctive bell. Ding ding... ding.

    The tram meanders east, barely faster than a brisk jog. You crack open a window. Humid air, but at least it's moving. You read somewhere that air-con is bad for you. Can't be worse than the Wan Chai exhaust. 

    Half a dozen kids in green-and-orange school uniforms climb up and scatter a few rows behind you. Their bulging schoolbags thump onto the floor. They argue about whether something evolves at level 20 or 40. You don't catch the name, just the urgency. You're not close enough to hear, and that feels right.

    The streets roll by: kudzu drink, a former pawn shop turned tourist trap, Mega Monster Burger. Fortress Hill: polished leather designer sofas in showroom windows.

    You ride the line all the way to the end. Shau Kei Wan. The tram empties. No one tells you to leave, but you do. You walk west, in silence.

*elseif training_rest_scene = 4
    The MTR sways gently as it pulls away from Sham Shui Po. You're seated, arms crossed, drifting in and out of awareness as the train rocks rhythmically. The man next to you has a wrinkled brown takeaway bag at his feet, greased half-translucent at the bottom. You think you saw it fall. Maybe. He's engrossed in his phone, stabbing the glass with quick, practised jabs.

    When the train pulls in at Mei Foo, he rises and adjusts his belt. Just before the doors open, you grab the wrapper and extend it to him. "You dropped this," you say. His eyes flick to it, then to you. His face tightens. His ears twitch. "Thanks," he mutters, pinching it lightly before disappearing into the crowd.

    The doors hiss shut. You shift back into your seat. A woman says, "That wrapper was there before he got on." She doesn't look at anyone in particular. You don't say anything.

    The overhead lights flicker. Your reflection reappears in the glass pane turned mirror: a tidy silhouette, holding nothing, sitting a little too upright.

*elseif training_rest_scene = 5
    You stroll through the wet market starting from the Wan Chai end. Bowrington Road in late afternoon. Water runs constantly. Hoses flushing guts and meat bits into the gutter, fish splashing water out of their polystyrene crates, block ice and crushed ice melting beneath the geoduck clams, mist spraying over fruit displays.

    You avoid the biggest puddles, even though your shoes are already damp. You register the coriander. Sharp. Raw pork hangs dense in the air, its damp smell cut by the metallic tang of fish blood. You remember, long ago, a friend who acted tough. Got halfway through and his face turned pale green, had to pinch his nostrils closed and breathe through his mouth. Doesn't churn your stomach now. Just another stimulus to tune out.

    A woman claps mechanically. Says her pomelos can outlast the others. A lean man in a red plastic apron slits a chicken's throat with a single clean cut. No, that can't be; they banned live chickens after the avian flu. You look again. He's only chopping headless birds along joint lines. Must have misread the movement.

    You don't need to think. Your legs keep moving. Plastic tubs of oyster meat, bundles of razor clams tied with plastic twine. You're tempted by the Shine Muscat grapes. Chinese, not Japanese. Still sweet enough to pretend they're the real ones.

    Ahead, Times Square looms. Glass, stone, a giant TV above the plaza, tuned to a cable news channel. You cross when the light changes. A woman hands you a yoga flyer. You take it without looking. You don't stop walking.

*elseif training_rest_scene = 6
    The garden path in Victoria Park loops gently, the low shrubs and small clearings creating pockets of quiet within the retail frenzy of Causeway Bay. There's a pleasant scent of roasted chicken and sambal from the semicircle of Indonesian maids on their day off. Couples sit on wooden benches, enjoying advanced bubble tea concoctions. A toddler trips. Quick swivel of her head. Parents see her. She wails.

    You take the long way, past the pond with the drowsy turtles stacked three high. A koi swims in the tea-coloured water. Wind rustles through the manicured trees.

    The garden opens onto an ordered grid of sports fields. Dozens of football pitches, asphalt and mostly empty. A group of lanky schoolboys are on one, kicking a tired football with more enthusiasm than skill. The thump and clang of 3-on-3 basketball comes from behind the concrete divider. You notice your weight shifting. Right foot to left. You're moving with the dribbling without meaning to. It takes a few steps before you even register it.

    You pass through the park's gate with the Queen Victoria statue. You cross the road to the library. Wrong shape for a fight. No clean approach angles. No stance worth taking.

    Greek pillars collide against modernist steel and plate glass. Huge. Imposing. Flimsy.

    You stand under the oversized window, feet shoulder-width apart. A long breath. Slow in, slower out, body resetting to neutral. The kind of breath you take before a round starts. You don't go in. You keep walking.

*elseif training_rest_scene = 7
    You sit in a [i]cha chaan teng[/i] in Shau Kei Wan. Not a nice one. The kind with hard plastic benches, sugar in dented metal cans, table still damp from a half-hearted swipe with a grey rag.

    You don't look at the menu. You just say "B1", like it's the only thing that makes sense. The waitress nods without writing anything down.

    Someone's transistor radio crackles with race results from Sha Tin. A grunt of disappointment from the corner booth. Your tea arrives first, Hong Kong style, much too strong. You stir in a teaspoon of sugar. Sweet and astringent. You take another sip.

    Then the set: macaroni in broth, pan-fried spam slice, two pieces of folded ham. A fried egg resting on top. On another plate, a thick slice of toasted white bread, the face charred, and a thin coat of melted butter.

    No one talks. Behind the glass, cars ease past, indifferent to pedestrians. You chew slowly, half-watching, half somewhere else. The egg yolk breaks onto the spam, turning it glossy. You finish it all.

    When the waitress brings the bill, she calls you "boss". You nod, leave exact change on the scratched glass counter, and leave quietly.

*elseif training_rest_scene = 8
    You get off the bus at the Cross Harbour Tunnel. The engine noise fades behind you as it pulls away, leaving diesel fumes hanging in the humid air. You cross the footbridge towards Poly University. No students around on the weekend.

    You walk without purpose. Past the plaza where students hand out flyers, now littered with only a few leaflets from a kendo club recruitment drive. Five young women in pink T-shirts practise K-pop routines, phone on a tripod recording everything.

    The campus feels like a stage. Chairs in neat rows. Umbrellas furled.

    You take the overpass out towards the main road. The metal grating wasn't always there. You thrum your fingers along the edge as you pass. It's welded tight now.

    Pedestrians drift past in both directions, earbuds in, eyes on phones.

    You keep walking.

*else
    *bug invalid training_rest_scene
*set training_rest_scene +1
*return

*label eric
*comment First priority: unused Eric-present scenes
*if ((((eric_plot_timer = 0) or (eric_plot_timer > 1000)) and (eric_subplot_status = "available")) and (training_eric_available_scene < 2))
    *if training_eric_available_scene = 0
        Evening at Eastside Combat Club. The air conditioning rumbles quietly, while fluorescent lights cast long shadows across the mats. A small MMA group in the corner finishes their padwork. It smells of clean sweat tonight. Even the perspiration is disciplined.

        Eric has you spar an energetic teenage boxer. Gloves on gloves. He watches from the edge of the ring, arms crossed. Doesn't say anything between rounds, doesn't offer any advice.

        After the second round, you glance over at him. "Thoughts?" you ask.

        He takes a step closer. "You're punching like you want to impress."

        You nod.

        Next round, your punches are quieter. You remember something Eric said: don't punch with your hand, punch with your heart.

        The teenager dominates the entire round. But you don't mind.

    *elseif training_eric_available_scene = 1
        Evening at Eastside Combat Club. The air conditioning hums steadily, mixing the scents of clean leather and fresh tape wraps. A few stragglers are finishing their stretches and packing their gym bags.

        Eric stands in the middle of the mats, one fist held out straight. Occasional flames rise from his fist, the air shimmering like torchfire. The flames start to lessen, then fade.

        You wait. He doesn't acknowledge you. Deep in concentration. The insistent beeping of the timer drifts from the far side of the gym.

        He turns slightly and nods at you. You stand beside him and raise your fist, matching his posture. The flames reappear around his fist, rhythmic and even. Nothing happens with yours.

        You continue to hold the pose. After a few seconds, your wrist warms. Not heat. More like pressure. Like your hand is meeting the air, becoming part of it.

        Eric glances at you. "Don't push," he says. "Just notice it."

        You note the warmth for a few more seconds before it departs. Just a fist now. But you feel a faint tingling at the outer edge of your hand.

        You stay still for a few seconds longer. Whatever it was, it didn't last.

    *else
        *bug invalid training_eric_available_scene
    *set training_eric_available_scene +1
*comment Second priority: unused Eric-absent scenes
*elseif (training_eric_unavailable_scene < 2)
    *if training_eric_unavailable_scene = 0
        Your water bottle drips with condensation, forming a ring of water where it meets the table. You move the bottle aside and stare at the circle for too long, visualising the energy diagram Eric once sketched in quick, confident strokes. Circular, flowing, imperfect. You run a fingertip along the water, smudging it into a flat loop.
    
        The air conditioning drops to an idling hum. You trace the circle again, slower. Trying to feel what Eric meant.

        There's no sudden flash of insight. You wait.

        A faint pulse travels through your shoulder. Maybe muscle memory. It doesn't feel like understanding, but your hand traces the same path again. 
    *elseif training_eric_unavailable_scene = 1
        You sit cross-legged on the wooden floorboards, the waxed boards smooth under your thighs. Hands on knees, palms up. Eyes closed. Eric said when you breathed this way, you could feel the energy flowing.

        A minute of stillness. The edge of something, hairs rising on your forearms. Then a [i]krrk-krrk-screee[/i] from above, plastic chair scraping the floor. A voice, harsh and irritable.

        You let it pass over you and through you. A breath. Another.

        Warmth accumulates in your chest. Your breathing slows. The warmth spreads outwards, through your arms, through your legs. Not something to control, just something to notice.

        You stay.

        Your head feels heavy as you lift it. Eyes open. Half an hour gone, somehow. You remember Eric saying that beginners lose track of time. You don't agree.
    *else
        *bug invalid training_eric_unavailable_scene
    *set training_eric_unavailable_scene +1
*comment Final priority: endlessly repeatable fallback
*else
    At home. Lights off.

    You hold your palms a few centimetres apart, facing each other. You breathe in, breathe out.

    In, out.

    You feel something pushing back when you try to move your palms closer. They feel warm, maybe.

    You cup your palms near your right hip, like they're holding water. You thrust your palms forward. Nothing.

*return

*label katie
*comment First priority: unused Katie-present scenes
*if ((((katie_plot_timer = 0) or (katie_plot_timer > 1000)) and (katie_subplot_status = "available")) and (training_katie_available_scene < 2))
    *if training_katie_available_scene = 0
        Dimmed lab room, after hours. Curtains drawn, overhead lights dim. The table supports a tray lined with tuning forks, dowels, heat packs.

        Katie points to the chair without looking up. Presses the first dowel to your forearm.

        "Three."

        She nods once, writes it down.

        She moves methodically through the tools — dull pressure that sinks deep but doesn't cut, sudden heat that makes you flinch, low vibrations that travel through bone. Each time, you state a number. She adjusts. She writes it down.

        Halfway through, she pauses. "This one might spike," she says. "Breathe through it." Katie's hand steadies your wrist. Contact. A sharp edge. You keep still, exhale.

        You call it "five."

        She glances at you. "Really?"

        Her face reveals nothing. But she doesn't write it down. Repositions the dowel, slower this time. Tracking the gap between your words and your reaction.

        When it's over, she starts packing the tray. You both stay silent as she seals the equipment bag.
    *elseif training_katie_available_scene = 1
        HKU rooftop, dusk. The skyline glows amber and violet, concrete towers melting into shadow. A gentle wind drifts across the rooftop. Katie arrives without a word, sets down her duffel bag, and kneels to tape a sensor to your palm. Her fingers steady your wrist as she smooths the tape. Brief touch. No eye contact.

        "Arms up. Hold."

        You raise both arms to shoulder height. Katie stays kneeling, gaze fixed on the biometric scanner. The skyline deepens to rose, then steel-grey. The wind picks up, stirring dust across the concrete.

        A slight burn spreads through your shoulders.

        Barely audible: "Most people give up before ten minutes. Not from pain. Just from the doubt, the idea that they're doing it wrong."

        When your arms start to drop, she stands behind you and adjusts your posture with one hand on your upper back.

        The scanner beeps. Fifteen minutes.

        She peels the tape from your skin, then sits beside the gear. "I'll send you the results," she says.

        You don't leave right away. Neither does she. The skyline dims.
    *else
        *bug invalid training_katie_available_scene
    *set training_katie_available_scene +1
*comment Second priority: unused Katie-absent scenes
*elseif (training_katie_unavailable_scene < 2)
    *if training_katie_unavailable_scene = 0
        You sit cross-legged on the wooden floor, spine resting against the edge of your bed. One hand cradles the dense rubber ball Katie provided you, its surface studded with short metal prongs that bite faintly into your palm.

        Outside, rain taps gently against the window, a muffled rhythm that barely registers. Above, a chair scrapes across the floor — [i]krrk... chk... scree[/i] — then falls quiet again.

        You press the ball to your forearm, the metal studs sharp and unyielding against skin. At first, nothing. Then a flare of electric needles that make your teeth clench.

        You note the signal. The sensation is real, but it doesn't require a response.

        You roll the ball along your forearm, pressing muscle into bone, a patient, deliberate line from wrist to elbow and back again. Your arm begins to feel strange. Not numb, exactly, but off, like something's disconnected and waiting for input.

        The ball falls into your lap. You rest your arms, tracking the phantom signals still echoing from your nerves.

        You flex your fingers once. Normal function restored.
    *elseif training_katie_unavailable_scene = 1
        Late evening. The office is silent, long since emptied. The fluorescent light casts a low, exhausted glow over the rows of abandoned desks.

        You adjust your chair. Your monitor wakes with a soft whir. You rest one hand on the mouse, the other on the keyboard.

        Back straight. Shoulders level. Feet planted.

        You type and click: not words, just gibberish. Nonsense on a blank document. The familiar urges arrive. Your back wants to curve. Shoulders want to sag. Leg wants to bounce.

        It's a slow accumulation. Discomfort layered upon discomfort. And when your body wants to shift: you stay.

        One breath. Slow.

        Then you close the document. Power down the computer.

        You stand. Walk away.
    *else
        *bug invalid training_katie_unavailable_scene
    *set training_katie_unavailable_scene +1
*comment Final priority: endlessly repeatable fallback
*else
    Plank.

    Forty seconds. Your core starts to burn.

    You notice the sensation. Tightness. Clenching. The urge to fall.

    Breathe. Hold.

    Enough for today.

*return

*label danny
*comment First priority: unused bespoke scenes
*if (training_danny_scene < 4)
    *if training_danny_scene = 0
        The [i]char siu[/i] place below MK Fight sits there, ignored, every day. You usually pass by without looking. Today, you go in for lunch.

        There are plenty of empty tables at noon. Never a good sign. You sit at a booth wide enough for one. Glass tabletop, menus trapped underneath. Your eyes drift to the lunch specials. Roast goose, soy sauce chicken, suckling pig. Three dollars extra for iced drinks, lemon tea, milk tea, lemon Ribena, Horlicks.

        It claims to be a [i]char siu[/i] restaurant, yet there's no [i]char siu[/i] on the lunch menu; it's available only as takeaway. Curious.

        You order a set. You already forgot what you ordered. Good. It's not important.

        You wait. The smell of soy sauce reaches you, the kind they use for marinades.

        The waiter brings you your food with a smile. Friendly. You already know how it will taste.

        You eat it anyway. It's too warm, not room temperature as it should be. Too dry. At least the rice isn't undercooked. You take a sip of the drink. You forgot to ask for less sugar.

        Time to go. You pay with exact change.

        Stronger.

    *elseif training_danny_scene = 1
        There's an urban park nearby, officially named Anchor Street Playground. You're there today, mid-morning, with a few retirees in hard plastic slippers.

        You take off your shoes and stand at the start of the pebble path. Round pebbles, flat pebbles, sharp pebbles, some the size of ping-pong balls, others like marbles. You think about that classic kung fu movie, with the eighteen bronze men at Shaolin. No backing out now.

        One foot first. A blunt, stabbing pain on your sole.

        Now both feet. Onwards.

        Soon the pain ebbs into mere discomfort. You keep going, slowly, along the entire ten metres. Takes a minute.

        Once is enough. Don't want to overdo it. You return to your shoes and put them back on.

        You feel... stronger? Probably not.

    *elseif training_danny_scene = 2
        You're on the Star Ferry from Central to Tsim Sha Tsui, on the lower deck, enjoying the extra-strong diesel vapours. The ferry's just left the pier.

        This time, you don't sit down. You stand in the open area by the boarding entrance. Your hands are by your sides, and your feet are shoulder-width apart. You bend your knees slightly.

        You're ready to absorb the ferry's sway. You close your eyes.

        Today there are barely any waves at all.

        The ferry arrives and docks.

        Stronger.

    *elseif training_danny_scene = 3
        Down at the wet market, mid-morning, when it's not busy. You're at the fruit vendor, fourth stall in.

        You pick up an apple. You don't know what kind it is, but it's red. You put it down and pick up another one, weighing. Comparing. This new one feels heavier.

        You put it down and pick up another one. This one's lighter. Another one; pretty heavy, but not as heavy as the second. One more. This one's the heaviest of them all.

        Now your other hand. This apple's heavy, or is it light? You try the heaviest apple, to calibrate your hand. Okay, a new one; light. Another one, also light. Ah! This one's heavy.

        "Hey, are you going to buy any?"

        "Sorry."

        You buy the heaviest one.

    *else
        *bug invalid training_danny_scene
    *set training_danny_scene +1
*comment Final priority: endlessly repeatable fallback
*else
    Daily groceries.

    You take the stairs instead of the lift. A single cloth bag. You don't let the bag swing.

    Ten floors. It feels like more.

    Finally home. You put the bag down.

*return

*label chloe
*comment First priority: unused Chloe-present scenes
*if ((((chloe_plot_timer = 0) or (chloe_plot_timer > 1000)) and (chloe_subplot_status = "available")) and (training_chloe_available_scene < 2))
    *if training_chloe_available_scene = 0
        You're too full, and Hong Kong is spinning below you. The buffet at the Hopewell revolving restaurant was good, though. And Chloe ate much less than you did.

        Across the table, Chloe raises her fists, knuckles towards you. "You ever played fifteen-twenty? Where you open or close your hands?"

        "Not really?"

        "Super easy. Fist is zero, open hand is five. We throw at the same time, and whoever's turn it is calls out the total as the hands come out. Call it right and you win."

        "Fine."

        "Fifteen!" Chloe opens both hands, and you open one.

        Ten and five. Fifteen. "Practice round," Chloe says. "Ready?"

        "Okay. Five." "Ten!" "Zero." "Five! I win."

        "Twenty." "Fifteen!" She wins again.

        "Are you throwing late?"

        "No, ${first_name}, you're just bad at this."

        "It's just luck. There's nothing to be bad at."

        "When you go for all open or all closed, you have a tell."
        
        "What tell?"
        
        "Not saying."

        You hold your face still. "Zero." Miss.

        "Ten!" Right again. She laughs.

        You drop your shoulders. You loosen your fists.

        "Five," Chloe calls. Five it is.

        Chloe grins. "Getting warmer."

        You stare at your hands.

    *elseif training_chloe_available_scene = 1
        Sunning Restaurant, Lee Theatre Plaza. Two tables over, a baked Alaska is on fire. The flames die down, and you turn back to Chloe.
        
        She nods at another table. "Bet you he asks for the bill in the next minute."

        You look over. A middle-aged man in a shirt and loosened tie. His plates are empty, but he's on his phone. Doesn't look like he's going anywhere. "You're on."

        Half a minute later, he catches the eye of a waiter and scribbles in the air.

        "How did you know?"

        "His heels were off the floor. And he wasn't scrolling on his phone."

        "Huh."

        She leans back. "That woman over there, in the booth. What's she going to do next?"

        You study her. Arms folded, legs crossed. Her son sits opposite, head down, spooning rice into his mouth.

        "Legs crossed. Toilet?"

        The woman uncrosses her legs. Then she leans across the table and jabs a finger at the boy. He shrinks.

        "Close. You're getting better at this."

    *else
        *bug invalid training_chloe_available_scene
    *set training_chloe_available_scene +1
*comment Second priority: unused Chloe-absent scenes
*elseif (training_chloe_unavailable_scene < 2)
    *if training_chloe_unavailable_scene = 0
        You're queuing at Lam Heung Ling, under the pleading cartoon lemon. Hand-crushed lemon tea — the crushing makes it better.

        Six people ahead of you. You take in the scene.

        At the front, a woman runs a finger down the toppings menu. The man behind her is checking his fitness-tracker watch. One heel can't stop bouncing.

        Interesting: a teenager is standing beside the queue, eyes on the menu. He's leaning back, casual, but his right foot sticks out towards the queue. Waiting.

        Fourth in line, an uncle in a polo shirt glances up from his phone and sees the teen. He turns slightly sideways.

        The woman's finished ordering and the queue moves. The teen goes for it.

        The uncle steps forward into the gap.

        The teen nearly walks into him. He has to pull back. "Oh, sorry, I was busy looking at the menu."

        "Of course you were."

        The teen lines up behind you. The uncle is already back on his phone.

    *elseif training_chloe_unavailable_scene = 1
        Another Tuesday. Spreadsheet. Keyboard. Mouse. Janet appears at the edge of your cubicle.

        "Is the Shiseido report ready yet? It's urgent."

        "Urgent?"

        "Yes."

        She's standing sideways to you, one hand holding her phone. She hasn't looked at your screen. Hasn't asked how much work is left.

        She didn't call you into her office. And she didn't declare a deadline.

        This one's easy.

        "Friday, end of day?"

        She shrugs. "Yes, sure. Thanks."

        She walks off.

    *else
        *bug invalid training_chloe_unavailable_scene
    *set training_chloe_unavailable_scene +1
*comment Final priority: endlessly repeatable fallback
*else
    MTR platform.

    A young man has his phone out. Baggy jeans, a T-shirt for some music band. He doesn't know it yet, but he's going to sneeze.

    His cheek twitches.

    "AH-CHOO!"

    He blows his nose, fishes out a mask, slaps it across his face.

    You keep waiting for the train.

*return

